/*
スクロールダウン
----------*/
/* スクロールダウンの位置 */
.fv{
  position: relative;
}
.scroll-down {
  position: absolute;
  left: 1vw;
  bottom: 160px;
  writing-mode: vertical-rl;
  cursor: pointer;
  z-index: 99999;
  color: var(--base-white-color);
  font-size: clamp(10px,1.3vw,13px);
}
/* 線のアニメーション部分 */
.scroll-down ::before {
  animation: scroll 2s infinite;
  background-color: var(--base-white-color);
  bottom: -115px;
  content: "";
  height: 100px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 1px;
}
/* 線のアニメーション */
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}

/* ハンバーガーメニュー */
.hamburger-menu {
  width: clamp(40px,6vw,60px); /* 円の大きさ */
  height: clamp(40px,6vw,60px);
  background-image: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
  border:0;
  border-radius: 50%; /* 円形 */
  display: flex;
  flex-direction: column; /* 縦方向に並べる */
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.2); /* オプション: 光の効果 */
  position: absolute;
  top: 50%;
  right: var( --container-padding-left-right);
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  z-index: 9999;
}

/* 三本の線 */
.hamburger-menu span {
  display: block;
  width: clamp(16px,2vw,20px); /* 線の横幅 */
  height: 3px; /* 線の太さ */
  background-color: #fff; /* 線の色 */
  margin: 2px 0; /* 線同士の間隔 */
  transition: transform 0.3s ease; /* 開閉時のアニメーション */
}

/* トグルメニュー初期状態 */
.toggle-menu {
  position: fixed;
  top:0;
  right: -100%;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  background-image: linear-gradient(270deg, var(--primary-color), var(--secondary-color));
  color: #333;
  transition: right 0.5s ease, opacity 0.5s ease;
  opacity: 0;
  border-right: 0;
  z-index: 9998;
  overflow-y: auto;
  .container{
    padding: 3em 1em;
  }
  .logo-area{
    figure{
      max-width: 200px;
      margin-left: auto;
      margin-right: auto;
    }
    
  }
}

.toggle-menu.active {
  right: 0;
  opacity: 1;
}
/* ハンバーガーメニューのアクティブ時のスタイル */
.hamburger-menu.active {
  background: transparent; /* 背景を透明にする */
  border: 2px solid #fff; /* ボーダーを白にする */
}

/* ハンバーガーメニューの「×」ボタン */
.hamburger-menu.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.hamburger-menu.active span:nth-child(2) {
  opacity: 0; /* 真ん中の線を消す */
}

.hamburger-menu.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.toggle-menu ul {
  list-style: none;
  padding: 0;
}

.toggle-menu li {
  margin: 10px 0;
}

.toggle-menu a {
  color: #fff;
  text-decoration: none;
}
header .nav-area .toggle-menu a:hover{
  color: var(--dark-gray-color);
}
body.no-scroll {
  overflow: hidden;
}

/* PCスタイル */
@media (min-width: 864px) {
  .toggle-menu {
      width: 100vw;
  }
}

/* PCではグローバルナビを表示 */
@media (min-width: 864px) {
  .gloval-nav {
    display: block;
  }
}

/* SPではグローバルナビを非表示、ハンバーガーメニューを表示 */
@media (max-width: 863px) {
  .gloval-nav {
    display: none;
  }
  .toggle-nav {
    display: flex;
  }
}

/*swiper基本*/

