/* form_PC ここから */
/* ページ全体 */
header {
	/* border-top: 3px solid var(--main-color); */
	text-align: left;
	/* padding: 10px 20px; */
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
	background-color: var(--white-color-primary);

	& #header_top-wrapper {
		background-color: var(--blue-color-primary);
        display: flex;
        justify-content: flex-end;
        align-items: center;
        padding-block: 10px;
		padding-inline: 12px;
        min-height: 36px;

		& #header_top-inner {
			height: 16px;
			flex: 1;
			max-width: 1000px;
			margin-inline: auto;
			display: flex;
			justify-content: flex-end;

			& img {
				height: 16px;
			}
		}

	}

	& #header_main-wrapper {
		display: flex;
        align-items: center;
        padding-block: 15px;
		padding-inline: 20px;

		& #header_main-inner {
			height: 34px;
			flex: 1;
			max-width: 1000px;
			margin-inline: auto;
			@media screen and (max-width:639px) {
				height: 26.56px;
			}

			& img {
				height: 100%;
			}
		}
	}
}

input::placeholder {
	color: #ccc;
}

input::-webkit-input-placeholder {
	color: #ccc;
}

input:-ms-input-placeholder {
	color: #ccc;
}

/* 確認ページ用の追記 */
.attention_box {
	display: block;
	width: 100%;
	max-width: 1000px;
	background: var(--white-color-primary);
	border: 2px solid #333333;
	box-sizing: border-box;
	color: #333333;
	font-size: 100%;
	font-weight: bold;
	text-align: left;
	padding: 15px 15px 15px 15px;
	margin: 20px auto 0 auto;
}

/* 同意系ボックス */
.privacy_wrapper {
	width: 100%;
    max-width: 700px;
    border: none;
    padding: 10px;
    font-size: 14px;
    font-weight: normal;
    margin: 0px auto 10px auto;
    padding: 10px;
    text-align: left;

	& ul,
	li {
		list-style: "・";
		/* list-style-position: ; */
	}
}

#SMP_STYLE .doui_sel-wrapper {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	& .doui_sel {
		display: flex;
		justify-content: center;
		align-items: center;
		width: fit-content;
		border-radius: 4px;
		padding: 10px 10px !important;

		& li {
			width: 100%;
		}
	}
}


@media screen and (max-width:639px) {
	.doui_sel {
		width: 100%;
		border-radius: 0px;
		padding: 0px !important;
	}
}

/* 見出し ※色変え対象 */
#SMP_STYLE h1 {
	background: var(--main-color);
	color: var(--white-color-primary);
	font-size: 20px;
	font-weight: bold;
	letter-spacing: 1px;
	line-height: 140%;
	text-align: center;
	margin: 0;
	padding: 20px 10px 20px 10px;
}

#SMP_STYLE h2 {
	position: relative;
	width: 100%;
	border-bottom: 2px solid var(--green-color-tertiary);
	color: var(--main-color);
	font-size: 24px;
	font-weight: bold;
	text-align: left;
	margin: 30px auto 20px auto;
	padding: 0px 5px 10px 5px;

	&::after {
		position: absolute;
		bottom: -2px;
		left: 0;
		z-index: 2;
		content: '';
		width: 20%;
		height: 2px;
		background-color: var(--main-color);
	}

	&.center {
		color: var(--base-color);
		border: none;
		text-align: center;

		&::after {
			content: none;
		}
	}
}

#SMP_STYLE h3 {
	width: 100%;
	border-left: 6px solid var(--main-color);
	color: var(--main-color);
	font-size: 20px;
	font-weight: bold;
	text-align: left;
	margin: 20px auto 10px auto;
	padding: 7px 5px 7px 10px;
}

/* 外枠 */
#SMP_STYLE .body_tbl {
	width: 100%;
	margin: 0 auto;
	text-align: center;
}

/* 見出し画像 ※変更なし */
#SMP_STYLE .header_img_smartphone {
	display: none;
}

#SMP_STYLE .header_img_tablet {
	display: none;
}

#SMP_STYLE .header_img_pc {
	display: block;
}

