/* ===== FORM WIDTH CONSTRAINT ===== */

/* Restrict form to a reasonable max width and center it */
.webform-submission-form {
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

/* ===== CORE ACCESSIBILITY STYLES ===== */

/* Enforce minimum text size and high contrast - 1.5rem minimum */
.webform-submission-form,
.webform-submission-form *,
.webform-submission-form p,
.webform-submission-form div,
.webform-submission-form span {
  font-size: 1.5rem !important;
  color: #000000;
}

/* Labels - larger and high contrast */
.webform-submission-form label,
.webform-submission-form .form-item label {
  font-size: 1.75rem !important;
  font-weight: 600 !important;
  color: #000000 !important;
  margin-bottom: 0.5rem;
}

/* Section headers - larger text */
.webform-submission-form h3 {
  font-size: 2.5rem !important;
  font-weight: 700 !important;
  color: #000000 !important;
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}

/* All interactive elements - minimum 48px touch target with proper padding */
.webform-submission-form input[type="text"],
.webform-submission-form input[type="email"],
.webform-submission-form input[type="tel"],
.webform-submission-form input[type="number"],
.webform-submission-form input[type="date"],
.webform-submission-form select,
.webform-submission-form textarea {
  font-size: 1.5rem !important;
  padding: 1rem 1.25rem !important;
  min-height: 56px !important;
  color: #000000 !important;
  border: 2px solid #495057 !important;
}

/* Checkbox/Toggle - AAA compliant minimum touch target */
.webform-submission-form .form-item-i-authorize-mncifa-to-process-this-payment {
  min-height: 4rem !important;
  display: flex !important;
  gap: 1rem !important;
  align-items: center !important;
}

.webform-submission-form input[name="i_authorize_mncifa_to_process_this_payment"] {
  min-width: 6rem !important;
  min-height: 4rem !important;
}

/* Submit button - large touch target with black text, white on hover */
.webform-submission-form .webform-button--submit,
.webform-submission-form button[type="submit"],
.webform-submission-form .form-actions input[type="submit"] {
  font-size: 1.75rem !important;
  font-weight: 600 !important;
  padding: 1.25rem 2.5rem !important;
  min-height: 64px !important;
  color: #000000 !important;
  transition: color 0.2s ease;
}

/* Field descriptions */
.webform-submission-form .description,
.webform-submission-form .form-item .description {
  font-size: 1.5rem !important;
  color: #000000 !important;
  line-height: 1.6 !important;
  margin-top: 0.5rem !important;
}

.webform-submission-form .webform-button--submit:hover,
.webform-submission-form button[type="submit"]:hover,
.webform-submission-form .form-actions input[type="submit"]:hover {
  color: #ffffff !important;
}

/* Error messages - high contrast */
.webform-submission-form .usbank-error-message,
.webform-submission-form .form-item--error-message {
  font-size: 1.5rem !important;
  color: #000000 !important;
  padding: 1.25rem !important;
}

/* Validation error tooltips and messages */
.webform-submission-form .form-item--error-message,
.webform-submission-form .form-item.error .form-item--error-message,
.webform-submission-form .error-message,
.webform-submission-form .messages--error,
.webform-submission-form .messages.error {
  background-color: #f8d7da !important;
  color: #721c24 !important;
  border: 2px solid #c41230 !important;
  padding: 1rem !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  margin-top: 0.5rem !important;
}

/* Force dark red text on validation error children */
.webform-submission-form .form-item--error-message *,
.webform-submission-form .error-message *,
.webform-submission-form .messages--error *,
.webform-submission-form .messages.error * {
  color: #721c24 !important;
}

/* Invalid input fields - red border (only after form submission attempt) */
.webform-submission-form.was-validated input:invalid,
.webform-submission-form.was-validated select:invalid,
.webform-submission-form.was-validated textarea:invalid {
  border: 3px solid #c41230 !important;
}

/* Field prefixes (like $ signs) - IMPORTANT */
.webform-submission-form .field-prefix,
.webform-submission-form .form-item .field-prefix,
.webform-submission-form span.field-prefix {
  font-size: 1.5rem !important;
  color: #000000 !important;
  font-weight: 600 !important;
}

.webform-submission-form .field-prefix{
  padding-inline: 1.5rem !important;
  min-height: 56px;
}

/* Form instructions */
.webform-submission-form .alert,
.webform-submission-form .alert * {
  font-size: 1.5rem !important;
  color: #000000 !important;
  padding: 1.25rem !important;
  line-height: 1.6 !important;
}

/* Error messages - high contrast */
.webform-submission-form .usbank-error-message,
.webform-submission-form .form-item--error-message {
  background-color: #f8d7da !important;
  color: #721c24 !important;
  border: 2px solid #c41230 !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  padding: 1.25rem !important;
  margin-top: 0.5rem !important;
}

/* HTML5 browser validation bubbles */
.webform-submission-form input::-webkit-validation-bubble-message {
  background-color: #721c24 !important;
  color: #ffffff !important;
  font-size: 1.5rem !important;
  padding: 1rem !important;
}