	/* CSS Document */


/*
PC版3種類ヘッダー
class名で切り替え
base-container 文字色を青。
base-container base-container--white  文字色を白。
で切り替え

IDで切り替え
absoluteHeader ページ上部に固定。追従なし。白枠なし。
fixedHeader ページ上部に表示。追従。白枠あり。
scrollHeader ページ途中から現れ追従。白枠あり。
*/
/* PC版　ヘッダー　*/
.base-container{
	width: calc(100% - 40px);
	z-index: 100;
	padding: 14px 30px;
	margin: 20px 20px 0;
	background-color:rgba(255,255,255,0.85);
	border-radius: 10px;
	
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.12);
backdrop-filter: blur(5px);
	
	z-index: 1000;
	
	 transition: all .6s;
}
#absoluteHeader,
#absoluteHeaderSP
{
	position: absolute;
	transform: translateY(0%);
	
	background-color:transparent;
	box-shadow: none;
	backdrop-filter:none;
}
#fixedHeader,
#fixedHeaderSP
{
	position: fixed;
	transform: translateY(0%);
}
#fixedHeaderSP2
{
	position: absolute;
	transform: translateY(0%);
}
#scrollHeader,
#scrollHeaderSP
{
	position: fixed;
	transform: translateY(-200%);
}
#scrollHeader.visible,
#scrollHeaderSP.visible
{
  transform: translateY(0%);
}
@media all and (max-width: 767px) {
	header{
		display: none;
	}
}
/* --------------------------- */
/* メニュー（親）のスタイル */
/* --------------------------- */
header li{
	list-style: none;
}
header a{
	text-decoration: none;
}
.menu {
  display: flex;
  position: relative;
	align-items: center;
 
  color: #273E97;
	
	    gap: 1.5em;
	justify-content: flex-end;
}
.menu-parent {
  padding: 0;
}
.menu-parent:last-child {
  border-right: none;
}
.menu-parent_a {
  display: block;
  padding: 10px 0px;
  text-align: center;
	
	color: #273E97;
text-align: center;
font-family: Lato;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: normal;
letter-spacing: 0.8px;
}
.base-container--white .menu-parent_a {
	color: #fff;
}
.pc_menu_logo{
	margin-right: auto;
}
#mega_menu .menu-min-btn{
	color: #273E97;
	background-color: inherit;
text-align: center;
font-family: Lato;
 font-size: .9rem;
font-style: normal;
font-weight: 500;
line-height: normal;
letter-spacing: 0.75px;
	padding: 7px 20px;
	width: 100%;
	height: 40px;
}
.base-container--white #mega_menu .menu-min-btn{
	color:#fff;
	border-color:#fff;
}
.svg_icon{
	display: flex;
	align-items: center;
	padding-right: 14px;
}
.base-container--white a .svg_icon svg path{
	fill:#fff;
}
.base-container--white .pc_menu_logo svg path{
	fill:#fff;
}

/* hover */

.menu-parent_a span{
	position: relative;
}
.menu-parent_a span::after {
position: absolute;
left: 0;
content: '';
width: 100%;
height: 1px;
background: #273E97;
bottom: -1px;               /*アンダーラインがaタグの下端から現れる*/
transform: scale(0, 1);     /*アンダーラインの縮尺比率。ホバー前はx方向に0*/
transform-origin: left top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の左端*/
transition: transform 0.3s; /*変形の時間*/
}

.menu-parent_a:hover span::after {
transform: scale(1, 1);     /*ホバー後、x軸方向に1（相対値）伸長*/
}

.base-container--white .menu-parent_a span::after {
	background: #fff
}

#mega_menu .menu-min-btn:hover{
	color: #fff;
}

.base-container--white #mega_menu .menu-min-btn:hover{
	color: #273E97 !important;
}
.svg_icon svg path{
	 transition: all .3s;
}
a:hover .svg_icon svg path{
	fill:#fff;
}
.base-container--white .c-btn.slide--bgcolor::after {
	background-color: #fff;
}
.base-container--white a:hover .svg_icon svg path{
	fill:#273E97;
}


/* --------------------------- */
/* メニュー（親）の直接動作に関係する箇所 */
/* --------------------------- */
/* 親をhover時 */
@media (hover: hover) {
  .menu-parent:hover .menu-parent_a{
    transition: all .3s;
  }
}
 /* --------------------------- */