/* 見出しの補足説明 */
#SMP_STYLE .header_text {
	width: 90%;
	max-width: 1000px;
	color: #333333;
	font-weight: bold;
	text-align: left;
	margin: 20px auto 0 auto;
	padding: 0;
}

/* 入力時の説明 */
#SMP_STYLE .header_rmesg {
	width: 90%;
	max-width: 1000px;
	color: #333333;
	font-weight: bold;
	text-align: left;
	margin: 20px auto 0 auto;
	padding: 0;
}

/* 入力エラー時の説明 */
#SMP_STYLE .header_emesg {
	width: 90%;
	max-width: 1000px;
	background: var(--white-color-primary);
	border: 2px solid var(--invalid-color);
	color: var(--invalid-color);
	font-weight: bold;
	text-align: left;
	margin: 20px auto 0 auto;
	padding: 10px 20px 10px 20px;
}

/* 入力項目 */
#SMP_STYLE .smp_tmpl {
	width: 95%;
	max-width: 1000px;
	text-align: left;
	margin: 15px auto 0px auto;
	padding: 20px 5px 30px 5px;
}

/* フォーム行 */
#SMP_STYLE dl {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 5px 0 5px 0;

	&.vertical {
		display: flex;
		flex-direction: column;

		& dt.title,
		dd.data {
			width: 100%;
		}

		& dd.data {
			padding: 18px 15px 18px 10px;
		}
	}

	&:not(:last-of-type) {
		border-bottom: 1px dotted #ccc;
	}

	&.last {
		border-bottom: 0;
	}
}

/* 項目名 */
#SMP_STYLE dt.title {
	display: inline-block;
	width: 33%;
	color: #333;
	font-weight: bold;
	letter-spacing: 1px;
	line-height: 140%;
	text-align: left;
	margin: 0;
	padding: 18px 15px 18px 10px;
	vertical-align: top;
}

/* 情報記入催促表示 */
#SMP_STYLE .info-notice {
    background-color: var(--green-color-tertiary);
    border: 2px solid var(--main-color);
    border-radius: 8px;
    padding: 16px 20px;
    margin: 20px auto 20px auto;
    font-size: 14px;
    line-height: 140%;
    color: #333;
    font-weight: bold;
}

/* 注意事項 */
#SMP_STYLE dt.title .caution {
	display: block;
	width: 95%;
	color: #333;
	font-size: 87.5%;
	font-weight: normal;
	line-height: 130%;
	text-align: left;
	padding: 10px 0 0 0;
}

/* 項目入力部 */
#SMP_STYLE dd.data {
	display: inline-block;
	width: 66%;
	color: #333;
	font-weight: bold;
	text-align: left;
	margin: 0;
	padding: 18px 0;
}

/* サブタイトル */
#SMP_STYLE dd.data .sub_title {
	display: block;
	margin-bottom: 8px;
}

/* メッセージ */
#SMP_STYLE div.note {
	background-color: var(--green-color-tertiary);
	padding: 32px;
	margin-block: 20px 0;
	font-weight: bold;
}

/* 横並び入力欄 */
#SMP_STYLE {
	& dd.data {
		& .input_outer-wrapper {
			display: flex;

			&.vertical {
				flex-direction: column;
			}

			& .input_inner-wrapper {
				flex: 1;
				display: flex;
				flex-direction: column;

				& .sub_data-wrapper {
					display: flex;

					&.horizontal {
						align-items: center;

						@media screen and (max-width:639px) {
							align-items: flex-start;
							margin-bottom: 5px;
						}
					}

					@media screen and (max-width:639px) {
						flex-direction: column;
					}

					&.vertical {
						flex-direction: column;
					}

					& .input_title-wrapper {
						margin-bottom: 5px;
					}

					& .input_title-wrapper {
						flex: 0.5;
					}

					& .input_wrapper {
						flex: 2;
						width: 100%;
					}
				}
			}
		}
	}
}

/* inputタグ */
input[type="text"],
input[type="password"],
input[type="email"] {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: none;
	border: none;
	border-radius: 0px;
	padding: 0px;
	/* reset end */
}

#SMP_STYLE .input {
	width: 90%;
	border: 1px solid #cccccc;
	border-radius: 3px 3px 3px 3px;
	box-sizing: border-box;
	color: #333;
	/* font-size: 108%; */
	font-size: 1rem;
	text-align: left;
	margin: 0px 5px 10px 5px;
	padding: 10px;
}

