@charset "utf-8";


/* -- form#mail_form, dl, dt, dd -------------------------------------------------------------------------------- */
form#mail_form dl {
	width: 100%;
	margin: 0 auto;
	letter-spacing: 0.15em;
}
form#mail_form dl:after,
form#mail_form dt:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
form#mail_form dt i {
	position: relative;
}


/* -- span.required, span.optional -------------------------------------------------------------------------------- */
form#mail_form dt span.required,
form#mail_form dt span.optional {
	font-size: 8px;
	font-style: normal;
	display: inline-block;
	padding: 0;
}
form#mail_form dt span.required {
	margin-left: .15em;
	color: #ff0000;
	transform: translateY(-.5em);
}
form#mail_form dt span.optional {
	display: none;
}


/* -- error message -------------------------------------------------------------------------------- */
form#mail_form dd span.error_blank,
form#mail_form dd span.error_format,
form#mail_form dd span.error_match {
	font-size: 10px;
	display: block;
	color: #ff0000;
	margin-top: .5em;
}


/* -- loading -------------------------------------------------------------------------------- */
div.loading-layer {
	width: 100vw;
	height: 100vh;
	background: rgba( 0, 0, 0, 0.7 );
	position: fixed;
	left: 0px;
	top: 0px;
	z-index: 10000;
}
span.loading {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border-top: 5px solid rgba( 255, 255, 255, 0.2 );
	border-right: 5px solid rgba( 255, 255, 255, 0.2 );
	border-bottom: 5px solid rgba( 255, 255, 255, 0.2 );
	border-left: 5px solid #ffffff;
	-webkit-transform: translateZ( 0 );
	-ms-transform: translateZ( 0 );
	transform: translateZ( 0 );
	-webkit-animation: load-circle 1.0s linear infinite;
	animation: load-circle 1.0s linear infinite;
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -30px;
	margin-left: -30px;
}
.contents_txt {
	font-size: 14px;
    letter-spacing: 0.15em;
    text-align: center;
	margin: auto;
	padding: 0 40px 0;
}
@-webkit-keyframes load-circle {
	0% {
		-webkit-transform: rotate( 0deg );
		transform: rotate( 0deg );
	}
	100% {
		-webkit-transform: rotate( 360deg );
		transform: rotate( 360deg );
	}
}
@keyframes load-circle {
	0% {
		-webkit-transform: rotate( 0deg );
		transform: rotate( 0deg );
	}
	100% {
		-webkit-transform: rotate( 360deg );
		transform: rotate( 360deg );
	}
}


/* -- input, select, textarea -------------------------------------------------------------------------------- */
form#mail_form input[type="text"],
form#mail_form input[type="email"],
form#mail_form input[type="tel"] {
	width: 100%;
	font-size: 14px;
	font-weight: normal;
	letter-spacing: .1em;
	padding: .5em .75em;
	border: none;
	color: #5a5a5a;
	background: #fff;
	border: 1px solid #d6d6d6;
	-webkit-appearance: none;
}
form#mail_form input[type="text"]:focus,
form#mail_form input[type="email"]:focus,
form#mail_form input[type="tel"]:focus,
form#mail_form textarea:focus {
	box-shadow: unset;
	outline: unset;
}
form#mail_form input::placeholder {
	color: #d6d6d6;
}
form#mail_form ul li input[type="radio"],
form#mail_form ul li input[type="checkbox"] {
	margin: 0 .35em 0 0;
}
form#mail_form textarea {
	width: 100%;
	height: 155px;
	min-height: 155px;
	font-size: 14px;
	font-weight: normal;
	letter-spacing: .1em;
	display: block;
	resize: vertical;
	padding: 10px 1em;
	border: none;
	color: #5a5a5a;
	background: #fff;
	border: 1px solid #d6d6d6;
	-webkit-appearance: none;
}


/* -- input design -------------------------------------------------------------------------------- */
form#mail_form input[name="name_1"],
form#mail_form input[name="read_1"],
form#mail_form input[name="phone"],
form#mail_form input[name="mail_address"],
form#mail_form input[name="address"] {
	width: 100%;
}
form#mail_form dd p {
	display: flex;
	align-items: center;
}
form#mail_form dd p + p {
	margin-top: 15px;
}
form#mail_form dd span {
	display: inline-block;
	margin-right: .5em;	
}


/* -- button -------------------------------------------------------------------------------- */
form#mail_form p#form_submit {
	width: 100%;
	text-align: center;
	margin: 0 auto;
}
form#mail_form p#form_submit input {
	width: 100%;
	max-width: 320px;
	height: 55px;
	font-size: 16px;
	letter-spacing: .1em;
	color: #fff;
	background-color: #00a0e6;
	transition: background-color .3s;
}
form#mail_form p#form_submit input:hover {
	background-color: #f15000;
}



/* -- responsive ----------------------------------------------------------------------------------------------------------------------- */
@media screen and ( max-width: 768px ) {
	/* -- form#mail_form, dl, dt, dd -------------------------------------------------------------------------------- */
	form#mail_form {
		width: 100%;
		max-width: 600px;
		font-size: 100%;
	}
	form#mail_form dt {
		width: auto;
		float: none;
	}
	form#mail_form dd {
		width: auto;
		float: none;
	}
	form#mail_form dt i {
		float: none;
		position: static;
		font-weight: normal;
	}
}


/* -- form項目 ----------------------------------------- */
form#mail_form dt {
	width: 110px;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.3;
	text-align: left;
}
form#mail_form dd {
	width: calc(100% - 110px);
}

