@charset "utf-8";
/* CSS Document */

/* ==================================================

	 お問い合わせ

================================================== */

/* ==================================================
	テキスト箇所
================================================== */

#contact .contents_title,
#contact .title_type01 {
	max-width: 920px;
}
#contact .title_type01 {
	margin: 0 auto;
}
#contact .content_block div + .title_type01 {
	margin: 60px auto 0;
}
#contact .content_block div + .contents_title {
	margin: 60px auto 44px;
}

.content_block .first_text {
	max-width: 800px;
}
.content_block .content_note {
	max-width: 480px;
}
.content_block .form_wrapper .content_note {
	max-width: inherit;
	text-align: center;
}
.content_block .flow_list + .content_note {
	margin-top: 2rem;
}
.content_block .form_wrapper .form_contents + .content_note {
	margin-top: 2rem;
}

/* ==================================================
	確認画面
================================================== */

.form_wrapper.input_contents .form_contents + .form_contents {
	border-top: #1C2649 solid 1px;
	padding-top: 1.5rem;
}
.form_wrapper.input_contents .form_contents > p:first-child {
	line-height: inherit;
}

/* ==================================================
	完了画面
================================================== */

.link_btn_contact {
	margin-top: 20px;
}
.link_btn_contact p {
	position: relative;
	max-width: 300px;
	text-align: center;
    overflow: hidden;
}
.link_btn_contact p a {
	display: block;
	color: #333;
	background: #F7DA2D;
	border: #F7DA2D solid 1px;
	font-weight: bold;
	letter-spacing: .1em;
	cursor: pointer;
	height: 56px;
	line-height: 56px; 
	padding-right: 80px;
}

/* ==================================================
	手順リスト
================================================== */

.flow_list {
	display: flex;
	flex-flow: wrap;
	justify-content: center;
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}
div + .flow_list {
	margin-top: 2.5rem;
}
.flow_list li {
	position: relative;
	width: calc(25% - 15px);
}
.flow_list li + li {
	margin-left: 15px;
}
.flow_list li:nth-child(3n + 4) {
	margin-left: 0px;
}
.flow_list li:nth-child(n + 4) {
	margin-top: 5px;
}
.flow_list li:after {
	content: '';
	position: absolute;
	right: -15px;
	top: calc(50% - 10px);
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 10px 0 10px 15px;
	border-color: transparent transparent transparent #DDD;
}
.flow_list li.now:after {
	border-color: transparent transparent transparent #FC7E2F;
}
.flow_list li.done:after {
	border-color: transparent transparent transparent #5EC0BD;
}
.flow_list li:last-child:after {
	display: none;
}
.flow_list li p {
	display: flex;
	justify-content: center;
	width: 100%;
	color: #666;
	background: #DDD;
	padding: .75rem 1rem;
}
.flow_list li.now p,
.flow_list li.done p {
	font-weight: bold;
	color: #FFF;
}
.flow_list li.now p {
	background: #FC7E2F;
}
.flow_list li.done p {
	background: #5EC0BD;
}

/* ==================================================
	入力フォーム
================================================== */

.form_wrapper {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}
.flow_list + .form_wrapper,
div + .form_wrapper {
	margin: 2.5rem auto 0;
}
.form_wrapper div + .form_contents {
	margin-top: 1.5rem;
}
.form_wrapper .content_title + .form_contents {
	margin-top: 0;
}
.form_wrapper .form_contents > p:first-child {
    display: flex;
    /*justify-content: flex-end;*/
    justify-content: flex-start;
	align-items: flex-start;
	width: 100%;
    max-width: 225px;
	font-weight: bold;
	line-height: 48px;
}
.form_wrapper .form_contents p a {
	font-weight: bold;
	text-decoration: underline;
    letter-spacing: .05rem;
	padding: 0 .25rem;
}
.form_wrapper .form_contents p a:hover {
	opacity: .5;
	text-decoration: none;
}
.form_wrapper .form_contents {
	display: flex;
	justify-content: space-between;
}
.form_wrapper .form_contents.required > p {
	display: flex;
    justify-content: flex-start;
	align-items: center;
}
.form_wrapper .form_contents p {
}