/* スライド1枚あたりの幅を固定  */
.swiper-slide {
  width: clamp(250px,32vw,320px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  transition: transform 0.3s ease, opacity 0.3s ease;
}


/* 画像はスライド幅に合わせて表示 */
.swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}
.swiper-pagination{
  width: 20px;
  height: 20px;
}
.swiper-slide {
  position: relative;
.image-area{
  width: 100%;
  height: 100%;
  img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.video-area{
  width: 100%;
  height: 100%;
  video{
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1em;
    border: clamp(2px,4vw,4px) solid var(--base-black-color);
  }
} 
}

/* swiper knowledge */
.knowledge {
  width: 100%;
  margin: 0 auto;
  overflow:hidden;
  /* 必要に応じて overflow:hidden; する場合もあり */
}

/* Swiper全体 */
.knowledge {
  width: 100%;
  position: relative;
}
.knowledge .swiper-slide {
  width: clamp(250px,32vw,320px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
/* Swiper全体 */
.knowledge-swiper {
  width: 100%;
  position: relative;
  /* ここを追加 */
  overflow: visible;
}
/* swiper slideshow-section-01 */
.slideshow-section-01 .swiper-slide {
  width: clamp(210px,42vw,423px);
}
.slideshow-section-01 {
  width: 100%;
  margin: 0 auto;
  overflow:hidden;
  /* 必要に応じて overflow:hidden; する場合もあり */
}

/* Swiper全体 */
.slideshow-section-01 {
  width: 100%;
  position: relative;
}
/* Swiper全体 */
.slideshow-swiper {
  width: 100%;
  position: relative;
  /* ここを追加 */
  overflow: visible;
}
.slideshow-swiper {
  pointer-events: none; /* 触れられないようにする */
}

/* Back to Top の位置 */
/* 共通のスタイル（Scroll Down & Back to Top） */
footer{
  position: relative;
}
.back-to-top {
  position: absolute;
  writing-mode: vertical-rl;
  text-align: center;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  color: var(--primary-color);
  z-index: 99999;
}

/* バック・トゥ・トップの位置 */
.back-to-top {
  right: clamp(20px, 3.5vw, 35px);
  top:50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

/* 線のアニメーション部分（共通） */
.back-to-top::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 100px;
  background-color: var(--primary-color);
  left: 50%;
  transform: translateX(-50%);
  animation: scroll-line-reverse 2s infinite;
}
@media screen and (max-width:768px) { 
  .back-to-top {
    top:auto;
    bottom:0;
  }
}

/* バック・トゥ・トップ用の線の位置 */
.back-to-top::before {
  top: -115px;
}

/* 線のアニメーション（下から上へ） */
@keyframes scroll-line-reverse {
  0% {
    transform: scale(1, 0) translateX(-50%);
    transform-origin: 0 100%;
  }
  50% {
    transform: scale(1, 1) translateX(-50%);
    transform-origin: 0 100%;
  }
  51% {
    transform: scale(1, 1) translateX(-50%);
    transform-origin: 0 0;
  }
  100% {
    transform: scale(1, 0) translateX(-50%);
    transform-origin: 0 0;
  }
}

/* スクロール時に表示 */
.show-back-to-top {
  opacity: 1;
  visibility: visible;
}

.bg {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

/* グラデーション背景（スライドして現れる）*/
.bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(270deg, var(--base-white-color), var(--base-white-color));
  transform: translateX(-100%);
  transition: transform 0.6s ease;
  z-index: 1;
}

/* テキスト（あとからスライド表示）*/
.bg span {
  position: relative;
  display: inline-block;
  color: var(--primary-color);
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity 0.5s ease-out 0.4s, transform 0.5s ease-out 0.4s;
  z-index: 2;
}

/* アニメーション発火時*/
.bg.in-view::before {
  transform: translateX(0);
}

.bg.in-view span {
  opacity: 1;
  transform: translateX(0);
}

/* 順番ごとの遅延（タイミングずらし）*/
.bg.bg-1::before { transition-delay: 0s; }
.bg.bg-2::before { transition-delay: 0.3s; }
.bg.bg-3::before { transition-delay: 0.7s; }
.bg.bg-4::before { transition-delay: 0.9s; }
.bg.bg-5::before { transition-delay: 1.3s; }
.bg.bg-6::before { transition-delay: 1.5s; }

.bg.bg-1 span { transition-delay: 0.5s; }
.bg.bg-2 span { transition-delay: 0.9s; }
.bg.bg-3 span { transition-delay: 1.3s; }
.bg.bg-4 span { transition-delay: 1.6s; }
.bg.bg-5 span { transition-delay: 2s; }
.bg.bg-6 span { transition-delay: 2.4s; }
