/* CSS Document */

/* 外枠の制限を解除 */
.card-wrap {
  overflow: visible; 
}
 
/* 横スクロールを解除し、自動で折り返して綺麗に並ぶようにする */
.card-box {
  display: flex;
  flex-wrap: wrap;     /* 画面幅に収まらない場合は下段に折り返す */
  overflow-x: visible; /* 横スクロールを無効化 */
  scroll-snap-type: none; /* スナップ機能をオフ */
  padding: 0;
  justify-content: center; /* カードを中央寄せ（左寄せなら flex-start） */
}

/* 各カードの幅を固定から「3カラム（3列）」などに自動調整 */
.card-item {
  flex: 0 0 calc(32%); /* 3列で並べる */
  margin: 5px;            /* 2段目になったときの下の余白 */
}

/* ==========================================================================
   画面幅が 640px 以下（SP環境）のときの設定
   ========================================================================== */
@media only screen and (max-width : 640px){

  /* 外枠：はみ出たカードを隠す */
  .card-wrap {
    width: 100%;
    overflow: hidden;
    padding: 10px 0;
  }

  /* 親要素：横並び＆スクロール制御 */
  .card-box {
    display: flex;
    flex-wrap: nowrap;       /* ★重要：PCの折り返しを解除し、横一列に強制する */
    justify-content: flex-start; /* ★重要：左端から綺麗にスクロールさせる */
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    
    /* スクロールバー非表示（Firefox/IE） */
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-left: 5px;
    padding-right: 5px;
  }

  /* スクロールバー非表示（Chrome/Safari） */
  .card-box::-webkit-scrollbar {
    display: none;
  }

  /* 各カード（子要素） */
  .card-item {
    flex: 0 0 280px; /* カードの横幅（縮まない設定） */
    margin: 0 15px 0 0; /* ★調整：下のマージンを0にし、右側の余白だけに整理 */
    scroll-snap-align: start;
  }
}