/* Native estimate form, plus small-screen and keyboard improvements. */
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.oh-site [id] { scroll-margin-top: 90px; }
#estimate-form { margin-top: 28px; }
.form-field { margin-bottom: 20px; }
.form-field label { display: block; margin-bottom: 8px; font: 600 14px var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.form-field input, .form-field textarea { display: block; width: 100%; border: 1px solid #77716a; border-radius: 0; background: #25221e; color: white; padding: 13px 14px; font: 16px/1.5 var(--sans); }
.form-field textarea { resize: vertical; min-height: 120px; }
.form-field input:focus, .form-field textarea:focus { outline: none; border-color: #c5c0b8; }
.form-field ::placeholder { color: #b9b4ac; }
.form-consent { display: flex; gap: 12px; align-items: flex-start; font: 14px/1.6 var(--sans); color: #d4d0c9; cursor: pointer; }
.form-consent input { flex-shrink: 0; width: 18px; height: 18px; margin-top: 4px; accent-color: var(--accent); }
.oh-site .form-consent a { color: #dfbd8c; text-decoration: underline; }
.form-submit { width: 100%; margin-top: 24px; padding: 17px 24px; border: 0; background: var(--accent); color: var(--ink); font: 700 15px var(--sans); text-transform: uppercase; letter-spacing: .12em; cursor: pointer; }
.form-submit:hover { background: #e1be8c; }
.form-submit:disabled { opacity: .65; cursor: wait; }
.form-status { margin-top: 16px !important; color: #ffd0bd; font: 16px/1.6 var(--sans); }
.form-status:empty { display: none; }
.form-status.success { color: #cde5c3; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.legal-links { display: flex; gap: 20px; }
.oh-site .legal-links a { color: #cfc9c0; font-size: 14px; }
.legal-page { max-width: 850px; padding: 60px 24px 90px; margin: auto; font: 16px/1.8 var(--sans); }
.legal-page h1 { font-family: var(--serif); font-size: clamp(28px,5vw,42px); margin: 32px 0; }
.legal-page p { margin: 16px 0; }
.legal-page ul, .legal-page ol { padding-left: 24px; }
.legal-page hr { margin: 24px 0; border: 0; border-top: 1px solid var(--line); }
/* Keep sections readable when JavaScript or animation support is unavailable. */
.reveal { opacity: 1; transform: none; }
@media (max-width: 600px) {
  .wrap, .about-inner, .areas-inner { padding-left: 20px; padding-right: 20px; }
  .about, .services, .work, .quotes, .areas { padding-top: 72px; padding-bottom: 72px; }
  .hero-content { padding-left: 20px; padding-right: 20px; }
  .areas-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 20px; }
  .footer-top { grid-template-columns: 1fr; gap: 32px; margin-bottom: 40px; }
  .oh-site footer { padding: 60px 20px 28px; }
  .work-head { align-items: flex-start; gap: 24px; flex-direction: column; }
  .svc-row { grid-template-columns: 30px minmax(0,1fr) auto; gap: 10px; }
  .svc-name { overflow-wrap: anywhere; }
  .qm-overlay { padding: 12px; }
  .qm-panel { max-height: calc(100dvh - 24px); }
  .logo-img { max-width: 135px; height: auto; }
  .nav-cta { font-size: 12px; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

#estimate-turnstile { margin-top: 24px; min-height: 65px; }

#quote-modal.submitted .qm-panel { padding: 64px 32px; }
#quote-modal.submitted .qm-intro { font-size: 18px; color: #d4d0c9; margin-top: 20px; }
#quote-modal.submitted .qm-title:focus { outline: none; }