/* 入力欄を２つ並べる場合 */
.input_line ul li {
	box-sizing: border-box;
	width: 45%;
	display: inline-block;
	box-sizing: border-box;
	vertical-align: top;
}

.input_line ul li input {
	width: calc(90% - 35px) !important;
}

#SMP_STYLE .input_name {
	width: 48%;
}

/* フィールドごとのデザイン */
#SMP_STYLE .zipcode li.code01 input {
	width: 60px;
}

#SMP_STYLE .zipcode li.code02 input {
	width: 70px;
}

#SMP_STYLE .phone li.num01 input {
	width: 70px;
}

#SMP_STYLE .phone li.num02 input {
	width: 70px;
}

#SMP_STYLE .phone li.num03 input {
	width: 70px;
}

#SMP_STYLE .price input {
	width: 200px;
}

#SMP_STYLE .num input {
	width: 120px;
}

#SMP_STYLE .integer input {
	width: 170px;
}

#SMP_STYLE .real input {
	width: 170px;
}

#SMP_STYLE .pass input {
	width: 180px;
}

#SMP_STYLE .epass input {
	width: 160px;
}

#SMP_STYLE .time input {
	width: 50px;
}

#SMP_STYLE .time .year {
	width: 70px;
}

#SMP_STYLE ul,
#SMP_STYLE li {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

#SMP_STYLE .zipcode ul li,
#SMP_STYLE .phone ul li,
#SMP_STYLE .time ul li {
	float: left;
	width: auto;
	margin: 0 3px 0 0;
	padding: 0;
}

#SMP_STYLE .multi1 ul,
#SMP_STYLE .multi2 ul {
	margin-bottom: 10px;
}

#SMP_STYLE label {
	cursor: pointer;

	&:has(:disabled) {
		cursor: default;
	}
}

#SMP_STYLE {
	& label:has(.input[type="radio"]:not(:disabled), .input[type="checkbox"]:not(:disabled)),
	input[type="text"]:not(:disabled),
	input[type="tel"]:not(:disabled),
	input[type="password"]:not(:disabled) {
		transition: background-color 0.3s ease;
		&:hover {
			background-color: #e0f0ff;
		}
	}
}

#SMP_STYLE .multi1 label {
	display: block;
	float: left;
	min-width: 135px;
	text-align: left;
	margin: 0 10px 10px 0;
	padding: 10px;

	background-color: var(--gray-color-primary);
	&:has(:checked) {
				background-color: var(--green-color-tertiary);
			}

			&:has(:disabled) {
				background-color: var(--gray-color-secondary);
			}
}

#SMP_STYLE {
	& .multi2 {
		& li {
			display: inline-block;
			width: 90%;
			float: left;
			min-width: 135px;
			text-align: left;
			margin: 0;
			padding: 0 5px 2px 10px;
			clear: both;
		}
		& label {
			display: block;
			width: 100%;
			min-width: 250px;
			border-radius: 4px 4px 4px 4px;
			box-sizing: border-box;
			text-align: left;
			margin: 0 10px 10px 0;
			padding: 10px;
			background-color: var(--gray-color-primary);

			& input {
				display: block;
				float: left;
				width: 1em;
				height: 1em;
				box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
				border-radius: 0 0 0 0;
				margin: 0.2em 0 0 0;
				padding: 0;
				overflow: hidden;
			}
			& span {
				display: block;
				font-weight: bold;
				margin: 0 0 0 30px;
			}
			&:has(:checked) {
				background-color: var(--green-color-tertiary);
			}
			&:has(:disabled) {
				background-color: var(--gray-color-secondary);
			}
		}
		& .radio input {
			border-radius: 1em;
		}
	}
	& .multi1 {
		& label {
			& input {
				display: block;
				float: left;
				width: 1em;
				height: 1em;
				box-shadow: 0 0 0 0 rgba(0, 0, 0, 0) inset;
				border-radius: 0 0 0 0;
				margin: 0.2em 0 0 0;
				padding: 0;
				overflow: hidden;
			}
			& span {
				display: block;
				font-weight: bold;
				margin: 0 0 0 30px;
			}
			& .radio input {
				border-radius: 1em;
			}
		}
		& .row {
			@media screen and (min-width:640px){
				display: flex;
				gap: 5px;
				width: 100%;
				box-sizing: border-box;
				padding: 10px;
				overflow: hidden;
				& label {
					box-sizing: border-box;
					width: 100%;
					min-width: 0;
					margin: 0;
				}
				& li {
					flex: 1;
					min-width: 0;
					box-sizing: border-box;
				}
				& input[type="radio"] {
					display: none;
				}
				& span {
					margin: 0;
					text-align: center;
				}
			}
		}
	}
}

