.txt {
	font-size: 16px;
	text-align: center;
	padding: 0 20px;
	margin: 0 auto 20px;
	line-height:29px;
}

.txt a {
	text-decoration: underline;
}

.txt a:hover {
	color: #888;
}

.wpcf7 {
	width: calc(100% - 40px);
	max-width: 800px;
	margin: 0 auto;
	padding: 0 20px;
}

.wpcf7 .wpcf7-form p {
	padding: 15px 0;
}

.wpcf7 label {
	font-size: 16px;
	font-weight: bold;
	display: flex;
	flex-direction: column;
}

.wpcf7 label br {
	display: none;
}

.wpcf7 input {
	background: #EEE;
	border-radius: 3px;
	width: calc(100% - 14px);
	font-weight: normal;
	padding: 3px 7px;
	margin-top: 7px;
}

.wpcf7 textarea {
	background: #EEE;
	border-radius: 3px;
	width: calc(100% - 14px);
	font-weight: normal;
	padding: 3px 7px;
	margin-top: 7px;
}

.wpcf7 .required_area::after {
	content: "必須";
	border: 1px solid #dc143c;
	color: #dc143c;
	margin-left: 8px;
	margin-top: -5px;
	padding: 2px 5px 1px;
	font-size: 12px;
	border-radius: 2px;
	font-weight: normal;
	vertical-align: top;
}

.wpcf7 .confirm_policy {
	font-size: 14px;
	padding: 25px 5px;
	text-align: center;
}

.wpcf7 .wpcf7-submit, .wpcf7 .wpcf7-confirm {
	background-color: #183b58;
	color: #FFF;
	padding: 10px 0;
}

.wpcf7 .wpcf7-back {
	padding: 10px 0;
}


@media (min-width: 769px) {
	.wpcf7 label {
		flex-direction: row;
	}
	
	.wpcf7 .wpcf7-form p {
		padding: 20px 0;
	}

	.wpcf7 label {
		display: grid;
		grid-template-columns: 1fr 3fr;
	}

	.wpcf7 input {
		margin-top: -5px;
		width: 100%;
	}

	.wpcf7 textarea {
		margin-top: -5px;
	}
	
	.wpcf7 .required_area::after {
		vertical-align: middle;
	}
	
	.wpcf7 .wpcf7-form-control-wrap {
		grid-area: 1/2/2/2;
	}

	.wpcf7 .confirm_policy .checkbox-895 label {
		display: block;
	}
	
	#wpcf7-f108-o1 p {
		margin-top: 5px;
		border-bottom: 1px solid #CCC;
	}
	#wpcf7-f108-o1 p input {
		padding: 10px 0;
	}
	#wpcf7-f108-o1 p select {
		padding: 5px;
		width: 200px;
		margin-left: 5px;
	}
	#wpcf7-f108-o1 .wpcf7-submit, #wpcf7-f108-o1 .wpcf7-confirm {
		max-width: 100%;
	}

}

