/// @access private
/// @output styles for valid and invalid inputs
@mixin _oFormsValidityStates() {
	.o-forms-input__error {
		display: none;
	}

	.o-forms-input--invalid {
		*:invalid:not(:disabled),
		input:not(:disabled),
		textarea:not(:disabled),
		select:not(:disabled) {
			color: _oFormsGet('invalid-base');
			border-color: _oFormsGet('invalid-base');

			+ .o-forms-input__label:before,
			+ .o-forms-input__label:after {
				border-color: _oFormsGet('invalid-base');
			}
		}

		.o-forms-input__error {
			font-family: oPrivateFoundationGet('o3-type-body-base-font-family');
			font-size: oPrivateFoundationGet('o3-type-body-base-font-size');
			line-height: oPrivateFoundationGet('o3-type-body-base-line-height');
			font-weight: oPrivateFoundationGet('o3-type-body-base-font-weight');
			color: _oFormsGet('invalid-base');
			display: block;
			position: relative;
			margin-top: oPrivateSpacingByIncrement(1);
			margin-bottom: -#{oPrivateSpacingByIncrement(7)};
		}
	}
}
