/* Shared blocks: the contact band (#contact, every page) and the 404.
   The band is MIST with navy text and white form fields, so the navy footer that follows it stands apart (navy on navy was the fault).
   Navy on mist 10.6:1; the small facts are navy too; field borders slate-ink (6.0:1 on white, 4.9:1 on mist); error red #a3261a (6.0:1 on mist). */
.contact { background: var(--mist); color: var(--navy); padding: 60px 0 80px; }
.contact__in { display: grid; gap: 40px; }
.contact__h { color: var(--navy); }
.contact__line { margin-top: 24px; max-width: 620px; color: var(--navy); }
.contact__phone { display: inline-block; margin-top: 36px; color: var(--navy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.contact__phone:hover { text-decoration-thickness: 2px; }
.contact__facts { margin-top: 28px; display: grid; gap: 8px; font-size: var(--fs-small); line-height: var(--lh-small); letter-spacing: 0.05em; color: var(--navy); }
.contact__facts a { color: var(--navy); }
.contact__facts .link-small:not(.link-small--plain) { color: var(--navy); }
.contact :focus-visible, .contact .field input:focus-visible, .contact .field textarea:focus-visible { outline: 2px solid var(--gold-ink-mist); outline-offset: 2px; }
.contact .field label { color: var(--navy); }
.contact .field input, .contact .field textarea { background: #fff; color: var(--navy); border: 1px solid var(--slate-ink); }
.contact .field [aria-invalid="true"] { border-color: #a3261a; }
.contact .field__err { color: #a3261a; }
.contact .form-note { background: #fff; color: var(--navy); border: 1px solid var(--slate-ink); }
.contact .form-noscript { color: var(--navy); }
.contact .btn--cta { background: var(--navy); color: #fff; border-color: var(--navy); }
.contact .btn--cta:hover { background: #0e2331; border-color: #0e2331; }
.contact .btn--cta:focus-visible { outline-offset: 3px; }
@media (min-width: 850px) {
  .contact { padding: 100px 0 140px; }
  .contact__in { grid-template-columns: 1fr 1fr; gap: 0 8vw; align-items: start; }
}
.nf { padding: calc(var(--head-h) + 120px) 0 160px; min-height: 70vh; }
.nf__links { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 40px; }
