.quote-main { max-width: 800px; padding-block: 48px 64px; }
.quote-main h1 { font-size: clamp(2rem, 7vw, 3.7rem); }
.review-notice { border-left: 5px solid var(--accent); padding: 12px 18px; background: #fff; }
#quote-form[hidden] { display: none; }
#quote-form { display: grid; gap: 22px; margin-block: 32px; }
.field { display: grid; gap: 8px; min-width: 0; }
.field label { font-weight: 700; }
input, textarea { font: inherit; width: 100%; min-height: 52px; padding: 12px; border: 1px solid #696962; background: #fff; border-radius: 3px; }
textarea { resize: vertical; }
input:focus-visible, textarea:focus-visible, button:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
input[type="file"] { overflow: hidden; font-size: .9rem; }
#file-help { margin: 0; font-size: .85rem; }
.consent { display: flex; align-items: flex-start; gap: 12px; padding-block: 10px; }
.consent input { flex: 0 0 26px; width: 26px; min-height: 26px; margin-top: 4px; }
button { font: inherit; cursor: pointer; }
button:disabled { cursor: wait; opacity: .65; }
#status { overflow-wrap: anywhere; font-weight: 650; min-height: 40px; }
@media (min-width: 640px) { #quote-form { grid-template-columns: 1fr 1fr; } .field:nth-child(n+5), .consent, #send { grid-column: 1 / -1; } }

.email-fallback { margin-block: 20px 8px; padding: 14px 18px; border: 2px dashed var(--accent); background: #fff; }
.email-fallback p { margin: 0 0 6px; }
.email-fallback p:last-child { margin-bottom: 0; }
