.quote-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100% - 32px);padding:0;border:0;border-radius:20px;background:#fff;color:#1e211f;box-shadow:0 24px 80px #0003}.quote-dialog::backdrop{background:#111a16a8}.quote-panel{padding:clamp(24px,5vw,48px)}.quote-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.quote-top h2{margin:0;font-size:clamp(28px,4vw,38px);line-height:1.15;letter-spacing:-.04em}.quote-close{flex:none;width:44px;height:44px;border:1px solid #dce0dc;border-radius:50%;background:#fff;font-size:26px;cursor:pointer}.quote-progress{margin:12px 0 24px;color:#68756b;font-size:13px}.quote-fields{display:grid;gap:16px}.quote-fields label{display:grid;gap:6px;font-size:13px;font-weight:700}.quote-fields input,.quote-fields textarea{width:100%;padding:13px 14px;border:1px solid #ccd4cd;border-radius:8px;background:#fff;color:#1e211f;font:inherit;font-weight:400}.quote-fields textarea{resize:vertical;min-height:100px}.quote-group{margin:0;padding:0;border:0}.quote-group legend{margin-bottom:10px;font-size:14px;font-weight:700}.quote-choices{display:flex;flex-wrap:wrap;gap:8px}.quote-choices label{display:block;font-weight:500;cursor:pointer}.quote-choices input{position:absolute;width:1px;height:1px;opacity:0}.quote-choices span{display:block;padding:9px 14px;border:1px solid #dce0dc;border-radius:100px;font-size:13px}.quote-choices input:checked+span{border-color:#7d9677;background:#dce8d9}.quote-choices input:focus-visible+span{outline:3px solid #2265b3;outline-offset:3px}.quote-actions{display:flex;align-items:center;gap:18px;margin-top:24px}.quote-primary{min-height:48px;padding:0 24px;border:0;border-radius:100px;background:#1e211f;color:#fff;font-weight:700;cursor:pointer}.quote-primary:disabled{opacity:.5;cursor:not-allowed}.quote-back{border:0;background:none;text-decoration:underline;cursor:pointer}.quote-notice{margin:0;color:#626c65;font-size:13px;line-height:1.5}.quote-dialog [hidden]{display:none}@media(max-width:650px){.quote-panel{padding:22px}.quote-actions{flex-wrap:wrap}}

/* Keep mobile forms inside the visible viewport and controls reachable while scrolling. */
@media(max-width:650px), (max-width:1100px) and (pointer:coarse){
  .quote-dialog{position:fixed;inset:0;margin:auto;width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;scroll-padding:90px 0 80px}
  .quote-panel{padding:16px}
  .quote-top{position:sticky;top:0;z-index:2;gap:8px;padding:4px 0;background:#fff}
  .quote-top h2{font-size:clamp(22px,7vw,28px)}
  .quote-progress{margin:8px 0 12px}
  .quote-fields{gap:9px}
  .quote-fields label{gap:3px}
  .quote-actions{position:sticky;bottom:0;z-index:1;margin-top:8px;padding:8px 0;background:#fff}
  .quote-fields input:not([type="radio"]):not([type="checkbox"]),.quote-fields textarea{font-size:16px;padding:8px 12px}
  .quote-fields input:not([type="radio"]):not([type="checkbox"]){min-height:42px}
  .quote-fields textarea{min-height:68px}
}

/* Follow the visible viewport when an on-screen keyboard changes its size. */
.quote-dialog.quote-touch-viewport{position:fixed;inset:auto;margin:0;left:var(--quote-vv-center-x);top:var(--quote-vv-center-y);transform:translate(-50%,-50%);width:min(680px,calc(var(--quote-vv-width) - 24px));max-width:calc(var(--quote-vv-width) - 24px);max-height:calc(var(--quote-vv-height) - 24px);overflow-y:auto}
