html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100%;
  overflow-x: hidden; /* 横スクロールを防ぐ */
}



body {
  margin: 0;
  font-family: sans-serif;

  background:
    url('background-img.jpg') no-repeat center top,
    linear-gradient(to bottom, rgba(152, 233, 209, 1) 33%, rgba(229, 162, 255, 1));

  background-size: 80%, cover;
  /* 画像は60%、グラデーションは全体 */
  background-attachment: scroll, scroll;
  /* スクロールに追従（←ここが重要） */
  background-repeat: repeat-y;
  /* ← 画像を縦横に繰り返す */
  min-height: calc(100vh - 1vw);
  padding-bottom: 1vw;
  /* footer分の余白を追加 */
}


a {
  color: black;
  text-decoration: none;
  text-align: center;
}

a:hover {
  text-decoration: underline;
}

.nav-buttons {
  display: flex;
  justify-content: flex-start;
  gap: 1rem;
  margin-top: 0.1vw;
  font-size:1.2rem ;
}

.nav-button {
  display: inline-block;
  padding: 20px 40px;
  background-color: #f0f0f0;
  color: #333;
  text-decoration: none;

  border-radius: 1VW;
  transition: background-color 0.3s, color 0.3s;

}

.nav-button:hover {
  background-color: #333;
  color: white;
}








header {
  display: flex;
  align-items: center;
  padding: 1rem;
  border-bottom: 0.1rem solid purple;
  background-color: white;
  flex-wrap: wrap;
  justify-content: space-between;
  /* ← 左右に分ける */

}

.title {
  font-size: 60px;
  /* 相対値でフォントサイズを指定 */
  margin-right: 1vw;
  flex-grow: 1;
}

.nav {
  margin-left: auto;
}

.menu-group {
  display: flex;
  gap: 1vw;
  padding: 0;
  margin: 0;
  list-style: none;
}

.mainLOGO {
  width: 160px;
  height: auto;
  margin-right: 1vw;
}

.menu-item img {
  width: 70px;
  height: auto;
}

.menu-item {
  display: flex;
  align-items: center;
  justify-content: center;
}

.menu-item_y{
display: flex;
  align-items: center;
  justify-content: center;

}
.menu-item_y img {
  width: 90px;
  height: auto;
}


.background-img {
  width: 80%;
  /* 相対幅に変更 */
  height: auto;
  display: block;
  margin: 0 auto;
  z-index: 0;
}


.LOGO {
  width: 50%;
  height: auto;
  z-index: 1;
  position: absolute;
  left: -7%;
  top: -25%;
  transform: rotate(-5deg);
  /* 2D(平面)で回転 */
}




.custom-slider-wrapper {
  position: relative;
  width: 80%;
  margin: 0 auto;
  text-align: center;
  height: 0.5vw;
}

.custom-base-image {
  position: absolute;
  /* 追加 */
  top: 3000%;
  /* 上からの距離 */
  left: 50%;
  /* 中央揃えの基点 */
  transform: translateX(-50%);
  /* 中央揃え */
  width: 120%;
  display: block;
  z-index: 0;
}

.custom-overlay-image {
  position: absolute;
  top: 3000%;
  left: 25%;
  width: 50%;
  pointer-events: none;
  z-index: 2;
}

.custom-arrow {
  position: absolute;
  top: 5600%;
  transform: translateY(-50%) scaleY(1.5);
  
  font-size: 7.2vw;
  color: purple;
  cursor: pointer;
  z-index: 3;
  user-select: none;
  
}

.custom-arrow-left {
  left: 9.3%;
}

.custom-arrow-right {
  right: 9.3%;
}

.preparation{
  position: absolute;
  top: 2500%;
  left: 31%;
  font-size: 10vw;
}


.overlay-image {
  position: absolute;
  width: 88%;
  height: 33%;
  /* 相対的なサイズ */

  top: 87%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.arrow {
  position: absolute;
  top: 85%;
  width: 5vw;
  height: 5vw;
  cursor: pointer;
}

.left-arrow {
  z-index: 3;
  left: -40%;
  cursor: pointer;
  font-size: 1.5rem;
  color: skyblue;
  user-select: none;
}

.right-arrow {
  right: 0%;
  z-index: 3;
  cursor: pointer;
  font-size: 1.5rem;
  color: skyblue;
  user-select: none;
}


.images {

  text-align: center;
  position: relative;
  height: 100%;
}

.question {
  position: absolute;
  top: 58%;
  /* 紹介文の位置を調整 */
  left: 35%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: center;
  z-index: 3;
  font-size: 2.5vw;
  /* 相対的なフォントサイズ */
  color: #CC33CC;
}

.answer {
  position: absolute;
  top: 76%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 45%;
  /* 幅を調整 */
  text-align: left;
  z-index: 3;
  font-size: 2.5vw;
  /* 相対的なフォントサイズ */
  color: black;
}

.A {
  width: 70%;
  max-width: 100vw;
  height: auto;

  transform-origin: center;
  z-index: 0;
  position: relative;

  margin-top: 60%;
}



.intro {
  padding: 1vw;
  text-align: center;
  position: relative;
  height: 100%;
}



.B {
  width: 70%;
  height: auto;
  transition: all 0.3s ease;
  transform-origin: center;
  z-index: 0;
  position: relative;
  margin-bottom: 30%;
  margin-top: 10%;
}

.introduce {
  position: absolute;
  top: 15%;
  /* 紹介文の位置を調整 */
  left: 33%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: center;
  z-index: 3;
  font-size: 2.5vw;
  /* 相対的なフォントサイズ */
  color: #CC33CC;
}



.description {
  position: absolute;
  top: 34%;
  /* 紹介文の位置を調整 */
  left: 52.7%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 30%;
  /* 幅を調整 */
  text-align: left;
  z-index: 3;
  font-size: 1.2vw;
  /* 相対的なフォントサイズ */
  color: black;
  white-space: nowrap;
}

.teams {
  position: absolute;
  top: 41%;
  /* 親要素内での縦位置を調整 */
  left: 33%;
  /* 親要素内での横位置を調整 */
  transform: translate(-50%, -50%);
  padding: 1vw;
  border-radius: 1vw;
  width: auto;
  text-align: center;
  z-index: 3;
  

}

.top-arrow,
.bottom-arrow {
  cursor: pointer;
  font-size: 1vw;
  color: skyblue;
  user-select: none;
}

.team {
  cursor: pointer;
  padding: 1vw;
  margin: 0.1vw;

  text-align: center;
  transition: transform 1.5vw;
  font-size: 1.5vw;
}

.selected {
  font-size: 1.2vw;
  font-weight: bold;
  border: 3px solid purple;
  display: inline-block;
  padding: 0.1vw;
  line-height: 1.2;
}



.team-images {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 2%;
  height: 1vw;
}

#team-image1,
#team-image2 {
  position: absolute;
  height: auto;
}