/* input,textarea */
.form_wrapper .form_contents .form_block {
	width: calc(100% - 225px);
}
.form_wrapper .form_contents .form_block .form_input,
.form_wrapper .form_contents .form_block .form_textarea {
	width: 100%;
}
.form_wrapper .form_contents .form_block .form_input {
}
.form_wrapper .form_contents .form_block .form_textarea {
}

.form_wrapper input,
.form_wrapper .form_contents textarea {
	width: 100%;
	font-family : inherit;
	font-size: 1.05rem;
	background: #FFFFFB;
	border: #CCC solid 1px;
	border-radius: 3px;
}
.form_wrapper .form_contents input {
	min-height: 48px;
	padding: 0 1rem;
}
.form_wrapper .form_contents textarea {
	padding: 1rem;
}
.form_wrapper .form_contents.tel input {
	max-width: 280px;
}
.form_wrapper .form_contents.address_number input:nth-of-type(1) {
	max-width: 100px;
}
.form_wrapper .form_contents.address_number input:nth-of-type(2),
.form_wrapper .form_contents.address_number input.button {
	max-width: 160px;
}
.form_wrapper .form_contents.address_number input.button {
	font-size: 1.05em;
	color: #FFF;
	background: #FC7E2F;
	border: #FC7E2F solid 2px;
	margin: 0 0 0 1rem;
}
.form_wrapper .form_contents.address_number input.button:hover {
	font-weight: bold;
	color: #FC7E2F;
	background: #FFFFFB;
}

/* 必須の表示 */
.form_wrapper .form_contents.required > p:after {
	content: '必須';
	display: block;
	height: 1.4rem;
	line-height: 1.45rem;
	font-size: .85rem;
    color: #FFF;
	background: #D83621;
	padding: 0 .5rem;
	margin: 0 0 0 1rem;
	letter-spacing: .1rem;
}

/* 注意書き等 */
.form_wrapper .form_contents .form_input + p,
.form_wrapper .form_contents .form_textarea + p,
.form_wrapper .form_contents input + p {
	width: 100%;
	margin-top: .5rem;
}


/* =========================================================
 *	送信ボタン
 * ========================================================= */

.form_wrapper .submit {
	width: 100%;
	margin: 60px auto 0;
}
.form_wrapper.input_contents div + div.submit {
    border-top: none;
    padding-top: .5rem;
}
.form_wrapper .submit + .content_note {
	width: 100%;
	margin-top: 1rem;
}
.form_wrapper .submit p input:focus {
	box-shadow: none;
}
.form_wrapper .submit p {
	width: 100%;
	max-width: 480px;
}
.form_wrapper .submit.flex {
	display: flex;
	justify-content: center;
}
.form_wrapper .submit.flex p {
	max-width: 400px;
}

.form_wrapper form > div.submit > p:first-child {
	margin-top: 0;
	margin-bottom: 0;
}
.form_wrapper form > div.submit.flex > p:first-child {
	margin-right: 10px;
}
.form_wrapper form > div.submit.flex > p:last-child {
	margin-left: 10px;
}
.form_wrapper .submit p {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	color: #999;
	background: #FFFFFB;
	border: #999 solid 1px;
	border-radius: 24px;
	padding: .0 1rem;
	margin: 0 auto;
}
.form_wrapper .submit p input {
	background: none;
	border: none;
}
.form_wrapper .submit p.return {
    background: #EDEDED;
}
.form_wrapper .submit p input {
	font-size: 1rem;
	font-weight: bold;
}
.form_wrapper .submit p:hover {
	color: #FFF;
    background: #006400;
    border: #006400 solid 1px;
}

/* =========================================================
 *	絞り込み
 * ========================================================= */

.sort_contents {
	display: flex;
    justify-content: flex-end;
    align-items: center;
	width: 100%;
}
.sort_contents .sort_title {
	padding: 0 1rem 0 0;
}

