/*
Theme Name: 落魄山 · Zibll 9.0 子主题（1.5.35 父级页头页尾收敛版）
Theme URI: https://www.luoposhan.com/
Description: 为落魄山定制的 Zibll 9.0 子主题（构建 1.5.35）。页头、Logo 与页尾完全复用父主题，首页模块保留独立布局。
Author: 落魄山
Author URI: https://www.luoposhan.com/
Template: zibll
Version: 9.0
Requires at least: 5.8
Requires PHP: 7.0
Text Domain: luoposhan-zibll
*/

:root {
  --lps-max: 1240px;
  --lps-brand: #4a90c2;
  --lps-brand-dark: #3278aa;
  --lps-brand-light: #7ab5dc;
  --lps-accent: #6cb0e8;
  --lps-text: #2c3e50;
  --lps-text-2: #627386;
  --lps-text-3: #8d9cac;
  --lps-bg: #f6f7f9;
  --lps-card: #fff;
  --lps-soft: #f0f3f6;
  --lps-border: #e2eaf1;
  --lps-shadow: 0 3px 12px rgba(59, 116, 158, .055);
  --lps-shadow-hover: 0 6px 18px rgba(59, 116, 158, .085);
  --lps-radius: 12px;
  /* 全站强调色统一为同一套蓝色，避免卡片、排行与按钮混入粉橙色。 */
  --lps-warm: #4a90c2;
  --lps-warm-dark: #3278aa;
  --lps-gold: #2f6df6;
  --lps-silver: #5d9bcb;
  --lps-bronze: #397fb4;
  --lps-blue: #2f6df6;

  /* 行距令牌：收敛分散的 line-height 值（1/1.28/1.35/1.4/1.45/1.55/1.65/1.72/1.75/1.78/1.8/1.85），
     提供语义化引用。新规则优先用 var()；存量值后续逐步替换。 */
  --lps-leading: 1.7;
  --lps-leading-tight: 1.4;
  --lps-heading: 1.5;
  --lps-icon: 1;
  /* 全站字体系：正文/标签 400，常规标题/导航 500，页面级大标题 700。 */
  --lps-font: "Noto Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --lps-font-regular: 400;
  --lps-font-medium: 500;
  --lps-font-bold: 700;
  /* 统一悬停动效：平滑减速曲线 + 一致时长，消除各模块跳动/突兀 */
  --lps-ease-hover: cubic-bezier(0.22, 0.61, 0.36, 1);
  --lps-hover-dur: .32s;
}

html,
body {
  background: var(--lps-bg);
}

body.dark-theme {
  --lps-text: #e6edf5;
  --lps-text-2: #b1becc;
  --lps-text-3: #8493a4;
  --lps-bg: #18222f;
  --lps-card: #253243;
  --lps-soft: #202d3d;
  --lps-border: #34465a;
  --lps-shadow: 0 3px 12px rgba(0, 0, 0, .18);
  --lps-shadow-hover: 0 6px 18px rgba(0, 0, 0, .24);
  --lps-blue: #4d8bff;
}

.lps-home {
  color: var(--lps-text);
  font-size: 15px;
  line-height: var(--lps-leading);
}

.lps-home *,
.lps-home *::before,
.lps-home *::after {
  box-sizing: border-box;
}

.lps-home a {
  color: inherit;
  text-decoration: none;
}

/* 统一键盘焦点环，保持品牌色一致且可访问 */
.lps-home a:focus-visible,
.lps-home .lps-action:focus-visible,
.lps-home .lps-social:focus-visible,
.lps-home .lps-slider-btn:focus-visible,
.lps-home .lps-slider-dot:focus-visible {
  outline: 2px solid var(--lps-brand);
  outline-offset: 2px;
  border-radius: 6px;
}

.lps-home img,
.lps-home video,
.lps-home svg {
  max-width: 100%;
}

.lps-shell {
  width: min(calc(100% - 32px), var(--lps-max));
  margin: 0 auto;
}

.lps-ticker {
  overflow: hidden;
  border-top: 1px solid var(--lps-border);
  border-bottom: 1px solid var(--lps-border);
  background: var(--lps-card);
}

.lps-ticker-inner {
  display: flex;
  align-items: center;
  min-height: 44px;
  gap: 14px;
}

.lps-ticker-label {
  flex: 0 0 auto;
  padding: 3px 11px;
  border-radius: 5px;
  background: var(--lps-brand);
  color: #fff;
  font-size: 13px;
  font-weight: 400;
}

.lps-ticker-window {
  min-width: 0;
  overflow: hidden;
}

.lps-ticker-track {
  display: flex;
  width: max-content;
  gap: 38px;
  white-space: nowrap;
  color: var(--lps-text-2);
  animation: lpsTicker 34s linear infinite;
}

.lps-ticker:hover .lps-ticker-track {
  animation-play-state: paused;
}

.lps-ticker-track a::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--lps-accent);
  vertical-align: 2px;
}

@keyframes lpsTicker {
  to { transform: translateX(-50%); }
}

.lps-main {
  padding: 30px 0 56px;
}

.lps-section {
  margin-top: 42px;
}

.lps-section:first-child {
  margin-top: 0;
}

.lps-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.lps-section-title {
  position: relative;
  margin: 0;
  padding-left: 14px;
  color: var(--lps-text);
  font-size: 19px;            /* 22→19：标题过大致侧栏"搜索文章"模块视觉偏大 */
  font-weight: 700;
  line-height: var(--lps-leading-tight);
}

.lps-section-title::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 4px;
  height: 20px;            /* 与 19px 标题匹配（原 23px） */
  border-radius: 4px;
  background: var(--lps-brand);
  content: "";
  transform: translateY(-50%);
}

.lps-more {
  flex: 0 0 auto;
  color: var(--lps-text-3) !important;
  font-size: 14px;
  transition: color .2s;
}

.lps-more:hover {
  color: var(--lps-brand) !important;
}

.lps-hero {
  position: relative;
  overflow: hidden;
  width: 100%;
  min-height: 0;
  aspect-ratio: 21 / 9;
  max-height: 520px;
  border-radius: 18px;
  background: #263b4d;
  box-shadow: var(--lps-shadow);
}

.lps-slide {
  position: absolute;
  inset: 0;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transform: translate3d(3.5%, 0, 0) scale(1.035);
  transition: opacity .62s var(--lps-ease-hover), transform .72s var(--lps-ease-hover), visibility 0s linear .72s;
}

.lps-slide.is-active {
  z-index: 2;
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transition-delay: 0s;
}

.lps-slide.is-leaving {
  z-index: 1;
  visibility: visible;
  pointer-events: none;
}

.lps-slide.is-leaving-next {
  transform: translate3d(-2.5%, 0, 0) scale(1.018);
}

.lps-slide.is-leaving-prev {
  transform: translate3d(2.5%, 0, 0) scale(1.018);
}

.lps-slide-media,
.lps-slide-media img,
.lps-slide-media .lps-media-fallback {
  width: 100%;
  height: 100%;
}

.lps-slide-media {
  position: absolute;
  inset: 0;
  display: block;
}

.lps-slide-media img {
  display: block;
  object-fit: cover;
  transform: scale(1.025);
}

.lps-slide.is-active .lps-slide-media img {
  animation: lps-slide-ken-burns var(--lps-slide-duration, 5000ms) var(--lps-ease-hover) both;
}

@keyframes lps-slide-ken-burns {
  from { transform: scale(1.025) translate3d(0, 0, 0); }
  to { transform: scale(1.07) translate3d(-.8%, -.45%, 0); }
}

.lps-slide-media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(7, 20, 31, .82) 0%, rgba(7, 20, 31, .42) 50%, transparent 100%);
  content: "";
}

.lps-slide-content {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 36px 40px;
  color: #fff;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity .46s var(--lps-ease-hover) .1s, transform .56s var(--lps-ease-hover) .1s;
}

