.booking-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px max(20px, calc((100vw - 1040px)/2)); border-bottom:1px solid var(--line); }
.booking-header img { width:170px; max-height:64px; object-fit:contain; }
.booking-header a:last-child, #booking-estimate-summary a { color:var(--green-dark); text-decoration:underline; }
.booking-main { width:min(100% - 32px, 900px); margin:48px auto 80px; }
.booking-test-label { color:var(--green-dark); font-weight:700; text-transform:uppercase; font-size:.78rem; }
.booking-main h1 { font-size:clamp(1.9rem, 4vw, 2.8rem); margin:0 0 8px; }
.booking-intro { color:var(--muted); max-width:680px; margin-bottom:36px; }
.booking-block { border-top:1px solid var(--line); padding:28px 0; }
.booking-block h2 { font-size:1.3rem; margin:0 0 18px; }
.booking-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; }
.booking-block label { display:block; font-weight:600; font-size:.94rem; margin-bottom:18px; }
.booking-block input:not([type=checkbox]):not([type=radio]), .booking-block select, .booking-block textarea { display:block; width:100%; margin-top:7px; padding:11px 12px; border:1px solid #b9c9c0; border-radius:5px; background:white; color:var(--ink); font:inherit; font-weight:400; }
.booking-block input:focus-visible, .booking-block select:focus-visible, .booking-block textarea:focus-visible { outline:2px solid var(--green-dark); outline-offset:2px; }
.booking-optional { color:var(--muted); font-weight:400; }
.booking-block .booking-check { display:flex; align-items:flex-start; gap:10px; font-weight:400; max-width:690px; }
.booking-extras { border:0; padding:0; margin:10px 0 20px; }
.booking-rooms { border:0; padding:0; margin:10px 0 20px; }
.booking-service-options { border:0; padding:0; margin:22px 0 20px; }
.booking-service-options legend { font-weight:700; margin-bottom:10px; }
.booking-block .booking-service-options .estimate-option { display:flex; align-items:center; margin-bottom:0; font-weight:400; }
.booking-rooms legend { font-weight:700; margin-bottom:10px; }
.booking-rooms label { margin-bottom:0; }
.booking-rooms .room-counter { display:grid; grid-template-columns:40px minmax(0,1fr) 40px; align-items:center; gap:4px; width:100%; max-width:190px; }
.booking-block .booking-rooms .room-counter input { width:100%; min-width:0; margin-top:0; padding:8px 2px; text-align:center; }
.booking-rooms .room-counter button { height:44px; width:40px; border:1px solid #b9c9c0; border-radius:5px; background:white; color:var(--ink); font:700 1.3rem/1 system-ui,sans-serif; cursor:pointer; }
.booking-rooms .room-counter button:hover { background:var(--mint); border-color:var(--green-dark); }
.booking-rooms .room-counter button:focus-visible { outline:2px solid var(--green-dark); outline-offset:2px; }
.booking-rooms .room-counter input::-webkit-inner-spin-button, .booking-rooms .room-counter input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.booking-rooms .room-counter input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
.booking-extras legend { font-weight:700; margin-bottom:10px; }
.booking-extras label { display:flex; gap:8px; align-items:center; margin-bottom:4px; }
.booking-extras .estimate-addon { margin-bottom:0; }
.booking-extras .estimate-addon-frequency { margin-top:6px; }
#booking-direct-scope.is-recurring .estimate-addon-item:has(.estimate-addon input:checked) .estimate-addon-frequency { display:flex; }
.booking-extra-timing { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid var(--line); }
.booking-extra-timing label { margin:0; }
.booking-extra-timing select { width:auto; min-width:150px; margin:0; }
.booking-check input { margin-top:5px; }
#booking-estimate-summary, #booking-direct-scope { background:var(--paper); border:1px solid var(--line); padding:18px; border-radius:6px; }
#booking-summary-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 20px; margin:14px 0; }
#booking-summary-list div { border-bottom:1px solid var(--line); padding:8px 0; }
#booking-summary-list dt { color:var(--muted); font-size:.8rem; }
#booking-summary-list dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.booking-next { border-top:1px solid var(--line); padding:24px 0; }
.booking-next p { color:var(--muted); }
#booking-review { background:var(--mint); border:1px solid var(--green); border-radius:6px; padding:16px; }
#booking-review h2 { font-size:1.25rem; margin:0 0 8px; }
#booking-review dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; }
#booking-review dt { color:var(--muted); font-size:.8rem; }
#booking-review dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.booking-honeypot { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; }
#booking-review button { margin-top:12px; }
#booking-review [role="status"] { margin:12px 0 0; }
#booking-card-embed { width:100%; }
@media(max-width:650px) { .booking-header { padding:10px 16px; } .booking-header img { width:130px; } .booking-main { margin-top:30px; } .booking-grid, #booking-summary-list, #booking-review dl { grid-template-columns:1fr; } .booking-rooms #booking-room-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } .booking-rooms .room-counter { max-width:none; } .booking-extra-timing { align-items:flex-start; flex-direction:column; } }
