@charset "utf-8";

/* layout
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
a { color: inherit; text-decoration: none; }
.fwb { font-weight: bold; }
.sp_cont { display: block; }
.w_768, .w_650, .pc_only { display: none; }
@media screen and ( min-width: 651px ) {
	.sp_cont { display: none; }
	.w_650 { display: block; }
}
@media screen and ( min-width: 769px ) {
	.w_768 { display: block; }
}
@media screen and ( min-width: 981px ) {
	.flb { display: flex; } .flb_r { display: flex; flex-flow: row-reverse; }
	.pc_only { display: block; }
	.tab_cont { display: none; }
}

/* body ----------*/
/*
body { width: 100%; min-width: 650px; }
@media screen and ( min-width: 981px ) {
	body { width: 100%; min-width: 1200px; }
}
*/

/* body-wrap ----------*/
#body-wrap { padding-left: 0; overflow: hidden; }
#body-wrap .inner:not(#mv .inner) { margin-top: -4rem; padding: 0 0 4rem 0; }
#body-wrap img { max-width: 100%; }
a:link, a:visited {}
@media screen and ( min-width: 981px ) {
	#body-wrap { padding-left: 210px; }
	#body-wrap .inner { padding: 0; }
}
/* contents-wrap ----------*/
#contents-wrap {}

/* header ----------*/
#header { position: fixed; z-index: 999; top: 0; left: 0; width: 100%; height: 60px; padding: 1rem 2rem; background: #fff; }
#header-logo { position: absolute; top: 50%; width: 50%; max-width: 150px; transform: translateY(-50%); }
@media screen and ( min-width: 651px ) {
	#header { height: 100px; }
	#header-logo { width: 30%; max-width: inherit; }
}

/* nav_bar ----------*/
#nav_bar { position: absolute; top: 50%; right: 2rem; display: block; width: 5rem; height: 5rem; transform: translateY(-50%); }
#nav_bar:hover { cursor: pointer; }
#nav_bar span { position: relative; display: block; width: inherit; height: inherit; }
#nav_bar:after, #nav_bar span:before, #nav_bar span:after { position: absolute; left: 20%; content: ""; display: block; width: 60%; height: 3px; background-color: #0a3289; transition: all 0.2s ease-out; }
#nav_bar:after { top: 28%; }
#nav_bar span:before { top: calc(50% - 1px); }
#nav_bar span:after { bottom: 28%; }
#nav_bar:hover:after { top: 35%; }
#nav_bar:hover span:after { bottom: 35%; }
	.nav_open { position: fixed; z-index: -1; width: 100%; height: 100%; }
	.nav_open #nav_bar { color: #fff; background: #0a3289; }
	.nav_open #nav_bar:after, .nav_open #nav_bar span:before, .nav_open #nav_bar span:after { background: #fff; }
	.nav_open #nav_bar:hover,
	.nav_open #nav_bar:active { opacity: 1; }
	.nav_open #nav_bar:after { top: calc(50% - 1px); -webkit-transform: rotate(135deg); transform: rotate(135deg); }
	.nav_open #nav_bar span:before { opacity: 0; }
	.nav_open #nav_bar span:after { bottom: calc(50% - 1px); -webkit-transform: rotate(-135deg); transform: rotate(-135deg); }