.lps-slide.is-active .lps-slide-content {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.lps-slide-kicker {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 4px 12px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 20px;
  background: var(--lps-warm);
  font-size: 13px;
  font-weight: 700;
  backdrop-filter: blur(8px);
}

.lps-slide-title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 0 14px;
  color: #fff;
  max-width: 78%;
  font-size: 30px;
  font-weight: 700;
  line-height: var(--lps-leading-tight);
  text-shadow: 0 3px 20px rgba(0, 0, 0, .22);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-slide-desc {
  display: -webkit-box;
  overflow: hidden;
  max-width: 78%;
  margin: 0;
  color: rgba(255, 255, 255, .82);
  font-size: 16px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-slider-controls {
  position: absolute;
  z-index: 5;
  inset: 0;
  pointer-events: none;
}

.lps-slider-btn,
.lps-slider-dot {
  border: 0;
  color: #fff;
  cursor: pointer;
}

.lps-slider-btn {
  position: absolute;
  top: 50%;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 50%;
  background: rgba(255, 255, 255, .25);
  font-size: 21px;
  pointer-events: auto;
  transform: translateY(-50%);
  backdrop-filter: blur(7px);
}

.lps-slider-btn[data-lps-prev] {
  left: 20px;
}

.lps-slider-btn[data-lps-next] {
  right: 20px;
}

.lps-slider-dots {
  position: absolute;
  right: 32px;
  bottom: 24px;
  display: flex;
  gap: 8px;
  pointer-events: auto;
}

.lps-slider-dot {
  width: 28px;
  height: 4px;
  padding: 0;
  border-radius: 3px;
  background: rgba(255, 255, 255, .45);
  transition: width .2s, border-radius .2s, background .2s;
}

.lps-slider-dot.is-active {
  width: 36px;
  background: #fff;
}

.lps-feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.lps-feature-card,
.lps-grid-card,
.lps-gallery-card,
.lps-chapter-card,
.lps-article-card,
.lps-widget {
  border: 1px solid var(--lps-border);
  background: var(--lps-card);
  box-shadow: var(--lps-shadow);
}

.lps-feature-card,
.lps-grid-card,
.lps-gallery-card,
.lps-chapter-card,
.lps-article-card,
.lps-spotlight-card,
.lps-multi-card {
  border: 1px solid var(--lps-border);
  box-shadow: var(--lps-shadow);
  transition: transform .3s var(--lps-ease-hover), box-shadow .3s var(--lps-ease-hover), border-color .3s var(--lps-ease-hover);
}

.lps-feature-card {
  overflow: hidden;
  border-radius: var(--lps-radius);
}

.lps-feature-media {
  display: block;
  width: 100%;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  max-height: 240px;
  background: var(--lps-soft);
}

.lps-feature-media img,
.lps-card-media img,
.lps-grid-media img,
.lps-chapter-media img,
.lps-rank-thumb img,
.lps-gallery-card img,
.lps-spotlight-media img,
.lps-multi-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s var(--lps-ease-hover), opacity .32s var(--lps-ease-hover);
}

/* 仅在精确指针设备启用卡片动效：同一减速曲线和 0.3 秒节奏，按内容层级
 * 区分抬升幅度。动画只改 transform / opacity / box-shadow，不触发布局重排。 */
@media (hover: hover) and (pointer: fine) {
  body.home .lps-feature-card,
  body.home .lps-grid-card,
  body.home .lps-gallery-card,
  body.home .lps-chapter-card,
  body.home .lps-article-card,
  body.home .lps-spotlight-card,
  body.home .lps-multi-card {
    transform: translateZ(0);
  }

  body.home .lps-feature-card:hover {
    border-color: rgba(47, 109, 246, .38);
    box-shadow: 0 12px 28px rgba(59, 116, 158, .14);
    transform: translate3d(0, -4px, 0);
  }

  body.home .lps-feature-card:hover .lps-feature-media img {
    transform: scale(1.06);
  }

  body.home .lps-grid-card:hover,
  body.home .lps-article-card:hover {
    border-color: rgba(47, 109, 246, .32);
    box-shadow: var(--lps-shadow-hover);
    transform: translate3d(0, -2px, 0);
  }

  body.home .lps-grid-card:hover img,
  body.home .lps-article-card:hover .lps-card-media img {
    transform: scale(1.045);
  }

  body.home .lps-gallery-card:hover,
  body.home .lps-spotlight-card:hover {
    border-color: rgba(47, 109, 246, .34);
    box-shadow: 0 9px 22px rgba(59, 116, 158, .11);
    transform: translate3d(0, -3px, 0);
  }

  body.home .lps-gallery-card:hover img {
    transform: scale(1.05);
  }

  body.home .lps-spotlight-card:hover .lps-spotlight-media img {
    transform: scale(1.035);
  }

  body.home .lps-multi-card:hover {
    border-color: rgba(47, 109, 246, .3);
    box-shadow: var(--lps-shadow-hover);
    transform: translate3d(0, -2px, 0);
  }

  body.home .lps-multi-card:hover .lps-multi-image img {
    transform: scale(1.03);
  }

  body.home .lps-chapter-card:hover {
    border-color: rgba(47, 109, 246, .36);
    box-shadow: 0 5px 14px rgba(59, 116, 158, .08);
    transform: translate3d(0, -1px, 0);
  }
}

@media (hover: none), (pointer: coarse) {
  body.home .lps-feature-card:hover,
  body.home .lps-grid-card:hover,
  body.home .lps-gallery-card:hover,
  body.home .lps-chapter-card:hover,
  body.home .lps-article-card:hover,
  body.home .lps-spotlight-card:hover,
  body.home .lps-multi-card:hover,
  body.home .lps-feature-card:hover img,
  body.home .lps-grid-card:hover img,
  body.home .lps-chapter-card:hover img,
  body.home .lps-article-card:hover .lps-card-media img,
  body.home .lps-spotlight-card:hover .lps-spotlight-media img,
  body.home .lps-multi-card:hover .lps-multi-image img {
    transform: none;
  }
}

/* 懒加载图片只在脚本就绪后淡入；无脚本或减少动态效果时仍立即可见。 */
@media (prefers-reduced-motion: no-preference) {
  .lps-home.lps-image-fades-ready img[loading="lazy"],
  .lps-home.lps-image-fades-ready img.lps-lazy-image {
    opacity: 0;
  }

  .lps-home.lps-image-fades-ready img.is-image-loaded {
    opacity: 1;
  }

  .lps-home .lps-builder-module.lps-scroll-reveal {
    opacity: 0;
    transform: translate3d(0, 30px, 0);
    transition: opacity .5s var(--lps-ease-hover), transform .5s var(--lps-ease-hover);
  }

  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .lps-home .lps-builder-module.lps-scroll-reveal .lps-feature-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-grid-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-article-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-spotlight-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-multi-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-gallery-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-chapter-card,
  .lps-home .lps-builder-module.lps-scroll-reveal .lps-rank-item {
    opacity: 0;
    transform: translate3d(0, 14px, 0);
    transition: opacity .42s var(--lps-ease-hover) calc(var(--lps-stagger-index, 0) * .05s), transform .42s var(--lps-ease-hover) calc(var(--lps-stagger-index, 0) * .05s);
  }

  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-feature-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-grid-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-article-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-spotlight-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-multi-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-gallery-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-chapter-card,
  .lps-home .lps-builder-module.lps-scroll-reveal.is-lps-revealed .lps-rank-item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.lps-term {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  max-width: calc(100% - 20px);
  overflow: hidden;
  padding: 3px 10px;
  border-radius: 5px;
  background: rgba(74, 144, 194, .94);
  color: #fff !important;
  font-size: 12px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lps-feature-body {
  padding: 15px 16px 16px;
}

.lps-feature-excerpt {
  display: -webkit-box;
  overflow: hidden;
  min-height: 44px;
  margin: 8px 0 12px;
  color: var(--lps-text-2);
  font-size: 13px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-card-title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--lps-text);
  font-size: 17px;
  font-weight: 500;
  line-height: var(--lps-leading-tight);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-feature-meta,
.lps-grid-meta,
.lps-card-meta,
.lps-chapter-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  color: var(--lps-text-3);
  font-size: 12px;
}

.lps-feature-meta,
.lps-grid-meta {
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid var(--lps-border);
}

.lps-mini-author {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.lps-mini-author img {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
}

.lps-mini-author-name {
  overflow: hidden;
  max-width: 90px;
  color: var(--lps-text-2);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lps-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}

.lps-article-list {
  display: grid;
  gap: 16px;
}

.lps-article-card {
  display: grid;
  grid-template-columns: minmax(220px, 32%) minmax(0, 1fr);
  gap: 21px;
  padding: 20px;
  border-radius: var(--lps-radius);
}

.lps-card-media {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 10;
  align-self: start;
  border-radius: 10px;
  background: var(--lps-soft);
}

.lps-card-media > img,
.lps-feature-media > img,
.lps-grid-media > img,
.lps-chapter-media > img {
  position: absolute;
  inset: 0;
}

.lps-card-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.lps-article-card .lps-card-title {
  margin-top: 1px;
  font-size: 20px;
}

.lps-card-excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 9px 0 13px;
  color: var(--lps-text-2);
  font-size: 14px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-card-meta {
  margin-top: auto;
  white-space: nowrap;
}

.lps-author {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.lps-author img {
  width: 23px;
  height: 23px;
  border-radius: 50%;
}

.lps-author-name {
  overflow: hidden;
  max-width: 92px;
  text-overflow: ellipsis;
}

.lps-card-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.lps-action,
.lps-stat {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--lps-text-3) !important;
  transition: color .2s;
}

.lps-action svg,
.lps-stat svg {
  width: 15px;
  height: 15px;
}

.lps-action text {
  display: none;
}

.lps-action:hover,
.lps-action.actived {
  color: var(--lps-brand) !important;
}

.lps-sidebar {
  position: sticky;
  top: 90px;
  display: grid;
  gap: 18px;
}

.lps-widget {
  overflow: hidden;
  padding: 19px;
  border-radius: var(--lps-radius);
}

.lps-widget-title {
  margin: 0 0 15px;
  color: var(--lps-text);
  font-size: 17px;
  font-weight: 500;
}

.lps-rank-list {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lps-rank-item {
  display: grid;
  grid-template-columns: 28px 72px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.lps-rank-number {
  color: var(--lps-text-3);
  font-size: 17px;
  font-weight: 700;
  text-align: center;
}

.lps-rank-item:nth-child(-n+3) .lps-rank-number {
  color: var(--lps-gold);
}

.lps-rank-thumb {
  overflow: hidden;
  width: 72px;
  height: 50px;
  border-radius: 7px;
  background: var(--lps-soft);
}

.lps-rank-title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--lps-text);
  font-size: 13px;
  font-weight: 500;
  line-height: var(--lps-leading-tight);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-rank-views {
  color: var(--lps-text-3);
  font-size: 11px;
}

.lps-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.lps-tags a {
  padding: 4px 10px;
  border: 1px solid var(--lps-border);
  border-radius: 18px;
  background: var(--lps-soft);
  color: var(--lps-text-2);
  font-size: 12px;
  transition: color .2s, border-color .2s, background .2s;
}

.lps-tags a:hover {
  border-color: var(--lps-brand-light);
  background: rgba(74, 144, 194, .1);
  color: var(--lps-brand);
}

.lps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.lps-grid-card {
  overflow: hidden;
  border-radius: var(--lps-radius);
}

.lps-grid-media {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--lps-soft);
}

.lps-grid-body {
  padding: 16px;
}

.lps-grid-card .lps-card-title {
  font-size: 16px;
}

.lps-gallery {
  columns: 4;
  column-gap: 16px;
}

.lps-gallery-card {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  margin-bottom: 16px;
  border-radius: 12px;
  break-inside: avoid;
}

.lps-gallery-card img,
.lps-gallery-card .lps-media-fallback {
  position: static;
  display: block;
  width: 100%;
  height: auto !important;
  min-height: 0;
  max-height: none;
  object-fit: contain;
}

.lps-gallery-card .lps-media-fallback {
  min-height: 180px;
}

.lps-gallery-label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  width: 100%;
  padding: 26px 14px 12px;
  background: linear-gradient(to top, rgba(7, 20, 31, .82) 0%, rgba(7, 20, 31, .45) 55%, transparent 100%);
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  line-height: var(--lps-leading-tight);
  word-break: break-word;
  white-space: normal;
  text-shadow: 0 1px 6px rgba(0, 0, 0, .35);
  /* 默认隐藏，鼠标移上去（或键盘聚焦）才显示 */
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--lps-hover-dur) var(--lps-ease-hover), transform var(--lps-hover-dur) var(--lps-ease-hover);
  pointer-events: none;
}

.lps-gallery-card:hover .lps-gallery-label,
.lps-gallery-card:focus-within .lps-gallery-label {
  opacity: 1;
  transform: translateY(0);
  background: linear-gradient(to top, rgba(7, 20, 31, .9) 0%, rgba(7, 20, 31, .55) 55%, transparent 100%);
}

.lps-gallery-card img {
  transition: transform var(--lps-hover-dur) var(--lps-ease-hover);
}

.lps-gallery-card:hover img {
  transform: scale(1.04);
}

@media (hover: hover) and (pointer: fine) {
  body.home .lps-gallery-card:hover img {
    transform: scale(1.05);
  }
}

.lps-gallery-tag {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  max-width: calc(100% - 20px);
  overflow: hidden;
  padding: 3px 10px;
  border-radius: 4px;
  background: rgba(74, 144, 194, .94);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lps-chapter-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.lps-chapter-card {
  display: grid;
  grid-template-columns: clamp(104px, 28%, 138px) minmax(0, 1fr);
  gap: clamp(12px, 2vw, 16px);
  min-width: 0;
  min-height: 0;
  padding: 14px;
  border-radius: var(--lps-radius);
  align-items: start;
}

.lps-chapter-media {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: var(--lps-chapter-ratio, 4 / 3);
  align-self: start;
  border-radius: 9px;
  background: var(--lps-soft);
}

.lps-chapter-body {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
}

.lps-chapter-card .lps-card-title {
  min-width: 0;
  font-size: 16px;
  line-height: 1.45;
}

.lps-chapter-excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 7px 0 0;
  color: var(--lps-text-2);
  font-size: 13px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-chapter-meta {
  margin-top: auto;
}

.lps-chapter-card .lps-module-foot {
  min-width: 0;
  margin-top: auto;
  padding-top: 9px;
  gap: 7px;
}

.lps-chapter-card .lps-module-foot-left,
.lps-chapter-card .lps-module-foot-stats {
  gap: 6px 9px;
}

.lps-chapter-card .lps-module-foot-stats {
  margin-left: auto;
  white-space: nowrap;
}

/* 四栏章节在桌面端空间较窄：保持左图右文，同时缩小封面和信息密度。 */
.lps-chapter-list.lps-cols-4 .lps-chapter-card {
  grid-template-columns: clamp(82px, 34%, 104px) minmax(0, 1fr);
  gap: 10px;
  padding: 11px;
}

.lps-chapter-list.lps-cols-4 .lps-chapter-card .lps-card-title {
  font-size: 14px;
}

.lps-chapter-list.lps-cols-4 .lps-chapter-excerpt {
  font-size: 12px;
  -webkit-line-clamp: 2;
}

.lps-chapter-list.lps-cols-4 .lps-chapter-card .lps-module-foot {
  font-size: 10px;
}

.lps-chapter-list.lps-cols-4 .lps-chapter-card .lps-mini-author-name {
  display: none;
}

.lps-pagination {
  margin-top: 25px;
  text-align: center;
}

.lps-pagination .page-numbers {
  display: inline-grid;
  min-width: 38px;
  height: 38px;
  margin: 0 3px;
  padding: 0 10px;
  place-items: center;
  border: 1px solid var(--lps-border);
  border-radius: 8px;
  background: var(--lps-card);
  color: var(--lps-text-2);
}

.lps-pagination .current,
.lps-pagination a:hover {
  border-color: var(--lps-brand);
  background: var(--lps-brand);
  color: #fff;
}

.lps-media-fallback {
  display: grid;
  min-height: 100%;
  place-items: center;
  background: linear-gradient(135deg, #ddecf7, #94c3e2);
  color: rgba(38, 91, 128, .62);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 2px;
}

body.dark-theme .lps-media-fallback {
  background: linear-gradient(135deg, #30465c, #416b88);
  color: rgba(255, 255, 255, .55);
}

.lps-empty {
  padding: 45px 20px;
  border: 1px dashed var(--lps-border);
  border-radius: var(--lps-radius);
  background: var(--lps-card);
  color: var(--lps-text-3);
  text-align: center;
}

/* 已移除不再渲染的 Zibll 父主题头部覆盖；统一页头仅使用 .lps-* 命名空间。 */
/* 面包屑（参考 PandaPRO 简洁风格：13px、灰色、分隔符柔和） */
.breadcrumbs,
.crumbs,
.crumb {
  padding: 14px 0;
  font-size: 13px;
  color: var(--lps-text-3);
}
.breadcrumbs a, .crumbs a, .crumb a { color: var(--lps-text-2); }
.breadcrumbs a:hover, .crumbs a:hover, .crumb a:hover { color: var(--lps-blue); }
.breadcrumbs > a:not(:last-child)::after,
.breadcrumbs > span:not(:last-child)::after,
.crumbs > a:not(:last-child)::after,
.crumbs > span:not(:last-child)::after {
  margin: 0 8px;
  opacity: .55;
  color: var(--lps-text-3);
  content: "›";
}

/* 已移除旧移动菜单及未被模板引用的 QQ 群静态页样式。 */
/* 以下分散的响应式规则已合并整理至文件末尾的「响应式总览」区块 */

/* 1.2.0：首页模块与小工具 */
.lps-builder-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-flow: row;
  gap: 22px 20px;
  align-items: start;
}

.lps-builder-module {
  min-width: 0;
  grid-column: span 12;
  align-self: start;
  isolation: isolate;
}

.lps-span-full { grid-column: span 12; }
.lps-span-wide { grid-column: span 8; }
.lps-span-half { grid-column: span 6; }
.lps-span-side { grid-column: span 4; }

.lps-auto-sidebar-stack {
  display: grid;
  align-content: start;
  gap: 18px;
}

/* 父主题／WordPress 原生小工具：只隔离外层尺寸，不覆盖组件内部视觉。 */
.lps-native-widget,
.lps-native-widget-inner {
  width: 100%;
  min-width: 0;
}

.lps-native-widget-inner {
  margin: 0;
}

.lps-native-widget-inner > :first-child { margin-top: 0; }
.lps-native-widget-inner > :last-child { margin-bottom: 0; }
.lps-native-widget img,
.lps-native-widget-inner img { max-width: 100%; height: auto; }

/* ===== 两栏布局：wide 模块 + 侧边栏（Flexbox 独立高度，互不影响） =====
   结构：.lps-builder-grid > .lps-two-col-wrap (span 12) > (.lps-main-col + aside)
   左栏 .lps-main-col：所有 wide(2/3) 模块纵向紧凑堆叠，gap 14px。
   右栏 .lps-auto-sidebar-stack：侧边栏纵向堆叠，随页面正常下滑（不吸顶）。
   关键：外层 grid-column:1/-1 跨满父级 12 列；
        内层 display:flex + align-items:flex-start → 左右高度完全独立。 */
.lps-two-col-wrap {
  grid-column: 1 / -1;           /* ★ 跨满父级 12 列 Grid（v16 遗漏此行导致挤成一列） */
  display: flex;
  gap: 20px;
  align-items: flex-start;       /* ★ 左右不等高，各自独立，不互相拉伸 */
}
.lps-main-col {
  flex: 1;                       /* 左栏占剩余宽度（约 2/3） */
  display: grid;
  gap: 14px;                     /* wide 模块之间紧凑间距 */
  min-width: 0;                  /* 防止 flex 子项溢出 */
}
.lps-two-col-wrap > .lps-auto-sidebar-stack {
  width: 300px;                  /* 右栏固定宽度（约 1/3） */
  flex-shrink: 0;                /* 不被压缩 */
  position: static;              /* ★ 随页面正常下滑，不吸顶（用户要求） */
}

/* 右栏首个白色模块与左栏首张文章卡片对齐；只有左栏显示标题时才启用。 */
.lps-two-col-wrap > .lps-auto-sidebar-stack.lps-sidebar-align-content {
  padding-top: 45px;
}

/* 模块级内容流与分页：所有选择器均限制在 lps 命名空间，避免覆盖父主题分页。 */
.lps-single-stream {
  display: grid;
  gap: 18px;
}

.lps-content-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 18px;
  min-height: 38px;
}

.lps-page-link,
.lps-load-next {
  display: inline-flex;
  min-width: 36px;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid var(--lps-border);
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  background: var(--lps-card);
  color: var(--lps-text-2);
  font-size: 13px;
  line-height: 1.2;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease, background .18s ease, transform .18s ease;
}

.lps-page-link:hover,
.lps-page-link:focus-visible,
.lps-load-next:hover,
.lps-load-next:focus-visible,
.lps-page-link.is-current {
  border-color: var(--lps-brand);
  background: var(--lps-soft);
  color: var(--lps-brand-dark);
}

.lps-page-link.is-current {
  font-weight: 500;
}

.lps-load-next {
  min-width: 132px;
}

.lps-load-next[data-mode="infinite"] {
  border-style: dashed;
  color: var(--lps-text-3);
}

.lps-content-pager.is-loading .lps-load-next,
.lps-content-pager.is-loading .lps-page-link {
  pointer-events: none;
  opacity: .58;
}

.lps-content-pager.is-error::after {
  content: "加载失败，请重试";
  color: #b54848;
  font-size: 12px;
}

.lps-page-ellipsis {
  padding: 0 2px;
  color: var(--lps-text-3);
}

[data-lps-module-items] > .lps-item-entering {
  opacity: 0;
  transform: translateY(8px);
}

[data-lps-module-items] > [data-lps-post-id] {
  transition: opacity .2s ease, transform .2s ease;
}

@media (prefers-reduced-motion: reduce) {
  [data-lps-module-items] > .lps-item-entering {
    opacity: 1;
    transform: none;
  }
}

.lps-ranking-search {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;                        /* 去掉 margin-bottom:16px，容器 .lps-widget 已有 padding:19px 对称 */
  padding: 8px 5px 8px 12px;        /* 上下 4→8：与 32px 控件协调 */
  border: 1px solid var(--lps-border);
  border-radius: 10px;
  background: var(--lps-bg);
}

.lps-ranking-search input {
  min-width: 0;
  flex: 1;
  height: 32px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--lps-text);
  font-size: 13px;
}

.lps-ranking-search button {
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  place-items: center;
  background: var(--lps-blue);
  color: #fff;
  cursor: pointer;
  font-size: 20px;
  line-height: var(--lps-icon);
}

.lps-builder-module > .lps-section-head {
  margin: 0 0 18px;
}

.lps-builder-module .lps-section-title {
  margin: 0;
}

.lps-feature-grid.lps-cols-1,
.lps-grid.lps-cols-1,
.lps-article-list.lps-cols-1,
.lps-chapter-list.lps-cols-1 { grid-template-columns: 1fr; }

.lps-feature-grid.lps-cols-2,
.lps-grid.lps-cols-2,
.lps-article-list.lps-cols-2,
.lps-chapter-list.lps-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.lps-feature-grid.lps-cols-3,
.lps-grid.lps-cols-3,
.lps-article-list.lps-cols-3,
.lps-chapter-list.lps-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lps-feature-grid.lps-cols-4,
.lps-grid.lps-cols-4,
.lps-article-list.lps-cols-4,
.lps-chapter-list.lps-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.lps-gallery.lps-gallery-cols-1 { columns: 1; }
.lps-gallery.lps-gallery-cols-2 { columns: 2; }
.lps-gallery.lps-gallery-cols-3 { columns: 3; }
.lps-gallery.lps-gallery-cols-4 { columns: 4; }

.lps-slider-progress {
  position: absolute;
  z-index: 6;
  right: 0;
  bottom: 0;
  left: 0;
  height: 4px;
  overflow: hidden;
  background: rgba(255, 255, 255, .28);
  pointer-events: none;
}

.lps-slider-progress::after {
  position: absolute;
  inset: 0;
  background: var(--lps-warm);
  content: "";
  transform: scaleX(var(--lps-progress, 0));
  transform-origin: left center;
  will-change: transform;
}

.lps-module-foot {
  display: flex;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--lps-border);
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--lps-text-3);
  font-size: 12px;
}