/* =========================================================
 *	数量の入力と単位テキスト
 * ========================================================= */

.count_01,
.count_01 p {
	display: flex;
	align-items: center;
}
.count_01,
.count_01 p input {
	width: 100%;
}
.count_01 p input {
	max-width: 60px;
}
.count_01 p span {
	white-space: nowrap;
}
.count_01 p input + span {
	padding-left: 8px;
}
.count_01 p span + input {
	margin-left: 8px;
}

/* =========================================================
 *	セレクトボックス
 * ========================================================= */

.select_01 {
	width: 100%;
	position: relative;
	display: inline-block;
	background: #FFFFFB;
	color: #333;
    border: #CCC solid 1px;
	border-radius: 3px;
}
.select_01:after {
	content: '';
	width: 10px;
	height: 10px;
	border: 0px;
	border-bottom: solid 2px #333;
	border-right: solid 2px #333;
	transform: rotate(45deg);
	position: absolute;
	top: calc(50% - 5px);
	right: 1rem;
	pointer-events: none;
}
.select_01 select {
	width: 100%;
	min-height: 48px;
    padding: 0 2.5rem 0 1rem;
	text-overflow: ellipsis;
	cursor: pointer;
}

/* =========================================================
 *	ラジオボタン
 *	チェックボックス
 * ========================================================= */

.radio_01,
.radio_01 ul,
.check_01 ul {
    display: flex;
}
.radio_01 {
    align-items: center;
}
.radio_01 > p {
	margin: 0 1rem 0 0;
}
.radio_01 ul,
.check_01 ul {
	list-style: none;
	padding: 0;
}
.radio_01 ul li+li {
	margin-left: 20px;
}
input[type=radio],
input[type=checkbox] {
	display: none;
}
.radio_01_btn,
.check_01_btn {
	position: relative;
	cursor: pointer;
}
.radio_01_btn {
	padding: 2px 0 0 40px;
}
.check_01_btn {
	padding: 10px 0 0 60px;
}
.radio_01_btn:hover,
.check_01_btn:hover {
	font-weight: bold;
}
.radio_01_btn:after,
.radio_01_btn:before,
.check_01_btn:after,
.check_01_btn:before {
	content: "";
	display: block;
	position: absolute;
	top: 11px;
}
.radio_01_btn:after,
.check_01_btn:after {
	top: 0;
    left: 0;
	background: #FFF;
	border: #1C2649 solid 1px;
}
.radio_01_btn:after {
	width: 28px;
	height: 28px;
	border-radius: 50%;
}
.check_01_btn:after {
	width: 40px;
	height: 40px;
	border-radius: 5px;
}
.radio_01_btn:hover:after,
.check_01_btn:hover:after {
    border: #1C2649 solid 2px;
}
.radio_01_btn:before,
.check_01_btn:before {
	opacity: 0;
    z-index: 1;
}
.radio_01_btn:before {
    top: 6px;
	left: 6px;
	width: 16px;
	height: 16px;
	background-color: #1C2649;
	border: #1C2649 solid 2px;
	border-radius: 50%;
}
.check_01_btn:before {
	left: 15px;
    top: 5px;
    width: 12px;
    height: 24px;
    transform: rotate(40deg);
    border-bottom: 3px solid #1C2649;
    border-right: 3px solid #1C2649;
}
input[type=radio]:checked + .radio_01_btn,
input[type=checkbox]:checked + .check_01_btn {
	font-weight: bold;
}
input[type=radio]:checked + .radio_01_btn:after,
input[type=checkbox]:checked + .check_01_btn:after {
    border: #1C2649 solid 2px;
}
input[type=radio]:checked + .radio_01_btn:before,
input[type=checkbox]:checked + .check_01_btn:before {
	opacity: 1;
}

/* =========================================================
 *	エラーメッセージ
 * ========================================================= */

#forget_msg {
    box-sizing: border-box;
    max-width: 800px;
    color: #F5192F;
    background: #FFF2F2;
    border: solid 3px #F5192F;
    padding: 15px;
    margin: 2.5rem auto;
	text-align: left;
}
#forget_msg p {
    font-weight: bold;
    margin: 0 0 10px 0;
}
#forget_msg li {
	list-style: none;
}

