.quote-wrap { max-width:960px; }
[hidden] { display:none!important; }
button[data-open-quote] { border:0; cursor:pointer; font-family:inherit; }
button[data-open-quote]:focus-visible,.quote-close:focus-visible { outline:2px solid #B08D3F; outline-offset:4px; }
#quote-panel { position:fixed; inset:0; margin:auto; width:min(860px,calc(100% - 32px)); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overflow:auto; overscroll-behavior:contain; box-sizing:border-box; border:1px solid #ddd; border-radius:14px; padding:0 28px 28px; color:#171717; background:#fff; box-shadow:0 24px 80px #0006; text-align:left; }
#quote-panel::backdrop { background:rgba(0,0,0,.65); }
.quote-panel-top { position:sticky; top:0; z-index:1; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:16px; text-align:left; flex-wrap:wrap; margin-bottom:18px; padding:20px 0 16px; border-bottom:1px solid #ddd; }
.quote-panel-top h3 { font-size:22px; }
.quote-close { background:#fff; border:1px solid #999; padding:10px 16px; color:#171717; font:inherit; border-radius:4px; cursor:pointer; min-height:44px; }
.quote-close:hover { background:#f1f1f1; }
.quote-wrap>p { max-width:720px; margin-left:auto; margin-right:auto; }
.quote-notice { color:#68501d!important; font-size:14px!important; line-height:1.6; }
#quote-form { text-align:left; background:#fff; color:#171717; padding:0; margin-top:26px; }
#quote-form fieldset { border:0; padding:0; margin:0 0 26px; min-width:0; }
#quote-form legend { font-size:19px; font-weight:600; margin-bottom:18px; }
.quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.quote-wide { grid-column:1/-1; }
#quote-form label { display:block; font-size:14px; font-weight:600; }
#quote-form label span { font-weight:400; color:#626262; }
#quote-form input:not([type=radio]),#quote-form select,#quote-form textarea { display:block; box-sizing:border-box; width:100%; margin-top:8px; padding:12px; font:inherit; color:#171717; background:#fff; border:1px solid #aaa; border-radius:4px; }
#quote-form textarea { resize:vertical; }
#quote-form input:focus-visible,#quote-form select:focus-visible,#quote-form textarea:focus-visible { outline:2px solid #8f7333; outline-offset:2px; }
#quote-form .contact-choice { margin-top:20px; }
#quote-form .contact-choice legend { font-size:14px; margin-bottom:10px; }
.contact-choice label { display:inline-flex!important; align-items:center; gap:8px; margin-right:24px; min-height:40px; }
.contact-choice input { width:18px; height:18px; accent-color:#8f7333; }
#quote-form .quote-hint { color:#555; font-size:14px; margin:14px 0 0; }
#quote-form button { border:0; cursor:pointer; font-family:inherit; background:#806326; color:#fff; }
#quote-form button:disabled { opacity:.5; cursor:not-allowed; }
#quote-review { margin-top:28px; border-top:1px solid #ddd; padding-top:24px; }
#quote-review p { color:#4a4a4a; font-size:14px; margin:12px 0; }
#quote-summary { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:14px; line-height:1.7; }
.quote-direct { margin-top:28px; font-size:16px!important; overflow-wrap:anywhere; }
.quote-direct a { text-decoration:underline; }
.quote-wrap>.quote-hint { font-size:14px; margin-bottom:0; }
@media(max-width:600px){ .quote-grid{grid-template-columns:1fr;} #quote-panel{padding:0 16px 20px;width:calc(100% - 16px);max-height:calc(100dvh - 16px);} .quote-panel-top h3{font-size:19px;} .quote-close{font-size:14px;} .quote-wrap{padding-left:16px;padding-right:16px;} }

/* v16: centered email and phone on separate lines at phone widths. */
@media(max-width:600px){.quote-direct{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.quote-direct a{display:block;max-width:100%;overflow-wrap:anywhere}.quote-direct-or{display:none}.quote-direct-label{display:block}}
