@charset "utf-8";

/* --------------------------------------------


index


---------------------------------------------- */
body#index {
 background: #F5F5F5;
}

@media only screen and (max-width:640px) {}



/* --------------------------------------------

カウンター

---------------------------------------------- */
.index__counter {
 position: fixed;
 width: 100%;
 top: 1rem;
 right: 3.5rem;
 transition: .2s;
 z-index: 9999;
}

.index__counter p {
 width: 100%;
 max-width: 1500px;
 margin: auto;
 text-align: right;
 font-size: 1.3rem;
 color: #fff;
 opacity: 0.3;
}

.index__counter p img {
 width: auto;
 height: 14px;
 vertical-align: middle;
}

/* スクロールアクション */
#header.is-animation + .index__counter {
 opacity: 0;
}


/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .index__counter {
  top: 8rem;
  right: 1rem;
  line-height: 1;
  background-color: rgba(0, 0, 0, 0);
  transition: 0s;
 }

 .index__counter p {
  color: #000000;
 }
}



/* --------------------------------------------

メインヴィジュアル

---------------------------------------------- */
.mvWrap {
 position: relative;
}

.mv__inner {
 width: 100%;
 height: 100%;
}

.mv__inner::after {
 content: "";
 display: block;
 position: absolute;
 bottom: 0;
 left: 0;
 width: 100%;
 height: 3px;
 background: rgba(18, 39, 94, 0.80);
 z-index: 2;
}

.mv__title {
 position: absolute;
 top: 58%;
 left: 50%;
 width: 800px;
 margin-top: -200px;
 margin-left: -400px;
 z-index: 1;
 filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.8));
}

.mv__slide {
 width: 100%;
 height: 100%;
 overflow: hidden;
}

.mv__slide .swiper-wrapper {
 width: 100%;
}

.mv__item {
 height: 40vw !important;
 min-height: 500px;
}

.mv__image {
 width: 100%;
 height: 100%;
}

.mv__image img {
 object-fit: cover;
 object-position: top;
 width: 100%;
 height: 100%;
}

.mv__item p {
 position: absolute;
 bottom: 1.5em;
 right: 1.5em;
 padding: 0.2em 1em;
 font-size: 2.2rem;
 line-height: 1;
 text-align: right;
 color: #FFFFFF;
 background: rgba(0, 0, 0, 0.57);
 /*filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.8));*/
}

.swiper-pagination1 {
 position: absolute;
 bottom: 4rem;
 text-align: center;
 z-index: 5;
}




/*----------- Responsive -----------*/
@media only screen and (max-width:1024px) {

 .mv__item {
  height: 50vw !important;
 }
}



@media only screen and (max-width:640px) {
 .mv__title {
  width: 600px;
  margin-top: -160px;
  margin-left: -300px;
 }

 .mv__item {
  height: 90vw !important;
  min-height: 600px;
 }

 .mv__image img {
  width: 116%;
  height: 116%;
 }

 .mv__item p {
  bottom: 1em;
  right: 5%;
  width: 90%;
  padding: 0.2em 0;
  font-size: 2.0rem;
  text-align: center;
 }

 .swiper-pagination1 {
  bottom: -3.5rem !important;
 }

 .swiper-pagination-bullet {
  width: 2rem !important;
  height: 2rem !important;
  background: #718dd8 !important;
  border: 0.5rem solid #fff;
 }

 .swiper-pagination-bullet-active {
  background: #718dd8 !important;
 }
}




