input[type="text"].error,
input[type="number"].error,
input[type="password"].error,
input[type="email"].error,
input[type="submit"].error,
select.error {
  border: 0.1333em solid #D81921;
}

input[type="radio"].error,
input[type="checkbox"].error,
input[type="file"].error {
  outline: 0.1333em solid #D81921;
}

span[data-error] {
  position: relative;
  font-size: 1em;
}

span[data-error]:before {
  content: "";
  position: absolute;
  border-top: 1.6em solid #D81921;
  border-left: 1.6em solid transparent;
  border-right: 1.6em solid transparent;
  visibility: hidden;
  top: -1.2em;
  left: -1.2em;
}

span[data-error]:after {
  position: absolute;
  content: attr(data-error);
  font-size: 0.8em;
  font-weight: bold;
  top: -2em;
  left: -1.6em;
  background: #D81921;
  color: #FFFFFF;
  padding: 0.2em 0.6em;
  border-radius: 0.4em;
  white-space: nowrap;
  visibility: hidden;
}

span[data-error]:hover:before,
span[data-error]:hover:after {
  visibility: visible;
}

[data-star]:after {
  content: '*';
  font-size: 1.25em;
  line-height: 1.0em;
  color: #D81921;
}