@charset "utf-8";
/* CSS Document */
*::selection {background: var(--accent-color); color: #fff;}
*::-moz-selection {background:  var(--accent-color); color: #fff;}
:root {
    --accent-color:#000081;
    --font-color:#444;
    --gray-color1:#666;
    --gray-color2:#ccc;
    --gray-color3:#f2f2f2;
    --font-en: 'Roboto', sans-serif;
}

/* reset:
--------------------------------------------*/

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	-webkit-text-size-adjust: none;
}

ul li {list-style: none;}
em,address {font-style: normal;}

button{
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0;
    border: none;
    background: transparent;
    font-family: 'Noto Sans JP', sans-serif;
}
button:hover {cursor: pointer;}

button:focus {
    outline: 2px solid var(--accent-color);
}

/* a
--------------------------------------------*/
a {
  color: var(--accent-color);
  text-decoration: underline;
}

a:hover {
  text-decoration: none;
    transition: 0.3s;	
}
header a {
  color: var(--font-color);
  text-decoration: none;
}

img.icon {
	border: none;
	vertical-align: middle;
	padding-left: 0.2rem;
	padding-bottom: 0.2rem;
}

/* Basic
--------------------------------------------*/

html {
	scroll-behavior: smooth;
	font-size: 16px;
	box-sizing: border-box;
}

@media screen and (min-width: 1366px){
	html {font-size: 16px;}
}

@media screen and (min-width: 960px){
	html {font-size: 14px;}
}

@media screen and (max-width: 959px){
	html {font-size: 12px;}
}

body {
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 2rem;
    font-family: 'Noto Sans JP', sans-serif;
    color: var(--font-color);    
}

body.en{
    font-family:'Roboto', sans-serif;
}

.outline {
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
}
#contents.outline,
#contents .outline{
    padding: 3rem 2rem;
}

/* block_skip
--------------------------------------------*/
#block_skip a {
	display:block;
	height: 0;
	overflow: hidden;
	padding-left: 20px;
	color: #fff;
	background: var(--accent-color);
	font-size: 100%;
	text-align: center;
}

#block_skip a:before {
	content: "";
	display: inline-block;
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(135deg);
	position: relative;
	margin-right: 10px;
	bottom: 3px;
}

#block_skip a:focus {
	height: auto;
	line-height: 3em;
	outline: 2px var(--accent-color) solid;
}

/* header
--------------------------------------------*/
header{
    border-bottom: solid 1px var(--gray-color2);
    padding: 1rem;
}
header > div{
    display: flex;
    justify-content: space-between;
}
header #logo {
    width: 20%;
    min-width: 200px;
}
header #logo img {
    width: 100%;
    max-width: 300px;
}

.h_right{
    display: flex;
    justify-content: flex-end;
	align-items: center;
}

.h_right nav ul{
    display: flex;
    margin: 0 1rem 0 0;
    font-size: 0.95rem;
}

.h_right nav ul li a,
.h_right nav ul li em {
    position: relative;
    display: block;
    margin: 0 0.5rem;
    padding: 0.5rem 1rem;
    text-decoration: none;
}

.h_right nav ul li a:hover,
.h_right nav ul li em {
    color: var(--accent-color);
}
.h_right nav ul li a:after,
.h_right nav ul li em:after {
    position: absolute;
    bottom: 0;
    left: 20%;
    content: '';
    background-color: var(--gray-color2);
    width: 60%;
    height: 2px;
}
.h_right nav ul li a:hover:after,
.h_right nav ul li em:after{
    left: 0;
    width: 100%;
    background-color: var(--accent-color);
    transition: 0.3s;
}

.h_right .lang{
    display: flex;
    justify-content: flex-end;
	align-items: center;
    font-size: 0.9rem;
}
.h_right .lang a{
   display: block;
    padding: 0.2rem 1.5rem;
    border: solid 1px var(--gray-color2);
	border-radius: 2rem;
    text-decoration: none;
}

.h_right .lang a:hover{
    background: var(--accent-color);
    color: #fff;
}

.sp_btn{
    display: none;
}
/* footer
--------------------------------------------*/

footer {
    background:var(--gray-color3);
    padding: 2rem; 
    font-size: 0.9rem;
}

footer .txt{
    margin-bottom: 0.5rem;
}

footer dl{
    display: flex;
    justify-content: flex-start;
    background: #fff;
    padding: 1rem;
    margin-bottom: 1rem;
}
footer dl dt{
    font-weight: bold;
    margin: 0 1rem 0 0;
}
footer ul li{
    display: inline-block;
    margin: 0 1rem 0 0;
}
#copy{
    text-align: right;
    font-size: 0.8rem;
    letter-spacing: 0.1rem;
    line-height: 1.4rem;
}

