@charset "UTF-8";
/* CSS Document */
.lower .main_img{
	background: url("../img/contact/main_vi.png");
	background-size: cover;
	background-position: center;
	min-height: 408px;
}
.form .flow{
	max-width: 430px;
	margin: 0 auto 78px;
}
.form .flow img{
	width: 100%;
}
.form p.note{
	font-weight: 700;
	line-height: 28px;
	margin-bottom: 56px;
}
.form form{
	margin-bottom: 80px;
}
.form form .f_area{
	margin-bottom: 32px;
}
.form form .f_area p.error{
	font-size: 1.2rem;
	line-height: 1;
	color: #DC0000;
}
.policy_check p.error {
	display: block;
	width: 100%;
	font-size: 1.2rem;
	line-height: 1;
	color: #DC0000;
	text-align: center;
}
.form form .f_cnt{
	display: flex;
	align-items: center;
	gap:35px;
}
.form form .f_cnt .item{
	display: flex;
	align-items: center;
	gap:10px;
}
.form form .f_cnt .item p:first-child{
	min-width: 128px;
}
.form form .f_cnt .item p{
	line-height: normal;
}
.form form .f_cnt .item p:last-child{
	border: solid 1px #747474;
	font-size: 1.2rem;
	line-height: normal;
	padding: 0;
	border-radius: 50px;
	min-width: 40px;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #747474;
	color: #fff;
}
.form form .f_cnt .item p.required{
	background: none;
	color: #DC0000;
	border: solid 1px #DC0000;
}
.form form .f_cnt .input{
	display: flex;
	flex-wrap: wrap;
	gap:16px;
	width: 100%;
}
.form form .f_cnt .input.address{
	width: 30%;
}
.form form .f_cnt .input label{
	width: calc(100%/2 - 8px);
}
.form form .f_cnt .input label input{
	width: calc(100% - 32px);
	padding: 13px 16px;
	border:solid 1px #BCBCBC;
	border-radius: 4px;
}
.form form .f_cnt .input select{
	-webkit-appearance: menulist-button;  /* Safari, Chrome */
    -moz-appearance: menulist;            /* Firefox */
    appearance: menulist-button;          /* 標準 */
    width: 35.3%;
    padding: 0px 16px;
    border: solid 1px #BCBCBC;
    border-radius: 4px;
    background-color: #fff;               /* 背景を明示 */
	font-size: 1.6rem;
	line-height: 2;
	background: #fff;
	color: #333;
	height: 40px;
}
.form form .f_cnt .input.col1{
	display: block;
}
.form form .f_cnt .input.col1 input{
	width: calc(100% - 32px);
}
.form form .f_cnt .input.check{
	display: flex;
  	flex-wrap: wrap; /* ラベルごとに折り返し */
  	gap: 16px;
  	width: 100%;
}
.form form .f_cnt .input.check label{
	width: auto;
	display: flex;
	align-items: center;
	font-size: 1.6rem;
	white-space: nowrap; /* ラベル内のテキスト改行を防止 */
}
.form form .f_cnt .input.check label input{
	width: auto;
	padding: 0;
}
/* チェックボックスの初期スタイルをリセット */
.form form .f_cnt .input.check label input[type="checkbox"] {
	appearance: none; /* デフォルトのチェックボックス非表示 */
	-webkit-appearance: none;
	-moz-appearance: none;
	width:24px;
	height: 22px;
	border: 2px solid #ccc; /* 外枠 */
	border-radius: 4px; /* 角丸（お好みで） */
	background-color: #fff; /* 背景白 */
	cursor: pointer;
	position: relative;
	vertical-align: middle;
	transition: background-color 0.2s, border-color 0.2s;
}
/* チェック時の背景色と枠色 */
.form form .f_cnt .input.check label input[type="checkbox"]:checked {
  	background-color: #49B6D6;
  	border-color: #49B6D6;
}
/* チェックマークの描画 */
.form form .f_cnt .input.check label input[type="checkbox"]::after {
  	content: '';
 	position: absolute;
  	left: 6px;
  	top: 0px;
  	width: 6px;
  	height: 12px;
  	border: solid #BCBCBC;
  	border-width: 0 2px 2px 0;
  	transform: rotate(45deg);
}
.form form .f_cnt .input.check label input[type="checkbox"]:checked::after {
  	content: '';
  	border: solid #fff;
  	border-width: 0 2px 2px 0;
}
/* ラベルと間隔を調整 */
.form form .f_cnt .input.check label {
  	display: flex;
  	align-items: center;
  	gap: 8px; /* チェックボックスとテキストの間隔 */
  	margin-bottom: 8px;
  	cursor: pointer;
}
.form form .f_cnt.inq_txt{
	align-items: flex-start;
}
.form form .f_cnt .input.col1 textarea{
	width: calc(100% - 32px);
	height: 198px;
	padding: 13px 16px;
}
.form form .privacy_policy .policy_area{
	padding: 16px;
	font-size: 1.4rem;
	line-height: 22px;
	max-height: 247px;
	border:solid 1px #BCBCBC;
	overflow-y: auto;
	margin-bottom: 16px;
}
.form form .privacy_policy .policy_area p:first-child{
	font-size: 1.6rem;
	font-weight: 700;
	margin-bottom: 16px;
}
.form form .privacy_policy .policy_area p.mb10{
	margin-bottom: 10px;
}
.form form .privacy_policy p.policy_note{
	font-size: 1.4rem;
	margin-bottom: 56px;
}
.form form .privacy_policy .policy_check{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 56px;
}
.form form .privacy_policy .policy_check label input[type="checkbox"] {
	appearance: none; /* デフォルトのチェックボックス非表示 */
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 24px;
	height: 24px;
	border: 2px solid #ccc; /* 外枠 */
	border-radius: 4px; /* 角丸（お好みで） */
	background-color: #fff; /* 背景白 */
	cursor: pointer;
	position: relative;
	vertical-align: middle;
	transition: background-color 0.2s, border-color 0.2s;
	margin: 0;
}
/* チェック時の背景色と枠色 */
.form form .privacy_policy .policy_check label input[type="checkbox"]:checked {
  	background-color: #49B6D6;
  	border-color: #49B6D6;
}
/* チェックマークの描画 */
.form form .privacy_policy .policy_check label input[type="checkbox"]::after {
  	content: '';
 	position: absolute;
  	left: 6px;
  	top: 2px;
  	width: 6px;
  	height: 12px;
  	border: solid #BCBCBC;
  	border-width: 0 2px 2px 0;
  	transform: rotate(45deg);
}
.form form .privacy_policy .policy_check label input[type="checkbox"]:checked::after {
  	content: '';
  	border: solid #fff;
  	border-width: 0 2px 2px 0;
}
/* ラベルと間隔を調整 */
.form form .privacy_policy .policy_check label {
  	display: flex;
  	align-items: center;
  	gap: 8px; /* チェックボックスとテキストの間隔 */
  	margin-bottom: 8px;
  	cursor: pointer;
}
.form form .privacy_policy .policy_check label{
	font-size: 1.6rem;
	font-weight: 700;
}
.form form .submit_btn {
	text-align: center;
}
.form form .submit_btn button {
	border: none;
	padding: 19px;
	text-align: center;
	background: #BCBCBC;
	max-width: 361px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	font-size: 1.8rem;
	line-height: 32px;
	font-weight: 700;
	letter-spacing: 0.72px;
	color: #fff;
}
/* .form form .submit_btn button:hover {
	background: #49B6D6;
	cursor: pointer;
} */
.form form .submit_btn.active button {
	background: #49B6D6;
	cursor: pointer;
}
.form form .submit_btn button::after{
	content: "";
	width: 12px;
	height: 12px;
	background: url("../img/common/arrow8.svg");
	background-size: 100%;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(-20px,-50%);
}
/* .form form .submit_btn p{
	font-size: 1.8rem;
	line-height: 32px;
	font-weight: 700;
	letter-spacing: 0.72px;
	color: #fff;
} */
.main_inq_bnr,.main_inq_bnr.fixed{
	display: none!important;
}


