@charset 'utf-8';

body{
    margin:0;
    padding:0;
    background: #d8e3f1;
    color:#222;
}

.mt_70_sp {
	margin-top: 70px!important;
}

.wrap{
    max-width:100%;
    margin:0 auto;
}
header{
    display:block;
    margin: 0;
}
.logo{
	margin: 50px auto 30px;
	justify-content: center;
}
.logo img{
	max-width:100%
}

.logo a{
    display:flex;
    align-items:center;
	text-decoration:none;
	color:#000;
	justify-content:center;
}
.title{
    margin-left:10px;
}
.title h1{
    font-size:1.4em;
    color:#656565;
	line-height:normal;
}
.title h1 span{
	font-size: 0.7em!important;
	line-height: 1!important;
}
.title p{
    font-size:1.3em;
}
.contact{
    margin:10px 50px 0;
    position:absolute;
    top:0;
    background:#003888;
    margin:0;
    width:100%;
    display:flex;
}
.contact a:visited,.contact a:link{
    text-decoration:none;
    font-size:1.1em;
    display:block;
    color:#eee;
    width:50%;
    text-align:center;
    padding: 6px 0;
    border-bottom:none;
    text-shadow: 1px 1px 1px #000;
}
.tel{
    margin-right:20px;
	border-right:1px solid #fff;
    margin:0;
}
.tel::before,.mail::before{
    font-family:FontAwesome;
    margin-right:5px;
    vertical-align:middle;
    font-size:0.9em;
}
.tel::before{
    content:'\f095';
}
.mail::before{
    content:'\f0e0';
}
.main_img{
    position:relative;
	margin:0 auto;
}

.main_img div{
	display: flex;
	position: absolute;
	top: -465px;
	flex-direction: column;
}

.main_img p:not(:nth-child(2)){
    line-height:2.4;
    font-weight:bold;
    z-index:999;
    margin:auto;
    font-size: 3.8vw;
    text-align: center;
    order: 2;
}
.main_img p:nth-child(2){
    line-height:2.4;
    font-weight:bold;
    z-index:999;
    font-size: 3.8vw;
    text-align: center;
}
.main_img img{
    width:100%;
}
.content{
    margin:20px auto 40px;
	display:block;
}
.about{
    width:60%;
    display:flex;
}
.about h2{
    writing-mode:vertical-rl;
	-ms-writing-mode:tb-rl;
    margin:0 20px 0 30px;
    font-size:1.2em;
    padding-top:5px;
}
.about p{
    line-height:2;
    font-size:1.1em;
    padding-right:20px;
    letter-spacing:1px;
}

nav {
	box-shadow: inset 0 0 5px 5px #22222273;
	background: #1b4f98;
	color: #fff;
	height: calc(100% + 500px);
	padding-bottom: 500px;
	z-index: 9999;
	width: 70%;
	overflow-x: none;
	overflow-y: auto;
	top: 0px;
	right: -70%;
	position: fixed;
	transition: All 0.5s ease;
}

nav br{
	display:none;
}

nav>ul>li>a {
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);
	font-size: 1.5em;
	color: #fff!important;
	font-weight: bold;
	display: block;
	padding: 1em 1.5em;
	text-decoration: none!important;
	position: relative;
	text-shadow: 1px 1px 3px #000;
}
nav>ul>li>a:hover {
	box-shadow: inset 0 0 10px 2px rgb(90, 90, 90);
}
nav>ul>li>a::after {
	display: block
}
nav>ul>li>a img {
	display: none
}

.nav_li_en{
	order:2;
}

.sp_nav_open {
	right: 0 !important
}

.sp_nav_trigger {
	cursor: pointer;
	z-index: 10000;
	position: fixed !important;
	top: 30px;
	right: 15px;
	margin-top: -5px;
	width: 36px;
	height: 24px;
}
.sp_nav_trigger span {
	display: inline-block;
	position: absolute;
	left: 0;
	width: 100%;
	height: 4px;
	background-color: #000;
	border-radius: 4px;
	transition: all .4s;
	box-sizing: border-box
}
.sp_nav_trigger span:nth-of-type(1) {
	top: 0
}
.sp_nav_trigger span:nth-of-type(2) {
	top: 10px
}
.sp_nav_trigger span:nth-of-type(3) {
	bottom: 0
}
.sp_nav_trigger::after {
	position: absolute;
	left: 0;
	bottom: -20px;
	content: 'MENU';
	display: block;
	width: 100%;
	padding-top: 20px;
	color: #000;
	font-size: 10px;
	text-decoration: none;
	text-align: center;
	transition: all 0.4s
}
.sp_nav_trigger.active::after {
	content: 'CLOSE';
	bottom: -25px;
	color: #fff


}
.sp_nav_trigger.active span:nth-of-type(1) {
	transform: translateY(10px) rotate(-45deg);
	background: #fff
}
.sp_nav_trigger.active span:nth-of-type(2) {
	opacity: 0;
	background: #fff
}
.sp_nav_trigger.active span:nth-of-type(3) {
	transform: translateY(-10px) rotate(45deg);
	background: #fff
}


