/* --------------------
   loading
-------------------- */
/* スクロール禁止 */
body.loading{
  overflow: hidden;
  height: 100vh;
}

/* ローディング画面 */
#loading{
  z-index: 9;
  position: fixed;
  inset: 0;
  background: linear-gradient(
    140deg,
    #020814,
    #0a1633,
    #1a2f5c,
    #0a1633,
    #020814
  );
  background-size:400% 400%;
  animation: gradientMove 18s ease-in-out infinite;

  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;

  transition: opacity 1s ease;
  z-index:9999;
}

/* 消えるアニメーション */
#loading.fadeout{
  opacity:0;
  pointer-events:none;
}

.loading-text{
  line-height: 1.2;
  color:#fff;
}

.loading-text span{
  opacity:0;
  display:inline-block;
  transform: translateY(15px);
  animation: fadeUp .6s forwards;
}

.line1{
  margin-bottom:10px;
}
/* メインコンテンツ最初は透明 */
.main-content{
  opacity:0;
  transition: opacity 1s ease, transform 1s ease;
}

/* 表示 */
.main-content.show{
  opacity:1;
}


@keyframes fadeUp{
  to{
    opacity:1;
  }
}

@keyframes gradientMove{
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}


/* --------------------
   main
-------------------- */
#main {
  display: flex;
  align-items: center;
  position: relative;
  justify-content: center;
  padding: 6vw;
  width: 100%;
  height: 100vh;
  text-align: center;
}
#main:before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 150%;
  background-image: linear-gradient(0deg, rgba(0,0,0,0),rgba(0,0,0,.7) );
}
#main .main-inner{
  position: relative;
}
#main h1 img{
  margin: auto;
}
#main ul{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 5vw;
}
#main ul li{
  border-radius: 50px;
  position: relative;  
}
#main ul li img{
  max-width: 100%;
  position: relative;
}
#main ul li:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  border-radius: 50px;
  background-color: rgba(255,255,255,.2);
  backdrop-filter: blur(10px); 

}
@media screen and (max-width: 1280px){}
@media screen and (min-width: 1281px){}
@media screen and (max-width: 768px){
  #main ul{
    gap: 5px
  }
  #main ul li {
    border-radius: 50%;
    overflow: hidden;
    width: calc((100% - 10px ) / 3);
  }
  #main ul li img{
    width: 100%;
  }
  #main ul li img.pc{
    display: none;
  }
  #main .main-inner{
    width: 75vw;
  }
}
@media screen and (min-width: 769px){
  #main {
    min-height: 900px;
  }
  #main .main-inner{
    padding-top: 72px;
  }
  #main ul{
    margin-top: 60px;
  }
  #main ul li img.sp{
    display: none;
  }
}
@media screen and (max-width: 480px){}

#about{
  padding-top: 15vw;
  padding-bottom: 25vw;
  text-align: center;
  color: #fff;
}
#about h2{
  font-weight: 700;
  text-shadow:  0 3px 6px rgba(0, 0, 0, .16);
  line-height: 1.4375;
}
#about p{
  line-height: 1.5;
  font-weight: 700;
  margin-top: 1.8em;
  text-shadow:  0 3px 6px rgba(0, 0, 0, .16);
  line-height: 2;
}
@media screen and (max-width: 768px){
  #about h2{
    font-size: 1.35rem;
  }
  #about p{
    font-size: .875rem;
    text-align: left;
  }
}
@media screen and (min-width: 769px){
  #about{
    padding-top: 180px;
    padding-bottom: 230px;
  }
}

#google{
  padding-bottom: 20vw;
  color: #fff;
}
#google h2{
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 600;
  width: 100%;
  position: relative;
  margin-bottom: 5vw;
}

