@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 zoom-in-hover2 {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.15);
	}
}

@keyframes sub_menu_fade_in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: .5;
	}
}

@keyframes pop-upwards {
	0% {
		transform: matrix(0.97, 0, 0, 1, 0, 12);
		opacity: 0;
	}
	20% {
		transform: matrix(0.99, 0, 0, 1, 0, 2);
		opacity: .7;
	}
	40% {
		transform: matrix(1, 0, 0, 1, 0, -1);
		opacity: 1;
	}
	70% {
		transform: matrix(1, 0, 0, 1, 0, 0);
		opacity: 1;
	}
	100% {
		transform: matrix(1, 0, 0, 1, 0, 0);
		opacity: 1;
	}
}

@keyframes pop-downwards {
	0% {
		transform: matrix(0.97, 0, 0, 1, 0, -12);
		opacity: 0;
	}
	20% {
		transform: matrix(0.99, 0, 0, 1, 0, -2);
		opacity: .7;
	}
	40% {
		transform: matrix(1, 0, 0, 1, 0, 1);
		opacity: 1;
	}
	70% {
		transform: matrix(1, 0, 0, 1, 0, 0);
		opacity: 1;
	}
	100% {
		transform: matrix(1, 0, 0, 1, 0, 0);
		opacity: 1;
	}
}

@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 header_start {
	0% {
		transform: translateY(-200px);
	}
	100% {
		transform: translateY(0);
	}
}

@keyframes gnav_sub {
	0% {
		opacity: 0;
		transform: scale(0.9) translateY(-5%);
	}
	100% {
		transform: scale(1) translateY(0);
	}
}

@keyframes header_appear {
	0% {
		top: -66px;
	}
	100% {
		top: 0;
	}
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************
## Layout
*/
.wrapper {
	min-width: 960px;
}

.root {
	min-width: 960px;
	box-sizing: border-box;
}

.root-index {
	padding-top: 120px;
}

.root-sub .main_content {
	padding-top: 200px;
}

.pc_container,
.pc_tb_container,
.container {
	width: 960px;
	min-width: 960px;
	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: 750px;
	min-width: 750px;
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
}

.pc_padding,
.padding {
	padding-left: 15px;
	padding-right: 15px;
}

.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: 1rem;
	background: rgba(255, 255, 255, 0.9);
}

.scroll_to_top {
	right: 15px;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## 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 > *:last-child {
	padding-bottom: 0;
}

.pc_column3 > *:nth-child(3n) {
	padding-bottom: 20px;
}

.pc_column3 > *:last-child {
	padding-bottom: 0;
}

.pc_column4 > *:nth-child(4n) {
	padding-bottom: 20px;
}

.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: 0px;
	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: 300px;
	margin-left: -280px;
}

.set .fix.left {
	width: 280px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 300px;
	margin-right: -280px;
}

.set .fix.right {
	width: 280px;
	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: 220px;
	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: 220px;
	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: 470px;
	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: 470px;
	margin-right: -450px;
}

.set-3 .fix.right {
	width: 450px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}

.footer {
	position: relative;
	top: 0;
	left: 0;
}

/***********************************************************************
 ***********************************************************************
 ***********************************************************************

## Project

特定ページ専用、効果範囲が限定的な記述。
コンテンツ内容に密接で、汎用性がなく、機能の付け替えを想定していない。

*/
.header {
	height: 120px;
}

.header__logo {
	width: 280px;
	height: 40px;
}

.header__logo img {
	width: 100%;
}

.header__1 {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	height: 55px;
}

.header__1__1 {
	padding-top: 12px;
}

.header__1__2 {
	padding-top: 23px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: end;
	    justify-content: flex-end;
}

.header__2 {
	padding-top: 10px;
}

.header__fontsize {
	display: -ms-flexbox;
	display: flex;
	margin-right: 10px;
}

.header__fontsize .label {
	width: 100px;
	height: 56px;
	margin-right: 5px;
}

.header__search {
	margin-right: 12px;
}

.header__buttons ul {
	display: -ms-flexbox;
	display: flex;
}