.line{
    width:100%;
    height:1px;
    background:#ccc;
    margin-bottom:30px;
}
.news{
    display:flex;
}
.news h2{
    writing-mode:vertical-rl;
	-ms-writing-mode:tb-rl;
    margin:0 30px 0 20px;
    font-size:1.2em;
    padding-top:15px;
}
.news div{
    height:200px;
    overflow-y:scroll;
}

.news table{
    width:100%;
    font-size:1.1em;
}
.news table tr{
    border-bottom:1px solid #9d9d9d;
    display: flex;
    flex-direction:  column;
}
.news table tr td{
    padding: 5px 0 3px 10px;
}
.news table tr td time::before{
    font-family:FontAwesome;
    content:'\f140';
    font-size:0.8em;
    margin-right:2px;
}

.bnr div {
    display: block;
    width: 70%;
    margin: 50px auto;
}

.bnr div a {
    padding: 20px 10px;
    background: #003888;
    color: #FFFFFF;
    text-decoration: none;
    display: block;
    text-align: center;
}

.bnr div a:hover {
    opacity: 0.7;
}

.index_bnr {
    width: 100%;
    margin-top: 40px;
}
.index_bnr ul {
    margin: 20px;
}

.index_bnr ul .txt a {
    height: 100px!important;
    
}


.index_bnr li {
    display: block;
    margin-bottom: 20px;
    border: 2px solid #003888;
}

.index_bnr li img {
    width: 100%;
}

.index_bnr li a {
    display: flex;
    text-decoration: none;
    color: #000;
    text-align: center;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 1.3rem;
    background: #fff;
}

.index_bnr .ipl img {
    width: 50%;
    padding-bottom: 5px;
}


.member{
	display:flex;
	margin-right: 20px;
}

.member h2{
    margin: 0 20px;
    font-size:1.2em;
    writing-mode:vertical-lr;
    -ms-writing-mode:tb-lr;
}

.member ul{
	width:100%;
	writing-mode:vertical-lr;
	-ms-writing-mode:tb-lr;
	overflow-x:scroll;
}

.member ul::-webkit-scrollbar {
	height: 5px;
}
.member ul::-webkit-scrollbar-thumb:active {
	background:#9a9a9a
}
.member ul::-webkit-scrollbar-thumb{
	background: #c1c1c1;
}
.member ul::-webkit-scrollbar-track-piece {
	background: #fff;
}

.member ul li{
	margin: 0 5px 10px;
}

section{
	position:relative;
	margin-bottom: 20px;
}

.mcon{
	width: 99%;
	margin:0 auto;
	padding: 0 10px;
	position:relative;
	display:flex;
	flex-direction:  column;
	position:relative;
}

