/* ============================================================
   css/promo.css — トップページ宣伝欄（画像のみ・スワイプ式カルーセル）
     ・画像を横幅いっぱいに表示、縦は元のアスペクト比を維持
     ・複数枚はスワイプ（横スクロール＋スナップ）で切替
     ・PC は左右の矢印ボタンを表示／全幅でドットも表示
   ============================================================ */

.promo-area { margin-top: 24px; }

.promo-carousel {
  position: relative;
  width: 100%;
}

/* スライドを横に並べる軌道。複数枚時のみ横スクロール＆スナップ */
.promo-track {
  display: flex;
  width: 100%;
}
.promo-carousel.has-multi .promo-track {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.promo-carousel.has-multi .promo-track::-webkit-scrollbar { display: none; }

/* 1スライド＝コンテナ全幅。画像は横幅いっぱい＋自然な縦横比 */
.promo-slide {
  flex: 0 0 100%;
  scroll-snap-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.promo-slide a { display: block; width: 100%; }
.promo-slide img {
  display: block;
  width: 100%;
  height: auto;
}

/* ── 左右の矢印（PCのみ表示）── */
.promo-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: none;                 /* 既定は非表示。PCで表示 */
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, .5);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
  transition: background .15s, opacity .15s;
  padding: 0;
}
.promo-arrow:hover { background: rgba(0, 0, 0, .72); }
.promo-arrow-prev { left: 10px; }
.promo-arrow-next { right: 10px; }
.promo-arrow.is-disabled { opacity: .3; cursor: default; pointer-events: none; }

/* ── ドット ── */
.promo-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 10px;
}
.promo-dot {
  width: 9px; height: 9px; padding: 0;
  border: 1.5px solid var(--text);
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  transition: .18s;
}
.promo-dot.on { background: var(--accent); border-color: var(--accent); }

/* PC：矢印を表示 */
@media (min-width: 641px) {
  .promo-carousel.has-multi .promo-arrow { display: flex; }
}

/* モバイル：矢印は出さずスワイプ操作（ドットは表示のまま） */
@media (max-width: 640px) {
  .promo-arrow { display: none !important; }
}
