/* Contact and policies share the site's typography, rhythm, and light canvas. */
.contact-intro { padding-bottom:3rem; }
.contact-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2rem,5vw,5rem); margin-bottom:5rem; align-items:start; }
.contact-copy { grid-column:1; grid-row:1; padding-top:1.5rem; }
.contact-overline { font:500 .75rem/1.5 var(--mono); color:#73677e; letter-spacing:.03em; margin-bottom:1rem; }
.contact-copy h2 { font-size:clamp(2.25rem,4vw,3.25rem); }
.contact-copy > p:not(.contact-overline) { color:var(--muted); margin-top:1.25rem; max-width:32ch; }
.contact-email { display:inline-flex; align-items:center; gap:12px; max-width:100%; min-height:44px; color:var(--purple-dark); font-size:clamp(1.125rem,1.8vw,1.375rem); letter-spacing:-.025em; margin-top:1.5rem; overflow-wrap:anywhere; }
.contact-email:hover { text-decoration:underline; text-underline-offset:5px; }
.contact-email .icon { width:16px; height:16px; }
.contact-details { margin:2.5rem 0 0; }
.contact-details > div { padding:1.25rem 0; border-top:1px solid #e6dfed; }
.contact-details dt { font-size:.9375rem; font-weight:600; letter-spacing:-.01em; }
.contact-details dd { margin:.5rem 0 0; font-size:.875rem; color:var(--muted); line-height:1.7; max-width:43ch; }
.contact-compose { grid-column:2; grid-row:1; padding:clamp(1.5rem,3vw,2.5rem); background:#faf8fd; border:1px solid #e2d9ee; border-radius:1rem; }
#contact-form { scroll-margin-top:24px; }
.contact-compose form { display:grid; gap:1.5rem; }
.contact-field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.contact-field { min-width:0; }
.contact-field label,.contact-interest legend { display:block; margin-bottom:9px; color:#3a3245; font-size:.875rem; font-weight:550; }
.contact-field label > span { font-weight:400; color:#776b81; font-size:.75rem; }
.contact-field input,.contact-field textarea { display:block; width:100%; min-width:0; padding:13px 14px; border:1px solid #ddd4e8; border-radius:.625rem; color:var(--ink); background:#fff; font-size:1rem; line-height:1.5; }
.contact-field textarea { min-height:160px; resize:vertical; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:#797080; opacity:1; }
.contact-field input:focus-visible,.contact-field textarea:focus-visible { outline:2px solid var(--purple); outline-offset:2px; }
.contact-field-help { margin-top:8px; font-size:.75rem; color:#766b80; line-height:1.6; }
.contact-interest { border:0; margin:0; padding:0; min-width:0; }
.contact-interest > div { display:flex; flex-wrap:wrap; gap:8px; }
.contact-interest label { position:relative; cursor:pointer; }
.contact-interest input { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-interest span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 12px; border:1px solid #e1d8eb; background:#f4f0fa; border-radius:.5rem; color:#6c5e7c; font-size:.8125rem; line-height:1.5; }
.contact-interest input:checked + span { border-color:#c2afe0; color:var(--purple-dark); background:#fff; box-shadow:0 2px 5px #6550870a; }
.contact-interest input:focus-visible + span { outline:3px solid var(--purple); outline-offset:3px; }
.contact-compose .button { justify-self:start; }
.contact-send-note,.contact-privacy-note,#contact-status { color:#72667c; font-size:.8125rem; line-height:1.7; }
.contact-send-note { margin-top:-.75rem; }
#contact-status:empty { display:none; }
#contact-status { color:var(--purple-dark); }
.contact-privacy-note { padding-top:1.25rem; margin-top:1.25rem; border-top:1px solid #e6deef; }
.contact-privacy-note a,.document-body p > a { color:var(--purple-dark); text-decoration:underline; text-underline-offset:3px; }
.contact-next { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem 2rem; padding-block:2.5rem; margin-bottom:4rem; border-top:1px solid #e3dce9; }
.contact-next > div { flex:1 1 260px; }
.contact-next h2 { font-size:2rem; }
.contact-next .contact-overline { margin-bottom:.75rem; }
.policy-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; border-block:1px solid #e2d9eb; padding-block:1.5rem; margin-bottom:3.5rem; }
.policy-summary dt { font-size:.875rem; font-weight:600; }
.policy-summary dd { margin:.5rem 0 0; color:var(--muted); font-size:.875rem; line-height:1.65; }
.document-body > section h2 { display:flex; align-items:baseline; gap:12px; font-size:1.4375rem; line-height:1.3; font-weight:550; }
.policy-section-number { flex:none; color:#6f5a7e; font:.6875rem/1.5 var(--mono); }
.document-body p { line-height:1.8; }
.document-body p > .text-link { display:inline; font-size:inherit; min-height:0; }
.document-body p > .text-link .icon { display:none; }
.policy-contact { margin-top:3rem; padding-top:2rem; border-top:1px solid #e2d9eb; }
.policy-contact h2 { font-size:1.4375rem; }
.policy-contact p { margin-top:.75rem; }
.policy-links { display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:2rem; padding-bottom:2rem; }
.policy-links a { display:inline-flex; align-items:center; min-height:44px; color:var(--purple-dark); font-size:.875rem; }
.policy-links a:hover { text-decoration:underline; text-underline-offset:4px; }
@media (min-width:851px) {
  .document-contents { position:sticky; top:calc(var(--header-bar-height,0px) + 24px); }
}
@media (max-width:850px) {
  .contact-layout { grid-template-columns:1fr; gap:2.25rem; }
  .contact-copy { grid-column:1; grid-row:2; padding-top:0; }
  .contact-compose { grid-column:1; grid-row:1; }
  .contact-copy h2 br { display:none; }
  .contact-copy > p:not(.contact-overline) { max-width:45ch; }
  .contact-details { margin-top:1.5rem; }
  .policy-summary { gap:1.25rem; }
}
@media (max-width:560px) {
  .contact-intro h1 { font-size:2.75rem; }
  .contact-field-row,.policy-summary { grid-template-columns:1fr; }
  .contact-compose { padding:1.25rem; }
  .contact-layout { margin-bottom:3rem; }
  .contact-interest span { padding:9px 10px; font-size:.75rem; }
  .contact-compose .button { width:100%; justify-self:stretch; }
  .contact-next { margin-bottom:2rem; }
  .policy-summary { gap:1rem; margin-bottom:2.5rem; }
  .policy-summary > div { display:flex; flex-wrap:wrap; gap:.5rem 1rem; }
  .policy-summary dt { flex:0 1 110px; min-width:0; }
  .policy-summary dd { flex:1 1 160px; min-width:0; margin:0; }
  .document-body > section h2 { font-size:1.3125rem; }
}
@media (prefers-contrast:more) {
  .contact-compose,.contact-field input,.contact-field textarea,.contact-interest span { border-color:#8d7e9c; }
}
@media (scripting:none) {
  #contact-form { display:none; }
}
