/* ==========================================================================
   components/gallery.css — VIP-柿居卡展示（图片 + 视频混排）
   只负责"分组壳"，卡片本身完全复用：
     · 视频 → .companion-grid / .companion-card（companion.css）
     · 图片 → .light-grid / .poster-card（poster.css）
   ⚠️ 本文件须在 companion.css / poster.css 之后、typography.css 之前加载。
   ========================================================================== */

.gallery-layout {
  display: grid;
  gap: clamp(20px, 3.4vw, 30px);
}

/* 分组：标题条 + 内容网格 */
.gallery-group {
  display: grid;
  gap: 16px;
}

/* ⚠️ 必须显式写：[hidden] 是 UA 样式，会被上面的 display:grid 覆盖，
   否则没内容的分组仍会留下一条空的「视频 / 图片」标题条。 */
.gallery-group[hidden],
.gallery-layout [hidden] {
  display: none;
}

/* 标题条：胶囊 + 粗描边 + 硬影，与站内其它"条"同一套语言 */
.gallery-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 18px;
  border-radius: var(--r-pill);
  background: var(--candy-pink-soft);
  border: var(--stroke) solid var(--ink);
  box-shadow: var(--hard-sm);
}

.gallery-group-title {
  font-family: var(--font-title);
  font-size: var(--fs-lg);
  font-weight: var(--fw-blackest);
  letter-spacing: var(--ls-wide);
  color: var(--ink);
}

.gallery-group-count {
  flex: 0 0 auto;
  font-family: var(--font-num);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-wide);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 620px) {
  .gallery-group-head {
    padding: 9px 14px;
    gap: 10px;
  }

  .gallery-group-title {
    font-size: var(--fs-md);
  }

  .gallery-group-count {
    font-size: var(--fs-xs);
  }
}
