.top{
    width: 100%;
    height: 110vh;
    background-size: cover;
padding-top: 100px;
overflow: hidden;
}

  
.swiper-container{
  width: 100%;
  height: 100vh;
  position: relative;
  z-index: 2;
}


.swiper{
  width: 100%;
  height: 100vh; 
}
/* 追記：なるべく後ろの方で上書きしてください */
.swiper,
.swiper-container{
  overflow: visible !important;
}

@media (max-width: 1024px) { 
  .top{
    height: 80vh;
  
}


.swiper-container{
  height: 80vh;
}


.swiper{
  height: 80vh; 
}




}
@media (max-width: 768px)  { 
  .top{
    height: 70vh;

}


.swiper-container{
  height: 60vh;
}


.swiper{
  height: 60vh; 
}


 }
@media (max-width: 600px)  { 
  .top{
    height: 60vh;
    padding-top: 60px;
}


.swiper-container{
  height: 50vh;
}


.swiper{
  height: 50vh; 
}


}
@media (max-width: 420px)  { 
  .top{
  height: 50vh;
 
}


.swiper-container{
height: 40vh;
}


.swiper{
height: 40vh; 
}

 }








.top #top_content{
    position: absolute;
    background-color: rgba(255, 255, 255, 0.804);
    padding: 20px 5%;
    width: 90%;
    bottom:0;
    display: flex;
    z-index: 10;
    justify-content: space-between;
}

.top {
perspective: 1000px;
}
.swiper-slide,
.swiper-slide img {
  transform: translate3d(0, 0, 0);
}




.swiper-slide-active img {
  will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0) scale(1);
    animation: pushBack 1s ease forwards;
}





.swiper-slide-active img:first-child{
  transform: translateZ(0) scale(1);
  animation: pushBackk 4s ease forwards;
}

@keyframes pushBack {
  0% {
    transform: translateZ(0) scale(1.1);
  }

  100% {
    transform: translateZ(-100px) scale(1);
  }
}


@keyframes pushBackk {
  0% {
    transform: translateZ(0) scale(1);
  }

  100% {
    transform: translateZ(-80px) scale(1);
  }
}






/* 共通スタイル */
.slide-reveal{
  overflow:hidden;     
  /* background-color: #fff;     マスク */
  position:absolute;
  /* 既存の font-size / color / top / left などはそのまま */
}

/* 実際に動かすのは内側の span */
.slide-reveal span{
  text-shadow: 2px 2px 2px#333;
  /* color: #000; */
  display:inline-block;
  transform:translateY(100%);      /* 初期状態：下に隠す */
  transition:transform 1.3s cubic-bezier(.19,1,.22,1);
  will-change:transform;
}

/* Swiper から .is-show を付ける */
.slide-reveal.is-show span{
  transform:translateY(0);
}



















.swiper-pagination {
  /* background-color: red; */
    bottom: -40px !important;
    text-align: right; /* 右寄せにする */
    /* background-color: red; */
    /* width: 200px; */
}
 
  .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 10px;
    left: 88%;
    /* background-color: red; */
}

.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction{
    width: 90%;
    

}
  .swiper-pagination-bullet {
    background-color: red;
    /* ページネーションバレットのサイズとスタイルを設定 */
    width: 10px;
    height: 10px;
    background-color: transparent;
    background-image: url('../img/icon/2.png');
    background-size: contain; /* 背景画像のサイズをコンテナにフィットさせる */
    background-repeat: no-repeat;
    border-radius: unset;
      /* margin: 0 !important; */
  }
  .swiper-pagination-bullet-active {
    /* アクティブなバレットのスタイルを設定 */
    width: 10px;
    height: 10px;
    background-color: transparent;
    background-image: url('../img/icon/1.png');
    background-size: contain; /* 背景画像のサイズをコンテナにフィットさせる */
    background-repeat: no-repeat;
    border-radius: unset;
    opacity: 1; /* 透過を無くす */
  }
  
/* より具体的に書く */
.swiper-container .swiper-pagination-bullet {
  background-image: url('<?php echo get_template_directory_uri(); ?>/assets/img/icon/2.png');
  background-size: contain;
  background-repeat: no-repeat;
}

/* アクティブ状態 */
.swiper-container .swiper-pagination-bullet-active {
  background-image: url('<?php echo get_template_directory_uri(); ?>/assets/img/icon/1.png');
}
  .swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    /* : 0; */
    width: 10%;
}


