/* OVH-004A contact form repair — isolated contact-page styles */
.contact-form-shell {
  background: #ffffff;
  border: 1px solid #e5e9ef;
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(0, 54, 121, 0.09);
  overflow: hidden;
  margin-bottom: 40px;
}
.contact-form-heading {
  padding: 30px 32px 22px;
  background: linear-gradient(135deg, #003679 0%, #064b99 100%);
}
.contact-form-heading h2 {
  color: #ffffff;
  font-size: 26px;
  line-height: 1.25;
  margin: 0 0 8px;
}
.contact-form-heading p {
  color: rgba(255,255,255,.88);
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}
.contact-form-body {
  padding: 30px 32px 32px;
}
.contact-field {
  margin-bottom: 22px;
}
.contact-field label {
  color: #172235;
  display: block;
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 8px;
}
.contact-field .required-mark {
  color: #b42318;
  margin-left: 3px;
}
.contact-field .form-control {
  background: #fbfcfe;
  border: 1px solid #ccd5e1;
  border-radius: 10px;
  color: #1e1e1e;
  font-size: 15px;
  min-height: 50px;
  padding: 12px 14px;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.contact-field textarea.form-control {
  min-height: 170px;
  resize: vertical;
}
.contact-field .form-control:focus {
  background: #ffffff;
  border-color: #003679;
  box-shadow: 0 0 0 3px rgba(0, 54, 121, .12);
  outline: none;
}
.contact-field-hint {
  color: #667085;
  display: block;
  font-size: 12px;
  line-height: 1.5;
  margin-top: 6px;
}
.contact-message-meta {
  align-items: center;
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}
.contact-character-count {
  color: #667085;
  font-size: 12px;
}
.contact-turnstile-wrap {
  margin: 4px 0 20px;
  min-height: 65px;
}
.contact-status {
  border-radius: 10px;
  display: none;
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 18px;
  padding: 12px 14px;
}
.contact-status.is-visible { display: block; }
.contact-status.is-success {
  background: #ecfdf3;
  border: 1px solid #abefc6;
  color: #067647;
}
.contact-status.is-error {
  background: #fef3f2;
  border: 1px solid #fecdca;
  color: #b42318;
}
.contact-status.is-info {
  background: #eff8ff;
  border: 1px solid #b2ddff;
  color: #175cd3;
}
.contact-submit-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.contact-submit-btn {
  align-items: center;
  background: #ffbb38;
  border: 0;
  border-radius: 10px;
  color: #003679;
  cursor: pointer;
  display: inline-flex;
  font-size: 15px;
  font-weight: 800;
  justify-content: center;
  min-height: 50px;
  min-width: 150px;
  padding: 12px 22px;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.contact-submit-btn:hover,
.contact-submit-btn:focus {
  box-shadow: 0 8px 24px rgba(255, 187, 56, .28);
  color: #003679;
  transform: translateY(-1px);
}
.contact-submit-btn:focus-visible {
  outline: 3px solid rgba(0,54,121,.25);
  outline-offset: 3px;
}
.contact-submit-btn:disabled {
  cursor: wait;
  opacity: .65;
  transform: none;
}
.contact-privacy-note {
  color: #667085;
  font-size: 12px;
  line-height: 1.55;
  margin: 0;
}
.contact-form-config-warning {
  background: #fff8e5;
  border: 1px solid #ffd889;
  border-radius: 10px;
  color: #7a4b00;
  font-size: 13px;
  margin-bottom: 18px;
  padding: 12px 14px;
}
@media (max-width: 767.98px) {
  .contact-form-heading,
  .contact-form-body { padding-left: 20px; padding-right: 20px; }
  .contact-form-heading h2 { font-size: 22px; }
  .contact-submit-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-field .form-control,
  .contact-submit-btn { transition: none; }
}
/* Wave-1B contact focus visibility candidate — 2026-09-04 */
.contact-field .form-control:focus-visible,
.contact-submit-btn:focus-visible {
  outline: 3px solid #ffbf47;
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #000000;
}

