/* ==========================================================================

   1. 変数・リセット

   ========================================================================== */

   :root {

    /* カラー設計 */

    --bg-base: #0E0E0E;

    --bg-section: #1A1A1A;

    --bg-card: #222222;

    --bg-active: #2A2433;

 

    --text-main: #EDEDED;

    --text-sub: #B5B5B5;

   

    --accent: #7C6EFF;

    --accent-active: #9A90FF;

    --border-color: #333333;

 

    --max-width: 1200px;

  }

 

  /* スムーズスクロールを有効化 */

  html {

    scroll-behavior: smooth;

  }

 

  * {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

  }

 

  body {

    /* ▼ 修正：日本語フォント 'Noto Sans JP' を追加 */

    font-family: 'Inter', 'Noto Sans JP', -apple-system, sans-serif;

    background-color: var(--bg-base);

    color: var(--text-main);

    min-height: 100vh;

    line-height: 1.8;

    -webkit-font-smoothing: antialiased;

  }

 

  /* ==========================================================================

     2. ヒーローセクション

     ========================================================================== */

  .hero {
    position: relative;
    width: 100%;
    min-height: 620px;
    padding: 60px 20px 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-color: var(--bg-section);
    overflow: hidden;
  }
  .hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(rgba(0,0,0,0.25), rgba(0,0,0,0.25)), url('../img/lack.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: blur(1.5px);
    z-index: 0;
  }
  .hero h1,
  .hero .hero-logo {
    position: relative;
    z-index: 1;
  }
  .hero h1 {
    font-size: 3rem;
    font-weight: 600;
    margin-bottom: 24px;
    letter-spacing: -0.04em;
    color: #FFF;
  }

  .hero-logo {
    margin-top: 28px;
  }

  .hero-logo img {
    display: block;
    margin: 0 auto;
  }

 
  /* ==========================================================================

     4. コンテンツ・セクション共通

     ========================================================================== */

  .section {

    background-color: var(--bg-section);

    padding: 100px 20px;

    position: relative;

  }

 

  .section-inner {

    max-width: var(--max-width);

    margin: 0 auto;

  }

 

  .section-title {

    text-align: center;

    font-size: 1.8rem;

    margin-bottom: 32px;

    letter-spacing: -0.02em;

  }

  .section-intro {
    text-align: center;
    max-width: 560px;
    margin: 0 auto 48px;
  }
  .section-intro p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--text-sub);
    margin-bottom: 12px;
  }
  .section-intro p:last-child {
    margin-bottom: 0;
  }

 

  /* 特徴カード */

  .features {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 24px;

  }

 

  .card {

    background-color: var(--bg-card);

    border: 1px solid var(--border-color);

    border-radius: 12px;

    padding: 32px;

    transition: background-color 0.2s ease;

  }

 

  .card:hover {

    background-color: var(--bg-active);

  }

 

  .card h3 {

    margin-bottom: 12px;

    font-size: 1.2rem;

    color: var(--accent);

  }

 

  .card p {

    color: var(--text-sub);

    font-size: 1rem;

  }



  .card p {

    color: var(--text-sub);

    font-size: 1rem;

  }

 

  /* ▼ 新しく追加：「使い方」のグレー枠内の余白を広げる ▼ */

  .workflow-wrapper {

    /* 上下80px、左右80pxのたっぷりとした余白を設定 */

    padding: 80px;

  }



  /* ==========================================================================

   カテゴリタブ（新設）

   ========================================================================== */

.category-header {

  display: flex;

  justify-content: center;

  gap: 32px;

  margin-bottom: 40px;

  border-bottom: 1px solid var(--border-color);

  padding-bottom: 16px;

}



.category-title {

  /* font-family: 'IBM Plex Mono', monospace; */

  font-size: 1.2rem;

  font-weight: 500;

  cursor: pointer;

  color: var(--text-sub);

  position: relative;

  transition: color 0.2s ease;

}



/* アクティブ（現在選択されている）タブ */

.category-title.active {

  color: var(--accent);

}



.category-title.active::after {

  content: '';

  position: absolute;

  bottom: -17px; /* border-bottom の位置に合わせる */

  left: 0;

  width: 100%;

  height: 2px;

  background-color: var(--accent);

}



/* 非アクティブ（Coming Soon）のタブ */

.category-title.disabled {

  color: #555;

  cursor: not-allowed;

  font-size: 1.1rem;

}



/* タブコンテンツの切り替え用 */

.tab-content {

  display: none;

  animation: fadeIn 0.4s ease;

}



.tab-content.active {

  display: block;

}



@keyframes fadeIn {

  from { opacity: 0; transform: translateY(10px); }

  to { opacity: 1; transform: translateY(0); }

}



