@charset "UTF-8";









/****************************
      sp
*****************************/
.sp {
	display: none !important;
}





/****************************
      wrapper
*****************************/

.wrapper {
	max-width: 1800px;
}





/****************************
      home header
*****************************/

.not_single header {
	width: 100%;
	background: #f4f4f4;
	padding-bottom: 45px;
	position: relative;
}

.not_single header h1 {
	width: 152px;
	margin: 0 auto;
	padding-top: 33px;
}

.not_single header h1 img {
	width: 152px;
	height: auto;
}

.not_single header h1 a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.not_single header h1 a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.not_single header ul.filter {
	width: 660px;
	margin: 35px auto 0;
	list-style: none;
}

.not_single header ul.filter li {
	width: 25%;
	float: left;
	color: #2d2d2d;
	font-size: 12px;
	line-height: 1;
	text-align: center;
	letter-spacing: 0.005em;
}

.not_single header ul.filter li a {
	display: block;
	padding: 7px 0 9px;
	color: #2d2d2d;
	text-decoration: none;
	transition: all .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.not_single header ul.filter li.current_parent a {
	color: #fff;
	background: #838383;
}

.not_single header ul.filter li a:hover {
	color: #fff;
	background: #838383;
	transition: all .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}





.sns_area {
	list-style: none;
	/* width: 52px; */
	position: absolute;
	bottom: 15px;
	right: 20px;
	width: 82px;
}

.sns_area li {
	width: 22px;
	float: left;
	margin-right: 8px;
}

.sns_area li:last-child {
	margin-right: 0;
}

.sns_area li img {
	width: 22px;
	height: auto;
}

.sns_area li a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.sns_area li a:hover {
	opacity: 0.8;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}














/****************************
     home_slide_area
*****************************/

.home_slide_area {
	position: relative;
}

.home_slide_area ul {
	list-style: none;
}

.home_slide_area ul li img {
	width: 100%;
}

.home_slide_area ul li a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.home_slide_area ul li a:hover {
	opacity: 0.9;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

/* slide_button */
.slide_button {
	position: absolute;
	top: 50%;
	margin-top: -10px;
	width: 20px;
	height: 20px;
}

.slide_next {
	right: 0;
}

.slide_prev {
	left: 0;
}

.slide_button a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.slide_button a:hover {
	opacity: 0.8;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.slide_button img {
	width: 100%;
	height: auto;
}





/****************************
      home footer
*****************************/

.not_single footer {
	padding: 120px 0 60px;
	background: #f4f4f4;
}

/* copy */
.not_single .copy {
	color: #2d2d2d;
	font-size: 12px;
	line-height: 1;
	font-weight: 200;
	letter-spacing: 0.025em;
	text-align: center;
}


/****************************
      home footer
*****************************/

.not_single footer {
	padding: 120px 0 60px;
	background: #f4f4f4;
}

/* copy */
.not_single .copy {
	color: #2d2d2d;
	font-size: 12px;
	line-height: 1;
	font-weight: 200;
	letter-spacing: 0.025em;
	text-align: center;
}

.mb15 {
	margin-bottom: 15px;
}

.not_single .copy #teconsent a,
.not_single .copy #teconsent a:link,
.not_single .copy #teconsent a:hover {
	color: #0000ee;
	text-decoration: underline;
}
.not_single .copy #teconsent a:visited,
.not_single .copy #teconsent a:active {
	color: #551a8b;
}





/****************************
      single header
*****************************/

.single header {
	width: 100%;
	height: 96px;
	background: #f4f4f4;
}

.single header h1 {
	width: 152px;
	margin: 0 auto;
	padding-top: 33px;
}

.single header h1 img {
	width: 152px;
	height: auto;
}

.single header h1 a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.single header h1 a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}





/****************************
      single footer
*****************************/

.single footer {
	margin-top: 50px;
/*	padding: 0px 0 60px; */
	background: #f4f4f4;
}

.single .footer_inner {
	width: 912px;
	margin: 0 auto;
}

.single .footer_inner h3 {
	text-align: center;
	color: #2d2d2d;
	font-size: 19px;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 0.025em;
}

.single .footer_inner h3:nth-of-type(2) {
	margin-top: 80px;
}

.single .footer_thumb_area {
	margin-top: 30px;
}

.single .footer_thumb_box {
	width: 288px;
	float: left;
	margin-right: 24px;
}

.single .footer_thumb_box figure img {
	max-width: 100%;
	height: auto;
}

.single .footer_thumb_box:last-child {
	margin-right: 0;
}

.single .footer_thumb_box figure a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.single .footer_thumb_box figure a:hover {
	opacity: 0.8;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.single .footer_thumb_box h4 {
	margin: 8px 2px 0;
	color: #2d2d2d;
	font-size: 14px;
	line-height: 1.5;
	font-weight: 400;
	letter-spacing: 0.025em;
}

.single .footer_thumb_box h4 a {
	color: #2d2d2d;
	text-decoration: none;
	background: url(./../images/icon_arrow_link_black.png) no-repeat right 0px top 49%;
	background-size: 8px auto;
	padding-right: 14px;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.single .footer_thumb_box h4 a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.single .copy #teconsent a,
.single .copy #teconsent a:link,
.single .copy #teconsent a:hover {
	color: #0000ee;
	text-decoration: underline;
}
.single .copy #teconsent a:visited,
.single .copy #teconsent a:active {
	color: #551a8b;
}