/* =========================================================
 *	フォーム内エラー項目
 * ========================================================= */

input.error{
    border:solid 1px #F9C714;
	box-shadow: 0 0 7px #F9C714;
}
.status_touched input:invalid,
.status_touched textarea:invalid,
.status_touched input.error:invalid,
.status_touched textarea.error:invalid{
    border:solid 1px #F5192F;
	box-shadow: 0 0 7px #F5192F;
}

/******************************************************************

	レスポンシブ - 入力フォームページ

******************************************************************/

/* タブレットサイズ（960px以下） */
@media all and (max-width: 960px) {
.content_block .flow_list + .content_note {
	margin-top: 1.75rem;
}
.flow_list,
.form_wrapper,
#forget_msg {
    max-width: 640px;
}
.flow_list {
	flex-flow: column;
}
.flow_list li {
    width: 100%;
}
.flow_list li + li {
    margin-left: 0;
    margin-top: 10px;
}
.flow_list li:after {
    right: calc(50% - 30px);
    top: auto;
	border-width: 10px 30px 0 30px;
	border-color: #DDD transparent transparent transparent;
}
.flow_list li.now:after {
	border-color: #FC7E2F transparent transparent transparent;
}
.flow_list li.done:after {
	border-color: #5EC0BD transparent transparent transparent;
}
.flow_list + .form_wrapper,
div + .form_wrapper {
    margin: 1.5rem auto 0;
}
.form_wrapper .form_contents {
	flex-flow: column;
}
.form_wrapper div + .form_contents {
    margin-top: 1rem;
}
.form_wrapper.input_contents .form_contents + .form_contents {
    padding-top: 1rem;
}
.form_wrapper .form_contents > p:first-child {
    justify-content: flex-start;
	max-width: inherit;
	margin-bottom: .5rem;
	line-height: inherit;
}
.form_wrapper .form_contents .form_block {
    width: 100%;
}
#forget_msg {
    margin: 1.5rem auto;
}
}

/* スマホサイズ（600px以下） */
@media all and (max-width: 600px) {
#contact .contents_title {
	margin: 0 auto 40px;
}
#contact .content_block div + .title_type01 {
	margin: 32px auto 0;
}
#contact .content_block div + .contents_title {
	margin: 44px auto 40px;
}

.content_block .flow_list + .content_note {
	margin-top: 1.5rem;
}

/*.form_wrapper .form_contents.address_number,
.form_wrapper .form_contents.tel,
.form_wrapper .form_contents.fax {
	display: flex;
}*/
.form_wrapper .form_contents.address_number input:nth-of-type(1) {
	width: 65px;
}
.form_wrapper .form_contents.address_number input:nth-of-type(2),
.form_wrapper .form_contents.address_number input.button {
	width: 77px;
}
.form_wrapper .form_contents.address_number input.button {
	width: 103px;
	font-size: .95rem;
    margin: 0 0 0 .5rem;
}

.form_wrapper .submit {
	flex-flow: column;
	margin: 36px auto 0;
}
.form_wrapper .submit input + input {
    margin-left: 0;
}
.form_wrapper .submit.flex p {
	max-width: 100%;
}
.form_wrapper .submit.flex > p + p {
	margin-top: 1.25em;
}
.form_wrapper form > div.submit.flex > p:first-child,
.form_wrapper form .input_item_list_02 > div.submit.flex > p:first-child {
	margin-right: 0;
}
.form_wrapper form > div.submit.flex > p:last-child,
.form_wrapper form .input_item_list_02 > div.submit.flex > p:last-child {
	margin-left: 0;
}
.form_wrapper .submit.flex p input {
    padding-right: 0;
}
.count_01 {
	flex-flow: wrap;
}
.count_01 p input {
	max-width: 70px;
}

.link_btn_contact p {
	max-width: 100%;
}
.link_btn_contact p a {
    padding-right: 0;
}
}


