/* 站內推廣版位樣式（自動產生，請勿直接編輯本檔；正本是 global.css 的 .promo-* 區塊） */
.promo-slot {
  --border: #d2d2d7;
  --ink-3: #6e6e73;
  --red: #FA0F00;
}
.promo-slot { margin: 40px 0; }
.promo-label { margin: 0 0 8px; font-size: 12px; line-height: 1.4; letter-spacing: .08em; color: var(--ink-3); text-transform: none; }
.promo-track { display: flex; gap: 16px; width: 300px; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.promo-track::-webkit-scrollbar { display: none; }
.promo-item { flex: 0 0 auto; scroll-snap-align: start; line-height: 0; border-radius: 10px; overflow: hidden; }
.promo-item img { display: block; max-width: 100%; height: auto; }
.promo-dots { display: flex; gap: 2px; justify-content: center; margin-top: 8px; }
.promo-dot { width: 44px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.promo-dot::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--border); transition: background .2s ease, transform .2s ease; }
.promo-dot[aria-selected='true']::before { background: var(--red, #FA0F00); transform: scale(1.25); }
.promo-banner { display: flex; flex-direction: column; align-items: flex-start; }
@media (min-width: 1024px) {
  .promo-banner .promo-track { width: 100%; }
  .promo-banner .promo-item { flex: 0 0 100%; }
  .promo-banner .promo-item picture { display: block; width: 100%; }
  .promo-banner .promo-item img { width: 100%; height: auto; }
}
.promo-sidebar { margin: 0; }
@media (min-width: 1024px) {
  .promo-sidebar { position: sticky; top: 88px; }
  .promo-sidebar .promo-track { width: 160px; }
  .promo-sidebar .promo-dots { margin-top: 12px; justify-content: flex-start; }
}
@media (max-width: 1023px) {
  .promo-sidebar { margin: 40px 0; display: flex; flex-direction: column; align-items: flex-start; }
  .promo-desktop-only { display: none; }
}