/* back_index */
.single .back_index {
	margin-top: 210px;
	color: #2d2d2d;
	font-size: 17px;
	line-height: 1;
	font-weight: 200;
	letter-spacing: 0.025em;
	text-align: center;
}

.single .back_index a {
	color: #2d2d2d;
	background: url(./../images/icon_arrow_back.png) no-repeat 0 4px;
	background-size: 10px auto;
	padding-left: 18px;
	text-decoration: none;
	border-bottom: #2d2d2d 1px solid;
	padding-bottom: 5px;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.single .back_index a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

/* copy */
.single .copy {
	color: #2d2d2d;
	font-size: 12px;
	line-height: 1;
	font-weight: 200;
	letter-spacing: 0.025em;
	text-align: center;
}

.mt120 {
	margin-top: 10px;
}

/* back_button */
.single .back_button {
	position: fixed;
	top: 300px;
	left: 0;
	/*display: none;*/
	/*opacity: 0;*/
}

.single .back_button a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.single .back_button a:hover {
	opacity: 0.8;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}





/****************************
      visual_area
*****************************/

.visual_area {
	width: 100%;
	height: 715px;
}





/****************************
      main_area
*****************************/

.main_area {
	width: 912px;
	margin: 45px auto 0;
}





/****************************
      article
*****************************/

/* article_title_area */
.article_title_area {
	position: relative;
}

.article_title_area h2 {
	color: #2d2d2d;
	font-size: 31px;
	line-height: 1.4;
	margin-right: 100px;
	letter-spacing: 0.025em;
}

.article_title_area ul {
	list-style: none;
	/* width: 52px; */
	position: absolute;
	bottom: 6px;
	right: 0;
	width: 82px;
}

.article_title_area ul li {
	width: 22px;
	float: left;
	margin-right: 8px;
}

.article_title_area ul li:last-child {
	margin-right: 0;
}

.article_title_area ul li img {
	width: 22px;
	height: auto;
}

.article_title_area ul li a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.article_title_area ul li a:hover {
	opacity: 0.8;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.article_category {
	margin-top: 20px;
	color: #2d2d2d;
	font-size: 14px;
	line-height: 1.6;
	font-weight: 200;
	letter-spacing: 0.005em;
}

.article_category a {
	color: #2d2d2d;
	text-decoration: none;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.article_category a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}





/****************************
      component
*****************************/

.component {
	margin-top: 40px;
}

.component:after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.component.col_02 .text,
.component.col_02 .image,
.component.col_02 .blank {
	width: 430px;
}

.col_02_left {
	float: left;
}

.col_02_right {
	float: right;
}

.component.col_02 .text {
	margin-top: -5px;
}

.component.col_06 {
	display: flex;
	justify-content: space-between;
}

.component.col_06 .image {
	width: calc(100% / 6.5);
}

.component.col_06 .image img {
	width: 100%;
	height: 92.56px;
	object-fit: cover;
}

.component .text h1 { font-weight: 400; }
.component .text h2 { font-weight: 400; }
.component .text h3 { font-weight: 400; }
.component .text h4 { font-weight: 400; }
.component .text h5 { font-weight: 400; }
.component .text h6 { font-weight: 400; }
.component .text p { font-weight: 200; }
.component .text li { font-weight: 200; }

.component .text h1,
.component .text h2,
.component .text h3,
.component .text h4,
.component .text h5,
.component .text h6,
.component .text p {
	color: #2d2d2d;
	font-size: 17px;
	line-height: 1.7;
	margin-bottom: 1em;
}

.component .text li {
	color: #2d2d2d;
	font-size: 17px;
	line-height: 1.7;
}

.component .text h1,
.component .text h2,
.component .text h3,
.component .text h4,
.component .text h5,
.component .text h6 {
	letter-spacing: 0.025em;
}

.component .text p,
.component .text li {
	letter-spacing: 0.005em;
}

.component .text ul,
.component .text ol {
	padding-left: 1.5em;
	margin-bottom: 1em;
}

.component .text h1:last-child,
.component .text h2:last-child,
.component .text h3:last-child,
.component .text h4:last-child,
.component .text h5:last-child,
.component .text h6:last-child,
.component .text p:last-child,
.component .text ul:last-child,
.component .text ol:last-child {
	margin-bottom: 0;
}

.component .text p a,
.component .text li a {
	color: #2d2d2d;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.component .text p a:hover,
.component .text li a:hover {
	opacity: 0.6;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.component .image {
	text-align: center;
}

.component .image a {
	display: block;
	transition: opacity .15s cubic-bezier(0.47, 0, 0.745, 0.715);
}

.component .image a:hover {
	opacity: 0.85;
	transition: opacity .15s cubic-bezier(0.39, 0.575, 0.565, 1);
}

.component .image .caption {
	margin-top: 8px;
	color: #2d2d2d;
	font-size: 12px;
	line-height: 1.6;
	font-weight: 300;
	text-align: center;
	letter-spacing: 0.005em;
}

.component.col_01 .image img {
	max-width: 912px;
	height: auto;
}

.component.col_02 .image img {
	max-width: 430px;
	height: auto;
}





/****************************
      truste
*****************************/
.truste-banner {
	word-break: initial;
}


/****************************
      error
*****************************/

.error404 .main_area,
.error404 footer {
	margin-top: 80px;
}

.error404 footer {
	padding-top: 60px;
}