/* Public contact, project and partner pages. Shared shell owns type and layout. */
.contact-body { padding-bottom:clamp(64px,8vw,112px); }
.contact-body a:not(.button) { text-underline-offset:4px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,7vw,104px); align-items:start; }
.contact-layout > *, .contact-topics > *, .contact-facts > * { min-width:0; }
.contact-aside > p:not(.eyebrow), .contact-copy > p, .contact-topic p, .contact-step p { color:var(--muted,#68707d); line-height:1.7; }
.contact-aside > p:not(.eyebrow) { max-width:45ch; margin-top:24px; }
.contact-email { display:inline-block; max-width:100%; margin-top:18px; color:var(--ink,#111318); font-size:clamp(21px,2.8vw,32px); font-weight:450; letter-spacing:-.045em; overflow-wrap:anywhere; }
.contact-email:hover, .contact-directions a:hover { color:var(--accent,#2457f5); }
.contact-directions { margin-top:48px; border-top:1px solid var(--hairline,#e2e6ec); padding-top:28px; }
.contact-directions h2 { font-size:20px; font-weight:500; margin:0 0 24px; letter-spacing:-.03em; }
.contact-directions > a { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:44px; font-size:18px; }
.contact-directions > a span:last-child { color:var(--accent,#2457f5); }
.contact-directions > p { color:var(--muted,#68707d); font-size:15px; line-height:1.65; margin:4px 0 24px; }
.contact-note { font-size:15px; }
.contact-note a, .contact-help a, .contact-copy a, .contact-terms a { color:var(--accent,#2457f5); text-decoration:underline; }
.contact-form { display:grid; gap:24px; border:1px solid var(--hairline,#e2e6ec); border-radius:var(--radius-sheet,12px); padding:clamp(22px,3vw,40px); background:var(--paper,#fff); }
.contact-form h2 { margin:0; font-size:clamp(24px,2.7vw,32px); font-weight:450; letter-spacing:-.045em; line-height:1.2; }
.contact-form__intro { color:var(--muted,#68707d); font-size:15px; line-height:1.65; margin:-8px 0 0; }
.contact-field { display:grid; gap:9px; min-width:0; }
.contact-field label { font-size:15px; line-height:1.5; font-weight:500; }
.contact-field input, .contact-field textarea { display:block; min-width:0; width:100%; max-width:100%; border:1px solid var(--construction,#c9d2dc); border-radius:var(--radius-control,6px); background:var(--paper,#fff); color:var(--ink,#111318); padding:13px 14px; font:inherit; font-size:16px; line-height:1.5; }
.contact-field textarea { resize:vertical; min-height:152px; }
.contact-field input:hover, .contact-field textarea:hover { border-color:var(--muted,#68707d); }

.contact-field input::placeholder, .contact-field textarea::placeholder { color:#68707d; opacity:1; }
.contact-help { margin:0; color:var(--muted,#68707d); font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.contact-form .button { justify-self:start; min-height:48px; }
.contact-copy h2, .contact-section-heading h2 { font-size:clamp(30px,4vw,44px); font-weight:450; line-height:1.15; letter-spacing:-.045em; margin:12px 0 24px; }
.contact-copy > p { max-width:48ch; margin:16px 0; }
.contact-section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,7vw,104px); align-items:end; margin-bottom:36px; }
.contact-section-heading h2 { margin-bottom:0; }
.contact-section-heading > p { color:var(--muted,#68707d); line-height:1.7; max-width:48ch; margin:0; }
.contact-topics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(32px,7vw,104px); }
.contact-topic { border-top:1px solid var(--hairline,#e2e6ec); padding:28px 0 36px; }
.contact-topic__number, .contact-step__number { color:var(--accent,#2457f5); font-size:13px; line-height:1.5; font-variant-numeric:tabular-nums; }
.contact-topic h3, .contact-step h3 { font-size:clamp(21px,2.5vw,26px); font-weight:450; letter-spacing:-.03em; line-height:1.3; margin:14px 0 12px; }
.contact-topic p { font-size:16px; margin:0; max-width:48ch; }
.contact-steps { list-style:none; padding:0; margin:0; }
.contact-step { border-top:1px solid var(--hairline,#e2e6ec); display:grid; grid-template-columns:42px minmax(0,1fr); gap:20px; padding:25px 0; }
.contact-step__number { padding-top:4px; }
.contact-step h3 { font-size:21px; margin:0 0 9px; }
.contact-step p { font-size:15px; margin:0; }
.contact-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; padding:36px 0; border-top:1px solid var(--hairline,#e2e6ec); border-bottom:1px solid var(--hairline,#e2e6ec); margin:0; }
.contact-facts dt { font-size:clamp(30px,4vw,52px); line-height:1.15; font-weight:450; letter-spacing:-.05em; }
.contact-facts dd { color:var(--muted,#68707d); margin:14px 0 0; max-width:28ch; font-size:15px; line-height:1.65; }
.contact-terms { border-top:1px solid var(--hairline,#e2e6ec); padding-top:28px; margin-top:32px; }
.contact-terms h3 { font-size:20px; font-weight:500; margin:0 0 16px; letter-spacing:-.03em; }
.contact-terms ul, .contact-checklist { padding:0 0 0 20px; margin:0; color:var(--muted,#68707d); font-size:15px; line-height:1.75; }
.contact-terms li + li, .contact-checklist li + li { margin-top:10px; }
.contact-reference { display:block; overflow-wrap:anywhere; padding:18px 0; color:var(--ink,#111318); font-family:inherit; font-size:16px; line-height:1.6; }
.contact-cabinet { border-top:1px solid var(--hairline,#e2e6ec); border-bottom:1px solid var(--hairline,#e2e6ec); padding:clamp(28px,5vw,56px) 0; }
.contact-cabinet .contact-copy h2 { max-width:15ch; }
.contact-cabinet .contact-copy p { max-width:52ch; }
.contact-body .public-actions { flex-wrap:wrap; }
@media (max-width:768px) {
  .contact-layout, .contact-section-heading { grid-template-columns:minmax(0,1fr); gap:36px; }
  .contact-topics { column-gap:32px; }
  .contact-facts { gap:24px; }
  .contact-directions { margin-top:32px; }
}
@media (max-width:560px) {
  .contact-topics, .contact-facts { grid-template-columns:minmax(0,1fr); }
  .contact-facts { padding:0; gap:0; border-bottom:0; }
  .contact-facts > div { padding:24px 0; border-bottom:1px solid var(--hairline,#e2e6ec); }
  .contact-facts dd { max-width:36ch; margin-top:10px; }
  .contact-form { gap:22px; padding:22px 18px; }
  .contact-form .button { width:100%; justify-content:space-between; }
  .contact-step { grid-template-columns:28px minmax(0,1fr); gap:14px; }
  .contact-topic { padding:24px 0 28px; }
  .contact-body .public-actions { align-items:stretch; }
  .contact-body .public-actions .button { width:100%; justify-content:space-between; }
}