.swiper {
  /* バレットのサイズを 10px に */
  --swiper-pagination-bullet-size: 10px;
  /* 不活性時の色を透明に */
  --swiper-pagination-bullet-inactive-color: transparent;
  --swiper-pagination-bullet-inactive-opacity: 1;
}

/* さらに画像だけは背景で差し替え */
.swiper .swiper-pagination-bullet {
  background-image: url('<?php echo get_template_directory_uri(); ?>/assets/img/icon/2.png');
}
.swiper .swiper-pagination-bullet-active {
  background-image: url('<?php echo get_template_directory_uri(); ?>/assets/img/icon/1.png');
}
.swiper-pagination {
    position: absolute;
    text-align: center;
    transition: .3s opacity;
    transform: translate3d(0, 0, 0);
    z-index: 10;
}




  .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
  }

.swiper-fade .swiper-slide {
  opacity: 0;
  transition: opacity 2s ease; /* ← ここが重要！ */
}

.swiper-fade .swiper-slide.swiper-slide-active {
  opacity: 1;
}


  .slide-media img {
    -webkit-transition: 7s 1s ease-out;
    transition: 7s 1s ease-out;
  }
  .swiper-slide[class*=-active] .slide-title {
    -webkit-animation: mv01-fadeIn 2s 0.5s var(--easing) both;
            animation: mv01-fadeIn 2s 0.5s var(--easing) both;
  }


  @-webkit-keyframes mv01-fadeIn {
    0% {
      -webkit-transform: scale(0.5);
              transform: scale(0.5);
      opacity: 0;
      -webkit-filter: blur(300px);
              filter: blur(300px);
    }
    100% {
      -webkit-transform: scale(1);
              transform: scale(1);
      opacity: 1;
      -webkit-filter: blur(0);
              filter: blur(0);
    }
  }

  @keyframes mv01-fadeIn {
    0% {
      -webkit-transform: scale(0.5);
              transform: scale(0.5);
      opacity: 0;
      -webkit-filter: blur(300px);
              filter: blur(300px);
    }
    100% {
      -webkit-transform: scale(1);
              transform: scale(1);
      opacity: 1;
      -webkit-filter: blur(0);
              filter: blur(0);
    }
  }





































.sub_f{
  width: 85%;
  padding: 30px 5%;
  margin: 0 2.5%; 
}

 



/* wa-ku */




.work_content{
  width: 70%;
  /* margin: auto; */
}
.work_content img{
margin: 50px 0;
  /* width: 100%; */
  height: fit-content;
}

.work_text{
  width: 30%;
  font-family: "Klee One", cursive;

}

.www{
  width: 90%;
  margin: auto;

  text-align: center;
}

.www img{
  width: 80%;
}

.l-inner {
  position: relative;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 10rem;
}

[class*=swiper]:focus {
  outline: none;
}

.slide-media,
.thumb-media {
  position: relative;
  overflow: hidden;
}
.slide-media img,
.thumb-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}






.gallery02 {
  overflow: hidden;
  width: 100%;
  margin: auto;
}
.gallery02 .swiper{
  width: 100%;
}
.gallery02 .thumb-wrapper {
  max-width: 1020px;
  margin: auto;
}
.gallery02 .swiper {
  overflow: visible;
}
.gallery02 .swiper-fade .swiper-slide {
  /* width: 100%; */
  /* background-colors: red; */
  -webkit-transition-property: opacity, -webkit-transform !important;
  transition-property: opacity, -webkit-transform !important;
  transition-property: opacity, transform !important;
  transition-property: opacity, transform, -webkit-transform !important;
  pointer-events: none;
}

.gallery02 .swiper-fade .swiper-slide img {
  width: 100%; /* 横幅を100%に設定 */
  height: 100vh; /* 高さを100vhに設定 */
  object-fit: cover; /* 画像のアスペクト比を維持してカバー */
}


.gallery02 .swiper-fade .swiper-slide-active {
  pointer-events: auto;
}
.gallery02 .swiper-controller {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding-top: 62.5%;
}
.gallery02 .swiper-button-prev, .gallery02 .swiper-button-next {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  margin: auto;
}

