/* Compact widget layout based on the supplied Salonized example. */
body:has(.booking-shell){background:#f7f8f9;font-family:Arial,Helvetica,sans-serif;color:#282f2f}
body:has(.booking-shell) main{width:500px;max-width:calc(100% - 32px);padding:0;margin:40px auto 0}
.booking-shell{height:calc(100dvh - 80px);min-height:560px;display:flex;flex-direction:column;border-radius:12px;box-shadow:0 0 12px #00000024;overflow:hidden}
.booking-heading{padding:18px 16px;min-height:68px;flex-shrink:0;gap:12px}
.booking-heading h2{font-size:16px;font-weight:700;line-height:1.4}
.nl-flag{width:24px;height:24px}.heading-spacer{width:24px;flex-shrink:0}
.booking-shell .wizard-back{width:24px;font-size:30px!important}
.booking-intro{font-size:15px;line-height:1.25;padding:14px;min-height:62px;flex-shrink:0;gap:15px;background:#fff7d7}
.booking-intro .dismiss-intro{font-size:24px;padding:0!important;flex-shrink:0}
#booking-form{display:flex;flex-direction:column;min-height:0;flex:1}
#booking-form>[data-step]{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.vehicle-picker{padding:12px 14px}.vehicle-picker label{font-size:11px;margin-bottom:5px}.vehicle-picker select{font-size:13px;padding:10px;line-height:1.3}
.service-tabs{gap:12px;padding:4px 14px 14px}.service-tabs a{font-size:12px;padding:12px 18px;box-shadow:0 0 8px #0000000b}
.service-search{padding:15px 14px;gap:14px;box-shadow:0 -6px 14px #00000006}.service-search>span{font-size:28px}.service-search input[type=search]{font-size:15px;padding:5px 0}
.service-group h3{font-size:14px;padding:30px 14px 12px;letter-spacing:0;font-weight:400}
.service-row{min-height:92px;padding:20px 14px;gap:14px}.service-copy strong{font-size:16px;line-height:1.35}.service-copy>span{font-size:11px;line-height:1.4;color:#969a9a}.service-prices .vehicle-rate>span{font-size:15px}.service-prices small{font-size:11px;color:#949999}.service-row input[type=radio],.service-row input[type=checkbox]{height:22px;width:22px;border-width:1px}.service-row input:checked:after{left:6px;top:3px;width:6px;height:9px;border-width:0 2px 2px 0}
.booking-total{position:relative;bottom:auto;padding:14px;flex-shrink:0;min-height:90px;gap:16px;box-shadow:0 -5px 14px #00000005}.booking-total>div>span{font-size:13px}.booking-total strong{font-size:25px}.booking-total small{font-size:11px}.booking-shell .booking-total .time-link{font-size:15px;padding:17px 16px;border-radius:6px}.time-link:disabled{opacity:.45;cursor:default}
.booking-shell .date-step{padding:15px 14px;background:#fdfdfd;min-height:0}.chosen-treatment{margin-bottom:34px;padding:18px 14px;gap:14px}.chosen-treatment strong{font-size:16px}.chosen-treatment div>span{font-size:12px}.vehicle-icon{width:40px;height:40px;font-size:25px}
.week-navigation{gap:5px}.day-cards{gap:6px}.week-navigation>button{font-size:22px!important;padding:3px!important}.booking-shell .day-card{padding:8px 1px;border-radius:5px}.day-number{font-size:25px}.day-name,.day-month{font-size:10px}#availability-message{font-size:15px;margin:34px 0 22px;line-height:1.5}.time-buttons{grid-template-columns:repeat(4,1fr);gap:10px}.booking-shell .time-buttons button{font-size:16px;padding:12px 5px;border-radius:6px;min-height:45px;box-shadow:0 1px 10px #0000000c}
.booking-shell .booking-step{padding:16px 14px;background:#fdfdfd}.details-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.details-heading h3{font-size:15px;margin:0}.details-heading>span{font-size:11px;color:#969a9a}.booking-step .fields{display:block}.booking-step .fields label{font-size:12px;margin:0 0 14px;color:#7e8585}.booking-step input:not([type=checkbox]){max-width:none;border:1px solid #ddd;font-size:14px;padding:13px;border-radius:7px;margin-top:5px}.booking-step input::placeholder{color:#b1b5b5}
.appointment-review{border:1px solid #ddd;border-radius:8px;padding:14px;margin:20px 0;background:#fff;font-size:14px}.appointment-review #selected-appointment{display:block;background:none;padding:0;margin:0 0 7px;color:#282f2f;font-size:15px}.appointment-review #review-vehicle{display:block;font-size:12px;color:#949999;margin-bottom:15px}#review-services>div,.review-total{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid #eee}#review-services>div>span:last-child{white-space:nowrap}.review-total{padding-bottom:0}.booking-shell .consent{font-size:12px;line-height:1.6;margin-top:20px}.privacy{font-size:11px;line-height:1.6}.booking-step button[value=book]{width:100%;font-size:15px;margin-top:12px}
.widget-brand{text-align:center;font-size:11px;color:#999;margin:12px 0}.widget-brand span{margin:0 6px}.widget-brand a{text-decoration:none}
@media(max-width:550px){body:has(.booking-shell) main{max-width:100%;width:100%;margin:0}.booking-shell{height:100dvh;min-height:0;border-radius:0;box-shadow:none}.widget-brand{display:none}.booking-heading{padding:18px 14px}.booking-heading h2{font-size:16px}.booking-intro{font-size:14px;padding:13px 14px}.service-row{gap:12px}.service-copy strong{font-size:15px}.day-cards{gap:4px}.day-number{font-size:23px}.day-name,.day-month{font-size:9px}.time-buttons{grid-template-columns:repeat(3,1fr)}}

#booking-form>[data-step="2"]{display:flex;flex-direction:column;overflow:hidden}.vehicle-picker,.service-tabs,.service-search{flex-shrink:0}.service-list-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.service-tabs a{line-height:1.2}

.booking-shell .vehicle-step{padding:0;background:#fff}.vehicle-instruction{font-size:14px;color:#8a9090;margin:0;padding:24px 16px 16px}.vehicle-options{padding-bottom:18px}.booking-shell .vehicle-choice{display:flex;width:100%;align-items:center;gap:15px;background:white;color:#282f2f;border-radius:0;border-bottom:1px solid #eee;padding:24px 16px;margin:0;text-align:left;min-height:84px}.booking-shell .vehicle-choice:hover{background:#f6f8f7}.vehicle-choice strong{flex:1;font-size:15px;line-height:1.5}.vehicle-choice>span:last-child{font-size:27px;font-weight:400;color:#979d9b}.vehicle-choice-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:#f1f2f2;font-size:23px;font-weight:400}

.booking-shell .vehicle-choice{cursor:pointer;font-weight:400}.vehicle-choice input[type=radio]{appearance:none;flex-shrink:0;width:24px;height:24px;margin:0;border:1.5px solid #282f2f;border-radius:50%;position:relative}.vehicle-choice input:checked{background:#282f2f}.vehicle-choice input:checked:after{content:'';position:absolute;left:7px;top:4px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.vehicle-continue{padding:16px 14px;border-top:1px solid #eee;display:flex;justify-content:flex-end;flex-shrink:0;background:white}.booking-shell #choose-programme{font-size:15px;padding:16px 22px;margin:0;border-radius:6px}.booking-shell #choose-programme:disabled{opacity:.45;cursor:default}.vehicle-choice:has(input:checked){background:#f8faf9}

.customer-login{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f0f4f2;border-radius:7px;padding:12px;margin-bottom:20px;font-size:12px;line-height:1.5}.booking-shell .customer-login button{padding:8px 14px;margin:0;font-size:12px;flex-shrink:0}.customer-login a{white-space:nowrap}.account-button{display:inline-block;background:#283130;color:white;padding:12px 18px;border-radius:7px;text-decoration:none;margin-right:12px}

.account-shell .account-content{flex:1;min-height:0;overflow-y:auto;padding:24px 20px;background:#fdfdfd}.booking-shell.account-shell section{margin:0;padding:0;background:transparent;border:0;border-radius:0;max-width:none}.account-back{width:24px;flex-shrink:0;font-size:32px;line-height:1;text-decoration:none;color:#282f2f}.account-content p{font-size:14px;color:#808787;line-height:1.6;margin:0 0 24px}.account-content label{font-size:12px;color:#737c7b;margin:0 0 20px}.account-content input{display:block;width:100%;max-width:none;font-size:14px;border:1px solid #ddd;border-radius:7px;padding:14px;margin-top:6px;background:#fff;color:#282f2f}.booking-shell .account-content button{width:100%;margin:8px 0 22px;font-size:15px;padding:15px;border-radius:6px}.account-content a{font-size:13px;color:#555f5c}.account-content strong{color:#282f2f}.account-content .error{color:#a43434;padding:14px;font-size:13px;margin-bottom:24px}.account-content .account-card>p:last-child{text-align:center;margin-top:8px}

.booking-shell .confirmation-step{padding:24px 20px;background:#fdfdfd}.confirmation-success{text-align:center;padding:0 0 22px}.confirmation-check{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8f4ec;color:#278747;font-size:27px;margin:0 auto 14px}.confirmation-success h3{font-size:20px;margin:0 0 8px;line-height:1.4}.confirmation-success p{font-size:13px;color:#89908d;margin:0}.confirmation-details{padding:16px;background:#fff;border:1px solid #e2e5e3;border-radius:8px;font-size:13px}.confirmation-date{display:flex;justify-content:space-between;gap:10px}.confirmation-date>span{white-space:nowrap}.confirmation-details>p{color:#89908d;font-size:12px;margin:8px 0 16px}.confirmation-item{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #eee;padding:12px 0}.confirmation-item>span:last-child{white-space:nowrap}.confirmation-price{padding-bottom:0}.confirmation-reference{font-size:11px;color:#939a97;margin:16px 0 10px}.confirmation-reference span{display:block;overflow-wrap:anywhere;color:#69736e;margin-top:4px}.confirmation-note{font-size:11px;line-height:1.6;color:#959c98;margin:10px 0 22px}.confirmation-account{border-top:1px solid #e5e8e6;padding-top:22px}.confirmation-account h3{font-size:16px;margin:0 0 10px}.confirmation-account p{font-size:12px;color:#8b938f;line-height:1.6;margin:0 0 18px}.confirmation-primary{display:block;padding:14px;background:#283130;color:#fff;text-decoration:none;text-align:center;border-radius:6px;font-weight:700;font-size:14px}.confirmation-secondary,.confirmation-new{display:block;text-align:center;font-size:12px;color:#737d77;margin:15px 0}.confirmation-new{margin-top:25px}

.confirmation-calendar{margin-top:16px;border:1px solid #dfe4e1;border-radius:7px;background:#fff}.confirmation-calendar summary{cursor:pointer;list-style:none;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600}.confirmation-calendar div{border-top:1px solid #eee;padding:5px}.confirmation-calendar a{display:block;padding:10px;border-radius:4px;font-size:12px;text-decoration:none;color:#58645d}.confirmation-calendar a:hover{background:#f0f4f1}.confirmation-calendar p{font-size:10px;line-height:1.5;color:#919993;padding:0 14px 10px;margin:6px 0}

.confirmation-calendar{margin:0 0 18px;text-align:left}.confirmation-calendar a{display:flex;align-items:center;gap:12px;padding:11px 10px}.agenda-icon{display:inline-flex;width:22px;height:22px;flex-shrink:0;align-items:center;justify-content:center}.agenda-icon svg{width:22px;height:22px}.agenda-summary-label{display:flex;align-items:center;gap:10px}.confirmation-thanks{color:#89908d;font-size:12px;text-align:center;margin:0 0 18px}

.customer-autofill-status{font-size:11px;color:#77877e;margin:0 0 14px}