/* --- radiobtn・checkbox --- */
form#mail_form ul li label {
	color: #606060;
}
/* --- radiobtn --- */
form#mail_form .radio_wrap {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: flex-start;
}
form#mail_form .radio_wrap li + li {
	margin-left: 1.5em;
}
.radioItem {
	width: fit-content;
	line-height: 1;
	display: flex;
	align-items: center;
	column-gap: 4px;
	cursor: pointer;
}
.radioItem:not(:last-of-type) {
	margin-bottom: 16px;
}
.radioButton {
	width:  1em;
	height: 1em;
	min-width:  1em;
	min-height: 1em;
	position: relative;
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	border: 1px solid #acacac;
	border-radius: 9999px;
	cursor: pointer;
	appearance: none;
	transform: translateY(-.1em);
}
.radioButton:checked::after {
	content: "";
	width:  .55em;
	height: .55em;
	min-width:  .55em;
	min-height: .55em;
	display: block;
	position: absolute;
	border-radius: 9999px;
	background-color: #acacac;
}

/* --- checkbox --- */
form#mail_form .checkbox_wrap {
	margin-bottom: 30px;
}
form#mail_form .checkbox_wrap li + li {
	margin-top: 1em;
}
.checkboxItem {
	width: fit-content;
	line-height: 1;
	display: flex;
	align-items: center;
	cursor: pointer;
}
.checkbox {
	width:  1em;
	height: 1em;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	appearance: none;
	margin-right: .5em;
	border: 1px solid #a0a0a0;
	border-radius: 2px;
	cursor: pointer;
}
.checkbox:checked::after {
	content: "";
	width:  .65em;
	height: .35em;
	position: absolute;
	margin-top: -.1em;
	border-bottom: 2px solid #00a0e6;
	border-left:   2px solid #00a0e6;
	transform: rotate(-45deg);
}
/* --- 同意 チェックボックス --- */
#agree_check .checkboxItem {
	font-size: 12px;
	font-weight: 500;
	color: #606060;
	margin-left:  0;
	margin-right: auto;
}
#agree_check .checkboxItem a {
	font-size: 1em;
	font-weight: 500;
	line-height: 1;
	text-decoration: underline;
	color: #00a0e6;
}



/* 記述追加 ================================================== */
form#mail_form dl {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: flex-start;
}
form#mail_form dl + dl,
form#mail_form ul + dl {
	margin-top: 15px;
}
/* 項目名 */
form#mail_form dt {
	display: inline-flex;
	align-items: flex-start;
	margin-top: .75em;
}
form#mail_form .textarea_wrap dt {
	margin-top:    auto;
	margin-bottom: auto;
	padding-bottom: 2em;
}
/* 電話番号の注釈処理 */
form .note_flex {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-start;
	padding-left: 110px;
}
form .note_flex li {
	font-size: 10px;
	line-height: 1.3;
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: flex-start;
	margin-bottom: .5em;
}
form .note_flex li:first-of-type {
	margin-right: 1em;
}

/* ----- メールの受信設定について ----- */
.about_mail_receive {
	width: 100%;
	padding-left: 15px;
	border-left: 3px solid #f15000;
}
.about_mail_receive h3 {
	font-size: 14px;
	line-height: 1.3;
	margin-bottom: .5em;
	color: #f15000;
}
#sec_form .about_mail_receive p {
	font-size: 10px;
}




@media screen and (max-width:768px) {
	/* -- form項目 ----------------------------------------- */
	form#mail_form dl {
		flex-wrap: wrap;
		flex-direction: column;
		padding-left: 0;
	}
	form#mail_form dt,
	form#mail_form dd {
		padding-top:    0;
		padding-bottom: 0;
	}
	form#mail_form dt {
		width: 100%;
		min-width: inherit;
		text-align: center;
		margin-top: 0;
		margin-bottom: .5em;
	}
	form#mail_form dd {
		width: 100%;
		padding-bottom: 0;
	}
	/* 入力項目 */
	form#mail_form input[type="text"],
	form#mail_form input[type="email"],
	form#mail_form input[type="tel"] {
		font-size: 12px;
		padding: .75em;
	}
	/* 郵便番号 */
	form#mail_form input[name="postal"] {
		width: 120px;
	}
	/* テキストエリア */
	form#mail_form .textarea_wrap dt {
		margin-bottom: .5em;
		padding-bottom: 0;
	}
	form#mail_form .pad_add_sp {
		padding-bottom: 10px;
	}
	/* --- radiobtn --- */
	form#mail_form .radio_wrap {
		justify-content: center;
		padding-top: 0;
	}
	/* --- checkbox --- */
	form#mail_form .checkbox_wrap {
		width: fit-content;
		margin-left:  auto;
		margin-right: auto;
		padding-top: 10px;
	}
	/* --- 注釈 --- */
	form .note_flex{
		padding-left: 0;
	}
	form .note_flex li {
		margin-bottom: .25em;
	}

	/* --- 同意 --- */
	.doui_explain {
		margin-top: 20px;
		margin-bottom: 1.25em;
	}

	/* --- 送信ボタン --- */
	form#mail_form p#form_submit {
		padding-bottom: 10px;
	}
	form#mail_form p#form_submit input {
		max-width: 250px;
	}

	/* -- error message -------------------------------------------------------------------------------- */
	form#mail_form dd span.error_blank,
	form#mail_form dd span.error_format,
	form#mail_form dd span.error_match {
		font-size: 10px;
	}


	/* -- 見出し ---------------------------------------------- */
	.head_box {
		font-size: 16px;
	}

	/* ----- メールの受信設定について ----- */
	.about_mail_receive {
		padding-left: 10px;
	}
}