@charset "UTF-8";
/**************************
Compass Text Replacement
*/
/**************************
Inline List
*/
/**************************
Inline Block List
*/
/**************************
horizontal-list
*/
/**************************
Bullets
*/
/* simple clearfix */
/**************************
@mixin for sprite
*/
@keyframes fade-in {
	0% {
		display: none;
		opacity: 0;
	}
	1% {
		display: block;
		opacity: 0;
	}
	100% {
		display: block;
		opacity: 1;
	}
}

@keyframes fade-out {
	0% {
		display: block;
		opacity: 1;
	}
	99% {
		display: block;
		opacity: 0;
	}
	100% {
		display: none;
		opacity: 0;
	}
}

@keyframes zoom-in {
	0% {
		transform: scale(0);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes zoom-in-hover {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.1);
	}
}

@keyframes sub_menu_fade_in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: .5;
	}
}

@keyframes pop-up {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.1);
	}
}

@keyframes _on_opacity {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@keyframes slide-up {
	0% {
		transform: translateY(100%);
	}
	100% {
		transform: translateY(0);
	}
}

@keyframes go_title {
	0% {
		transform: scale(0.9);
		opacity: 0;
	}
	80% {
		transform: scale(1.1);
		opacity: 1;
	}
	90% {
		transform: scale(1.05);
		opacity: 1;
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

@keyframes go_title2 {
	0% {
		transform: scale(0.5) translateY(80%);
		opacity: 0;
	}
	100% {
		transform: scale(1) translateY(0);
		opacity: 1;
	}
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************
## Layout
*/
.root {
	width: auto;
	box-sizing: border-box;
	overflow: hidden;
}

.pc_container,
.pc_tb_container,
.container {
	width: 100%;
	max-width: 1080px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_container-relative,
.pc_tb_container-relative,
.container-relative {
	position: relative;
	top: 0;
	left: 0;
}

.pc_container-sm,
.pc_tb_container-sm,
.container-sm {
	width: 100%;
	max-width: 1080px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_container-sm2,
.pc_tb_container-sm2,
.container-sm2 {
	width: 100%;
	max-width: 1080px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_padding,
.padding {
	padding-left: 20px;
	padding-right: 20px;
}

.main_wrapper {
	display: -ms-flexbox;
	display: flex;
	padding-bottom: 150px;
}

.main_column {
	-ms-flex-order: 2;
	    order: 2;
	width: 100%;
	box-sizing: border-box;
}

.sub_column {
	-ms-flex-order: 1;
	    order: 1;
	width: 200px;
	-ms-flex-preferred-size: 200px;
	    flex-basis: 200px;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	-ms-flex-positive: 0;
	    flex-grow: 0;
	margin-right: 40px;
	box-sizing: border-box;
	overflow: hidden;
}

.main_content {
	font-size: 0.938rem;
	padding-bottom: 180px;
}

.scroll_to_top {
	right: 0;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Utility - Cosmetic

ユーティリティー設定。
このサイト専用というわけでもない共通設定。

*/
.pc_none,
.root .pc_none {
	display: none;
}

.block,
.pc_block {
	display: block;
}

.tel_link,
.tel_link-no {
	pointer-events: none;
	cursor: default;
	color: inherit;
}

.root .tel_link,
.root .tel_link:hover, .root
.tel_link-no,
.root
.tel_link-no:hover {
	text-decoration: none;
	color: inherit;
}

.sp_click,
.pc_no_click {
	pointer-events: none;
	cursor: default;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************



## Component - Base

コンポーネント設定。
各ページでよく使い回す記述。
このサイト専用の共通設定。

*/
/**************************

## - 段組設定 2列 3列 4列

PCの時だけ、中央に等間隔で余白を作り、width: 100%; を守って列になる。
ul でなくてもいい。

**2列 .pc_column2**

	<ul class="pc_column2">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**3列 .pc_column3**

	<ul class="pc_column3">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

**4列 .pc_column4**

	<ul class="pc_column4">
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
		<li>コンテンツ</li>
	</ul>

*/
.pc_column2 > *:nth-child(2n) {
	padding-bottom: 20px;
}

.pc_column2-no_mb > *:nth-child(2n) {
	padding-bottom: 0em;
}

.pc_column2 > *:last-child {
	padding-bottom: 0;
}

.pc_column3 > *:nth-child(3n) {
	padding-bottom: 20px;
}

.pc_column3-no_mb > *:nth-child(3n) {
	padding-bottom: 0em;
}

.pc_column3 > *:last-child {
	padding-bottom: 0;
}

.pc_column4 > *:nth-child(4n) {
	padding-bottom: 20px;
}

.pc_column4-no_mb > *:nth-child(4n) {
	padding-bottom: 0em;
}

.pc_column4 > *:last-child {
	padding-bottom: 0;
}

.pc_column2::before, .pc_column2::after {
	content: '';
	display: table;
}

.pc_column2::after {
	clear: both;
}

.pc_column2 > * {
	width: 50%;
	float: left;
	box-sizing: border-box;
}

.pc_column2 > *:nth-child(2n + 1) {
	clear: left;
	padding-right: 10px;
}

.pc_column2 > *:nth-child(2n) {
	padding-left: 10px;
}

.pc_column3::before, .pc_column3::after {
	content: '';
	display: table;
}

.pc_column3::after {
	clear: both;
}

.pc_column3 > * {
	width: 33.33333%;
	float: left;
	box-sizing: border-box;
}

.pc_column3 > *:nth-child(3n + 1) {
	clear: left;
	padding-right: 13px;
}

.pc_column3 > *:nth-child(3n + 2) {
	padding-left: 7px;
	padding-right: 7px;
}

.pc_column3 > *:nth-child(3n) {
	padding-left: 13px;
}

.pc_column4::before, .pc_column4::after {
	content: '';
	display: table;
}

.pc_column4::after {
	clear: both;
}

.pc_column4 > * {
	width: 25%;
	float: left;
	box-sizing: border-box;
}

.pc_column4 > *:nth-child(4n + 1) {
	clear: left;
	padding-right: 15px;
}

.pc_column4 > *:nth-child(4n + 2) {
	padding-left: 5px;
	padding-right: 10px;
}

.pc_column4 > *:nth-child(4n + 3) {
	padding-left: 10px;
	padding-right: 5px;
}

.pc_column4 > *:nth-child(4n) {
	padding-left: 15px;
}

.pc_column2_2 {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	width: 100%;
}

.pc_column2_2 > * {
	width: 360px;
	margin-right: 10px;
}

.pc_column2_2 > *:nth-child(2n) {
	margin-right: 0;
}

.pc_column2_2 > *:nth-child(2n) {
	padding-bottom: 20px;
}

.pc_column2_2 > *:last-child {
	padding-bottom: 0;
}

.set::before, .set::after {
	content: '';
	display: table;
}

.set::after {
	clear: both;
}

.set .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 340px;
	margin-left: -320px;
}

.set .fix.left {
	width: 320px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 340px;
	margin-right: -320px;
}

.set .fix.right {
	width: 320px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.set .fix > img:not(.cancel),
.set .resize > img:not(.cancel) {
	display: block;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
}

.set-2 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 240px;
	margin-left: -200px;
}

.set-2 .fix.left {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set-2 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 240px;
	margin-right: -200px;
}

.set-2 .fix.right {
	width: 200px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.set-3 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 490px;
	margin-left: -450px;
}

.set-3 .fix.left {
	width: 450px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set-3 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 490px;
	margin-right: -450px;
}

.set-3 .fix.right {
	width: 450px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.set-150 .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 190px;
	margin-left: -150px;
}

.set-150 .fix.left {
	width: 150px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set-150 .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 190px;
	margin-right: -150px;
}

.set-150 .fix.right {
	width: 150px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.footer__2 {
	position: relative;
	top: 0;
	left: 0;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Project

特定ページ専用、効果範囲が限定的な記述。
コンテンツ内容に密接で、汎用性がなく、機能の付け替えを想定していない。

*/
.gnav_sub_area {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1;
	width: 100vw;
	height: 0;
	overflow: hidden;
	box-shadow: 0 7px 8px rgba(0, 0, 0, 0.2);
}

.root .header .gnav_sub_area {
	width: 100vw;
}

.gnav_sub_area._show {
	height: auto;
	display: block;
	animation-name: fade-in;
	animation-duration: .3s;
	animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	animation-fill-mode: forwards;
}

.gnav_sub_area._leave {
	height: auto;
	display: block;
	animation-name: fade-out;
	animation-duration: .2s;
	animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	animation-fill-mode: forwards;
}

.gnav_sub {
	width: 100vw;
	min-height: 330px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	position: relative;
	top: 0;
	left: 0;
}

.gnav_sub__image {
	-ms-flex-preferred-size: 50vw;
	    flex-basis: 50vw;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	-ms-flex-positive: 0;
	    flex-grow: 0;
	background-position: center center;
	background-size: cover;
}

.gnav_sub__info {
	-ms-flex-preferred-size: 50vw;
	    flex-basis: 50vw;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	-ms-flex-positive: 0;
	    flex-grow: 0;
	background-color: #fff;
	padding: 40px 20px 20px 0;
	display: -ms-flexbox;
	display: flex;
}

.gnav_sub__title {
	display: block;
	-ms-flex-preferred-size: 150px;
	    flex-basis: 150px;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	-ms-flex-positive: 0;
	    flex-grow: 0;
}

.gnav_sub__title a {
	display: block;
}

.gnav_sub__title img {
	display: block;
	width: 50px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.gnav_sub__thumb_list li {
	margin-bottom: 20px;
}

.gnav_sub__thumb_list a {
	color: #116890;
	text-decoration: none;
	padding-left: 50px;
	position: relative;
	top: 0;
	left: 0;
	display: inline-block;
}

.gnav_sub__thumb_list a::before {
	content: '';
	display: block;
	background: url("../img/icon/arrow/link.png") 0 0 no-repeat transparent;
	background-size: 34px 12px;
	width: 34px;
	height: 12px;
	position: absolute;
	left: 0;
	top: 7px;
}

.gnav_sub__thumb_list a:hover {
	text-decoration: underline;
}

.gnav_sub__thumb_list a._disable {
	pointer-events: none;
	color: #cecece;
}

.gnav_sub__thumb_list a._disable::before {
	background-image: url("../img/icon/arrow/link_gray.png");
}

.gnav_sub__thumb_list a._disable::after {
	content: '';
	display: inline-block;
	background: url("../img/icon/comingsoon.png") 0 center no-repeat transparent;
	background-size: 80px 15px;
	width: 80px;
	height: 15px;
	position: relative;
	top: 2px;
	left: 0;
	margin-left: 1em;
}
