.txf-form-wrap {
	max-width: 100%;
	box-sizing: border-box;
}

.txf-form-wrap *,
.txf-form-wrap *::before,
.txf-form-wrap *::after {
	box-sizing: inherit;
}

.txf-field-row {
	margin-bottom: 1.2em;
}

.txf-field-row label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.4em;
}

.txf-field-row input[type="text"],
.txf-field-row input[type="email"],
.txf-field-row input[type="tel"],
.txf-field-row input[type="number"],
.txf-field-row input[type="date"],
.txf-field-row input[type="file"],
.txf-field-row textarea,
.txf-field-row select {
	width: 100%;
	padding: 0.6em 0.7em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 1em;
}

.txf-field-row textarea {
	min-height: 120px;
}

.txf-required {
	color: #d63638;
}

.txf-field-description {
	display: block;
	color: #666;
	font-size: 0.85em;
	margin-top: 0.3em;
}

.txf-field-row.txf-has-error input,
.txf-field-row.txf-has-error textarea,
.txf-field-row.txf-has-error select {
	border-color: #d63638;
}

.txf-field-error {
	display: block;
	color: #d63638;
	font-size: 0.85em;
	margin-top: 0.3em;
}

.txf-form-error {
	background: #fbeaea;
	border: 1px solid #d63638;
	color: #8a1f22;
	padding: 0.8em 1em;
	border-radius: 4px;
	margin-bottom: 1em;
}

.txf-confirmation {
	background: #eafaf1;
	border: 1px solid #00a32a;
	color: #04652f;
	padding: 1em;
	border-radius: 4px;
	white-space: pre-line;
}

.txf-hp-wrap {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	height: 0;
	overflow: hidden;
}

.txf-submit-button {
	display: inline-block;
	padding: 0.7em 1.6em;
	border: none;
	border-radius: 4px;
	background: #2271b1;
	color: #fff;
	font-size: 1em;
	cursor: pointer;
}

.txf-submit-button:hover {
	background: #135e96;
}

.txf-submit-button:disabled {
	opacity: 0.6;
	cursor: default;
}
