@charset "UTF-8";
/* 
CSS Document 
ページ共通CSS
ヘッダ, フッタ, サイド
*/

body {
	font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HiraKakuPro-W3","メイリオ",Meiryo,"ＭＳ Ｐゴシック","MS PGothic",Arial, Helvetica,sans-serif;
	color:#000;
	font-size:16px;
	line-height:1.5;
	-webkit-text-size-adjust: 100%;
	}
	
/*テキストリンク*/
a {
	color:#000;
	}
	
a:hover {
	}

/*テキスト*/
.red {
	color:#c3002f;
}

.caution {
	position: relative;
	padding-left:1em;
	color:#4c4c4c;
}
.caution.red {color:#c3002f;}
.caution.noicon {padding-left:0;}
.caution span:first-child {
	position: absolute;
	left:0;
}


/*ボタン*/
.boxButton {
	text-decoration: none;
	display: inline-block;
	border:1px solid #ccc;
	background:#fff;
	padding:0.8em;
	line-height: 1em;
	border-radius:4px;
	font-size:24px;
	min-width:300px;
	text-align: center;
	letter-spacing: 1em;
	text-indent: 1em;
	transition:background-color 0.3s linear;
	cursor:pointer;
}

.boxButton i:first-child {
	margin-right:0.5em;
}

.boxButton.red {
	color:#fff;
	background:#c72243;
	border:none;
}
.boxButton.red:hover {
	background:#9e1d36;
}
.boxButton.grey {
	color:#fff;
	background:#aaaaaa;
	border:none;
}
.boxButton.grey:hover {
	background:#777777;
}


/*ヘッダ*/
h1 {
	margin-bottom: 25px;
	padding:0 12px;
}
header p {
	margin: 8px;
	font-size: 14px;
}

/*フッタ*/
footer {
	line-height: 1em;
	padding:10px;
	background:#ccc;
	font-size:8px;
}
footer img {vertical-align: top;}

/*コンテナ*/
#container.constBox {
	margin-top:25px;
	margin-bottom:60px;
}
#container.constBox > .inner {
	border:2px solid #c7c7c7;
}

.constBox {
	width:1004px;
	margin-left:auto;
	margin-right:auto;
	padding:0 20px;
}

