/* theme_ads: icon1 marquee (from default ads-ads_icon1.css)
 * Fix: when duplicated track is narrower than viewport (few icons), left-aligned
 * max-content leaves a large right gap on play page. Detect via JS → .is-centered:
 * hide the aria-hidden clone, stop animation, flex-center the single group.
 */
@keyframes ads_icon1-marquee-x {
  0% { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.ads_icon1-marquee {
  box-sizing: border-box;
  margin: 10px auto 0;
  overflow: hidden;
  padding: 10px 0;
  width: 100%;
  max-width: var(--wrap, 1400px);
}
.bstem .ads_icon1-marquee {
  background: hsla(0, 0%, 100%, 0.06);
}
.ads_icon1-marquee-viewport {
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  overflow: hidden;
  width: 100%;
}
.ads_icon1-marquee-track {
  animation: ads_icon1-marquee-x 45s linear infinite;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
}
.ads_icon1-marquee-track:hover {
  animation-play-state: paused;
}
.ads_icon1-marquee-group {
  align-items: flex-start;
  display: flex;
  flex-shrink: 0;
  gap: 20px;
  padding: 0 12px;
}
.ads_icon1-marquee-item {
  box-sizing: border-box;
  flex: 0 0 auto;
  text-align: center;
  width: 72px;
}
.ads_icon1-marquee-item a {
  color: inherit;
  display: block;
  text-decoration: none;
}
.ads_icon1-marquee-item img {
  border-radius: var(--tpl-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  display: block;
  height: 56px;
  margin: 0 auto;
  object-fit: cover;
  width: 56px;
}
.ads_icon1-marquee-item span {
  color: var(--tpl-text-muted);
  display: block;
  font-size: 11px;
  line-height: 1.25;
  margin-top: 6px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bstem .ads_icon1-marquee-item span {
  color: hsla(0, 0%, 100%, 0.7);
}
/* Few icons: track narrower than content — center, no scroll */
.ads_icon1-marquee.is-centered .ads_icon1-marquee-viewport {
  display: flex;
  justify-content: center;
  mask-image: none;
  -webkit-mask-image: none;
}
.ads_icon1-marquee.is-centered .ads_icon1-marquee-track {
  animation: none;
  will-change: auto;
}
.ads_icon1-marquee.is-centered .ads_icon1-marquee-group[aria-hidden="true"] {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .ads_icon1-marquee-track {
    animation: none;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 100%;
    width: 100%;
  }
  .ads_icon1-marquee-group[aria-hidden="true"] {
    display: none;
  }
  .ads_icon1-marquee-group {
    flex-wrap: wrap;
    gap: 12px 16px;
    justify-content: center;
    padding: 0 8px;
    width: 100%;
  }
}

/* icon1 静态格：首页频道下单行、地图四列、播放条内联 */
.ads_icon1_grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  overflow-x: auto;
  width: 100%;
  max-width: var(--wrap, 1400px);
  margin: 8px auto 0;
  padding: 0;
  box-sizing: border-box;
  scrollbar-width: none;
}
.ads_icon1_grid::-webkit-scrollbar { display: none; }
.ads_icon1_grid__item {
  flex: 0 0 56px;
  width: 56px;
  box-sizing: border-box;
}
.ads_icon1_grid__item a { display: block; text-align: center; }
.ads_icon1_grid__item img {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto;
  object-fit: cover;
  border-radius: 8px;
}
.ads_icon1_grid__item span {
  display: block;
  margin-top: 4px;
  color: var(--c-text-muted, #666);
  font-size: 10px;
  line-height: 1.2;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pb-site-map .ads_icon1_grid,
.ads_icon1_grid--grid4 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px 12px;
  overflow: visible;
  margin: 0 0 16px;
  padding: 16px;
  border-radius: 12px;
  background: var(--c-surface, #fff);
  border: 1px solid var(--c-border, rgba(0, 0, 0, 0.08));
}
.pb-site-map .ads_icon1_grid__item,
.ads_icon1_grid--grid4 .ads_icon1_grid__item {
  flex: none;
  width: auto;
}
.pb-site-map .ads_icon1_grid__item img,
.ads_icon1_grid--grid4 .ads_icon1_grid__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
}
.pbs-vod-player__actions .ads_icon1_grid,
.ads_icon1_grid--inline {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  width: auto;
  max-width: none;
  margin: 0;
  overflow-x: auto;
}
.pbs-vod-player__actions .ads_icon1_grid__item,
.ads_icon1_grid--inline .ads_icon1_grid__item {
  flex: 0 0 40px;
  width: 40px;
}
.pbs-vod-player__actions .ads_icon1_grid__item img,
.ads_icon1_grid--inline .ads_icon1_grid__item img {
  width: 40px;
  height: 40px;
  border-radius: 8px;
}
.pbs-vod-player__actions .ads_icon1_grid__item span,
.ads_icon1_grid--inline .ads_icon1_grid__item span {
  display: none;
}

/* 播放条：窗口只放 4 个 40px 图标（间距 8px）。超过 4 个走跑马灯，宽度保持四个。 */
.pbs-vod-player__actions .ads_icon1-marquee,
.ads_icon1-marquee--inline {
  flex: 0 0 184px;
  width: 184px;
  max-width: 184px;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-viewport {
  mask-image: none;
  -webkit-mask-image: none;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-track {
  animation-duration: 16s;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-group {
  align-items: center;
  gap: 8px;
  padding: 0 8px 0 0;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-item {
  width: 40px;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-item img {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  box-shadow: none;
}
.ads_icon1-marquee--inline .ads_icon1-marquee-item span {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .ads_icon1-marquee--inline .ads_icon1-marquee-track {
    flex-wrap: nowrap;
    justify-content: flex-start;
    max-width: none;
    width: max-content;
  }
  .ads_icon1-marquee--inline .ads_icon1-marquee-group {
    flex-wrap: nowrap;
    width: max-content;
  }
}

/* theme_ads: banner1（#1484 主栏宽；展示高度对齐 v10 default ads_banner1：有 ad_data.height 则写 inline height） */
.pb-theme-ads-banner1__link {
  display: block;
}
.pb-theme-ads-banner1__img {
  display: block;
}

/* 全站横幅统一挂在页脚正上方；内容区 / 频道里的 banner1、all 隐藏防重复 */
.pbs-wrap [data-component="theme_ads"][data-slot="banner1"],
.pbs-wrap [data-component="theme_ads"][data-slot="all"],
.pbs-main [data-component="theme_ads"][data-slot="banner1"],
.pbs-main [data-component="theme_ads"][data-slot="all"],
.rank-theme-boards > [data-component="theme_ads"][data-slot="banner1"] {
  display: none !important;
}
.pb-ads-above-footer {
  width: 100%;
  max-width: var(--wrap, 1400px);
  margin-top: auto;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
  padding: 0;
  box-sizing: border-box;
}
.pb-ads-above-footer [data-component="theme_ads"][data-slot="banner1"],
.pb-ads-above-footer [data-component="theme_ads"][data-slot="all"] {
  display: block !important;
  margin: 0;
}
.pb-ads-above-footer + .pb-site-footer,
.pb-ads-above-footer ~ .pb-site-footer,
body .pb-site-footer {
  margin-top: 0;
}

/* theme_ads: double / bottom floating (from default public-head-early) */
.hl_ads_double img{width:100%;height:100%;}
.hl_ads_double{display:block;overflow:hidden;position:fixed;top:60%;z-index:999999998}
#LeftDiv .close_ads_lbtn,#LeftDiv.hl_ads_double{left:0}
#RightDiv.hl_ads_double{right:0}
.hl_bottom_ads{bottom:0;color:var(--tpl-text);left:0;position:fixed;width:100%;z-index:999;overflow:hidden}
.bottom_ads_box,.hl_bottom_ads{display:block;max-height:var(--pb-bottom-float-ad-max, 120px)!important}
.bottom_ads_box{overflow:hidden}
/* 关闭 ×：桌面 32×32；H5（≤768px）28×28（issue #1540，取代 #1492 的 44×44 热区） */
.close_ads_btn,.close_ads_lbtn,.close_ads_rbtn{
  align-items:center;
  background:rgba(0,0,0,.4);
  box-sizing:border-box;
  color:var(--tpl-text-on-inverse, #fff);
  display:flex;
  font-size:18px;
  font-weight:700;
  height:32px;
  justify-content:center;
  line-height:1;
  position:absolute;
  right:0;
  text-align:center;
  text-decoration:none;
  top:0;
  width:32px;
  z-index:2;
}
@media (max-width: 768px){
  .close_ads_btn,.close_ads_lbtn,.close_ads_rbtn{
    font-size:16px;
    height:28px;
    min-height:28px;
    min-width:28px;
    width:28px;
  }
}
.foot.foot_stem{padding-bottom:120px}
.foot_stem .extra{bottom:110px}
html.mac-app-dl-visible .foot.foot_nav.foot_stem{padding-bottom:232px}
.foot.foot_nav.foot_stem{padding-bottom:180px}
.foot_nav.foot_stem .hl_bottom_ads{bottom:1.35rem}
.foot_nav.foot_stem .extra{bottom:180px}

/* PB 移动端底栏：底飘抬到菜单上方。
   运营素材常自带 #bottom-float-ad { position:fixed;bottom:0;z-index:999999 }，
   必须把内部 fixed 打回 relative，再抬父级 bottom。 */
:root {
  --pb-bottom-chrome-h: calc(72px + env(safe-area-inset-bottom, 0px));
  --pb-bottom-float-ad-max: 120px;
}
#bottom_ads.hl_bottom_ads #bottom-float-ad,
#bottom_ads.hl_bottom_ads [style*="position:fixed"],
#bottom_ads.hl_bottom_ads [style*="position: fixed"] {
  position: relative !important;
  bottom: auto !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  z-index: 1 !important;
}
@media (max-width: 640px) {
  html.has-pb-bottom-nav #bottom_ads.hl_bottom_ads,
  body:has(.pb-bottom-nav) #bottom_ads.hl_bottom_ads,
  html.has-pb-bottom-nav .hl_bottom_ads,
  body:has(.pb-bottom-nav) .hl_bottom_ads {
    bottom: var(--pb-bottom-chrome-h) !important;
    transform: none !important;
    z-index: 900;
    max-height: var(--pb-bottom-float-ad-max) !important;
    overflow: hidden;
  }
}
@media (max-width: 960px) {
  body.np2-app #bottom_ads.hl_bottom_ads,
  body.np2-app .hl_bottom_ads[data-slot="bottom"],
  body:has(.np2-tabbar) #bottom_ads.hl_bottom_ads,
  body.np2-app.foot_nav.foot_stem #bottom_ads.hl_bottom_ads,
  html.foot_nav.foot_stem body.np2-app #bottom_ads.hl_bottom_ads {
    bottom: var(--pb-bottom-chrome-h) !important;
    transform: none !important;
    z-index: 900;
    max-height: var(--pb-bottom-float-ad-max) !important;
    overflow: hidden;
  }
}

/* 小说/漫画播放页：地飘在专属操作条之上，操作条始终可点（z-index 920） */
html.has-hl-bottom-ads body.page-novel-read .novel-player__bar,
html.has-hl-bottom-ads body.page-manga-play .manga-player__bar {
  z-index: 920;
}
html.has-hl-bottom-ads body.page-novel-read #bottom_ads.hl_bottom_ads,
html.has-hl-bottom-ads body.page-manga-play #bottom_ads.hl_bottom_ads {
  bottom: var(--pb-bottom-chrome-h, calc(58px + env(safe-area-inset-bottom, 0px))) !important;
  z-index: 900 !important;
  max-height: var(--pb-bottom-float-ad-max) !important;
}
@media (min-width: 821px) {
  html.has-hl-bottom-ads body.page-novel-read #bottom_ads.hl_bottom_ads,
  html.has-hl-bottom-ads body.page-manga-play #bottom_ads.hl_bottom_ads {
    bottom: var(--pb-bottom-chrome-h, calc(64px + env(safe-area-inset-bottom, 0px))) !important;
  }
}

/* 视频搜索页顶部：ads.search_v 列表栏图（宽扁横幅） */
.pb-search-v-ad {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  line-height: 0;
  color: inherit;
  text-decoration: none;
}
.pb-search-v-ad img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  border-radius: 0;
}
.pb-search-v-ad__title,
.pb-search-v-ad__sub {
  display: block;
  line-height: 1.3;
}
.pb-search-v-ad__title {
  font-size: 14px;
  font-weight: 600;
}
.pb-search-v-ad__title em {
  margin-right: 6px;
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
}
.pb-search-v-ad__sub {
  margin-top: 2px;
  font-size: 12px;
  color: var(--c-text-muted, #666);
}

/* theme_ads: play（播放页选集后的图文卡片；PB 不加载 default 的 play_vlist 样式） */
.pb-theme-ads-play{margin:12px 0}
.pb-theme-ads-play a{align-items:center;color:inherit;display:flex;gap:12px;text-decoration:none}
.pb-theme-ads-play__pic{border-radius:var(--tpl-radius, 6px);flex:0 0 120px;overflow:hidden;position:relative;aspect-ratio:16/9}
.pb-theme-ads-play__pic img{display:block;height:100%;object-fit:cover;width:100%}
.pb-theme-ads-play__tip{background:rgba(0,0,0,.55);border-radius:3px;color:#fff;font-size:11px;left:4px;line-height:1;padding:3px 5px;position:absolute;top:4px}
.pb-theme-ads-play__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.pb-theme-ads-play__text strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-theme-ads-play__text em{color:var(--tpl-text-muted);font-size:12px;font-style:normal}