/* top
--------------------------------------------*/
/*-- mainvisual --*/

#mainvisual{
    background: var(--gray-color1);
    text-align: center;
}

/*-- about --*/

#about{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    background: url("../img/about_img.jpg") no-repeat;
    background-position:  140% 40%;
    background-size: 130%;
    margin-bottom: 2rem;
    position: relative;
}

#about:after{
    position: absolute;
    content: "";
    background-color: rgba(0,32,54,0.8);
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#about h2{
    color: #fff;
    margin: 0;
    padding: 0 10vh;
    text-align: center;
    z-index: 2;
    border-bottom: none;
}

#contents #about p{
    background: var(--gray-color3);
    margin: 0;
    padding: 3rem 2rem;
    z-index: 3;
}

/*-- banner --*/

.banner{
	display: grid;
    grid-template-columns: repeat(2,1fr);
	grid-gap: 2rem;
    font-size: 1.4rem;
    margin-bottom: 2rem;
}
.banner li{
    display: flex;
    flex-wrap: wrap;
}
.banner li a{
    width: 100%;
    padding: 2rem;
    background:var(--gray-color3);
    text-decoration: none;
}

.banner a {
    align-items: center;
    display: flex;
    color: var(--accent-color);
    font-weight: bold;
    background: transparent;
    border: 2px solid var(--accent-color);
    position: relative;
    z-index: 1;
    overflow: hidden;
    transition: .3s;
    text-align: left;
}

.banner a:hover {
	color: #fff;
	background:  var(--accent-color);
}

.banner-1r{
	display: grid;
	grid-gap: 2rem;
    font-size: 1.4rem;
    margin-bottom: 2rem;
}
.banner-1r li{
    display: flex;
    flex-wrap: wrap;
}
.banner-1r li a{
    width: 100%;
    padding: 2rem;
    background:var(--gray-color3);
    text-decoration: none;
}

.banner-1r a {
    align-items: center;
    display: flex;
    color: var(--accent-color);
    font-weight: bold;
    background: transparent;
    border: 2px solid var(--accent-color);
    position: relative;
    z-index: 1;
    overflow: hidden;
    transition: .3s;
    text-align: left;
}

.banner-1r a:hover {
	color: #fff;
	background:  var(--accent-color);
}

/* s_main
--------------------------------------------*/
.s_main{
    background: url("../img/about_img.jpg") no-repeat 0 30%;
    background-size: cover;
    position: relative;
    z-index: 0;
    padding: 5rem;
    line-height: 3rem;
}
.s_main:after{
    position: absolute;
    content: "";
    background-color: rgba(0,32,54,0.8);
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.s_main span{
    position: relative;
    z-index: 2;
    color: #fff;
    font-weight: normal;
	display: block;
	max-width: 1400px;
    margin: 0 auto;
}

/*　パンくずリスト:
------------------------------------------------*/
#pan {
    background:var(--gray-color3);    
    padding: 0.3rem 1rem;
}
#pan ul{
    text-align: right;
    font-size: 0.9rem;
}

#pan ul li{
    display: inline-block;
}

#pan ul li a{
    display: block;
    background: url("../img/arrow01.svg") no-repeat 0 1.1rem;
    background-size: 1.5rem;
    padding: 0.5rem 1rem 0.5rem 2rem;
}
#pan ul li em{
    margin: 0 0 0 0.5rem;
    font-weight: bold;
}

/*　文書構造:
------------------------------------------------*/

/*-- タイトル --*/

h2{
    font-size: 2rem;
    font-weight: normal;
    margin: 5rem 0 2rem;
	line-height: 3rem;
    padding: 1rem;
    border-bottom: solid 3px var(--accent-color);
}

h3{
    font-size: 1.4rem;
    font-weight: normal;
    margin: 3rem 0 1rem;
}

/*-- 段落 --*/

#contents p{
    line-height: 2rem;
    margin-bottom: 2rem;
}

/*-- リンク --*/

#contents p.lnk a {
    display: inline-block;
	text-decoration: none;
	color: var(--accent-color);
	padding: 1.2rem 5rem 1.2rem 5rem;
	border: 2px solid var(--accent-color);
	min-width: 14rem;
	position: relative;
}

#contents p.lnk a:after {
    position: absolute;
    content: "";
    top: 32%;
    right: 0.5rem;
    width: 1.5rem;
    height: 1.5rem;
    background: url(../img/arrow02_1.svg) no-repeat;
    transform: rotate(-90deg);
}

#contents p.lnk a:hover {
	color: #fff;
	background: var(--accent-color);
}

#contents p.lnk {
	text-align: center;
}

/*-- リスト --*/

