@charset "utf-8";



/* Common
------------------------------------------------------------- */

#contents_box {
	padding-top: 140px;
}

.contents_inner_box {
	max-width: 1280px;
	padding: 40px 40px;
	margin: 0 auto;
}

.contents_narrow_box {
	max-width: 1160px;
	padding: 40px 40px;
	margin: 0 auto;
}



/* Footer Fix
------------------------------------------------------------- */

#contents_box {
	padding-bottom: 815px;
	min-height: 100vh;
}


footer {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
}



/* PageTop Button
------------------------------------------------------------- */

p.btn_pagetop {
	display: none;
	z-index: 9000;
	width: 60px;
	height: 60px;
	margin: 0;
	position: fixed;
	bottom: 20px;
	right: 20px;
}

p.btn_pagetop a {
	display: block;
	width: 100%;
	height: 100%;
	background-color: #ccc;
	background-image: url(../img/arrow_pagetop.svg);
	background-size: contain;
	background-position: center bottom;
	background-repeat: no-repeat;
	opacity: 0.7;
	transition: background-color 0.3s;
}

p.btn_pagetop a:hover {
	text-decoration: none;
	background-color: #aaa;
}

p.btn_pagetop a span {
	display: block;
	text-align: center;
	font-size: 0;
}



/* Breadcrumb Navigation
------------------------------------------------------------- */

.bread_navi p a:last-child, .bread_navi p span:last-child {
	max-width: 24em;
}



/* PageTitle
------------------------------------------------------------- */

.pagetitle_box {
	padding: 20px 40px;
}

.pagetitle_box .page_title {
	font-size: 4rem;
}



/* Anchor Menu
------------------------------------------------------------- */

.anchor_menu_box {
	margin-top: 20px;
}


.contents_inner_box .anchor_menu_box {
	margin: 60px auto;
}

.anchor_menu_box ul {
	padding-left: 40px;
	font-size: 1.6rem;
}

.anchor_menu_box ul li {
	margin-right: 40px;
}



/* Contents Titles
------------------------------------------------------------- */

.section_title {
	margin-left: -40px;
	padding-left: 40px;
	font-size: 3.6rem;
}

.section_title > span.en {
	font-size: 1.8rem;
}

.article_title {
	font-size: 2.4rem;
}

.column_title {
	font-size: 2.2rem;
}

.sub_title {
	font-size: 2rem;
}

.mini_title {
	font-size: 1.8rem;
}



/* Details Search
------------------------------------------------------------- */

.detail_search_cont {
	padding: 40px;
}

.wrapper_gray .detail_search_cont,
.wrapper_beige .detail_search_cont,
.wrapper_blue .detail_search_cont,
.wrapper_green .detail_search_cont {
	padding: 0;
}

.wrapper_gray .detail_search_cont,
.wrapper_beige .detail_search_cont,
.wrapper_blue .detail_search_cont,
.wrapper_green .detail_search_cont {
	padding: 0;
}

.detail_search_cont dl > div {
	margin-bottom: 30px;
	padding: 30px 25px 25px 30px;
}



/* Search Floating Tab
------------------------------------------------------------- */

.search_tab_box {
	top: 140px;
}



/* Contact CTA
------------------------------------------------------------- */

.contact_cta_box .cta_title h3 {
	font-size: 2.6rem;
}

.contact_cta_box .cta_column p.cta_column_title {
	font-size: 1.6rem;
}

.contact_cta_box .cta_column p.tel,
.contact_cta_box .cta_column p.fax {
	font-size: 2.4rem;
}

.contact_cta_box .cta_column p.email {
	font-size: 2rem;
	padding-top: 1.8rem;
}

.contact_cta_box .cta_column p.form {
	font-size: 1.5rem;
	padding-top: 1.5rem;
}






/* for ExtraLargeSize
-------------------------------------------------------------------------------- */
@media print, screen and (min-width:1080px) {


	/* Footer Fix
	------------------------------------------------------------- */

	#contents_box {
		padding-bottom: 595px;
	}


}





/* for ExtraLargeSize
-------------------------------------------------------------------------------- */
@media print, screen and (min-width:1160px) {

	/* Contents Titles
	------------------------------------------------------------- */

	.contents_narrow_box .section_title {
		margin-left: calc((100vw - 1080px) / -2);
		padding-left: calc((100vw - 1080px) / 2);
	}


}