.contact-renewal { max-width: 800px; }
.contact-renewal *, .contact-renewal *::before, .contact-renewal *::after { box-sizing: border-box; }
.contact-intro { margin: 24px 0 32px; padding: 24px; background: #fff; border-left: 4px solid #b30040; border-radius: 6px; }
.contact-intro .contact-lead { font-size: 20px; font-weight: bold; margin-bottom: 16px; }
.contact-intro ul { padding-left: 1.4em; margin: 12px 0 16px; line-height: 1.9; }
.contact-fields { margin-top: 24px; }
.contact-fields p { line-height: 1.7; }
.contact-field { margin: 20px 0; min-width: 0; }
.contact-field label { display: block; font-weight: bold; margin-bottom: 8px; }
.contact-badge { display: inline-block; background: #b30040; color: #fff; font-size: 12px; padding: 3px 8px; border-radius: 4px; vertical-align: middle; }
.contact-optional { font-size: 13px; color: #555; font-weight: normal; margin-left: 8px; }
.contact-group { min-width: 0; margin: 28px 0; padding: 16px 24px; border: 1px solid #d5d5d5; border-radius: 8px; background: #fff; }
.contact-group legend { max-width: 100%; padding: 0 8px; font-size: 18px; font-weight: bold; }
.contact-help, .contact-privacy { color: #444; font-size: 14px; }
.contact-renewal a { color: #9b0038; text-decoration: underline; }
.contact-fields .wpcf7-form-control-wrap { display: block; width: 100%; }
.contact-fields input:not([type=checkbox]):not([type=submit]), .contact-fields select, .contact-fields textarea { width: 100%; max-width: 100%; min-height: 48px; padding: 12px; margin: 0; border: 1px solid #aaa; border-radius: 5px; background: #fff; color: #222; font: inherit; font-size: 16px; }
.contact-fields textarea { height: 150px; resize: vertical; }
.contact-fields :is(input, select, textarea, a):focus-visible { outline: 3px solid #b30040; outline-offset: 3px; }
.contact-fields .wpcf7-checkbox { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
/* Reset pagination's mobile .first/.last padding on CF7 choices. */
.contact-fields .wpcf7-list-item { margin: 0; padding: 0; }
.contact-fields .wpcf7-checkbox .wpcf7-list-item { color: #222; }
.contact-fields .wpcf7-list-item label { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px; cursor: pointer; }
.contact-fields input[type=checkbox] { width: 20px; height: 20px; flex-shrink: 0; accent-color: #b30040; }
.contact-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-send { text-align: center; margin-top: 24px; }
.contact-send .wpcf7-submit { width: 100%; max-width: 430px; min-height: 56px; padding: 14px 16px; border: 0; border-radius: 6px; background: #b30040; color: #fff; font-size: 18px; font-weight: bold; cursor: pointer; white-space: normal; }
.contact-send .wpcf7-submit:hover { background: #900033; }
.contact-send-note { text-align: center; margin-top: 12px; }
.contact-sales-note { margin-top: 32px; color: #666; font-size: 12px; }
.contact-renewal .wpcf7 form .wpcf7-response-output { display: block; margin: 24px 0; padding: 16px; }
.contact-renewal .wpcf7 form.init .wpcf7-response-output, .contact-renewal .wpcf7 form.submitting .wpcf7-response-output { display: none; }
.online-methods { padding: 24px; border: 1px solid #d5d5d5; border-radius: 8px; background: #fff; }
.online-methods h3 { font-size: 20px; margin-bottom: 16px; }
.online-form-link { display: block; padding: 14px; border: 1px solid #b30040; border-radius: 5px; text-align: center; }
.online-line-option { margin-top: 24px; }
.online-line-option img { display: block; width: 250px; max-width: 100%; height: auto; }
.online-line-option p { margin-top: 12px; font-size: 14px; line-height: 1.7; }
#online-estimate-form { scroll-margin-top: 24px; }
.online-photo-example { margin: 20px 0; }
.online-photo-example img { width: 240px; max-width: 100%; height: auto; }
.online-photo-example figcaption { font-size: 13px; margin-top: 8px; }
.online-extra-files { padding: 18px; margin: 24px 0; background: #fff; border: 1px solid #d5d5d5; border-radius: 8px; }
.online-extra-files summary { min-height: 44px; font-weight: bold; cursor: pointer; }
.online-contact-renewal input[type=file] { font-size: 14px; }
.online-contact-renewal input[type=file]::file-selector-button { padding: 8px; margin-right: 8px; }
@media (max-width: 600px) {
  .contact-intro { padding: 18px; }
  .contact-intro .contact-lead { font-size: 18px; }
  .contact-group { padding: 12px 14px; }
  .contact-group legend { font-size: 16px; }
  .contact-date-row, .contact-fields .wpcf7-checkbox { grid-template-columns: 1fr; gap: 4px; }
  .contact-send .wpcf7-submit { font-size: 16px; }
}