ul.list {
	margin: 0 0 2rem;
}
ul.list li {
    display: block;
    position: relative;
    padding: 0.2rem 1rem;
}

ul.list li:after {
    position: absolute;
    content: "";
    background: var(--accent-color);
    width: 5px;
    height: 5px;
    top: 1.1rem;
    left: 0;
}

ul.list2 {
    display: grid;
	grid-gap: 2rem;
    grid-template-columns: repeat(2,1fr);
    margin: 0 0 2rem;
}
ul.list2 li a {
    display: block;
    background: url("../img/arrow01.svg") no-repeat right 1rem center;
    background-size: 1.5rem;
    padding: 1rem 3rem 1rem 1rem;
    border: 1px solid var(--accent-color);
    text-decoration: none;
}
ul.list2 li a:hover {
    display: block;
    background: var(--accent-color) url("../img/arrow01_w.svg") no-repeat right 1rem center;
    background-size: 1.5rem;
    padding: 1rem 3rem 1rem 1rem;
    color: #fff;
}

/*-- テーブル --*/

.table1 {
    border-collapse: collapse;
	border-left: 1px solid var(--gray-color2);
	border-top: 1px solid var(--gray-color2);
	width: 100%;
}

.table1 th {
	background: var(--gray-color3);
}

.table1 td,
.table1 th {	
	border-right: 1px solid  var(--gray-color2);
	border-bottom: 1px solid  var(--gray-color2);
	padding: 1rem 1.5rem;
}

.sp_scroll .scroll_txt {
	display: none;
}


/*右寄せ*/
.align_r{text-align: right;}

.list_acc button{
	border: none;
    display: block;
    width: 100%;
    background: var(--gray-color3) url("../img/arrow02_1.svg") no-repeat right 1rem center;
    background-size: 1.5rem;
    padding: 1rem 3rem 1rem 1rem;
    margin-bottom: 0.5rem;
	transition: all 300ms 0s ease;
    font-size: 1.2rem;
    text-align: left;
}
.list_acc button.on{
    background: var(--gray-color3) url("../img/arrow02_2.svg") no-repeat right 1rem center;
    background-size: 1.5rem;
}

.list_acc .acc_box{
    display: none;
}

/* support
--------------------------------------------*/
.support_box{
	display: grid;
    grid-template-columns: repeat(4,1fr);
    grid-gap: 2rem;
}

.support_box li{
    box-shadow: 10px 10px 5px var(--gray-color3);
    border: 1px solid var(--gray-color2);
    text-align: center;
    padding: 0 0 2rem;
}
.support_box li img{
    width: 10rem;
    margin-bottom: 0;
}


/* news
--------------------------------------------*/

.news_box {
	 margin-bottom: 7rem;
}

.news {
    margin-bottom: 2rem;
}
.news li a,
.news li em {
    display: block;
    border-bottom: 1px solid var(--gray-color2);
    padding: 0.7rem 3.5rem 0.7rem 1rem;
    text-decoration: none;
    background: url(../img/common/arrow03.svg) no-repeat;
    background-position: right 1em center;
    background-size: 25px;
    color: var(--main-color);
    position: relative;
}

.news li a:hover {
    background:var(--gray-color3) url(../img/common/arrow03.svg) no-repeat;
    background-position: right 1em center;
    background-size: 25px;
}
.news li time{
    font-weight: bold;
}
.news li span.text {
    display: block;
}

.news li span.news_btn {
	padding: 0.5rem 1rem;
	margin: 0.5rem 0;
	color: var(--accent-color);
    /*border: 2px solid var(--accent-color);*/
    /*min-width: 14rem;*/
    display:inline-block;
	border-bottom: 2px solid var(--accent-color);
	transition: 0.3s;
}

.news li a:after {
    position: absolute;
    content: "";
    top: 50%;
    right: 1rem;
    width: 20px;
    height: 20px;
    background:  url(../img/arrow02_1.svg) no-repeat;
    transform:rotate(-90deg);
}




/* movie
--------------------------------------------*/

.movie {
    margin: 2rem auto 1rem;
    text-align: center;
}
.movie iframe {
    aspect-ratio: 16 / 9;
    width: 80%;
    height: auto;
}


/* meeting
--------------------------------------------*/

.meeting {
	display: flex;
	justify-content: center;
	margin-bottom:20px
}
.meeting img{
	width: 100%
}

.community-container{
    display:flex;
    flex-wrap:wrap;
    width:100%;
    margin-bottom: 40px;
  }
.community-item{
   text-align: center;
   width: 50%;
   padding: 10px;
   border: 1px solid;
  }
}

.access {
    margin: 2rem auto 1rem;
    text-align: center;
}
.access iframe {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
}
