@charset "utf-8";

/* ---------------------------------------- 
 - contact_tel
---------------------------------------- */
#contact_tel{
	width: 90%;
	max-width: 1000px;
	margin: 0 auto 100px;
	padding: 60px 5%;
	background-color: #d0d1cc;
	text-align: center;
}
#contact_tel .ttl{
	font-size: 4.0rem;
	font-weight: 200;
	line-height: 1.4;
	color: #657568;
	margin-bottom: 0.5em;
}
#contact_tel .tel{
	font-size: 4.6rem;
	font-weight: 200;
	line-height: 1.4;
	margin-bottom: 0.2em;
	display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
#contact_tel .tel .reception{
	font-size: 2.6rem;
	margin-left: 0.5em;
}
#contact_tel ul.notice li{
	text-indent: -1.0rem;
	margin-left: 1.0em;	
}
@media screen and (max-width: 768px) {
	#contact_tel{
		margin-bottom: 50px;
		padding: 30px 3%;
	}
	#contact_tel .ttl{
		font-size: 2.2rem;
		font-weight: 300;
	}
	#contact_tel .tel{
		font-size: 2.8rem;
	}
	#contact_tel .tel .reception{
		font-size: 2.0rem;
	}
}
@media screen and (max-width: 480px) {
	#contact_tel .lead,
	#contact_tel ul.notice{
		font-size: 1.4rem;
		text-align: left;
	}
}

/* ---------------------------------------- 
 - contact
---------------------------------------- */
#contact{
	width: 90%;
	max-width: 1000px;
	margin: 0 auto 100px;
	text-align: center;
}
#contact .ttl{
	font-size: 4.0rem;
	font-weight: 200;
	line-height: 1.4;
	color: #657568;
	margin-bottom: 1em;
}
@media screen and (max-width: 768px) {
	#contact{
		margin-bottom: 70px;
	}
	#contact .ttl{
		font-size: 2.2rem;
		font-weight: 300;
		letter-spacing: 0;
	}
}

/* input */
#contact input {
	border:solid 1px #777;
	padding:5px;
	box-sizing:border-box;
}
#contact textarea {
	border:solid 1px #777;
	padding:5px;
	box-sizing:border-box;
	width:100%;
	min-height:200px;
}
#contact select {
	border:solid 1px #777;
	padding:5px 10px;
	box-sizing:border-box;
	min-width:35%;
	cursor: pointer;
}
#contact input[type=checkbox] { /* checkbox */
    margin-right: 0.5em;
    position: relative;
    display: inline-block;
    cursor: pointer;
}
#contact input[type=checkbox]::before { /* checkbox */
	display: block;
    width: 18px;
    height: 18px;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background: #fff;
    box-sizing: border-box;
	border: 1px solid #777;
	margin-top: -2px; /* 調整 */
}
#contact input[type=checkbox]:checked::after { /* checkbox */
	display: block;
	width: 12px;
    height: 7px;
	content: "";
    position: absolute;
    top: 0;
	left: 3px;	    
    border-left: 3px solid #222;
    border-bottom: 3px solid #222;
    transform: rotate(-45deg);
	margin-top: 2px; /* 調整 */
}
#contact input[type=radio] { /* radio */
    margin-right: 0.5em;
    position: relative;
    display: inline-block;
    cursor: pointer;
}
#contact input[type=radio]::before { /* radio */
	display: block;
    width: 18px;
    height: 18px;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background: #fff;
    box-sizing: border-box;
	border: 1px solid #7c7c7c;
	border-radius: 50%;
	margin-top: -2px; /* 調整 */
}
#contact input[type=radio]:checked::after { /* radio */
	display: block;
	width: 8px;
    height: 8px;
	content: "";
    position: absolute;
    top: 0;
	left: 0;	  
	border-radius: 50%;
	background: #222;
	margin-top: 3px;
    margin-left: 5px;
}
#contact table td input[type="text"] { /* text */
	width:100%;
}

/* flow_box */
#contact .flow_box {
	margin-bottom: 4.0em;
}
#contact .flow_box ul {
	display: flex;
	justify-content: center;
}
#contact .flow_box ul li{
	text-align: center;
	position: relative;
	font-size: 2.2rem;
	opacity: 0.4;
	padding-right: 60px;
	margin-right: 10px;
}
#contact .flow_box ul li.current {
	opacity: 1;
}
#contact .flow_box ul li:after {
	content: "";
	width: 50px;
	height: 1px;
	background: #222;
	position: absolute;
	right: 0;
	top: 0;
	bottom:0;
	margin: auto;
}
#contact .flow_box ul li:last-child {
	padding-right: 0;
	margin-right: 0;
}
#contact .flow_box ul li:last-child:after {
	display: none;
}
@media screen and (max-width: 768px) {
	#contact .flow_box {
		margin-bottom: 3.0em;
	}
	#contact .flow_box ul li{
		font-size: 1.8rem;
	}
}

