@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body { min-width: 0px; font-size: 0.8em;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}
.ta_center-s_left { text-align: left;}

/* ボックス */
.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb120-80 { margin-bottom: 80px !important;}
.mb160-80 { margin-bottom: 80px !important;}

/* ------------------------
	ヘッダー
------------------------ */

.header { padding: 8px 70px 8px 15px;}
.header h1 { padding: 0px;}
.header h1 img { height: 40px;}

/* ------------------------
	グローバルナビ
------------------------ */

.clone-nav { display: none;}

/* ハンバーガーメニュー */
.humberger {
	background: rgba(255,255,255,0.7);
	border-radius: 4px;
	cursor: pointer;
	display: block;
	position: fixed;
	top: 5px;
	right: 5px;
	width: 50px;
	height: 50px;
	z-index: 10001;
}
.humberger span {
	background: #544c4a;
	border-radius: 15px;
	position: absolute;
	left: 10px;
	width: 30px;
	height: 3px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 9px;}
.humberger span:nth-of-type(2) { top: 17px;}
.humberger span:nth-of-type(3) { top: 25px;}
.humberger:after {
	color: #544c4a;
	content: 'MENU';
	display: block;
	font-size: 10px;
	text-decoration: none;
	text-align: center;
	transition: 0.4s;
	position: absolute;
	left: 0;
	bottom: 1px;
	width: 100%;
}
.is-open .humberger:after { content: 'CLOSE';}
.is-open .humberger span:nth-of-type(1) {
  -webkit-transform: translateY(6px) rotate(-45deg);
	  -ms-transform: translateY(6px) rotate(-45deg);
		  transform: translateY(6px) rotate(-45deg);
}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) {
  -webkit-transform: translateY(-10px) rotate(45deg);
	  -ms-transform: translateY(-10px) rotate(45deg);
		  transform: translateY(-10px) rotate(45deg);
}
/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000;
}
.sp-navi .sp-navi-inner {
	background: #fff;
	background-size: auto 3px, auto;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
	padding-bottom: 30px;
}
.sp-navi .logo { padding: 8px 0px 0px 15px;}
.sp-navi .logo img { width: auto; height: 40px;}
.sp-navi .list01 a { color: #544c4a;}
.sp-navi .list01 li > a, .sp-navi .list01 li > span { display: block; text-decoration: none; border-bottom: dashed 1px #ccc; padding: 7px 5px 7px 40px; font-size: 1.15em; position: relative;}
.sp-navi .list01 > li > a:before, .sp-navi .list01 > li > span:before { content: ""; position: absolute; left: 15px; top: 50%; margin-top: -1.5px; width: 10px; height: 3px; background-color: #544c4a;}
.sp-navi .list01 > li li a { display: block; text-decoration: none; border-bottom: dashed 1px #ccc; padding: 7px 5px 7px 70px; font-size: 1.15em; position: relative;}
.sp-navi .list01 > li li a:before { content: ""; position: absolute; left: 30px; top: 50%; margin-top: -0.5px; width: 10px; height: 1px; background-color: #544c4a;}

.header_contact .tel a { font-size: 2em; margin-bottom: 3px;}
.header_contact .fo075 { font-size: 0.8em !important;}
.header_contact .btn_area a { width: 50px; line-height: 50px; background-size: 20px auto;}


/* ------------------------
	フッター
------------------------ */

.footer .box > * { margin: auto 15px;}
.footer .box h2 img { width: auto; height: 40px;}

.footer .produce_box { padding: 5px 0px;}
.footer .produce_box img { width: 70px; height: auto;}

.pagetop { right: 15px; padding-bottom: 45px;}
.pagetop a { width: 40px; height: 40px;}
.pagetop a:after { width: 15px; height: 15px; margin: -3px 0px 0px -8px;}


@media only screen and (max-width: 480px) {
	.footer_nav.mb100-60, .footer hr.mb40 { margin-bottom: 25px !important;}
	.footer .box { display: block; text-align: center;}
	.footer .box > * { margin: auto auto 15px;}
}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.top_ttl { background-size: 40px auto; padding-bottom: 20px;}
.top_ttl h2 { font-size: 2.5em;}

/* news */
.top_news .box { display: block;}
.top_news h2 { background-size: 40px auto; font-size: 2.5em; padding-left: 50px; margin-bottom: 20px;}
.top_news dl { padding: 0px; margin-bottom: 20px;}
.top_news dd { display: block;}
.top_news dt, .top_news .category { display: inline-block; vertical-align: middle; width: auto; margin: 0px 1em 10px 0px; padding: 0px;}

.top_text { font-size: 2em;}

/* about */
.top_about .box { display: block;}
.top_about .box_inner { width: 100%; margin-bottom: 25px;}
.top_about figure { width: 100%; height: auto;}
.top_about figure .pos_ab { position: static; width: auto; max-width: 100%; height: auto;}

/* bnr */
.top_bnr li { width: 29.3333%; margin: 0px 2%;}
.top_bnr .img_box:after { top: 5px; right: -5px; bottom: -5px; left: 5px;}

/* blog */
.top_blog { padding: 50px 0px 5px;}
.top_blog:before, .top_blog:after { height: 10px;}
.top_blog .box { display: block;}
.top_blog .ttl_box { margin-bottom: 45px;}
.top_blog ul { padding-left: 0px;}
.top_blog li { width: 44%; margin: 0px 3% 40px;}
.top_blog img.pos_ab { width: auto; height: 20px; left: 10px; top: -20px;}

/* contact */
.top_contact { padding: 60px 0px;}
.top_contact li { margin: 0px 15px;}
.top_contact li:first-child { font-size: 1.2em;}
.top_contact .more_btn a span { padding: 15px; min-width: 230px;}
.top_contact .more_btn a span img { width: 20px; height: auto;}

@media only screen and (max-width: 640px) {
	.top_text { font-size: 5vw;}

	.top_bnr ul { flex-wrap: wrap;}
	.top_bnr li { width: 44%; margin: 0px 3% 20px;}
	.top_bnr li .mb30 { margin-bottom: 15px !important;}
	
	.top_contact { padding-bottom: 40px;}
	.top_contact ul { display: block;}
	.top_contact li { margin: 0px auto 20px;}
}

@media only screen and (max-width: 480px) {
	.top_bnr ul { display: block;}
	.top_bnr li { width: 100%; margin: 0px 0px 40px; padding: 0px 17%;}
}


/*------------------------------------------------------

	下層ページ

------------------------------------------------------*/

.pagettl { background-size: 35px auto; font-size: 2em; padding-bottom: 20px;}

.blog_content .heading_btmline { font-size: 1.6em; padding-bottom: 15px; margin-bottom: 30px; background-size: 12px auto;}

.more_btn a span { padding: 10px 30px 10px 20px; min-width: 200px;}
.more_btn a:after { top: 5px; right: -5px; bottom: -5px; left: 5px;}


/* ----------------------------
	固定ページテンプレート
---------------------------- */

.blog_content h2 { font-size: 1.7em;}
.blog_content h3 { font-size: 1.6em; background-size: 3px auto; padding: 0px 1em;}
.blog_content h4 { font-size: 1.5em;}

.blog_content li { background-size: 13px auto; padding-left: 20px;}

.blog_content blockquote { padding: 30px 6% 20px; margin: 50px 10px;}
.blog_content blockquote:before { left: -10px; top: -10px; right: -10px; bottom: -10px;}
.blog_content blockquote:after { left: 10px; right: 10px; top: 10px; background-size: auto 13px; height: 13px;}

.blog_content a.icon { background-size: auto 10px; padding-left: 17px;}
.blog_content a.box { background-size: auto 10px; padding: 7px 30px 7px 35px;}

.img_border { margin: 10px 10px 70px 10px;}
.img_border:before { left: -10px; top: -10px; right: -10px; bottom: -10px;}

.step_sec01 { display: block; margin-bottom: 60px;}
.step_sec01 > figure { width: 100%;}
.step_sec01 > div { width: 100%; padding-left: 65px; margin-bottom: 25px;}
.step_sec01 .num_box { width: 60px; height: 120px; border-top-right-radius: 120px; border-bottom-right-radius: 120px; padding: 35px 5px 0px 0px; left: -15px;}
.step_sec01 .num_box span { font-size: 2em;}
.step_sec01 p:last-child, .step_sec02 p:last-child { margin-bottom: 0px;}

.step_sec02 { display: block; margin-bottom: 60px;}
.step_sec02 > figure { width: 100%;}
.step_sec02 > div { width: 100%; padding-top: 0px; margin-bottom: 25px;}
.step_sec02 .num_box { padding-left: 40px; margin-bottom: 10px;}
.step_sec02 .num_box .pos_ab { left: 0px; width: 30px;}

@media only screen and (max-width: 640px) {
	.box30 { display: block; margin: auto;}
	.box30 > div { width: 100%; margin: 0px 0px 50px;}

	.box50 { display: block;}
	.box50 > div { width: 100%;}

	.blog_content .img_left, .blog_content .img_right { display: block;}
	.blog_content .img_left > figure, .blog_content .img_left > div,
	.blog_content .img_right > figure, .blog_content .img_right > div { width: 100%;}
	.blog_content .img_left > div, .blog_content .img_right > div { padding-top: 25px;}
}

