@charset "UTF-8";
/*--------------------------------------------------
**************************************************
  フォーム
**************************************************
--------------------------------------------------*/
.form_box .input_item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 45px;
	padding: 24px 0;
	border-bottom: var(--gray-line) 1px solid;
}

.form_box .input_item:nth-of-type(1) {
	padding-top: 0;
}

.form_box .item_name {
	font-size: 1.6rem;
	font-weight: 600;
}

.form_box .must p,
.form_box .optional p {
	position: relative;
}

.form_box .must p::after {
	content: '必須';
	background: var(--orange-main);
}

.form_box .optional p::after {
	content: '任意';
	background: var(--blue-dark);
}

.form_box .must p::after,
.form_box .optional p::after {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	padding: 4px 10px;
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1;
	color: var(--white);
}

.form_box .select_wrap {
	position: relative;
	display: inline-block;
	width: 100%;
}

.form_box .select_wrap::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%) rotate(45deg); /* 下向き矢印 */
	width: 8px;
	height: 8px;
	border-right: var(--black-base) 2px solid;
	border-bottom: var(--black-base) 2px solid;
}

.form_box input[type="text"],
.form_box input[type="email"],
.form_box input[type="tel"],
.form_box select,
.form_box textarea {
	width: 100%;
	padding: 10px;
	background: var(--white);
	border: var(--gray-line) 1px solid;
	border-radius: 8px;
}

.form_box select {
	appearance: none;
	padding-right: 36px;
}

.form_box textarea {
	resize: vertical;
	min-height: 100px;
}

.form_box .single_checkbox_item {
	display: flex;
	justify-content: center;
	margin: 40px auto 0;
}

.form_box .single_checkbox_item label {
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 8px;
}

.form_box .single_checkbox_item label input[type="checkbox"] {
	display: none;
}

.form_box .single_checkbox_item label input[type="checkbox"] + .wpcf7-list-item-label {
	position: relative;
	padding-left: 32px; /* チェックアイコン分の余白 */
}

/* チェックアイコンの枠部分 */
.form_box .single_checkbox_item label input[type="checkbox"] + .wpcf7-list-item-label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	border: var(--gray-line) 1px solid;
	border-radius: 4px;
}

/* チェックマーク */
.form_box .single_checkbox_item label input[type="checkbox"] + .wpcf7-list-item-label::after {
	content: "✔";
	position: absolute;
	left: 6px;
	top: 50%;
	transform: translateY(-50%) scale(0);
	font-size: 14px;
	color: var(--white); /* チェックの色 */
	transition: transform .2s ease;
}

/* チェック時の背景色 + マーク表示 */
.form_box .single_checkbox_item label input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
	background-color: var(--black-base); /* チェック時背景色 */
	border-color: var(--black-base);
}

.form_box .single_checkbox_item label input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	transform: translateY(-50%) scale(1);
}

.form_box .submit_box {
	max-width: 400px;
	width: 100%;
	margin: 40px auto 0;
}

.form_box .submit_box .submit {
	position: relative;
	height: 70px;
}

.form_box .submit_box .submit::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 32px;
	transform: translateY(-50%) rotate(45deg);
	display: block;
	width: 9px;
	height: 9px;
	border-top: var(--white) 2px solid;
	border-right: var(--white) 2px solid;
}

.form_box input[type="submit"] {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 70px;
	background: var(--blue-dark);
	border-radius: 36px;
	text-align: center;
	font-weight: 700;
	color: var(--white);
}


/* SP */
@media screen and (max-width: 767px) {
	.form_box .input_item {
		flex-direction: column;
		justify-content: flex-start;
		align-items: stretch;
		gap: 15px;
	}

	.form_box .must p,
	.form_box .optional p {
		display: inline-block;
	}

	.form_box .must p::after,
	.form_box .optional p::after {
		right: -65px;
	}
	
	.form_box input[type="text"],
	.form_box input[type="email"],
	.form_box input[type="tel"],
	.form_box select,
	.form_box textarea {
		font-size: 16px;
	}
}