/* --------------------------------------------

バナー

---------------------------------------------- */
.bannerWrap {
 position: relative;
 display: flex;
 flex-wrap: wrap;
 width: 100%;
 padding: 3rem 0 3rem 3.5%;
 background: #fff;
 box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

/*.bannerWrap h2 {
 padding: 0rem 0 2.9rem;
 text-align: center;
 line-height: 1;
 font-size: 1.4rem;
 color: #0C2882;
}

.bannerWrap h2 em {
 position: relative;
 display: block;
 margin-bottom: 0.8rem;
 text-align: center;
 font-weight: 400;
 font-size: 3.2rem;
}

.bannerWrap h2 em::after {
 content: "";
 display: block;
 width: 8rem;
 height: 3px;
 margin: 1.8rem auto 0;
 background: rgb(35, 66, 160);
 background: linear-gradient(90deg, rgba(230, 210, 10, 1) 30%, rgba(35, 66, 160) 30.1%);
}*/

.bannerWrap h2 {
 width: 16rem;
 margin: 1% 0 0rem 0%;
 font-size: 1.4rem;
 color: #0C2882;
}

.bannerWrap h2 em {
 display: block;
 font-size: 3.6rem;
 line-height: 1.2;
 margin-right: 2rem;
}

.bannerWrap h2::before {
 content: "";
 display: inline-block;
 vertical-align: text-top;
 width: 8rem;
 height: 3px;
 margin: 0rem 1.5rem 0 0;
 background: rgb(35, 66, 160);
 background: linear-gradient(90deg, rgba(230, 210, 10, 1) 30%, rgba(35, 66, 160) 30%);
}

.banner__slide {
 width: calc(100% - 16rem);
 position: relative;
 overflow: hidden;
}

.banner__item {
 padding: 0 0.5rem;
}

.banner__item a {
 display: block;
 width: 100%;
}

.banner__item a::after {
 display: none;
}

.banner__slide .swiper-button-prev,
.banner__slide .swiper-button-next {
 position: absolute;
 width: 5rem;
 height: 120%;
 top: 0%;
 background: #fff;
}

.banner__slide .swiper-button-prev {
 left: 0rem !important;
}

.banner__slide .swiper-button-next {
 right: 0rem !important;
}


.banner__slide .swiper-button-prev::before,
.banner__slide .swiper-button-next::before {
 content: "";
 position: absolute;
 top: calc(50% - 1rem);
 display: block;
 width: 2.0rem;
 height: 2.0rem;
 border-color: #0C1E64;
 border-style: solid;
 border-width: 1px 1px 0 0;
 transform: rotate(45deg);
}

.banner__slide .swiper-button-prev::before {
 left: 1.8rem;
 transform: rotate(-135deg);
}

.banner__slide .swiper-button-next::before {
 right: 1.8rem;
 transform: rotate(45deg);
}



/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .bannerWrap {
  padding: 6rem 0 4rem;
 }

 .bannerWrap h2 {
  width: 100%;
  margin-bottom: 1rem;
  text-align: center;
  font-size: 1.3rem;
 }

 .bannerWrap h2 em {
  text-align: center;
  margin: 0rem 0rem 1rem 0rem;
  font-size: 3rem;
  line-height: 0.5;
 }

 .bannerWrap h2::before {
  width: 6rem;
  margin: auto;
 }

 .banner__slide {
  width: 100%;
 }

 .banner__item {
  padding: 0 0.2rem;
 }

 .banner__slide .swiper-button-prev,
 .banner__slide .swiper-button-next {
  width: 4rem;
  height: 4rem;
  top: calc(50% - 0.5rem);
 }

 .banner__slide .swiper-button-prev {
  left: 0.5rem !important;
 }

 .banner__slide .swiper-button-next {
  right: 0.5rem !important;
 }

 .banner__slide .swiper-button-prev::before,
 .banner__slide .swiper-button-next::before {
  width: 1.3rem;
  height: 1.3rem;
  top: 1.4rem;
 }

}