.lps-module-foot .lps-mini-author {
  min-width: 0;
}

.lps-module-foot-left,
.lps-module-foot-stats {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.lps-module-foot-stats {
  justify-content: flex-end;
}

.lps-slide-content .lps-module-foot {
  max-width: 78%;
  border-top-color: rgba(255, 255, 255, .2);
  color: rgba(255, 255, 255, .76);
}

.lps-slide-content .lps-mini-author-name {
  color: rgba(255, 255, 255, .85);
}

.lps-horizontal-shell {
  position: relative;
}

.lps-horizontal-shell .lps-feature-grid {
  display: grid;
  overflow-x: auto;
  padding: 2px 1px 12px;
  grid-auto-flow: column;
  grid-template-columns: none !important;
  gap: 18px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(74, 144, 194, .28) transparent;
}

.lps-horizontal-shell .lps-feature-grid.lps-cols-1 { grid-auto-columns: 100%; }
.lps-horizontal-shell .lps-feature-grid.lps-cols-2 { grid-auto-columns: calc((100% - 18px) / 2); }
.lps-horizontal-shell .lps-feature-grid.lps-cols-3 { grid-auto-columns: calc((100% - 36px) / 3); }
.lps-horizontal-shell .lps-feature-grid.lps-cols-4 { grid-auto-columns: calc((100% - 54px) / 4); }

.lps-horizontal-shell .lps-feature-card {
  scroll-snap-align: start;
}

.lps-horizontal-btn {
  position: absolute;
  z-index: 8;
  top: 42%;
  display: grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(74, 144, 194, .2);
  border-radius: 50%;
  background: rgba(255, 255, 255, .94);
  color: var(--lps-brand);
  cursor: pointer;
  font-size: 22px;
  line-height: var(--lps-icon);
  box-shadow: var(--lps-shadow);
  transform: translateY(-50%);
}

.lps-horizontal-btn.is-prev { left: -17px; }
.lps-horizontal-btn.is-next { right: -17px; }

.lps-spotlight-card,
.lps-multi-card {
  overflow: hidden;
  border: 1px solid var(--lps-border);
  border-radius: 18px;
  background: var(--lps-card);
  box-shadow: var(--lps-shadow);
}

.lps-spotlight-media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 21 / 9;
  max-height: var(--lps-cover-height, 500px);
  background: var(--lps-soft);
}

.lps-spotlight-image,
.lps-multi-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--lps-hover-dur) var(--lps-ease-hover);
}

.lps-spotlight-card:hover .lps-spotlight-image,
.lps-multi-card:hover .lps-multi-image img {
  transform: scale(1.025);
}

@media (hover: hover) and (pointer: fine) {
  body.home .lps-spotlight-card:hover .lps-spotlight-image {
    transform: scale(1.035);
  }

  body.home .lps-multi-card:hover .lps-multi-image img {
    transform: scale(1.03);
  }
}

