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

.xtool-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.xtool-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	box-sizing: border-box;
}

.xtool-form__field--w50 {
	width: calc(50% - 8px);
}

.xtool-form__field--w33 {
	width: calc(33.333% - 11px);
}

@media (max-width: 600px) {
	.xtool-form__field--w50,
	.xtool-form__field--w33 {
		width: 100%;
	}
}

.xtool-form__label {
	font-size: 13px;
	font-weight: 600;
}

.xtool-form__label--sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.xtool-form__req {
	color: #c0392b;
}

.xtool-form__control {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px;
	font-size: 14px;
	font-family: inherit;
	border: 1px solid #e5e0d8;
	border-radius: 8px;
	background: #fff;
	color: #1a1814;
	transition: border-color 0.15s ease;
}

.xtool-form__control:focus {
	outline: none;
	border-color: #1c1c1e;
}

.xtool-form__control::placeholder {
	color: #8a8680;
}

textarea.xtool-form__control {
	resize: vertical;
}

.xtool-form__control-wrap {
	position: relative;
}

.xtool-form__field-icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 15px;
	height: 15px;
	font-size: 15px;
	color: #8a8680;
	pointer-events: none;
}

.xtool-form__field-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.xtool-form__control-wrap.has-icon .xtool-form__control {
	padding-left: calc(var(--xtool-form-icon-size, 15px) + 26px);
}

.xtool-form__control-wrap--textarea .xtool-form__field-icon {
	top: 14px;
	transform: none;
}

.xtool-form__choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
}

.xtool-form__choice {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 400;
	cursor: pointer;
}

.xtool-form__field.is-invalid .xtool-form__control {
	border-color: #c0392b;
}

.xtool-form__error {
	display: none;
	font-size: 12px;
	color: #c0392b;
}

.xtool-form__field.is-invalid .xtool-form__error {
	display: block;
}

.xtool-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
	padding: 12px 26px;
	font-size: 14px;
	font-weight: 600;
	font-family: inherit;
	border: none;
	border-radius: 8px;
	background: #1c1c1e;
	color: #fff;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.xtool-form__submit[disabled] {
	opacity: 0.7;
	cursor: default;
}

.xtool-form__submit-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	font-size: 16px;
	flex-shrink: 0;
}

.xtool-form__submit-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.xtool-form__spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: xtool-form-spin 0.6s linear infinite;
}

.xtool-form.is-submitting .xtool-form__spinner {
	display: inline-block;
}

@keyframes xtool-form-spin {
	to {
		transform: rotate(360deg);
	}
}

.xtool-form__message {
	display: none;
	margin-top: 14px;
	padding: 10px 14px;
	border-radius: 8px;
	font-size: 13.5px;
}

.xtool-form__message.is-visible {
	display: block;
}

.xtool-form__message.is-success {
	background: #e8f5e9;
	color: #256029;
}

.xtool-form__message.is-error {
	background: #fdecea;
	color: #a13a2f;
}
