@charset "utf-8";

/*----- フォント設定 */
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,100..900;1,100..900&display=swap');



/*-------------------------------
	変数設定
-------------------------------*/

:root{

	/*----- コンテンツ幅 */
	--maxwidth: 114rem;
	--subwidth: 96rem;

	/*----- 余白 */
	--padding-topbottom: 15rem;
	--padding-leftright: 2.5rem;

	/*----- 文字 */
	/* 書体 */
	--font-family: "Zen Kaku Gothic New", sans-serif;
	--en1: "Archivo", sans-serif;
	/* 文字サイズ */
	--font-main-size-number: 1.4;
	--font-main-size: calc(var(--font-main-size-number) * 1rem);

	/* 行間 */
	--letter-main-height: calc(2.8 / var(--font-main-size-number));

	/*----- 色設定 */
	--maincolor: #002e4e;
	--subcolor: #faa;
	--blackcolor: #1a1a1a;
	--graycolor: #ccc;

	/*----- その他設定 */
	--transition: .3s all cubic-bezier(0.1, 0.7, 0.4, 1);
	--opacity: .6;

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	:root{
			
		/*----- コンテンツ幅 */
		--maxwidth: 100%;
		--subwidth: 100%;

		/*----- 余白 */
		--padding-topbottom: 20rem;
		--padding-leftright: 3rem;

		/* 文字サイズ */
		--font-main-size-number: 2.6;
		--font-main-size: calc(var(--font-main-size-number) * 1rem);

		/* 行間 */
		--letter-main-height: calc(((var(--font-main-size-number) - .1) * 2) / var(--font-main-size-number));

	}

}


/*-------------------------------
	基本設定
-------------------------------*/

*,
*::before,
*::after{
	box-sizing: border-box;
	line-height: var(--letter-main-height);
	letter-spacing: .1em;
	word-wrap: break-word;
}
html{
	font-size: 62.5%;
	margin-top: 0 !important;
}
body{
	opacity: 0;
	width: 100%;
	font-size: var(--font-main-size);
	letter-spacing: .1em;
	font-weight: 400;
	-webkit-text-size-adjust: 100%;
	color: var(--blackcolor);
	/* font-family: '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif; */
	font-family: var(--font-family);
}

/*----- 画像関連 */
img{
	height: auto;
	vertical-align: bottom;
}

/* SVG表示されないとき */
.svg{
	line-height: 1;
	display: block;
}
.svg img{
	display: block;
	width: 100%;
	height: auto;
	line-height: 1;
}

/*----- ホバー系 */
a,
.a{
	transition: var(--transition);
}
*:not(.not-a) > a:hover,
*:not(.not-a) > .a:hover{
	opacity: var(--opacity);
}

/*----- コンテンツ */
.sec{
	/* padding-top: var(--padding-topbottom); */
	padding-bottom: var(--padding-topbottom);
}
.sec:first-child{
	padding-top: 0;
}
.sec:last-child{
	padding-bottom: 0;
}
.main{
	padding-top: 13.5rem;
	padding-bottom: 34.5rem;
	display: block;
}

@media screen and (min-width:769px) , print{

	a[href^="tel:"]{
		pointer-events: none;
	}

	/*----- コンテンツ */
	.fullwidth{
		width: 100%;
		padding-left: var(--padding-leftright);
		padding-right: var(--padding-leftright);
		margin-left: auto;
		margin-right: auto;
	}
	.maxwidth{
		width: 100%;
		max-width: calc(var(--maxwidth) + (var(--padding-leftright) * 2));
		padding-left: var(--padding-leftright);
		padding-right: var(--padding-leftright);
		margin-left: auto;
		margin-right: auto;
	}
	.subwidth{
		width: 100%;
		max-width: calc(var(--subwidth) + (var(--padding-leftright) * 2));
		padding-left: var(--padding-leftright);
		padding-right: var(--padding-leftright);
		margin-left: auto;
		margin-right: auto;
	}
	.maxwidth .subwidth{
		max-width: var(--subwidth);
		padding-left: 0;
		padding-right: 0;
	}

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	html{
		font-size: 1.333333vw;
	}
	body{
		min-width: 100%;
		font-size: var(--font-main-size);
	}

	/*----- コンテンツ */
	.fullwidth{
		width: 100%;
		padding-left: var(--padding-leftright);
		padding-right: var(--padding-leftright);
	}
	.sp_maxwidth{
		width: 100%;
		padding-left: var(--padding-leftright);
		padding-right: var(--padding-leftright);
	}

	.sec{
		/* padding-top: var(--padding-topbottom); */
		padding-bottom: var(--padding-topbottom);
	}
	.main{
		padding-top: 13.5rem; /* ★ */
		padding-bottom: 20rem;
	}

}



