body.nova-quote-open { overflow: hidden; }
.nova-quote-dialog { padding:0; border:0; width:min(1040px, calc(100% - 64px)); max-width:none; height:min(560px, calc(100dvh - 64px)); max-height:none; margin:auto; color:var(--nova-color-text); background:var(--nova-color-ivory); box-shadow:0 24px 90px #27242840; }
.nova-quote-dialog::backdrop { background:rgb(39 36 40 / 58%); backdrop-filter:blur(4px); }
.nova-quote-layout { display:grid; grid-template-columns:40% 60%; height:100%; }
.nova-quote-visual { position:relative; overflow:hidden; background:#b4a3b5; }
.nova-quote-visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.nova-quote-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgb(47 36 49 / 8%) 40%, rgb(47 36 49 / 78%) 100%); }
.nova-quote-brand { position:absolute; z-index:1; bottom:42px; left:36px; right:30px; color:white; }
.nova-quote-brand strong { font:400 64px/1 var(--nova-font-heading); letter-spacing:.12em; }
.nova-quote-brand p { font-size:14px; line-height:1.7; margin:12px 0 0; max-width:290px; }
.nova-quote-content { overflow-y:auto; overscroll-behavior:contain; padding:42px 44px 30px; }
.nova-quote-close { position:absolute; z-index:2; right:12px; top:12px; width:44px; height:44px; border:0; border-radius:50%; background:var(--nova-color-ivory); color:var(--nova-color-text); cursor:pointer; display:grid; place-items:center; }
.nova-quote-close svg { width:20px; height:20px; }
.nova-quote-close:hover { background:var(--nova-color-stone); }
.nova-quote-close:active { transform:scale(.96); }
.nova-quote-content .nova-quote-eyebrow { color:var(--nova-color-accent); text-transform:uppercase; letter-spacing:.16em; font-size:10px; margin:0 0 10px; }
.nova-quote-content h2 { font:400 clamp(30px,3vw,42px)/1.08 var(--nova-font-heading); margin:0 20px 10px 0; }
.nova-quote-intro { font-size:12px; line-height:1.6; color:var(--nova-color-text-secondary); margin:0 0 22px; }
.nova-quote-form { display:grid; gap:16px; font:400 12px/1.5 var(--nova-font-body); }
.nova-quote-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.nova-quote-form label { display:grid; gap:7px; min-width:0; color:var(--nova-color-text-secondary); }
.nova-quote-form input:not([type=checkbox]), .nova-quote-form textarea { box-sizing:border-box; width:100%; min-width:0; border:1px solid var(--nova-color-border); border-radius:3px; background:white; padding:11px 12px; font:inherit; color:var(--nova-color-text); }
.nova-quote-form textarea { min-height:100px; resize:vertical; }
.nova-quote-form :focus-visible, .nova-quote-close:focus-visible { outline:2px solid var(--nova-color-accent); outline-offset:3px; }
.nova-quote-upload { padding:12px; border:1px dashed var(--nova-color-border-strong); }
.nova-quote-upload span { display:flex; justify-content:space-between; }
.nova-quote-upload em { font-size:10px; font-style:normal; text-transform:uppercase; }
.nova-quote-upload small { font-size:10px; }
.nova-quote-form input[type=file] { padding:6px; font-size:11px; }
.nova-quote-form input::file-selector-button { background:var(--nova-color-text); color:white; border:0; padding:8px 12px; margin-right:10px; cursor:pointer; }
.nova-quote-form .nova-quote-consent { display:flex; align-items:flex-start; gap:8px; font-size:11px; }
.nova-quote-consent input { margin:3px 0 0; accent-color:var(--nova-color-accent); }
.nova-quote-form .nova-button { justify-self:start; min-height:44px; padding:12px 26px; font-size:12px; }
.nova-quote-fallback { font-size:10px; margin:0; color:var(--nova-color-text-secondary); }
.nova-quote-fallback a { color:inherit; text-decoration:underline; }
.nova-quote-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media(min-width:768px) {
 .nova-quote-content { padding:22px 30px 20px; }
 .nova-quote-content .nova-quote-eyebrow { display:none; }
 .nova-quote-content h2 { font-size:30px; white-space:nowrap; margin:0 20px 7px 0; }
 .nova-quote-content h2 br { display:none; }
 .nova-quote-intro { margin-bottom:12px; }
 .nova-quote-form { gap:10px; grid-template-columns:auto 1fr; }
 .nova-quote-form > * { grid-column:1 / -1; }
 .nova-quote-form > .nova-button { grid-column:1; min-height:38px; padding:9px 18px; }
 .nova-quote-form > .nova-quote-fallback { grid-column:2; align-self:center; padding-left:4px; }
 .nova-quote-fields { gap:9px 16px; }
 .nova-quote-form label { gap:4px; }
 .nova-quote-dialog .nova-quote-form input:not([type=checkbox]):not([type=radio]):not([type=submit]) { min-height:40px; height:40px; padding:7px 10px; }
 .nova-quote-form textarea { min-height:64px; height:64px; padding:8px 10px; }
 .nova-quote-upload { padding:8px 10px; }
 .nova-quote-dialog .nova-quote-form input[type=file]:not([type=checkbox]):not([type=radio]):not([type=submit]) { padding:3px; }
 .nova-quote-form input::file-selector-button { padding:5px 9px; }
 .nova-quote-brand { bottom:28px; left:28px; }
 .nova-quote-brand strong { font-size:52px; }
 .nova-quote-brand p { font-size:12px; }
}
@media(min-width:768px) and (max-width:1023px) {
 .nova-quote-layout { grid-template-columns:34% 66%; }
 .nova-quote-content { padding:32px 24px 24px; }
 .nova-quote-content h2 { font-size:clamp(22px, 2.7vw, 27px); }
 .nova-quote-brand { left:20px; right:20px; }
 .nova-quote-brand strong { font-size:42px; }
}
@media(max-width:767px) {
 .nova-quote-dialog { width:calc(100% - 24px); height:calc(100dvh - 24px); }
 .nova-quote-layout { display:block; }
 .nova-quote-visual { display:none; }
 .nova-quote-content { height:100%; box-sizing:border-box; padding:54px 24px 28px; }
 .nova-quote-fields { grid-template-columns:1fr; gap:14px; }
 .nova-quote-form input:not([type=checkbox]), .nova-quote-form textarea { font-size:16px; }
 .nova-quote-form input[type=file] { font-size:12px; }
 .nova-quote-content h2 { font-size:34px; }
 .nova-quote-form .nova-button { width:100%; }
}

.nova-quote-dialog { overflow:hidden; }
.nova-quote-content { box-sizing:border-box; min-height:0; }
/* Keep the parent theme button reset from shifting the close icon or adding pink focus colors. */
#nova-quote-dialog .nova-quote-close { padding:0; line-height:1; border:0; }
#nova-quote-dialog .nova-quote-close:hover, #nova-quote-dialog .nova-quote-close:focus { color:var(--nova-color-text); background:var(--nova-color-stone); }
#nova-quote-dialog .nova-quote-close svg { display:block; flex-shrink:0; }
