:root { --form-red: #d30004; --form-black: #1d1d1f; }
body.page-contact, body.page-estimate { background: #fff; }
.form-page { color: var(--form-black); background: #fff; }
.form-container, .form-page-content { width: min(calc(100% - 40px), 920px); margin: 0 auto; }
.form-hero { padding: 72px 0 58px; background: #fff; text-align: center; }
.form-eyebrow { position: relative; width: fit-content; margin: 0 auto 24px; padding-bottom: 13px; color: var(--form-red); font-size: 15px; font-weight: 800; letter-spacing: .08em; }
.form-eyebrow::after { position: absolute; right: 50%; bottom: 0; width: 38px; height: 3px; background: var(--form-red); content: ""; transform: translateX(50%); }
.form-hero h1 { margin: 0 0 16px; color: var(--form-black); font-size: clamp(30px, 4vw, 44px); font-weight: 900; line-height: 1.35; }
.form-hero p:last-child { margin: 0; color: var(--form-black); font-size: 15px; line-height: 1.9; }
.form-shell { padding: 0 0 100px; background: #fff; }
.site-form { display: block; }
.form-section-title { margin: 48px 0 24px; padding-bottom: 10px; border-bottom: 2px solid #eceef1; color: var(--form-black); font-size: 20px; font-weight: 900; line-height: 1.45; }
.form-section-title:first-of-type { margin-top: 0; }
.form-field { min-width: 0; margin: 0 0 22px; padding: 0; border: 0; }
.form-field:last-child { margin-bottom: 0; }
.form-field-label, .form-field legend { display: flex; align-items: center; gap: 8px; margin: 0 0 7px; padding: 0; color: var(--form-black); font-size: 14px; font-weight: 800; line-height: 1.5; }
.form-control, .form-select, .form-textarea { display: block; width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #d8dde3; border-radius: 3px; background: #fff; color: var(--form-black); font: inherit; font-size: 15px; line-height: 1.5; }
.form-select { appearance: auto; }
.form-textarea { min-height: 130px; padding: 12px; resize: vertical; }
.form-control::placeholder, .form-textarea::placeholder { color: #9aa0a7; }
.form-control:focus, .form-select:focus, .form-textarea:focus { border-color: var(--form-red); outline: 2px solid rgba(211, 0, 4, .1); outline-offset: 0; }
.form-control[aria-invalid="true"], .form-select[aria-invalid="true"], .form-textarea[aria-invalid="true"] { border-color: var(--form-red); }
.form-error { margin: 6px 0 0; color: var(--form-red); font-size: 12px; font-weight: 700; line-height: 1.5; }
.form-required { display: inline-flex; align-items: center; padding: 2px 6px; border-radius: 3px; background: var(--form-red); color: #fff; font-size: 11px; font-weight: 800; line-height: 1.3; white-space: nowrap; }
.form-optional { color: #7a7d82; font-size: 11px; font-weight: 700; white-space: nowrap; }
.form-grid--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
.form-grid--2 .form-field { margin-bottom: 0; }
.form-choice-list { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.form-choice { display: inline-flex; min-height: 36px; align-items: center; gap: 8px; cursor: pointer; }
.form-choice input { flex: 0 0 auto; width: 17px; height: 17px; accent-color: var(--form-red); }
.form-choice span { line-height: 1.5; }
.form-check { margin-bottom: 12px; align-items: flex-start; }
.form-check a { color: var(--form-red); text-decoration: underline; }
.form-consent-list { display: flex; flex-direction: column; gap: 12px; }
.form-consent-item { display: flex; align-items: flex-start; gap: 9px; }
.form-consent-item input { flex: 0 0 auto; margin-top: 3px; }
.form-consent-link,
.form-consent-link:visited { color: var(--red); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s ease; }
@media (hover: hover) and (pointer: fine) {
  .form-consent-link:hover { color: var(--red-dark); }
}
.form-consent-link:focus-visible { color: var(--red-dark); outline: 2px solid rgba(211, 0, 4, .3); outline-offset: 3px; border-radius: 2px; }
.form-help { margin: 6px 0 0; color: #74777c; font-size: 12px; line-height: 1.6; }
.form-note { margin: 18px 0 0; padding: 12px 14px; background: #fff7f7; color: #4c4c4c; font-size: 13px; line-height: 1.7; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.plan-card { display: flex; cursor: pointer; }
.plan-card--undecided { grid-column: 1 / -1; }
.plan-card input { position: absolute; opacity: 0; }
.plan-card-body { position: relative; display: flex; flex: 1; min-height: 180px; flex-direction: column; gap: 7px; padding: 22px; border: 1px solid #d8dde3; border-radius: 4px; background: #fff; }
.plan-card-body strong { font-size: 19px; }
.plan-card-body > span { color: #555; font-size: 14px; }
.plan-card:has(input:checked) .plan-card-body { border: 2px solid var(--form-red); padding: 21px; background: #fff7f7; }
.plan-card--standard:has(input:checked) .plan-card-body { padding-right: 127px; }
.plan-card--standard .plan-card-body { padding-right: 128px; }
.plan-card--undecided .plan-card-body { min-height: 104px; }
.plan-card:has(input:focus-visible) .plan-card-body { outline: 2px solid rgba(211, 0, 4, .2); outline-offset: 3px; }
.plan-badge { position: absolute; top: 14px; right: 14px; padding: 5px 10px; border-radius: 999px; background: var(--form-red); color: #fff; font-size: 11px; font-weight: 800; line-height: 1; }
.plan-note { display: block; margin-top: auto; color: #6f7480; font-size: 12px; line-height: 1.6; }
.plan-note--small { margin-top: 4px; font-size: 11px; }
.form-actions { padding: 38px 0 14px; text-align: center; }
.form-submit { width: min(100%, 420px); min-height: 54px; padding: 13px 26px; border: 2px solid var(--form-red); border-radius: 3px; background: var(--form-red); color: #fff; font: inherit; font-weight: 800; cursor: pointer; transition: background .2s, color .2s; }
.form-submit:hover, .form-submit:focus-visible { background: #fff; color: var(--form-red); }
.form-submit:focus-visible { outline: 2px solid rgba(211, 0, 4, .2); outline-offset: 3px; }
.form-submit-message { min-height: 26px; margin: 16px 0 0; color: var(--form-red); font-weight: 700; }
.form-server-message { margin: 0 0 24px; padding: 14px 16px; border: 1px solid var(--form-red); background: #fff7f7; color: var(--form-red); font-weight: 700; line-height: 1.6; }
.form-error-summary { margin: 8px 0 0; padding-left: 20px; font-weight: 600; }
.form-error-summary a { color: inherit; text-decoration: underline; }
.form-complete { padding: 24px 0; text-align: center; }
.form-complete .form-section-title { margin-top: 0; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-steps { display: flex; justify-content: center; gap: 10px; margin-top: 28px; color: #8b8f94; font-size: 13px; font-weight: 700; }
.form-steps span, .form-steps strong { padding: 8px 14px; border: 1px solid #e1e3e6; border-radius: 999px; font-weight: inherit; }
.form-steps strong { border-color: var(--form-red); background: var(--form-red); color: #fff; }
.confirm-list { margin: 0; border-top: 1px solid #e1e3e6; }
.confirm-row { display: grid; grid-template-columns: minmax(180px, 28%) 1fr; border-bottom: 1px solid #e1e3e6; }
.confirm-row dt, .confirm-row dd { margin: 0; padding: 16px; line-height: 1.7; }
.confirm-row dt { background: #fff7f7; font-weight: 800; }
.confirm-row dd { overflow-wrap: anywhere; white-space: normal; }
.confirm-actions { display: flex; align-items: center; justify-content: center; gap: 16px; }
.confirm-actions form { width: min(100%, 420px); }
.confirm-actions .form-submit { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.form-submit-secondary { border-color: #777; background: #fff; color: #444; }
.form-submit-secondary:hover, .form-submit-secondary:focus-visible { background: #f5f5f5; color: #222; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 800px) {
  .form-container, .form-page-content { width: calc(100% - 28px); }
  .form-hero { padding: 48px 0 40px; }
  .form-shell { padding-bottom: 70px; }
  .form-grid--2 { grid-template-columns: 1fr; gap: 0; }
  .form-grid--2 .form-field { margin-bottom: 22px; }
  .plan-grid { grid-template-columns: 1fr; }
  .plan-card--undecided { grid-column: auto; }
  .plan-card-body, .plan-card--undecided .plan-card-body { min-height: 0; }
  .form-choice-list { gap: 8px 20px; }
  .form-steps { gap: 5px; font-size: 11px; }
  .form-steps span, .form-steps strong { padding: 7px 9px; }
  .confirm-row { grid-template-columns: 1fr; }
  .confirm-row dt, .confirm-row dd { padding: 11px 12px; }
  .confirm-actions { flex-direction: column-reverse; }
  .confirm-actions form, .confirm-actions .form-submit-secondary { width: 100%; }
}