.header__buttons li + li {
	margin-left: 12px;
}

.header__buttons ._btn {
	border-radius: 5px;
	display: block;
	background-color: #57c2e1;
	height: 28px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-pack: center;
	    justify-content: center;
	-ms-flex-align: center;
	    align-items: center;
	transition: background-color 0.2s cubic-bezier(0.23, 1, 0.32, 1);
}

.header__buttons ._btn-contact {
	width: 100px;
}

.header__buttons ._btn-member {
	width: 120px;
}

.header__buttons ._btn:hover {
	background: #2091b2;
}

.header__buttons ._btn img {
	height: 28px;
}

.gnav {
	/**************************
	sub
	*/
}

.gnav__ul {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: center;
	    justify-content: center;
	position: relative;
	top: 0;
	left: 0;
}

.gnav__li {
	position: relative;
	top: 0;
	left: 0;
}

.gnav__li:nth-child(1) .gnav__a {
	animation-name: pop-downwards;
	animation-duration: .7s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	animation-delay: 0.27s;
}

.gnav__li:nth-child(2) .gnav__a {
	animation-name: pop-downwards;
	animation-duration: .7s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	animation-delay: 0.34s;
}

.gnav__li:nth-child(3) .gnav__a {
	animation-name: pop-downwards;
	animation-duration: .7s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	animation-delay: 0.41s;
}

.gnav__li:nth-child(4) .gnav__a {
	animation-name: pop-downwards;
	animation-duration: .7s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	animation-delay: 0.48s;
}

.gnav__li-1 {
	width: 190px;
}

.gnav__li-2 {
	width: 160px;
}

.gnav__li-3 {
	width: 160px;
}

.gnav__li-4 {
	width: 180px;
}

.gnav__li:not(:last-child) {
	padding-right: 25px;
}

.gnav__li:not(:last-child)::after {
	content: '';
	display: block;
	background: url("../img/gnav/line.png") 0 0 no-repeat transparent;
	background-size: 25px 35px;
	width: 25px;
	height: 35px;
	position: absolute;
	top: 5px;
	right: 0;
}

.gnav__a {
	box-sizing: border-box;
	display: block;
	width: 100%;
	box-sizing: border-box;
	opacity: 0;
	text-decoration: none;
	border-radius: 5px;
	padding-bottom: 8px;
}