/* スマホ対応（タブがはみ出さないように） */

@media (max-width: 768px) {

  .category-header {

    gap: 16px;

    flex-wrap: wrap; /* 画面が狭い場合は折り返す */

  }

  .category-title {

    font-size: 1rem;

  }

  .category-title.disabled {

    font-size: 0.9rem;

  }

}



/* ▼ 追加：Coming Soon 領域のスタイル ▼ */

.coming-soon {

  text-align: center;

  padding: 100px 20px;

  background-color: var(--bg-card);

  border: 1px dashed var(--border-color);

  border-radius: 12px;

  color: var(--text-sub);

  margin-bottom: 80px; /* Fashionタブの下の余白と合わせる */

}



.coming-soon h3 {

  color: var(--text-main);

  font-family: 'IBM Plex Mono', monospace;

  margin-bottom: 16px;

  font-size: 1.5rem;

}

 

 /* ==========================================================================

     5. ワークフロー (スクロールブロック)

     ========================================================================== */

     .scroll-block {

      display: flex;

      /* ▼ 変更：center から flex-start（上揃え）にします */

      align-items: flex-start;

      gap: 80px;

      margin-bottom: 100px;

    }

 

    /* ⚠️ 変更：以前あった ::before や ::after の横線を削除（記述自体を消してOKです） */

 

    .scroll-block.reverse {

      flex-direction: row-reverse;

    }

   

    .scroll-block:last-child {

      margin-bottom: 0;

    }



    .scroll-block {

      display: flex;

      align-items: flex-start;

      gap: 120px;          /* ← 80px から 120px に広げる */

      margin-bottom: 140px; /* ← 上下の間隔も少し広げてゆったりさせる */

    }

   

    .scroll-text h3 {

      font-size: 1.8rem; /* 少し大きく */

      margin-bottom: 16px;

      font-weight: 600;

    }

   

    /* 追加：見出しの数字だけ色を変えるオシャレなテクニック（HTML変更不要） */

    .scroll-text h3 {

      font-size: 1.8rem;

      margin-bottom: 16px;

      font-weight: 600;

      color: var(--accent); /* ← これを追加！文字全体がテーマカラー（紫）になります */

    }

   

/* --- 修正版：画像・動画ボックス --- */

.image-box {

  flex: 1.2;

  /* aspect-ratio: 16 / 10;  ← 削除：縦長・横長両方に対応させるため */

  background-color: transparent; /* 背景を透明に（黒帯を防ぐ） */

  border: none; /* 枠線を消す（動画自体に設定するため） */

  overflow: visible; /* 影を綺麗に見せるため */

  box-shadow: none;

  display: flex;

  justify-content: center; /* 中央寄せ */

}



/* 横長画像（これまでの画像）用の設定 */

.image-box img {

  width: 100%;

  height: auto;

  aspect-ratio: 16 / 10; /* 画像はこれまでの比率を維持 */

  object-fit: cover;

  border-radius: 12px;

  border: 1px solid rgba(255, 255, 255, 0.08);

  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6);

}



/* 縦長動画（スマホデモ）用の設定 */

.image-box video {

  width: auto;

  max-width: 280px;      /* ★PC画面でのスマホの横幅を固定 */

  height: auto;

  border-radius: 32px;   /* スマホらしい角丸 */

  border: 6px solid #333; /* スマホのベゼル（縁）を作る */

  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8); /* 浮かせる */

  background: #000;

}



/* スマホ表示の時は動画の幅を少し広げる */

@media (max-width: 768px) {

  .image-box video {

    max-width: 80%; /* 画面幅に対して80%くらいのサイズに */

  }

}

  /* ==========================================================================

     6. テクノロジー・CTA・フッター

     ========================================================================== */

  .tech-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 40px;

    margin-top: 40px;

  }

 

  .tech-card {

    background: var(--bg-card);

    border: 1px solid var(--border-color);

    border-radius: 16px;

    padding: 40px;

  }

 

  .tech-visual {

    width: 100%;

    height: 200px;

    background: rgba(0,0,0,0.3);

    border-radius: 8px;

    border: 1px dashed #444;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #666;

    font-family: 'IBM Plex Mono', monospace;

    font-size: 0.8rem;

  }

 

  .cta {

    padding: 120px 20px;

    text-align: center;

    background-color: var(--bg-section);

  }

 

  .app-btn {

    display: inline-block;

    padding: 20px 48px;

    background-color: var(--accent);

    color: #fff;

    border-radius: 8px;

    font-weight: 600;

    text-decoration: none;

    transition: background-color 0.2s, transform 0.2s;

  }

 

  .app-btn:hover {

    background-color: var(--accent-active);

    transform: translateY(-2px);

  }

 

  .dev-notice {
    text-align: center;
    padding: 48px 20px;
    font-size: 0.95rem;
    color: var(--text-sub);
    background-color: var(--bg-section);
  }
  footer {

    background-color: var(--bg-base);

    padding: 80px 20px;

    border-top: 1px solid var(--border-color);

    font-family: 'IBM Plex Mono', monospace;

    font-size: 0.85rem;

    color: var(--text-sub);

  }

 

  .footer-inner {

    max-width: var(--max-width);

    margin: 0 auto;

    display: flex;

    justify-content: space-between;

  }
  footer a {
    color: var(--text-sub);
    text-decoration: none;
  }
  footer a:hover {
    color: var(--accent);
  }

 

