html.contact-modal-open,html.contact-modal-open body { overflow:hidden!important;scroll-behavior:auto!important }
.contact-dialog { width:min(680px,calc(100% - 40px));max-width:none;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--color-border-light);border-radius:16px;background:var(--color-bg-page);color:var(--color-text-primary);box-shadow:0 24px 100px #0005;overflow:hidden }
.contact-dialog::backdrop { background:#121318b3;backdrop-filter:blur(4px) }
.contact-dialog-panel { display:flex;flex-direction:column;max-height:calc(100vh - 42px);max-height:calc(100dvh - 42px) }
.contact-dialog-heading { display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--color-border-light) }
.contact-dialog-heading h2 { min-width:0;margin:0;color:var(--color-text-primary);font-family:var(--font-heading);font-size:24px;line-height:1.25;overflow-wrap:anywhere }
.contact-dialog-close { display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--color-border-light);border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:28px;cursor:pointer }
.contact-dialog-body { min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px }
.contact-request-page { max-width:820px;padding-block:48px }
.contact-request-page h1 { font-family:var(--font-heading);margin:12px 0 24px }
.contact-request-view { min-width:0;color:var(--color-text-primary);font-family:var(--font-body);font-size:16px;line-height:1.6 }
.contact-request-view .contact-intro { margin:0 0 24px;color:var(--color-text-secondary);font-size:16px;line-height:1.6 }
.contact-request-form { display:flex;flex-direction:column;gap:18px;margin:0 }
.contact-fields-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px }
.contact-field { display:flex;flex-direction:column;gap:7px;min-width:0 }
.contact-request-form label { color:var(--color-text-primary);font-size:15px;font-weight:600;line-height:1.5 }
.contact-field input,.contact-field textarea { width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #858993;border-radius:8px;background:#fff;color:var(--color-text-primary);font:inherit;line-height:1.5 }
.contact-field textarea { resize:vertical }
.contact-request-form .field-error { color:#9f1c31;font-size:14px;line-height:1.5;overflow-wrap:anywhere }
.contact-request-form .field-validation-valid { display:none }
.contact-request-form .input-validation-error { border-color:#9f1c31 }
.contact-request-form .form-alert { margin:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere }
.contact-request-form .form-alert ul { margin:0;padding-left:20px }
.contact-request-form .validation-summary-valid { display:none }
.contact-privacy { display:flex;align-items:flex-start;gap:10px }
.contact-privacy input { flex-shrink:0;width:22px;height:22px;margin:1px 0 0;accent-color:var(--color-brand-primary) }
.contact-privacy label { font-weight:400 }
.contact-request-view a { color:#4041b5;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere }
.contact-request-view .contact-privacy-copy { margin:0;color:var(--color-text-secondary);font-size:14px;line-height:1.6 }
.contact-submit { align-self:flex-start;max-width:100%;min-height:48px;padding:12px 24px;border:1px solid var(--color-brand-primary);border-radius:8px;background:var(--color-brand-primary);color:#fff;font:inherit;font-weight:600;line-height:1.5;cursor:pointer;overflow-wrap:anywhere }
.contact-submit:hover { background:#494ac4 }
.contact-submit:disabled,.contact-dialog-close:disabled { opacity:.65;cursor:wait }
.contact-dialog :is(button,input,textarea,a):focus-visible,.contact-request-page :is(button,input,textarea,a):focus-visible { outline:3px solid var(--color-brand-primary);outline-offset:3px }
.contact-dialog-status { flex-shrink:0;margin:0;padding:0 24px 16px;color:var(--color-text-primary);font-size:15px }
.contact-dialog-status:empty { display:none }
.contact-dialog-network-error { flex-shrink:0;margin:0 24px 20px;padding:12px;border:1px solid #9f1c31;border-radius:8px;color:#9f1c31;background:#fff;font-size:15px;line-height:1.5;overflow-wrap:anywhere }
.contact-dialog-network-error[hidden] { display:none }
.contact-success h3 { margin:0 0 12px;color:var(--color-text-primary);font-size:22px;line-height:1.3 }
.contact-request-view .contact-success p { margin:0;color:var(--color-text-secondary);font-size:16px;line-height:1.6 }
.contact-return { display:inline-flex;align-items:center;min-height:44px;margin-top:24px }
@media(max-width:560px) {
  .contact-dialog { width:calc(100% - 16px);max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:12px }
  .contact-dialog-panel { max-height:calc(100vh - 18px);max-height:calc(100dvh - 18px) }
  .contact-dialog-heading { padding:12px 16px }
  .contact-dialog-heading h2 { font-size:21px }
  .contact-dialog-body { padding:20px 16px }
  .contact-fields-grid { grid-template-columns:1fr }
  .contact-submit { width:100% }
  .contact-dialog-network-error { margin-inline:16px }
  .contact-dialog-status { padding-inline:16px }
}
@media(prefers-reduced-motion:reduce) { .contact-dialog * { transition:none!important;animation:none!important } }
