:root{
  --main:#02939f;
  --main-dark:#017a84;
  --sub:#66b329;
  --sub-dark:#5a9d24;
  --text:#333333;
  --gray:#666666;
  --line:#dcdcdc;
  --bg:#f5f7f8;
  --req:#c9302c;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
	font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
	color:var(--text);
	font-size:15px;
	line-height:1.9;
	background:#fff;
	-webkit-font-smoothing:antialiased;
}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 24px;}

/* ページヘッダー */
.page-head{
	background:var(--main);
	color:#fff;
	padding:56px 0 48px;
	text-align:center;
}
.page-head .en{
	font-size:38px;
	font-weight:700;
	letter-spacing:.14em;
	line-height:1.2;
}
.page-head .ja{
	font-size:15px;
	letter-spacing:.1em;
	margin-top:10px;
}

/* リード文 */
.lead{
	padding:56px 0 48px;
	text-align:center;
	font-size:15px;
	line-height:2.1;
}

/* セクション見出し */
.sec-title{
	text-align:center;
	margin-bottom:36px;
}
.sec-title h2{
	font-size:24px;
	font-weight:700;
	letter-spacing:.06em;
}
.sec-title h2::after{
	content:"";
	display:block;
	width:48px;
	height:3px;
	background:var(--sub);
	margin:14px auto 0;
}

/* 電話ブロック */
.tel-block{
	background:var(--bg);
	padding:52px 0 56px;
}
.tel-list{
	display:flex;
	justify-content:center;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	background:#fff;
}
.tel-item{
	flex:1;
	text-align:center;
	padding:26px 16px;
	border-right:1px solid var(--line);
}
.tel-item:last-child{border-right:none;}
.tel-item .name{
	font-size:14px;
	color:var(--gray);
	letter-spacing:.06em;
}
.tel-item .num{
	font-size:28px;
	font-weight:700;
	color:var(--main);
	letter-spacing:.04em;
	line-height:1.4;
}
.tel-note{
	text-align:center;
	font-size:14px;
	color:var(--gray);
	margin-top:16px;
}