.lps-play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 74px;
  height: 74px;
  place-items: center;
  border: 2px solid rgba(255, 255, 255, .58);
  border-radius: 50%;
  background: rgba(22, 31, 42, .52);
  color: #fff;
  font-size: 29px;
  line-height: var(--lps-icon);
  transform: translate(-50%, -50%);
  backdrop-filter: blur(8px);
}

.lps-spotlight-body,
.lps-multi-body {
  padding: 18px 22px;
}

.lps-spotlight-body h3,
.lps-multi-body h3 {
  margin: 0 0 8px;
  color: var(--lps-text);
  font-size: clamp(20px, 1.7vw, 25px);
  line-height: var(--lps-leading-tight);
}

.lps-spotlight-body p,
.lps-multi-body p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: var(--lps-text-2);
  font-size: 14px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lps-multi-images {
  display: grid;
  padding: 16px 16px 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.lps-multi-images.lps-multi-count-1 { grid-template-columns: 1fr; }
.lps-multi-images.lps-multi-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.lps-multi-image {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  background: var(--lps-soft);
}

.lps-article-list[class*="lps-cols-"] {
  display: grid;
  gap: 16px;
}

.lps-article-list:not(.lps-cols-1) .lps-article-card {
  display: block;
  padding: 0;
  overflow: hidden;
}

.lps-article-list:not(.lps-cols-1) .lps-card-media {
  aspect-ratio: 16 / 9;
  min-height: 0;
}

.lps-article-list:not(.lps-cols-1) .lps-card-body {
  padding: 17px;
}

.lps-ranking-widget .lps-rank-list {
  gap: 0;
}

.lps-ranking-widget .lps-rank-item {
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 13px;
  padding: 14px 0;
  border-bottom: 1px solid var(--lps-border);
}

.lps-ranking-widget .lps-rank-item:first-child { padding-top: 0; }
.lps-ranking-widget .lps-rank-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.lps-ranking-widget .lps-rank-thumb {
  position: relative;
  width: 88px;
  height: 60px;
  border-radius: 9px;
}

.lps-ranking-widget .lps-rank-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lps-rank-badge {
  position: absolute;
  top: 5px;
  left: 5px;
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 7px;
  background: rgba(33, 49, 65, .78);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22);
}

.lps-rank-item:nth-child(1) .lps-rank-badge { background: var(--lps-gold); }
.lps-rank-item:nth-child(2) .lps-rank-badge { background: var(--lps-silver); }
.lps-rank-item:nth-child(3) .lps-rank-badge { background: var(--lps-bronze); }

.lps-ranking-widget .lps-rank-title {
  font-size: 14px;
  line-height: var(--lps-leading-tight);
}

.lps-ranking-widget .lps-rank-views {
  display: block;
  margin-top: 5px;
  font-size: 12px;
}

.lps-module-tags .lps-widget,
.lps-module-follow .lps-widget,
.lps-module-ranking .lps-widget {
  border-radius: 18px;
}

.lps-module-ranking,
.lps-module-tags,
.lps-module-follow {
  grid-column: span 4;
}

.lps-module-ranking .lps-section-title,
.lps-module-tags .lps-section-title,
.lps-module-follow .lps-section-title {
  font-size: 20px;
}

.lps-module-tags .lps-tags {
  gap: 10px;
  max-height: none;
  overflow: visible;
}

.lps-module-tags .lps-tags a {
  max-width: 100%;
  overflow: hidden;
  padding: 8px 14px;
  border: 0;
  background: var(--lps-soft);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lps-follow {
  display: grid;
  grid-template-columns: repeat(4, minmax(56px, 1fr));
  gap: 8px;
  width: 100%;
  min-width: 0;
  align-items: stretch;
  justify-content: stretch;
}

.lps-social {
  position: relative;
  display: flex;
  width: 100%;
  height: auto;
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 6px 3px;
  border: 1px solid var(--lps-border);
  border-radius: 9px;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  background: var(--lps-soft);
  color: var(--lps-text-2) !important;
  cursor: pointer;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: border-color var(--lps-hover-dur) var(--lps-ease-hover), background var(--lps-hover-dur) var(--lps-ease-hover), color var(--lps-hover-dur) var(--lps-ease-hover), transform var(--lps-hover-dur) var(--lps-ease-hover), box-shadow var(--lps-hover-dur) var(--lps-ease-hover);
}

.lps-social-icon {
  display: block;
  width: min(36px, 62%);
  height: auto;
  aspect-ratio: 1 / 1;
  flex: 0 0 auto;
  overflow: hidden;
}

.lps-social-sprite {
  display: block;
  width: 100%;
  height: 100%;
  background-image: url("assets/images/social-icons-v1510.png");
  background-repeat: no-repeat;
  background-size: 200% 200%;
}

.lps-social-sprite-weibo { background-position: 0 0; }
.lps-social-sprite-qq { background-position: 100% 0; }
.lps-social-sprite-wechat { background-position: 0 100%; }
.lps-social-sprite-douyin { background-position: 100% 100%; }

.lps-social:hover,
.lps-social:focus-visible,
.lps-social:focus-within {
  z-index: 30;
  border-color: rgba(74, 144, 194, .55);
  background: var(--lps-card);
  color: var(--lps-brand-dark) !important;
  outline: 0;
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(37, 72, 99, .13);
}

.lps-module-follow,
.lps-module-follow .lps-widget {
  overflow: visible;
}

.lps-social-qr {
  position: absolute;
  z-index: 40;
  bottom: calc(100% + 12px);
  left: 50%;
  width: 158px;
  padding: 8px 8px 7px;
  border: 1px solid var(--lps-border);
  border-radius: 10px;
  background: #fff;
  color: var(--lps-text-2);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  box-shadow: 0 12px 32px rgba(28, 49, 67, .22);
  transform: translate(-50%, 6px);
  transition: opacity var(--lps-hover-dur) var(--lps-ease-hover), transform var(--lps-hover-dur) var(--lps-ease-hover), visibility var(--lps-hover-dur) var(--lps-ease-hover);
}

.lps-social-qr::after {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-right: 1px solid var(--lps-border);
  border-bottom: 1px solid var(--lps-border);
  background: #fff;
  content: '';
  transform: translate(-50%, -5px) rotate(45deg);
}

.lps-social-qr img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1;
  border-radius: 6px;
  object-fit: cover;
}

.lps-social-qr small {
  display: block;
  margin-top: 5px;
  color: #718292;
  font-size: 11px;
  line-height: 1.3;
}

.lps-social:hover .lps-social-qr,
.lps-social:focus .lps-social-qr,
.lps-social:focus-within .lps-social-qr {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* Zibll 一言：自动双语与自定义“正文左、出处右”共用一套稳定排版。 */
.lps-native-widget_ui_yiyan .yiyan,
.lps-yiyan-custom {
  color: var(--lps-text);
  text-align: justify;
}

.lps-yiyan-library {
  cursor: pointer;
  transition: border-color var(--lps-hover-dur) var(--lps-ease-hover), box-shadow var(--lps-hover-dur) var(--lps-ease-hover), transform var(--lps-hover-dur) var(--lps-ease-hover);
}

.lps-yiyan-library:hover,
.lps-yiyan-library:focus-visible {
  border-color: rgba(74, 144, 194, .42);
  outline: 0;
  box-shadow: var(--lps-shadow-hover);
  transform: translateY(-1px);
}

.lps-native-widget_ui_yiyan .yiyan {
  display: grid;
  gap: 7px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  line-height: 1.75;
}

.lps-native-widget_ui_yiyan .yiyan .cn,
.lps-native-widget_ui_yiyan .yiyan .en {
  margin: 0;
  letter-spacing: .6px;
  text-align: justify;
  text-align-last: left;
  text-align-last: start;
  text-justify: inter-ideograph;
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
  hanging-punctuation: none;
}

.lps-native-widget_ui_yiyan .yiyan .en {
  color: var(--lps-text-2);
  font-size: .88em;
  opacity: 1;
}

.lps-yiyan-custom {
  margin: 0;
  padding: 20px 18px 18px;
  border: 1px solid var(--lps-border);
  border-radius: var(--lps-radius);
  background: var(--lps-card);
  box-shadow: var(--lps-shadow);
}

.lps-yiyan-quote {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--lps-text);
  font-size: 15px;
  font-style: normal;
  letter-spacing: var(--lps-yiyan-letter-spacing, .6px);
  line-height: 1.9;
  text-align: justify;
  text-justify: inter-ideograph;
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
  hanging-punctuation: none;
  /* 父主题为 blockquote 添加浅灰底；只清除此文字底色，不影响一言卡片外框。 */
  background: transparent !important;
  background-image: none !important;
}

.lps-yiyan-quote p {
  margin: 0 var(--lps-yiyan-paragraph-indent, 0);
  text-indent: var(--lps-yiyan-first-indent, 0);
  text-align: justify;
  text-align-last: left;
  text-align-last: start;
  text-justify: inter-ideograph;
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
  hanging-punctuation: none;
  white-space: pre-line;
}

.lps-yiyan-quote p + p { margin-top: .78em; }

.lps-yiyan-source {
  display: block;
  width: 100%;
  margin-top: 13px;
  color: var(--lps-text-2);
  font-size: 13px;
  line-height: 1.6;
  text-align: right;
}

/* =========================================================
   响应式总览（合并整理）
   原分散在两处的媒体查询已合并至此，按断点从大到小统一排序。
   断点顺序：1080 / 860 / 680 / 560 / 420，最后为减弱动效。
   每段内先用「通用版式」规则，再用「模块搭建器」规则，便于对照维护。
   ========================================================= */

@media (max-width: 960px) {
  /* —— 通用版式 —— */
  .lps-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lps-layout { grid-template-columns: minmax(0, 1fr) 290px; }
  .lps-gallery { columns: 3; }
  /* —— 模块搭建器 —— */
  .lps-feature-grid.lps-cols-4,
  .lps-grid.lps-cols-4,
  .lps-article-list.lps-cols-4,
  .lps-chapter-list.lps-cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lps-gallery.lps-gallery-cols-4 { columns: 3; }
}

@media (max-width: 960px) {
  /* —— 通用版式 —— */
  .lps-hero { min-height: 0; aspect-ratio: 16 / 9; }
  .lps-layout { grid-template-columns: 1fr; }
  .lps-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lps-chapter-list { grid-template-columns: 1fr; }
  /* —— 模块搭建器 —— */
  .lps-span-wide,
  .lps-span-half,
  .lps-span-side {
    grid-column: span 12;
  }

  .lps-auto-sidebar-stack {
    grid-column: span 12;
  }
  .lps-two-col-wrap {
    flex-direction: column;
  }
  .lps-two-col-wrap > .lps-main-col,
  .lps-two-col-wrap > .lps-auto-sidebar-stack {
    width: 100%;
    align-self: stretch;
    padding-top: 0;
    position: static;
  }
  .lps-module-ranking,
  .lps-module-tags,
  .lps-module-follow {
    grid-column: span 12;
  }
  .lps-feature-grid.lps-cols-3,
  .lps-grid.lps-cols-3,
  .lps-article-list.lps-cols-3,
  .lps-chapter-list.lps-cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lps-gallery.lps-gallery-cols-3,
  .lps-gallery.lps-gallery-cols-4 { columns: 3; }
  .lps-horizontal-btn.is-prev { left: 6px; }
  .lps-horizontal-btn.is-next { right: 6px; }
  /* 侧栏转为整行后，四个平台均分可用宽度，避免固定 72px 挤在左侧。 */
  .lps-module-follow .lps-widget { padding-inline: clamp(16px, 3vw, 24px); }
  .lps-module-follow .lps-follow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(8px, 1.6vw, 14px);
  }
  .lps-module-follow .lps-social {
    width: 100%;
    max-width: clamp(64px, 20vw, 104px);
    justify-self: center;
  }
}