form.confirmation .f_cnt .input label,form.confirmation .f_cnt .input select,form.confirmation .f_cnt .input.check{
	display: none;
}
form.confirmation .back_btn {
	text-align: center;
}
form.confirmation .back_btn button{
	border: none;
	cursor: pointer;
	max-width: 182px;
	width: 100%;
	padding: 10px;
	text-align: center;
	background: #747474;
	margin: 32px auto 0px;
	position: relative;
	color: #fff;
	font-size: 1.6rem;
	line-height: 32px;
	letter-spacing: 0.64px;
	font-weight: 400;
}
form.confirmation .back_btn button::before{
	content: "";
	width: 12px;
	height: 12px;
	background: url("../img/common/arrow8.svg");
	background-size: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(20px,-50%)rotate(180deg);
}


.thanks{
	text-align: center;
	margin-bottom: 80px;
}
.thanks > p{
	margin-bottom: 56px;
}
.thanks .top_back{
	max-width: 268px;
	margin: 0 auto;
	text-align: left;
	padding-bottom: 10px;
	position: relative;
	display: block;
}
.thanks .top_back::before{
	content: "";
    width: 100%;
    height: 1px;
    background: #BCBCBC;
    position: absolute;
    bottom: 0;
    left: 0;
}
.thanks .top_back::after{
	content: "";
    width: 100%;
    height: 2px;
    background: #49B6D6;
    position: absolute;
    bottom: 0;
    left: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}
.thanks .top_back:hover::after {
    transform: scaleX(1);
}
.thanks .top_back p::after{
	content: "";
	width: 24px;
	height: 24px;
	background: url("../img/common/arrow.svg");
	background-size: 100%;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0px,-50%);
	transition: 0.3s;
}
.thanks .top_back:hover p::after{
	content: "";
	width: 24px;
	height: 24px;
	background: url("../img/common/arrow6.svg");
	background-size: 100%;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0px,-50%);
}

@media screen and (max-width: 1024px) {
	.thanks .top_back::before{
		background: #49B6D6;
	}
	.thanks .top_back p::after{
		background: url(../img/common/arrow6.svg);
    	background-size: 100%;
	}
}
@media screen and (max-width: 820px) {
	.sub_bnr{
		display: none !important;
	}
	.topup{
		bottom: 0 !important;
	}
}
/*sp*/
@media screen and (max-width: 767px) {
	.lower .main_img {
		background: url(../img/contact/main_vi_sp.png);
		background-size: cover;
		background-position: center;
		min-height: 228px;
	}
	.form .flow{
		max-width: 310px;
	}
	.form p.note{
	}
	.form form .f_cnt{
		display: block;
	}
	.form form .f_cnt .item{
		margin-bottom: 8px;
	}
	.form form .f_cnt .item p:first-child {
		min-width: 128px;
	}
	.form form .f_area p.error{
		margin-top: 10px;
	}
	.form form .f_cnt .input.address{
		width: 100%;
	}
	.form form .f_cnt .input select{
		width: 100%;
	}
	.form form .f_cnt .input.check label{
		margin-bottom: 0px;
	}
	
}