.booking-wizard{background:linear-gradient(150deg,#f3f9fa,#e8f3f5)}.booking-wizard .booking-shell{max-width:860px;padding-top:34px}.booking-wizard .booking-title{text-align:center}.booking-wizard .booking-title h1{font-size:clamp(28px,4vw,40px);margin:12px 0}.booking-wizard .booking-progress{justify-content:space-between;gap:8px;margin:28px 0 14px}.booking-wizard .booking-progress button{display:flex;align-items:center;gap:8px;background:none;border:0;font:inherit;color:#647b85;cursor:pointer;padding:8px}.booking-wizard .booking-progress .active button{color:#075b79;font-weight:700}.booking-wizard .booking-progress li.active span{background:#126887;color:white}.booking-wizard .booking-layout,.booking-wizard .payment-stage .booking-layout{display:block}.booking-wizard .booking-summary{position:static}.booking-wizard .booking-panel,.booking-wizard .booking-summary{border:0;border-radius:24px;box-shadow:0 12px 40px #244a5910;padding:30px;margin:0}.booking-wizard .booking-panel legend{border:0;background:transparent;font-size:24px;padding:0 0 20px;float:left;width:100%}.booking-wizard .step-content{clear:both}.booking-wizard .step-recap,.booking-wizard .step-edit{display:none}.booking-wizard [hidden]{display:none!important}.wizard-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:45px;margin-bottom:10px;color:#637e89;font-size:13px}.wizard-toolbar button{border:0;background:none;font:inherit;color:#126887;cursor:pointer;padding:10px 0}.wizard-toolbar span{margin-left:auto}.booking-wizard .service-option{padding:22px;border-radius:16px;transition:background .15s,border-color .15s,transform .15s}.booking-wizard .service-option:hover{background:#edf8fb;border-color:#126887;transform:translateX(3px)}.booking-wizard .service-option strong{font-size:17px}.booking-wizard .service-price strong{font-size:22px}.booking-wizard .slot-button{border-radius:12px;min-height:60px}.booking-wizard .booking-summary h2{font-size:28px}.booking-wizard .summary-code{padding:0!important;box-shadow:none!important;margin:20px 0!important}.booking-wizard .summary-code legend{display:none}.booking-wizard details{border-top:1px solid #dae7eb;padding:16px 0}.booking-wizard summary{cursor:pointer;font-size:14px;font-weight:600;color:#126887}.booking-wizard .recovery-optin{background:none;padding:0}.booking-wizard .booking-summary dl{background:#f3f8fa;border-radius:16px;padding:20px}.booking-wizard .booking-summary .button{border-radius:12px}.booking-wizard .booking-alert{font-size:12px;padding:12px 16px}.booking-wizard .messenger-chat{bottom:12px}.is-loading:before{content:'';display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:10px;vertical-align:middle;animation:booking-spin .7s linear infinite}@keyframes booking-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.is-loading:before{animation:none}.booking-wizard .service-option{transition:none}}@media(max-width:600px){.booking-wizard .booking-shell{padding:24px 16px}.booking-wizard .booking-title p{font-size:13px}.booking-wizard .booking-progress button{flex-direction:column;gap:6px;font-size:11px;padding:4px}.booking-wizard .booking-panel,.booking-wizard .booking-summary{padding:20px;border-radius:18px}.booking-wizard .service-option{padding:16px 12px;gap:9px}.booking-wizard .service-option strong{font-size:15px}.booking-wizard .service-price strong{font-size:18px}.booking-wizard .booking-panel legend{font-size:21px}.booking-wizard .booking-footer{padding-bottom:65px}}

.booking-wizard .booking-summary>p{margin:8px 0}.booking-wizard .booking-summary h2{margin:10px 0 16px}.booking-wizard .booking-summary dl{margin:20px 0}.booking-wizard .booking-summary dl>div:last-child{margin-bottom:0}.booking-wizard .payment-options{display:flex;gap:16px;flex-wrap:wrap}.booking-wizard .payment-options .check-label{flex:1;min-width:180px}.booking-wizard .summary-code details>p:first-of-type{display:none}

.clinic-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.clinic-choice{display:flex;flex-direction:column;align-items:flex-start;gap:18px;text-align:left;border:1px solid #cce0e7;border-radius:18px;padding:28px;background:#f6fafb;color:#234957;font:inherit;cursor:pointer;transition:background .2s,transform .2s}.clinic-choice strong{font-size:30px}.clinic-choice>span{font-size:14px}.clinic-choice .eyebrow{font-size:10px}.clinic-choice-next{font-weight:700;color:#126887}.clinic-choice:hover{background:#e7f5f8;transform:translateY(-3px)}.clinic-choice:focus-visible{outline:3px solid #126887;outline-offset:3px}@media(max-width:600px){.clinic-choices{grid-template-columns:1fr}.clinic-choice{padding:20px;gap:12px}.booking-wizard .booking-progress{gap:2px}.booking-wizard .booking-progress button{font-size:10px}}@media(prefers-reduced-motion:reduce){.clinic-choice{transition:none}}

.clinic-choice{align-items:center;text-align:center;justify-content:center}.clinic-choice>span{line-height:1.75}.clinic-choice strong{line-height:1.2}.clinic-choice-next{margin-top:4px}

/* Compact appointment flow: keep the existing visual identity and reduce scrolling. */
.booking-wizard .booking-header{padding:14px 5%}.booking-wizard .booking-header img{width:215px}.booking-wizard .booking-shell{max-width:980px;padding-top:20px}.booking-wizard .booking-title>.eyebrow{display:none}.booking-wizard .booking-title h1{font-size:29px;margin:0 0 6px}.booking-wizard .booking-title p{margin:0;font-size:13px}.booking-wizard .booking-progress{margin:18px 0 10px;padding:8px 12px;background:#fff;border:1px solid #dfebef;border-radius:14px}.booking-wizard .booking-progress button{font-size:12px;padding:3px 6px}.booking-wizard .booking-progress span{width:23px;height:23px;font-size:11px}.booking-wizard .booking-alert{margin:10px 0;font-size:12px;line-height:1.5;padding:10px 14px}.wizard-toolbar{min-height:30px;margin:0 0 8px}.wizard-toolbar button{padding:5px 0}.wizard-overview{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding:10px 14px;margin-bottom:12px;background:#e6f1f4;border-radius:12px;color:#315564;font-size:12px}.wizard-overview span+span{border-left:1px solid #bdD5df;padding-left:16px}.booking-wizard .booking-panel,.booking-wizard .booking-summary{padding:24px}.booking-wizard .booking-panel legend{font-size:21px;padding-bottom:14px}.booking-wizard .booking-panel p{margin:8px 0;line-height:1.55}.clinic-choices{margin-top:14px;gap:14px}.clinic-choice{padding:20px;gap:10px}.clinic-choice strong{font-size:27px}.clinic-choice>span{line-height:1.55}.booking-wizard .service-options{gap:9px}.booking-wizard .service-option{padding:13px 16px}.booking-wizard .service-option small{line-height:1.5}.booking-wizard .service-option strong{font-size:16px}.booking-wizard .service-price strong{font-size:20px}.booking-wizard .booking-footer{margin-top:24px;padding-top:16px}
.booking-wizard #booking-step-2 .step-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(190px,1fr);gap:12px 24px;align-items:start}.booking-wizard #booking-calendar{grid-column:1;grid-row:1;border:0;padding:0;margin:0}.booking-wizard #booking-step-2 .booking-hint{grid-column:1/-1;grid-row:2;font-size:12px!important}.wizard-times{grid-column:2;grid-row:1;border-left:1px solid #e1ebef;padding-left:22px}.wizard-times h3{font-size:17px;margin:8px 0 14px}.booking-wizard .calendar-heading{margin-bottom:10px}.booking-wizard .calendar-heading h3{font-size:20px;margin:0}.booking-wizard .calendar-days{gap:5px}.booking-wizard .calendar-day{min-height:42px;padding:7px;font-size:14px}.booking-wizard .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.booking-wizard .slot-button{min-height:48px;padding:8px 4px}.booking-wizard .slot-button small{font-size:10px}.booking-wizard #slot-status{font-size:12px;line-height:1.5}
.booking-wizard #booking-step-3 label{margin:10px 0 5px}.booking-wizard #booking-step-3 input{padding:11px 13px;min-height:44px}.booking-wizard #booking-step-3 .field-pair{gap:14px}.booking-wizard #booking-step-3 .booking-hint{font-size:12px!important;line-height:1.5}.booking-wizard #customer-continue{margin-top:10px;padding:12px 20px}.booking-wizard .booking-summary details{padding:12px 0}.booking-wizard .booking-summary dl{margin:14px 0;padding:14px 18px}.booking-wizard .booking-summary dl>div{margin-bottom:8px}.booking-wizard .booking-summary .deposit-row{padding:10px 0}.booking-wizard .payment-options{margin:12px 0;padding:12px;gap:12px}.booking-wizard .payment-options .check-label{border:1px solid #d5e5eb;border-radius:12px;padding:12px;margin:0!important;background:#f8fbfc}.booking-wizard .payment-options .check-label:has(input:checked){border-color:#126887;background:#eaf6f9}.booking-wizard .payment-options strong{font-size:20px;color:#126887}.booking-wizard .booking-summary .button{margin:12px 0}
@media(max-width:640px){.booking-wizard .booking-shell{padding:16px 12px}.booking-wizard .booking-header{padding:12px 16px}.booking-wizard .booking-header img{width:175px}.booking-wizard .booking-title h1{font-size:24px}.booking-wizard .booking-progress{padding:8px 4px;gap:0}.booking-wizard .booking-progress button{font-size:10px;padding:2px;gap:4px}.booking-wizard .booking-panel,.booking-wizard .booking-summary{padding:18px}.booking-wizard #booking-step-2 .step-content{grid-template-columns:1fr;gap:8px}.wizard-times{grid-column:1;grid-row:2;border-left:0;border-top:1px solid #e1ebef;padding:12px 0 0}.booking-wizard #booking-step-2 .booking-hint{grid-row:3}.booking-wizard .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-overview{font-size:11px;gap:5px 10px}.wizard-overview span+span{padding-left:10px}.clinic-choice{gap:7px;padding:16px}.clinic-choice .eyebrow{display:none}.clinic-choice strong{font-size:24px}.booking-wizard .calendar-day{min-height:42px}.booking-wizard .service-option{padding:12px;gap:8px}.booking-wizard .service-price strong{font-size:18px}}

/* Calendar: bounded proportions, aligned weekday columns and quiet availability dots. */
.booking-wizard #booking-calendar{width:100%;max-width:410px;justify-self:center;margin:0 auto;padding:4px 2px 0;box-sizing:border-box}
.booking-wizard .calendar-heading{gap:12px;margin:0 0 20px;min-height:36px}
.booking-wizard .calendar-heading h3{font-size:19px;font-weight:600;line-height:1.3;text-align:center;letter-spacing:0}
.booking-wizard .calendar-heading button{display:grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border-radius:12px;font-size:23px;line-height:1;background:#f7fafb;border:1px solid #e2ebef}
.booking-wizard .calendar-week,.booking-wizard .calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.booking-wizard .calendar-week{margin-bottom:10px;font-size:10px;font-weight:600;letter-spacing:.04em;color:#687e88}
.booking-wizard .calendar-day{display:flex;align-items:center;justify-content:center;height:48px;min-height:48px;min-width:0;padding:0 0 7px;margin:0;border:1px solid transparent;border-radius:12px;background:#f5f7f8;font-size:15px;line-height:1;font-weight:500;font-variant-numeric:tabular-nums;color:#72828a;cursor:pointer;transition:background .15s,border-color .15s}
.booking-wizard .calendar-day.available{background:#eff7f2;color:#274f40}
.booking-wizard .calendar-day.available:hover{background:#dfefe5;border-color:#a5cdb5}
.booking-wizard .calendar-day.selected{background:#17627d;border:1px solid #17627d;color:white;box-shadow:0 2px 6px #17627d20}
.booking-wizard .calendar-day.selected:hover{background:#12536b;border-color:#12536b}
.booking-wizard .calendar-day:disabled{background:transparent;color:#a8b2b7;opacity:1;cursor:default}
.booking-wizard .availability-bar{left:calc(50% - 2px);right:auto;bottom:7px;width:4px;height:4px;border-radius:50%;background:#bfcbd0}
.booking-wizard .available .availability-bar{background:#68a67a}
.booking-wizard .selected .availability-bar{background:white}
.booking-wizard .calendar-day:disabled .availability-bar{display:none}
.booking-wizard .calendar-key{margin:18px 0 6px!important;gap:8px;font-size:11px!important;color:#607782;line-height:1.5}
.booking-wizard .calendar-key span{width:6px;height:6px;flex:none;background:#68a67a;border-radius:50%}
.booking-wizard #calendar-status{font-size:11px;line-height:1.5;color:#687e88;margin:0 0 4px}
.booking-wizard #booking-step-2 .booking-hint{padding-top:12px;border-top:1px solid #edf1f3;color:#687e88;line-height:1.6}
.booking-wizard .wizard-times{padding-top:4px}.booking-wizard .wizard-times h3{font-size:16px;font-weight:600;margin:4px 0 12px}
@media(max-width:400px){.booking-wizard .calendar-week,.booking-wizard .calendar-days{gap:4px}.booking-wizard .calendar-day{height:44px;min-height:44px;border-radius:10px;font-size:14px}.booking-wizard .calendar-heading h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.booking-wizard .calendar-day{transition:none}}

.customer-compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}.customer-compact-grid>div{min-width:0}.customer-postal{display:flex;align-items:center;gap:12px}.booking-wizard #booking-step-3 .customer-postal input{width:100px;flex:0 0 100px}.customer-postal span{font-size:12px;line-height:1.4;color:#657e89}.booking-wizard #booking-step-3 .customer-privacy{margin-top:14px;font-size:11px!important}.customer-privacy a{text-decoration:underline}.booking-wizard #customer-feedback:empty{display:none}.booking-wizard #booking-step-3{max-width:760px;margin-inline:auto}.booking-wizard #booking-step-3 .step-content>p:first-child{margin:0 0 8px}.booking-wizard #booking-step-3 input{height:44px}.booking-wizard #booking-step-3 input[type=checkbox]{height:17px;min-height:17px}.booking-wizard #booking-step-3 #phone-help{margin:8px 0;font-size:11px!important}@media(max-width:520px){.customer-compact-grid{grid-template-columns:1fr;gap:2px}.booking-wizard #booking-step-3 .customer-postal input{width:110px;flex-basis:110px}}

/* Override the legacy two-column mobile progress layout. */
@media(max-width:760px){
 .booking-wizard .booking-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));flex-wrap:nowrap;gap:0;width:100%;padding:8px 4px;margin:14px 0 10px}
 .booking-wizard .booking-progress li{display:block;width:auto;min-width:0;flex:auto;margin:0;padding:0}
 .booking-wizard .booking-progress button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:48px;gap:5px;padding:3px 1px;font-size:10px;line-height:1.3;white-space:nowrap}
 .booking-wizard .booking-progress button span{width:24px;height:24px;flex:none;font-size:11px}
 .booking-wizard .booking-shell{width:100%;min-width:0;padding:18px 12px}.booking-wizard .booking-title h1{font-size:25px;line-height:1.2}
 .booking-wizard .booking-header{gap:12px}.booking-wizard .booking-header>a:last-child{font-size:11px;text-align:right;line-height:1.4}
 .booking-wizard .booking-panel,.booking-wizard .booking-summary{min-width:0;max-width:100%;padding:18px}
 .booking-wizard .booking-alert{padding:10px 12px;font-size:12px;line-height:1.5}
 .booking-wizard .wizard-toolbar{margin:0 0 6px;min-height:28px}
 .booking-wizard .payment-options .check-label{min-width:0;flex-basis:100%}
 .booking-wizard .service-option>span:not(.service-price){min-width:0}.booking-wizard .service-price{flex-shrink:0}
 .booking-wizard .wizard-overview{overflow-wrap:anywhere}
 .booking-wizard .messenger-chat{padding:12px;right:10px;bottom:10px}.booking-wizard .messenger-chat span{display:none}.booking-wizard .messenger-chat svg{width:24px;height:24px}
}