/* --------------------------------------------

お知らせ

---------------------------------------------- */
.infoCtr {
 margin: 6.5rem 0;
 padding: 6.7rem 0 8rem;
 background: #fff;
 box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

.info__inner {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 max-width: 1500px;
 margin: auto;
 padding: 0 5%;
}

.infoCtr__title {
 width: 100%;
 margin: 0 0 0 -8%;
 font-size: 1.4rem;
 color: #0C2882;
}

.infoCtr__title em {
 font-size: 3.6rem;
 margin-right: 2rem;
}

.infoCtr__title::before {
 content: "";
 display: inline-block;
 vertical-align: text-top;
 width: 8rem;
 height: 3px;
 margin: 0rem 1.5rem 0 0;
 background: rgb(35, 66, 160);
 background: linear-gradient(90deg, rgba(230, 210, 10, 1) 30%, rgba(35, 66, 160) 30%);
}

.info__inner h3 {
 margin-top: 4.2rem;
 margin-bottom: 1.5rem;
 color: #0C2882;
 font-size: 2.4rem;
 font-weight: 700;
 line-height: 1;
 border-bottom: #dcdcdc 1px solid;
}

.info__inner h3::after {
 content: "";
 display: block;
 margin-top: 1.3rem;
 margin-bottom: 1px;
 height: 2px;
 background-color: #2342A0;
}


/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .infoCtr {
  margin: 3rem 0;
  padding: 3rem 0 4rem;
 }

 .infoCtr__title {
  width: 100%;
  margin: 0 0 -2rem -25%;
  font-size: 1.3rem;
 }

 .infoCtr__title em {
  font-size: 3rem;
  margin-right: 2rem;
 }

 .infoCtr__title::before {
  width: 6rem;
 }

}





/* --------------------------------------------

お知らせ

---------------------------------------------- */
.info__news {
 width: calc(100% - 420px);
 padding-right: 10rem;
}

.info__news ul {
 overflow-y: scroll;
 padding-right: 2rem;
 font-size: 1.6rem;
}

.info__news ul:nth-of-type(1) {
 height: 320px;
}

.info__news ul:nth-of-type(2) {
 height: 540px;
}


.info__news li {
 padding: 2rem 0;
 border-bottom: 1px solid #DCDCDC;
}

.info__news time {
 font-size: 1.4rem;
 color: #828282;
}

.info__news li > span {
 display: inline-block;
 width: 12em;
 margin-right: 1.2rem;
 text-align: center;
 color: #fff;
 font-weight: 700;
 font-size: 1.2rem;
}

.info__news span.newsCtg-1 {
 background: #47A8A0;
}

.info__news span.newsCtg-2 {
 background: #6582C8;
}

.info__news span.newsCtg-3 {
 background: #db8133;
}

.info__news span.newsCtg-4 {
 background: #eaaf39;
}

.info__news p {
 padding-top: 1rem;
}

.info__news p a {
 text-decoration: underline;
 color: #7b7b7b;
}

.info__news p a[target="_blank"]::after {
 filter: invert(100%);
}

.info__news p a[href*=".pdf"]::after {
 filter: invert(0%);
}

.info__news ul + p {
 padding-top: 2rem;
}

.info__news ul + p,
.info__news ul + p a {
 font-size: 1.4rem;
 font-weight: 400;
 color: #DC463C;
}


/*----------- Responsive -----------*/
@media only screen and (max-width:1180px) {
 .info__news {
  width: calc(100% - 380px);
  padding-right: 6rem;
 }
}

@media only screen and (max-width:640px) {
 .info__news {
  width: calc(100%);
  padding-right: 0;
 }

 .info__news ul:nth-of-type(1) {
  height: 500px;
 }

 .info__news ul:nth-of-type(2) {
  height: 500px;
 }
}


/* --------------------------------------------

動画

---------------------------------------------- */
.info__movie {
 width: 420px;
}

.movie__item {
 margin-top: 5rem;
}

.movie__item iframe {
 width: 100%;
 height: 230px;
}

.movie__item h4 {
 font-size: 1.8rem;
 font-weight: 700;
}

.movie__item h4 span {
 display: inline-block;
 width: 4rem;
 padding-top: 0.3rem;
 margin: -0.4rem 0.5em 0 0;
 vertical-align: middle;
 text-align: center;
 line-height: 1.0;
 font-size: 1.4rem;
 font-weight: 400;
 border: solid 1px #BEBEBE;
}

.movie__item p {
 font-size: 1.4rem;
}


/*----------- Responsive -----------*/
@media only screen and (max-width:1180px) {
 .info__movie {
  width: 380px;
 }

 .movie__item iframe {
  height: 220px;
 }

}


