.contact-wrap{
	max-width:1100px;
	margin:0 auto;
	padding:0 0 60px;
}

/* step */
.contact-steps{
	display:flex;
	gap:12px;
	justify-content:center;
	margin:22px 0 28px;
}
.contact-step{
	width:260px;
	padding:14px 10px;
	background:#e9eef2;
	color:#333;
	font-weight:800;
	text-align:center;
	border-radius:6px;
	position:relative;
	line-height:1.2;
}
.contact-step.is-active{
	background:#2590e2;
	color:#fff;
}
.contact-step:not(:last-child)::after{
	content:"";
	position:absolute;
	right:-12px;
	top:50%;
	transform:translateY(-50%);
	border-left:12px solid #e9eef2;
	border-top:22px solid transparent;
	border-bottom:22px solid transparent;
}
.contact-step.is-active:not(:last-child)::after{
	border-left-color:#2590e2;
}

/* panes */
.contact-pane{display:none;}
.contact-pane.is-show{display:block;}

/* form grid */
.contact-grid{
	max-width:780px;
	margin:0 auto;
	border-top:1px solid #e5e7eb;
}
.contact-row{
	display:flex;
	gap:18px;
	padding:14px 0;
	border-bottom:1px solid #e5e7eb;
	align-items:center;
}
.contact-row.is-top{align-items:flex-start;}

.contact-label{
	width:220px;
	font-weight:800;
	color:#333;
	padding-top:4px;
	white-space:nowrap;
}
.req{
	color:#e11d48;
	font-weight:900;
	margin-left:6px;
	font-size:12px;
}

.contact-field{flex:1;min-width:0;}
.contact-input,
.contact-textarea{
	width:100%;
	border:1px solid #d1d5db;
	border-radius:4px;
	padding:12px 12px;
	font-size:14px;
	background:#fff;
	outline:none;
	box-sizing:border-box;
}
.contact-input + .contact-input{margin-top:10px;}
.contact-input:focus,
.contact-textarea:focus{
	border-color:#2590e2;
}

/* zip */
.contact-zip{
	display:flex;
	align-items:center;
	gap:10px;
}
.contact-zip__mark{
	font-weight:900;
	color:#666;
}
.contact-input--zip{
	max-width:260px;
}

/* policy */
.contact-policy{
	max-width:780px;
	margin:18px auto 0;
}

/* 行全体クリック可 */
.policy-check{
	display:flex;
	align-items:center;
	gap:14px;
	font-size:14px;
	color:#333;
	margin-top:12px;
	padding:10px 14px;
	border-radius:8px;
	cursor:pointer;
	transition:.2s;
}

.policy-check:hover{
	background:#f1f5f9;
}

/* チェックを大きく */
.policy-check input[type="checkbox"]{
	width:20px;
	height:20px;
	min-width:20px;
	cursor:pointer;
}

/* テキスト側 */
.policy-check span{
	line-height:1.6;
}

/* リンク */
.policy-check a{
	color:#2590e2;
	font-weight:800;
	text-decoration:none;
}

.policy-check a:hover{
	opacity:.85;
}

/* actions */
.contact-actions{
	max-width:780px;
	margin:22px auto 0;
	display:flex;
	justify-content:center;
	gap:14px;
}
.contact-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:220px;
	height:44px;
	padding:0 18px;
	border:none;
	border-radius:4px;
	background:#2590e2;
	color:#fff;
	font-weight:900;
	font-size:14px;
	text-decoration:none;
	cursor:pointer;
}
.contact-btn:hover{opacity:.9;}
.contact-btn.is-gray{background:#6b7280;}
.contact-btn:disabled{opacity:.6;cursor:not-allowed;}
.contact-btn.is-loading::after{
	content:"";
	width:16px;height:16px;
	border:2px solid rgba(255,255,255,.5);
	border-top-color:#fff;
	border-radius:50%;
	margin-left:10px;
	animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* confirm */
.confirm-box{
	max-width:780px;
	margin:0 auto;
	border-top:1px solid #e5e7eb;
}
.confirm-row{
	display:flex;
	gap:18px;
	padding:14px 0;
	border-bottom:1px solid #e5e7eb;
	align-items:flex-start;
}
.confirm-label{
	width:220px;
	font-weight:900;
	color:#333;
	white-space:nowrap;
	padding-top:2px;
}
.confirm-value{
	flex:1;
	white-space:pre-wrap;
	line-height:1.9;
	color:#111;
}

/* done */
.contact-done{
	max-width:780px;
	margin:0 auto;
	padding:40px 0 10px;
	text-align:center;
}
.contact-done__title{
	margin:0;
	font-size:22px;
	font-weight:900;
}
.contact-done__text{
	margin:10px 0 0;
	color:#555;
}
.contact-done__actions{
	margin-top:22px;
	display:flex;
	justify-content:center;
}






/* policy */
.contact-policy{
	max-width:780px;
	margin:18px auto 0;
}

/* ここ差し替え */
.privacy-box{
	width:70%;
	margin:14px auto 12px; /* contact-policy内で管理する */
	border:1px solid #d1d5db;
	border-radius:12px;
	background:#fafafa;
}

.privacy-box__inner{
	padding:18px 22px;
	font-size:14px;
	line-height:1.9;
	color:#444;
	max-height:200px;
	overflow-y:auto;
}

.privacy-box__inner p{margin:0 0 12px;}

.privacy-box__title{
	margin:0 0 12px;
	font-size:15px;
	font-weight:900;
	color:#111;
	letter-spacing:0.02em;
}

.privacy-box__sub{
	margin:14px 0 6px;
	font-weight:800;
	color:#111;
}

.privacy-box__list{
	margin:6px 0 10px 18px;
	padding:0;
}

.privacy-box__list li{margin:0 0 4px;}




/* responsive */
@media screen and (max-width:800px){
	.contact-step{width:auto;flex:1;min-width:0;font-size:12px;}
	.contact-step:not(:last-child)::after{display:none;}

	.contact-row,
	.confirm-row{
		flex-direction:column;
		gap:10px;
		align-items:stretch;
	}
	.contact-label,
	.confirm-label{
		width:auto;
		white-space:normal;
	}
	.contact-actions{
		flex-direction:column;
	}
	.contact-btn{
		width:100%;
		min-width:auto;
	}
}