/* ==========================================================================

   7. レスポンシブ (スマホ対応)

   ========================================================================== */

@media (max-width: 768px) {

  .hero {

    min-height: 420px;

    padding: 40px 16px 60px;

  }

 

  .hero h1 {

    font-size: 2rem;

  }



  .hero-logo img {

    max-width: 160px;

  }

 

  /* セクション全体の余白をスマホ用に縮小 */

  .section {

    padding: 60px 16px;

  }



  .section-title {

    font-size: 1.5rem;

    margin-bottom: 40px;

  }
  .section-intro {
    margin-bottom: 36px;
    padding: 0 16px;
  }
  .section-intro p {
    font-size: 1rem;
  }



  /* カードを1列にし、スマホ用に内側の余白を少し狭める */

  .features, .tech-grid {

    grid-template-columns: 1fr;

  }

 

  .card, .tech-card {

    padding: 24px;

  }



  /* 使い方のグレーの枠（スマホでは余白を減らす） */

  .workflow-wrapper {

    padding: 40px 16px !important;

    margin-bottom: 40px !important;

  }



  /* 画像とテキストを縦並びに */

  .scroll-block, .scroll-block.reverse {

    flex-direction: column;

    gap: 24px;

    margin-bottom: 60px;

  }



  /* デスクトップ用の上揃え余白（padding-top:24px）をスマホではリセット */

  .scroll-text {

    padding-top: 0;

  }

 

  .coming-soon {

    padding: 60px 20px;

    margin-bottom: 40px;

  }



  .footer-inner {

    flex-direction: column;

    gap: 24px;

    text-align: center; /* スマホではフッターを中央揃えにすると綺麗です */

  }

}

/* モバイル限定改行：デスクトップでは非表示 */
@media (min-width: 769px) {
  br.mobile-only {
    display: none;
  }
}

  /* ==========================================================================

   横スクロールレイアウト

   ========================================================================== */

.features-scroll {
  position: relative;
  margin-bottom: 48px;
}
.features-bento {
  display: flex;
  flex-direction: row;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.features-bento::-webkit-scrollbar {
  display: none;
}
/* 1つの機能ブロック：動画左・テキスト右・1枚1スライド */
.bento-item {
  flex: 0 0 100%;
  min-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  padding: 40px 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.bento-item-full .bento-video {
  flex-shrink: 0;
  position: relative;
  display: flex;
  justify-content: flex-start;
  width: 320px;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border-radius: 40px;
  border: 6px solid #333;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
  background: #000;
}
.bento-item-full .video-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.9rem;
  z-index: 1;
  transition: opacity 0.3s ease;
}
.bento-item-full .video-loading.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.bento-item-full .bento-video video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: inherit;
}
.bento-item-full .bento-text {
  flex-shrink: 0;
  width: 420px;
  text-align: left;
  margin: 0;
}
.bento-text h3 {
  font-size: 1.8rem;
  font-weight: 600;
  margin-bottom: 16px;
  color: var(--accent);
}
.bento-text p {
  color: var(--text-sub);
  line-height: 1.8;
}
/* パネル両端のナビゲーション（＜ ＞） */
.scroll-edge {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: none;
  background: rgba(26, 26, 26, 0.9);
  color: var(--text-main);
  font-size: 1.5rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: background-color 0.2s, color 0.2s;
}
.scroll-edge:hover {
  background: var(--bg-active);
  color: var(--accent);
}
.scroll-prev {
  left: 0;
}
.scroll-next {
  right: 0;
}
/* モバイル：横スクロール維持、スライド内は縦並び */
@media (max-width: 768px) {
  .bento-item {
    flex-direction: column;
    gap: 24px;
    padding: 24px 0;
    text-align: center;
  }
  .bento-item-full .bento-video {
    width: 280px;
    justify-content: center;
  }
  .bento-item-full .bento-text {
    width: auto;
    max-width: 320px;
    margin: 0 auto;
    text-align: center;
  }
  .scroll-edge {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }
}