@media only screen and (max-width:640px) {
 .info__movie {
  width: 100%;
 }

 .movie__item {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
 }

 .movie__item iframe {
  width: 50%;
  height: 26vw;
  order: 2;
 }

 .movie__item h4 {
  width: 100%;
  padding-bottom: 1rem;
 }

 .movie__item p {
  width: 50%;
  padding-left: 1.5rem;
  order: 3;
 }
}




/* --------------------------------------------

事業案内

---------------------------------------------- */
.serviceCtr {
 position: relative;
}

.serviceCtr::before {
 content: "";
 display: block;
 vertical-align: text-top;
 width: 100%;
 height: 3px;
 margin: 6.5rem 0rem 8rem;
 background: rgb(35, 66, 160);
 background: linear-gradient(90deg, rgba(230, 210, 10, 1) 30%, rgba(35, 66, 160) 30%);
}

.serviceCtr::after {
 content: "";
 display: block;
 position: absolute;
 top: 32%;
 left: 0;
 width: 100%;
 height: 68%;
 background: #fff;
 box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}

.service__head {
 position: relative;
 display: flex;
 flex-wrap: wrap;
 width: 90%;
 max-width: 1080px;
 margin: auto;
 z-index: 2;
}

.service__head em {
 width: 166px;
 filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.1));
}

.service__head p {
 padding: 6rem 0 8rem 8.5rem;
 font-size: 3rem;
}



/*----------- Responsive -----------*/
@media only screen and (max-width:1180px) {
 .serviceCtr::after {
  top: 12%;
  height: 88%;
 }

 .service__head em {
  margin: auto;
 }

 .service__head p {
  width: 100%;
  padding: 4rem 0;
  text-align: center;
 }
}


@media only screen and (max-width:640px) {
 .serviceCtr::before {
  margin: 4rem 0rem 3rem;
 }

 .serviceCtr::after {
  top: 10%;
  height: 90%;
 }


 .service__head em {
  width: 30%;
  margin: auto;
 }

 .service__head p {
  padding: 2rem 0 0;
  font-size: 1.8rem;
  text-align: center;
 }
}


/* --------------------------------------------

事業一覧

---------------------------------------------- */
.service__wrap {
 position: relative;
 display: flex;
 flex-wrap: wrap;
 justify-content: space-around;
 max-width: 1560px;
 margin: 0rem auto 10rem;
 z-index: 1;
}

.service__item {
 display: flex;
 flex-wrap: wrap;
 align-content: center;
 position: relative;
 width: calc(100% / 2 - 0.2rem);
 height: 340px;
 margin-bottom: 0.2rem;
}

.service__item figure {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
}

.service__item figure::after {
 content: "";
 position: absolute;
 top: 0;
 left: 0;
 display: block;
 width: 100%;
 height: 100%;
 background-image: url(../_image/common/dot.png);
 background-size: 6px auto;
 background-color: rgb(41, 77, 152);
 opacity: 0.4;
}

.service__item figure img {
 object-fit: cover;
 width: 100%;
 height: 100%;
}

.service__item div {
 position: relative;
 width: 100%;
}

.service__item h3 {
 text-align: center;
 color: #fff;
 font-weight: 400;
 font-size: 3rem;
 line-height: 1.4
}

.service__item a {
 display: block;
 width: 24rem;
 margin: 2rem auto 0;
 padding: 0.5rem 1rem;
 text-align: center;
 color: #fff;
 border: 1px solid #fff;
}

.service__item a::after {
 filter: invert(0%);
}




/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .service__wrap {
  margin: 2rem auto 4rem;
 }

 .service__item {
  width: calc(100%);
  height: 54vw;
 }

 .service__item h3 {
  font-size: 2.6rem;
  font-weight: 400;
 }

 .service__item a {
  width: 26rem;
  margin: 1rem auto 0;
  font-size: 1.6rem;
 }
}



