body:has(.contact-page) { background: var(--paper); }
.contact-page { color: var(--ink); padding: 3.5rem 0 4.5rem; }
.contact-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.4fr); gap: clamp(2rem,5vw,5rem); align-items: start; padding-top: 0; padding-bottom: 0; }
.contact-intro { min-width: 0; padding-top: .5rem; }
.contact-intro .eyebrow { color: var(--accent-dark); }
.contact-intro h1 { font-size: clamp(2.6rem,4.6vw,4.5rem); line-height: 1.08; letter-spacing: -.045em; margin: 0 0 1.5rem; max-width: 10ch; }
.contact-lead { font-size: 1.125rem; line-height: 1.8; }
.contact-intro > p:not(.eyebrow) { max-width: 44ch; }
.contact-direct { margin: 2rem 0; border-top: 1px solid #17261d30; padding-top: 1.5rem; }
.contact-direct h2 { font-size: 1rem; margin: 0 0 .75rem; }
.contact-direct a { font-weight: 700; font-size: 1.1rem; text-decoration: underline; text-underline-offset: .25em; overflow-wrap: anywhere; }
.contact-image { margin: 2rem 0 0; }
.contact-image img { width: 100%; height: auto; display: block; aspect-ratio: 4/3; object-fit: cover; }
.contact-image figcaption { margin-top: .8rem; font-size: .875rem; line-height: 1.6; color: var(--accent-dark); }
.contact-form-panel { min-width: 0; border: 1px solid #17261d24; background: var(--white); padding: clamp(1.25rem,3vw,2.5rem); }
.contact-form-panel > h2 { font-size: clamp(1.5rem,2.5vw,2rem); margin: 0 0 .75rem; line-height: 1.25; letter-spacing: -.025em; }
.contact-form-help { margin: 0 0 2rem; font-size: .9375rem; color: var(--accent-dark); }
.contact-form fieldset { min-width: 0; padding: 0; border: 0; margin: 0 0 2rem; }
.contact-form legend { display: flex; gap: .75rem; align-items: baseline; width: 100%; font-weight: 750; font-size: 1.0625rem; border-bottom: 1px solid #17261d25; padding: 0 0 .75rem; margin-bottom: 1.25rem; }
.contact-form legend > span { font-size: .875rem; font-weight: 600; color: var(--accent-dark); }
.contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.contact-field { min-width: 0; }
.contact-field label { display: block; font-size: .9375rem; font-weight: 650; line-height: 1.55; margin: 0 0 .5rem; }
.field-optional { font-weight: 400; }
.contact-field input,.contact-field select,.contact-field textarea { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #17261d50; border-radius: 0; background: #fff; color: var(--ink); padding: .75rem .8rem; font: inherit; font-size: 1rem; line-height: 1.5; }
.contact-field textarea { display: block; resize: vertical; min-height: 140px; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color: #636e62; opacity: 1; }
.contact-field small { display: block; margin-top: .5rem; font-size: .875rem; color: var(--accent-dark); line-height: 1.6; }
.contact-field :focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 2px; }
.contact-honeypot { display: none; }
.contact-consent { display: flex; gap: .75rem; align-items: start; font-size: .9375rem; line-height: 1.65; }
.contact-consent input { width: 20px; height: 20px; margin: .2rem 0 0; accent-color: var(--accent-dark); flex: none; }
.contact-consent span { min-width: 0; }
.contact-privacy { font-size: .875rem; line-height: 1.7; color: var(--accent-dark); margin: 1rem 0 1.5rem; }
.contact-privacy a,.contact-form noscript a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.contact-submit { border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-family: inherit; cursor: pointer; min-height: 48px; font-size: .9375rem; width: 100%; }
.contact-submit:disabled { opacity: .65; cursor: not-allowed; }
.contact-status { margin: 1rem 0 0; font-size: .9375rem; line-height: 1.7; overflow-wrap: break-word; }
.contact-status:empty { display: none; }
.contact-status[data-state="error"] { color: #8b2321; }
.contact-status[data-state="success"] { color: #365629; }
.contact-form[aria-busy="true"] .contact-submit { cursor: progress; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media(max-width:900px) {
  .contact-page { padding-top: 2.5rem; }
  .contact-layout { grid-template-columns: 1fr; gap: 2rem; }
  .contact-intro h1 { max-width: 17ch; }
  .contact-image { display: none; }
  .contact-direct { margin-bottom: 0; }
}
@media(max-width:600px) {
  .contact-fields { grid-template-columns: 1fr; }
  .contact-form-panel { padding: 1.25rem; }
  .contact-intro h1 { font-size: 2.5rem; }
}