/*-------------------------------
	ヘッダー
-------------------------------*/

.header{
	transition: var(--transition);
	width: 100%;
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	z-index: 9900;
}
.header *{
	color: #fff;
}
.header__inner{
	padding-top: 2.4rem;
	padding-bottom: 2.4rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.header-logo{
	width: 20rem;
	position: relative;
	z-index: 6000;
}
.header-logo a{
	display: block;
	position: relative;
}
.header-logo img{
	transition: var(--transition);
	width: 100%;
}
.header-logo img:nth-of-type(2){
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	opacity: 0;
}

/*----- ナビ */
.header-nav{
	width: calc(100% - 20rem);
}
.header-nav__inner{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
.header-nav__item{
	margin-right: 4.8rem;
}
.header-nav__item > a,
.header-nav__item > span{
	transition: var(--transition);
	font-size: 1.8rem;
	height: 5rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	cursor: pointer;
	position: relative;
	z-index: 6000;
	opacity: 1 !important;
}
.header-nav__item > a::before,
.header-nav__item > span::before{
	transition: transform .3s cubic-bezier(0.1, 0.7, 0.4, 1);
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #fff;
	transform: scaleX(0);
	transform-origin: right;
	position: absolute;
	bottom: .5rem;
}
.header-nav__item > a:hover::before,
.header-nav__item > span:hover::before{
	transform: scaleX(1);
	transform-origin: left;
}
.header-nav__item > span::after{
	content: "＋";
	display: block;
	font-size: 1.2rem;
	padding-top: .4rem;
	line-height: 1;
}
.header-nav-child{
	transition: var(--transition);
	width: 100%;
	padding-top: 9.8rem;
	padding-bottom: 4.6rem;
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	z-index: 4000;
	background: rgba(255,255,255,.9);
	clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
	height: 0;
}
.header-nav__item:has(.header-nav-child):hover > span{
	color: var(--blackcolor);
}
.header-nav__item:has(.header-nav-child):hover .header-nav-child{
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	height: auto;
}
.header-nav-child *{
	color: var(--blackcolor);
}
.header-nav-child__inner{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.header-nav-child__title{
	width: 28.5rem;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	flex-direction: column;
}
.header-nav-child__title__en{
	font-family: var(--en1);
	font-size: 4.2rem;
	margin-bottom: .8rem;
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1;
	display: block;
}
.header-nav-child__title__jp{
	line-height: 1;
	font-weight: 500;
	display: block;
}
.header-nav-child__list{
	width: calc(100% - 28.5rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.header-nav-child__list__item{
	width: calc(100% / 3);
}
.header-nav-child__list__item a{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	opacity: 1 !important;
}
.header-nav-child__list__item__image{
	width: 10rem;
	overflow: hidden;
}
.header-nav-child__list__item__image img{
	transition: var(--transition);
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.header-nav-child__list__item a:hover .header-nav-child__list__item__image img{
	transform: scale(1.1);
}
.header-nav-child__list__item__title{
	width: calc(100% - 10rem);
	padding-left: 1.6rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
}
.header-nav-child__list__item__title__en{
	font-family: var(--en1);
	font-size: 2.4rem;
	margin-bottom: .8rem;
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1;
	display: block;
}
.header-nav-child__list__item__title__jp{
	font-weight: 500;
	line-height: 1;
	display: block;
}
.header-nav__button{
	width: 16rem;
}
.header-nav__button a{
	width: 100%;
	height: 5rem;
	border-radius: 2.5rem;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: .05em;
	border: 1px solid #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 5000;
	overflow: hidden;
	opacity: 1 !important;
}
.header-nav__button a::before{
	transition: transform .3s cubic-bezier(0.1, 0.7, 0.4, 1);
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	position: absolute;
	left: 0;
	top: 0;
	z-index: -1;
	transform: scaleX(0);
	transform-origin: right;
}
.header-nav__button a:hover{
	color: var(--blackcolor);
}
.header-nav__button a:hover::before{
	transform: scaleX(1);
	transform-origin: left;
}
.header-copyright{
	display: none;
}

/*----- 固定 */
.header.on .header__inner{
	background: rgba(255,255,255,.9);
}
.header.on *{
	color: var(--blackcolor);
}
.header.on .header-logo img:nth-of-type(1){
	opacity: 0;
}
.header.on .header-logo img:nth-of-type(2){
	opacity: 1;
}
.header.on .header-nav__item > a::before,
.header.on .header-nav__item > span::before{
	background: var(--blackcolor);
}
.header.on .header-nav-child{
	background: #fff;
}
.header.on .header-nav__button a{
	border: 1px solid var(--blackcolor);
}
.header.on .header-nav__button a:hover{
	color: #fff;
}
.header.on .header-nav__button a::before{
	background: var(--blackcolor);
}

.header:has(.header-nav__item.-has:hover) *{
	color: var(--blackcolor);
}
.header:has(.header-nav__item.-has:hover) .header-logo img:nth-of-type(1){
	opacity: 0;
}
.header:has(.header-nav__item.-has:hover) .header-logo img:nth-of-type(2){
	opacity: 1;
}
.header:has(.header-nav__item.-has:hover) .header-nav__item > a::before,
.header:has(.header-nav__item.-has:hover) .header-nav__item > span::before{
	background: var(--blackcolor);
}
.header:has(.header-nav__item.-has:hover) .header-nav-child{
	background: #fff;
}
.header:has(.header-nav__item.-has:hover) .header-nav__button a{
	border: 1px solid var(--blackcolor);
}
.header:has(.header-nav__item.-has:hover) .header-nav__button a:hover{
	color: #fff;
}
.header:has(.header-nav__item.-has:hover) .header-nav__button a::before{
	background: var(--blackcolor);
}

@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	.header *{
		color: var(--blackcolor);
	}
	.header__inner{
		height: 12rem;
		padding-top: 0;
		padding-bottom: 0;
	}
	.header-logo{
		width: 30rem;
		position: relative;
		z-index: 9000;
	}
	
	/*----- ナビ */
	.header-nav{
		width: 100%;
		position: fixed;
		left: 0;
		top: 0;
		right: 0;
		bottom: 0;
		padding: 17.5rem 7.5rem 6.5rem;
		background: #fff;
		overflow: auto;
		display: none;
	}
	.header-nav__inner{
		padding-left: 1rem;
		padding-right: 1rem;
		flex-direction: column;
		align-items: flex-start;
	}
	.header-nav__item{
		margin-right: 0;
	}
	.header-nav__item:not(:last-child){
		margin-bottom: 4.5rem;
	}
	.header-nav__item > a,
	.header-nav__item > span{
		font-size: 4.2rem;
		height: auto;
		letter-spacing: .052em;
		font-weight: 700;
	}
	.header-nav__item > a::before,
	.header-nav__item > span::before{
		display: none;
	}
	.header-nav__item > span::after{
		display: none;
	}
	.header-nav-child{
		width: 100%;
		padding-top: 4.5rem;
		padding-bottom: 0;
		position: static;
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
		height: auto;
		background: none;
	}
	.header-nav-child__inner{
		flex-direction: column;
	}
	.header-nav-child__title{
		display: none;
	}
	.header-nav-child__list{
		width: 100%;
		flex-direction: column;
	}
	.header-nav-child__list__item{
		width: 100%;
	}
	.header-nav-child__list__item:not(:last-child){
		margin-bottom: 4rem;
	}
	.header-nav-child__list__item__image{
		display: none;
	}
	.header-nav-child__list__item__title{
		width: 100%;
		padding-left: 0;
	}
	.header-nav-child__list__item__title__en{
		display: none;
	}
	.header-nav-child__list__item__title__jp{
		font-size: 2.4rem;
		font-weight: 400;
	}
	.header-nav__button{
		width: 36rem;
		margin-bottom: 8rem;
		margin-top: 3rem;
	}
	.header-nav__button a{
		border: 2px solid var(--blackcolor);
		height: 11rem;
		border-radius: 5.5rem;
		font-size: 4.2rem;
		letter-spacing: .025em;
		font-weight: 700;
	}
	.header-nav__button a::before{
		display: none;
	}
	.header-copyright{
		font-size: 1.8rem;
		letter-spacing: .1em;
		display: block;
	}

	/*----- ハンバーガー */
	.menu-button {
		width: 14rem;
		height: 12rem;
		padding: 5rem 3rem;
		box-sizing: border-box;
		display: block !important;
		z-index: 9990;
		cursor: pointer;
		position: fixed;
		right: 0;
		top: 0;
	}
	.menu-button i{
		background: transparent;
		display: block;
		width: 100%;
		height: 2px;
		-webkit-transition: background 0.5s;
		transition: background 0.5s;
		position: relative;
		left: 0px;
		top: calc(1rem - 1px);
	}
	.menu-button i::before,
	.menu-button i::after{
		background: #fff;
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		position: absolute;
		-webkit-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		transform: rotate(0deg);
		-webkit-transition: all 0.3s !important;
		transition: all 0.3s !important;
	}
	.menu-button i::before{
		-webkit-transform: translateY(calc(1rem - 1px));
		-ms-transform: translateY(calc(1rem - 1px));
		transform: translateY(calc(1rem - 1px));
	}
	.menu-button i::after{
		-webkit-transform: translateY(calc(-1rem + 1px));
		-ms-transform: translateY(calc(-1rem + 1px));
		transform: translateY(calc(-1rem + 1px));
	}
	.is_open i{
		background: transparent;
	}
	.is_open i::after{
		background: var(--blackcolor);
		transform:translateY(0px) rotate(-15deg);
	}
	.is_open i::before{
		background: var(--blackcolor);
		transform:translateY(0px) rotate(15deg);
	}
	header:has(.is_open) .header-logo img:nth-of-type(1){
		opacity: 0;
	}.header:has(.is_open) .header-logo img:nth-of-type(2){
		opacity: 1;
	}
	
	/*----- 固定 */
	.header.on .header-nav-child{
		background: none;
	}
	.header.on .header-nav__button a{
		border: 2px solid var(--blackcolor);
	}
	.header.on .header-nav__button a:hover{
		color: var(--blackcolor);
	}
	.header.on .menu-button i::before,
	.header.on .menu-button i::after{
		background: var(--blackcolor);
	}

}



/*-------------------------------
	フッター
-------------------------------*/

.footer{
	background-color: var(--maincolor);
	padding-top: 52rem;
	position: relative;
	z-index: 5000;
}
.footer::before{
	content: "";
	display: block;
	width: 100%;
	height: 57.5rem;
	background-image: url(../images/common/bg_footer.png);
	background-image: image-set(url(../images/common/bg_footer.png) 1x, url(../images/common/bg_footer@2x.png) 2x);
	background-size: cover;
	background-position: bottom center;
	background-repeat: no-repeat;
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	z-index: -1;
}

/*----- お問い合わせ */
.footer-contact{
	position: relative;
	z-index: 5000;
}
.footer-contact{
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	transform: translateY(-50%);
}
.footer-contact a{
	border: 1px solid var(--graycolor); 
	width: 100%;
	height: 28rem;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
	opacity: 1 !important;
}
.footer-contact__title{
	text-align: center;
}
.footer-contact__title__en{
	font-family: var(--en1);
	font-size: 6rem;
	letter-spacing: .025em;
	font-weight: 700;
	line-height: 1;
	display: block;
}
.footer-contact__title__en span{
	letter-spacing: .025em;
	line-height: 1;
	display: block;
}
.footer-contact__title__jp{
	color: var(--blackcolor);
	font-size: 1.6rem;
	margin-top: 1.6rem;
	font-weight: 700;
	line-height: 1;
	display: block;
}

/*----- フッター */
.footer__inner{
	padding-bottom: 10rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.footer-data{
	width: 27rem;
}
.footer-logo{
	width: 24rem;
	margin-bottom: 4rem;
}
.footer-logo img{
	width: 100%;
}
.footer-data{
	color: #fff;
}
.footer-data__tel a{
	color: #fff;
}

/* ナビ */
.footer-nav{
	width: calc(100% - 27rem);
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.footer-nav *{
	color: #fff;
}
.footer-nav__inner{
	max-width: calc(100% / 3);
}
.footer-nav__inner-wrap{
	max-width: calc((100% / 3) * 2);
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}
.footer-nav__inner-wrap:not(:last-child){
	margin-right: 11.5rem;
}
.footer-nav__inner-wrap .footer-nav__inner{
	max-width: calc(100% / 2);
}
.footer-nav__inner:not(:last-child){
	margin-right: 11.5rem;
}
.footer-nav__list{
	line-height: 1;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	flex-direction: column;
}
.footer-nav__list__item{
	display: inline-block;
}
.footer-nav__list__item:not(:last-child){
	margin-bottom: 3.2rem;
}
.footer-nav__list__item > a,
.footer-nav__list__item > span{
	font-size: 2.4rem;
	letter-spacing: .025em;
	font-weight: 700;
	line-height: 1;
	display: block;
}
.footer-nav__list__item.-small > a{
	font-size: 1.6rem;
}
.footer-nav__child{
	margin-top: 2.5rem;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	flex-direction: column;
}
.footer-nav__child__item{
	display: inline-block;
}
.footer-nav__child__item:not(:last-child){
	margin-bottom: 2.6rem;
}
.footer-nav__child__item > a{
	line-height: 1;
	display: block;
}

/* 最下部 */
.footer-bottom{
	width: 100%;
	background: #fff;
}
.footer-bottom__inner{
	height: 15.8rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.footer-bottom__copyright{
	font-size: 1rem;
	letter-spacing: .01em;
	line-height: 1;
}
.footer-gotop{
	width: 7.4rem;
}
.footer-gotop a{
	display: block;
}
.footer-gotop img{
	width: 100%;
}

@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	.footer{
		background-color: var(--maincolor);
		padding-top: 0;
	}
	.footer::before{
		top: 22rem;
	}
	
	/*----- お問い合わせ */
	.footer-contact{
		position: static;
		transform: translateY(0);
	}
	.footer-contact a{
		border: 2px solid var(--graycolor);
		border-left: none;
		border-right: none;
		height: 30rem;
	}
	.footer-contact__title__en{
		font-size: 7.4rem;
	}
	.footer-contact__title__jp{
		font-size: 2.8rem;
		margin-top: 1rem;
	}
	
	/*----- フッター */
	.footer__inner{
		padding-top: 29rem;
		padding-bottom: 8.5rem;
		flex-direction: column-reverse;
	}
	.footer-data{
		width: 100%;
	}
	.footer-logo{
		width: 30rem;
		margin-bottom: 4.5rem;
		margin-left: auto;
		margin-right: auto;
	}
	.footer-data__address{
		text-align: center;
	}
	.footer-data__tel{
		text-align: center;
	}
	
	/* ナビ */
	.footer-nav{
		width: 100%;
		margin-bottom: 17.5rem;
		padding-left: calc(10rem - var(--padding-leftright));
		padding-right: calc(10rem - var(--padding-leftright));
		justify-content: space-between;
	}
	.footer-nav__inner:not(:last-child){
		margin-right: 0;
	}
	.footer-nav__inner-wrap .footer-nav__inner:not(:last-child){
		margin-bottom: 4.5rem;
	}
	.footer-nav__inner-wrap{
		flex-direction: column;
	}
	.footer-nav__inner-wrap:not(:last-child){
		margin-right: 0;
	}
	.footer-nav__inner-wrap .footer-nav__inner{
		max-width: 100%;
	}
	.footer-nav__list__item:not(:last-child){
		margin-bottom: 5rem;
	}
	.footer-nav__list__item > a,
	.footer-nav__list__item > span{
		font-size: 3.2rem;
	}
	.footer-nav__list__item.-small > a{
		font-size: 2.6rem;
	}
	.footer-nav__child{
		margin-top: 3.5rem;
	}
	.footer-nav__child__item:not(:last-child){
		margin-bottom: 3.5rem;
	}
	.footer-nav__child__item a{
		font-size: 2.6rem;
	}
	
	/* 最下部 */
	.footer-bottom__inner{
		padding-top: 7.5rem;
		padding-bottom: 6.5rem;
		height: auto;
		flex-direction: column-reverse;
	}
	.footer-bottom__copyright{
		font-size: 1.8rem;
		letter-spacing: .1em;
	}
	.footer-gotop{
		width: 9rem;
		margin-bottom: 6.5rem;
	}

}



/*-------------------------------
	キービジュアル
-------------------------------*/

.Keyvisual{
	background: var(--maincolor);
	width: 100%;
	padding-top: 16rem;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-start;
	position: relative;
	z-index: 5000;
}
.Keyvisual::before{
	content: "";
	display: block;
	width: 100%;
	height: calc(100% - 20rem);
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	z-index: -1;
	background: rgb(255,255,255);
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.196516106442577) 100%);
}
.Keyvisual:not(:has(.Keyvisual__image))::before{
	height: 100%;
}
.Keyvisual:has(.Keyvisual__image)::after{
	content: "";
	display: block;
	width: 100%;
	height: 20rem;
	background: #fff;
	position: absolute;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: -1;
}
.Keyvisual__inner{
	padding-bottom: 2.8rem;
}
.Keyvisual__title__en{
	font-family: var(--en1);
	font-size: 7rem;
	margin-bottom: 1.5rem;
	font-weight: 700;
	letter-spacing: .025em;
	line-height: 1;
	display: block;
	color: #fff;
	position: relative;
}
.Keyvisual__title__en span{
	line-height: 1;
	letter-spacing: .025em;
	padding-bottom: .25rem;
	display: block;
}
.Keyvisual__title__jp{
	font-size: 1.8rem;
	letter-spacing: .1em;
	font-weight: 700;
	line-height: 1;
	display: block;
	color: #fff;
}
.Keyvisual__image{
	transition: var(--transition);
	transition-delay: .3s;
	transition-duration: .9s;
	width: calc(50% + 39rem);
	height: 40rem;
	max-width: calc(100% - var(--padding-leftright));
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
}
.Keyvisual.on .Keyvisual__image{
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	.Keyvisual{
		padding-top: 16.5rem;
	}
	.Keyvisual::before{
		height: 100%;
	}
	.Keyvisual::after{
		display: none;
	}
	.Keyvisual__inner{
		padding-bottom: 10.5rem;
	}
	.Keyvisual__title__en{
		font-size: 8rem;
		margin-bottom: 1.5rem;
	}
	.Keyvisual__title__jp{
		font-size: 2.8rem;
	}
	.Keyvisual__image{
		width: 100%;
		height: 28rem;
		max-width: 100%;
	}

}



/*-------------------------------
	ぱんくず
-------------------------------*/

.Breadclumb{
	padding-top: 5.5rem;
}
.Breadclumb *{
	letter-spacing: .1em;
	color: #fff;
}
.Breadclumb__list{
	width: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
}
.Breadclumb__list__item{
	font-size: 1.2rem;
	position: relative;
}
.Breadclumb__list__item:not(:last-child)::after{
	margin-left: 1.4rem;
	margin-right: 1.4rem;
	content: "/";
}
.Breadclumb__list__item:last-child::after{
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	position: absolute;
	left: 0;
	bottom: 0;
	background: #fff;
}

@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	.Breadclumb{
		display: none;
	}

}



/*-------------------------------
	サブページベース
-------------------------------*/

.sec-frame{
	width: 100%;
	display:flex;
	align-items: flex-start;
	justify-content: space-between;
}
.sec-frame:not(:has(.sec-frame-sidebar)){
	justify-content: flex-end;
}
.sec-frame-sidebar{
	width: 18rem;
	position: sticky;
	left: 0;
	top: 9.8rem;
	transform: translateX(-6.5rem);
}
.sec-frame-sidebar__inner{
	width: calc(100% + 6.5rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
}
.sec-frame-sidebar__item:not(:last-child){
	margin-bottom: 2.2rem;
}
.sec-frame-sidebar__item{
	display: inline-block;
}
.sec-frame-sidebar__item a{
	font-size: 1.4rem;
	padding-bottom: 2.6rem;
	font-weight: 700;
	line-height: calc(2.4 / 1.4);
	display: block;
	color: #777;
	position: relative;
	opacity: 1 !important;
}
.sec-frame-sidebar__item a::after{
	background: var(--graycolor);
	transition: var(--transition);
	width: 1.5rem;
	height: 2px;
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
}
.sec-frame-sidebar__item a.current,
.sec-frame-sidebar__item a:hover{
	color: var(--blackcolor);
}
.sec-frame-sidebar__item a.current::after,
.sec-frame-sidebar__item a:hover::after{
	background: var(--blackcolor);
	width: 100%;
}
.sec-frame__content{
	max-width: calc(var(--subwidth));
	width: 100%;
}
.sec-frame:has(.sec-frame__content:only-child){
	justify-content: flex-end;
}

@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1300px) and (min-width: 769px){
		
	.sec-frame-sidebar{
		transform: translateX(0);
	}
	.sec-frame:has(.sec-frame-sidebar) .sec-frame__content{
		max-width: calc(100% - 24.5rem);
	}

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	.sec-frame{
		flex-direction: column;
	}
	.sec-frame-sidebar{
		width: 100%;
		/* margin-bottom: 19.2rem; */
		padding-bottom: 8.5rem;
		margin-bottom: 10.5rem;
		position: static;
		transform: translateX(0);
		overflow-x: auto;
		overflow-y: hidden;
	}
	.sec-frame-sidebar__inner{
		width: 100%;
		flex-direction: row;
	}
	.sec-frame-sidebar__item:not(:last-child){
		margin-bottom: 0;
		margin-right: 5.5rem;
	}
	.sec-frame-sidebar__item a{
		font-size: 2.6rem;
		line-height: 1;
		padding-bottom: 0;
		white-space: nowrap;
	}
	.sec-frame-sidebar__item a::after{
		display: none !important;
	}
	.sec-frame__content{
		max-width: 100%;
	}

}



/*-------------------------------
	パーツ
-------------------------------*/

/*----- 見出し */
/* 大見出し */
.C-title{
	color: var(--maincolor);
	width: 100%;
	font-size: 2.8rem;
	margin-bottom: 1rem;
	letter-spacing: .1em;
	font-weight: 700;
}
/* 中見出し */
.C-subtitle{
	border-top: 1px solid var(--graycolor);
	color: var(--maincolor);
	width: 100%;
	font-size: 2.4rem;
	padding-top: 1.5rem;
	margin-bottom: 4.2rem;
	letter-spacing: .1em;
	font-weight: 700;
	line-height: calc(4.6 / 2.4);
	position: relative;
}
.C-subtitle::before{
	background: var(--maincolor);
	content: "";
	display: block;
	width: 3rem;
	height: 3px;
	position: absolute;
	left: 0;
	top: -2px;
}
/* 小見出し */
.C-thirdtitle{
	width: 100%;
	font-size: 1.8rem;
	margin-bottom: .5rem;
	font-weight: 700;
	position: relative;
}
.C-thirdtitle::before{
	content: "●";
	font-size: 1.4rem;
	line-height: 1;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	display: block;
	color: #98e2f2;
}
.C-thirdtitle span{
	width: 100%;
	padding-left: 2.5rem;
	display: block;
}

/*----- 本文 */
.C-text{
	letter-spacing: .1em;
	text-align: justify;
}

/*----- ボタン */
.C-button a,
.C-button .a{
	border: 1px solid var(--maincolor);
	background: var(--maincolor);
	width: 100%;
	height: 100%;
	border-radius: 50rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	opacity: 1 !important;
	overflow: hidden;
	cursor: pointer;
}
.C-button a::before,
.C-button a::after,
.C-button .a::before,
.C-button .a::after{
	transition: var(--transition);
	content: "";
	display: block;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	position: absolute;
	top: 50%;
	transform: translate(0,-50%);
}
.C-button a::before,
.C-button .a::before{
	background-image: url(../images/common/icon_arrow--white.svg);
}
.C-button a::after,
.C-button .a::after{
	background-image: url(../images/common/icon_arrow.svg);
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	transition-delay: .5s;
}
.C-button a:hover,
.C-button .a:hover{
	color: var(--maincolor);
	background: #fff;
}
.C-button a:hover::before,
.C-button .a:hover::before{
	opacity: 0;
}
.C-button a:hover::after,
.C-button .a:hover::after{
	animation: C-hover-animation-x .3s forwards .3s;
}

/*----- 円形矢印 */
.C-circle-arrow{
	border: 1px solid var(--graycolor);
	transition: var(--transition);
	width: 7rem;
	height: 7rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	right: 5rem;
	top: 50%;
	transform: translateY(-50%);
}
.C-circle-arrow::before,
.C-circle-arrow::after{
	transition: var(--transition);
	content: "";
	display: block;
	width: 1.6rem;
	height: 1.2rem;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}
.C-circle-arrow::before{
	background-image: url(../images/common/icon_arrow.svg);
}
.C-circle-arrow::after{
	background-image: url(../images/common/icon_arrow--white.svg);
	clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	transition-delay: .5s;
}
.C-circle-arrow-wrap:hover .C-circle-arrow{
	background: var(--maincolor);
	border-color: var(--maincolor);
}
.C-circle-arrow-wrap:hover .C-circle-arrow::before{
	opacity: 0;
}
.C-circle-arrow-wrap:hover .C-circle-arrow::after{
	animation: C-hover-animation-x .3s forwards .15s;
}

/*----- アニメーション */
@keyframes C-hover-animation-x{
	0%{
		clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
	}
	100%{
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
}
@keyframes C-hover-animation-y{
    0% {
        clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
    }
    100% {
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    }
}

/*----- 表 */
.C-table-block__title{
	border-bottom: 1px solid var(--graycolor);
	width: 18rem;
	position: relative;
	z-index: 5000;
	/* background: #f5f5f5; */
}
.C-table-block__title span{
	padding: 2.6rem 3rem;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}
.C-table-block__title span::before{
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: -1;
	background: #f5f5f5;
}
.C-table-block__body{
	border-bottom: 1px solid var(--graycolor);
	width: calc(100% - 18rem);
	padding: 2.6rem 3rem;
}
.C-table-block:first-child .C-table-block__title,
.C-table-block:first-child .C-table-block__body{
	border-top: 1px solid var(--graycolor);
}

/*----- アニメーション */
.js-anime-title__en{
    /* -webkit-transform: perspective(1000px) translate3d(0, 35%, 0); */
    transform: perspective(1000px) translate3d(0, 35%, 0);
    overflow: hidden;
}
.js-anime-title__en span{
    display: inline-block;
    /* -webkit-transform-origin: center 60%; */
    transform-origin: center 60%;
    /* -webkit-background-clip: text; */
    background-clip: text;
    color: transparent;
    /* -webkit-transform: perspective(1000px) translate3d(0, 100%, 0) rotateX(-180deg); */
    transform: perspective(1000px) translate3d(0, 100%, 0) rotateX(-180deg);
    /* background-image: -webkit-gradient(linear, left top, right top, from(var(--maincolor)), color-stop(25%, var(--maincolor)), color-stop(20%, rgba(0, 224, 255, 1)), color-stop(30%, rgba(0, 224, 255, 1)), to(var(--maincolor))); */
    background-image: linear-gradient(90deg, var(--maincolor) 0%, var(--maincolor) 20%, #00e0ff 46%, #00e0ff 64%, var(--maincolor) 80%, var(--maincolor) 100%);
    background-position: 0 0;
    background-size: 300% 100%;
    background-repeat: no-repeat;
}
.js-anime-title__jp{
    /* -webkit-transform: perspective(1000px) translate3d(0, 50%, 0); */
    transform: perspective(1000px) translate3d(0, 50%, 0);
    opacity: 0;
}
.js-anime-title.on .js-anime-title__en{
    /* -webkit-transform: perspective(1000px) translateZ(0); */
    transform: perspective(1000px) translateZ(0);
    /* -webkit-transition: -webkit-transform 1s cubic-bezier(.45,0,.55,1); */
    transition: -webkit-transform 1s cubic-bezier(.45,0,.55,1);
    transition: transform 1s cubic-bezier(.45,0,.55,1);
    transition: transform 1s cubic-bezier(.45,0,.55,1), -webkit-transform 1s cubic-bezier(.45,0,.55,1);
}
.js-anime-title.on .js-anime-title__en span{
    /* -webkit-transform: perspective(1000px) translateZ(0); */
    transform: perspective(1000px) translateZ(0);
    /* -webkit-transition: background-position 1.4s cubic-bezier(.215,.61,.355,1) .6s, -webkit-transform .8s cubic-bezier(.45,0,.55,1); */
    transition: background-position 1.4s cubic-bezier(.215,.61,.355,1) .6s, -webkit-transform .8s cubic-bezier(.45,0,.55,1);
    transition: transform .8s cubic-bezier(.45,0,.55,1), background-position 1.4s cubic-bezier(.215,.61,.355,1) .6s;
    transition: transform .8s cubic-bezier(.45,0,.55,1), background-position 1.4s cubic-bezier(.215,.61,.355,1) .6s, -webkit-transform .8s cubic-bezier(.45,0,.55,1);
    background-position: 100% 0;
}
.js-anime-title.on .js-anime-title__jp{
    /* -webkit-transform: perspective(1000px) translateZ(0); */
    transform: perspective(1000px) translateZ(0);
    opacity: 1;
    /* -webkit-transition: opacity .4s, -webkit-transform .4s cubic-bezier(.5,1,.89,1); */
    transition: opacity .4s, -webkit-transform .4s cubic-bezier(.5,1,.89,1);
    transition: transform .4s cubic-bezier(.5,1,.89,1), opacity .4s;
    transition: transform .4s cubic-bezier(.5,1,.89,1), opacity .4s, -webkit-transform .4s cubic-bezier(.5,1,.89,1);
    -webkit-transition-delay: .6s;
    transition-delay: .6s;
}

.js-anime-title.-white .js-anime-title__en span{
	background-image: linear-gradient(90deg, #fff 0%, #fff 20%, #00e0ff 46%, #00e0ff 64%, #fff 80%, #fff 100%);
}
@media screen and (min-width:769px) , print{

}
@media screen and (max-width:1240px) and (min-width: 769px){

}
@media screen and (max-width:960px) and (min-width: 769px){

}
@media screen and (max-width:768px){

	/*----- 見出し */
	/* 大見出し */
	.C-title{
		font-size: 4.8rem;
		margin-bottom: 2rem;
		line-height: calc(7.8 / 4.8);
	}
	/* 中見出し */
	.C-subtitle{
		border-top: 2px solid var(--graycolor);
		font-size: 4rem;
		padding-top: 1.5rem;
		margin-bottom: 5.5rem;
		line-height: calc(7 / 4);
	}
	.C-subtitle::before{
		width: 4rem;
		height: .6rem;
		top: -.4rem;
	}
	/* 小見出し */
	.C-thirdtitle{
		font-size: 3rem;
		margin-bottom: 1rem;
	}
	.C-thirdtitle::before{
		font-size: 2.2rem;
		transform: translateY(60%);
		top: 0;
	}
	.C-thirdtitle span{
		line-height: calc(5 / 3);
		padding-left: 3.8rem;
	}

	/*----- ボタン */

	
	/*----- 円形矢印 */
	.C-circle-arrow{
		border: 2px solid var(--graycolor);
		width: 8rem;
		height: 8rem;
		right: var(--padding-leftright);
	}
	.C-circle-arrow::before,
	.C-circle-arrow::after{
		width: 2rem;
		height: 1.5rem;
	}

	/*----- 表 */
	.C-table-block__title{
		border-bottom: 2px solid var(--graycolor);
	}
	.C-table-block__title span{
		padding: 2.8rem 3rem;
	}
	.C-table-block__body{
		border-bottom: 2px solid var(--graycolor);
		padding: 2.8rem 3rem;
	}
	.C-table-block:first-child .C-table-block__title,
	.C-table-block:first-child .C-table-block__body{
		border-top: 2px solid var(--graycolor);
	}

}