#SMP_STYLE .multi1 ul.radio+br,
#SMP_STYLE .multi2 ul.radio+br {
	display: none;
}

#SMP_STYLE select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: none;
	border: none;
	border-radius: 0px;
	padding: 0px;
	/* reset end */
	width: 90%;
	max-width: 500px;
	height: 46px;
	font-size: 1rem;
	margin-left: 5px;
	margin-bottom: 8px;
	padding-left: 10px;
	background-color: var(--white-color-primary);
	border: 1px solid #cccccc;
	border-radius: 3px;
	color: var(--base-color);
	font-size: 1rem;
}

#SMP_STYLE textarea {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: none;
	border: none;
	border-radius: 0px;
	padding: 0px;
	/* reset end */
	width: 90%;
	border: 1px solid #cccccc;
	border-radius: 3px 3px 3px 3px;
	box-sizing: border-box;
	color: #333;
	font-size: 100%;
	text-align: left;
	margin: 0px 5px 10px 5px;
	padding: 10px;
}

#SMP_STYLE .image input {
	width: auto;
	margin-bottom: 10px;
}

#SMP_STYLE .file input {
	width: auto;
	margin-bottom: 10px;
}

#SMP_STYLE input.clear {
	width: 55px;
	text-align: center;
}

/* 送信ボタン */
#SMP_STYLE input.submit {
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-box-sizing: border-box;
	-webkit-appearance: button;
	appearance: none;
	/* reset end */
	width: 90%;
	max-width: 300px;
	min-height: 60px;
	border: hidden;
	background: var(--main-color);
	border-radius: 3px;
	color: var(--white-color-primary);
	font-size: 1.125rem;
	-webkit-font-smoothing: antialiased;
	/* font-weight: bold; */
	text-align: center;
	letter-spacing: 1px;
	margin: 0px 5px 30px 5px;
	cursor: pointer;

	&:disabled {
		background-color: var(--gray-color-tertiary);
		color: var(--gray-color-secondary);
		cursor: not-allowed;

		&:hover {
			/* pointer-events: none; */
			opacity: 1;
		}
	}
}

/* 送信ボタン下部の注釈 */
#SMP_STYLE .submit_caution-wrapper {
    margin-bottom: 40px;
    width: fit-content;
    margin-inline: auto;
    text-align: left;
	padding-inline: 10px;
}

#SMP_STYLE input.submit:hover {
	filter: alpha(opacity=90);
	-ms-filter: alpha(opacity=90);
	opacity: .7;
}

/* 住所検索ボタン */
#SMP_STYLE .searchZipcode {
	border: none;
    cursor: pointer;
    outline: none;
    -webkit-box-sizing: border-box;
    -webkit-appearance: button;
    appearance: none;
    width: 100px;
    min-height: 47px;
    border: hidden;
    background: var(--main-color);
    border-radius: 3px;
    color: var(--white-color-primary);
    font-size: 1rem;
    -webkit-font-smoothing: antialiased;
    text-align: center;
    letter-spacing: 1px;
    margin-left: 10px;
    cursor: pointer;

	&:hover {
		filter: alpha(opacity=90);
		-ms-filter: alpha(opacity=90);
		opacity: .7;
	}
}

#SMP_STYLE input.image {
	width: auto;
	border: none;
	margin: 40px 0 40px 0;
	padding: 0;
	vertical-align: middle;
}

