/* Shared scheduling visual language. */
.booking-dialog{width:min(910px,calc(100% - 32px));padding:38px 48px 40px}.booking-dialog[open]{display:block}.booking-dialog h2{font-size:42px;line-height:1.13;letter-spacing:-1.2px;margin:10px 0 16px;outline:none}.booking-dialog h2 em{font-family:Georgia,serif;font-weight:400;color:#1c827e}.booking-intro{max-width:650px;color:#587079;line-height:1.6;font-size:15px}.booking-dialog button{font-family:inherit;cursor:pointer}.booking-dialog button:disabled{cursor:default}.booking-progress{display:flex;justify-content:space-between;gap:12px;list-style:none;margin:16px 0 35px;padding:0;max-width:680px}.booking-progress li{font-size:11px;color:#74848b;display:flex;align-items:center;gap:6px}.booking-progress li>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f0f4f3}.booking-progress .current{color:#176b68;font-weight:700}.booking-progress .current>span,.booking-progress .done>span{background:#176b68;color:white}.booking-unit{text-align:left;width:100%;font:inherit;color:#173f4c;min-height:120px}.booking-unit small{text-transform:uppercase;font-weight:600}.booking-options{grid-template-columns:1fr 1fr;margin-top:30px}.booking-unit:hover{transform:translateY(-2px)}.booking-unit:focus-visible,.booking-service:focus-visible,.calendar-day:focus-visible,.time-slot:focus-visible{outline:3px solid #146d78;outline-offset:4px}.booking-services{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.booking-service{display:flex;align-items:center;gap:13px;text-align:left;border:1px solid #dce9e5;background:#fff;border-radius:13px;padding:17px;color:#214f58;min-height:96px}.booking-service>span:nth-child(2){flex:1}.booking-service strong{display:block;font-size:15px}.booking-service small{display:block;font-size:12px;color:#617880;line-height:1.5;margin-top:5px}.booking-service .service-symbol{font-size:27px;font-weight:300;color:#289d90}.booking-service.general{grid-column:1/-1;background:#f0f8f2;border-color:#b9dcca}.booking-service:hover{border-color:#208c7f;background:#f7fbf9}.booking-back{display:inline-flex;padding:13px 0;background:none;color:#35636e;font-size:13px;border:0;margin-top:15px}.booking-note{color:#637980;line-height:1.6}.booking-calendar-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:34px;margin-top:26px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-heading h3{font-size:18px;text-transform:capitalize}.calendar-heading button{background:#eef5f2;border:0;border-radius:50%;width:38px;height:38px;font-size:25px;color:#1c655e}.calendar-heading button:disabled{opacity:.35}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays{font-size:11px;text-align:center;color:#698079;margin-bottom:7px}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;border:1px solid transparent;border-radius:9px;font-size:14px;background:#f3f5f5;color:#8a959a}.calendar-day small{font-size:9px;line-height:9px}.calendar-day.available{color:#186144;background:#e3f4e8;border-color:#9ac9a9;font-weight:700}.calendar-day.available:hover,.calendar-day.selected{background:#236d50;color:#fff}.calendar-day.unavailable{background:#fff0ef;color:#a64141;border-color:#e4b3b3}.calendar-day.past{opacity:.45}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:10px;color:#60747b;margin-top:15px}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:7px;height:7px;border-radius:50%}.green{background:#3a9663}.red{background:#bf5b5b}.gray{background:#adb7b7}.booking-times{padding:20px;background:#f6f9f8;border-radius:15px}.booking-times h3{font-size:16px}.booking-times>.booking-note{font-size:11px;margin:8px 0 15px}.times-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:270px;overflow:auto}.time-slot{display:grid;text-align:left;gap:5px;padding:12px;background:#fff;border:1px solid #c6ded5;border-radius:9px;color:#235f4b}.time-slot strong{font-size:17px}.time-slot small{font-size:10px;line-height:1.35}.time-slot:hover{border-color:#277b5d}.time-slot:disabled{background:#f6eeee;color:#986363;border-color:#e4cece}.booking-empty{grid-column:1/-1;line-height:1.7;font-size:13px;color:#6b7f84}.booking-notice{background:#f1f6f4;border-left:3px solid #8cba9c;padding:16px 18px;font-size:13px;line-height:1.7;margin-top:22px;color:#45636b}.booking-selection{display:grid;gap:7px;margin-top:24px;padding:18px 20px;border-radius:12px;background:#f0f7f3;font-size:14px}.booking-selection span{font-size:13px;color:#55746f}.booking-form{display:grid;gap:17px;margin-top:23px}.booking-form label{display:grid;gap:7px;font-size:13px;font-weight:600;color:#264e57}.booking-form input,.booking-form textarea{font-family:inherit;padding:12px 14px;border:1px solid #cbded9;border-radius:8px;font-size:16px;color:#264e57;background:#fff;width:100%}.booking-form small{font-size:11px;color:#6e8086;font-weight:400}.booking-consent{grid-template-columns:20px 1fr!important;align-items:start;gap:12px!important;font-weight:400!important;line-height:1.65}.booking-consent input{width:18px;height:18px;margin-top:3px;accent-color:#167b70}.booking-form-actions{display:flex;gap:20px;align-items:center;justify-content:space-between}.booking-form-actions .button{font-size:14px;padding:16px 22px}.booking-form-actions .booking-back{margin:0}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden}.booking-error{color:#a43939;background:#fff1ee;padding:13px;border-radius:8px;margin-top:15px;font-size:13px}.booking-error[hidden]{display:none}.booking-review{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;margin-top:22px}.booking-review>div{border-bottom:1px solid #dfebe6;padding:14px 0;overflow-wrap:anywhere}.booking-review dt{font-size:11px;color:#647d80;margin-bottom:5px}.booking-review dd{font-size:15px;color:#254b54}.booking-success-mark{display:grid;place-items:center;border-radius:50%;width:60px;height:60px;font-size:32px;background:#ddf2e4;color:#28784b;margin-top:20px}.booking-protocol{font-size:12px;color:#6b7b80;margin:25px 0;overflow-wrap:anywhere}.booking-protocol strong{font-size:13px;color:#30555d}.booking-loading{padding:38px 0;color:#667f85}.booking-dialog .button:disabled{opacity:.65}
@media(max-width:650px){.booking-dialog{padding:27px 21px;width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:18px}.booking-dialog h2{font-size:33px}.booking-intro{font-size:13px}.booking-progress{gap:6px;margin:28px 0 25px}.booking-progress li{font-size:9px;flex-direction:column;gap:6px}.booking-progress li>span{width:24px;height:24px;font-size:11px}.booking-options,.booking-services,.booking-calendar-layout{grid-template-columns:1fr}.booking-unit{min-height:104px}.booking-services{gap:8px}.booking-service{min-height:81px;padding:14px}.booking-service strong{font-size:14px}.booking-service small{font-size:11px}.booking-calendar-layout{gap:20px}.booking-times{padding:15px}.calendar-day{min-height:43px}.booking-review{grid-template-columns:1fr}.booking-review>div{padding:11px 0}.booking-form-actions{flex-direction:column-reverse;align-items:stretch;gap:9px}.booking-form-actions .button{width:100%;justify-content:center}.booking-form-actions .booking-back{justify-content:center}.booking-note{font-size:11px}.booking-dialog>.booking-close{z-index:2}}
.booking-dialog [hidden]{display:none!important}
.booking-professionals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.booking-professional{display:flex;align-items:center;gap:16px;padding:17px;border:1px solid #d9e6e1;border-radius:15px;background:#fff;text-align:left;color:#214f58;min-width:0;transition:border-color .2s,box-shadow .2s}
.booking-professional:hover{border-color:#168777;box-shadow:0 5px 18px #1b665010}
.booking-professional:focus-visible{outline:3px solid #146d78;outline-offset:3px}
.professional-avatar{flex:none;width:76px;height:88px;border-radius:10px;object-fit:cover;object-position:center 22%;background:#edf1e9}
.any-avatar{display:grid;place-items:center;font-size:28px;color:#238276;background:#dceee4}
.professional-copy{display:grid;gap:5px;flex:1;min-width:0}
.professional-copy strong{font-size:17px;line-height:1.3}
.professional-copy>span{font-size:12px;line-height:1.5;color:#327269}
.professional-copy small{font-size:11px;line-height:1.6;color:#617880}
.professional-copy .professional-action{font-size:11px;font-weight:700;margin-top:5px}
.professional-arrow{font-size:20px;color:#248578}
.any-professional{grid-column:1/-1;background:#f1f8f3;border-color:#bed9cb}
.any-professional .professional-avatar{height:60px;width:60px}
.any-professional small{font-size:12px}
@media(max-width:650px){.booking-professionals{grid-template-columns:1fr;gap:10px}.booking-professional{padding:13px;gap:13px}.professional-copy strong{font-size:16px}.professional-avatar{width:64px;height:78px}.booking-progress{gap:3px}.booking-progress li{font-size:8px}.booking-progress li>span{width:23px;height:23px}.any-professional .professional-avatar{width:48px;height:52px}}
