/* Step 03 extends the existing transparent booking material without shared overrides. */
.booking-delivery{border-top:1px solid #80bfe133;margin-top:18px;padding-top:24px}
.booking-delivery h3,.booking-delivery legend{font:400 25px/1.2 var(--serif);margin:0 0 12px}
.booking-delivery fieldset{border:0;padding:0;min-width:0;margin:20px 0 0}
.delivery-address-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.delivery-field-wide{grid-column:1/-1}
.booking-delivery label{font-size:13px;line-height:1.6;min-width:0}
.booking-delivery label>span:not(.delivery-service-copy){color:#b4c4d5}
.booking-delivery :is(input:not([type=radio]):not([type=checkbox]),textarea,select){display:block;width:100%;min-width:0;min-height:44px;margin-top:6px;padding:10px 12px;border:1px solid #80bfe155;border-radius:6px;background:#07152326;color:#f5f7fb;font:400 14px/1.5 var(--sans);color-scheme:dark}
.booking-delivery textarea{resize:vertical}
.booking-delivery :is(input,textarea,select):focus-visible{outline:2px solid #80d6ff;outline-offset:3px}
.delivery-address-choice{margin-top:20px}
.delivery-same-address{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.booking-delivery :is(input[type=checkbox],input[type=radio]){width:18px;height:18px;accent-color:#5ed1ff;flex-shrink:0}
.delivery-scheduling-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.delivery-window-preview{min-height:3.2em;margin:10px 0 0}
.delivery-services{grid-auto-rows:1fr;gap:12px;margin:14px 0 0}
.booking-delivery-service{flex-direction:row;align-items:flex-start;gap:12px;padding:16px;cursor:pointer}
.booking-delivery-service input{margin-top:5px}
.booking-delivery-service:has(input:focus-visible){outline:2px solid #80d6ff;outline-offset:5px}
.delivery-service-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.delivery-service-name{font:400 24px/1.2 var(--serif);overflow-wrap:anywhere}
.delivery-service-description{color:#b4c4d5;font-size:13px;line-height:1.6}
.delivery-service-price{color:#80d6ff;font-size:13px;font-variant-numeric:tabular-nums}
.delivery-distance{margin-top:20px}
.delivery-distance-pending{color:#80d6ff}
.delivery-preview-status{min-height:3.2em;margin-top:16px}

@media(max-width:600px){.delivery-address-grid,.delivery-scheduling-fields{grid-template-columns:1fr}}

/* Contact data stays local; only Step 03 receives these field styles. */
.delivery-contact{max-width:420px;margin-top:20px}
.delivery-phone-input{display:flex;align-items:center;min-width:0;margin-top:6px;border:1px solid #80bfe155;border-radius:6px;background:#07152326}
.delivery-phone-input>span{padding:0 14px;border-right:1px solid #80bfe155;font-size:14px;flex-shrink:0}
.booking-delivery .delivery-phone-input input[type=tel]{flex:1;min-width:0;margin:0;border:0;background:transparent}
.delivery-phone-input:has(input[aria-invalid=true]){border-color:#ffb7b7}
.delivery-phone-message{min-height:3em;margin:6px 0 0;font-size:13px;line-height:1.5;color:#ffb7b7}

/* Step 03 layout uses the existing fields and summary values. */
.booking-page .delivery-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);align-items:start;gap:clamp(24px,3vw,42px);margin-top:28px}
.booking-page .delivery-fields,.booking-page .delivery-order-card{min-width:0}
.booking-page .delivery-group{padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid #d8c09b42}
.booking-page .delivery-group:last-of-type{margin-bottom:0}
.booking-page .delivery-group>h3{margin:0 0 5px;color:#efc17e;font:400 28px/1.2 var(--serif)}
.booking-page .delivery-group>p{margin:0 0 12px}
.booking-page .delivery-group fieldset{margin:16px 0 0}
.booking-page .delivery-group legend{font-size:21px;margin-bottom:6px}
.booking-page .delivery-contact{margin-top:14px}
.booking-page .delivery-address-choice{margin-top:14px}
.booking-page .delivery-address-grid{gap:10px 14px}
.booking-page .delivery-scheduling-fields{margin-top:10px}
.booking-page .delivery-window-preview{min-height:0;margin-bottom:0}
.booking-page .delivery-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.booking-page .booking-delivery-service{min-height:116px;padding:14px;align-items:flex-start}
.booking-page .delivery-service-copy{gap:4px}
.booking-page .delivery-service-name{font-size:21px}
.booking-page .delivery-service-description{font-size:12px}
.booking-page .delivery-distance{margin-top:16px}
.booking-page .delivery-distance h3{font-size:20px;margin-bottom:2px}
.booking-page .delivery-distance p,.booking-page .delivery-preview-status{margin:0;min-height:0}
.booking-page .delivery-order-card{position:sticky;top:90px;padding:24px;border:1px solid #d8c09b70;border-top:2px solid #efc17e;border-radius:12px;background:#11263f}
.booking-page .delivery-order-card .booking-summary{border:0;margin:0;padding:0}
.booking-page .delivery-order-card .booking-summary h2{font-size:29px;margin:0 0 18px}
.booking-page .delivery-summary-compact{margin:0}
.booking-page .delivery-order-card .delivery-summary-compact>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid #d8c09b2b}
.booking-page .delivery-order-card .delivery-summary-compact dd{color:#f5f7fb}
.booking-page .delivery-order-card .delivery-summary-compact .booking-subtotal dd{color:#efc17e;font-weight:600}
.booking-page .delivery-summary-details{margin-top:14px}
.booking-page .delivery-summary-details summary{display:inline-flex;align-items:center;min-height:44px;color:#efc17e;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.booking-page .delivery-summary-details summary:focus-visible{outline:2px solid #efc17e;outline-offset:3px}
.booking-page .delivery-summary-details dl{margin-top:10px}
.booking-page .delivery-order-card .booking-price-note{font-size:11px;line-height:1.6;margin:14px 0 0}
@media(max-width:850px){.booking-page .delivery-layout{grid-template-columns:1fr}.booking-page .delivery-order-card{position:static}}
@media(max-width:520px){.booking-page .delivery-services{grid-template-columns:1fr}.booking-page .booking-delivery-service{min-height:0}.booking-page .delivery-order-card{padding:18px}}
.booking-page .delivery-summary-compact>[hidden],.booking-page .delivery-summary-details[hidden]{display:none!important}
.booking-page .delivery-summary-compact small{display:block;font-size:10px;color:#efc17e;letter-spacing:.04em}
.booking-page .order-summary-slot{min-width:0}
.booking-page [data-summary-slot="boxes"] .delivery-order-card{position:static}
.booking-page [data-summary-slot="review"]{width:min(100%,420px);margin:22px 0 26px auto}
.booking-page [data-summary-slot="review"] .delivery-order-card{position:static}
.booking-page .delivery-order-card:is([data-summary-step="boxes"],[data-summary-step="laundry"]) .booking-price-note{display:none}
@media(max-width:850px){.booking-page [data-summary-slot="review"]{width:100%}}
/* Side slots span the full row so the sticky summary follows long steps. */
.booking-page .delivery-layout>.order-summary-slot{align-self:stretch}
.booking-page .laundry-layout{margin-top:0}