/* --------------------------------------------

関連施設

---------------------------------------------- */
.facility__title {
 position: relative;
 width: 100%;
 text-align: center;
 font-size: 2.6rem;
 font-weight: 600;
 color: #0C2882;
 z-index: 1;
}

.facility__title::after {
 content: "";
 display: block;
 vertical-align: text-top;
 width: 9em;
 height: 3px;
 margin: 0.3rem auto 5.8rem;
 background: rgb(35, 66, 160);
 background: linear-gradient(90deg, rgba(230, 210, 10, 1) 30%, rgba(35, 66, 160) 30%);
}

.facility__wrap {
 position: relative;
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 width: 92%;
 max-width: 1260px;
 margin: 0 auto;
 padding: 0 0 12rem;
 z-index: 1;
}

.facility__item {
 width: calc(100% / 3 - 2rem);
}

.facility__item > a::after {
 display: none;
}

.facility__item figure {
 max-width: 370px;
 margin: 0rem auto 3.2rem;
 border: 1px solid #C8C8C8;
}

.facility__item p {
 font-size: 1.6rem;
 text-align: center;
 line-height: 1.4;
}

.facility__item h3 {
 margin: 1.5rem 0 2.8rem;
 font-weight: 700;
 font-size: 2.4rem;
 text-align: center;
}

.facility__item small {
 font-size: 0.8em;
}

.facility__item__links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 line-height: 1;
}

.facility__item li {
 padding: 0 1.4rem;
 border-right: 1px solid #C8C8C8;
}

.facility__item li:nth-last-child(1) {
 border-right: none;
}

.facility__item li a {
 font-size: 1.2rem;
}

.facility__item li a::after {
 display: none;
}

.facility__item li a::before {
 content: "";
 display: inline-block;
 width: 1.6em;
 height: 1.6em;
 vertical-align: middle;
 margin: -0.2em 0.5em 0 0;
 background-image: url(../_image/common/icon-web.svg);
}

.facility__item a[href*="instagram"]::before {
 background-image: url(../_image/common/icon-insta.svg);
}

.facility__item a[href*="facebook"]::before {
 background-image: url(../_image/common/icon-facebook.svg);
}

.facility__item a[href*="x.com"]::before {
 background-image: url(../_image/common/icon-x.svg);
}




/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .facility__title {
  font-size: 2rem;
 }

 .facility__title::after {
  margin: 0.3rem auto 3rem;
 }


 .facility__wrap {
  padding: 0 0 2rem;
 }

 .facility__item {
  width: calc(100%);
  margin-bottom: 3rem;
 }

 .facility__item figure {
  max-width: 360px;
  margin: 0rem auto 1rem;
  border: 1px solid #C8C8C8;
 }

 .facility__item p {}

 .facility__item h3 {
  margin: 0.5rem 0 1rem;
  font-size: 2.0rem;
 }

}




/* --------------------------------------------

関連リンク

---------------------------------------------- */
.linksCtr {
 display: flex;
 flex-wrap: wrap;
 justify-content: flex-start;
 align-items: center;
 width: 92%;
 max-width: 1240px;
 margin: 7.8rem auto 0;
 padding: 5rem 0;
 border-top: #DCDCDC 1px solid;
}

.linksCtr h2 {
 margin-right: 4.5rem;
 font-size: 2.0rem;
 font-weight: 600;
 color: #0C2882;
}

.linksCtr a {
 width: 50%;
 max-width: 210px;
 margin-right: 2rem;
}

.linksCtr a::after {
 display: none;
}

.linksCtr a img {}

.linksCtr a:first-child{
	margin-right: 12rem;
}

/*----------- Responsive -----------*/
@media only screen and (max-width:640px) {
 .linksCtr {
  width: 96%;
  margin: 4rem auto 0;
  padding: 3rem 0;
  border-top: #DCDCDC 1px solid;
 }

 .linksCtr h2 {
  width: 100%;
  text-align: center;
  margin-right: 0;
  margin-bottom: 2rem;
 }

 .linksCtr a {
  width: 46%;
  max-width: none;
  margin: 2%;
 }


}
