@charset "utf-8";
#main {
  max-width: 1100px;
  margin: 0 auto;
  padding: 30px 10px 20px 10px;
  text-align: center;
}
/* main */
.cssgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 1fr;
  grid-gap: 0.8em;
  padding: 0.8em;
  margin: 0 0 2em;
}
.cssgrid > div {
  overflow: auto;
  min-width: 0;
  padding: 0;
  text-align: center;
  border: 2px solid #063076;
  background-image: linear-gradient(-45deg, #063076 10px, transparent 0);
}
.cssgrid a {
  color: #063076;
  text-decoration: none;
}
.cssgrid p {
  border-top: dotted 2px #063076;
  padding: 1rem .5rem;
  margin: 0 1rem;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .cssgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    grid-gap: 0.2em;
    padding: 0.8em;
    margin: 0 0 2em;
  }
  .cssgrid p {
    font-size: .625rem;
  }
}
/* news */
.news {
  display: flex;
  flex-wrap: wrap;
  max-width: 1100px;
  margin: 0 auto;
}
.news-1 {
  display: inline-block;
  flex: auto;
  margin-bottom: 3rem;
}
.news .ttl {
  display: inline-block;
  width: 100%;
}
.news h2 {
  text-align: center;
  position: relative;
  padding: 0.5em 0;
  color: #063076;
  font-size: 1.5rem;
  border-bottom: solid 5px #f2f2f2;
}
.news h2::after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 5px #063076;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  bottom: -5px;
  width: 20%;
}
.news-1 .btn-list {
  text-align: center;
  padding: 1rem;
  border-top: solid 2px #f2f2f2;
}
.news-1 .btn-list p {
  position: relative;
  display: inline-block;
  background-color: #063076;
  padding: 3px 26px 3px 10px;
}
.news-1 .btn-list p::before {
  position: absolute;
  right: 8px;
  top: 12px;
  display: block;
  content: "";
  width: 12px;
  height: 2px;
  background: #fff;
}
.news-1 .btn-list p::after {
  position: absolute;
  right: 8px;
  top: 8px;
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  transform: rotate(45deg);
}
.news-1 .btn-list a {
  color: #fff;
}
.news_list {
  height: 400px;
  overflow: auto;
}
.news_list dl {
  padding: 15px 0;
  border-bottom: 1px dotted #999;
}
.news_list dt {
  clear: left;
  padding-bottom: 5px;
  padding-left: 10px;
  font-size: .8rem;
  font-weight: bold;
}
.icon_news::before {
  content: "ニュース";
  display: inline-block;
  text-align: center;
  margin-right: 1rem;
  min-width: 5rem;
  color: #fff;
  padding: 0 3px;
  font-weight: normal;
  background-color: #FF7C99;
}
.icon_event::before {
  content: "イベント";
  display: inline-block;
  text-align: center;
  margin-right: 1rem;
  min-width: 5rem;
  color: #fff;
  padding: 0 3px;
  font-weight: normal;
  background-color: #7AD3B8;
}
.icon_report::before {
  content: "報告";
  display: inline-block;
  text-align: center;
  margin-right: 1rem;
  min-width: 5rem;
  color: #fff;
  padding: 0 3px;
  font-weight: normal;
  background-color: #F9C34D;
}
.icon_boshu::before {
  content: "募集";
  display: inline-block;
  text-align: center;
  margin-right: 1rem;
  min-width: 5rem;
  color: #fff;
  padding: 0 3px;
  font-weight: normal;
  background-color: #748FF5;
}
.icon_off::after {
  content: "外部リンク";
  display: inline-block;
  text-align: center;
  margin-left: .8rem;
  min-width: 2rem;
  border: 1px solid #063076;
  color: #063076;
  padding: 0 3px;
  font-size: .8rem;
  font-weight: normal;
}
.news_list dd {
  margin-left: 3%;
  margin-right: 1%;
}
.news_list p {
  text-align: right;
}
@media screen and (max-width: 768px) {
  .news-1 {
    flex: auto;
    max-width: 100%;
    margin-right: 0;
  }
  .news-1:nth-child(even) {
    margin-right: 0;
  }
  .news_list dt {
    padding-bottom: 5px;
    clear: both;
    float: none
  }
  .news_list dd {
    margin-left: 3%;
  }
}
.event-list {
  max-width: 1100px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  justify-content: center;
  grid-gap: 0 0.8em;
  padding: 0.8em;
  margin: 0 auto;
}
.event-list div {
  overflow: auto;
  width: 100%;
  padding: 0.8em;
  margin: 0 auto;
  text-align: center;
}
.event .btn-list {
  text-align: center;
  padding: 1rem;
  border-top: solid 2px #f2f2f2;
  display: block;
  width: 100%;
}
.event .btn-list p {
  position: relative;
  display: inline-block;
  background-color: #063076;
  padding: 3px 26px 3px 10px;
}
.event .btn-list p::before {
  position: absolute;
  right: 8px;
  top: 12px;
  display: block;
  content: "";
  width: 12px;
  height: 2px;
  background: #fff;
}
.event .btn-list p::after {
  position: absolute;
  right: 8px;
  top: 8px;
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  transform: rotate(45deg);
}
.event .btn-list a {
  color: #fff;
}
@media screen and (max-width: 768px) {
  .event-list {
    display: block;
  }
}
.bn {
  max-width: 1100px;
  display: grid;
  grid-template-columns: repeat(2, 300px);
  justify-content: center;
  grid-gap: 0 0.8em;
  padding: 0.8em;
  margin: 0 auto;
}
.bn div {
  overflow: auto;
  width: 100%;
  padding: 0;
  margin: 0 auto;
  text-align: center;
  border: 1px solid #063076;
  background-image: linear-gradient(-45deg, #063076 10px, transparent 0);
}
.bn-1 {
  max-width: 1100px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  /*grid-auto-rows: 1fr;*/
  grid-gap: 0 0.8em;
  padding: 0.8em;
  margin: 0 auto;
}
.bn-1 div {
  border: 1px solid #063076;
  overflow: auto;
  max-width: 300px;
  padding: 1em;
  text-align: center;
  background-image: linear-gradient(-45deg, #063076 10px, transparent 0);
}
.bn-1 a {
  color: #063076;
}
.bn-2 {
  max-width: 1100px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  /*grid-auto-rows: 1fr;*/
  grid-gap: 0.8em;
  padding: 0.8em;
  margin: 0 auto;
}
.bn-2 div {
  overflow: auto;
  text-align: center;
  border: 1px solid #063076;
}
@media screen and (max-width: 768px) {
  .bnr img {
    width: 100%;
  }
  .bn {
    display: block;
  }
  .bn-1, .bn-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 0.2em;
    padding: 0.8em;
    margin: 0 0;
  }
  .bn div {
    max-width: 300px;
    margin-bottom: .5rem;
  }
  /*  .bn-2 div {
    padding: .1em;
  }*/
}
.red {
  color: #F33;
}