.js-contact-hero { padding-block: 20px 48px; background: #f7f8f8; border-bottom: 1px solid var(--border); }
.js-contact-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; color: #666; font-size: 12px; margin-bottom: 30px; }
.js-contact-breadcrumb a { font-family: var(--font-plex), sans-serif; padding-block: 10px; }
.js-contact-breadcrumb a:hover { color: var(--brand-ink); }
.js-contact-hero h1 { font-size: clamp(27px, 5.5vw, 44px); line-height: 1.5; font-weight: 700; margin-block: 18px 24px; }
.js-contact-lead { max-width: 850px; display: grid; gap: 8px; }
.js-contact-lead p { line-height: 1.9; }
.js-contact-layout { display: grid; gap: 36px; padding-block: 48px 72px; }
.js-contact-intro h2 { font-size: 23px; font-weight: 700; line-height: 1.65; margin-bottom: 22px; }
.js-contact-intro p { line-height: 1.9; color: #444; margin-top: 14px; }
.js-contact-desktopBreak { display: none; }
.js-contact-phone { border-top: 1px solid #ddd; padding-top: 28px; }
.js-contact-phone > a { display: flex; align-items: center; gap: 12px; width: fit-content; font-size: clamp(26px, 3vw, 31px); font-weight: 500; margin-block: 12px 8px; }
.js-contact-phone > a:hover { color: var(--brand-ink); }
.js-contact-phone > p { font-size: 14px; color: #555; }
.js-contact-phone .js-contact-followup { margin-top: 24px; line-height: 1.9; }
.js-contact-formColumn { min-width: 0; }
.js-contact-formHeading { display: flex; flex-wrap: wrap; gap: 12px 20px; justify-content: space-between; align-items: center; border-bottom: 1px solid #ddd; padding-bottom: 20px; }
.js-contact-formHeading h2 { font-size: 19px; font-weight: 700; }
.js-contact-formHeading p { font-size: 12px; color: #555; display: flex; align-items: center; gap: 8px; }
.js-contact-required, .js-contact-optional { display: inline-block; padding: 2px 8px; border-radius: 2px; font-size: 11px; font-weight: 500; line-height: 1.7; white-space: nowrap; }
.js-contact-required { color: var(--brand-ink); background: var(--warm); }
.js-contact-optional { background: #f0f1f2; color: #555; }
.js-contact-previewNotice { margin-block: 20px 32px; padding: 14px 16px; border-left: 2px solid #aaa; background: #f6f7f7; color: #555; font-size: 13px; line-height: 1.8; }
.js-contact-field { margin: 0 0 30px; padding: 0; border: 0; min-width: 0; }
.js-contact-field > label, .js-contact-field legend { display: flex; align-items: center; gap: 12px; font-weight: 600; margin-bottom: 12px; font-size: 15px; }
.js-contact-choices { display: grid; gap: 12px; }
.js-contact-choice { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 14px 16px; border: 1px solid #ccc; border-radius: 3px; cursor: pointer; font-size: 14px; }
.js-contact-choice:has(input:checked) { border-color: var(--primary); background: var(--warm); }
.js-contact-choice input { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--brand-ink); }
.js-contact-input { display: block; width: 100%; min-height: 56px; background: #fff; border: 1px solid #c8c8c8; border-radius: 3px; padding: 15px 16px; font: inherit; font-size: 16px; line-height: 1.7; }
.js-contact-input::placeholder { color: #777; }
textarea.js-contact-input { resize: vertical; min-height: 200px; }
.js-contact-input:focus { border-color: var(--primary); outline: 2px solid var(--primary); outline-offset: 2px; }
.js-contact-input[aria-invalid='true'] { border-color: #a42621; }
.js-contact-hint { color: #666; font-size: 13px; line-height: 1.8; margin-top: 10px; }
.js-contact-error { color: #a42621; font-size: 14px; margin-top: 8px; min-height: 1lh; }
@media (max-width: 479px) { .js-contact-error[id='your-email-error'] { min-height: 2lh; } }
.js-contact-privacy { border-top: 1px solid #ddd; padding-top: 26px; font-size: 13px; line-height: 1.9; color: #555; }
.js-contact-privacy a, .js-contact-pendingLink { text-decoration: underline; text-underline-offset: 4px; }
.js-contact-pendingLink { color: #666; }
.js-contact-submit { width: 100%; min-height: 64px; display: flex; align-items: center; justify-content: center; gap: 24px; background: var(--primary); color: white; border: 0; border-radius: 3px; font-size: 16px; font-weight: 700; margin-top: 28px; cursor: pointer; }
.js-contact-submitNote { text-align: center; color: #666; font-size: 12px; margin-top: 12px; }
.js-contact-stateExamples { margin-top: 32px; padding-top: 18px; border-top: 1px solid #e5e5e5; }
.js-contact-stateExamples summary { font-size: 12px; color: #666; cursor: pointer; line-height: 1.8; }
.js-contact-message { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid #c5d3c9; background: #f5f8f5; margin-top: 16px; font-size: 14px; line-height: 1.9; }
.js-contact-message svg { flex-shrink: 0; margin-top: 3px; }
.js-contact-message strong { display: block; margin-bottom: 6px; font-size: 12px; }
.js-contact-failure { border-color: #dfbcb9; background: #fff6f5; color: #882923; }
@media (min-width: 640px) { .js-contact-hero { padding-block: 24px 56px; } .js-contact-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } .js-contact-layout { padding-block: 64px 96px; } }
@media (min-width: 1024px) {
  .js-contact-layout { grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); grid-template-rows: auto 1fr; gap: 36px 72px; padding-block: 72px 112px; }
  .js-contact-intro { grid-column: 1; grid-row: 1; }
  .js-contact-intro h2 { font-size: 25px; }
  .js-contact-desktopBreak { display: inline; }
  .js-contact-phone { grid-column: 1; grid-row: 2; align-self: start; }
  .js-contact-formColumn { grid-column: 2; grid-row: 1 / 3; }
}

.js-contact-page .wpcf7 form { margin-top:32px; }
.js-contact-page .wpcf7-list-item { margin:0; }
.js-contact-page .wpcf7-radio { display:grid;gap:12px; }
.js-contact-page .wpcf7-list-item label { display:flex;align-items:center;gap:12px;min-height:56px;padding:14px 16px;border:1px solid #ccc;border-radius:3px;font-size:14px;cursor:pointer; }
.js-contact-page .wpcf7-list-item label:has(input:checked) {border-color:var(--primary);background:var(--warm);}
.js-contact-page input[type=radio] {width:18px;height:18px;flex-shrink:0;accent-color:var(--brand-ink);}
.js-contact-page input:focus-visible,.js-contact-page button:focus-visible {outline:2px solid var(--primary);outline-offset:3px;}
.js-contact-page .wpcf7-form-control-wrap {display:block;padding-bottom:32px;position:relative;}
.js-contact-page .wpcf7-not-valid-tip {position:absolute;bottom:0;font-size:13px;color:#a42621;line-height:1.6;}
.js-contact-page .js-contact-field {margin-bottom:16px;}
.js-contact-page .js-contact-hint {margin-top:-22px;margin-bottom:24px;}
.js-contact-page .wpcf7-response-output {margin:20px 0 0;padding:18px;font-size:14px;line-height:1.9;}
.js-contact-page .wpcf7-spinner {display:none;}
.js-contact-page .js-contact-progress {min-height:26px;font-size:14px;margin-top:10px;}
.js-contact-page .js-contact-submit:disabled {opacity:.65;cursor:wait;}
@media(min-width:640px){.js-contact-page .wpcf7-radio{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:479px){.js-contact-page [data-name=your-email]{padding-bottom:48px;}}
