@charset 'utf-8';

body{
    margin:0;
    padding:0;
    background: #d8e3f1;
    color:#222;
    border-top: 5px solid #003888;
}
.wrap{
    max-width:960px;
    margin:0 auto;
}
header{
    display:flex;
    justify-content:space-between;
    margin: 50px auto;
}
.logo{
    display:flex;
    align-items:center;
}
.title{
    margin-left:10px;
}
.title h1{
    font-size:1.7em;
}
.title p{
    font-size:1.3em;
}
.contact{
    margin:10px 50px 0;
}
.contact a:visited,.contact a:link{
    color:#222;
    text-decoration:none;
    border-bottom:1px solid #222;
    font-size:1.1em;
}
.tel{
    margin-right:20px;
}
.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;
}
.main_img p{
    position:absolute;
    writing-mode:vertical-rl;
    top:-50px;
    right:50px;
    font-size:1.5em;
    line-height:2.4;
    font-weight:bold;
}
.main_img img{
    width:100%;
}
.content{
    display:flex;
    margin:30px auto 40px;
}
.about{
    width:100%;
    display:flex;
}
.about h2{
    writing-mode:vertical-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;
}
.content nav{
    width:40%;
    writing-mode: vertical-lr;
    text-orientation:upright;
}
.content nav ul{
    width:100%;
    display:inline-block;
}
.content nav ul li{
    width:20%;
    position:relative;
}
.content nav ul li::before{
    content:'';
    width:1px;
    height:0;
    background-color:#222;
    position:absolute;
    right:15px;
    transition:all .3s;
}
.content nav ul li a:visited,
.content nav ul li a:link{
    text-decoration:none;
    color:#222;
    display:block;
    width:100%;
    line-height:6;
}
.content nav ul .link_col02{
    padding:0 4em
}
.content nav ul .link_col02 a:visited,
.content nav ul .link_col02 a:link{
    line-height: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
.content nav ul li:hover::before{
    height:100%;
}
.line{
    width:100%;
    height:1px;
    background:#ccc;
    margin-bottom:30px;
}
.news{
    display:flex;
}
.news h2{
    writing-mode:vertical-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;
}
.news table tr td{
    padding:16px 0 3px 10px;
}
.news table tr td time::before{
    font-family:FontAwesome;
    content:'\f140';
    font-size:0.8em;
    margin-right:2px;
}

.bnr {
}

.bnr div {
    display: block;
    margin: 50px 20px 20px 20px;
}

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

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

.index_bnr {
    width: 960px;
    margin-top: 40px;
}
.index_bnr ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

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

.index_bnr li a {
    width: 300px;
    height: 100px;
    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 li a:hover {
    opacity: 0.7;
}

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

.index_bnr .ipl div {
    font-size:1rem;
}

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;
}

.contents_nav {
    display: block;
}

.contents_nav nav {
    width: 100%;
    margin-bottom: 40px;
}
.contents_nav nav ul {
    display: flex;
}

.contents_nav nav li {
    display: block;
    border-right: 1px solid #003888;
}

.contents_nav nav li:first-child {
    border-left: 1px solid #003888;
}

.contents_nav nav li a {
    padding: 30px 30px;
    text-decoration: none;
    color: #666;
    font-weight: bold;
    font-size: 1.2rem;
}
.contents_nav nav li a:hover {
    color: #003888;
}

.current a {
    color: #003888!important;
}

.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-right: 20px;
    letter-spacing: 1px;
}

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


.contents .flex {
    display: flex;
}
.contents .as_c {
    align-self: center;
}
@media screen and (max-width:960px){
    .logo{
        margin-left:20px;
    }
}

@media screen and (max-width:759px){
    header{
        display:block;
        margin:20px;
    }
    .logo{
        margin:0;
    }
    .logo img{
        width:60px;
    }
    .contact{
        margin:12px 4px 0;
    }
    .content{
        display:block;
    }
    .content nav{
        width:100%;
        position:absolute;
        top:-100%;
        left:0;
        z-index:10;
    }
    .content nav ul li a:visited,
    .content nav ul li a:link{
        line-height:10;
    }
    .about{
        width:100%;
    }
    .news{
        margin-left:30px;
    }
}

@media screen and (max-width:579px){
    header{
        margin:0;
    }
    .logo{
        margin:308px auto 30px;
        justify-content:center;
    }
    .contact{
        position:absolute;
        top:0;
        background:#aaa;
        margin:0;
        width:100%;
        display:flex;
    }
    .contact a:visited,
    .contact a:link{
        display:block;
        color:#eee;
        width:50%;
        text-align:center;
        line-height:3;
        border-bottom:none;
    }
    .tel{
        border-right:1px solid #fff;
        margin:0;
    }
    .main_img p{
        right:0;
        left:0;
        margin:auto;
        width:110px;
        top:-318px;
        font-size:1.2em;
    }
    .content{
        margin-top:20px;
    }
    .about h2{
        margin-left:15px;
    }
    .about p{
        padding-right:15px;
    }
    .line{
        margin-bottom:10px;
    }
    .news{
        margin-left:15px;
    }
    .news h2{
        margin-right:15px;
    }
}