@charset "utf-8";
.contact_wrap {
		display: flex;
		margin-left: calc(calc(100vw - 1720px) / 2);
		padding-left: 40px;
		position: relative;
}
.contact_left {
		width: 330px;
}
.contact_left.wide {
		width: 350px;
}
@media(max-width: 1800px) {
		.contact_wrap {
				margin-left: 0;
				padding-left: calc(40px + 0.5em);
		}
}
@media(max-width: 1680px) {
		.contact_left {
				width: 250px;
		}
}
@media(max-width: 960px) {
		.contact_wrap {
				display: block;
				padding-right: 40px;
		}
		.contact_left, .contact_left.wide {
				width: auto;
				padding-bottom: 20px;
				margin-bottom: 40px;
				border-bottom: 1px solid #3c3c3c;
		}
}
@media(max-width: 840px) {
		.contact_wrap {
				padding-left: 30px;
				padding-right: 30px;
		}
}
@media(max-width: 767px) {
		.contact_wrap {
				padding-left: 25px;
				padding-right: 25px;
		}
}
.contact_left_hd {
		font-family: "Plus Jakarta Sans", sans-serif;
		letter-spacing: 0;
		font-size: 24px;
		line-height: 1.6;
		font-weight: 400;
}
.contact_left_hd span {
		display: inline-block;
		position: relative;
}
.contact_left_hd span::before, .contact_left_hd span::after {
		content: '';
		display: block;
		position: absolute;
		top: 9px;
		right: -14px;
		width: 10px;
		height: 2px;
		background: #ddd;
}
.contact_left_hd span::after {
		transform: rotate(90deg);
}
.contact_right {
		flex: 1;
}
.contact_notes {
		max-width: 1080px;
		margin: 0 0 20px;
		text-align: right;
		font-size: 90%;
		padding-right: 30px;
}
.contact_form {
		margin-bottom: 50px;
}
.contact_form:not(.extra) {
		display: flex;
		align-items: center;
}
.contact_form.extra {
		display: flex;
}
.contact_form:not(.extra) dt, .contact_form:not(.extra) dd {
		height: 80px;
		display: flex;
		align-items: center;
}
.contact_form dt, .contact_form dd {
		border-bottom: 1px solid #3c3c3c;
		position: relative;
}
.contact_form dt {
		font-family: "Plus Jakarta Sans", sans-serif;
		letter-spacing: 0;
		font-size: 16px;
		font-weight: 500;
		width: 150px;
		margin-right: 20px;
}
.contact_form.extra dt div {
		position: relative;
		top: 10px;
}
.contact_form dd {
		flex: 1
}
.contact_form dd.fileExtra {
		display: block;
}
.wpcf7 input[type="file"] {
		width: 100%;
}
input[type=file]::file-selector-button {
		border: 1px solid #505050;
		background: #3C3C3C;
		color: #ddd;
		margin-right: 10px;
		cursor: pointer;
		width: 130px;
		height: 34px;
		text-align: center;
		line-height: 34px;
}
.file_notes {
		margin-top: 1em;
		padding-bottom: 25px;
}
.file_notes ul {
		list-style: none;
		color: #ddd;
		font-size: 13px;
}
.file_notes ul li {
		line-height: 1.6;
}
.file_notes ul li:first-child {
		margin-bottom: 2px;
}
.contact_form dd::after {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 1px;
		background: #fff;
		transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
		transform-origin: left center;
		transform: scaleX(0);
}
.contact_form dd.isActive::after {
		transform: scaleX(1);
}
@media(max-width: 767px) {
		.contact_form, .contact_form.extra {
				display: block !important;
		}
		.contact_form, .contact_form dt, .contact_form dd, .contact_form.extra dt, .contact_form.extra dd {
				width: auto !important;
				height: auto !important;
				display: block !important;
		}
		.contact_form dt, .contact_form.extra dt {
				border: none;
				padding-bottom: 5px !important;
		}
		.contact_form dd, .contact_form.extra dd {
				padding-bottom: 10px;
		}
		.contact_form.extra dt div {
				position: static;
				top: inherit;
		}
}
/* ================= */
input[type="button"], input[type="submit"], input[type="reset"] {
		-webkit-appearance: none;
}
input:-webkit-autofill {
		box-shadow: 0 0 0 1000px #1e1e1e inset;
		-webkit-text-fill-color: #fff !important;
}
input::placeholder, textarea::placeholder {
		color: #787878;
		font-size: 16px;
		font-feature-settings: "palt";
		letter-spacing: 0.05em;
}
.contact_form input[type="text"], .contact_form input[type="email"], .contact_form textarea, .contact_form select {
		max-width: 600px;
		font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
		font-size: 16px;
		border-radius: 0;
		outline: none;
		border: none;
		box-sizing: border-box;
}
.contact_form input[type="text"], .contact_form input[type="email"], .contact_form textarea {
		padding: 10px;
		padding-left: 0px;
		color: #fff;
		background: none;
}
.contact_form select {
		padding: 10px;
		padding-left: 0px;
		font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
		font-size: 16px;
		color: #787878;
}
.contact_form option {
		color: #fff;
}
.contact_form select, .contact_form option {
		background: #1e1e1e;
}
.contact_form textarea {
		height: 250px;
		resize: none;
}
@media(max-width: 767px) {
		.contact_form input[type="text"], .contact_form input[type="email"], .contact_form textarea, .contact_form select {
				max-width: inherit;
				width: 100%;
				box-sizing: border-box;
		}
		input::placeholder, textarea::placeholder {
				font-size: 13px;
		}
		.contact_form textarea {
				height: 150px;
		}
}
/* ================ */
.contact_agree_wrap {
		display: flex;
		justify-content: center;
		margin: 0 0 80px;
		max-width: 680px;
}
.contact_agree {
		display: flex;
		align-items: center;
		position: relative;
		padding-left: 34px;
}
.contact_agree label {
		cursor: pointer;
}
.contact_agree input {
		display: block;
		position: absolute;
		width: 20px;
		height: 20px;
		top: 0;
		left: -34px;
		border: none;
		opacity: 0;
		background: none;
}
.contact_agree input + span {
		position: relative;
}
.contact_agree input + span::before, .contact_agree input + span::after {
		content: '';
		display: block;
		position: absolute;
		box-sizing: border-box;
}
.contact_agree input + span::before {
		top: 1px;
		left: -34px;
		width: 20px;
		height: 20px;
		border: 1px solid #ddd;
}
.contact_agree input + span::after {
		top: 10px;
		left: -34px;
		width: 20px;
		height: 2px;
		transform: rotate(-45deg);
}
.contact_agree input:checked + span::before {
		background: #ddd;
}
.contact_agree input:checked + span::after {
		background: #1e1e1e;
}
.contact_agree .wpcf7-list-item {
		margin: 0 !important
}
/* ============== */
.agree_box_hd {
		font-weight: 500;
		font-size: 16px;
		max-width: 680px;
		text-align: center;
		margin: 100px 0 40px;
		line-height: 1.6;
}
.agree_box {
		max-width: 680px;
		height: 250px;
		box-sizing: border-box;
		margin: 0 0 40px;
		position: relative;
}
.agree_box .agree_box_frame {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
		box-sizing: border-box;
		border: 1px solid #505050;
}
.agree_inner {
		padding: 10px 20px;
		overflow: auto;
		height: 250px;
		box-sizing: border-box;
}
.agree_inner h4 {
		font-size: 14px;
		width: auto;
		float: none;
		text-align: center;
		font-weight: 500;
		position: relative;
		margin: 0 0 15px;
		padding-top: 0;
}
.agree_inner ol {
		padding-left: 20px;
}
.agree_inner p, .agree_inner li {
		font-size: 13px;
		line-height: 1.8;
}
.agree_inner p {
		text-align: justify;
}
.agree_inner ul {
		padding-left: 0;
		margin-left: 1em;
		list-style: none;
}
.agree_inner li {
		margin-bottom: 6px;
		line-height: 1.8;
}
.agree_inner ul li {
		position: relative;
}
.agree_inner ul li::after {
		content: '・';
		display: block;
		position: absolute;
		top: 0;
		left: -1em;
}
.agree_inner h5 {
		margin: 1.25em 0 0.3em;
		font-size: 14px;
		font-weight: 500;
}
.contact_agree_lead {
		max-width: 680px;
		margin: 0 0 40px;
		text-align: center;
		line-height: 1.8;
}
@media(max-width: 1680px) {
		.agree_box_hd, .contact_agree_lead {
				max-width: inherit;
				transform: translateX(-125px)
		}
		.agree_box {
				margin-left: auto;
				margin-right: auto;
				transform: translateX(-125px)
		}
		.contact_agree_wrap {
				max-width: inherit;
				margin-left: auto;
				margin-right: auto;
				transform: translateX(-125px)
		}
		.send_btn_gr {}
}
@media(max-width: 960px) {
		.agree_box_hd, .contact_agree_lead, .send_btn_gr, .agree_box, .contact_agree_wrap {
				transform: translateX(0)
		}
}
/* ============== */
.send_btn_gr {
		max-width: 680px;
		display: flex;
		justify-content: center;
		position: relative;
}
@media(max-width: 1680px) {
		.send_btn_gr {
				max-width: inherit;
				transform: translateX(-125px)
		}
}
@media(max-width: 960px) {
		.send_btn_gr {
				transform: translateX(0px)
		}
}
.send_btn_gr .wpcf7-spinner {
		position: absolute;
		left: calc(50% - 12px);
		top: -45px;
		margin: 0 !important;
}
.send_btn_gr input {
		width: 240px;
		height: 50px;
		border-radius: 60px;
		background: none;
		border: 1px solid #505050;
		transition: background 0.2s;
		cursor: pointer;
		color: #ddd;
		letter-spacing: 0.1em;
		font-size: 16px;
		font-weight: 500;
}
@media (hover: hover) {
		.send_btn_gr input:hover {
				background: #3c3c3c;
				color: #ddd;
		}
}
@media(max-width: 767px) {
		.agree_box {
				height: 200px;
		}
		.agree_inner {
				padding: 10px 15px;
				overflow: auto;
				height: 200px;
		}
}
/* ============ */
.contact_form dd .wpcf7-not-valid-tip {
		position: absolute;
		bottom: -45px;
		left: 0;
		color: #dc3232;
		font-size: 13px;
		font-family: "Plus Jakarta Sans", sans-serif;
		font-weight: 400;
}

.contact_right .wpcf7 form .wpcf7-response-output {
		max-width: 680px;
		text-align: center;
		border: 1px solid #dc3232;
		border: none !important;
		margin: 30px 0;
		padding: 15px 0;
		font-family: "Plus Jakarta Sans", sans-serif;
		font-weight: 400;
		letter-spacing: 0
}
.contact_right .wpcf7 form.invalid .wpcf7-response-output, .contact_right .wpcf7 form.unaccepted .wpcf7-response-output, .contact_right .wpcf7 form.payment-required .wpcf7-response-output {
		border-color: #dc3232;
		color: #dc3232;
}
/* =============== */
.contact_must {
		font-size: 14px;
		max-width: 1050px;
		text-align: right;
}
@media(min-width: 961px) {
		.contact_must {
				transform: translateY(-40px);
				padding-right: 40px;
		}
}
@media(max-width: 960px) {
		.contact_must {
				padding-right: 0;
				margin: 0 0 20px;
		}
}
@media(max-width: 767px) {
		.contact_must {
				font-size: 12px;
		}
}