/* 確認ページの戻るボタン */
#SMP_STYLE input[name="SMPFORM_BACK"] {
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-box-sizing: border-box;
	-webkit-appearance: button;
	appearance: none;
	/* reset end */
	width: 98%;
	max-width: 300px;
	min-height: 60px;
	border: hidden;
	background: var(--gray-color-quaternary);
	border-radius: 4px;
	color: var(--white-color-primary);
	font-size: 1.125rem;
	/* font-weight: bold; */
	text-align: center;
	letter-spacing: 1px;
	margin: 0px 5px 30px 5px;
	cursor: pointer;
}

#SMP_STYLE input[name="SMPFORM_BACK"]:hover {
	filter: alpha(opacity=90);
	-ms-filter: alpha(opacity=90);
	opacity: .7;
}

/* 例文 */
#SMP_STYLE .sample {
	display: inline-block;
	color: #666;
	font-size: 87.5%;
	font-weight: normal;
	text-align: left;
	line-height: 140%;
	margin-bottom: 5px;
}

/* 接頭語・接尾後 */
#SMP_STYLE .suffix {
	height: 40px;
	color: #333333;
	font-weight: bold;
	text-align: left;
	line-height: 40px;
}

/* 入力必須文字 */
#SMP_STYLE .need {
	display: inline-block;
	font-weight: normal;
	background: var(--invalid-color);
	color: var(--white-color-primary);
	font-size: 12px;
	padding: 0 5px;
	margin-left: 6px;
	vertical-align: top;
	border-radius: 3px;
}

/* エラーメッセージ(入力チェック時) */
#SMP_STYLE .msg {
	display: block;
	color: var(--invalid-color);
	font-size: 14px;
	font-weight: bold;
	line-height: 140%;
	text-align: left;
	margin: 0px 0px 5px 0px;
}

/* エラーメッセージ　(サンキュー・締め切り・システムエラー) */
#SMP_STYLE .sub_text {
	width: 75%;
	max-width: 1000px;
	color: #333333;
	font-weight: 500;
	text-align: left;
	padding: 0px;
	margin: 0px auto 40px auto;

	& .title {
		text-align: center;
		margin-bottom: 40px;
		font-weight: bold;
	}
	& ul {
		margin-left: 30px;
		& li {
			list-style: outside;
		}
	}
}

#SMP_STYLE .guidance {
	background-color: var(--gray-color-primary);
	padding: 10px 15px;
	margin-block: 20px;
}

/* 入力エラー時のボックス背景色 */
#SMP_STYLE .error {
	background: #FFE4E4;
}

/* スパイラルシール */
.spiralSeal {
	display: block;
	width: 90%;
	max-width: 1000px;
	overflow: hidden;
	background-color: var(--white-color-primary);
	border: 1px solid #CCCCCC;
	margin: auto;
	margin-top: 30px;
	margin-bottom: 30px;
	border-radius: 3px;
	text-align: left;
}

.spiralSeal_wrapper table {
	display: block;
	width: 90%;
	max-width: 1000px;
	overflow: hidden;
	background-color: var(--white-color-primary);
	border: 1px solid #CCCCCC;
	margin: auto;
	margin-top: 30px;
	margin-bottom: 30px;
	border-radius: 3px;
}

.spiralSeal_wrapper tr td:first-child {
	display: table-cell;
	line-height: 140%;
	text-align: left;
	padding: 10px !important;
	overflow: auto;
}

.spiralSeal_wrapper tr td {
	display: table-cell;
	text-align: center;
	padding: 10px !important;
	overflow: auto;
}

.description {
	width: 100%;
}

/* フッタ */
#SMP_STYLE .footer_text {
	width: 90%;
	max-width: 1000px;
	font-weight: normal;
	text-align: left;
	margin: 0 auto 30px auto;
	font-size: 12px;
}

/* clearfix */
#SMP_STYLE .cf:before,
#SMP_STYLE .cf:after {
	content: "";
	display: table;
}

#SMP_STYLE .cf:after {
	clear: both;
}

#SMP_STYLE .cf {
	*zoom: 1;
}

/* 回り込み解除 */
.cl {
	clear: both;
}

.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.clearfix {
	display: inline-block;
}

/* clearfixのIE-mac対策 */
* html .clearfix {
	height: 1%;
}

.clearfix {
	display: block;
}

/* form_PC ここまで */