/// @access private
/// @output Shared base state styles for all form elements.
@mixin _oFormsBase() {
	@include _oFormsValidityStates();

	.o-forms-field,
	.o-forms-title,
	.o-forms-input {
		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');
	}

	.o-forms-field {
		display: flex;
		flex-direction: column;
		margin-bottom: $_o-forms-spacing-eight;
		position: relative;
		color: oPrivateFoundationGet('o3-color-use-case-body-text');

		label {
			display: block;
			margin: 0 0 $_o-forms-spacing-three;
			position: relative;
		}

		label:last-of-type {
			margin-bottom: 0;
		}
	}

	.o-forms-field--optional .o-forms-title__main:after {
		content: 'Optional';
		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: oPrivateFoundationGet('o3-color-use-case-muted-text');
		margin-left: oPrivateFoundationGet('o3-spacing-3xs');
	}

	.o-forms-title__main {
		font-family: oPrivateFoundationGet('o3-type-body-highlight-font-family');
		font-size: oPrivateFoundationGet('o3-type-body-highlight-font-size');
		line-height: oPrivateFoundationGet('o3-type-body-highlight-line-height');
		font-weight: oPrivateFoundationGet('o3-type-body-highlight-font-weight');
		display: block;
	}

	.o-forms-input__label__main {
		font-family: oPrivateFoundationGet('o3-type-body-lg-font-family');
		font-size: oPrivateFoundationGet('o3-type-body-lg-font-size');
		line-height: oPrivateFoundationGet('o3-type-body-lg-line-height');
		font-weight: oPrivateFoundationGet('o3-type-body-lg-font-weight');
		display: block;
	}

	.o-forms-input__label__prompt,
	.o-forms-title__prompt {
		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('default-prompt-text');
		display: block;
	}

	.o-forms-input__label__main + .o-forms-input__label__prompt {
		margin-top: oPrivateSpacingByName('s1');
	}

	.o-forms-input {
		margin-top: $_o-forms-spacing-three;
		// remove default browser styles
		input {
			border-radius: 0;
			appearance: none;
		}
	}
}
