.quote-engine-page { background:#5d48a6; }
.quote-introduction { max-width:1160px; margin:0 auto; padding:38px 24px 24px; color:#fff; }
.quote-introduction h1 { color:#fff; font-size:clamp(2rem,5vw,3.5rem); margin:.25em 0; overflow-wrap:anywhere; }
.quote-introduction p { max-width:680px; color:#fff; }
.quote-introduction .eyebrow { color:#eee9ff; letter-spacing:.12em; text-transform:uppercase; font-weight:700; font-size:.8rem; }
.quote-engine-container { display:grid; grid-template-columns:250px minmax(0,1fr); max-width:1160px; margin:0 auto 48px; border-radius:16px; background:#fff; box-shadow:0 18px 48px #23154d44; }
.quote-sidebar { padding:32px 24px; background:#222c40; color:#fff; border-radius:16px 0 0 16px; min-width:0; }
.quote-progress { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.progress-step { display:flex; align-items:center; gap:12px; padding:12px 0; color:#d7dfef; }
.progress-step.active { color:#fff; font-weight:700; }
.step-number { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:50%; background:#45536c; color:#fff; }
.progress-step.active .step-number { color:#222c40; background:#f6c75b; }
.progress-step.completed .step-number { background:#226b52; }
.quote-help { border-top:1px solid #536079; margin-top:32px; padding-top:24px; font-size:.875rem; }
.quote-help h2 { font-size:1.15rem; color:#f6c75b; }
.quote-help p { color:#e6eaf3; line-height:1.65; }
.quote-help a { color:#d7c9ff; text-underline-offset:3px; }
.quote-workspace { padding:38px 42px; min-width:0; }
.quote-wizard { display:block; }
.quote-wizard [hidden] { display:none !important; }
.wizard-step { min-width:0; border:0; padding:0; margin:0 0 32px; }
.wizard-ready .wizard-step { margin-bottom:0; }
.step-title { float:none; padding:0; margin:0 0 14px; max-width:100%; font:700 1.8rem/1.25 Georgia,serif; color:#253247; overflow-wrap:anywhere; }
.step-title:focus { outline:2px solid #7850aa; outline-offset:5px; }
.coverage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:24px 0; }
.coverage-card { display:grid; grid-template-columns:22px minmax(0,1fr); gap:6px 10px; padding:18px 14px; border:2px solid #d4dae5; border-radius:10px; background:#fff; color:#39465b; cursor:pointer; min-width:0; }
.coverage-card:has(input:checked) { border-color:#6347a2; background:#f5f0ff; box-shadow:0 0 0 1px #6347a2; }
.coverage-card input { width:19px; height:19px; margin:2px 0; accent-color:#6347a2; }
.coverage-card span:last-child { grid-column:2; font-size:.875rem; }
.coverage-name { color:#253247; font-weight:750; overflow-wrap:anywhere; }
.form-cluster { display:grid; gap:20px; margin:24px 0; }
.field-group { display:grid; gap:7px; min-width:0; }
.field-group label { color:#27364c; font-weight:650; font-size:.94rem; }
.field-group label span { font-weight:400; }
.field-group input,.field-group select,.field-group textarea { box-sizing:border-box; width:100%; min-width:0; max-width:100%; border:1px solid #8f9aaf; border-radius:7px; padding:12px; background:#fff; color:#1f2c40; font:inherit; }
.field-group textarea { resize:vertical; min-height:130px; }
.field-group :is(input,select,textarea):focus { outline:2px solid #6347a2; outline-offset:2px; }
.field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.step-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end; padding-top:24px; border-top:1px solid #dae0e9; margin-top:24px; }
.step-actions button { font-weight:700; line-height:1.3; font-family:inherit; font-size:1rem; border:0; padding:13px 22px; min-height:46px; border-radius:7px; cursor:pointer; }
.btn-prev { color:#27364c; background:#e6eaf1; }
.btn-next { color:#fff; background:#60429d; }
.btn-submit { color:#fff; background:#1e684d; }
.step-actions button:focus-visible { outline:3px solid #a469df; outline-offset:3px; }
.step-actions button:disabled { opacity:.65; cursor:wait; }
.review-summary { padding:8px 20px; border:1px solid #c9d2e0; border-radius:10px; background:#f8f9fc; margin:24px 0; }
.review-item { display:grid; grid-template-columns:130px minmax(0,1fr); gap:12px; padding:14px 0; border-bottom:1px solid #dce2ec; }
.review-item:last-child { border-bottom:0; }
.review-label { font-size:.88rem; font-weight:650; color:#47556c; overflow-wrap:anywhere; }
.review-value { margin:0; color:#253247; overflow-wrap:anywhere; white-space:pre-wrap; }
.quote-wizard .form-note { margin-top:18px; color:#47556c; font-size:.86rem; line-height:1.6; }
.quote-wizard .form-status { margin:20px 0 0; color:#20314d; font-weight:650; overflow-wrap:anywhere; }
.quote-wizard .form-status:empty { margin:0; }
.quote-engine-page .site-footer { background:#222c40; }
@media(max-width:900px) {
 .quote-engine-container { grid-template-columns:1fr; margin:0 20px 36px; }
 .quote-sidebar { border-radius:16px 16px 0 0; padding:22px; }
 .quote-progress { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; }
 .progress-step { padding:6px 0; font-size:.85rem; }
 .quote-help { margin-top:18px; padding-top:18px; }
 .quote-help h2 { margin-top:0; }
 .quote-workspace { padding:28px 22px; }
}
@media(max-width:480px) {
 .quote-introduction { padding:28px 18px 18px; }
 .quote-engine-container { margin:0 12px 28px; }
 .quote-sidebar,.quote-workspace { padding:22px 16px; }
 .field-row,.coverage-grid { grid-template-columns:1fr; }
 .step-title { font-size:1.65rem; }
 .review-summary { padding:6px 12px; }
 .review-item { grid-template-columns:1fr; gap:5px; }
 .step-actions { justify-content:stretch; }
 .step-actions button { flex:1 1 auto; padding:13px 15px; }
}

.step-actions .form-note { flex:0 0 100%; margin:0; }

.quote-engine-page .site-header { background:#f4f1e9; }
.quote-wizard .coverage-card { background:#fff; color:#39465b; box-shadow:none; }
.quote-wizard .coverage-card:has(input:checked) { background:#f5f0ff; border-color:#6347a2; }
.quote-wizard .coverage-card span { color:#39465b; }
