@charset "utf-8";
/* common
-------------------------------------------------------------- */
main {
  padding-top: 140px;
  background: var(--color-lightBlue) url(../img/index/main_bg.png) no-repeat center top / 100% auto;
}
@media (max-width: 767px) {
  main {
    padding-top: 50px;
  }
}
/* mv
-------------------------------------------------------------- */
#mv {
  position: relative;
}
#mv h2 {
  position: absolute;
  top: 45%;
  left: 0;
  right: 0;
  margin: auto;
  width: 90%;
  max-width: 1100px;
  text-align: right;
  font-size: 6rem;
  font-weight: 700;
  z-index: 10;
}
#mv img {
  width: 100%;
}
@media (max-width: 767px) {
  #mv h2 {
    bottom: 10px;
    font-size: 2rem;
  }
}
/* strong
-------------------------------------------------------------- */
#strong {
  position: relative;
  text-align: center;
}
#strong h2 {
  position: relative;
  z-index: 10;
}
#strong h2 span {
  display: block;
  font-size: 8rem;
  font-weight: 700;
  line-height: 1;
}
.vi #strong h2 span {
  font-size: 7.8rem;
}
#strong h2 span:last-of-type {
  margin-top: 23%;
}
#strong figure {
  position: absolute;
  top: 40px;
  left: 0;
  right: 0;
  margin: auto;
}
#strong p {
  margin: 90px auto 120px;
  color: var(--color-black);
  font-size: 2.2rem;
  font-weight: 700;
}
.vi #strong p {
  margin: 90px auto;
  max-width: 720px;
}
.swiper-wrapper {
  transition-timing-function: linear;
}
.swiper-slide {
  margin: 0 -1px;
  padding: 10px;
  border: 2px solid var(--color-gray);
  background: var(--color-white);
}
.swiper-slide img {
  height: auto;
  width: 100%;
  border-radius: 10px;
}
@media (max-width: 767px) {
  #strong h2 span {
    font-size: 2.6rem;
  }
  .vi #strong h2 span {
    font-size: 2.4rem;
  }
  #strong h2 span:last-of-type {
    margin-top: 30%;
  }
  #strong figure {
    top: 20px;
  }
  #strong p {
    margin: 30px auto;
    width: 90%;
    font-size: 1.6rem;
  }
  .vi #strong p {
    margin: 30px auto;
    font-size: 1.5rem;
  }
  .swiper-slide {
    padding: 5px;
  }
}
/* recruit
-------------------------------------------------------------- */
#recruit {
  margin: 80px auto 0;
  padding-bottom: 20px;
}
#recruit .container {
  padding: 0 40px 100px;
  background: var(--color-white);
}
#recruit .ttlArea {
  padding: 80px 0 50px;
}
#recruit h2 {
  color: var(--color-blue);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
}
#recruit .postArea {
  justify-content: flex-start;
  gap: 25px;
}
#recruit .postArea article {
  width: calc((100% - 45px) / 4);
}
#recruit .postArea article a {
  display: block;
  border-radius: 20px;
  border: 2px solid var(--color-gray);
}
#recruit .postArea article .ttl {
  padding: 30px 15px;
  color: var(--color-blue);
  font-weight: 700;
  line-height: 1.5;
}
#recruit .postArea article .txt {
  overflow: hidden;
  padding: 0 15px 40px;
  color: #000;
  font-size: 1.4rem;
  line-height: 1.5;
}
#recruit .postArea article .more {
  position: relative;
  display: block;
  padding: 15px 60px;
  box-sizing: border-box;
  border-radius: 0 0 20px 20px;
  background: var(--color-blue);
  color: var(--color-white);
  text-align: center;
  font-size: 1.4rem;
  line-height: 1;
}
#recruit .postArea article .more::after {
  position: absolute;
  right: 30px;
  margin: auto;
  content: "→";
  transition: all 0.5s ease-in-out;
}
#recruit .postArea article a:hover .more::after {
  right: 10px;
}
@media (max-width: 767px) {
  #recruit {
    margin: 50px auto 0;
  }
  #recruit .container {
    padding: 0 20px 60px;
  }
  #recruit .ttlArea {
    align-items: center;
    justify-content: flex-end;
    padding: 40px 0 30px;
  }
  #recruit h2 {
    padding-bottom: 20px;
    font-size: 1.8rem;
  }
  #recruit .postArea {
    gap: 20px;
  }
  #recruit .postArea article {
    width: 100%;
  }
  #recruit .postArea article a {
    border-radius: 10px;
  }
  #recruit .postArea article .ttl {
    padding: 20px 15px;
  }
  #recruit .postArea article .txt {
    padding: 0 15px 20px;
    font-size: 1.3rem;
  }
  #recruit .postArea article .more {
    padding: 15px 50px;
    border-radius: 0 0 10px 10px;
  }
  #recruit .postArea article .more::after {
    right: 20px;
  }
}
/* about
-------------------------------------------------------------- */
#about {
  position: relative;
  background: var(--color-white);
}
.vi #about {
  padding-top: 60px;
}
#about .inner {
  align-items: center;
  background: var(--color-blue);
}
#about .txtArea {
  padding-left: calc((100% - 1100px) / 2);
  padding-right: 40px;
  width: 40%;
}
#about h2 {
  padding-bottom: 80px;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
}
#about p {
  font-size: 1.4rem;
}
#about .btnMore02 {
  padding-top: 30px;
}
#about figure {
  width: 60%;
}
#about img {
  width: 100%;
}
@media (max-width: 767px) {
  .vi #about {
      padding-top: 30px;
  }
  #about .txtArea {
    padding: 50px 30px;
    width: 100%;
    order: 1;
  }
  #about h2 {
    padding-bottom: 30px;
    font-size: 2.4rem;
  }
  #about .btnMore02 {
    padding-top: 20px;
  }
  #about figure {
    width: 100%;
  }
}
/* news
-------------------------------------------------------------- */
#news {
  padding: 120px 0 190px;
  background: url(../img/index/news_bg.png) no-repeat center bottom / cover;
}
#news .container {
  padding: 0 40px 100px;
  background: var(--color-white);
}
#news .ttlArea {
  padding: 80px 0 60px;
}
#news h2 {
  color: var(--color-blue);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
}
#news .postArea article {
  width: 33.3%;
}
#news .postArea article:nth-child(2) {
  border-left: 1px solid var(--color-gray);
  border-right: 1px solid var(--color-gray);
}
#news .postArea article a {
  display: block;
  padding: 0 20px;
  color: var(--color-black);
  font-size: 1.4rem;
}
#news .postArea article:first-child a {
  padding: 0 20px 0 0;
}
#news .postArea article:last-child a {
  padding: 0 0 0 20px;
}
#news .postArea article .date {
  padding-bottom: 25px;
  font-weight: 700;
}
@media (max-width: 767px) {
  #news {
    padding: 50px 0;
  }
  #news .container {
    padding: 0 20px 50px;
  }
  #news .ttlArea {
    align-items: center;
    padding: 40px 0 30px;
  }
  #news h2 {
    font-size: 2.4rem;
  }
  #news .postArea {
    gap: 0;
  }
  #news .postArea article {
    width: 100%;
  }
  #news .postArea article:nth-child(2) {
    border-top: 1px solid var(--color-gray);
    border-bottom: 1px solid var(--color-gray);
    border-left: none;
    border-right: none;
  }
  #news .postArea article a {
    padding: 20px 0;
  }
  #news .postArea article:first-child a {
    padding: 20px 0;
  }
  #news .postArea article:last-child a {
    padding: 20px 0;
  }
  #news .postArea article .date {
    padding-bottom: 25px;
    font-weight: 700;
  }
}
/* contact
-------------------------------------------------------------- */
#contact {
  background: var(--color-white);
  text-align: center;
}
.vi #contact .container {
  border-top: 2px solid var(--color-blue);
}
.ja #contact .container {
  padding-top: 100px;
}
#contact h2 {
  padding: 100px 0 40px;
  color: var(--color-blue);
  font-size: 3.6rem;
  font-weight: 700;
}
#contact p {
  color: #000;
}
#contact .btnMore a {
  margin: 50px auto 250px;
  padding: 15px 70px;
  border-radius: 25px;
  border: 1px solid var(--color-blue);
  width: 300px;
  font-size: 1.5rem;
  text-align: right;
}
#contact .btnMore a::after {
  right: 30px;
}
@media (max-width: 767px) {
  .ja #contact .container {
    padding-top: 40px;
  }
  #contact h2 {
    padding: 50px 0 20px;
    font-size: 1.8rem;
  }
  #contact .btnMore a {
    margin: 30px auto 150px;
    padding: 15px 50px;
    width: 240px;
    font-size: 1.3rem;
    text-align: center;
  }
  #contact .btnMore a::after {
    right: 20px;
  }
}