<style>
body {
  margin: 0;
  padding: 0;
  background: #f9f9f9;
  font-family: sans-serif;
}

#item {
  padding: 30px 10px 30px 10px;
}

#item2 {
  padding: 0px 10px 30px 10px;
}

#item3 {
  padding: 0px 10px 30px 10px;
}
.carousel-indicators {
  text-align: center;
  position: sticky;
  left: 0;     /* 左端に固定 */
  width: 100%; /* 画面幅いっぱいに広げる */
  margin-top: 8px;
}

.carousel-indicators-product {
  text-align: center;
  position: sticky;
  left: 0;     /* 左端に固定 */
  width: 100%; /* 画面幅いっぱいに広げる */
}

.carousel-indicators-kcon {
  text-align: center;
  position: sticky;
  left: 0;     /* 左端に固定 */
  width: 100%; /* 画面幅いっぱいに広げる */
}

.carousel-indicators-uma {
  text-align: center;
  position: sticky;
  left: 0;     /* 左端に固定 */
  width: 100%; /* 画面幅いっぱいに広げる */
}

.dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 4px;
  background-color: #afa7f3;
  border-radius: 50%;
  cursor: pointer;
}

.dot.active {
  background-color: #5645f5;
}
.dot.active-product {
  background-color: #5645f5;
}


.carousel-container {
  position: relative;
  width: 100%;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

.carousel-container-product {
  position: relative;
  width: 100%;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

.carousel-container-kcon {
  position: relative;
  width: 100%;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}

.carousel-container-uma {
  position: relative;
  width: 100%;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
}
.carousel-track {
  display: flex;
  width: 100%;
  white-space: nowrap;
  transition: transform 0.5s ease-in-out;
   padding: 0 20px;
}
.carousel-track-product {
  display: flex;
  width: 100%;
  white-space: nowrap;
  transition: transform 0.5s ease-in-out;
   padding: 0 20px;
}
.carousel-track-kcon {
  display: flex;
  width: 100%;
  white-space: nowrap;
  transition: transform 0.5s ease-in-out;
   padding: 0 20px;
}
.carousel-track-uma {
  display: flex;
  width: 100%;
  white-space: nowrap;
  transition: transform 0.5s ease-in-out;
   padding: 0 20px;
}
.carousel-item-detail {
  width: 100%;               /* 親要素の幅に合わせる */
  max-width: 100vw;          /* ビューポートの最大幅を超えないようにする */
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  margin-right: 0;           /* 余白をなくす（必要に応じて） */
  flex-shrink: 0;
  scroll-snap-align: start;
}

.carousel-item {
  flex: 0 0 auto;
  width: 300px;
  /*background: #fff;*/
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  margin-right: 20px;
  flex-shrink: 0;
  /* scroll-snap-align: start; */
}

.carousel-item-product {
  flex: 0 0 auto;
  width: 250px;
  object-fit: cover;
  /*background: #fff;*/
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  margin-right: 20px;
  flex-shrink: 0;
  /* scroll-snap-align: start; */
}

.carousel-item-kcon {
  flex: 0 0 auto;
  width: 250px;
  object-fit: cover;
  /*background: #fff;*/
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  margin-right: 20px;
  flex-shrink: 0;
  /* scroll-snap-align: start; */
}
.carousel-item-uma {
  flex: 0 0 auto;
  width: 250px;
  object-fit: cover;
  /*background: #fff;*/
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  margin-right: 20px;
  flex-shrink: 0;
  /* scroll-snap-align: start; */
}
.carousel-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.carousel-item:hover {
  transform: scale(1.03);
}

.video-wrapper video {
  width: 100%;
  height: auto;
  display: block;
}

.video-info {
  padding: 10px;
  text-align: center;
  background-color: #000; /* 背景色：黒 */
  color: #fff;            /* 文字色：白 */
}

.video-title {
  margin: 5px 0;
  font-size: 16px;
  font-weight: bold;
  color: #fff;            /* タイトルの文字色：白 */  
  display: -webkit-box;
  -webkit-line-clamp: 2;       /* 最大2行まで表示 */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;

}

.video-artist {
  margin: 0;
  font-size: 14px;
  color: #ccc;            /* アーティスト名の文字色：薄い白 */
}

/* スクロールバーを完全に非表示（Webkit系） */
.carousel-container::-webkit-scrollbar {
  display: none;
}

.carousel-container-product::-webkit-scrollbar {
  display: none;
}

.carousel-container-kcon::-webkit-scrollbar {
  display: none;
}

.carousel-container-uma::-webkit-scrollbar {
  display: none;
}

.item-text-box {
    padding-top: 10px;
    width: 100%;
}

.item-title {
    text-align: center;
    margin-bottom: 20px;
    font-size: 20px;
    line-height: 1.2;
}

.item-artist {
    font-size: 18px;
    line-height: 1.1;
    margin-top: 10px;
    margin-bottom: 10px;
}
.item-price {
    display: inline-block;
    margin-top: 16px;
    font-size: 30px;
    color:#9da3ff;
    margin-top: 10px;
    margin-bottom: 10px;
}
.item-tax {
    font-size: 14px;
    color:#9da3ff;
    display: inline-block;
    margin-top: 10px;
    margin-bottom: 10px;
    margin-left: 10px;
}
.item-period {
    color: #888fa9;
    margin-top: 5px;
    margin-bottom: 5px;
}
.item-heading {
    font-size: 30px;
    line-height: 1.2;
}
.item-page-title {
    font-size: 32px;
    font-weight: bold;
    line-height: 1.3;
    color: #9da3ff;
}

.item-detail {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-bottom: 25px;
}

.item-btn {
    display: flex
;
    width: 275px;
    padding: 16px 16px 16px 16px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 32px;
    color: #0f0f10;
    background-color: #9da3ff;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.4;
}
.remarks-txt {
  font-size: 14px;
  margin-top: 2px;
  margin-bottom: 2px;
  line-height: 1.5;
}

.instructions-txt{
  font-size: 14px;
  margin-top: 2px;
  margin-bottom: 2px;
  line-height: 1.5;
}

/* DLボタン */
  #downloadBar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #1c1c1e;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.5);
    z-index: 1000;
    font-family: 'Arial', sans-serif;
    color: white;
  }

  #downloadBar img {
    height: 40px;
  }

  #buttonGroup {
    display: flex;
    gap: 10px;
    align-items: center;
  }

  .barButton {
    background-color: #333;
    color: white;
    border: 1px solid #555;
    padding: 8px 16px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
  }

  .barButton:hover {
    background-color: #555;
  }

  #downloadBar.hidden {
    display: none;
  }

.download-text {
  flex: 1;
  font-size: 14px;
  line-height: 1.4;
}

.item-heading-text {
    font-size: 20px;
    font-weight: bold;
    line-height: 1.4;
    color: #9da3ff;
}

.middle-heading-uma .item-heading-text-uma {
  font-size: clamp(20px, 2.5vw, 25px); /* 最小20px、最大32px、理想は2.5vw */
  font-weight: bold;
  line-height: 1.4;
  color: #9da3ff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

}

.item-box {
  flex-direction: column;
  gap: 16px;
  max-width: 400px;
  height: auto;
}


#main-header {
  margin-top: 60px; /* downloadbarの高さ分だけ下げる */

position: fixed;
    top: 0;
    display: flex;
};
</style>
