/* ========================================
	DEBUG
======================================== */
.debug{
	display: block;
	position: fixed;
	bottom:0;left: 0;
	background-color: #1D7644;
	width: 10px; height: 10px;
	z-index: 99999;
	display: none;
}

@media screen and (max-width: 1400px) {
	.debug{
		background-color: blue;
	}
}
@media screen and (max-width: 1024px) {
	.debug{
		background-color: yellow;
	}
}
@media screen and (max-width: 767px) {
	.debug{
		background-color: red;
	}
}
/* SP横の特殊対応 */
@media (orientation: landscape) and (max-width: 767px) {
	.debug{
		background-color: pink;
	}
}



.splash{
	display: none;
}

/*==============================================================
	L1 splash
==============================================================*/
/* .splash{
	position: fixed;
	top:0;
	left:0;
	width:100%;
	height:100dvh;
	z-index:9999;
	background:#fff;
	display:flex;
	justify-content:center;
	align-items:center;
}

.loading {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}


.loading img{
	width: 80%;
	height: 80%;
	object-fit: contain;

	opacity:0;
	filter:blur(20px);
	transform:scale(0.98);
	animation: splashLogo 1.5s ease forwards;
}

@keyframes splashLogo{
	to{
		opacity:1;
		filter:blur(0);
		transform:scale(1);
	}
} */

.c-loading{
	position:fixed;
	inset:0;
	background:#fff;
	z-index:9999;

	display:flex;
	justify-content:center;
	align-items:center;
}


