:root { --qq-ink:#0b2941; --qq-muted:#61788e; --qq-line:#cbe4e5; --qq-teal:#00979d; }
* { box-sizing: border-box; }
body.quick-quotes-page { min-height: 100vh; margin: 0; padding: 16px 16px 112px; color: var(--qq-ink); background: linear-gradient(180deg,#edf8f7 0%,#f9fcfc 48%,#eef7f6 100%); font-family: var(--font-sans,Inter,system-ui,sans-serif); }
.quick-quotes-shell { width: min(100%,980px); display: grid; gap: 14px; margin: 0 auto; }
.quick-quotes-hero { min-height: 150px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 28px; overflow: hidden; border-radius: 28px; color:#fff; background: radial-gradient(circle at 86% 12%,rgba(255,255,255,.2),transparent 28%),linear-gradient(135deg,#003f50,#007f85 58%,#10b8b8); box-shadow:0 22px 46px rgba(0,71,78,.18); }
.quick-quotes-heading p { margin:0 0 6px; color:#8ff2ef; font-size:12px; font-weight:900; letter-spacing:.16em; }
.quick-quotes-hero h1 { display:flex; align-items:center; gap:12px; margin:0; font-size:clamp(34px,8vw,54px); line-height:1; letter-spacing:-.045em; }
.quick-quotes-hero h1 img { width:clamp(82px,18vw,118px); height:auto; flex:0 0 auto; object-fit:contain; }
.quick-quotes-hero h1 span { margin:0; color:#fff; font:inherit; }
.quick-quotes-hero span { display:block; margin-top:10px; color:#d8ffff; font-size:15px; font-weight:650; }
.quick-quotes-composer,.quick-quotes-results { padding:22px; border:1px solid rgba(94,181,184,.35); border-radius:24px; background:#fff; box-shadow:0 14px 34px rgba(0,62,69,.08); }
.quick-quotes-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.quick-quotes-heading p { color:#008b8f; }
.quick-quotes-heading h2 { margin:0; font-size:clamp(22px,5vw,30px); letter-spacing:-.035em; }
.quick-quotes-heading > span { padding:7px 11px; border-radius:999px; color:#087c70; background:#e9f8f2; font-size:12px; font-weight:850; text-align:right; }
.quick-quotes-composer form { display:grid; gap:10px; }
.quick-quotes-composer label { color:#49657a; font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.quick-quotes-prompt-wrap { position:relative; }
.quick-quotes-composer textarea { width:100%; min-height:116px; resize:vertical; padding:16px; border:2px solid #d4e7e8; border-radius:18px; outline:0; color:var(--qq-ink); background:#fbfdfd; font-family:inherit; font-size:17px; font-weight:750; line-height:1.45; }
.quick-quotes-prompt-wrap textarea { padding-right:68px; }
.quick-quotes-composer textarea:focus { border-color:#11b9bd; box-shadow:0 0 0 4px rgba(17,185,189,.1); }
.quick-quotes-voice { position:absolute; right:12px; bottom:12px; width:44px; height:44px; display:grid; place-items:center; padding:0; border:1px solid #9ed9da; border-radius:50%; color:#007f85; background:#eaf8f7; box-shadow:0 7px 16px rgba(0,127,133,.14); cursor:pointer; transition:transform 150ms ease,color 150ms ease,background 150ms ease,box-shadow 150ms ease; }
.quick-quotes-voice:hover,.quick-quotes-voice:focus-visible { transform:translateY(-1px); color:#fff; background:#00979d; box-shadow:0 9px 20px rgba(0,127,133,.24); }
.quick-quotes-voice:focus-visible { outline:3px solid rgba(17,185,189,.22); outline-offset:3px; }
.quick-quotes-voice svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.quick-quotes-voice.is-listening { color:#fff; background:#d64545; border-color:#d64545; animation:quick-quotes-listening 1.25s ease-in-out infinite; }
.quick-quotes-voice:disabled { cursor:not-allowed; opacity:.45; transform:none; }
.quick-quotes-voice[hidden] { display:none; }
@keyframes quick-quotes-listening { 50% { box-shadow:0 0 0 9px rgba(214,69,69,.16); } }
.quick-quotes-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.quick-quotes-form-actions button { min-height:46px; padding:0 16px; border:1px solid #bfe0e1; border-radius:14px; color:#087c80; background:#f5fbfb; font-family:inherit; font-size:13px; font-weight:850; cursor:pointer; }
.quick-quotes-form-actions .quick-quotes-submit { min-width:154px; border-color:#007f85; color:#fff; background:linear-gradient(135deg,#008f95,#10b8b8); box-shadow:0 10px 22px rgba(0,143,149,.2); }
.quick-quotes-form-actions button:disabled,.quick-quotes-composer textarea:disabled { cursor:not-allowed; opacity:.55; }
.quick-quotes-status { min-height:20px; margin:12px 0 0; color:var(--qq-muted); font-size:13px; font-weight:700; }
.quick-quotes-status:empty { display:none; }
.quick-quotes-status.is-error { color:#b4232c; }
.quick-quotes-flow { display:grid; gap:6px; }
.quick-quotes-flow [hidden] { display:none; }
.quick-quotes-flow-overline { display:grid; grid-template-columns:minmax(180px,.78fr) minmax(0,1fr); align-items:end; gap:20px; min-height:28px; }
.quick-quotes-flow-overline span { grid-column:2; color:#53657a; font-size:clamp(12px,1.7vw,15px); font-weight:900; line-height:1.2; }
.quick-quotes-flow-step { display:grid; grid-template-columns:minmax(180px,.78fr) minmax(0,1fr); align-items:center; gap:20px; min-width:0; min-height:104px; padding:16px 22px; border:1.5px solid var(--flow-border,rgba(15,23,42,.08)); border-radius:18px; color:#071b3a; background:var(--flow-bg,#f8fafc); }
.quick-quotes-flow-step > small { color:#53657a; font-size:clamp(16px,2.4vw,23px); font-weight:900; line-height:1.08; letter-spacing:.055em; text-transform:uppercase; }
.quick-quotes-flow-step button { appearance:none; display:block; justify-self:start; max-width:100%; padding:0; border:0; border-radius:10px; color:inherit; background:transparent; font-family:inherit; text-align:left; cursor:pointer; }
.quick-quotes-flow-step button strong { display:block; max-width:100%; font-size:clamp(42px,8vw,70px); font-variant-numeric:tabular-nums; line-height:1; letter-spacing:-.055em; white-space:nowrap; transition:color 150ms ease,transform 150ms ease; }
.quick-quotes-flow-step button:hover strong,.quick-quotes-flow-step button:focus-visible strong { color:#008f94; transform:translateY(-1px); }
.quick-quotes-flow-step button:focus-visible { outline:3px solid rgba(14,158,142,.22); outline-offset:5px; }
.quick-quotes-flow-step button.is-selected { text-decoration:underline; text-decoration-color:#13aaa2; text-decoration-thickness:4px; text-underline-offset:7px; }
.quick-quotes-flow-note { display:grid; grid-template-columns:minmax(180px,.78fr) minmax(0,1fr); align-items:center; gap:20px; min-height:36px; color:#53657a; }
.quick-quotes-flow-note span { justify-self:end; max-width:210px; font-size:clamp(12px,1.7vw,16px); font-weight:900; line-height:1.12; text-align:right; }
.quick-quotes-flow-note svg { justify-self:start; width:32px; height:32px; color:#4ca99f; }
.quick-quotes-flow-spacer { min-height:24px; }
.quick-quotes-flow-step.step-retail { --flow-bg:#f4f9fc; --flow-border:#cbdde9; }
.quick-quotes-flow-step.step-federal { --flow-bg:#fff9f1; --flow-border:#f1d6b2; }
.quick-quotes-flow-step.step-utility { --flow-bg:#f1fbf7; --flow-border:#a9e4cf; }
.quick-quotes-flow-step.step-quarterly { --flow-bg:#f8f5fd; --flow-border:#d8cdef; }
.quick-quotes-flow-step.step-final { --flow-bg:radial-gradient(circle at 90% 16%,rgba(255,255,255,.34),transparent 30%),linear-gradient(135deg,#0e9e8e,#0f766e); --flow-border:#0e9e8e; color:#fff; box-shadow:0 16px 34px rgba(14,158,142,.2); }
.quick-quotes-flow-step.step-final > small,.quick-quotes-flow-step.step-final button strong { color:#fff; }
.quick-quotes-flow-step.step-final button:hover strong,.quick-quotes-flow-step.step-final button:focus-visible strong { color:#fff; }
.quick-quotes-payment { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:12px; padding:18px 20px; border-radius:20px; color:#fff; background:linear-gradient(135deg,#004c5a,#008e91); }
.quick-quotes-payment > span { padding:7px 10px; border:1px solid rgba(255,255,255,.3); border-radius:999px; font-size:12px; font-weight:850; }
.quick-quotes-payment div { text-align:right; }
.quick-quotes-payment small { display:block; color:#c8ffff; font-size:12px; font-weight:750; }
.quick-quotes-payment strong { display:block; margin-top:3px; font-size:clamp(30px,8vw,44px); line-height:1; }
.quick-quotes-rebates { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.quick-quotes-rebates span { padding:7px 10px; border-radius:999px; color:#406278; background:#eef6f6; font-size:11px; font-weight:800; }
.quick-quotes-permission { width:min(calc(100% - 28px),470px); padding:0; border:1px solid rgba(94,181,184,.4); border-radius:24px; color:var(--qq-ink); background:#fff; box-shadow:0 24px 70px rgba(0,48,55,.28); }
.quick-quotes-permission::backdrop { background:rgba(1,31,43,.62); backdrop-filter:blur(5px); }
.quick-quotes-permission-content { padding:24px; }
.quick-quotes-permission-content > p { margin:0 0 7px; color:#008b8f; font-size:12px; font-weight:900; letter-spacing:.16em; }
.quick-quotes-permission-content h2 { margin:0; font-size:26px; line-height:1.08; letter-spacing:-.035em; }
.quick-quotes-permission-content > span { display:block; margin-top:12px; color:var(--qq-muted); font-size:14px; font-weight:650; line-height:1.5; }
.quick-quotes-permission-content > div { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; }
.quick-quotes-permission-content button { min-height:44px; padding:0 16px; border:1px solid #bfe0e1; border-radius:13px; font:inherit; font-size:13px; font-weight:850; cursor:pointer; }
.quick-quotes-permission-content button.secondary { color:#466176; background:#fff; }
.quick-quotes-permission-content button.primary { border-color:#007f85; color:#fff; background:linear-gradient(135deg,#008f95,#10b8b8); }
.quick-quotes-denied { width:min(calc(100% - 32px),620px); margin:15vh auto 0; padding:28px; border-radius:24px; background:#fff; box-shadow:0 20px 46px rgba(0,61,68,.15); text-align:center; }
.quick-quotes-denied h1 { margin:0 0 8px; }
.quick-quotes-denied p { color:var(--qq-muted); }
.quick-quotes-denied a { display:inline-flex; padding:12px 16px; border-radius:12px; color:#fff; background:#008f95; font-weight:850; text-decoration:none; }
@media (max-width:640px) {
  body.quick-quotes-page { padding:8px 8px 104px; }
  .quick-quotes-hero { min-height:132px; padding:22px 20px; border-radius:23px; }
  .quick-quotes-composer,.quick-quotes-results { padding:17px; border-radius:21px; }
  .quick-quotes-heading { display:grid; }
  .quick-quotes-heading > span { justify-self:start; text-align:left; }
  .quick-quotes-form-actions { align-items:stretch; flex-direction:column; }
  .quick-quotes-form-actions button { width:100%; }
  .quick-quotes-flow-overline,.quick-quotes-flow-step { grid-template-columns:1fr; }
  .quick-quotes-flow-overline span { grid-column:1; }
  .quick-quotes-flow-step { min-height:126px; gap:7px; padding:16px 18px; }
  .quick-quotes-flow-step button strong { font-size:clamp(42px,13vw,60px); }
  .quick-quotes-flow-note { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:10px; }
  .quick-quotes-flow-note span { grid-column:1; max-width:none; }
  .quick-quotes-flow-note svg { grid-column:2; justify-self:center; }
  .quick-quotes-payment { align-items:flex-start; flex-direction:column; }
  .quick-quotes-payment div { text-align:left; }
  .quick-quotes-permission-content > div { align-items:stretch; flex-direction:column-reverse; }
  .quick-quotes-permission-content button { width:100%; }
}