#team-image1 {
  width: 15%;
  top: -4300%;
  left: 48%;
  transform: translateX(-50%);
}

#team-image2 {
  width: 15%;
  top: -4300%;
  right: 21%;
  transform: translateX(-50%);
}










footer {
  background: transparent;
  /* footerの背景画像を透明に設定 */
  padding: 1vw;
  border-top: 5px solid lightgreen;
  font-size: 1vw;
  font-weight: bold;
  text-align: center;
}


/* スマホ用レイアウト調整 */
@media (max-width: 960px) {

  /* ヘッダー関連 */
  header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .mainLOGO {
    width: 20vw; /* スマホでは少し大きめに */
    margin: 0 auto 0.5rem;
  }

  .title {
    font-size: 1.5rem; /* 画面幅に収まる大きさに */
    margin: 0.5rem 0;
  }

  .nav-buttons {
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    align-items: center;
  }

  .nav-button {
    font-size: 1rem;
    width: 80%;
    padding: 0.8rem;
  }

  .nav .menu-group {
    display: flex;           /* ← これが必須 */
  justify-content: center; /* 横方向の中央寄せ */
  align-items: center;     /* 縦方向の中央寄せ */
  gap: 0.5rem;
  margin: 0.5rem auto;
  padding: 0;              /* 不要な余白がある場合はリセット */
  list-style: none;        /* li のポチを消す */
  left: 50%;
  }


  .menu-item img,
  .menu-item_y img {
    width: 14vw; /* 小さなアイコンに */
     justify-content: center;
     display: block;
  margin: 0 auto; /* 画像を中央寄せ */
  }


.A {
  width: 170%;
  max-width: 100vw;
  height: auto;

  transform-origin: center;
  z-index: 0;
  position: relative;

  margin-top: 60%;
}

.question{
  position: absolute;
  top: 48.5%;
  /* 紹介文の位置を調整 */
  left: 35%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: center;
  z-index: 3;
  font-size: 4.5vw;
  /* 相対的なフォントサイズ */
  color: #CC33CC;
}

.answer{
   position: absolute;
  top: 72%;
  left: 51%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: left;
  z-index: 3;
  font-size: 3.8vw;
  /* 相対的なフォントサイズ */
  color: black;
  width: 60%s;

}




.B {
 width: 170%;
  max-width: 100vw;
  height: auto;

  transform-origin: center;
  z-index: 0;
  position: relative;

  
}

.introduce {
  position: absolute;
  top: 12%;
  /* 紹介文の位置を調整 */
  left: 33%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: center;
  z-index: 3;
  font-size: 4.5vw;
  /* 相対的なフォントサイズ */
  color: #CC33CC;
}



.description {
  position: absolute;
  top: 36%;
  /* 紹介文の位置を調整 */
  left: 66%;
  transform: translate(-50%, -50%);
  padding: 1rem;
  border-radius: 8px;
  width: 60%;
  /* 幅を調整 */
  text-align: left;
  z-index: 3;
  font-size: 1.65vw;
  /* 相対的なフォントサイズ */
  color: black;
  white-space: nowrap;
}

.teams {
  position: absolute;
  top: 43.5%;
  /* 親要素内での縦位置を調整 */
  left: 27%;
  /* 親要素内での横位置を調整 */
  transform: translate(-50%, -50%);
  padding: 1vw;
  border-radius: 1vw;
  width: auto;
  text-align: center;
  z-index: 3;
  

}

.top-arrow,
.bottom-arrow {
  cursor: pointer;
  font-size: 1.5vw;
  color: skyblue;
  user-select: none;
}

.team {
  cursor: pointer;
  padding: 1.1vw;
  margin: 0.1vw;

  text-align: center;
  transition: transform 1.5vw;
  font-size: 2.5vw;
}

.selected {
  font-size: 2.8vw;
  font-weight: bold;
  border: 3px solid purple;
  display: inline-block;
  padding: 0.1vw;
  line-height: 1.2;
}



.team-images {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 2%;
  height: 1vw;
}

#team-image1,
#team-image2 {
  position: absolute;
  height: auto;
}

#team-image1 {
  width: 23%;
  top: -5200%;
  left: 48%;
  transform: translateX(-50%);
}

#team-image2 {
  width: 23%;
  top: -5200%;
  right: 3.8%;
  transform: translateX(-50%);
}


footer {
    font-size: 0.8rem;
    padding: 0.5rem;
  }

}