.c-loading__copy{
	opacity:0;
	filter:blur(10px);
	transition:1s;

	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.c-loading__copy.is-act{
	opacity:1;
	filter:blur(0);
}
.c-loading__copy img{
	width: 80%;
	height: 80%;
	object-fit: contain;
}

/*==============================================================
	L1 HEADER
==============================================================*/
.globalheader{
	box-sizing: border-box;
	z-index: 10;
	width: 100%;
	height: 120px;
	box-shadow: 0 5px 5px  rgba(0,0,0,0.1 );
	box-sizing: border-box;
	padding: 0 25px;
	background-color: #fff;
	position: sticky;
	top: 0;
}

.headernav__inner{
	box-sizing: border-box;
	height: 120px;
	display: flex;
	justify-content: space-between;
	align-items: end;
}

.headernav__left{
	display: flex;
	justify-content: start;
	align-items: end;
}
.headernav__logo{
	height: 60px;
	width: 410px;
	aspect-ratio: 6 / 41 ;
	display: block;
	margin-top: auto;
	margin-bottom: 10px;
}
.headernav__logo img{
	height: 100%;
	width: 100%;
	object-fit: cover;
}
.headernav__copy{
	max-width: 117px;
	max-height: 32px;
	aspect-ratio: 116 / 31;
	object-fit: cover;
	margin-bottom: 13px;
	margin-left: 16px;
	width: 11vw;
	height: 3vw;
}


.headernav__right{
	width: 100%;
	position: relative;
}


.headernav__right .c-sns{
	display: flex;
	justify-content: end;
	align-items: center;
	margin-bottom: 12px;
}

.headernav__right .c-sns ul{
	display: flex;
	justify-content: end;
	align-items: center;
	column-gap: 20px;
	margin-right: 1em;
}

.headernav__right .c-sns ul li a{
	display: block;
	width: 31px;
	height: 31px;
	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;
	background-position: center;
}


.c-sns li:nth-child(1) a{background-image: url(../img/common/icon-ig-white.svg);}
.c-sns li:nth-child(2) a{background-image: url(../img/common/icon-fb-white.svg);}
.c-sns li:nth-child(3) a{background-image: url(../img/common/icon-yt-white.svg);}
.c-sns li:nth-child(4) a{background-image: url(../img/common/icon-tt-white.svg);}
.c-sns li:nth-child(5) a{background-image: url(../img/common/icon-x-white.svg);}
.headernav__right .c-sns li:nth-child(1) a{background-image: url(../img/common/icon-ig.svg);}
.headernav__right .c-sns li:nth-child(2) a{background-image: url(../img/common/icon-fb.svg);}
.headernav__right .c-sns li:nth-child(3) a{background-image: url(../img/common/icon-yt.svg);}
.headernav__right .c-sns li:nth-child(4) a{background-image: url(../img/common/icon-tt.svg);}
.headernav__right .c-sns li:nth-child(5) a{background-image: url(../img/common/icon-x.svg);}

.headernav__right nav{
	display: flex;
	justify-content: end;
	align-items: end;
}

.headernav__right nav>ul{
	display: flex;
	justify-content: end;
	align-items: center;
	column-gap: 30px;
	margin-right: 30px;
}
.headernav__right nav>ul li{
	position: relative;
	/* display: block; */
	padding-bottom: 10px;
}
.headernav__right nav>ul>li>a{
	margin: 0;
	line-height: 0;
}
.headernav__right nav>ul>li>a::after{
	content: "";
	display: block;
	width: 0%;
	height: 3px;
	margin-top: 3px;
	background-color: var(--color-main);
	transition: width 0.1s linear;
}
.headernav__right nav>ul>li.current a::after{
	width: 100%;
}
.headernav__right nav>ul>li:hover>a::after{
	width: 100%;
}

.headernav__right nav>a._btnrad{
	box-sizing: border-box;
	border: 1px solid #595858;
	border-radius: 2em;
	padding: 0.3em 0.6em;
	margin-bottom: 9px;
}

/* ドロップダウン */
.headernav__right nav ul li ul.childmenu {
	position: absolute;
	box-sizing: border-box;
	top: 100%;
	left: 0;
	min-width: 200px;
	transform-origin: top;
	transform: scaleY(0);
	transition: .3s;
	background-color: rgba(14,49,114,0.8 );
	font-size: 0.875rem;
}
.headernav__right nav ul li ul.childmenu li{
	display: block;
	box-sizing: border-box;
	border-bottom: 1px solid #fff;
	padding: 8px 10px;
	opacity: 0;
	/* transform: translateY(8px); */
	transition: .3s ease;
}

.headernav__right nav ul li ul.childmenu li a{
	color: #fff;
}

.headernav__right nav ul li ul.childmenu li:last-child{
	border-bottom: none;
}



.has-childmenu:hover .childmenu {
  visibility: visible;
  transform: scaleY(1);
  /* transform: translateY(15px); */
}
.has-childmenu:hover .childmenu li{
  opacity: 1;
  transition-delay: .2s; 
}

.headernav__right--pc{
	display: block;
}

.headernav__right--sp{
	display: none;
}

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


@media screen and (min-width: 768px) and (max-width: 1024px) {
	.globalheader{
		min-width: unset;
		padding: 0 10px;
	}

	.headernav__logo{
		height: 50px;
		width: 340px;
	}

	.headernav__right nav{
		/* display: none; */
	}

	.headernav__right .c-sns ul li a{
		width: 25px;
		height: 25px;
	}

	.headernav__right nav>ul{
		column-gap: 15px;
	}
	.headernav__right nav ul li a{
		font-size: 14px;
	}
}


@media screen and (max-width: 767px) {
	header.globalheader{
		height: 15vw;
		padding: 0 0;
	}

	.headernav__inner{
		padding: 5vw 5vw;
		flex-wrap: nowrap;
		height: 15vw;
		align-items: center;
	}
	.headernav__left{
		justify-content: start;
		align-items: end;
		width: 70%;
		height: 7vw;
	}
	.headernav__logo{
		width: 47vw;
		height: 6vw;
		margin-top: 0;
		margin-bottom: 0.5vw;
	}
	.headernav__logo img{
		
	}

	.headernav__copy{
		max-width: unset;
		max-height: unset;
		margin-bottom: 0;
		margin-left: 2vw;
		width: 16vw;
		height: auto;
	}

	.headernav__right{
		width: 30%;
		display: flex;
		justify-content: end;
		align-items: center;
	}
	.headernav__right a{
		margin-right: 9vw;
		display: block;
		height: 9vw;
		width: 9vw;
		font-size: 2vw;
		color: #34589c;
		vertical-align: bottom;
		padding-top: 6.2vw;
		text-align: center;
		background-image: url(../img/common/tool-docs-blue.svg);
		background-position: center top 0.8vw;
		background-size: 4vw;
		font-weight: 500;
	}


	.headernav__right--pc{
		display: none;
	}

	.headernav__right--sp{
		display: block;
	}
}


/*==============================================================
	SP MENU
==============================================================*/
/* BUTTON */
.btn_menu{
	display: none;
}
@media screen and (max-width: 767px) {
	.btn_menu{
		display: block;
		position: relative;
		position: fixed;
		z-index: 9999;
		border: 0;
		padding: 0;
		cursor: pointer;
		text-align: center;
		background: transparent;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		background-color: transparent;
		box-sizing: border-box;
		top: 3vw;
		right: 3vw;
		width: 9vw;
		height: 9vw;
	}

	.btn_menu_bar_wrap{
		display: block;
		width: 9vw;
		height: 9vw;
		position: relative;
		transition: background 0.2s linear;
	}

	.btn_menu_bar {
		display: block;
		position: absolute;
		left: 0;
		top: 0;
		background: #34589c;
		width: 6vw;
		margin: 3.3vw 1.5vw;
		height: 2px;
		transition: background .25s ease;
	}


	.btn_menu_bar:before, .btn_menu_bar:after {
		display: block;
		content: "";
		background: #34589c;
		/* margin: -2px 0; */
		width: 6vw;
		height: 2px;
		transition: transform .25s ease;
	}


	.btn_menu_bar:before {
		transform: translateY(-1.8vw);
	}
	.btn_menu_bar:after {
		transform: translateY(1.5vw);
	}

	.btn_spnav_label {
		position: absolute;
		left: 0;right: 0;
		bottom: 0vw;
		display: block;
		font-size: 2vw;
		font-weight: 500;
		white-space: nowrap;
		font-weight: bold;
		color: #34589c;
	}
	.btn_menu .btn_spnav_label::after{
		content: "MENU";
	}

	/* ACTIVE */
	.btn_menu.menu_active{
	}
	.btn_menu.menu_active .btn_menu_bar {
		background: transparent;
	}
	.btn_menu.menu_active .btn_menu_bar:before,.btn_menu.menu_active .btn_menu_bar:after {
		background: #fff;
	}
	.btn_menu.menu_active .btn_menu_bar:before {
		transform: translateX(-0vw) translateY(-0.2vw) rotate(36deg);
		width: 6vw;
	}
	.btn_menu.menu_active .btn_menu_bar:after {
		transform: translateX(-0vw) translateY(-0.5vw) rotate(-36deg);
		width: 6vw;
	}
	.btn_menu.menu_active .btn_spnav_label{
		color: #fff;
	}
	.btn_menu.menu_active .btn_spnav_label::after{
		content: "CLOSE";
	}
}

/* MENU SP */
	#menu{
		display: none;
	}