.gnav__a .main,
.gnav__a .sub {
	text-indent: -119988px;
	overflow: hidden;
	text-align: left;
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.gnav__a .main img,
.gnav__a .sub img {
	margin-left: auto;
	margin-right: auto;
}

.gnav__a .main,
.gnav__a .main img {
	height: 33px;
}

.gnav__a .sub,
.gnav__a .sub img {
	height: 12px;
}

.gnav__a::after {
	content: '';
	display: block;
	height: 4px;
	width: 65px;
	background-color: #b9e9fc;
	position: absolute;
	top: 30px;
	left: 50%;
	margin-left: -32px;
	-ms-transform: scale(0);
	    transform: scale(0);
	transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

.gnav__a.active::after, .gnav__a:hover::after {
	-ms-transform: scale(1);
	    transform: scale(1);
}

.gnav__sub {
	display: none;
	position: relative;
	top: 0;
	left: 0;
	z-index: 99;
}

.gnav__sub .ext::after {
	background-image: url("/common/img/icon/ext_white.png");
}

.gnav__sub__container {
	position: relative;
	width: 370px;
	padding-top: 21px;
	top: 0;
	left: 50%;
	-ms-transform: translateX(-50%);
	    transform: translateX(-50%);
	box-sizing: border-box;
	transition: opacity .5s ease-in-out;
	z-index: 10;
}

.gnav__sub__container::before {
	content: '';
	display: block;
	background: url("../img/pc/gnav_sub_top.png") 0 0 no-repeat transparent;
	background-size: 30px 23px;
	width: 30px;
	height: 23px;
	position: absolute;
	top: 1px;
	left: 50%;
	-ms-transform: translateX(-50%);
	    transform: translateX(-50%);
	z-index: 2;
}

.gnav__sub__ul1 {
	position: absolute;
	left: 0;
	width: 100%;
	overflow: hidden;
	border: 2px solid #b9e9fc;
	background-color: #57c2e1;
	border-radius: 14px;
	padding: 0;
	box-shadow: 4px 4px 40px 0 rgba(62, 81, 94, 0.2);
	padding: 20px;
	box-sizing: border-box;
}

.gnav__sub .li1 {
	width: 100%;
}

.gnav__sub .a2 {
	padding-left: 10px;
}

.gnav__sub .a3 {
	padding-left: 20px;
}

.gnav__sub .a1,
.gnav__sub .a2 {
	vertical-align: middle;
	position: relative;
	top: 0;
	left: 0;
	box-sizing: border-box;
	display: block;
	color: #fff;
	text-decoration: none;
	border-radius: 8px;
}

.gnav__sub .a1:hover,
.gnav__sub .a2:hover {
	background-color: #b9e9fc;
}

.gnav__sub .a1 .text,
.gnav__sub .a2 .text {
	display: block;
	font-size: 0.938rem;
	line-height: 1.4;
	padding: .5ex 20px .5ex;
	position: relative;
	top: 0;
	left: 0;
	box-sizing: border-box;
}

.gnav__sub .a1 .text::before,
.gnav__sub .a2 .text::before {
	content: '';
	display: block;
	background: url("../img/icon/arrow/white2.png") 0 0 no-repeat transparent;
	background-size: 7px 7px;
	width: 7px;
	height: 7px;
	margin-right: 2px;
	position: absolute;
	top: 16px;
	left: 7px;
	margin-top: -4px;
}

.gnav__sub .a1 .text .gnav_small,
.gnav__sub .a2 .text .gnav_small {
	font-size: 95%;
}

.gnav__sub .a1 .text .gnav_block,
.gnav__sub .a2 .text .gnav_block {
	display: block;
}

.gnav__sub .a1 .cell,
.gnav__sub .a2 .cell {
	display: block;
}

.gnav__sub-show {
	display: block;
}

.gnav__sub-show .anime {
	animation-name: gnav_sub;
	animation-duration: .3s;
	animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	animation-fill-mode: forwards;
}

.fontsize {
	width: 60px;
	height: 28px;
	position: relative;
	top: 0;
	left: 0;
	overflow: hidden;
}

@media all and (-ms-high-contrast: none) {
	.fontsize {
		/* IE11以上 */
		width: 66px;
	}
}

.fontsize ul {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: end;
	    align-items: flex-end;
}

.fontsize ul li {
	width: 28px;
	-ms-flex-preferred-size: 28px;
	    flex-basis: 28px;
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	-ms-flex-positive: 0;
	    flex-grow: 0;
}

.fontsize__a {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-pack: center;
	    justify-content: center;
	-ms-flex-align: center;
	    align-items: center;
	border-radius: 14px;
	border: 1px solid #b9e9fc;
	color: #b9e9fc;
	line-height: 1;
}

.fontsize__a-s {
	width: 26px;
	height: 26px;
}

.fontsize-small .fontsize__a-s {
	background-color: #b9e9fc;
	color: #fff;
}

.fontsize__a-l {
	width: 26px;
	height: 26px;
}

.fontsize-large .fontsize__a-l {
	background-color: #b9e9fc;
	color: #fff;
}

.fontsize__a:hover {
	background-color: #b9e9fc;
	color: #fff;
}

.fontsize__a img {
	height: 26px;
}

.set-magazine .resize.right {
	width: 100%;
	box-sizing: border-box;
	float: right;
	padding-left: 390px;
	margin-left: -350px;
}

.set-magazine .fix.left {
	width: 350px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: left;
}

.set-magazine .resize.left {
	width: 100%;
	box-sizing: border-box;
	float: left;
	padding-right: 390px;
	margin-right: -350px;
}

.set-magazine .fix.right {
	width: 350px;
	position: relative;
	top: 0;
	left: 0;
	z-index: 2;
	float: right;
}
