/* Quote form. Sized to the existing contact-form-box rather than restyling it. */
.quote-form { display: flex; flex-direction: column; gap: 1rem; }
.quote-form .form-intro { margin: 0 0 .25rem; opacity: .85; }
.quote-form .field { display: flex; flex-direction: column; gap: .35rem; }
.quote-form label { font-weight: 600; font-size: .92rem; letter-spacing: .01em; }
.quote-form input, .quote-form select, .quote-form textarea {
  font: inherit; padding: .7rem .8rem; border: 1px solid rgba(0,0,0,.18);
  border-radius: 6px; background: #fff; color: inherit; width: 100%; box-sizing: border-box;
}
.quote-form textarea { resize: vertical; min-height: 7rem; }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus {
  outline: 2px solid #2e7d32; outline-offset: 1px; border-color: #2e7d32;
}
.quote-form button[type="submit"] { align-self: flex-start; cursor: pointer; }
.quote-form button[disabled] { opacity: .6; cursor: progress; }
/* The honeypot. Off-screen rather than display:none, which some bots detect. */
.quote-form .hp-field {
  position: absolute !important; left: -9999px !important;
  width: 1px !important; height: 1px !important; opacity: 0 !important;
}
#form-status { font-size: .95rem; min-height: 1.2em; }
#form-status.sending { opacity: .75; }
#form-status.success { color: #1b5e20; font-weight: 600; }
#form-status.error { color: #b3261e; font-weight: 600; }
.quote-form .form-alt { margin: 0; font-size: .9rem; opacity: .8; }