#google .google-title{
  position: relative;
}
#google h2:before,
#google h2:after{
  content: "";
  position: absolute;
  background-color: #FFFFFF;
  opacity: .5;
  display: block;
  top: 0;
  bottom: 0;
  margin: auto;
  height: 1px;
  width: 10vw;
}
#google h2:before{
  left: 0;
}
#google h2:after{
  right: 0;
}
#google h2 span,
#google h2 span img{
  display: inline-block;
  height: 1em;
}
#google .text-box{
  width: 100%;
  border-radius: 6px;
  position: relative;
  text-align: center;
  padding: 5vw;
  display: flex;
  align-items: center;
  justify-content: center;
}
#google .text-box:before{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
  border-radius: 6px;
}
#google .text-box:after{
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 6px;
  filter: blur(70%);
  background-color: rgba(255,255,255,.3);
  box-shadow:  0 0px 6px rgba(0, 0, 0, .16);
}
#google .text-box .text-box_inner{
  position: relative;
  z-index: 2;
}
#google .text-box h3{
  font-weight: 600;
  margin-bottom: 0.5em;
}
#google .text-box:before{
  top: 0px;
  left: 0px;
}
#google .text-box h3 span{
  display: inline-block;
  padding-left: .125em;
  padding-right: .125em;
  font-size: 1.71428em;
  color: #ECCD51;
}
#google .text-box p{
  display: flex;
  font-weight: 600;
  gap: .875em;
  justify-content: center;
}
#google .text-box p span{
  display: block;
  padding-top: 1em;
}
#google .flex-box{
  display: flex;
  flex-wrap: wrap;
  gap: 5vw;
  justify-content: center;
}
#google .contents-inner{
  margin: auto;
  width: 100%;
  max-width: 920px;
}

#google .main-button a{
  justify-content: center;
  color: #fff;
  margin-top: 2.5em;
}
@media screen and (max-width: 768px){
  #google .flex-box figure{
    width: 62vw;
  }
  #google .flex-box figure img{
    width: 100%;
  }
}
@media screen and (min-width: 769px){
  #google{
    padding-bottom: 210px;
  }
  #google h2{
    margin-bottom: 50px;
  }
  #google h2:before,
  #google h2:after{
    width: 210px;
  }
}
@media screen and (min-width: 1024px){
  #google .flex-box{
    gap: 40px;
    justify-content: space-between;
  }
  #google .text-box{
    padding: 30px;
    max-width: 600px;
  }
}

/* --------------------
   news
-------------------- */
#news{
  padding-top: 15vw;
  padding-bottom: 15vw;
}
#news h1{
  margin-bottom: 1.5em;
}
#news .news-item{
  border-top: solid 1px #B4B4B4;
}
#news .news-item:last-child{
  border-bottom: solid 1px #B4B4B4;
}
#news .news-item{
  position: relative;
  z-index: 1;
}
#news .news-item a{
  display: flex;
  position: relative;
  flex-wrap: wrap;
  gap: 1.25vw;
  padding: 6vw 3vw;
}
#news .news-item a:before{
  content: "";
  display: block;
  opacity: 0;
  transition: .2s;
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  background-color: #fff;
  left: 0;
}
#news .news-item a:hover::before{
  opacity: 1;
}
#news .news-item a .news-datas{
  line-height: 1;
}
#news .news-item a .data{
  line-height: 1.25;
  color: #677389;
}
#news .news-item a .cate{
  display: inline-block;
  padding: 0 1em;
  color: #fff;
  background-color: #888;
  border-radius: 1em;
  line-height: 1.25;
}
#news .news-item a .cate.news{
  background-color: #677389;
}
#news .news-item a .cate.press-release{
  background-color: #D39C94;
}
@media screen and (max-width: 768px){
  #news .news-item a .news-datas{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
  }
}
#news .main-button{
  margin-top: 2.5em;
}
#news .main-button a{
  justify-content: center;
}
@media screen and (min-width: 769px){
  #news{
    padding-top: 80px;
    padding-bottom: 100px;
  }
  #news .news-item a{
    gap: 50px;
    padding: 30px 10px;
    align-items: center;
  }
  #news .news-item a .news-datas{
    text-align: center;
    width: 7.25em;
  }
  #news .news-item a .news-title{
    width: calc(100% - 7.5em - 50px);
  }
  #news .news-item a .cate{
    margin-top: .5em;
    width: 100%;
  }
}
/* --------------------
   passes
-------------------- */