/* notice_box */
#contact .notice_box {
	margin-bottom:2.0em;
	text-align: left;
	line-height: 1.8;
}
#contact .notice_box .txt {
	margin-bottom:2.0em;
}
#contact .notice_box ul.notice {
	margin-bottom:2.0em;
}
#contact .notice_box ul.notice li {
	text-indent: -1.0em;
	margin-left: 1.0em;
	margin-bottom: 0.5em;
}
#contact .notice_box .required span {
	display: inline-block;
	color: #fff;
	font-size: 1.2rem;
	background: #ae0000;
	padding: 3px 10px;
	margin-right:5px;
}

/* form_box */
#contact .form_box {
	text-align: left;
	line-height: 1.6;
}
#contact .form_box table {
	width:100%;
	table-layout: fixed;
	border-top:solid 1px #a2a2a2;
	border-collapse: collapse;
    border-spacing: 0;
}
#contact .form_box table th {
	width:28%;
	border-bottom:solid 1px #a2a2a2;
	padding:30px 60px 30px 30px;
	box-sizing:border-box;
	vertical-align: top;
	position: relative;
	text-align: left;
	background: #d0d1cc;
	font-size: 1.6rem;
}
#contact .form_box table th .required {
	display: inline-block;
	color: #fff;
	font-size: 1.2rem;
	background: #a20000;
	padding: 0 5px;
	position: absolute;
    right: 15px;
    top: 28px;
}
#contact .form_box table th .example {
	font-size:1.2rem;
}
#contact .form_box table th .notice {
	font-size:1.2rem;
}
#contact .form_box table th .notice li {
	text-indent: -1.0em;
	margin-left:1.0em;
}
#contact .form_box table td {
	width:72%;
	border-bottom:solid 1px #b5b5b5;
	padding:30px;
	box-sizing:border-box;
}
#contact .form_box table td > .txt {
	margin-top:1.2em;
	margin-bottom:1.2em;
}
#contact .form_box table td > .txt:first-child {
	margin-top:0;
}
#contact .form_box table td > .txt:last-child {
	margin-bottom:0;
}
#contact .form_box table td > ul.list li {
	margin-bottom:0.5em;
}
#contact .form_box table td > .flex {
	display:flex;
	align-items: center;
	flex-wrap: wrap;
}
#contact .form_box table td ul.notice {
	margin-top:1.0em;
}
#contact .form_box table td ul.notice li {
	text-indent:-1.0em;
	margin-left:1.0em;
	font-size:1.3rem;
}
#contact .form_box table td .example {
	margin-top:1.0em;
	font-size:1.3rem;
}
/* 項目別 */
#contact .form_box table td.name .txt { /* お名前 / フリガナ */
	margin-right: 1.5em;
}
#contact .form_box table td.name .txt:last-child { /* お名前 / フリガナ */
	margin-right: 0;
}
#contact .form_box table td.name input { /* お名前 / フリガナ */
	width:200px;
	margin-left: 0.5em;
}
#contact .form_box table td.sex > ul { /* 性別 */
	display: flex;
	flex-wrap: wrap;
}
#contact .form_box table td.sex > ul li { /* 性別 */
	margin-right: 2em;
}
#contact .form_box table td.postcode div.flex { /* 郵便番号 */
	align-items:normal;
}
#contact .form_box table td.postcode button { /* 郵便番号 */
	text-align: center;
    box-sizing: border-box;
    cursor: pointer;
    background: #657568;
    padding: 0 1.0em;
    max-width: 150px;
    transition: all 0.3s;
	margin-left:15px;
	color: #fff;
	border: 0;
}
#contact .form_box table td.postcode button:hover { /* 郵便番号 */
	opacity: 0.6;
}
#contact .form_box table td.tel div.flex span { /* 電話番号 */
	margin: 0 0.5em;
}
#contact .form_box table td.tel input { /* 電話番号 */
    width: 25%;
	min-width: 80px;
}
#contact .form_box table td.mail div.flex { /* メールアドレス */
	align-items: center;
}
#contact .form_box table td.mail .again { /* メールアドレス */
	margin: 20px 0 0.5em;
}
#contact .form_box table td.mail div.flex span { /* メールアドレス */
	margin: 0 0.5em;
}
#contact .form_box table td.mail input { /* メールアドレス */
	width:250px;
}
#contact .form_box table td.howto select { /* ご連絡方法 */
	min-width:300px;
}
@media screen and (min-width: 769px) and (max-width: 950px) {
	#contact .form_box table td.name .txt {
		margin-right: 2%;
	}
	#contact .form_box table td.name input { /* お名前 / フリガナ */
		width:calc(100% - 2em);
	}
	#contact .form_box table td.mail input { /* メールアドレス */
		width:46%;
	}
}
@media screen and (max-width: 768px) {
	#contact .form_box table th {
		display:block;
		width:100%;
		border-bottom:none;
		padding:1.0em 3%;
		vertical-align:middle;
		font-size: 1.5rem;
	}
	#contact .form_box table th .required {
		position:static;
		margin-left:10px;
	}
	#contact .form_box table td {
		display:block;
		width:100%;
		padding:1.5em 3%;
	}
	/* 項目別 */
	#contact .form_box table td.name div.flex { /* お名前 / フリガナ */
		display: block;
	}
	#contact .form_box table td.name .txt { /* お名前 / フリガナ */
		margin-right: 0;
		margin-bottom: 0.5em;
	}
	#contact .form_box table td.name input { /* お名前 / フリガナ */
		width:80%;
	}
	#contact .form_box table td.sex > ul { /* 性別 */
		display: block;
	}
	#contact .form_box table td.sex > ul li { /* 性別 */
		margin-right: 0;
		margin-bottom: 0.5em;
	}
	#contact .form_box table td.postcode input { /* 郵便番号 */
		width:10em;
	}
	#contact .form_box table td.postcode button { /* 郵便番号 */
		padding: 0 3%;
		max-width: 100px;
		margin-left:10px;
	}
	#contact .form_box table td.mail div.flex span { /* メールアドレス */
		margin: 0 0.2em;
	}	
	#contact .form_box table td.mail input { /* メールアドレス */
		width:38%;
	}	
	#request .form_box table td.mail input:nth-child(1) { /* メールアドレス */
		width: 55%;
	}
	#contact .form_box table td.howto select { /* ご連絡方法 */
		min-width:100%;
	}
}

