/* Neutral baseline styling -- usable on any theme with no dependency.
   A theme (e.g. ojji-base) can restyle these same classes to match its own
   design system; nothing here assumes a CSS framework is present. */

.ojji-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ojji-form__field {
	margin-bottom: 1em;
}

.ojji-form__field label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35em;
}

.ojji-form__required {
	color: #c0392b;
}

.ojji-form__field input[type="text"],
.ojji-form__field input[type="email"],
.ojji-form__field input[type="tel"],
.ojji-form__field input[type="date"],
.ojji-form__field input[type="datetime-local"],
.ojji-form__field input[type="file"],
.ojji-form__field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em 0.75em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font: inherit;
}

.ojji-form__field--invalid input,
.ojji-form__field--invalid textarea {
	border-color: #c0392b;
}

.ojji-form__hint {
	display: block;
	font-size: 0.85em;
	color: #666;
	margin-top: 0.3em;
}

.ojji-form__field-error {
	display: block;
	color: #c0392b;
	font-size: 0.85em;
	margin-top: 0.3em;
}

.ojji-form__error-banner {
	background: #fdecea;
	color: #c0392b;
	border: 1px solid #f5c6cb;
	border-radius: 4px;
	padding: 0.75em 1em;
	margin-bottom: 1em;
}

.ojji-form__submit {
	font: inherit;
	padding: 0.7em 1.5em;
	border: 0;
	border-radius: 4px;
	background: #222;
	color: #fff;
	cursor: pointer;
}

.ojji-form__submit.is-loading {
	opacity: 0.6;
	cursor: wait;
}

.ojji-form__success {
	padding: 1em;
	border: 1px solid #c3e6cb;
	background: #d4edda;
	color: #155724;
	border-radius: 4px;
}