@media screen and (max-width: 767px) {
	body.overflow_hidden{
		overflow: hidden;
	}
	
	#menu{
		display: block;
		height: 100%;
		z-index: 9990;
		box-sizing: border-box;
		position: fixed;
		top: 0;
		transition: 0.33s ease;
		transition-property: transform opacity;
		visibility:hidden;
		opacity: 0;
		overflow: hidden;
		/* モーダル背景なし */
		width: 100%;
		right: 0;
	}


	#menu .menu_inner{
		width: 100%;
		height: 100%;
		height: 100vh;
		height: 100dvh;
		box-sizing: border-box;
		background: linear-gradient(45deg, #35589d, #2c79bf);
		transition: 0.33s ease;
		transition-property: transform opacity;
		opacity: 0;
		transform: translateY(-100dvh);
		position: absolute;
		right: 0;
		overflow: auto;
		padding: 6vw 8vw 12vw 6vw;
		color: #fff;
	}
	#menu .menu_inner a{
		color: #fff;
	}

	#menu.menu_active{
		visibility:visible;
		opacity: 1;
	}

	#menu.menu_active .menu_inner{
		transform: translateX(0);
		opacity: 1;
	}

	#menu .menu_delay{
		opacity: 0;
		transition: .3s ease;
		transform: translateY(-8px);
	}
	#menu.menu_active .menu_delay{
		opacity: 1;
		transition-delay: .4s; 
		transform: translateY(0);
	}

	#menu ._logo{
		margin-bottom: 12.5vw;
	}
	#menu ._logo img{
		width: 63vw;
		height: 9.25vw;
		object-fit: cover;
	}
	
	#menu ._btn ul{
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		margin-bottom: 11vw;
	}
	#menu ._btn ul li{
		width: 100%;
	}
	#menu ._btn ul li a{
		display: block;
		padding: 5vw 0 5.5vw;
		text-align: center;
		text-indent: 1.5em;
		font-size: 1.2em;
		border: 1px solid #fff;
		background-image: url(../img/common/tool-mail-white.svg);
		background-position:  calc(50% - 4em) center;
		background-size: 5vw 5vw;
	}
	/* #menu ._btn ul li:last-child a{
		background-image: url(../img/common/tool-mail-white.svg);
		background-position: center left 4vw;
		background-size: 5vw 4vw;
	} */


	#menu .c-sns ul{
		display: flex;
		flex-wrap: nowrap;
		justify-content: center;
		margin-bottom: 11vw;
		column-gap: 8vw;
	}
	#menu .c-sns ul li a{
		display: block;
		width: 6.25vw;
		height: 6.25vw;
		text-indent:100%;
		white-space:nowrap;
		overflow:hidden;
		background-position: center;
		background-size: contain;
	}
	#menu .c-sns ul li:nth-child(3) a{
		width: 8vw;
		height: 6vw;
	}

	.menunav{
		line-height: 1;
		margin-bottom: 12vw;
	}


	.menunav>ul>li:nth-child(-n+6) {
		border-bottom: 1px solid #fff;
		padding: 5vw 0;
		font-size: 5vw; 
		font-weight: 500;
	}
	.menunav>ul>li:nth-child(n+7) {
		font-size: 4vw;
		margin-bottom: 4vw;
	}
	.menunav>ul>li:nth-child(1) {
		padding-top: 0;
	}
	.menunav>ul>li:nth-child(6) {
		margin-bottom: 8vw;
	}



	.menunav>ul>li>div{
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
	}


	.menunav>ul>li>div a{
		font-size: 5vw;
		font-weight: 500;
	}
	.menunav>ul>li>div a>span{ 
		font-size: 3vw;
		font-weight: 400;
		margin-top: 1vw;
		display: block;
	}
	.menunav>ul>li>div span.acd_trg{
		cursor: pointer;
		display: block;
		width: 3.75vw;
		height: 3.75vw;
		margin-right: 4vw;
		background-image: url(../img/common/tool-plus-white.svg);
		background-size: contain;
		background-position: center;
	}
	.menunav>ul>li>div span.acd_trg.-isopen{
		background-image: url(../img/common/tool-minus-white.svg);
	}

	.menunav .childmenu{
		display: none;
		font-weight: 400;
	}
	.menunav .childmenu li{
		font-size: 4vw;
		line-height: 1.5;
		margin-top: 4vw;
	}
	.menunav .childmenu li:first-child{
		margin-top: 6vw;
	}
}



