/* Virtualnet contact form states. Colours meet WCAG AA contrast on white text. */
.vn-form__hp {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  inset-inline-start: -10000px;
}

.vn-form__error {
  display: block;
  margin-block-start: 0.25rem;
  color: #b00020;
  font-size: 0.875rem;
}

.vn-form__error:empty {
  display: none;
}

:is(input, textarea, select)[aria-invalid="true"] {
  border-color: #b00020 !important;
}

.vn-form-status {
  --vn-status-bg: #f1f3f5;
  --vn-status-fg: #1f2933;

  margin-block: 1rem;
  padding: 0.9rem 1rem;
  border-radius: 0.25rem;
  background: var(--vn-status-bg);
  color: var(--vn-status-fg);
  font-weight: 600;

  &.vn-form-status--success { --vn-status-bg: #046c3a; --vn-status-fg: #fff; }
  &.vn-form-status--error { --vn-status-bg: #b00020; --vn-status-fg: #fff; }
}

[aria-busy="true"] :is(button, input)[type="submit"] {
  cursor: progress;
  opacity: 0.7;
}

@media (prefers-color-scheme: dark) {
  .vn-form-status--loading { --vn-status-bg: #2b3138; --vn-status-fg: #f1f3f5; }
}