/*フォーム*/
.formContainer form .tit {
	font-size:16px;
	font-weight: normal;
	padding:20px 20px 20px 40px;
	line-height: 1em;
	position: relative;
}
.formContainer form .tit::before {
	content:"";
	display:block;
	width:0.5em;
	height:0.5em;
	background:#c3002f;
	position: absolute;
	left:20px;
	top:50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.formContainer table {
	width:100%;
	border-bottom:1px solid #c7c7c7;
}
.formContainer table th,
.formContainer table td {
	border-top:1px solid #c7c7c7;
	padding:20px;
}
.formContainer table tr:first-child th,
.formContainer table tr:first-child td {
	border-top:none;
}

.formContainer table th {
	font-size:14px;
	text-align:left;
	background:#e0e0e0;
	width:280px;
}

.formContainer table .must th {
	position: relative;
	z-index:-1;
}
.formContainer table .must:not(.confirm) th::before {
	content:"必須";
	background:#c3002f;
	color:#fff;
	font-size:10px;
	display:block;
	padding:0.5em 0.5em 0.3em;
	line-height: 1em;
	position: absolute;
	left:20px;
	border-radius: 5px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.formContainer table td {
	background:#f4f4f4;
}
.formContainer#submitForm table td {
	font-size:14px;
}

/*テーブル背景色*/
/*無効*/
.formContainer .disabled th {background:#ccc;}
.formContainer .disabled td {background:#eee;}
/*エラー*/
.formContainer .error td {
	/*background:#e9dade;*/
}

/* フォームエラー画面 */
#errorBox {
	display: none;
	padding: 60px 0;
}

/*フォーム部品*/
.formContainer input[type=text] {
	border:2px solid #ccc;
	padding:0.8em;
	width: 200px;
}
.formContainer .date{
	position: relative;
}
.formContainer .date::before {
	display:block;
	border:5px solid transparent;
	border-top-color:#c7c7c7;
	content:"";
	position: absolute;
	top:50%;
	left:0.6em;
	-webkit-transform:translateY(-0.2em) scaleX(0.7);
	transform:translateY(-0.2em) scaleX(0.7);
}
.formContainer .date input[type=text] {
	width: 150px;
	padding-left: 1.8em;
}
.formContainer .date input[type=text]::-webkit-input-placeholder {
	color: black;
}
.formContainer .date input[type=text]::-moz-placeholder {
	color: black;
}
.formContainer .date input[type=text]:-ms-input-placeholder {
	color: black;
}
.formContainer .date input[type=text]:disabled::-webkit-input-placeholder {
	color: #999;
}
.formContainer .date input[type=text]:disabled::-moz-placeholder {
	color: #999;
}
.formContainer .date input[type=text]:disabled:-ms-input-placeholder {
	color: #999;
}

.formContainer .len2 input {width:4em;}
.formContainer .len3 input {width:5em;}
.formContainer .len4 input {width:6em;}
.formContainer .long,
.formContainer .long input {width:100%;}

.formContainer .select {
	border:2px solid #ccc;
	padding:0.8em;
	min-width:150px;
	background:#fff;
	display: inline-block;
	position: relative;
}
.formContainer .select::before {
	display:block;
	border:5px solid transparent;
	border-top-color:#c7c7c7;
	content:"";
	position: absolute;
	top:50%;
	left:0.5em;
	-webkit-transform:translateY(-0.2em) scaleX(0.7);
	transform:translateY(-0.2em) scaleX(0.7);
}
.formContainer .select select {
	border:none;
	display: block;
	width:100%;
	padding-left:1em;
	background:#fff;
}

/*検索ボタン*/
.formContainer .searchButton.boxButton {
	width:auto;
	font-size:14px;
	letter-spacing: 0.02em;
	color:#fff;
	min-width:0;
	text-indent: 0;
	vertical-align: middle;
	padding:0.8em;
	border:none;
}

/*入力内容確認の案内表示*/
#confirmInfo {
	display:none;
	font-size:16px;
	padding:30px 0;
	text-align: center;
	line-height: 2.0;
}
/*確認画面 入力内容の確認表示*/
.confirmField {
	font-size: 13px;
}

/*フォームエラー*/
#errorInfo {
	display:none;
	font-size:14px;
	padding:30px 0;
	text-align: center;
}

.formContainer .errStr {
	color:#c3002f;
	margin-top:20px;
}

.formContainer table .error th {
	background-color: #ffd2de;
}

.formContainer table .error td {
	background-color: #ffedf2;
}
/*Twitterキャンペーン領域*/
.formContainer .infoArea .bold.fs12 {
	padding:25px 0;
	color:#4c4c4c;
}

.formContainer .infoArea .tl > * {
	padding:20px 0;
	vertical-align: middle;
}
.formContainer .infoArea .tl > div {
	background:#c3002f;
	color:#fff;
	font-size:16px;
	width:666px;
}
.formContainer .infoArea .tl > div strong {
	font-size:22px;
	font-weight: normal;
}

.formContainer .infoArea .arrow {
	width:666px;
	text-align: center;
}

.formContainer .infoArea .tl > a {
	background:#999999;
	font-size:22px;
	color:#fff;
	text-decoration: none;
}
.formContainer .infoArea .tl > a::after {
	display:inline-block;
	border:0.4em solid transparent;
	border-top-color:#fff;
	content:"";
	-webkit-transform:translateY(-0.2em) scaleX(0.7);
	transform:translateY(-0.2em) scaleX(0.7);
	vertical-align: top;
	position: relative;
	top:0.8em;
	margin-left:0.5em;
}


/*フォーム下部*/
.formContainer .formBottom {
	font-size:12px;
}