.gallery02 .slide {
  display: block;
  overflow: hidden;
}
.gallery02 .slide-media {
  display: block;
  padding-top: 62.5%;
  border-radius: 4px;
}
.gallery02 .slide-media img {
  -o-object-fit: contain;
     object-fit: contain;
}
.gallery02 .slide-title {
  font-weight: bold;
  line-height: 1.6;
  padding: 3.2rem 0;
}
.gallery02 .thumb-wrapper {
  display: grid;
  grid-template-columns: repeat(10, 10fr);
  /* gap: -10px; */
 margin: 140px auto 0 0;
 position: relative;
 top: 0;
 width: 100%; /* 横幅を100%に設定 */
}
.gallery02 .thumb-media {
  padding-top: 90px;
  margin: 5px 0;
  cursor: pointer;
  border: 2px solid#c3c3c3;
  width: 90px;
  height: 0px;
  /* background-color: red; */
  /* -webkit-transition: var(--transition); */
  /* transition: var(--transition); */
  /* border-radius: 4px; */
}
.gallery02 .thumb-media img {
  /* -webkit-transition: var(--transition);
  transition: var(--transition); */
  /* width: 20px; */
  width: 100%;
  height: auto;
}
.gallery02 .thumb-media-active {
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
  opacity: 0.3;
}
.gallery02 .thumb-media-active img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}



@media only screen and (max-width: 1024px) {
 
  .l-inner {
    padding: 0 4rem;
  }
  .pc {
    display: none !important;
  }
  .gallery02 .swiper-button-prev::before, .gallery02 .swiper-button-next::before {
    background-color: rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: var(--box-shadow-dark);
            box-shadow: var(--box-shadow-dark);
  }
  .gallery02 .swiper-button-prev::after, .gallery02 .swiper-button-next::after {
    border-color: #fff;
  }
  .gallery02 .swiper-button-prev {
    right: calc(100% - 3.2rem);
  }
  .gallery02 .swiper-button-next {
    left: calc(100% - 3.2rem);
  }
}

@media only screen and (max-width: 599px) {
  html {
    font-size: 50%;
  }
  .pc-tab {
    display: none !important;
  }
  .gallery02 .thumb-wrapper {
    grid-template-columns: repeat(5, 1fr);
  }
}

@media only screen and (min-width: 1025px) {
  .tab-sp {
    display: none !important;
  }

  .gallery02 .thumb-media:hover {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  .gallery02 .thumb-media:hover img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
}


.thumb_flex{
  width: 95%;
  margin: auto;
  position: relative;
}
.work_text{
  position: absolute;
  right: -120px;
  top:0;
}


.work_text dl{
  display: flex;
  margin: 5px 0;
  /* background-color: pink; */
  padding: 0;
  /* width: fit-content; */
  width: 270px;
}

.work_text dl dd{
  width: 40%;
}
.work_text dl dt{
  width: 60%;
}


.l-section .slide-title{
  width: 92%;
  padding: 40px 4%;
}































.copyright{
  color: #c3c3c3;
  letter-spacing: 2px;
}
















/* ローディング */
#splash {
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 999;
  background: #ffffff;
  text-align: center;
  color: #333;
}


#splash_logo {
  position: absolute;
  top: 50%;
  display: flex;
  left: 50%;
  transform: translate(-50%, -50%);
  align-items: center;
  font-size: 18px;
  width: fit-content;
}


#splash_logo img {
  width: 50px;
  margin: 0 10px 0 0;
}

/* フェイドアップ */
.loadUp {
  animation-name: loadUpAnime;
  animation-duration: 2.2s;
  animation-fill-mode: forwards;
}

@keyframes loadUpAnime {
  from {
      opacity: 0;
      transform: translateY(100px) translate(-50%, -50%);
      filter: blur(3px);
    }
  
    to {
      opacity: 1;
      transform: translateY(0) translate(-50%, -50%);
      filter: blur(0);
    }
}


@media screen and (max-width:820px) {
  #splash_logo {
    width: fit-content;
    font-size: 20px;
width: 90%;
text-align: center;
    display: block;
    justify-content: center;
  }

  #splash_logo img {
    width: 40px;
    height: auto;
  }
}




/* フェードアウト用のアニメーション */
@keyframes fadeOutAnime {
  from {
    opacity: 1;
    filter: blur(0);
  }

  to {
    opacity: 0;
    filter: blur(3px);
    visibility: hidden;
  }
}

.fadeOut {
  animation-name: fadeOutAnime;
  animation-duration: 1.3s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-out;
}


.area img {
  transition: transform 0.2s ease-in-out;
    /* なめらかなズーム効果 */
  /* なめらかな移動のためのトランジション */
}

.area li:hover img {
  transform: scale(1.1);
    /* 1.1倍に拡大 */
  /* 上に10px移動 */
}