/* フォーム */
.form-block{padding:64px 0 80px;}
.form-table{
	width:100%;
	border-collapse:collapse;
	border-top:1px solid var(--line);
}
.form-table th,
.form-table td{
	border-bottom:1px solid var(--line);
	text-align:left;
	vertical-align:top;
	padding:24px 24px;
}
.form-table th{
	width:290px;
	background:var(--bg);
	font-size:15px;
	font-weight:500;
	line-height:1.7;
}
.form-table td{background:#fff;}

/* ブロック見出し行 */
.block-head th{
	background:#fff;
	border-bottom:2px solid var(--main);
	padding:34px 0 12px;
	font-size:17px;
	font-weight:700;
	color:var(--main);
	letter-spacing:.06em;
	width:auto;
}
.block-head th .step{
	display:inline-block;
	background:var(--main);
	color:#fff;
	font-size:14px;
	font-weight:500;
	letter-spacing:.04em;
	padding:3px 11px;
	border-radius:2px;
	margin-right:12px;
	vertical-align:2px;
}
.block-head th .note{
	font-size:14px;
	font-weight:400;
	color:var(--gray);
	margin-left:14px;
	letter-spacing:0;
}
.form-table tr.block-head:first-child th{padding-top:0;}

.badge{
	display:inline-block;
	font-size:14px;
	font-weight:500;
	line-height:1;
	padding:5px 9px;
	margin-left:10px;
	border-radius:2px;
	vertical-align:2px;
	letter-spacing:.04em;
}
.badge.req{background:var(--req);color:#fff;}
.badge.any{background:#9a9a9a;color:#fff;}

input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea{
	font-family:inherit;
	font-size:15px;
	color:var(--text);
	border:1px solid #c8c8c8;
	border-radius:2px;
	padding:11px 14px;
	background:#fff;
	line-height:1.7;
}
input[type="text"],
input[type="email"],
input[type="tel"]{width:100%;max-width:520px;}
select{width:100%;max-width:400px;}
textarea{width:100%;height:170px;resize:vertical;}
input:focus,select:focus,textarea:focus{
	outline:none;
	border-color:var(--main);
	box-shadow:0 0 0 2px rgba(2,147,159,.15);
}
.hint{
	display:block;
	font-size:14px;
	color:var(--gray);
	margin-top:8px;
}

/* チェックボックス群 */
.check-group{
	display:flex;
	flex-wrap:wrap;
	gap:12px 28px;
}
.check-group label{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:15px;
	cursor:pointer;
	min-width:180px;
}
.check-group input[type="checkbox"]{
	width:17px;
	height:17px;
	accent-color:var(--main);
	cursor:pointer;
	flex-shrink:0;
}

/* ラジオボタン群（単一選択） */
.radio-group{
	display:flex;
	flex-wrap:wrap;
	gap:12px 28px;
}
.radio-group label{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:15px;
	cursor:pointer;
	min-width:280px;
}
.radio-group input[type="radio"]{
	width:17px;
	height:17px;
	accent-color:var(--main);
	cursor:pointer;
	flex-shrink:0;
}

/* 個人情報同意 */
.privacy{
	margin-top:56px;
	border:1px solid var(--line);
	background:var(--bg);
	padding:32px 40px 36px;
	text-align:center;
}
.privacy h3{
	font-size:17px;
	font-weight:700;
	margin-bottom:14px;
	letter-spacing:.04em;
}
.privacy p{
	font-size:15px;
	line-height:2;
}
.privacy a{
	color:var(--main);
	text-decoration:underline;
}
.privacy a:hover{color:var(--main-dark);}
.agree{
	display:inline-flex;
	align-items:center;
	gap:9px;
	margin-top:20px;
	font-size:16px;
	font-weight:500;
	cursor:pointer;
}
.agree input[type="checkbox"]{
	width:19px;
	height:19px;
	accent-color:var(--main);
	cursor:pointer;
}

/* 送信ボタン */
.submit-area{text-align:center;margin-top:44px;}
.btn-submit{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:12px;
	min-width:360px;
	padding:19px 40px;
	background:var(--sub);
	color:#fff;
	font-family:inherit;
	font-size:17px;
	font-weight:700;
	letter-spacing:.08em;
	border:none;
	border-radius:3px;
	cursor:pointer;
	transition:background .25s;
}
.btn-submit:hover{background:var(--sub-dark);}
.btn-submit svg{width:16px;height:16px;}
.submit-note{
	font-size:14px;
	color:var(--gray);
	margin-top:18px;
	line-height:1.9;
}
.tel-item .num a{color:inherit;text-decoration:none;pointer-events:none;}

/* ===== タブレット ===== */
@media screen and (max-width:1024px){
	.form-table th{width:230px;}
	.check-group label,
	.radio-group label{min-width:46%;}
}

/* ===== スマートフォン ===== */
@media screen and (max-width:768px){
	body{font-size:15px;line-height:1.85;}
	.wrap{padding:0 18px;}

	.page-head{padding:38px 0 32px;}
	.page-head .en{font-size:28px;}
	.page-head .ja{font-size:14px;margin-top:6px;}

	.lead{padding:34px 0 30px;text-align:left;line-height:1.95;}
	.lead br{display:none;}

	.sec-title{margin-bottom:24px;}
	.sec-title h2{font-size:19px;line-height:1.5;}
	.sec-title h2::after{margin-top:11px;}

	/* 電話 */
	.tel-block{padding:36px 0 38px;}
	.tel-list{display:block;}
	.tel-item{
	  border-right:none;
	  border-bottom:1px solid var(--line);
	  padding:16px 14px;
	}
	.tel-item:last-child{border-bottom:none;}
	.tel-item .num{font-size:26px;}
	.tel-item .num a{
	  pointer-events:auto;
	  text-decoration:underline;
	  text-underline-offset:3px;
	}
	.tel-note{font-size:14px;margin-top:12px;}

	/* フォーム（テーブル解除・縦積み） */
	.form-block{padding:40px 0 56px;}
	.form-table,
	.form-table tbody,
	.form-table tr,
	.form-table th,
	.form-table td{
	  display:block;
	  width:100%;
	}
	.form-table{border-top:none;}
	.form-table th{
	  padding:13px 14px;
	  border-bottom:none;
	  font-weight:700;
	}
	.form-table td{
	  padding:16px 0 24px;
	  border-bottom:1px solid var(--line);
	}

	.block-head th{
	  padding:30px 0 10px;
	  font-size:16px;
	}
	.form-table tr.block-head:first-child th{padding-top:4px;}
	.block-head th .step{font-size:14px;padding:2px 9px;margin-right:9px;}
	.block-head th .note{
	  display:block;
	  margin-left:0;
	  margin-top:4px;
	  line-height:1.7;
	}

	.badge{margin-left:8px;padding:4px 8px;}

	input[type="text"],
	input[type="email"],
	input[type="tel"],
	select,
	textarea{
	  max-width:100%;
	  width:100%;
	  font-size:16px; /* iOSの自動ズーム防止 */
	  padding:13px 13px;
	}
	textarea{height:150px;}
	.hint{line-height:1.75;}

	/* 選択肢は1列で縦積み */
	.check-group,
	.radio-group{
	  display:block;
	}
	.check-group label,
	.radio-group label{
	  min-width:0;
	  width:100%;
	  padding:11px 12px;
	  margin-bottom:8px;
	  border:1px solid var(--line);
	  border-radius:3px;
	  background:#fff;
	  line-height:1.6;
	  align-items:flex-start;
	}
	.check-group input[type="checkbox"],
	.radio-group input[type="radio"]{
	  width:19px;
	  height:19px;
	  margin-top:1px;
	}

	/* 個人情報同意 */
	.privacy{
	  margin-top:34px;
	  padding:24px 18px 26px;
	}
	.privacy h3{font-size:16px;margin-bottom:10px;}
	.privacy p{line-height:1.9;text-align:left;}
	.privacy p br{display:none;}
	.agree{
	  margin-top:18px;
	  justify-content:center;
	  width:100%;
	  padding:12px 0;
	  border:1px solid var(--main);
	  border-radius:3px;
	  background:#fff;
	}

	/* 送信ボタン */
	.submit-area{margin-top:30px;}
	.btn-submit{
	  width:100%;
	  min-width:0;
	  padding:18px 16px;
	  font-size:16px;
	  letter-spacing:.04em;
	}
	.submit-note{font-size:14px;margin-top:16px;text-align:left;}
}
#main .formBox .submit li.disabled {
	position: relative;
	z-index: -1;
}
#main .formBox .submit li.disabled::before {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	display: inline-block;
	content: "";
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.5);
}
#main .formBackBox .submit input.send-back {
	appearance: none;
	-webkit-appearance: none;
	width: unset;
	margin: 30px auto 0;
	background: #FFF;
	border: unset;
	font-size: 1.6rem;
	font-family: unset;
	color: #034786;
	text-decoration: underline;
	text-align: center;
	cursor: pointer;
}
/* ===== 小型スマートフォン ===== */
@media screen and (max-width:374px){
	.page-head .en{font-size:25px;}
	.tel-item .num{font-size:23px;}
	.btn-submit{font-size:15px;}
}