.sterling-input {
  box-sizing: border-box;
  display: inline-block;
  margin: 0;
  padding: 0;
  position: relative;
}

.sterling-input input {
  appearance: none;
  background-color: var(--stsv-input__background-color);
  border-color: transparent;
  border-bottom-color: var(--stsv-input__border-color);
  border-radius: 3px;
  border-style: solid;
  border-width: var(--stsv-input__border-width);
  box-sizing: border-box;
  color: var(--stsv-input__color);
  display: block;
  font: inherit;
  margin: 0;
  outline: none;
  padding: 0.5em;
  transition:
    background-color 250ms,
    color 250ms,
    border-color 250ms;
  width: 100%;
}

.sterling-input:hover input:not(:disabled) {
  background-color: var(--stsv-input__background-color--hover);
  border-bottom-color: var(--stsv-input__border-color--hover);
  color: var(--stsv-input__color--hover);
}

.sterling-input input:focus,
.sterling-input:hover input:focus {
  background-color: var(--stsv-input__background-color--focus);
  border-bottom-color: var(--stsv-input__border-color--focus);
  color: var(--stsv-input__color--focus);
}

/* ----- placeholder ----- */

input::placeholder {
  color: var(--stsv-common__color--subtle);
}

/* ----- label ----- */

.sterling-input-label {
  color: var(--stsv-common__color);
  transition: color 250ms;
  font: inherit;
}

/* ----- prefers-reduce-motion ----- */

@media (prefers-reduced-motion) {
  .sterling-input::after,
  .sterling-input-label {
    transition: none;
  }
}
