/*======================================================================
 * home
======================================================================*/
article {
  padding: 38px 0 0;
}
@media screen and (max-width: 768px) {
  article {
    padding: 3.18vw 0 0;
  }
}

@media screen and (max-width: 768px) {
  img {
    width: 100%;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.section-container {
  text-align: center;
}
.section-container.-hero {
  margin-bottom: 76px;
}
@media screen and (max-width: 768px) {
  .section-container.-hero {
    margin-bottom: 7.13vw;
  }
}
.section-container.-hero h1 {
  margin: 0 0 48px -11px;
  padding-right: 60px;
}
@media screen and (max-width: 768px) {
  .section-container.-hero h1 {
    margin: 0 0 3.08vw -2.7vw;
    padding-right: 2.9vw;
  }
}
.section-container.-hero .images {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .section-container.-hero .images {
    margin-bottom: 26px;
  }
}
.section-container.-hero .info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .section-container.-hero .info {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
}
.section-container.-hero .info .day {
  width: 47.88%;
}
@media screen and (max-width: 768px) {
  .section-container.-hero .info .day {
    width: 100%;
    margin-bottom: 10px;
  }
}
.section-container.-hero .info .deadline {
  width: 50.19%;
}
@media screen and (max-width: 768px) {
  .section-container.-hero .info .deadline {
    width: 100%;
  }
}
.section-container.-list {
  margin-bottom: 90px;
}
@media screen and (max-width: 768px) {
  .section-container.-list {
    margin-bottom: 8.86vw;
  }
}
.section-container.-list h2 {
  margin-bottom: 28px;
}
@media screen and (max-width: 768px) {
  .section-container.-list h2 {
    margin-bottom: 1.93vw;
  }
}
.section-container.-list h2 img {
  width: min(20vw, 282px);
}
@media screen and (max-width: 768px) {
  .section-container.-list h2 img {
    width: 32%;
  }
}
.section-container.-list .list-group {
  padding: 0;
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 0 0 -18px;
}
@media screen and (max-width: 768px) {
  .section-container.-list .list-group {
    margin-bottom: -1.45vw;
  }
}
.section-container.-list .list-group li {
  cursor: pointer;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.section-container.-list .list-group li:hover {
  opacity: 0.6;
}
@media screen and (min-width: 769px) {
  .section-container.-list .list-group li {
    width: 20%;
    margin-bottom: 18px;
    padding: 0 3px;
  }
}
@media screen and (max-width: 768px) {
  .section-container.-list .list-group li {
    width: 32%;
    margin-bottom: 1.45vw;
  }
  .section-container.-list .list-group li:not(:nth-child(3n)) {
    margin-right: 2%;
  }
}
.section-container.-application h2 {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .section-container.-application h2 {
    margin-bottom: 2.7vw;
  }
}
.section-container.-application h2 img {
  width: min(13vw, 192px);
}
@media screen and (max-width: 768px) {
  .section-container.-application h2 img {
    width: 20.6%;
  }
}
.section-container.-application picture {
  display: block;
}
@media screen and (min-width: 769px) {
  .section-container.-application .application-top,
.section-container.-application .application-bottom {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
}
.section-container.-application .application-top {
  margin-bottom: 15px;
}
@media screen and (min-width: 769px) {
  .section-container.-application .application-top .term {
    width: 41.62%;
    text-align: left;
  }
  .section-container.-application .application-top .target {
    width: 56.39%;
    text-align: right;
  }
}
@media screen and (max-width: 768px) {
  .section-container.-application .application-top {
    margin-bottom: 1.16vw;
  }
  .section-container.-application .application-top .term {
    margin-bottom: 1.54vw;
  }
}
.section-container.-application .application-middle {
  margin-bottom: 14px;
}
@media screen and (max-width: 768px) {
  .section-container.-application .application-middle {
    margin-bottom: 1.54vw;
  }
}
.section-container.-application .application-bottom {
  margin-bottom: 110px;
}
@media screen and (min-width: 769px) {
  .section-container.-application .application-bottom .deadline {
    width: 50.54%;
    text-align: left;
  }
  .section-container.-application .application-bottom .info {
    width: 48.16%;
    text-align: right;
  }
}
@media screen and (max-width: 768px) {
  .section-container.-application .application-bottom {
    margin-bottom: 8.19vw;
  }
  .section-container.-application .application-bottom .deadline {
    margin-bottom: 1.35vw;
  }
}
.section-container.-application .application-button a {
  display: inline-block;
  width: 69.46%;
}
@media screen and (max-width: 768px) {
  .section-container.-application .application-button a {
    width: 77.7%;
  }
}

.footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 120px 0 40px;
}
@media screen and (max-width: 768px) {
  .footer {
    padding: 9.44vw 0 4vw;
  }
}
.footer .group-logo {
  width: 30%;
}
@media screen and (max-width: 768px) {
  .footer .group-logo {
    width: 46%;
  }
}