.contact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid #0b1f3a;
  border-radius: 0;
  background: #0b1f3a;
  color: #fff;
  font: 500 16px 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  cursor: pointer;
}
.contact-button:hover { background: #193858; }
.contact-button--hero { background: transparent; border-color: #9fb6d1; }
.contact-button:disabled { opacity: .6; cursor: wait; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid #389cff;
  outline-offset: 4px;
}
body.contact-is-open { overflow: hidden; }
#contact-dialog {
  box-sizing: border-box;
  width: min(560px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 32px;
  border: 1px solid #d3d9e1;
  background: #fff;
  color: #17202e;
  font: 17px/1.6 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}
#contact-dialog::backdrop { background: rgb(8 22 40 / 72%); }
.contact-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
#contact-title { margin: 0; color: #0b1f3a; font: 600 32px/1.25 'Source Serif 4', Georgia, serif; }
.contact-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #d3d9e1;
  background: white;
  color: #0b1f3a;
  font: 28px/1 Arial, sans-serif;
  cursor: pointer;
}
#contact-intro { margin: 12px 0 24px; color: #465263; }
#contact-form label { display: block; margin: 16px 0 6px; font-weight: 600; color: #0b1f3a; }
#contact-form input:not([type="hidden"]), #contact-form textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #aab6c5;
  border-radius: 0;
  background: #fff;
  color: #17202e;
  font: inherit;
}
#contact-form textarea { resize: vertical; min-height: 120px; max-height: 280px; }
#contact-form .contact-honeypot { display: none; }
#contact-status { margin: 20px 0 16px; font-size: 16px; }
#contact-status:empty { margin-top: 24px; }
#contact-status[data-state="error"] { color: #9d2929; }
#contact-status[data-state="success"] { color: #205c3b; }
@media (max-width: 480px) { #contact-dialog { padding: 24px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
