/*
 * Utilities
 */
.dnb-forms-submit-indicator {
  --padding-left: 0.5em;
  --font-animation: font-size var(--font-animation-duration, 400ms)
    var(--easing-default);
  --opacity-animation: opacity var(--opacity-animation-duration, 0ms)
    var(--easing-default) var(--opacity-animation-delay, 0ms);
}
.dnb-forms-submit-indicator:has(.dnb-forms-submit-indicator__label) {
  --font-animation-duration: 400ms;
  --opacity-animation-duration: 400ms;
  --opacity-animation-delay: 250ms;
}
.dnb-forms-submit-indicator {
  display: inline;
}
.dnb-forms-submit-indicator__label {
  padding: 0.5em 0;
}
.dnb-forms-submit-indicator__content {
  align-items: center;
  font-size: 0;
  opacity: 0;
  line-height: 1em;
  will-change: font-size opacity;
  transition: var(--font-animation), var(--opacity-animation);
}
.dnb-forms-submit-indicator__content b {
  padding-left: 0.125em;
  color: var(--dots-color, currentColor);
}
.dnb-forms-submit-indicator__content b:nth-of-type(1) {
  padding-left: var(--padding-left);
  animation-delay: 50ms;
}
.dnb-forms-submit-indicator__content b:nth-of-type(2) {
  animation-delay: 200ms;
}
.dnb-forms-submit-indicator__content b:nth-of-type(3) {
  animation-delay: 400ms;
}
.dnb-forms-submit-indicator__content b {
  opacity: 0.2;
  animation-name: submit-indicator-dot;
  animation-iteration-count: infinite;
  animation-duration: 1.3s;
  animation-delay: 200ms;
}
html[data-visual-test] .dnb-forms-submit-indicator__content b {
  animation: none;
}
.dnb-forms-submit-indicator__content b {
  font-weight: var(--font-weight-bold);
}
.dnb-forms-submit-indicator--state-pending .dnb-forms-submit-indicator__content {
  font-size: 1em;
  opacity: 1;
}
.dnb-forms-submit-indicator--inline-wrap .dnb-forms-submit-indicator__content {
  display: flex;
  --padding-left: 0.25em;
}
.dnb-button .dnb-forms-submit-indicator__content {
  cursor: inherit;
}

@keyframes submit-indicator-dot {
  0% {
    opacity: 0.2;
  }
  15% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  60% {
    opacity: 0.3;
  }
  100% {
    opacity: 0.2;
  }
}
@keyframes submit-indicator-success {
  0% {
    opacity: 0.2;
    font-size: 1em;
  }
  20% {
    opacity: 1;
    font-size: 1em;
  }
  80% {
    opacity: 1;
  }
  85% {
    opacity: 0.3;
    font-size: 1em;
  }
  90% {
    opacity: 0;
  }
  100% {
    opacity: 0;
    font-size: 0;
  }
}