/* メガメニュー(子)のスタイル */
/* --------------------------- */
.menu-child {
  display: none;
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 0;
}
#absoluteHeader .menu-child{
	 background-color:rgba(255,255,255,0.85);
	border-radius: 10px;
	
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.12);
backdrop-filter: blur(5px); 
}
.menu_sub_flex{
	display: flex;
	padding: 25px 1em 5px;
	align-items: center;
}
#absoluteHeader .menu_sub_flex{
	padding-top: 15px;
	padding-bottom: 10px;
}
.menu-child_ul{
  list-style-type: none;
	display: flex;
	align-items: center;
}
.menu-child_li {
  margin: 0 auto;
  line-height: 2;
	margin-left: 60px;
}

.sub_menu_title{
	color: var(--vesca-blue, #273E97);
font-family: Lato;
font-size: 22px;
font-style: normal;
font-weight: 700;
line-height: 22px; 
letter-spacing: 1.1px;
	border-right: 1px solid #273E97;
	padding-right: 0px;
	min-width: 220px;
	text-align: center;
}
.menu-child_li a{
color: var(--vesca-blue, #273E97);
font-family: "Noto Sans JP";
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 24px; /* 150% */
letter-spacing: 0.8px;
}

li.menu_btn{
	
}

/* hover */

.menu-child_li-a span{
	position: relative;
}
.menu-child_li-a span::after {
position: absolute;
left: 0;
content: '';
width: 100%;
height: 1px;
background: #273E97;
bottom: -1px;               /*アンダーラインがaタグの下端から現れる*/
transform: scale(0, 1);     /*アンダーラインの縮尺比率。ホバー前はx方向に0*/
transform-origin: left top; /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の左端*/
transition: transform 0.3s; /*変形の時間*/
}

.menu-child_li-a:hover span::after {
transform: scale(1, 1);     /*ホバー後、x軸方向に1（相対値）伸長*/
}



/* SP　ヘッダー */
/*
classで出し分け
sp_nav_wrap　ロゴ青
sp_nav_wrap--white　ロゴ白

IDで切り替え
absoluteHeaderSP ページ上部に固定。追従なし。白枠なし。
fixedHeaderSP ページ上部に表示。追従。白枠あり。
scrollHeaderSP ページ途中から現れ追従。白枠あり。
fixedHeaderSP2 白枠あり。追従なし。
*/


.scroll-lock {
	/*
	*/
      overflow: hidden;
      position: fixed;
      width: 100%;
    }
nav {
	display: none;
}
@media all and (max-width: 767px) {
	nav {
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		height: auto;
		background: none;
		/*height: 60px;*/
		top:0;
		padding: 10px 10px 10px  15px;
	}
}
/*styling open close button*/
.button {
	display: inline;
	font-size: 20px;
	font-weight: 700;
}
.button a {
	text-decoration: none;
	display: block;
    background: #fff;
	border: 1px solid #fff;
    width: 40px;
    height: 40px ;
    line-height:50px;
    border-radius: 40px;
	padding: 10px 10px 10px 9px;
}
/* アイコン */
#header.HeightMin .btn-open:before,
.menu-container--white .btn-open:before
{
	color: #666;
}
.btn-close:before {
}
/*overlay*/
.overlay {
	display: none;
	top: 0;
	height: 100%;
	width: 100%;
	z-index: 999;
}
.overlay .wrap {
	color: #666;
	max-width: 100%;
	margin: 0;
	padding: 0 10px;
}
@media all and (max-width: 767px) {
	.overlay {
		
	}
}

.sp_nav_wrap{
	border-radius: 10px;
background: rgba(255, 255, 255, 0.75);
backdrop-filter: blur(8px);
	overflow: auto;
	
	width: 96%;
	margin: 10px 2%;
	 transition: all .3s;
	
	position: relative;
	z-index: 1000;
}
.scroll-lock .sp_nav_wrap{
	background: rgba(255, 255, 255, 0.9);
}
.sp_nav_wrap--white{
	background: rgba(255, 255, 255, 0);
	backdrop-filter: none;
}
.sp_nav_wrap.active{
background: rgba(255, 255, 255, 0.9) !important;
backdrop-filter: blur(8px);
}


.sp_menu_layout{
	padding: 30px 0 40px;
	display: flex;
	flex-direction: column;
	gap:40px;
}
.sp_menu_box{
	width: 90%;
	margin: 0 auto;
	padding: 0 0 0 0;
}
@media all and (max-width: 767px) {
	.sp_menu_box{
		
	}
}
.sp_menu_box>a{
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	text-decoration: none;
}
@media all and (max-width: 767px) {
	.sp_menu_box>a{
		color: #222;
		font-weight: 500;
	}
}
.sp_menu_box>a:after{
	content: '';
display: block;
  width: 8px;
  height: 8px;
  border-top: 2px solid #273E97;
  border-right: 2px solid #273E97;
  transform: rotate(45deg);
	transition: ease 0.3s;
}
.sp_menu_box>a.hasmenu:after{
	 transform: rotate(135deg);
}
a.hasmenu.active:after{
	 transform: rotate(-45deg);
}

.sp_menu_toggle{
	display: none;
	padding-top: 10px;
}
.sp_menu_toggle a{
	color: var(--vesca-blue, #273E97);
	font-family: "Noto Sans JP";
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px; /* 266.667% */
	letter-spacing: 0.75px;
	
	display: flex;
	justify-content: space-between;
	padding: 0 15px;
}


.logo_sp_box{
	position: relative;
	z-index: 1000;
}

.logo_sp_box svg path{
	fill:#273E97;
}

.sp_nav_wrap--white .logo_sp_box svg path{
	fill:#fff;
}
.logo_sp_box.active svg path{
	fill:#273E97;
}

.sp_menu_en_icon{
	display: none;
	margin-left: auto;
	margin-right: 40px;
}
.sp_menu_en_icon.active{
	display: block;
}
.sp_menu_en_icon a{
	display: flex;
	align-items: center;
	color: #273E97;
}
.sp_menu_en_icon svg{
	margin-right: 14px;
}

/**/
.menu-btn {
  width: 20px;
  height: 20px;
  position: relative;
}

.line {
  display: block;
  width: 20px;
  height: 2px;
  background-color: #273E97;
  position: absolute;
  transition: all 0.3s ease;
}

/* 上の線 */
.line.top {
  top: 14px;
}

/* 下の線 */
.line.bottom {
  bottom: 14px;
}

/* アクティブ時：×に変形 */
.menu-btn.active .line.top {
  transform: rotate(30deg);
  top: 18px;
}

.menu-btn.active .line.bottom {
  transform: rotate(-30deg);
  bottom: 18px;
}

.sp_menu_link_a_flex{
	display: flex;
	justify-content: space-between;
}
.sp_menu_link_flex{
	display: flex;
	justify-content: space-between;
	flex-direction: column;
}
.sp_menu_link_en{
	color: var(--vesca-blue, #273E97);
font-family: Lato;
font-size: 18px;
font-style: normal;
font-weight: 700;
line-height: normal;
letter-spacing: 0.9px;
}
.sp_menu_link_jp{
	color: #000;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 18px; /* 150% */
letter-spacing: 0.6px;
}
.sp_menu_arrow{
	 position: relative;
  display: inline-block;
  width: 13px;
  height: 2px;
  margin: 5.3px 0;
  border-radius: 9999px;
  background-color: #273E97;
	
	    margin-left: auto;
    margin-right: -10px;
}

.sp_menu_bottom_flex{
	display: flex;
	justify-content: space-between;
	padding: 0 15px;
}
.sp_menu_bottom_flex a{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46%;
	border-radius: 30px;
	height: 40px;
	background: #273E97;
	
	color: var(--White, #FFF);
	text-align: center;
	font-family: Lato;
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	letter-spacing: 0.75px;
}














/*フッター*/
#footer_part .content_bg{
	padding: 70px 0 0;
}
@media all and (max-width: 767px) {
	#footer_part .content_bg{
		padding: 30px 0 0;
	}
}
.footer_bnr_flex{
	display: flex;
	justify-content: space-between;
	padding-bottom: 70px;
	border-bottom: 1px solid rgba(218, 218, 218, 0.50);
}
.footer_bnr_item{
	width: 48%;
}
p.footer_bnr_title{
	color: #FFF;
font-family: Lato;
font-size: 22px;
font-style: normal;
font-weight: 700;
letter-spacing: 1.1px;
	margin-bottom: 30px;
}
@media all and (max-width: 767px) {
	.footer_bnr_flex{
		flex-direction: column;
		gap:30px;
		padding-bottom: 30px;
	}
	.footer_bnr_item{
		width: 100%;
	}
	p.footer_bnr_title{
		margin-bottom: 12px;
	}
}
.footer_menu_flex{
	display: flex;
	justify-content: space-between;
	color: #fff;
	padding: 50px 0;
}
.footer_menu_item{
	/* width: 16%; */
}
.footer_menu_item:last-child{
	margin-right: 100px;
}
/*横幅指定してズレを調整*/
.footer_menu_item:nth-child(1){
	width: 130px;
}
.footer_menu_item:nth-child(3){
	width: 70px;
}
.footer_menu_item:nth-child(5){
	width: 90px;
}
.footer_menu_title{
	color: #FFF;
font-family: Lato;
font-size: 18px;
font-style: normal;
font-weight: 700;
line-height: 27px; /* 150% */
letter-spacing: 0.9px;
	margin-bottom: 17px;
}
.footer_menu_flex a{
	color: #F5F5F5;
	text-decoration: none;
	
font-family: "Noto Sans JP";
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 21px; /* 150% */
letter-spacing: 0.7px;
	transition: all .3s;
}
.footer_menu_flex a:hover{
	padding-left: 5px;
}
.footer_menu_flex span{
	padding-bottom: 2px;
}
.footer_menu_flex span.underline_ani::after{
	background-color: #fff;
}
.footer_menu_link{
	height: 36px;
}
@media all and (max-width: 767px) {
	.footer_menu_flex{
		flex-wrap: wrap;
		padding: 50px 0 0;
	}
	.footer_menu_item{
		width: 49%;
		margin-bottom: 50px;
	}
	.footer_menu_item:last-child{
		margin-right: 0;
	}
}

.footer_submenu_flex{
	display: flex;
	justify-content: flex-start;
	
	border-bottom: 1px solid rgba(218, 218, 218, 0.50);
	padding-bottom: 6px;
}


.footer_copy_flex{
	display: flex;
	justify-content: flex-end;
	padding: 19px 0 22px;
}
.footer_copy_icon{
	margin-top: 3px;
}
.footer_copy_link{
	margin: 0 auto 0 40px;
}
.footer_copy_link a{
	text-decoration: none;
	color: var(--D6D9E6, #D6D9E6);
font-family: Lato;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 18px; /* 150% */
letter-spacing: 0.6px;
	transition: all .3s;
}
.footer_copy_link a:hover{
	padding-left: 5px;
}
.footer_copy_text{
	color: #FFF;
text-align: right;
font-family: Lato;
font-size: 12px;
font-style: normal;
font-weight: 700;
line-height: 18px; /* 150% */
letter-spacing: 0.6px;
}

#footer_totop{
	position: fixed;
	width: 60px;
	height: 60px;
	right: 20px;
	bottom: 20px;
	z-index: 500;
	display: none;
}
#footer_totop a{
	
	display: flex;
	align-items: center;
	justify-content: center;
	
	border-radius: 5px;
	border: 1px solid var(--DADADA, #DADADA);
	background: var(--vesca-blue, #273E97);
	display: flex;
	width: 100%;
	height: 100%;
}
#footer_totop a img{
	width: 20px;
	height: 18px;
	transition: all .3s;
}
#footer_totop a:hover img{
	margin-top: -10px;
}
/*パンクズ*/
.bread{
	border-top: 1px solid #dadada;
	background: #F5F5F5;
	padding: 30px 0;
}
.bread_flex{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	
	overflow: scroll;
	-ms-overflow-style: none;      /* IE / Edge（旧）用 */
  	scrollbar-width: none;         /* Firefox 用 */
	
	color: #999;
font-family: "Noto Sans JP";
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: 100%;
letter-spacing: 0.7px;
	
	gap:20px;
}
.hide-bread_flex::-webkit-scrollbar {
  display: none;                 /* Chrome, Safari, Opera 用 */
}
.bread_flex a{
	color: #273E97;
font-family: Lato;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: 14px; /* 171.429% */
letter-spacing: 0.7px;
	
	text-decoration: none;
	transition: all .3s;
	display: flex;
	align-items:center;
	margin-top: 2px;
}
.bread_flex a svg {
	margin-right: 10px;
	margin-top: -2px;
}
.bread_flex a svg path{
	transition: all .3s;
}
.bread_flex a:hover{
	color: #999;
}
.bread_flex a:hover svg path{
	fill:#999;
}
.bread_flex a span{
	
}
.bread_flex a::after{
	content: "/";
	color: #bbb;
	height: 18px;
	font-size: 18px;
	margin-left: 20px;
}
.bread_flex div{
	font-size: 100%;
	word-break: keep-all;
	white-space: nowrap;
}