.mcon:before{
    content: "";
    background: -webkit-linear-gradient(#333, #fff);
    background: linear-gradient(#333, #fff);
    width: 1px;
    height: 100%;
    position: absolute;
    left: 0px;
    top: 0;
}


.mcon:after{
    content: "";
    background: -webkit-linear-gradient(#333, #fff);
    background: linear-gradient(#333, #fff); 
	width: 1px;
    height: 100%;
    position: absolute;
    right: 0px;
    top: 0;
}

.mcon h2{
	font-size:1.8rem;
	font-weight:bold;
	position:relative;
	margin-bottom:20px;
	padding: 5px 5px;
	margin-right: 20px;
}

.mcon h2:before{
	content: "";
	display:block;
	width: 100%;
	height: 1px;
	background: -webkit-radial-gradient(0% 54%, circle, #EDEDED, #333);
	background: -ms-radial-gradient(0% 54%, circle, #EDEDED, #333);
	background: radial-gradient(0% 54%, circle, #333, #EDEDED);
	position: absolute;
	left: 0;
	top: 0;
	color: #fff;
}
.mcon h2:after{
	position: absolute;
	content: "";
	display:block;
	width: 100%;
	height: 1px;
	background: -webkit-radial-gradient(0% 54%, circle, #333, #EDEDED);
	background: -ms-radial-gradient(0% 54%, circle, #333, #EDEDED);
	background: radial-gradient(0% 54%, circle, #333, #EDEDED);
	position: absolute;
	right: 0;
	bottom: 0;
}

.mcon h3{
	font-size:1.6rem;
	font-weight:bold;
	position:relative;
	margin-bottom:15px;
}

.mcon h3 span{
	font-size: 0.8em;
	display:block;
}

.mcon h3:before{
	position: absolute;
    content: "";
	display:block;
    width: 100%;
    height: 1px;
    background: -webkit-radial-gradient(0% 54%, circle, #333, #EDEDED);
	background: -ms-radial-gradient(0% 54%, circle, #333, #EDEDED);
    background: radial-gradient(0% 54%, circle, #333, #EDEDED);
    position: absolute;
    left: 0;
    bottom: 0;
}

.mcon h3:after {
    position: absolute;
    content: "";
	display:block;
    width: 100%;
    height: 1px;
    background: -webkit-radial-gradient(0% 54%, circle, #333, #EDEDED);
	background: -ms-radial-gradient(0% 54%, circle, #333, #EDEDED);
    background: radial-gradient(0% 54%, circle, #333, #EDEDED);
    position: absolute;
    left: 0;
    bottom: -4px;
}

.mcon h4{
	font-size:1.4rem;
	font-weight:bold;
	margin-bottom:10px;
	padding-left: 5px;
	position:  relative;
}

.mcon h4:before {
    position: absolute;
    content: "";
	display:block;
    width: 100%;
    height: 1px;
    background: -webkit-radial-gradient(0% 54%, circle, #333, #EDEDED);
	background: -ms-radial-gradient(0% 54%, circle, #333, #EDEDED);
    background: radial-gradient(0% 54%, circle, #333, #EDEDED);
    position: absolute;
    left: 0;
    bottom: 0;
}

.mcon h5{
	font-size:1.2rem;
	font-weight:bold;
	margin-bottom:5px;
	position: relative;
	padding-left: 10px;
}

.mcon h5:before {
    content: "";
    border: 1px solid #000;
    margin-right: 5px;
    position:  absolute;
    top: 0;

    bottom: 0;
    left: 0;
}

.mcon p{
	padding:5px 0;
}

.mcon ol{
	margin-left:2em;
}

.mcon li{
	margin-bottom:5px;
}

.mcon img{
	max-width:100%;
	height:auto;
}

footer{
    width:100%;
    height:40px;
    background:#003888;
    margin-top:50px;
}
footer p{
    text-align:center;
    color:#FFFFFF;
    line-height:4;
    font-size:0.8em;
    letter-spacing:1px;
}

.about{
	width:100%;
}

.about h2{
	margin-left:15px;
}

.about p{
	padding-right:15px;
}
.line{
    margin-bottom:10px;
}
.news{
	margin-right:15px;

}
.news h2{
	margin-right:15px;
}	
.mcon{
	width:99%
}
.contents h2{
  padding: 0.4em 1em;/*文字の上下 左右の余白*/
  color: #fff;/*文字色*/
  border-left: solid 5px #003888;/*左線*/
  border-bottom: dashed 1px #003888;/*下線*/
 font-size: 1.6rem;
     background: #003888;
}

.contents h3{
  padding: 0.4em 1em;/*文字の上下 左右の余白*/
  border-left: solid 5px #003888;/*左線*/
  border-bottom: dashed 1px #003888;/*下線*/
 font-size: 1.4rem;
}

.contents h4{
 padding: 0.25em 1em;/*上下 左右の余白*/
  background: transparent;/*背景透明に*/
  border-left: solid 5px #003888;/*左線*/
 font-size: 1.3rem;
}

.contents p{
    line-height: 2;
    font-size: 1.1em;
    padding: 5px 20px;
    letter-spacing: 1px;
}

.contents li{
    line-height: 2;
    font-size: 1.1em;
    padding: 5px 20px;
    letter-spacing: 1px;
}
.contents .flex {
    display: block;
}
.contents .as_c {
    align-self: center;
}

.contents img {
    width: 100%;
}
