@charset "utf-8";


/* Common
------------------------------------------------------------- */

#contents_box {
	padding-top: 85px;
}

.contents_inner_box {
	font-size: 1.8rem;
	padding: 32px 30px 24px 30px;
}

#contents_box.contents_center_box {
	max-width: 888px;
	margin: 0 auto;
}



/* Navigation on Left side
------------------------------------------------------------- */

#contents_box.contents_flex_box {
	display: flex;
	max-width: 1320px;
	margin: 0 auto;
}

.contents_navi_box {
	display: block;
	width: 270px;
	margin-right: 10px;
	padding: 40px 0 20px 30px;
}

.contents_main_box {
	width: calc(100% - 280px);
}

.contents_navi_box dl {
	width: 100%;
	margin: 0;
	padding: 0;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	position: sticky;
	top: 125px;
}

.contents_navi_box dl dt {
	margin: 0;
	padding: 0 2px 8px 2px;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	border-bottom: 2px solid #000;
}

.contents_navi_box dl dd {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid #dfdfdf;
}

.contents_navi_box dl dd a {
	display: block;
	width: 100%;
	height: 45px;
	margin: 0;
	padding: 0 12px;
	font-size: 1.8rem;
	line-height: 45px;
	color: #000;
}

.contents_navi_box dl dd a:hover,
.contents_navi_box dl dd a:active,
.contents_navi_box dl dd a:focus {
	text-decoration: none;
	color: #c21632;
	background-color: #f5f5f5;
}

.contents_navi_box dl dd.current a {
	color: #c21632;
	pointer-events: none;
}



/* Footer Fix
------------------------------------------------------------- */

#contents_box {
	padding-bottom: 370px;
}

footer {
	bottom: 0;
}



/* Title
------------------------------------------------------------- */

/*h1,*/
.page_title {
	font-size: 4.9rem;
}

/*h2,*/
.section_title {
	font-size: 3.9rem;
}

/*h3,*/
.article_title {
	font-size: 3.1rem;
}

/*h4,*/
.column_title {
	font-size: 2.5rem;
}

/*h5,*/
.sub_title {
	font-size: 2.8rem;
}

/*h6,*/
.mini_title {
	font-size: 1.8rem;
}

.lead_paragraph {
	font-size: 2.8rem;
}



/* Footer
------------------------------------------------------------- */

.footer_inner {
	padding: 10px 30px;
}

.footer_logo {
	width: 220px;
	height: 45px;
}

.footer_inner address {
	min-height: 200px;
}

/*Footer Menu*/

.footer_menu_container {
	display: block;
	position: absolute;
	right: 20px;
	top: 28px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-style: normal;
}

ul.footer_menu {
	column-count: 3;
	column-fill: balance;
	font-size: 1.5rem;
	max-width: 900px;
	white-space: nowrap;
}

ul.footer_menu > li {
	break-inside: avoid !important;
}

ul.footer_menu > li:nth-child(2) {
	padding-left: 22px;
}

ul.footer_menu > li a, ul.footer_menu > li span {
	display: inline-block;
}

ul.footer_menu > li > a, ul.footer_menu > li > span {
	font-size: 1.8rem;
	font-weight: 700;
	transform: translateX(3px) translateY(-5px);
}

ul.footer_menu li {
	padding: 8px 4px;
}

ul.footer_menu > li > ul > li > ul {
	padding: 5px 0 0 15px;
	margin-bottom: -10px;
}

ul.footer_submenu {
	margin: 0;
	padding: 10px 0;
	position: absolute;
	right: 30px;
	bottom: 20px;
}

ul.footer_submenu li {
	margin-right: 0;
	margin-left: 24px;
}

ul.footer_submenu li.menu_contact,
ul.footer_submenu li.menu_partner,
ul.footer_submenu li.menu_news,
ul.footer_submenu li.menu_faq {
	display: block;
}



/* PageTop Button
------------------------------------------------------------- */

p.btn_pagetop {
	width: 70px;
	height: 70px;
	display: none;
	position: fixed;
	bottom: 70px;
	left: auto;
	right: 30px;
	z-index: 10000;
}

p.btn_pagetop a {
	opacity: 0.8;
	background-color: #faf2f2;
}

p.btn_pagetop a span {
	font-size: 1.1rem;
	color: #c21632;
}

p.btn_pagetop a::after {
	border-color: #c21632;
}

p.btn_pagetop a:hover {
	opacity: 0.9;
	background-color: #efc0c8;
}

p.btn_pagetop a:hover::after {
	border-color: #fff;
}

p.btn_pagetop a:hover span{
	color: #fff;
}







/* for Extra Large Size
-------------------------------------------------------------------------------- */
@media print, screen and (min-width:1200px) {

	/* Navigation on Left side
	------------------------------------------------------------- */

	.contents_navi_box {
		width: 330px;
	}

	.contents_main_box {
		width: calc(100% - 340px);
	}


	/* Footer Fix
	------------------------------------------------------------- */

	#contents_box {
		padding-bottom: 340px;
	}


	/* Footer
	------------------------------------------------------------- */

	.footer_inner address {
		min-height: 170px;
	}


	/*Footer Menu*/

	ul.footer_menu {
		column-count: 4;
		column-gap: 0;
		font-size: 1.6rem;
	}

	ul.footer_menu li {
		padding: 10px 4px;
	}

	ul.footer_submenu li {
		margin-left: 40px;
		font-size: 1.6rem;
	}

	/*Copyright*/

	.copyright {
		font-size: 1.6rem;
	}

}

