/* =========================================================================
   Mailform Pro — styles for the elements it injects into contact.html
   (replaces mfp.statics/mailformpro.css so the site's .field styles stay intact)
   ========================================================================= */

/* keep the injected hidden block out of the .form grid */
div#mfp_hidden { position: absolute; overflow: hidden; width: 1px; height: 1px; padding: 0; margin: 0; clip: rect(0 0 0 0); }

/* inline validation */
div.mfp_err {
  display: none;
  margin-top: 8px;
  font-size: 12px; line-height: 1.7; letter-spacing: .04em;
  color: #B03A3A;
}
.field .problem,
.field .problem:focus { border-color: #B03A3A; box-shadow: 0 0 0 3px rgba(176,58,58,.12); }

/* form-level notices */
div#mfp_error,
div#mfp_warning {
  display: none;
  grid-column: 1 / -1;
  padding: 14px 18px;
  border: 1px solid #B03A3A;
  background: #FBF1F0;
  color: #B03A3A;
  font-size: 13px; line-height: 1.8;
}
div#mfp_error p, div#mfp_warning p { margin: 0; }

/* confirm dialog */
div#mfp_overlay_background,
div#mfp_loading_screen {
  display: none; position: absolute; z-index: 10000;
  background: var(--navy-900);
}
div#mfp_loading_screen { z-index: 20000; opacity: .6; }
div#mfp_loading {
  display: none; position: absolute; z-index: 20001;
  width: 40px; height: 40px;
  border: 2px solid rgba(255,255,255,.25);
  border-top-color: #fff;
  border-radius: 50%;
  animation: mfpSpin .8s linear infinite;
}
@keyframes mfpSpin { to { transform: rotate(360deg); } }

div#mfp_overlay { display: none; position: absolute; z-index: 10001; }
div#mfp_overlay_inner {
  width: 680px; max-width: calc(100vw - 32px);
  margin: 0 auto;
  padding: clamp(24px, 4vw, 44px);
  background: #fff;
  color: var(--ink);
  box-shadow: 0 24px 60px rgba(5,22,43,.35);
}
div#mfp_overlay_inner h4 {
  margin: 0 0 22px;
  font-size: 18px; font-weight: 500; letter-spacing: .06em;
  color: var(--navy-800);
}
table#mfp_confirm_table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--line); }
table#mfp_confirm_table th,
table#mfp_confirm_table td {
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  text-align: left; vertical-align: top;
  font-size: 14px; line-height: 1.8;
  word-break: break-all;
}
table#mfp_confirm_table th {
  width: 11em; padding-right: 16px;
  font-size: 12px; font-weight: 400; letter-spacing: .1em; color: var(--ink-50);
}
@media (max-width: 600px) {
  table#mfp_confirm_table th,
  table#mfp_confirm_table td { display: block; width: 100%; }
  table#mfp_confirm_table th { padding-bottom: 0; border-bottom: 0; }
}

div.mfp_buttons { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 28px; }
div.mfp_buttons button {
  min-width: 10em;
  padding: 14px 28px;
  font: inherit; font-size: 14px; letter-spacing: .1em;
  border: 1px solid var(--navy-800);
  background: #fff; color: var(--navy-800);
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s;
}
div.mfp_buttons button#mfp_button_send { background: var(--navy-800); color: #fff; }
div.mfp_buttons button#mfp_button_send:hover { background: var(--brand); border-color: var(--brand); }
div.mfp_buttons button#mfp_button_cancel:hover { background: var(--paper); }