.formContainer .formBottom #confirmButton:disabled{
	color:#fff;
	background:#aaaaaa;
}

.formContainer .formBottom .termArea {
	border:1px solid #ccc;
	padding:15px;
}
.formContainer .formBottom .termArea .inner {
	overflow: auto;
	height:170px;
}

.formContainer .formBottom .otherArea {
	border-top:1px solid #ccc;
	margin-top:50px;
	padding-top:50px;
}
.formContainer .formBottom .otherArea .inner {
	display:inline-block;
	max-width:420px;
	text-align: left;
}
.formContainer .formBottom .otherArea .inner .linkArea {text-align: center;}

/*========================================
モーダル
========================================*/
#modalContainer, #modal {
	opacity:0;
	transition:all 0.3s linear;
}
#modalContainer.on {
	opacity:1;
}
#modal.on {
	opacity:1;
}
#modalContainer {
	position: fixed;
	width:100%;
	height:100%;
	background:rgba(0, 0, 0, 0.8);
	top:0;
	left:0;
	z-index:1001;
}

#modal {
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	/*border:1px solid #eaeaea;*/
	/*background:#fff;*/
	/*padding:40px;*/
	width:80%;
	max-height:90%;
	max-width:880px;
	overflow: hidden;
	/*-webkit-overflow-scrolling: touch;*/
}
#modal > .closeButton {
	position: absolute;
	display: block;
	text-align: center;
	font-size:30px;
	line-height: 1;
	color: #999;
}
#modal.map > .closeButton {
	color: #fff;
}
#modal > .tl > * {vertical-align: middle;}

/*エラー*/
#modal .error {
	background:#fff;
	padding:20px;
	text-align:center;
}

.notes{
	color:#4c4c4c;
}

label.disabled{
	color: #999;
}

@media screen and (min-width: 768px) {
	.sp-only{
		display: none;
	}
	.formContainer table .must:not(.confirm) th {
		padding-left:60px;
	}
	.formContainer table .must:not(.confirm) th::before {
		top:50%;
	}

	.formContainer table td {
		font-size:12px;
	}

	.formContainer .field {
		display:inline-block;
	}
	.formContainer .field+.field {
		margin-left:10px;
	}
	.formContainer .formBottom {
		padding:45px;
	}
	.formContainer .formBottom #prevButton{
		min-width: 200px;
		margin-right: 20px;
	}
	#modal > .closeButton {
		top:3px;
		right:8px;
	}
}
@media screen and (max-width: 767px) {
	.pc-only{
		display: none;
	}
	.constBox {
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding: 0 4%;
	}
	#container.constBox{
		margin-top: 8px;
	}
	header h1 {
		line-height: 1em;
		font-size: 10px;
		max-width: 640px;
		width: auto;
		margin: 0 auto;
		padding: 0 4%;
	}
	header h1 img {
		max-width: 100px;
		width: 11.3%;
	}
	header p {
		margin: 20px 0 8px;
	}
	.formContainer table,
	.formContainer table tbody,
	.formContainer table tr,
	.formContainer table th,
	.formContainer table td {
		display:block;
		width:100%;
	}

	.formContainer table th,
	.formContainer table td {
		padding: 15px;
	}

	.formContainer table .must:not(.confirm) th {
		padding-top: 40px;
	}

	.formContainer table .must:not(.confirm) th::before {
		top: 20px;
	}

	.formContainer table td {
		font-size: 13px;
	}

	.formContainer .field {
		display: block;
	}
	.formContainer .field+.field {
		margin-top: 14px;
	}
	.formContainer .select {
		width: 100%;
	}
	.formContainer input[type=text] {
		font-size:16px;
	}
	.formContainer select {
		font-size:16px;
	}
	.formContainer .date input[type=text] {
		width: 100%;
	}
	.formContainer .formBottom {
		padding:15px;
	}
}
@media screen and (max-width: 375px) {
}
@media screen and (max-width: 360px) {
}
@media screen and (max-width: 320px) {
	.boxButton{
		min-width: 240px;
	}
}