/*
 * Shared public form system.
 * Loaded after page-level styles so field controls and status messages stay consistent.
 */
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) :is(
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="url"],
  input[type="number"],
  select,
  textarea
):not(.honeypot) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: var(--form-field-height);
  padding: var(--space-3) var(--space-4);
  border: var(--border-width) solid var(--form-field-border);
  border-radius: var(--form-field-radius);
  outline: 0;
  color: var(--form-field-color);
  background: var(--form-field-background);
  font-size: var(--form-field-font-size);
  line-height: var(--line-height-body);
  transition: border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) textarea:not(.honeypot) {
  min-height: 132px;
  resize: vertical;
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) :is(
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="url"],
  input[type="number"],
  select,
  textarea
):not(.honeypot):focus {
  border-color: var(--blue);
  background: var(--white);
  box-shadow: var(--focus-ring);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) :is(input, textarea)::placeholder {
  color: var(--text-tertiary);
  opacity: 1;
}

/* Shared field-label treatment for all public forms. */
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) :is(
  .form-grid,
  .contact-form-fields,
  .iosco-report-form-fields,
  .newsletter-details-fields
) label,
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) > label:not(.consent):not(.newsletter-market-option):not(.newsletter-corporate-option) {
  display: grid;
  gap: var(--space-2);
  color: var(--form-label-color);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-small);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) :is(
  .contact-market-grid label,
  .pricing-market-options label,
  .newsletter-card fieldset label,
  .newsletter-card .consent,
  .signup-form .signup-consent
) {
  font-size: var(--font-size-small);
  font-weight: var(--font-weight-regular);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card)[aria-busy="true"] button[type="submit"] {
  cursor: wait;
  opacity: .72;
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) button[type="submit"][hidden] {
  display: none !important;
}

/* Native checkbox treatment for forms that do not already use a bespoke card/pill control. */
.contact-market-grid input[type="checkbox"],
.pricing-market-options input[type="checkbox"],
.signup-consent input[type="checkbox"],
.newsletter-card input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  width: 22px;
  min-width: 22px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 0;
  border: var(--border-width-medium) solid var(--border-hover);
  border-radius: var(--radius-compact);
  background-color: var(--white);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 12px 12px;
  cursor: pointer;
  transition: border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);
}
.contact-market-grid input[type="checkbox"]:checked,
.pricing-market-options input[type="checkbox"]:checked,
.signup-consent input[type="checkbox"]:checked,
.newsletter-card input[type="checkbox"]:checked {
  border-color: var(--blue);
  background-color: var(--blue);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.25 6.25 11.5 13 4.75' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.contact-market-grid input[type="checkbox"]:focus-visible,
.pricing-market-options input[type="checkbox"]:focus-visible,
.signup-consent input[type="checkbox"]:focus-visible,
.newsletter-card input[type="checkbox"]:focus-visible {
  border-color: var(--blue);
  box-shadow: var(--focus-ring);
}
.contact-market-grid label,
.pricing-market-options label,
.newsletter-card fieldset label,
.newsletter-card .consent,
.signup-form .signup-consent {
  align-items: center;
}

/* One shared inline feedback pattern: no body injection and no detached thank-you UI. */
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status {
  display: none;
  box-sizing: border-box;
  width: 100%;
  margin: var(--space-4) 0 0;
  padding: var(--space-4);
  border: var(--border-width) solid var(--border-divider);
  border-radius: var(--radius-md);
  color: var(--navy);
  background: var(--white);
  box-shadow: var(--shadow-subtle);
  font-size: var(--font-size-small);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-body);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status:not(:empty) {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: var(--space-3);
  align-items: center;
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status::before {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: var(--font-weight-bold);
  line-height: 1;
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="loading"] {
  color: var(--navy);
  background: var(--surface-soft-blue);
  border-color: var(--dca-columbia-blue);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="loading"]::before {
  content: "";
  box-sizing: border-box;
  border: 2px solid var(--dca-columbia-blue);
  border-top-color: var(--blue);
  animation: dca-form-status-spin .8s linear infinite;
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="success"] {
  color: var(--status-up-text);
  background: var(--status-up-bg);
  border-color: var(--status-up-tint);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="success"]::before {
  content: "✓";
  color: var(--status-up-text);
  background: var(--status-up-tint);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="error"] {
  color: var(--red-action-hover);
  background: var(--status-down-bg);
  border-color: rgba(223, 61, 75, .22);
}
form[data-hs-do-not-collect="true"]:not(.cookie-dialog-card) .form-status[data-state="error"]::before {
  content: "!";
  color: var(--red-action-hover);
  background: rgba(223, 61, 75, .12);
}
@keyframes dca-form-status-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Footer form is intentionally compact, but feedback still belongs inside the card. */
.newsletter-card .form-status {
  margin-top: var(--space-4);
}

/* Dark media band uses the same fields but keeps feedback readable on the dark surface. */
.media-updates-form .form-status {
  grid-column: 1 / -1;
}
@media (max-width: 700px) {
  .contact-market-grid input[type="checkbox"],
  .pricing-market-options input[type="checkbox"],
  .signup-consent input[type="checkbox"],
  .newsletter-card input[type="checkbox"] {
    width: 24px;
    min-width: 24px;
    height: 24px;
    min-height: 24px;
  }
}
.contact-market-grid label,
.signup-form .signup-consent,
.newsletter-card fieldset label,
.newsletter-card .consent {
  grid-template-columns: 22px minmax(0, 1fr);
}
.form-submit-row .form-status {
  flex: 1 1 auto;
  margin-top: 0;
}
@media (max-width: 700px) {
  .contact-market-grid label,
  .signup-form .signup-consent,
  .newsletter-card fieldset label,
  .newsletter-card .consent {
    grid-template-columns: 24px minmax(0, 1fr);
  }
  .form-submit-row .form-status {
    margin-top: var(--space-3);
  }
}
