.main-nav .mobile-contact-link { display: none; }
.contact-dialog {
    width: min(600px, calc(100% - 32px));
    max-width: none;
    max-height: calc(100dvh - 40px);
    margin: auto;
    padding: 36px 40px 24px;
    border: 1px solid #dce3ed;
    border-radius: 28px;
    background: linear-gradient(155deg, #edf5ff, #fff 48%);
    color: var(--ink);
    box-shadow: 0 24px 100px #102b4d38;
    text-align: center;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.contact-dialog::backdrop { background: #12223565; backdrop-filter: blur(8px); }
.contact-dialog-open { overflow: hidden; }
.contact-close { position: absolute; top: 18px; inset-inline-end: 18px; display: grid; place-items: center; width: 40px; height: 40px; padding: 9px; border: 0; border-radius: 50%; background: #e8edf4; }
.contact-close .icon { width: 20px; height: 20px; }
.contact-symbol { display: grid; place-items: center; width: 48px; height: 48px; margin: 2px auto 16px; color: #005dbb; border: 1px solid #d7e8fc; border-radius: 16px; background: #e4f0ff; }
.contact-symbol .icon { width: 30px; height: 30px; }
.contact-dialog .eyebrow { color: #536475; margin-bottom: 12px; }
.contact-dialog h2 { font-size: 2rem; line-height: 1.18; }
.contact-description { color: #5c6470; font-size: .9375rem; line-height: 1.7; margin-top: 12px; }
.contact-form { margin-top: 22px; text-align: start; }
.contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.contact-field { min-width: 0; }
.contact-field-wide { grid-column: 1 / -1; }
.contact-field label { display: block; font-size: .8125rem; font-weight: 600; margin-bottom: 5px; }
.contact-field label span { font-weight: 400; color: #5c6470; }
.contact-field input, .contact-field textarea { display: block; width: 100%; min-width: 0; min-height: 44px; border: 1px solid #8593a5; border-radius: 10px; padding: 10px 12px; color: var(--ink); background: #fff; font: inherit; font-size: 1rem; line-height: 1.4; }
.contact-field textarea { resize: vertical; }
.contact-field [aria-invalid="true"] { border-color: #ad2424; }
.contact-field-error { display: block; color: #a51e1e; font-size: .75rem; margin-top: 5px; }
.contact-privacy { color: #5c6470; font-size: .75rem; margin-block: 12px; }
.contact-submit { width: 100%; }
.contact-submit:disabled { cursor: wait; opacity: .7; transform: none; }
.contact-result { font-size: .875rem; color: #a51e1e; margin-top: 12px; }
.contact-result:empty { display: none; }
.contact-result.is-success { color: #196139; background: #edf8f1; border-radius: 14px; padding: 24px; margin-block: 24px; }
.contact-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-email-note { color: #5c6470; font-size: .75rem; margin-top: 12px; }
.contact-email-note a { color: #005dbb; text-decoration: underline; overflow-wrap: anywhere; }
.contact-copy { padding: 9px 12px; min-height: 44px; margin-top: 14px; border: 0; background: transparent; color: #005dbb; font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; }
.contact-status { min-height: 1.6em; color: #43576d; font-size: .75rem; }
@media (max-width: 700px) {
    .main-nav .mobile-contact-link { display: block; color: #005dbb; }
    .contact-dialog { padding: 52px 22px 20px; border-radius: 24px; }
    .contact-dialog h2 { font-size: 1.75rem; }
    .contact-fields { grid-template-columns: 1fr; }
}
@media print { .contact-dialog { display: none !important; } }