#passes .content-inner{
  margin-bottom: 8vw;
}
#passes .main-title1{
  margin-bottom: .5em;
}
#passes .text-box{
  position: relative;
  width: 100%;
  z-index: 2;
}
#passes figure{
  position: absolute;
  right: 0;
  top: 5vw;
}
#passes .content-inner{
  position: relative;
  display: flex;
  flex-wrap: wrap;
}
#passes .text-box .main-read{
  margin-bottom: 1.5em;
}
@media screen and (max-width: 768px){
  #passes figure{
    width: 72vw;
  }
  #passes .main-button{
    justify-content: center;
  }
}
@media screen and (min-width: 769px){
  #passes .text-box{
    max-width: 690px;
  }
  #passes .text-box .main-read{
    font-size: 1.25em;
  }
  #passes figure{
    position: absolute;
    display: flex;
    align-items: center;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  #passes .content-inner{
    margin-bottom: 130px;
  }
}
/* plan */
#passes .plan{
  padding: 8vw 5vw;
  background-color: #F8F3EB;
  border-radius: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 3vw;
}
#passes .plan .plan-text{
  margin-bottom: 2em;
}
#passes .plan .main-button .arow{
  background-color: transparent;
  border: solid 1px;
}
@media screen and (min-width: 769px){
  #passes .plan{
    padding:  40px;
    justify-content: space-between;
  }
  #passes .plan .plan-text{
    margin-bottom: 40px;
  }
  #passes .plan .plan-text{
    width: 100%;
  }
}

@media screen and (min-width: 1024px){
  #passes .plan{
    padding: 60px 80px;
  }
  #passes .plan .plan-text{
    width: 690px;
  }
}
/* --------------------
   reviews
-------------------- */

#reviews{
  padding-top: 12vw;
  padding-bottom: 12vw;
} 
#reviews .main-title1{
  text-align: center;
  margin-bottom: 1em;
}
#reviews .slide-wrap{
  align-items: stretch;
}
#reviews .main-title1 .jp:before{
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
}
#reviews .slide-item{
  position: relative;
  height: 100%;
  background-color: #fff;
  border-radius: 8px 8px 0 8px;
}
#reviews .swiper-slide{
  height: auto;
  display: flex;
}
#reviews .slide-item{
  padding: 8vw 5vw 8vw;
  width: 100%;
}
#reviews .main-read{
  margin-bottom: 2em;
}
#reviews .slide-item:after{
  content: "";
  display: block;
  right: 0;
  width: 0;
  height: 0;
  position: absolute;
  border-top: 0 solid transparent;
  border-right: 5vw solid #fff;
  border-left: 0 solid transparent;
  border-bottom: 5vw solid transparent;
  bottom: -5vw;
}
#reviews .slide-item .reviews-sub{
  margin-top: 5vw;
  padding-top: 5vw;
  display: flex;
  border-top: solid 1px #C2C7D1;
  justify-content: space-between;
  flex-wrap: wrap;
}
#reviews .slide-item .reviews-sub .txs-12{
  color: #677389;
}
#reviews .main-button a{
  justify-content: center;
}
#reviews .main-button {
  margin-top: 8vw;
}
#reviews .swiper{
  overflow: visible;
}
@media screen and (max-width: 768px){
  #reviews .slide-item .reviews-sub figure{
    width: 29vw;
  }
}
@media screen and (min-width: 769px){
  #reviews{
    padding-top: 120px;
    padding-bottom: 120px;
  }
  #reviews .main-read{
    margin-bottom: 40px;
    font-size: 1.25rem;
    text-align: center;
  }
  #reviews .slide-item{
    padding: 30px 30px 40px;
  }
  #reviews .slide-item:after{
    border-top: 0 solid transparent;
    border-right: 20px solid #fff;
    border-left: 0 solid transparent;
    border-bottom: 20px solid transparent;
    bottom: -20px;
  }
  #reviews .main-button {
    margin-top: 70px;
  }
  #reviews .slide-item .reviews-sub{
    margin-top: 30px;
    padding-top: 20px;
  }
}
@media screen and (min-width: 1024px){
  #reviews .slide-item{
  }
}
@media screen and (min-width: 1240px){
  #reviews .slide-item{
  }
}