*{box-sizing:border-box}body{margin:0;background:#f2f7fa;color:#183749;font:16px/1.6 system-ui,sans-serif}header{background:#073d53;color:white;padding:22px max(20px,calc((100vw - 1100px)/2));display:flex;justify-content:space-between;gap:20px}a{color:inherit}header>a{font-size:26px;font-weight:800;text-decoration:none}nav a{margin-left:12px}main{max-width:1100px;margin:40px auto;padding:0 20px}h1{font-size:clamp(28px,5vw,44px);line-height:1.2}section{background:white;padding:26px;margin:24px 0;border-radius:16px;border:1px solid #d9e6ed}h2{margin-top:0}label{display:block;margin:14px 0}input:not([type=radio]):not([type=checkbox]),select{display:block;width:100%;max-width:480px;border:1px solid #9ab2bf;border-radius:7px;background:white;padding:12px;font:inherit}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:#08768e;vertical-align:middle;margin-right:8px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card{padding:18px;border:1px solid #b4cad5;border-radius:12px;margin:0;cursor:pointer}.card:has(input:checked){outline:3px solid #08768e;background:#effbfc}.card span,.card small{display:block;margin-top:12px}.card strong{font-size:21px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}button{background:#08768e;color:white;border:0;border-radius:8px;padding:12px 20px;font:600 16px system-ui;cursor:pointer;margin:8px 0}button:hover{background:#05586b}input:focus,select:focus,button:focus,a:focus{outline:3px solid #f0ac20;outline-offset:3px}.error{padding:16px;border-left:5px solid #b42318;background:#ffebe8}.notice{border-left:5px solid #14814a}.muted,small{color:#486474}article{border-top:1px solid #d9e6ed;padding:18px 0;overflow-wrap:anywhere}footer{padding:28px;text-align:center;background:#dfeaf0}.login{max-width:450px} @media(max-width:550px){header{display:block}nav a{margin:0 16px 0 0}section{padding:18px}}

textarea{display:block;width:100%;max-width:750px;border:1px solid #9ab2bf;border-radius:7px;padding:12px;font:inherit;resize:vertical}textarea:focus{outline:3px solid #f0ac20;outline-offset:3px}.service-editor{border-top:1px solid #d9e6ed;padding:16px 0}.service-editor summary{cursor:pointer;font-weight:700}.service-editor form{padding-top:8px}

.extra-description{display:block;margin-left:32px;white-space:pre-line}.card span{white-space:pre-line}

[hidden]{display:none!important}.table-scroll{overflow-x:auto}.rate-table{width:100%;border-collapse:collapse}.rate-table th,.rate-table td{padding:10px;text-align:left;border-bottom:1px solid #d9e6ed}.rate-table td input{min-width:100px}.rate-table th{font-weight:600}.check .vehicle-rate{display:inline}

/* Booking layout inspired by the supplied service selection reference. */
body:has(.booking-shell){background:#f6f7f8;color:#2a3131}
body:has(.booking-shell)>header,body:has(.booking-shell) main>h1,body:has(.booking-shell)>footer{display:none}
body:has(.booking-shell) main{max-width:850px;margin:32px auto;padding:0 20px}
.booking-shell{background:white;border-radius:20px;box-shadow:0 3px 22px #0000001c;overflow:clip}
.booking-heading{display:flex;align-items:center;justify-content:space-between;padding:30px 26px;gap:15px}
.booking-heading h2{margin:0;font-size:26px;font-weight:750}
.nl-flag{display:block;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:linear-gradient(#ae0920 0 33.33%,#fff 33.33% 66.66%,#0756b1 66.66%)}
.manage-link{font-size:13px;text-decoration:none;color:#737b7b}
.booking-intro{padding:20px 24px;display:flex;gap:20px;align-items:center;justify-content:space-between;background:#fff5d3;font-size:19px;line-height:1.5}
.booking-intro .dismiss-intro{margin:0;padding:0;background:transparent;color:#929183;font-size:32px;font-weight:400;line-height:1}
.vehicle-picker{padding:20px 24px;background:#fff}
.vehicle-picker label{font-size:13px;font-weight:650;color:#737b7b;margin:0 0 7px}
.vehicle-picker select{width:100%;max-width:none;color:#2a3131;border-color:#dfe3e3;border-radius:9px}
.service-tabs{display:flex;gap:14px;padding:8px 24px 24px;overflow:auto}
.service-tabs a{padding:12px 24px;border-radius:40px;background:white;box-shadow:0 1px 10px #00000014;white-space:nowrap;text-decoration:none;font-weight:700}
.service-tabs a.active{background:#283130;color:white}
.service-search{display:flex;align-items:center;gap:16px;background:#f8f8f8;border-top:1px solid #f2f2f2;border-bottom:1px solid #ddd;padding:20px 24px}
.service-search>span{font-size:36px;line-height:1;color:#aaa}
.service-search input[type=search]{max-width:none;border:0;background:transparent;font-size:20px;padding:6px 0;border-radius:0}
.service-search input::placeholder{color:#a8adad}
.booking-shell section{margin:0;border:0;border-radius:0;padding:0}
.service-group h3{font-size:16px;letter-spacing:.035em;color:#808585;font-weight:400;margin:0;padding:28px 24px 12px}
.service-row{display:flex;align-items:center;gap:18px;padding:28px 24px;margin:0;border-bottom:1px solid #e9eaea;cursor:pointer}
.service-row:hover{background:#fafbfb}
.service-row input[type=radio],.service-row input[type=checkbox]{appearance:none;flex-shrink:0;width:28px;height:28px;margin:0;border:1.5px solid #2a3333;border-radius:50%;position:relative;accent-color:#283130}
.service-row input:checked{background:#283130}
.service-row input:checked:after{content:'';position:absolute;left:8px;top:4px;width:7px;height:12px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}
.service-copy{flex:1;min-width:0}
.service-copy strong{display:block;font-size:20px;line-height:1.4}
.service-copy>span{display:block;color:#858a8a;font-size:13px;line-height:1.6;white-space:pre-line;margin-top:5px}
.service-prices{text-align:right;flex-shrink:0}
.service-prices .vehicle-rate>span{font-size:20px;white-space:nowrap}
.service-prices small{display:block;color:#8c9292;font-size:13px;margin-top:5px}
.booking-shell .booking-step{padding:26px 24px;border-top:1px solid #e9eaea}
.booking-step h3{font-size:23px;margin:0 0 20px}
.booking-step input:not([type=checkbox]),.booking-step select{border-color:#d1d8d8;color:#2a3131}
.booking-shell button,.time-link{background:#283130;color:white;border-radius:8px;padding:15px 20px;font-weight:700;text-decoration:none}
.booking-shell button:hover,.time-link:hover{background:#3e4b49}
.booking-shell .dismiss-intro:hover{background:transparent;color:#4a504e}
.booking-shell .consent{display:flex;align-items:flex-start;gap:10px;font-size:14px}
.booking-shell .consent input{flex-shrink:0;margin-top:3px}
.privacy{font-size:12px;color:#808888}
.booking-total{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;padding:20px 24px;border-top:1px solid #e9eaea;box-shadow:0 -8px 20px #00000006}
.booking-total>div>span{display:block;font-size:15px;color:#757c7b}
.booking-total strong{display:block;font-size:30px;line-height:1.4;font-weight:800}
.booking-total small{display:block;font-size:12px;color:#858b8a}
.time-link{font-size:19px;white-space:nowrap;padding:20px 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#no-results{padding:16px 24px}
.service-group,.booking-step{scroll-margin-top:20px}
@media(max-width:550px){body:has(.booking-shell) main{padding:0;margin:0}.booking-shell{border-radius:0}.booking-heading{padding:22px 18px}.booking-heading h2{font-size:23px}.booking-intro{font-size:16px;padding:16px 18px}.vehicle-picker,.service-search{padding:18px}.service-tabs{padding:4px 18px 20px}.service-row{padding:24px 18px;gap:12px}.service-copy strong{font-size:17px}.service-copy>span{font-size:12px}.service-prices .vehicle-rate>span{font-size:17px}.booking-shell .booking-step{padding:24px 18px}.booking-total{padding:16px 18px;gap:10px}.time-link{padding:16px;font-size:17px}.booking-total strong{font-size:26px}.booking-total small{font-size:11px}}

.wizard-back{background:transparent!important;color:#283130!important;padding:0!important;font-size:42px!important;line-height:1;width:36px}.booking-shell .date-step{padding:24px;min-height:600px;background:#fdfdfd}.chosen-treatment{display:flex;align-items:center;gap:18px;padding:22px;background:white;box-shadow:0 1px 14px #00000012;margin-bottom:40px}.chosen-treatment strong{display:block;font-size:20px}.chosen-treatment div>span{display:block;color:#858989;font-size:14px;margin-top:4px}.vehicle-icon{display:grid;place-items:center;background:#eee;width:52px;height:52px;border-radius:50%;font-size:32px;flex-shrink:0}.week-navigation{display:flex;align-items:center;gap:10px}.week-navigation>button{padding:8px!important;color:#283130!important;background:transparent!important;font-size:26px!important;margin:0}.week-navigation>button:disabled{color:#c3c5c5!important;cursor:default}.day-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;flex:1}.booking-shell .day-card{background:white;color:#414747;border:1px solid #e5e7e7;border-radius:7px;padding:10px 2px;margin:0;font-weight:400}.day-card span{display:block}.day-name,.day-month{font-size:12px}.day-number{font-size:30px;font-weight:750;line-height:1.4}.booking-shell .day-card.selected{background:#283130;color:white}.booking-shell .day-card:disabled{background:repeating-linear-gradient(135deg,#fff,#fff 3px,#ededed 3px,#ededed 5px);color:#aaa;cursor:default}#availability-message{text-align:center;color:#909595;margin:38px 0 26px;font-size:18px}.time-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.booking-shell .time-buttons button{background:white;color:#283130;font-weight:400;font-size:20px;box-shadow:0 1px 10px #00000012;padding:15px 10px;margin:0}.booking-shell .time-buttons button:hover{background:#283130;color:white}.booking-shell .booking-total .time-link{margin:0}#selected-appointment{padding:16px;background:#f4f6f5;border-radius:8px;color:#58625e}.booking-heading h2{text-align:center;flex:1}.booking-heading .manage-link{width:40px;text-align:right}
@media(max-width:550px){.booking-shell .date-step{padding:20px 12px}.chosen-treatment{padding:18px;margin-bottom:28px}.chosen-treatment strong{font-size:17px}.day-cards{gap:4px}.week-navigation{gap:2px}.week-navigation>button{padding:4px!important;font-size:21px!important}.day-number{font-size:24px}.day-name,.day-month{font-size:10px}.time-buttons{grid-template-columns:repeat(3,1fr);gap:10px}.booking-shell .time-buttons button{font-size:18px;padding:14px 8px}#availability-message{font-size:16px;margin:28px 0 20px}.booking-heading h2{font-size:21px}}

.account-card{max-width:550px}.account-card input{max-width:none}