@media screen and ( min-width: 981px ) {
	#nav_bar { width: 6rem; height: 6rem; }
}
@media screen and ( min-width: 981px ) {
	#nav_bar { display: none; }
}
/* nav ----------*/
#nav { z-index: 9999; display: none; }
#nav .inner { margin-top: 0!important; }
.nav_open #nav { position: fixed; top: 60px; display: block; width: 100%; height: 100%; background: #fff; overflow: auto; }
.nav_open #nav .inner { overflow: auto; padding-bottom: 7rem; }
#nav li { position: relative; }
#nav li a { display: block; }
#nav li span { position: relative; display: block; padding: 2rem; cursor: pointer; }
#nav .inner > ul li { font-size: 2.55rem; border-top: 1px solid #595757; }
#nav .bnr ul { display: flex; padding: 3rem 2rem; flex-wrap: wrap; border-top: 1px solid; }
#nav .bnr li { width: calc( (99.999% - 2rem) / 2 ); border: none; }
#nav .bnr li a { color: #0a3289; }
#nav .bnr li:not(:nth-last-of-type(1)) { margin-right: 2rem; }
#nav .acd_cont { height: 0; opacity: 0; transition: 0; }
#nav .acd_cont a { pointer-events: none; }
#nav .open { height: auto; opacity: 1; transition: .3s; }
#nav li.pointer span::after { position: absolute; top: 50%; right: 2rem; content: "+"; display: block; width: 1em; height: 1em; font-size: 4rem; line-height: 1; transform: translateY(-50%); }
#nav li.check span::after { right: 2.6rem; content: "ー"; font-size: 3rem; }
#nav li .open li { background: #ebedf3; border-color: #595757; }
#nav li .open li a { position: relative; padding: 2rem; pointer-events: auto; }
#nav li .open li small { margin-right: 0.3em; }
#nav li .open li a::after { position: absolute; top: 50%; right: 2rem; content: "\f054"; display: block; width: 1em; height: 1em; font-family: "Font Awesome 5 Pro"; font-size: 3rem; line-height: 1; transform: translateY(-50%); }
#nav .bnr ul { display: flex; border: none; padding: 5rem 0; }
#nav .bnr li { width: calc(50% - 5px); height: 155px; background: #e2f1ff; padding: 2rem 1rem; font-size: 1.35rem; position: relative; }
#nav .bnr li a::before { content:""; width: 4rem; height: 4rem; display: block; background: #0a3289; position: absolute; bottom: 0; right: 0; }
#nav .bnr li a::after { content: "\f105"; font-family: "Font Awesome 5 Pro"; width: 4rem; height: 4rem; display: block; position: absolute; bottom: 0; right: 0rem; color: #fff; text-align: center; font-weight: 100; font-size: 2rem; line-height: 2; }
#nav .bnr li:nth-of-type(2) a::after { content: ""; width: 2rem; height: 2rem; display: block; position: absolute; bottom: 1rem; right: 1rem; color: #fff; text-align: center; background: url(../_img/common/blank.png)no-repeat; background-size: contain; }
#nav .bnr li h3 { font-size: 1.8rem; }
#nav .bnr li:not(:nth-last-of-type(1)) { margin: 0 5px 5px 2.5px; }
@media screen and ( min-width: 480px ) {
	#nav li span { padding: 4rem; }
	#nav li .open li a { padding: 4rem; }
}
@media screen and ( min-width: 650px ) {
	.nav_open #nav  { top: 100px; }
	#nav .bnr li { padding: 2rem; }
}
@media screen and ( min-width: 981px ) {
	#nav { position: fixed; top: 0; left: 0; display: block; width: 210px; height: 100%; background: #fff; }
	#nav .inner { height: 100%; padding-bottom: 0; }
	#nav .acd_cont a { pointer-events: auto; }
	#nav ul { padding: 2rem 0; border: none; }
	#nav li.current::before { content:""; width: 5px; height: 50%; display: block; border-left: 5px solid #0054b4; position: absolute; top: 50%; left: 3px; transform: translateY(-50%); }
	#nav li span { padding: 0; }
	#nav .inner > ul li { font-size: 1.3rem; border: none; }
	#nav .inner > ul > li:nth-of-type(1) { margin-bottom: 2.45rem; }
	#nav li.pc_only { padding: 0 2rem; }
	#nav .acd_cont { position: fixed; top: 0; left: 120px; display: inline; width: 210px; height: 100%; transition: all .1s ease; visibility: hidden; opacity: 0; padding-top: 90px; z-index: -5; }
	#nav .acd_cont li { padding: 0.725rem 2rem; pointer-events: none; }
	#nav .acd_cont li:hover { background: #333; }
	#nav li.pointer { padding: 0.725rem 2.5rem; cursor: pointer; }
	#nav li.pointer:hover,
	#nav .acd_cont li:hover { color: #fff; background: #002156; }
	#nav li.pointer:hover > .acd_cont,
	#nav .acd_cont:hover { z-index: -5; left: 210px; color: #fff; background: rgba(0, 33, 86, 0.8); opacity: 1; visibility: visible; transition: .3s; }
	#nav li.pointer span::after,
	#nav li.pointer .check span::after,
	#nav li .open li a::after { content: none; }
	#nav li .open li { background: none; }
	#nav li li small { display: none; }
	#nav .bnr ul { display: block; border: none; padding: 10rem 0; }
	#nav .bnr li { width: 205px; font-size: 1.2rem; }
	#nav .bnr li:not(:nth-last-of-type(1)) { margin: 0 0 5px 0; }
}

/* main ----------*/
.crumbList { position: absolute; bottom: 0; left: 0; display: flex; width: 100%; padding: 2rem 3rem; font-size: 1.6rem; color: #fff; background: rgba(0, 33, 86, 0.8); }
@media screen and ( min-width: 481px ) {
	.crumbList { font-size: 2.2rem; }
}
@media screen and ( min-width: 769px ) {
	.crumbList { font-size: 1.6rem; }
}
@media screen and ( min-width: 961px ) {
	.crumbList { font-size: 1.2rem; }
}

/* pageup ----------*/
#pageup { position: static; width: 100%; opacity: 1; }
#pageup a { position: relative; display: block; display: block; width: 100%; height: 6rem; background-color: #8793ba; z-index: 10; }
#pageup a > span { position: absolute; top: 50%; width: 100%; font-size: 5rem; color: #fff; text-align: center; transform: translateY(-50%); }
@media screen and ( min-width: 651px ) {
	#pageup .w_650 { display: inline; }
	#pageup a > span { display: block; font-size: 1.6rem; }
}
/* footer ----------*/
#footer { position: relative; z-index: 10; font-size: 1.3rem; color: #54639e; background: #d9dde9; }
#footer a { color: #54639e; }
#footer .footer_menu { padding: 3rem 2rem; }
#footer .footer_menu .flb { justify-content: space-between; }
#footer-copy { padding: 1rem 2rem; font-size: 1.2rem; text-align: left; }
@media screen and ( min-width: 481px ) {
	#footer { position: relative; }
}
@media screen and ( min-width: 769px ) {
	#footer { margin-top: 0; }
	#footer .footer_menu .flb { display: flex; }
	#footer-copy { font-size: 0.9rem; padding: 1rem 2rem; text-align: right; border-top: 1px solid #8793ba; }
}
@media screen and ( min-width: 951px ) {}