.checkout-steps{display:flex;list-style:none;gap:20px;padding:0;margin:0 auto 30px;flex-wrap:wrap;font-size:15px}
.checkout-steps li{border-bottom:2px solid var(--line);padding:12px 0;color:var(--muted)}
.checkout-steps [aria-current=step]{border-color:var(--blue);color:var(--navy);font-weight:700}
.checkout-intro{max-width:820px;margin:30px 0}
.customer-layout>*{min-width:0}
#customer-form fieldset{border:0;margin:0 0 32px;padding:0;min-width:0}
#customer-form fieldset fieldset{margin-bottom:12px}
#customer-form legend{font-size:22px;font-weight:700;line-height:1.3;color:var(--navy);padding:0;margin:0 0 24px;width:100%}
#customer-form .accept-row{display:flex;align-items:flex-start;gap:12px;margin:20px 0;font-size:15px;line-height:1.6;font-weight:400}
#customer-form .accept-row input{width:21px;height:21px;min-width:21px;min-height:21px;margin:3px 0 0;accent-color:var(--navy);padding:0}
#customer-form .accept-row span{min-width:0;overflow-wrap:anywhere}
#customer-form textarea{resize:vertical;min-height:110px;max-width:100%}
#customer-form input,#customer-form select{width:100%;min-width:0;min-height:48px}
.customer-summary{align-self:start;position:static}
.customer-summary h2{font-size:26px}
.customer-summary .summary-row{gap:16px}
.customer-summary .summary-row strong{white-space:nowrap}
.customer-summary .mail-preview{font-family:inherit;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.customer-summary .actions{display:grid;grid-template-columns:1fr;margin-bottom:20px}
#customer-heading,#quote-step,#customer-step{scroll-margin-top:110px}
@media(max-width:599px){.checkout-steps{gap:12px;font-size:13px}.customer-layout .form-panel,.customer-summary{padding:20px}#customer-form legend{font-size:20px}.customer-summary .summary-total{font-size:40px}}

.ifc-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.mail-submit-panel{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.mail-accept{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-weight:400;font-size:14px;line-height:1.5}
.mail-accept input{width:20px;height:20px;flex:0 0 20px;margin-top:2px;accent-color:var(--navy)}
#mail-status{overflow-wrap:anywhere;font-size:15px}

/* Errors stay visible on desktop and mobile, with text as well as color. */
.customer-layout [aria-invalid="true"]{border:2px solid #b42318!important;outline-color:#b42318;background-color:#fff4f2}
.customer-layout .has-error{scroll-margin-top:120px}
.customer-layout .field-error{display:block;width:100%;margin-top:8px;color:#a51d14;font-size:14px;font-weight:600;line-height:1.5}
.customer-layout .field-error[hidden]{display:none}
.customer-layout .accept-row.has-error,.customer-layout .mail-accept.has-error{flex-wrap:wrap;border:2px solid #b42318;border-radius:6px;padding:12px;background:#fff4f2}
.customer-layout .accept-row.has-error>span:not(.field-error),.customer-layout .mail-accept.has-error>span:not(.field-error){flex:1}
#customer-error{padding:14px;border:2px solid #b42318;border-radius:6px;color:#a51d14;background:#fff4f2}

#mail-status.request-error{padding:14px;border:2px solid #b42318;border-radius:6px;background:#fff4f2;color:#a51d14}

/* Dedicated final step: one clear reading and submission flow. */
#customer-step.review-mode .customer-layout{display:block;max-width:1100px;margin-inline:auto}
#customer-step.review-mode .checkout-intro,#customer-step.review-mode #back-quote{display:none}
#customer-step.review-mode .customer-summary> :not(#customer-result){display:none}
#customer-step.review-mode .customer-summary{background:#fff;border:1px solid var(--line);padding:32px}
#review-heading{scroll-margin-top:120px;font-size:32px}
#customer-result{scroll-margin-top:120px}
.review-ready{background:#edf7f0;border-left:4px solid #287246;padding:18px;margin:20px 0;color:#194e30}
.review-ready p{margin-bottom:0}
.review-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.review-card{padding:20px;background:#f3f6fa;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.review-card h3{font-size:18px;margin:0 0 16px}
.review-card p{font-size:15px;line-height:1.6;margin:8px 0}
.accuracy-notice{font-size:16px;font-weight:600;line-height:1.6}
.review-mode .mail-submit-panel{max-width:760px;margin:24px auto 0;padding:24px;background:#edf2f7;border-radius:8px}
.review-mode #send-customer-email{width:100%;min-height:56px;font-size:18px}
@media(max-width:699px){.review-cards{grid-template-columns:1fr}#customer-step.review-mode .customer-summary{padding:20px}#review-heading{font-size:26px}.review-mode .mail-submit-panel{padding:16px}}
/* Google address assistance; native form remains usable without the provider. */
.address-search {margin: 0 0 24px; padding: 16px; background: #f3f7fb; border: 1px solid #d4e0ed; border-radius: 8px;}
.address-search gmp-place-autocomplete {display:block; width:100%; max-width:100%; color-scheme:light;}
#road-status {scroll-margin-top:110px; overflow-wrap:anywhere;}
#road-controls .accept-row {margin-top:16px;}
