/* 站点自定义补充：只补原站 CSS 未覆盖的交互细节，不改任何视觉数值 */

/* 公告滚动（原站由 JS 驱动，这里用等价 CSS 动画） */
.marquee-wrap .marquee.is-scrolling {
  display: flex;
  align-items: center;
  gap: 4em;
  animation: ng-marquee-scroll var(--marquee-dur, 22s) linear infinite;
  will-change: transform;
}
.marquee-wrap:hover .marquee.is-scrolling {
  animation-play-state: paused;
}
@keyframes ng-marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* 单张 banner 时不需要额外位移 */
.slides { display: flex; }
.slides .slide { flex: 0 0 100%; }

/* 底部导航留白，避免遮挡最后一行卡片 */
.page-shell.ng-page-skeleton { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }

/* 卡片角标文字为空时不占位 */
.card > .card-rec-badge:empty { display: none; }

/* 分类只有一组时不显示滚动条 */
.category-buttons { overflow: visible; }

/* 宽屏居中限宽：与原站一致，内容区保持居中窄栏，不撑满全屏（手机端不受影响） */
@media (min-width: 1000px) {
  #app > main.page-shell,
  body.ng-app-shell-ready > .page-shell {
    width: 100%;
    max-width: 960px;
    margin-left: auto;
    margin-right: auto;
  }
}