@media (max-width: 680px) {
  /* 侧栏模块可在后台逐项关闭手机端展示；全部关闭时同步移除空侧栏。 */
  .lps-builder-module.lps-hide-on-mobile,
  .lps-auto-sidebar-stack.lps-sidebar-all-mobile-hidden {
    display: none !important;
  }

  /* —— 通用版式 —— */
  .lps-shell { width: min(calc(100% - 22px), var(--lps-max)); }
  .lps-main { padding-top: 18px; }
  .lps-section { margin-top: 32px; }
  .lps-section-title { font-size: 19px; }
  .lps-hero { min-height: 0; aspect-ratio: 16 / 9; border-radius: 13px; }
  .lps-slide-content { padding: 24px 22px; }
  .lps-slide-title { max-width: 88%; font-size: 20px; }
  .lps-slide-desc { max-width: 90%; font-size: 13px; }
  .lps-slider-btn { width: 38px; height: 38px; font-size: 18px; }
  .lps-slider-btn[data-lps-prev] { left: 8px; }
  .lps-slider-btn[data-lps-next] { right: 8px; }
  .lps-slider-dots { right: 18px; bottom: 16px; }
  .lps-feature-grid { gap: 11px; }
  .lps-feature-body { padding: 12px; }
  .lps-feature-card .lps-card-title { font-size: 14px; }
  .lps-article-card { grid-template-columns: clamp(118px, 31%, 180px) minmax(0, 1fr); gap: 13px; padding: 13px; overflow: hidden; border-radius: var(--lps-radius); }
  .lps-article-card > .lps-card-media { border-radius: 9px; aspect-ratio: 4 / 3; }
  .lps-article-card > .lps-card-body { padding: 0; }
  .lps-article-card .lps-card-title { margin-top: 0; }
  .lps-card-media { min-height: 0; }
  .lps-article-card .lps-card-title { font-size: 16px; -webkit-line-clamp: 2; }
  .lps-card-excerpt { display: none; }
  .lps-card-meta { gap: 8px; font-size: 11px; }
  .lps-card-actions .lps-action { display: none; }
  .lps-sidebar { grid-template-columns: 1fr; }
  .lps-grid { gap: 11px; }
  .lps-grid-body { padding: 12px; }
  .lps-grid-card .lps-card-title { font-size: 14px; }
  .lps-gallery,
  .lps-gallery.lps-gallery-cols-3,
  .lps-gallery.lps-gallery-cols-4 { columns: 2; column-gap: 11px; }
  .lps-gallery-card { margin-bottom: 11px; }
  .lps-chapter-card { grid-template-columns: clamp(100px, 30%, 128px) minmax(0, 1fr); min-height: 0; gap: 12px; padding: 12px; overflow: hidden; border-radius: var(--lps-radius); }
  .lps-chapter-card > .lps-chapter-media { border-radius: 8px; aspect-ratio: var(--lps-chapter-ratio, 4 / 3); }
  .lps-chapter-card > .lps-chapter-body { padding: 0; }
  .lps-chapter-card .lps-card-title { font-size: 15px; -webkit-line-clamp: 2; }
  .lps-chapter-excerpt { margin-top: 5px; -webkit-line-clamp: 2; }
  .lps-chapter-card .lps-module-foot { font-size: 11px; }
  .lps-horizontal-shell .lps-feature-grid {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    overflow-x: visible;
    padding-bottom: 0;
    scroll-snap-type: none;
  }
  .lps-horizontal-shell .lps-horizontal-btn { display: none; }
  /* —— 模块搭建器 —— */
  .lps-builder-grid { gap: 18px 12px; }
  .lps-feature-grid:not(.lps-cols-1)[class*="lps-cols-"],
  .lps-grid:not(.lps-cols-1)[class*="lps-cols-"],
  .lps-article-list:not(.lps-cols-1)[class*="lps-cols-"],
  .lps-chapter-list:not(.lps-cols-1)[class*="lps-cols-"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lps-spotlight-media { aspect-ratio: 16 / 9; }
  .lps-spotlight-body,
  .lps-multi-body { padding: 18px; }
  .lps-spotlight-body h3,
  .lps-multi-body h3 { font-size: 19px; }
  .lps-play { width: 58px; height: 58px; font-size: 23px; }
  .lps-multi-images { padding: 12px 12px 0; gap: 7px; }
  .lps-horizontal-shell .lps-feature-grid[class*="lps-cols-"] { grid-auto-columns: 72%; }
  .lps-horizontal-btn { width: 32px; height: 32px; }
  .lps-horizontal-btn.is-prev { left: -8px; }
  .lps-horizontal-btn.is-next { right: -8px; }
}

@media (max-width: 560px) {
  .lps-shell { width: min(calc(100% - 18px), var(--lps-max)); }
  .lps-main { padding: 16px 0 40px; }
  .lps-section { margin-top: 28px; }
  .lps-section-title { font-size: 18px; padding-left: 12px; }
  .lps-section-title::before { width: 3px; height: 19px; }
  .lps-feature-grid { gap: 10px; }
  .lps-grid { gap: 10px; }
  .lps-gallery { column-gap: 10px; }
  .lps-gallery-card { margin-bottom: 10px; }
  .lps-chapter-list[class*="lps-cols-"] { grid-template-columns: 1fr; }
  .lps-builder-grid { gap: 16px 10px; }
  .lps-sidebar { gap: 14px; }
  .lps-widget { padding: 16px; }
  .lps-module-follow .lps-follow { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .lps-social-icon { width: min(36px, 62%); height: auto; }
  .lps-social:first-child .lps-social-qr { left: 0; transform: translate(0, 6px); }
  .lps-social:first-child .lps-social-qr::after { left: 24%; }
  .lps-social:first-child:hover .lps-social-qr,
  .lps-social:first-child:focus .lps-social-qr,
  .lps-social:first-child:focus-within .lps-social-qr { transform: translate(0, 0); }
  .lps-social:last-child .lps-social-qr { right: 0; left: auto; transform: translate(0, 6px); }
  .lps-social:last-child .lps-social-qr::after { right: 19%; left: auto; }
  .lps-social:last-child:hover .lps-social-qr,
  .lps-social:last-child:focus .lps-social-qr,
  .lps-social:last-child:focus-within .lps-social-qr { transform: translate(0, 0); }
  .lps-yiyan-custom { padding: 18px 17px 16px; }
  .lps-yiyan-quote { font-size: 14px; line-height: 1.85; }
  .lps-yiyan-source { margin-top: 10px; font-size: 12px; }
  .lps-article-card .lps-card-title { font-size: 16px; }
  .lps-chapter-card .lps-card-title { font-size: 15px; }
}

@media (max-width: 480px) {
  /* —— 通用版式 —— */
  .lps-ticker-label { display: none; }
  .lps-feature-grid { grid-template-columns: 1fr; }
  .lps-feature-card { display: grid; grid-template-columns: 116px minmax(0, 1fr); }
  .lps-feature-media { aspect-ratio: 4 / 3; min-height: 100%; }
  .lps-feature-meta { display: none; }
  .lps-grid { grid-template-columns: 1fr; }
  .lps-hero { aspect-ratio: 4 / 3; }
  .lps-slide-content { padding: 18px; }
  .lps-slide-title { max-width: 100%; font-size: 17px; }
  .lps-slide-desc,
  .lps-slider-btn { display: none; }
  .lps-module-follow .lps-follow { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
  .lps-module-follow .lps-social-icon { width: min(32px, 60%); }
  /* —— 模块搭建器 —— */
  .lps-feature-grid[class*="lps-cols-"],
  .lps-grid[class*="lps-cols-"],
  .lps-article-list[class*="lps-cols-"],
  .lps-chapter-list[class*="lps-cols-"] {
    grid-template-columns: 1fr;
  }
  .lps-gallery[class*="lps-gallery-cols-"] { columns: 2; }
  .lps-multi-images { grid-template-columns: 1fr 1fr; }
  .lps-multi-image:nth-child(3) { display: none; }
  .lps-horizontal-shell .lps-feature-grid[class*="lps-cols-"] { grid-auto-columns: 86%; }
  .lps-horizontal-shell .lps-feature-grid { grid-template-columns: 1fr !important; }
  .lps-chapter-card { grid-template-columns: clamp(92px, 30%, 108px) minmax(0, 1fr); gap: 10px; padding: 10px; }
  .lps-chapter-card .lps-card-title { font-size: 14px; }
  .lps-chapter-excerpt { font-size: 12px; line-height: 1.55; -webkit-line-clamp: 2; }
  .lps-chapter-card .lps-module-foot { margin-top: 7px; padding-top: 7px; font-size: 10px; }
  .lps-chapter-card .lps-mini-author-name { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lps-ticker-track { animation: none; }
  .lps-slide,
  .lps-feature-card,
  .lps-grid-card,
  .lps-gallery-card,
  .lps-chapter-card,
  .lps-article-card,
  .lps-spotlight-card,
  .lps-multi-card,
  .lps-slide-content { transition: none; }
  .lps-slide .lps-slide-media img { animation: none; transform: scale(1); }
  .lps-gallery-label { transition: none; }
  .lps-slider-progress::after { transform: scaleX(1); }
}

/* ===== V2 统一页头 =====
   新导出包曾只留下父主题导航覆写，导致首页、分类和文章页出现三套不一致的菜单。
   以下恢复 layout-polish-v2 的独立结构；一级导航改为较细的 500 字重。 */
body.lps-child-active .lps-site-header {
  position: sticky;
  z-index: 2147483646;
  top: 0;
  border-bottom: 1px solid var(--lps-border);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 4px 18px rgba(31, 55, 75, .05);
  /* backdrop-filter 会成为 fixed 子元素的包含块，导致移动抽屉只按页头高度展开。 */
  backdrop-filter: none;
  overflow: visible !important;
}
body.lps-child-active .lps-header-inner { display: flex; width: min(1240px, calc(100% - 32px)); min-height: 64px; margin: 0 auto; align-items: center; gap: 24px; }
body.lps-child-active .lps-brand { display: inline-flex; align-items: center; gap: 8px; color: var(--lps-text); font-size: 17px; font-weight: 500; text-decoration: none; white-space: nowrap; }
body.lps-child-active .lps-brand-mark { display: grid; width: 28px; height: 28px; border-radius: 8px; place-items: center; background: var(--lps-blue); color: #fff; font-size: 14px; font-weight: 500; }
body.lps-child-active .lps-brand small { color: var(--lps-text-3); font-size: 12px; font-weight: 400; }
body.lps-child-active .lps-site-nav { min-width: 0; flex: 1; }
body.lps-child-active .lps-site-nav ul { display: flex; margin: 0; padding: 0; align-items: center; gap: 4px; list-style: none; }
body.lps-child-active .lps-site-nav li { position: relative; }
body.lps-child-active .lps-site-nav a { display: block; padding: 10px 14px; border-radius: 9px; color: var(--lps-text); font-size: 15px; font-weight: 500; letter-spacing: .01em; line-height: 1.35; text-decoration: none; transition: background .18s ease, color .18s ease; }
body.lps-child-active .lps-site-nav > ul > li:hover > a, body.lps-child-active .lps-site-nav > ul > li.current-menu-item > a, body.lps-child-active .lps-site-nav > ul > li.current-menu-ancestor > a { background: rgba(74, 144, 194, .11); color: var(--lps-blue); }
body.lps-child-active .lps-site-nav .sub-menu { position: absolute; z-index: 2147483647; top: calc(100% - 1px); left: 0; display: none; min-width: 150px; padding: 7px; border: 1px solid var(--lps-border); border-radius: 8px; background: #fff; box-shadow: 0 16px 36px rgba(26, 53, 76, .14); }
body.lps-child-active .lps-site-nav li:hover > .sub-menu, body.lps-child-active .lps-site-nav li:focus-within > .sub-menu { display: block; }
body.lps-child-active .lps-site-nav .sub-menu a { padding: 8px 10px; font-size: 14px; font-weight: 400; white-space: nowrap; }

/* 全站标签统一为偏方形的小圆角，避免信息标签看起来像胶囊按钮。 */
.item-tags a,
.item-tags .badg,
.lps-tags a,
.tag-cloud a,
.tag-list a,
.article-tags a,
.lps-term,
.lps-gallery-tag {
  border-radius: 5px !important;
}
body.lps-child-active .lps-site-search { display: flex; width: 190px; padding: 3px 5px 3px 12px; align-items: center; border: 1px solid var(--lps-border); border-radius: 10px; background: var(--lps-bg); }
body.lps-child-active .lps-site-search input { width: 100%; min-width: 0; height: 31px; border: 0; outline: 0; background: transparent; color: var(--lps-text); font-size: 13px; }
body.lps-child-active .lps-site-search button { width: 31px; height: 31px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--lps-text-3); cursor: pointer; font-size: 20px; }
body.lps-child-active .lps-menu-toggle, body.lps-child-active .lps-menu-backdrop, body.lps-child-active .lps-menu-close { display: none; }
@media (max-width: 860px) {
  body.lps-menu-open { overflow: hidden; }
  body.lps-child-active .lps-header-inner { width: calc(100% - 24px); min-height: 58px; gap: 12px; }
  body.lps-child-active .lps-brand small, body.lps-child-active .lps-site-search { display: none; }
  body.lps-child-active .lps-menu-toggle { display: grid; width: 38px; height: 38px; margin-left: auto; padding: 0; border: 1px solid var(--lps-border); border-radius: 10px; place-content: center; gap: 4px; background: #fff; cursor: pointer; }
  body.lps-child-active .lps-menu-toggle > span { display: block; width: 17px; height: 2px; border-radius: 2px; background: var(--lps-text); transition: transform .2s ease, opacity .2s ease; }
  body.lps-child-active .is-menu-open .lps-menu-toggle > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.lps-child-active .is-menu-open .lps-menu-toggle > span:nth-child(2) { opacity: 0; }
  body.lps-child-active .is-menu-open .lps-menu-toggle > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  body.lps-child-active .is-menu-open .lps-menu-toggle { visibility: hidden; }
  body.lps-child-active .lps-site-nav { position: fixed; z-index: 102; top: 0; right: 0; bottom: 0; width: min(360px, 88vw); padding: 70px 20px 24px; overflow-y: auto; background: #fff; box-shadow: -16px 0 42px rgba(27, 50, 70, .16); opacity: 0; pointer-events: none; transform: translateX(100%); visibility: hidden; transition: transform .24s ease, opacity .2s ease, visibility 0s linear .24s; }
  body.lps-child-active .is-menu-open .lps-site-nav { opacity: 1; pointer-events: auto; transform: translateX(0); visibility: visible; transition-delay: 0s; }
  body.lps-child-active .lps-menu-close { position: absolute; z-index: 1; top: 16px; right: 16px; display: grid; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; place-items: center; background: transparent; color: var(--lps-text-3); cursor: pointer; font-size: 30px; font-weight: 400; line-height: 1; }
  body.lps-child-active .lps-menu-close:hover { background: var(--lps-soft); color: var(--lps-text); }
  body.lps-child-active .lps-site-nav ul { display: block; }
  body.lps-child-active .lps-site-nav > ul > li { margin: 0 0 7px; }
  body.lps-child-active .lps-site-nav > ul > li > a { padding: 11px 8px; font-size: 16px; }
  body.lps-child-active .lps-site-nav .sub-menu { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; min-width: 0; margin: 2px 0 8px; padding: 0; border: 0; box-shadow: none; }
  body.lps-child-active .lps-site-nav .sub-menu a { padding: 9px 8px; border-radius: 7px; background: var(--lps-bg); text-align: center; white-space: normal; font-size: 13px; }
  body.lps-child-active .lps-menu-backdrop { position: fixed; z-index: 101; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(18, 32, 45, .38); opacity: 0; pointer-events: none; transition: opacity .24s ease; }
  body.lps-child-active .is-menu-open .lps-menu-backdrop { display: block; opacity: 1; pointer-events: auto; }

  /* 移动端锁定图片一的层级：父级是标题，二级始终为两列小方块。
     避免触屏残留 :hover 或父主题通用菜单规则把同一组二级项目改成单列。 */
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children > a,
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children:hover > a,
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children:focus-within > a {
    padding: 11px 8px !important;
    background: transparent !important;
    color: var(--lps-text) !important;
  }
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children > .sub-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
  }
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children > .sub-menu > li,
  body.lps-child-active .lps-site-nav > ul > li.menu-item-has-children > .sub-menu > li > a {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
  }
  body.lps-child-active .lps-site-nav > ul > li:not(.current-menu-item):hover > a,
  body.lps-child-active .lps-site-nav .sub-menu a:hover {
    background: transparent !important;
    color: var(--lps-text) !important;
    transform: none !important;
  }
  body.lps-child-active .lps-site-nav .sub-menu a {
    font-size: 14px !important;
    line-height: 1.45;
  }
  body.lps-child-active .lps-site-nav .sub-menu a:hover { background: var(--lps-bg) !important; }
}

/* ===== 文章页侧边栏（自动填充搜索/排行/标签） ===== */
.lps-single-sidebar-item {
  margin-bottom: 20px;
}
.lps-single-sidebar-item:last-child {
  margin-bottom: 0;
}
body.single .sidebar {
  max-width: 311px;
}

/* 抽屉与手机菜单按钮同在左侧，避免按钮在左、面板却从右滑出的方向错位。 */
@media (max-width: 860px) {
  body.lps-child-active .lps-site-nav {
    right: auto;
    left: 0;
    box-shadow: 16px 0 42px rgba(27, 50, 70, .16);
    transform: translateX(-100%);
  }
}

/* 触屏滚动会把手指经过的画廊卡片短暂判定为 :hover，
   原本的图片缩放和标题浮层会因此闪动。触屏端固定画廊状态，
   仅保留点击进入文章；桌面鼠标悬停效果不受影响。 */
@media (hover: none), (pointer: coarse) {
  body.category .lps-category-waterfall {
    touch-action: pan-y;
    -webkit-tap-highlight-color: transparent;
  }
  body.category .lps-category-waterfall .lps-category-card,
  body.category .lps-category-waterfall .lps-category-card img,
  body.category .lps-category-waterfall .lps-gallery-label {
    transition: none !important;
    transform: none !important;
  }
  body.category .lps-category-waterfall .lps-gallery-card:hover img { transform: none !important; }
  body.category .lps-category-waterfall .lps-gallery-card:hover .lps-gallery-label {
    opacity: 0 !important;
    transform: translateY(8px) !important;
  }
}

/* ===== 1.4.2：手机菜单按钮恢复右侧 =====
   保留左侧抽屉和抽屉内右上关闭，顶部按钮沿用上一版的右侧位置。 */
@media (max-width: 860px) {
  body.lps-child-active .lps-header-inner {
    justify-content: flex-start;
    gap: 10px;
  }
  body.lps-child-active .lps-menu-toggle {
    order: initial;
    flex: 0 0 38px;
    margin-left: auto;
    margin-right: 0;
    border-radius: 9px;
  }
  body.lps-child-active .lps-brand {
    min-width: 0;
    margin-right: 0;
    font-size: 16px;
  }
  body.lps-child-active .lps-site-nav {
    z-index: 2147483647;
    width: min(340px, 86vw);
    padding: 64px 18px 26px;
    border-right: 1px solid var(--lps-border);
    box-shadow: 14px 0 34px rgba(27, 50, 70, .15);
  }
  body.lps-child-active .lps-menu-close {
    top: 14px;
    right: 14px;
    width: 34px;
    height: 34px;
    font-size: 28px;
  }
  body.lps-child-active .lps-site-nav > ul > li { margin-bottom: 10px; }
  body.lps-child-active .lps-site-nav > ul > li > a {
    padding: 10px 8px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.45;
  }
  body.lps-child-active .lps-site-nav .sub-menu {
    gap: 8px !important;
    margin: 3px 0 2px;
  }
  body.lps-child-active .lps-site-nav .sub-menu a {
    padding: 9px 7px;
    border-radius: 6px;
    font-size: 14px !important;
    font-weight: 400;
    line-height: 1.4;
  }
  body.lps-child-active .lps-menu-backdrop { z-index: 2147483646; }
}

/* ===== 分类页卡片网格修复（v22 增强：视觉一致性） =====
   site-layout-1 下内容区无侧栏留位，过宽导致 inline-block 卡片排成 4 列。
   用 CSS Grid 替代父主题的 inline-block 布局，强制精确 3 列等宽。
   非卡片元素（标题/搜索/排序栏）自动跨整行，不影响卡片列数。
   不影响首页等其他页面。
   v22 新增：缩略图区固定比例防塌陷、卡片等高对齐、图片失效优雅降级。 */

body.category .posts-row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: start;             /* 顶部对齐，不拉伸（内容高度不一时不留白） */
  font-size: 13px !important;
}

@media (min-width: 861px) and (max-width: 1100px) {
  body.category .posts-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* 卡片交给 Grid 自动分配宽度 */
body.category .posts-item.card {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  display: block !important;
  overflow: hidden;              /* 防止内容溢出圆角 */
  border-radius: var(--lps-radius);
  border: 1px solid var(--lps-border);
  background: var(--lps-card);
  box-shadow: var(--lps-shadow);
}

/* ★ 缩略图区固定宽高比 + 最小高度：防止外链图失效时塌陷 */
body.category .posts-item.card .item-thumbnail {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 180px;             /* 保底高度：即使无图也有足够视觉面积 */
  overflow: hidden;
  background: var(--lps-soft);   /* 占位背景色 */
}

/* 分类卡片直接复用首页网格的信息层级。 */
body.category .lps-category-card { min-width: 0; }
body.category .lps-category-card .lps-grid-media { position: relative; display: block; height: auto !important; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; background: var(--lps-soft); }
body.category .lps-category-card .lps-grid-media > img { width: 100%; height: 100%; object-fit: cover; }
body.category .lps-category-card .lps-grid-body { padding: 15px 16px 14px; }
body.category .lps-category-card .lps-card-title { margin: 0; font-size: 16px; font-weight: 500; line-height: 1.48; }
body.category .lps-category-card .lps-card-title > a { display: inline; height: auto; min-height: 0; padding: 0; line-height: inherit; }
/* 分类卡片只保留封面缩放和阴影反馈，标题不再随卡片位移或变色而产生双重变化。 */
body.category .lps-category-card:hover { transform: none; border-color: var(--lps-border); box-shadow: var(--lps-shadow-hover); }
body.category .lps-category-card .lps-card-title > a:hover { color: inherit; }
body.category .lps-category-card .lps-feature-excerpt { min-height: 40px; margin: 7px 0 11px; font-size: 13px; line-height: 1.58; }
body.category .lps-category-card .lps-category-meta { display: flex; padding-top: 10px; border-top: 1px solid var(--lps-border); color: var(--lps-text-3); font-size: 12px; justify-content: space-between; }
body.category .lps-category-card.lps-title-lines-1 .lps-card-title { -webkit-line-clamp: 1; }
body.category .lps-category-card.lps-title-lines-2 .lps-card-title { -webkit-line-clamp: 2; }

/* 分类封面自动采用该分类已有文章配图；高度略高于原父主题横条。 */
body.category .lps-category-cover { min-height: 184px !important; overflow: hidden; }
body.category .lps-category-cover > .page-cover-con { min-height: 184px; padding: 24px 24px !important; align-items: flex-end; }
body.category .lps-category-cover .page-cover-more-btns { z-index: 2; }
@media (max-width: 860px) {
  body.category .lps-category-cover { min-height: 154px !important; }
  body.category .lps-category-cover > .page-cover-con { min-height: 154px; padding: 20px 16px !important; }
}
body.category .posts-item.card .item-thumbnail a {
  display: block;
  width: 100%;
  height: 100%;
}
body.category .posts-item.card .item-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* 图片加载失败时的优雅降级 */
  background: linear-gradient(135deg, #ddecf7 0%, #c5dae8 100%);
}

/* ★ 卡片内容区内边距统一 */
body.category .posts-item.card .item-body {
  padding: 12px 13px 14px;
}

/* ★ 标题样式优化 */
body.category .posts-item.card .item-heading {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--lps-text);
}
body.category .posts-item.card .item-heading a {
  color: inherit;
  text-decoration: none;
  transition: color .2s ease;
}
body.category .posts-item.card .item-heading a:hover {
  color: var(--lps-brand);
}

/* ★ 标签区域 */
body.category .posts-item.card .item-tags {
  margin-bottom: 10px;
}
body.category .posts-item.card .item-tags a {
  font-size: 11px;
}

/* ★ 元信息（作者/时间/互动） */
body.category .posts-item.card .item-meta {
  font-size: 11px;
  color: var(--lps-text-3);
}

/* 非卡片子元素（标题栏、搜索框、排序栏）跨满整行 */
body.category .posts-row > :not(.posts-item.card) {
  grid-column: 1 / -1;
}

/* ===== 分类页顶部区域修复（v23） =====
   问题：.page-cover 背景图加载失败时显示为灰色扁平条带；
         标题"烽火戏诸侯"字体过大（父主题 font-size:16px + <b> 加粗无约束）；
         排序栏字体偏大。
   目标：参考首页"本周精选·大图预览"比例（.lps-section-title=19px），
         使分类页标题区紧凑、协调、与首页风格统一。 */

/* --- 分类封面区 .page-cover --- */
body.category .page-cover {
  padding-bottom: 0 !important;           /* 去掉父主题 calc(25%+80px) 的固定高度 */
  min-height: 0;
  border-radius: var(--lps-radius) !important;   /* 统一圆角 */
  background: linear-gradient(135deg, var(--lps-text) 0%, var(--lps-brand) 100%) !important;  /* 品牌渐变背景兜底（用设计变量） */
  box-shadow: var(--lps-shadow) !important;
  text-shadow: none !important;            /* 去掉父主题文字阴影，更干净 */
}

/* 封面内容区：内联布局 + 紧凑内边距 */
body.category .page-cover > .page-cover-con {
  position: relative !important;            /* 去掉 absolute，改流式布局 */
  bottom: auto !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px !important;
  font-size: 13px !important;              /* ★ 基础字号从 16px 降到 13px（参考首页比例） */
  color: rgba(255,255,255,.9) !important;
  z-index: 1;
}

/* ★ 分类标题文字：核心字号控制 */
body.category .page-cover .title-h-left {
  margin: 0 !important;
  padding: 0 !important;
}
body.category .page-cover .title-h-left b {
  font-size: 17px !important;               /* ★ 从默认 ~16px+bold 收敛到 17px（接近首页 .lps-section-title=19px 但略小，因是页面级标题） */
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: 0.3px;
}
body.category .page-cover .title-h-left b i {
  font-size: 14px !important;               /* 文件夹图标缩小 */
}
body.category .page-cover .title-h-left::before {
  display: none !important;                  /* 去掉父主题 40px 装饰线（粉色竖条已足够） */
}

/* "共N篇" 角标 */
body.category .page-cover .icon-spot {
  font-size: 12px !important;
  opacity: 0.8;
  margin-left: 6px;
}
body.category .page-cover .icon-spot::before {
  background: rgba(255,255,255,.5) !important;
}

/* 分类描述（空时隐藏） */
body.category .page-cover .page-desc {
  font-size: 12px !important;
  margin-left: 12px;
}

/* 封面背景图：确保填满 + 优雅降级 */
body.category .page-cover > img.fit-cover,
body.category .page-cover > .lazyload.fit-cover {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  opacity: 0.85;                           /* 背景图略透明，保证文字可读 */
}

/* 渐变遮罩层 */
body.category .page-cover .linear-mask {
  background: linear-gradient(180deg, rgba(44,62,80,0.1) 0%, rgba(44,62,80,0.45) 100%) !important;
}

/* 搜索按钮定位 */
body.category .page-cover .page-cover-more-btns {
  position: relative !important;
  right: auto !important;
  top: auto !important;
  font-size: 1em !important;
}

/* ===== 1.4.0：分类页与首页模块同构 ===== */
/* PC 顶部导航：字级提高两号，同时恢复常规字重，避免“大而粗”。 */
@media (min-width: 861px) {
  body.lps-child-active .lps-site-nav > ul { gap: 6px; }
  body.lps-child-active .lps-site-nav > ul > li > a {
    padding: 11px 16px;
    font-size: 17px;
    font-weight: 400;
    letter-spacing: .015em;
  }
}

/* 分类封面不沿用父主题 widget 的蓝色描边或右上搜索按钮。
   内容锚定在封面左下，标题与首页幻灯片使用同一层级，简介自然在其下方。 */
body.category .lps-category-cover {
  min-height: 242px !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: #183654 !important;
}
body.category .lps-category-cover > .page-cover-con.lps-category-cover-content {
  position: absolute !important;
  right: 0;
  bottom: 0 !important;
  left: 0;
  display: block;
  min-height: 0 !important;
  padding: 36px 40px !important;
  color: #fff !important;
}
body.category .lps-category-cover .lps-category-cover-heading {
  display: flex;
  min-width: 0;
  margin: 0 0 10px;
  align-items: baseline;
  gap: 10px;
}
body.category .lps-category-cover .lps-category-cover-title {
  display: -webkit-box;
  overflow: hidden;
  max-width: min(78%, 860px);
  margin: 0;
  color: #fff !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.28;
  letter-spacing: .01em;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
body.category .lps-category-cover .lps-category-cover-count {
  flex: 0 0 auto;
  color: rgba(255,255,255,.82);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
}
body.category .lps-category-cover .lps-category-cover-desc {
  display: -webkit-box;
  overflow: hidden;
  max-width: min(68%, 740px);
  margin: 0 !important;
  color: rgba(255,255,255,.86) !important;
  font-size: 14px !important;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
body.category .lps-category-cover .page-cover-more-btns,
body.category .lps-category-cover .title-h-left,
body.category .lps-category-cover .icon-spot { display: none !important; }
body.category .lps-category-cover .linear-mask {
  background: linear-gradient(90deg, rgba(12,34,54,.82) 0%, rgba(15,53,84,.5) 52%, rgba(11,27,45,.18) 100%) !important;
}
body.category .lps-category-cover > img.fit-cover { opacity: .94; }

/* 每个分类可在后台选择首页网格、精选文章、多图速览或最新文章；
   所有类型共享 2/3/4 列控制，且在窄屏自动收敛。 */
body.category .posts-row.lps-category-layout {
  --lps-category-columns: 4;
  grid-template-columns: repeat(var(--lps-category-columns), minmax(0, 1fr)) !important;
}
body.category .posts-row.lps-category-cols-2 { --lps-category-columns: 2; }
body.category .posts-row.lps-category-cols-3 { --lps-category-columns: 3; }
body.category .posts-row.lps-category-cols-4 { --lps-category-columns: 4; }
body.category .lps-category-layout .lps-category-card { min-width: 0; }
body.category .lps-category-layout .lps-category-card .lps-card-title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
}
body.category .lps-category-layout .lps-category-card .lps-module-foot { margin-top: 12px; }
body.category .lps-category-layout-featured .lps-category-card,
body.category .lps-category-layout-article_list .lps-category-card,
body.category .lps-category-layout-multi_image .lps-category-card {
  display: block !important;
  width: auto !important;
  min-width: 0;
  max-width: none !important;
  margin: 0 !important;
}
body.category .lps-category-layout-article_list .lps-card-media {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--lps-soft);
}
body.category .lps-category-layout-article_list .lps-card-body { padding: 16px; }
body.category .lps-category-layout-article_list .lps-card-excerpt,
body.category .lps-category-layout-multi_image .lps-multi-body > p {
  display: -webkit-box;
  overflow: hidden;
  margin: 8px 0 12px;
  color: var(--lps-text-2);
  font-size: 13px;
  line-height: var(--lps-leading);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
body.category .lps-category-layout-multi_image .lps-multi-card {
  overflow: hidden;
  border-radius: var(--lps-radius);
  border: 1px solid var(--lps-border);
  background: var(--lps-card);
  box-shadow: var(--lps-shadow);
}
body.category .lps-category-layout-multi_image .lps-multi-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  overflow: hidden;
  background: var(--lps-soft);
}
body.category .lps-category-layout-multi_image .lps-multi-image { position: relative; aspect-ratio: 1 / 1; overflow: hidden; }
body.category .lps-category-layout-multi_image .lps-multi-image img { width: 100%; height: 100%; object-fit: cover; }
body.category .lps-category-layout-multi_image .lps-multi-body { padding: 15px 16px 16px; }
body.category .lps-category-layout .lps-category-card:hover { transform: none; border-color: var(--lps-border); }

@media (max-width: 1100px) and (min-width: 861px) {
  body.category .posts-row.lps-category-cols-4 { --lps-category-columns: 3; }
}
@media (max-width: 860px) {
  body.category .lps-category-cover { min-height: 190px !important; }
  body.category .lps-category-cover > .page-cover-con.lps-category-cover-content { padding: 25px 20px !important; }
  body.category .lps-category-cover .lps-category-cover-heading { gap: 8px; }
  body.category .lps-category-cover .lps-category-cover-title { max-width: 94%; font-size: 24px !important; }
  body.category .lps-category-cover .lps-category-cover-desc { max-width: 94%; font-size: 13px !important; }
}

/* --- 排序栏 .ajax-option --- */
body.category .ajax-option {
  padding: 10px 0 !important;
  margin-bottom: 4px !important;
}
body.category .ajax-option .option-dropdown {
  padding: 5px 12px !important;
  font-size: 13px !important;               /* ★ 排序标签从默认收敛到 13px */
  font-weight: 500 !important;
  color: var(--lps-text) !important;
  border-radius: 6px !important;
  background: var(--lps-soft) !important;
}
body.category .ajax-option .option-items {
  margin-left: 8px !important;
  font-size: 13px !important;               /* ★ 排序选项 13px */
}
body.category .ajax-option .option-items a {
  font-size: 13px !important;
  color: var(--lps-text-2) !important;
  padding: 4px 10px !important;
}
body.category .ajax-option .option-items a:hover {
  color: var(--lps-brand) !important;
}
body.category .ajax-option .option-items a + a::before {
  background: var(--lps-border) !important;  /* 分隔点用边框色 */
}

/* --- 分类页全局字体收敛 --- */
/* （已合并到上方 body.category .posts-row 声明中，避免重复选择器） */

/* --------------------------------------------------------------------------
 * 1.5.23 · 色彩与字体收敛层
 * --------------------------------------------------------------------------
 * 只使用 400 / 500 / 700 三档权重；不依赖远程字体服务，优先读取系统内已安装
 * 的 Noto Sans SC（思源黑体），缺失时才按中文字体栈回退。
 */
body.lps-child-active,
body.lps-child-active :is(button, input, select, textarea) {
  font-family: var(--lps-font);
  font-synthesis: none;
}

body.lps-child-active {
  background-color: var(--lps-bg) !important;
  font-weight: var(--lps-font-regular);
}

/* 正文、说明、元信息与标签保持 Regular（400）。 */
body.lps-child-active :is(
  p,
  .entry-content,
  .article-content,
  .post-content,
  .lps-card-excerpt,
  .lps-feature-excerpt,
  .lps-chapter-excerpt,
  .lps-waterfall-excerpt,
  .lps-slide-desc,
  .lps-category-cover-desc,
  .lps-yiyan-quote,
  .lps-yiyan-source,
  .lps-card-meta,
  .lps-feature-meta,
  .lps-grid-meta,
  .lps-chapter-meta,
  .lps-category-meta,
  .lps-tags a,
  .tag-cloud a,
  .tag-list a,
  .item-tags a,
  .item-tags .badg,
  .lps-badge,
  .lps-category-badge
) {
  font-weight: var(--lps-font-regular) !important;
}

/* 模块、卡片、导航和文章内部的小标题统一使用 Medium（500）。 */
body.lps-child-active :is(
  h2,
  h3,
  h4,
  h5,
  h6,
  .lps-section-title,
  .lps-widget-title,
  .lps-card-title,
  .lps-waterfall-title,
  .lps-rank-title,
  .lps-brand,
  .lps-site-nav a,
  .lps-page-link,
  .ajax-option .option-dropdown,
  .lps-category-cover-count
) {
  font-weight: var(--lps-font-medium) !important;
}

/* 手机/桌面二级菜单属于导航内容项，保持 Regular（400），不继承一级导航的 Medium。 */
body.lps-child-active .lps-site-nav .sub-menu a {
  font-weight: var(--lps-font-regular) !important;
}

/* 首页幻灯、文章页主标题、分类封面为页面级大标题，使用 Bold（700）。 */
body.lps-child-active :is(
  h1,
  .lps-slide-title,
  .lps-category-cover-title,
  .page-cover .title-h-left b
) {
  font-weight: var(--lps-font-bold) !important;
}

/* --------------------------------------------------------------------------
 * 1.5.24 · 章节列表移动端收敛层
 * --------------------------------------------------------------------------
 * 章节卡片在 495px 左右仍维持两列时，右侧文字区不足 90px，标题、摘要和
 * 元信息被迫同时折行。手机端改为一列左图右文：保持封面 4:3 比例，让文字
 * 区至少拥有可连续阅读的宽度；每张卡片的间距由内容自身决定，不强制拉高。
 */
@media (max-width: 560px) {
  body.lps-child-active .lps-chapter-list,
  body.lps-child-active .lps-chapter-list[class*="lps-cols-"] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  body.lps-child-active .lps-chapter-card {
    grid-template-columns: clamp(110px, 30vw, 132px) minmax(0, 1fr) !important;
    gap: 14px !important;
    min-height: 0;
    padding: 13px !important;
  }

  body.lps-child-active .lps-chapter-card > .lps-chapter-media {
    align-self: start;
    aspect-ratio: var(--lps-chapter-ratio, 4 / 3);
    border-radius: 9px;
  }

  body.lps-child-active .lps-chapter-card .lps-card-title {
    font-size: 15px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  body.lps-child-active .lps-chapter-excerpt {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.62;
    -webkit-line-clamp: 2;
  }

  body.lps-child-active .lps-chapter-card .lps-module-foot {
    margin-top: 8px;
    padding-top: 8px;
    font-size: 11px;
  }
}

@media (max-width: 420px) {
  body.lps-child-active .lps-chapter-list,
  body.lps-child-active .lps-chapter-list[class*="lps-cols-"] {
    gap: 12px !important;
  }

  body.lps-child-active .lps-chapter-card {
    grid-template-columns: clamp(100px, 30vw, 116px) minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 12px !important;
  }

  body.lps-child-active .lps-chapter-card .lps-card-title {
    font-size: 14px;
  }

  body.lps-child-active .lps-chapter-excerpt {
    font-size: 12px;
    line-height: 1.6;
  }

  body.lps-child-active .lps-chapter-card .lps-module-foot {
    margin-top: 7px;
    padding-top: 7px;
    font-size: 10px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.35 · 页面末尾间距
 * --------------------------------------------------------------------------
 * 页尾完全由 Zibll 父主题输出。这里只控制首页正文的收束距离，避免分页与父
 * 主题页尾之间形成额外留白，不再覆盖任何 .footer 或父主题页尾内部结构。
 */
body.lps-child-active .lps-home > .lps-main {
  padding-bottom: clamp(22px, 2vw, 30px);
}

@media (max-width: 680px) {
  body.lps-child-active .lps-home > .lps-main {
    padding-bottom: 14px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.29 · 模块圆角与阴影视觉收敛
 * --------------------------------------------------------------------------
 * 通用卡片使用根变量的 12px 圆角；这里补齐原先显式写成 18px 的大模块。
 * 阴影保留必要层级，但缩短模糊半径和降低不透明度，避免模块边界过重。
 */
.lps-hero {
  border-radius: 14px;
}

.lps-gallery-card {
  border-radius: 10px;
}

.lps-spotlight-card,
.lps-multi-card,
.lps-module-tags .lps-widget,
.lps-module-follow .lps-widget,
.lps-module-ranking .lps-widget {
  border-radius: 14px;
}

body.lps-child-active .lps-site-header {
  box-shadow: 0 2px 10px rgba(31, 55, 75, .04);
}

body.lps-child-active .lps-site-nav .sub-menu {
  box-shadow: 0 10px 24px rgba(26, 53, 76, .10);
}

.lps-social:hover,
.lps-social:focus-visible,
.lps-social:focus-within {
  box-shadow: 0 5px 12px rgba(37, 72, 99, .10);
}

.lps-social-qr {
  box-shadow: 0 8px 22px rgba(28, 49, 67, .16);
}

@media (max-width: 680px) {
  .lps-hero {
    border-radius: 11px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.30 · 关注我们：统一图标、文字与二维码浮层
 * --------------------------------------------------------------------------
 * 社交按钮固定为“图标行 + 文字行”的等宽正方形网格。图形本身的宽高比例可以
 * 不同，但都在同一个 32px 图标视口内居中渲染，标签也统一占用 16px 基线行。
 */
.lps-follow {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
  justify-items: center;
}

.lps-social {
  display: grid;
  width: min(80px, 100%);
  height: auto;
  min-height: 0;
  padding: 9px 6px 8px;
  border-radius: 8px;
  grid-template-rows: minmax(26px, 32px) 16px;
  place-items: center;
  gap: 6px;
  aspect-ratio: 1 / 1;
  justify-self: center;
}

.lps-social-icon {
  display: grid;
  width: clamp(26px, 44%, 32px);
  height: clamp(26px, 44%, 32px);
  min-width: 0;
  place-items: center;
}

.lps-social-sprite {
  background-image: url("assets/images/social-icons-v1530.png");
}

.lps-social-label {
  display: block;
  height: 16px;
  overflow: visible;
  font-size: 12px;
  line-height: 16px;
  text-align: center;
  white-space: nowrap;
}

.lps-social-qr {
  z-index: 120;
  width: min(218px, calc(100vw - 36px));
  padding: 10px 10px 8px;
  border-radius: 10px;
}

.lps-social-qr img {
  border-radius: 4px;
}

.lps-social-qr small {
  margin-top: 7px;
  font-size: 12px;
  line-height: 1.35;
}

@media (max-width: 680px) {
  .lps-module-follow .lps-follow {
    gap: 8px;
  }

  .lps-module-follow .lps-social {
    width: min(76px, 100%);
    padding: 8px 4px 7px;
    gap: 5px;
  }

  .lps-module-follow .lps-social-label {
    font-size: 11px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.31 · 关注我们：独立透明图标与居中校准
 * --------------------------------------------------------------------------
 * 图标从原始四宫格素材拆为独立 PNG，白底已转透明。每张图都预留相同画布，
 * 因此不受原始 Logo 宽高影响，能在同一 30px 视口内放大且视觉居中。
 */
.lps-social {
  padding: 5px 4px 4px;
  border-color: transparent;
  background: transparent;
  grid-template-rows: 30px 14px;
  gap: 3px;
  align-content: center;
  justify-content: center;
}

.lps-social-icon {
  width: 30px;
  height: 30px;
}

.lps-social-sprite {
  background-image: none;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.lps-social-sprite-weibo {
  background-image: url("assets/images/lps-social-weibo-v1531.png");
}

.lps-social-sprite-wechat {
  background-image: url("assets/images/lps-social-wechat-v1531.png");
}

.lps-social-sprite-qq {
  background-image: url("assets/images/lps-social-qq-v1531.png");
}

.lps-social-sprite-douyin {
  background-image: url("assets/images/lps-social-douyin-v1531.png");
}

.lps-social-label {
  height: 14px;
  font-size: 11px;
  line-height: 14px;
}

.lps-social:hover,
.lps-social:focus-visible,
.lps-social:focus-within {
  border-color: rgba(74, 144, 194, .28);
  background: rgba(255, 255, 255, .62);
  box-shadow: 0 4px 10px rgba(37, 72, 99, .075);
}

@media (max-width: 680px) {
  .lps-module-follow .lps-social {
    padding: 5px 4px 4px;
    gap: 3px;
  }

  /* 覆盖旧版 60% 宽度规则，防止手机端仅缩窄图标宽度而保留 30px 高度。 */
  .lps-module-follow .lps-social-icon {
    width: 30px;
    height: 30px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.32 · 关注我们：校正图形方向与放大比例
 * --------------------------------------------------------------------------
 * 透明素材在导出时按原图方向重建；图形可见区域由约 27px 放大到约 40px，
 * 即约 1.5 倍，同时保留四个入口完全等宽、等高、同中轴的排列。
 */
.lps-social {
  padding: 2px 4px;
  grid-template-rows: 41px 12px;
  gap: 0;
}

.lps-social-icon {
  width: 41px;
  height: 41px;
}

.lps-social-sprite-weibo {
  background-image: url("assets/images/lps-social-weibo-v1532.png");
}

.lps-social-sprite-wechat {
  background-image: url("assets/images/lps-social-wechat-v1532.png");
}

.lps-social-sprite-qq {
  background-image: url("assets/images/lps-social-qq-v1532.png");
}

.lps-social-sprite-douyin {
  background-image: url("assets/images/lps-social-douyin-v1532.png");
}

.lps-social-label {
  height: 12px;
  font-size: 11px;
  line-height: 12px;
}

@media (max-width: 680px) {
  .lps-module-follow .lps-social-icon {
    width: 41px;
    height: 41px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.33 · 图标与文字间距
 * --------------------------------------------------------------------------
 * 保留方形按钮和 1.5 倍图形比例，在图形与标签之间增加 2px 呼吸感。
 */
.lps-social {
  padding: 2px 4px 1px;
  grid-template-rows: 41px 11px;
  gap: 2px;
}

.lps-social-label {
  height: 11px;
  line-height: 11px;
}

@media (max-width: 680px) {
  .lps-module-follow .lps-social {
    padding: 2px 4px 1px;
    grid-template-rows: 41px 11px;
    gap: 2px;
  }
}

/* --------------------------------------------------------------------------
 * 1.5.34 · 关注我们图文间距
 * --------------------------------------------------------------------------
 * 图标与标签的垂直间距调整为 6px；同步缩小四格横向间距，使 61px 方形入口
 * 在 1/3 宽侧栏内仍能整齐一行排开，不产生挤压或横向溢出。
 */
.lps-follow {
  gap: 5px;
}

.lps-social {
  grid-template-rows: 41px 11px;
  gap: 6px;
}

@media (max-width: 680px) {
  .lps-module-follow .lps-follow {
    gap: 5px;
  }

  .lps-module-follow .lps-social {
    grid-template-rows: 41px 11px;
    gap: 6px;
  }
}
