.contact-page .public-hero { max-width: 850px; }
.contact-page .public-hero > p:last-child { max-width: 820px; }
.contact-form-card { min-width: 0; }
.contact-form-intro { margin: -6px 0 20px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.contact-form label > small { display: inline; margin-left: 4px; color: #8992a3; font-size: .65rem; font-weight: 650; }
.contact-form select { width: 100%; padding: 11px 12px; border: 1px solid #ccd3e0; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-weight: 400; }
.contact-form select:focus { outline: 3px solid #ded6fa; border-color: var(--purple); }
.contact-form [aria-invalid="true"] { border-color: #c7354c; }
.field-help,.field-error,.character-count { font-size: .68rem; font-weight: 550; line-height: 1.4; }
.field-help,.character-count { color: #7a8495; }
.field-error { color: #b3263e; }
.character-count { align-self: flex-end; margin-top: -2px; font-variant-numeric: tabular-nums; }
.contact-global-error { display: flex; flex-direction: column; gap: 4px; margin-bottom: 18px; }
.contact-global-error a { font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.contact-privacy-note { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid #d8e5f1; border-radius: 11px; background: #f4f9fd; }
.contact-privacy-note > span { flex: 0 0 auto; color: #0873c5; }
.contact-privacy-note p { margin: 0; color: #4e6579; font-size: .72rem; line-height: 1.55; }
.contact-client-error:empty { display: none; }
.contact-client-error { margin: 0; }
.contact-submit { position: relative; gap: 8px; min-width: 190px; }
.button-spinner { display: none; width: 14px; height: 14px; border: 2px solid #ffffff66; border-top-color: #fff; border-radius: 50%; animation: contact-spin .7s linear infinite; }
.contact-submit.is-loading .button-spinner { display: block; }
.contact-response-note { max-width: 560px; margin: -4px 0 0; color: #717c8e; font-size: .7rem; line-height: 1.5; }
.contact-success { display: flex; align-items: flex-start; gap: 16px; padding: 25px; border: 1px solid #bfe3cd; border-radius: 16px; background: linear-gradient(140deg,#f5fcf8,#eefaf3); }
.contact-success > span { display: grid; place-items: center; flex: 0 0 auto; width: 45px; height: 45px; border-radius: 13px; background: #dff4e7; color: #187643; font-size: 1.15rem; font-weight: 900; }
.contact-success h2 { margin: 2px 0 9px; }
.contact-success p:not(.home-eyebrow) { margin: 0; color: #496455; line-height: 1.65; }
.contact-success small { display: block; margin-top: 10px; color: #187643; font-weight: 750; }
.contact-aside-label { display: block; margin-top: 20px; font-size: .78rem; }
.contact-topic-list { display: grid; gap: 8px; margin: 10px 0 20px; padding: 0; list-style: none; }
.contact-topic-list li { position: relative; padding-left: 21px; color: #5c6779; font-size: .78rem; line-height: 1.45; }
.contact-topic-list li::before { position: absolute; left: 0; color: #6a4bd2; content: "✓"; font-weight: 900; }
.contact-support-link { margin-top: 22px; padding-top: 15px; border-top: 1px solid var(--line); font-size: .76rem; }
@keyframes contact-spin { to { transform: rotate(360deg); } }
@media (max-width:760px) { .contact-form-card,.contact-aside { padding: 22px; } .contact-success { padding: 20px; } .contact-submit { width: 100%; min-height: 46px; } }
@media (max-width:380px) { .contact-form-card,.contact-aside { padding: 18px; } .contact-success { flex-direction: column; } }
@media (prefers-reduced-motion:reduce) { .button-spinner { animation-duration: 1.4s; } }
