/* Quick quote dialog. Uses the shared site.css tokens, buttons and type. */
.quick-quote{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--line-strong);border-top:2px solid var(--accent);border-radius:6px;background:var(--bg);color:var(--text);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain}
.quick-quote::backdrop{background:rgba(5,5,6,.72)}
.quick-quote[open]{animation:qq-in .22s var(--ease)}
@keyframes qq-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.qq-panel{padding:24px 30px 26px}
.qq-head{display:flex;justify-content:space-between;align-items:start;gap:16px}
.qq-head h2{margin:0;font-size:clamp(26px,3vw,32px);line-height:1.15;letter-spacing:-.03em;outline:none}
.qq-eyebrow{margin:0 0 8px;color:var(--faint);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.qq-close{flex:none;width:44px;height:44px;margin:-6px -10px 0 0;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:26px;line-height:1;cursor:pointer}
.qq-close:hover{background:var(--surface)}
.qq-intro{margin:8px 0 18px;color:var(--muted);font-size:15px}
.qq-form{display:grid;gap:15px}
.qq-form[hidden],.qq-success[hidden],.qq-handoff[hidden]{display:none}
.qq-handoff{display:grid;gap:12px;padding:16px;border:1px solid var(--line-strong);border-left:2px solid var(--accent);border-radius:6px;background:var(--surface)}
.qq-handoff p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.qq-handoff strong{color:var(--text)}
.qq-handoff .btn{justify-self:start}
.qq-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.qq-field{display:grid;gap:7px;min-width:0;margin:0;padding:0;border:0}
.qq-field label,.qq-field legend{padding:0;color:var(--text);font-size:14px;font-weight:700}
.qq-field label span{color:var(--faint);font-weight:500}
.qq-hint{margin:-2px 0 0;color:var(--faint);font-size:13px;line-height:1.5}
.qq-field input:not([type=radio]),.qq-field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-size:16px}
.qq-field textarea{min-height:88px;resize:vertical;line-height:1.5}
.qq-field input::placeholder{color:var(--faint)}
.qq-field input:focus-visible,.qq-field textarea:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-color:var(--text)}
.qq-field.is-invalid input:not([type=radio]),.qq-field.is-invalid textarea,.qq-field.is-invalid .qq-tile span{border-color:var(--accent)}
.qq-field-error{margin:0;color:var(--text);font-size:13px;font-weight:600}
.qq-field-error:not(:empty)::before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;vertical-align:1px;background:var(--accent)}
.qq-needs legend{margin-bottom:9px}
.qq-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.qq-tile{position:relative;display:block;cursor:pointer}
.qq-tile input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.qq-tile span{display:flex;min-height:52px;align-items:center;justify-content:center;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);font-size:14px;font-weight:600;text-align:center;line-height:1.3;transition:border-color .15s ease,background .15s ease}
.qq-tile:hover span{border-color:var(--text)}
.qq-tile input:checked+span{border-color:var(--text);background:var(--ink);color:var(--ink-text)}
.qq-tile input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}
.qq-hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.qq-privacy,.qq-promise,.qq-alt{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.qq-privacy a,.qq-alt a,.qq-success a{color:var(--text);text-underline-offset:3px}
.qq-promise{color:var(--text);font-weight:600}
.qq-error{margin:0;color:var(--text);font-size:14px;font-weight:600;outline:none}
.qq-error:empty{display:none}
.qq-error::before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;vertical-align:1px;background:var(--accent)}
.qq-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.qq-submit[disabled]{opacity:.7;cursor:progress}
.qq-more{min-height:44px;padding:0;border:0;background:none;color:var(--text);font:inherit;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.qq-success{display:grid;gap:12px}
.qq-success h3{margin:0;font-size:26px;line-height:1.2;letter-spacing:-.02em;outline:none}
.qq-success p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.qq-success strong{color:var(--text)}
.qq-success .btn{justify-self:start;margin-top:8px}
@media(max-width:600px){
  .quick-quote{width:100%;max-width:none;max-height:100dvh;height:100dvh;border-radius:0;border-left:0;border-right:0}
  .qq-panel{padding:20px 16px 28px}
  .qq-grid{grid-template-columns:1fr}
  .qq-tiles{grid-template-columns:1fr 1fr}
  .qq-actions .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.quick-quote[open]{animation:none}.qq-tile span{transition:none}}