/* SP横の特殊対応 */
@media (orientation: landscape) and (max-width: 767px) {
}


/* ====================
	footer
==================== */

.g-footer{
	box-sizing: border-box;
	width: 100%;
	background: linear-gradient(45deg, #35589d, #2c79bf);
}



/* .footer_gototop a{
	z-index: 2;
	position: fixed;
	top:unset;
	right: 60px;
	bottom: 60px;
	height: 120px;
	width: 120px;
	background-position: center;
	background-size: 100%;
	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;
	opacity: 0;
	transition: opacity 0.3s linear;
	background: url(../img/common/icon-gototop.svg) no-repeat;
} */



.g-footer__inner{
	box-sizing: border-box;
	width: 100%;
	max-width: 1300px;
	padding: 0 50px;
	margin: 0 auto;
	padding-top: 50px;
	padding-bottom: 100px;
	color: #fff;
}
.g-footer__inner a{
	color: #fff;
}
.g-footer__logo{
	text-align: center;
	margin-bottom: 60px;
}
.g-footer__logo a{
	display: block;
	width: 543px;
	height: 80px;
	margin: 0 auto;
	margin-bottom: 20px;
}
.g-footer__logo a img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.g-footer__logo p{
	display: inline-block;
	margin: 0 auto;
}


.g-footer__feature{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 40px;
}
.g-footer__feature li {
	display: block;
	width: 24%;
	max-width: 276px;
	max-height: 144px;
	aspect-ratio: 276 / 144;
}

.g-footer__feature li a{
	width: 100%;
	height: 100%;
	display: block;
	background-position: center;
	background-size: cover;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction:column;
	font-size: 1.6rem;
	font-weight: 500;
}
.g-footer__feature li:nth-child(1) a{background-image: url(../img/common/footer-fi1.png);}
.g-footer__feature li:nth-child(2) a{background-image: url(../img/common/footer-fi2.png);}
.g-footer__feature li:nth-child(3) a{background-image: url(../img/common/footer-fi3.png);}
.g-footer__feature li:nth-child(4) a{background-image: url(../img/common/footer-fi4.png);}

.g-footer__feature li a span{
	display: block;
	font-size: 1rem;
	font-weight: 400;
}


.g-footer__nav{
	margin-bottom: 80px;
}
.g-footer__nav>ul{
	display: flex;
	justify-content: space-between;
	column-gap: 60px;
}
.g-footer__nav>ul>li>a{
	font-size: 1.25rem;
	font-weight: 500;
}
.g-footer__nav>ul>li>ul.childmenu{
	margin-top: 1.25em;
	display: flex;
	flex-direction:column;
	row-gap: 0.8em;
}

.g-footer__bottom{
	display: flex;
	justify-content: space-between;
	align-items: start;
}
.g-footer__sns ul{
	display: flex;
	justify-content: space-between;
	align-items: start;
	column-gap: 20px;
}
.g-footer__sns ul li a{
	display: block;
	width: 44px;
	height: 44px;
	text-indent:100%;
	white-space:nowrap;
	overflow:hidden;
	background-position: center;
	background-size: contain;
}
.g-footer__sns ul li:nth-child(3) a{
	width: 50px;
	height: 44px;
}
.g-footer__etc ul li{
	display: inline-block;
	margin-left: 1em;
	margin-bottom: 1em;
}
.g-footer__etc small{
	display: block;
	text-align: right;
}

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

@media screen and (max-width: 767px) {
	.g-footer__inner{
		max-width: unset;
		padding: 0 8vw;
		padding-top: 12vw;
		padding-bottom: 5vw;
		width: 95%;
	}
	.g-footer__logo{
		margin-bottom: 8vw;
		text-align: left;
	}
	.g-footer__logo a{
		width: 100%;
		height: auto;
		margin-bottom: 8vw;
	}
	.g-footer__logo p{
		text-align: left;
		font-size: 3vw;
	}


	.g-footer__feature{
		display: none;
	}

	.g-footer__nav{
		display: none;
	}

	.g-footer__bottom{
		display: block;
	}
	.g-footer__bottom .c-sns ul{
		justify-content: center;
		column-gap: 10vw;
	}
	.g-footer__bottom .c-sns ul li a{
		width: 6.25vw;
		height: 6.25vw;
	}
	.g-footer__bottom .c-sns ul li:nth-child(3) a{
		width: 9vw;
		height: 6vw;
	}

	.g-footer__etc ul{
		margin-bottom: 10vw;
	}
	.g-footer__etc ul li{
		display: none;
	}

	.g-footer__etc small{
		display: block;
		text-align: center;
	}
}