/* Contact forms share the homepage type, surfaces and actions. */
dialog.form-modal {
  position: fixed;
  inset: 0;
  width: min(560px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: clamp(24px, 4vw, 36px);
  overflow-y: auto;
  overscroll-behavior: contain;
  color: #e8ecf2;
  background: #10191c;
  border: 1px solid #7dab943d;
  border-radius: 24px;
  box-shadow: 0 28px 100px #0009;
  font-family: 'Manrope', system-ui, sans-serif;
}
dialog.form-modal::backdrop { background: #030809d9; backdrop-filter: blur(5px); }
.form-modal .form-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: #c2cec8;
  border: 1px solid #ffffff1f;
  border-radius: 12px;
  background: #ffffff05;
  font-size: 28px;
  line-height: 1;
}
.form-modal .form-modal-close:hover { color: #fff; background: #ffffff10; }
.form-modal .form-eyebrow { display: block; margin: 4px 44px 16px 0; color: #95b8a7; font-size: 12px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.form-modal h2 { margin: 0 0 16px; font-size: clamp(27px, 5vw, 34px); line-height: 1.15; letter-spacing: -.04em; font-weight: 750; overflow-wrap: anywhere; }
.form-modal .form-description, .form-modal .form-success p { margin: 0 0 26px; color: #c2cec8; font-size: 15px; line-height: 1.6; }
.form-contact-field { margin-bottom: 18px; }
.form-contact-field label { display: block; margin-bottom: 10px; color: #e8ecf2; font-size: 15px; font-weight: 650; line-height: 1.5; }
.form-contact-field label span { font-size: 12px; font-weight: 500; color: #aabdb3; }
.form-contact-field input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 12px 14px;
  color: #edf5f0;
  background: #07100e;
  border: 1px solid #7a9b8b80;
  border-radius: 10px;
  font-size: 16px;
  line-height: 1.5;
}
.form-contact-field input::placeholder { color: #8fa99b; opacity: 1; }
.form-contact-field input:focus { border-color: #54f1a0; }
.form-contact-field input[aria-invalid="true"] { border-color: #ffaaa3; }
.form-modal .form-help { margin-top: 8px; color: #aabdb3; font-size: 13px; line-height: 1.55; }
.form-modal .form-field-error, .form-modal .form-server-error { color: #ffb9b3; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.form-modal .form-field-error:not(:empty) { margin-top: 8px; }
.form-modal .form-server-error:not(:empty) { margin-top: 20px; padding: 12px 14px; border: 1px solid #ffaaa355; border-radius: 10px; background: #ffaaa309; }
.form-consent { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.form-consent-toggle { position: relative; display: block; width: 44px; height: 44px; flex: 0 0 44px; margin-left: -10px; }
.form-consent-toggle input { position: absolute; inset: 0; width: 44px; height: 44px; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.form-consent-box { position: absolute; inset: 10px; border: 1px solid #8cac9b; border-radius: 6px; background: #07100e; }
.form-consent-toggle input:checked + .form-consent-box { border-color: #54f1a0; background: #26d97f; }
.form-consent-toggle input:checked + .form-consent-box::after { content: ''; position: absolute; width: 6px; height: 12px; left: 8px; top: 3px; border: solid #031d10; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.form-consent-toggle input:focus-visible + .form-consent-box { outline: 2px solid #54f1a0; outline-offset: 5px; }
.form-consent-toggle input[aria-invalid="true"] + .form-consent-box { border-color: #ffaaa3; }
.form-consent-copy { display: block; padding-top: 9px; color: #b9cbc0; font-size: 13px; line-height: 1.65; }
.form-consent-copy a { color: #75efad; text-decoration: underline; text-underline-offset: 3px; }
.form-consent-copy a:hover { color: #b8ffd7; }
.form-modal .form-submit-row { display: flex; justify-content: flex-end; margin-top: 26px; }
.form-modal .home-button { min-height: 50px; }
.form-modal button:disabled { cursor: wait; opacity: .65; }
.form-modal input:disabled { cursor: wait; }
.form-success { padding-top: 28px; text-align: center; }
.form-success-mark { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 24px; color: #54f1a0; border: 1px solid #54f1a066; border-radius: 50%; background: #26d97f12; }
.form-success h2:focus { outline: none; }
@media (max-width: 480px) {
  dialog.form-modal { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 24px 20px; border-radius: 20px; }
  .form-modal .form-submit-row .home-button, .form-success .home-button { width: 100%; }
  .form-contact-field label span { display: block; margin-top: 2px; }
}
