/*
スクロールダウン
----------*/
/* スクロールダウンの位置 */
.fv{
  position: relative;
}
.scroll-down {
  position: absolute;
  left: 1vw;
  bottom: 160px;
  writing-mode: vertical-rl;
  cursor: pointer;
  z-index: 99999;
  color: var(--base-black-color);
  font-size: clamp(10px,1.3vw,13px);
}
/* 線のアニメーション部分 */
.scroll-down ::before {
  animation: scroll 2s infinite;
  background-color: var(--base-black-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);
  border:0;
  display: flex;
  flex-direction: column; /* 縦方向に並べる */
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  position: absolute;
  top: 50%;
  right: var( --container-padding-left-right);
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  z-index: 9999;
  background-color: var(--base-white-color);
}

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

/* トグルメニュー初期状態 */
.toggle-menu {
  position: fixed;
  top:0;
  right: -100%;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  color: var(--base-black-color);
  transition: right 0.5s ease, opacity 0.5s ease;
  opacity: 0;
  border-right: 0;
  z-index: 9998;
  overflow-y: auto;
  .container{
    padding: clamp(20px,3vw,40px) clamp(10px,2vw,20px);
  }
  .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(4px) 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 {
  text-decoration: none;
}
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;
  gap: clamp(15px,3vw,30px);
}


/* 画像はスライド幅に合わせて表示 */
.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;
}



.marquee-section {
  overflow: hidden;
  padding: clamp(10px, 2vw, 20px) 0;
}

.marquee {
  white-space: nowrap;
  overflow: hidden;
  position: relative;
}

.marquee-content {
  display: inline-block;
  animation: scroll-marquee 30s linear infinite;
  will-change: transform;
}

.marquee-content span {
  display: inline-block;
  padding-right: 2rem;
}

/* アニメーション（右→左）*/
@keyframes scroll-marquee {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100%);
  }
}

/*動くボタン基本構造*/
.anime-button {
  width: clamp(200px,24vw,300px);
  padding: clamp(1px,0.2vw,2px) clamp(5px,1vw,10px);
  border: 1px solid var(--base-black-color);
  border-radius: 200px;
  background-color: rgba(255,255,255,0.25);
}

.anime-button-link {
  display: block;
  text-align: center;
  text-decoration: none;
  color: var(--base-black-color);
  transition: .3s;
}

.button-text {
  font-size: clamp(12px,1.8vw,18px);
  line-height: 1.1;
}
/*動くボタン*/
.arrow-extend {
  padding: clamp(10px,2vw,20px) clamp(10px,2vw,20px);
  color: #333;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
@media screen and (max-width:768px) { 
  .arrow-extend {
    padding: clamp(5px,1.5vw,20px) clamp(10px,2vw,20px);
    color: #333;
    overflow: hidden;
    position: relative;
    z-index: 1;
  }
}

.arrow-extend::before {
  content: '';
  width: clamp(30px,5vw,60px);
  height: clamp(30px,5vw,60px);
  background-color: #e0e82e;
  border-radius: 100px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: .4s;
  z-index: -1;
}

.arrow-extend::after {
  content: '';
  width: clamp(4px,0.8vw,8px);
  height: clamp(4px,0.8vw,8px);
  border-right: 2px solid #333;
  border-bottom: 2px solid #333;
  position: absolute;
  left: clamp(12px,2.2vw,24px);
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
}

.arrow-extend:hover::before {
  width: 100%;
}