/* submit_box */
#contact .submit_box {
	margin:0 auto;
	text-align:center;
	margin-top:65px;
}
#contact .submit_box .privacy {
	font-size:2.2rem;
	font-weight:200;
	margin-bottom: 20px;
}
#contact .submit_box .txt {
	font-size:1.6rem;
	margin-bottom: 1.5em;
}
#contact .submit_box ul.btn {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}
#contact .submit_box ul.btn li {
	margin:0 15px;
	width:300px;
}
#contact .submit_box ul.btn li button {
    text-align: center;
    box-sizing: border-box;
    cursor: pointer;	
	padding:10px;
	width:100%;
	transition: 0.3s;
	border-radius: 30px;
}
#contact .submit_box ul.btn li button.conf {
	background: #657568;
	color: #fff;
	border: none;
}
#contact .submit_box ul.btn li button.reset {
	border:solid 1px #657568;
	background: none;
	color:#657568;
}
#contact .submit_box ul.btn li button:hover {
	opacity: 0.6;
}
@media screen and (max-width: 768px) {.
	#contact .submit_box {
		margin-top:35px;
	}
	#contact .submit_box .privacy {
		font-size:1.8rem;
		font-weight: 300;
	}
	#contact .submit_box .txt {
		font-size:1.4rem;
	}
	#contact .submit_box ul.btn {
		display: block;
	}
	#contact .submit_box ul.btn li {
		padding:0 0;
		font-size:1.6rem;
		width:80%;
		max-width:300px;
		margin:0 auto 1.5em;
	}
	#contact .submit_box ul.btn li:last-child {
		margin-bottom:0;
	}
}

/* ---------------------------------------- 
 - contents（thanks）
---------------------------------------- */
#contact .thanks {
	text-align:center;
	margin:0 auto;
	max-width: 750px;
}
#contact .thanks .txt {
	font-size:1.8rem;
}
#contact .thanks p.btn {
	width:300px;
	margin:50px auto 0;
}
#contact .thanks p.btn a {
	display: block;
    text-align: center;
    box-sizing: border-box;
    cursor: pointer;
    border: solid 1px #657568;
    padding: 10px;
    width: 100%;
    transition: 0.3s;
	text-decoration: none;
	color:#657568;
	border-radius: 30px;
}
#contact .thanks p.btn a:hover {
	opacity: 0.5;
}
@media screen and (max-width: 768px) {
	#contact .thanks .txt {
		font-size:1.6rem;
	}
	#contact .thanks p.btn {
		width:80%;
	}
}