/* =====================================================================
 *  Peachy Theme - ecms-peachy.css - v2026.06.11-light-purple
 *  浅色紫主题：白底 + 紫主色 + 卡片化布局（参考 asr.2ym5rsa.com）
 *  - 主色：#667eea  深色：#5a6fd8  红强调：#ff4d4f
 *  - 留白：8/12/16/20px 步进 · 圆角：8/12/16/999px
 *  - 阴影：rgba(224,179,74,.12) 软紫调
 * ===================================================================== */

/* ============================================================
 *  Design tokens
 * ============================================================ */
:root{
  --vh-primary:#e0b34a;
  --vh-primary-d:#b8860b;
  --vh-primary-l:#f0d79f;
  --vh-primary-soft:rgba(224,179,74,.12);
  --vh-primary-softer:rgba(224,179,74,.06);

  --vh-bg:#ffffff;
  --vh-bg-soft:#f7fafc;
  --vh-bg-softer:#f1f5f9;
  --vh-card:#ffffff;
  --vh-card-hover:#fafbfd;

  --vh-text:#2d3748;
  --vh-text-2:#4a5568;
  --vh-text-3:#718096;
  --vh-text-4:#a0aec0;

  --vh-border:#e2e8f0;
  --vh-border-2:#edf2f7;
  --vh-border-strong:#cbd5e0;

  --vh-accent:#a67c0a;
  --vh-accent-2:#d9b866;
  --vh-success:#38a169;
  --vh-warning:#d69e2e;
  --vh-error:#e53e3e;
  --vh-new:#10b981;

  --vh-header-bg:rgba(252,249,240,.86);
  --vh-overlay:rgba(45,55,72,.55);

  --vh-shadow-sm:0 1px 3px rgba(15,23,42,.06);
  --vh-shadow:0 4px 16px rgba(15,23,42,.06);
  --vh-shadow-md:0 8px 24px rgba(224,179,74,.16);
  --vh-shadow-lg:0 12px 32px rgba(224,179,74,.20);

  --vh-rad-xs:6px;
  --vh-rad-sm:8px;
  --vh-rad:12px;
  --vh-rad-md:14px;
  --vh-rad-lg:16px;
  --vh-rad-xl:20px;
  --vh-rad-pill:999px;

  --vh-pad-x:16px;
  --vh-gap:12px;
  --vh-gap-lg:20px;
  --vh-section-gap:28px;

  --vh-ease:cubic-bezier(.4,0,.2,1);
  --vh-ff:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

@media (min-width:768px){
  :root{ --vh-pad-x:24px; --vh-section-gap:36px; }
}

/* ============================================================
 *  Reset
 * ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
[hidden]{ display:none !important; }

/* ============================================================
 *  Body & app shell
 * ============================================================ */
.vh-body{
  font-family:var(--vh-ff);
  background:var(--vh-bg-soft);
  color:var(--vh-text);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  -webkit-text-size-adjust:100%;
}
.vh-app{
  min-height:100vh;
  padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px);
}

/* ============================================================
 *  Promo bar v2 (精品 VIP 风 · 多层渐变 + 星标呼吸 + 光扫)
 * ============================================================ */
.vh-promo{
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 14px;
  /* 4 stop 樱花粉渐变：玫红 → 樱粉 → 浅粉 → 蜜桃 */
  background:
    linear-gradient(135deg,
      #b8860b 0%,
      #e0b34a 30%,
      #e0b34a 70%,
      #f0d79f 100%);
  color:#fff;
  font-size:13px;
  overflow:hidden;
  box-shadow:
    inset 0 -1px 0 rgba(255,255,255,.10),
    0 2px 8px rgba(224,179,74,.22);
}
/* 顶角柔光高光 */
.vh-promo::before{
  content:"";
  position:absolute;
  top:-60%; right:-10%;
  width:280px; height:280px;
  background:radial-gradient(circle, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 60%);
  pointer-events:none;
  z-index:0;
}
/* 周期性光扫 */
.vh-promo::after{
  content:"";
  position:absolute;
  top:0; bottom:0; left:0;
  width:140px;
  background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,.22) 50%, transparent 100%);
  transform:skewX(-22deg) translateX(-300%);
  animation:vh-promo-shine 7s ease-in-out infinite;
  pointer-events:none;
  z-index:1;
}
@keyframes vh-promo-shine{
  0%, 65% { transform:skewX(-22deg) translateX(-300%); }
  90%     { transform:skewX(-22deg) translateX(900%); }
  100%    { transform:skewX(-22deg) translateX(900%); }
}

/* 图标徽章已移除（保留 admin 数据字段，前台不渲染） */

/* 浮动小亮点（5 颗 sparkles）—— 让促销条不那么单调 */
.vh-promo__deco{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  overflow:hidden;
}
.vh-promo__sparkle{
  position:absolute;
  width:5px; height:5px;
  background:#fff;
  border-radius:50%;
  opacity:0;
  filter:blur(.3px);
  box-shadow:0 0 6px rgba(255,255,255,.85), 0 0 12px rgba(255,255,255,.45);
  animation:vh-promo-twinkle 3.6s ease-in-out infinite;
}
.vh-promo__sparkle--1{ top:18%; left:32%; width:4px;  height:4px; animation-delay:0s;    }
.vh-promo__sparkle--2{ top:62%; left:48%; width:3px;  height:3px; animation-delay:.7s;   }
.vh-promo__sparkle--3{ top:25%; left:60%; width:5px;  height:5px; animation-delay:1.4s;  }
.vh-promo__sparkle--4{ top:70%; left:22%; width:3px;  height:3px; animation-delay:2.0s;  }
.vh-promo__sparkle--5{ top:35%; left:78%; width:4px;  height:4px; animation-delay:2.6s;  }
@keyframes vh-promo-twinkle{
  0%, 100%   { opacity:0;   transform:scale(.6); }
  20%, 50%   { opacity:.85; transform:scale(1);  }
  70%        { opacity:0;   transform:scale(.6); }
}

/* slides 容器 */
.vh-promo__slides{
  position:relative;
  z-index:2;
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  min-height:24px;
}
.vh-promo__slide{
  display:flex;
  align-items:center;
  gap:12px;
  flex:1;
  min-width:0;
}
.vh-promo--rotator .vh-promo__slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateY(6px);
  pointer-events:none;
  transition:opacity .35s var(--vh-ease), transform .35s var(--vh-ease);
}
.vh-promo--rotator .vh-promo__slide.is-active{
  position:absolute;
  inset:0;
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.vh-promo__body{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  overflow:hidden;
}
.vh-promo__t{
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  letter-spacing:.02em;
  text-shadow:0 1px 2px rgba(0,0,0,.10);
}
.vh-promo__s{
  font-weight:400;
  opacity:.94;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 1px 2px rgba(0,0,0,.08);
}

/* 光泽白按钮 */
.vh-promo__btn{
  position:relative;
  z-index:2;
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 13px;
  background:linear-gradient(180deg, #ffffff 0%, #f1fbf4 100%);
  color:#1f9e52;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  border-radius:var(--vh-rad-pill);
  box-shadow:
    0 2px 5px rgba(40,150,85,.30),
    inset 0 0 0 1px rgba(255,255,255,.55),
    inset 0 1px 0 rgba(255,255,255,.85);
  transition:.22s var(--vh-ease);
}
.vh-promo__btn svg{
  width:12px; height:12px;
  transition:.22s var(--vh-ease);
}
.vh-promo__btn:hover{
  transform:translateY(-1px);
  color:#1f9e52;
  box-shadow:
    0 4px 12px rgba(40,150,85,.42),
    inset 0 0 0 1px rgba(255,255,255,.75),
    inset 0 1px 0 rgba(255,255,255,.95);
}
.vh-promo__btn:hover svg{ transform:translateX(2px); }
.vh-promo__btn:active{ transform:translateY(0); }

/* 关闭按钮已移除：保留 dismiss 动画占位以兼容旧 JS（永不触发） */

/* 移动端：标题 + 副文案上下两行排版，两行都显示且各自单行截断 */
@media (max-width:520px){
  .vh-promo{ padding:9px 12px; gap:10px; }
  .vh-promo__body{
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
    line-height:1.25;
  }
  .vh-promo__t{ font-size:13px; max-width:100%; }
  .vh-promo__s{ font-size:11px; max-width:100%; }
  .vh-promo__btn{ padding:5px 10px; font-size:11.5px; }
  .vh-promo__btn svg{ width:11px; height:11px; }
}
/* 超窄屏：进一步压缩按钮，保留两行文字 */
@media (max-width:340px){
  .vh-promo{ padding:8px 10px; gap:8px; }
  .vh-promo__btn span,
  .vh-promo__btn{ font-size:11px; padding:4px 8px; }
  .vh-promo__t{ font-size:12.5px; }
  .vh-promo__s{ font-size:10.5px; }
}

/* ============================================================
 *  Header stack (Promo + Top bar 一起吸顶)
 *  把促销条 + 头部导航包成一个吸顶整体，
 *  滚动时一起钉在顶部，关闭促销条后头部仍保持吸顶。
 * ============================================================ */
.vh-headerstack{
  position:sticky;
  top:0;
  z-index:50;
  isolation:isolate;
}

/* ============================================================
 *  Top bar (Logo + 搜索框 + 操作 + 分类 Tab)
 * ============================================================ */
.vh-top{
  position:relative;
  z-index:1;
  background:var(--vh-header-bg);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--vh-border);
}
.vh-top__inner{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px var(--vh-pad-x);
  max-width:1280px;
  margin:0 auto;
}

/* ============================================================
 *  Brand Logo v5 · Modern Clean
 *  - Icon: sakura icon + 柔和粉色阴影
 *  - Name: PingFang Bold · 玫红→酒红渐变 · 紧凑字距
 *  - 干净利落，无副标无装饰
 * ============================================================ */
.vh-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  text-decoration:none;
}
.vh-mark{
  width:38px;
  height:38px;
  flex-shrink:0;
  filter:drop-shadow(0 4px 12px rgba(236,210,150,.36));
  transition:transform .4s cubic-bezier(.34,1.56,.64,1),
             filter .3s ease;
}
.vh-mark svg{ width:38px; height:38px; display:block; }
.vh-brand:hover .vh-mark{
  transform:rotate(-8deg) scale(1.08);
  filter:drop-shadow(0 6px 16px rgba(236,210,150,.55));
}

.vh-brand__name{
  font-family:"PingFang SC","HarmonyOS Sans SC","Hiragino Sans GB",
              "Microsoft YaHei",-apple-system,"SF Pro Display",sans-serif;
  font-size:21px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1;
  white-space:nowrap;
  background:linear-gradient(135deg,
    #d9ad3f 0%,        /* 玫红 */
    #9a7409 40%,       /* 深玫瑰 */
    #0a6d32 75%,       /* 深酒红 */
    #074822 100%);     /* 深红木 */
  -webkit-background-clip:text;
          background-clip:text;
  -webkit-text-fill-color:transparent;
  transition:letter-spacing .3s ease;
}
.vh-brand:hover .vh-brand__name{ letter-spacing:.05em; }

@media (max-width:520px){
  .vh-brand{ gap:9px; }
  .vh-mark, .vh-mark svg{ width:34px; height:34px; }
  .vh-brand__name{ font-size:18px; }
}

/* 搜索框（中央，铺占主轴） */
.vh-top__search{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 14px;
  height:38px;
  background:var(--vh-bg-soft);
  border:1px solid var(--vh-border);
  border-radius:var(--vh-rad-pill);
  color:var(--vh-text-3);
  cursor:pointer;
  transition:.18s var(--vh-ease);
}
.vh-top__search:hover{
  background:#fff;
  border-color:var(--vh-primary-l);
  box-shadow:0 0 0 3px var(--vh-primary-soft);
}
.vh-top__search-ic{
  flex-shrink:0;
  width:18px; height:18px;
  color:var(--vh-text-3);
  display:grid;
  place-items:center;
}
.vh-top__search-ic svg{ width:16px; height:16px; }
.vh-top__search-lbl{
  flex:1;
  font-size:13px;
  color:var(--vh-text-3);
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ============================================================
 *  Header Actions v3 · Premium Sakura + Gold VIP
 *  - VIP：金粉色胶囊 + 光泽扫动 + 王冠图标
 *  - 我的：粉边圆形头像 + hover 渐变光环
 * ============================================================ */
.vh-top__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  margin-left:auto;              /* 推到最右 */
}

/* —— 用户头像按钮 —— */
.vh-top__act{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  background:linear-gradient(135deg,#ffffff 0%,#f5fcf8 100%);
  border:1.5px solid rgba(236,210,150,.20);
  color:#6b7280;
  border-radius:50%;
  transition:all .28s cubic-bezier(.4,0,.2,1);
  text-decoration:none;
  box-shadow:0 1px 2px rgba(150,115,20,.05);
}
.vh-top__act:hover{
  border-color:transparent;
  color:#fff;
  background:linear-gradient(135deg,#f0d79f 0%,#9a7409 100%);
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(236,210,150,.4);
}
.vh-top__act-ic{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px; height:18px;
}
.vh-top__act-ic svg{ width:18px; height:18px; transition:.28s; }
.vh-top__act-lbl{ display:none; }
.vh-top__act:hover .vh-top__act-ic svg{ transform:scale(1.1); }

/* —— VIP 金色胶囊 · 闪光扫动 —— */
.vh-top__act--vip{
  width:auto;
  padding:0 14px 0 11px;
  height:34px;
  background:linear-gradient(135deg,#fde68a 0%,#FCD34D 35%,#F59E0B 75%,#cea63a 110%);
  background-size:200% 100%;
  background-position:0% 0%;
  color:#7c2d12;
  border:0;
  border-radius:9999px;
  font-weight:800;
  font-size:12px;
  letter-spacing:.10em;
  white-space:nowrap;
  overflow:hidden;
  box-shadow:
    0 4px 14px rgba(245,158,11,.36),
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -1px 0 rgba(124,45,18,.08);
}
/* 光泽扫动动画 */
.vh-top__act--vip::before{
  content:"";
  position:absolute;
  top:0; left:-60%;
  width:60%;
  height:100%;
  background:linear-gradient(115deg,
    transparent 0%,
    rgba(255,255,255,.55) 50%,
    transparent 100%);
  transform:skewX(-22deg);
  transition:left .9s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.vh-top__act--vip:hover::before{ left:160%; }
.vh-top__act--vip:hover{
  background-position:100% 0%;
  color:#7c2d12;
  transform:translateY(-2px);
  border-color:transparent;
  box-shadow:
    0 8px 22px rgba(245,158,11,.5),
    inset 0 1px 0 rgba(255,255,255,.5);
}
.vh-top__act--vip .vh-top__act-ic{
  width:13px; height:13px;
  color:#7c2d12;
  position:relative;
  z-index:1;
}
.vh-top__act--vip .vh-top__act-ic svg{ width:13px; height:13px; }
.vh-top__act--vip .vh-top__act-lbl{
  display:inline;
  position:relative;
  z-index:1;
  margin-left:5px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.10em;
  color:#7c2d12;
}
.vh-top__act--vip:hover .vh-top__act-ic svg{ transform:scale(1.15) rotate(-4deg); }

/* —— 首页顶栏 · 最近更新 / 排行榜 胶囊 —— */
.vh-top__act--pill{
  width:auto;
  padding:0 13px 0 10px;
  height:34px;
  border-radius:9999px;
  gap:6px;
  overflow:hidden;
  white-space:nowrap;
}
.vh-top__act--pill .vh-top__act-ic{
  width:14px;
  height:14px;
  position:relative;
  z-index:1;
}
.vh-top__act--pill .vh-top__act-ic svg{ width:14px; height:14px; }
.vh-top__act--pill .vh-top__act-lbl{
  display:inline;
  position:relative;
  z-index:1;
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
}
.vh-top__act--recent{
  background:linear-gradient(135deg,#f5fcf8 0%,#e6f7ed 45%,#bdead0 100%);
  border:1.5px solid rgba(236,210,150,.28);
  color:#0a6f34;
  box-shadow:0 3px 12px rgba(236,210,150,.18), inset 0 1px 0 rgba(255,255,255,.65);
}
.vh-top__act--recent:hover{
  color:#fff;
  background:linear-gradient(135deg,#f0d79f 0%,#9a7409 100%);
  border-color:transparent;
  box-shadow:0 8px 20px rgba(236,210,150,.38);
}
.vh-top__act--rank{
  background:linear-gradient(135deg,#fde68a 0%,#FCD34D 40%,#F59E0B 100%);
  border:0;
  color:#7c2d12;
  box-shadow:
    0 4px 14px rgba(245,158,11,.30),
    inset 0 1px 0 rgba(255,255,255,.45);
}
.vh-top__act--rank::before{
  content:"";
  position:absolute;
  top:0; left:-60%;
  width:60%;
  height:100%;
  background:linear-gradient(115deg, transparent 0%, rgba(255,255,255,.50) 50%, transparent 100%);
  transform:skewX(-22deg);
  transition:left .9s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
.vh-top__act--rank:hover::before{ left:160%; }
.vh-top__act--rank:hover{
  color:#7c2d12;
  background:linear-gradient(135deg,#fde68a 0%,#F59E0B 55%,#cea63a 110%);
  border-color:transparent;
  box-shadow:0 8px 22px rgba(245,158,11,.42);
}
@media (max-width:420px){
  .vh-top__act--pill{ padding:0 10px 0 8px; height:32px; gap:4px; }
  .vh-top__act--pill .vh-top__act-lbl{ font-size:11px; letter-spacing:.02em; }
}

/* ============================================================
 *  分类导航 v4 (Frosted White Tab · 白色提升 · 紧凑克制)
 *  - 激活态：纯白小圆角胶囊 + 极淡阴影做悬浮感
 *  - 普通态：暖灰文字 / hover 颜色提亮
 *  - 整体小一号、紧凑
 * ============================================================ */
.vh-topnav{
  position:relative;
  background:#f6f7fa;
  border-top:1px solid var(--vh-border-2);
  border-bottom:1px solid var(--vh-border-2);
}
.vh-topnav__track{
  display:flex;
  align-items:center;
  gap:2px;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:6px var(--vh-pad-x);
  max-width:1280px;
  margin:0 auto;
}
.vh-topnav__track::-webkit-scrollbar{ display:none; }

/* 普通项 · 暖灰文字，无边框无背景 */
.vh-topnav__item{
  position:relative;
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  color:#6b7488;
  font-size:13px;
  font-weight:500;
  letter-spacing:.02em;
  white-space:nowrap;
  text-decoration:none;
  border-radius:7px;
  transition:.18s var(--vh-ease);
}
.vh-topnav__item:hover{
  color:var(--vh-text);
  background:rgba(255,255,255,.55);
}

.vh-topnav__lbl{ display:inline-block; }

/* ============================================================
 *  激活态 · 白色提升 Tab
 * ============================================================ */
.vh-topnav__item.is-active{
  color:var(--vh-text);
  font-weight:600;
  background:#ffffff;
  box-shadow:
    0 1px 2px rgba(15,23,42,.05),
    0 2px 6px rgba(224,179,74,.10);
}

/* "首页"特殊默认色 · 与紫主题协调 */
.vh-topnav__item--home{
  color:var(--vh-primary);
  font-weight:600;
}
.vh-topnav__item--home:hover{ color:var(--vh-primary-d); }
.vh-topnav__item--home.is-active{
  color:var(--vh-text);
  font-weight:600;
}

/* 响应式微调 */
@media (max-width:520px){
  .vh-topnav__track{ padding:5px var(--vh-pad-x); }
  .vh-topnav__item{ padding:5px 10px; font-size:12.5px; }
}

/* ============================================================
 *  Banner strip (3张横排卡片 / 移动端横滑)
 * ============================================================ */
.vh-bnstrip{
  margin:14px 0 0;
  padding:0 var(--vh-pad-x);
  overflow:hidden;
}
.vh-bnstrip__track{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-bottom:2px;
}
.vh-bnstrip__track::-webkit-scrollbar{ display:none; }
.vh-bn{
  flex:0 0 88%;
  scroll-snap-align:center;
  position:relative;
  display:block;
  aspect-ratio:32/13;
  border-radius:var(--vh-rad-md);
  overflow:hidden;
  background:var(--vh-bg-soft);
  box-shadow:var(--vh-shadow);
  transition:.22s var(--vh-ease);
}
.vh-bn:hover{
  transform:translateY(-2px);
  box-shadow:var(--vh-shadow-md);
}
.vh-bn__img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vh-bn--bg{ background-size:cover; background-position:center; }

@media (min-width:768px){
  .vh-bnstrip__track{ gap:14px; }
  .vh-bn{ flex:0 0 calc((100% - 28px) / 3); }
}

/* ============================================================
 *  Marquee notice (轻量 · 浅紫调 · 横滑文字)
 * ============================================================ */
.vh-marquee{
  margin:12px var(--vh-pad-x) 0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 14px 7px 7px;
  background:linear-gradient(135deg,#fffdf7 0%,#fbf3de 100%);
  border:1px solid rgba(184,134,11,.20);
  border-radius:999px;
  box-shadow:
    0 6px 16px -10px rgba(184,134,11,.45),
    inset 0 1px 0 rgba(255,255,255,.75);
  overflow:hidden;
}
/* 左侧金色圆形喇叭徽章 */
.vh-marquee__icon{
  flex-shrink:0;
  display:grid;
  place-items:center;
  width:30px; height:30px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(135deg,#e6c489 0%,#e0b34a 45%,#b8860b 100%);
  box-shadow:
    0 3px 8px -2px rgba(184,134,11,.55),
    inset 0 1px 0 rgba(255,255,255,.5);
}
.vh-marquee__icon svg{ width:15px; height:15px; }
.vh-marquee__track{
  flex:1;
  overflow:hidden;
  position:relative;
  /* 两端渐隐,文字优雅滚入/滚出 */
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 26px), transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 26px), transparent 100%);
}
.vh-marquee__inner{
  display:inline-flex;
  white-space:nowrap;
  animation:vh-marquee var(--vh-marquee-dur, 30s) linear infinite;
  font-size:12.5px;
  color:#7a6326;
  font-weight:500;
}
.vh-marquee__inner > *{ padding-right:38px; }
/* 「新公告」金色小标签 */
.vh-marquee__inner b{
  display:inline-block;
  margin-right:9px;
  padding:1.5px 10px;
  border-radius:999px;
  background:linear-gradient(135deg,#e0b34a,#b8860b);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:0 2px 5px -2px rgba(184,134,11,.6);
}
@keyframes vh-marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* ============================================================
 *  Service block (尊享服务图标网格 · 紧凑无框)
 * ============================================================ */
.vh-svcblock{
  margin:14px 0 0;
  padding:0 var(--vh-pad-x);
}
.vh-svclist{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:14px 8px;
}
@media (min-width:600px){ .vh-svclist{ grid-template-columns:repeat(7, 1fr); } }
@media (min-width:900px){ .vh-svclist{ grid-template-columns:repeat(10, 1fr); } }
@media (min-width:1200px){ .vh-svclist{ grid-template-columns:repeat(12, 1fr); } }

/* —— 分类页 / 播放页专属：固定 5 列 · 居中 · 紧凑 gap（与首页那条多图标横条不同）—— */
.vh-svcblock--cat .vh-svclist{
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:12px 6px;
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
}
@media (min-width:600px){  .vh-svcblock--cat .vh-svclist{ grid-template-columns:repeat(5, minmax(0, 1fr)); } }
@media (min-width:900px){  .vh-svcblock--cat .vh-svclist{ grid-template-columns:repeat(5, minmax(0, 1fr)); gap:14px 8px; } }
@media (min-width:1200px){ .vh-svcblock--cat .vh-svclist{ grid-template-columns:repeat(5, minmax(0, 1fr)); gap:14px 10px; } }
@media (max-width:560px){
  .vh-svcblock--cat .vh-svclist{ grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px 4px; }
}

.vh-svc{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-decoration:none;
  transition:.18s var(--vh-ease);
}
.vh-svc__icon{
  width:100%;
  max-width:60px;
  aspect-ratio:1/1;
  border-radius:var(--vh-rad);
  overflow:hidden;
  background:var(--vh-bg-soft);
  box-shadow:var(--vh-shadow-sm);
  display:grid;
  place-items:center;
  transition:.2s var(--vh-ease);
}
.vh-svc__icon img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.vh-svc:hover{ transform:translateY(-2px); }
.vh-svc:hover .vh-svc__icon{ box-shadow:var(--vh-shadow-md); }
.vh-svc__label{
  font-size:11px;
  color:var(--vh-text-2);
  text-align:center;
  line-height:1.3;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* 文字图标（备用 — 当 icon 字段不是图片 URL 时） */
.vh-svc__txt-ic{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--vh-primary) 0%,var(--vh-primary-d) 100%);
  color:#fff;
  font-weight:800;
  font-size:15px;
  letter-spacing:.02em;
}
.vh-svc__txt-ic--n1{ font-size:11px; }
.vh-svc__txt-ic--n2{ font-size:9.5px; letter-spacing:0; }
.vh-svc__txt-ic--solo{ font-size:17px; }
.vh-svc__txt-ic span{ display:block; }

/* 图标变体 — img: 真图标 / mono: 文字图标 */
.vh-svc--img .vh-svc__icon{ background:transparent; box-shadow:none; }
.vh-svc--mono .vh-svc__icon{ background:transparent; box-shadow:0 4px 10px rgba(224,179,74,.20); }

.vh-svc-empty{
  padding:24px 16px;
  background:var(--vh-bg-soft);
  border:1px dashed var(--vh-border);
  border-radius:var(--vh-rad);
  color:var(--vh-text-3);
  font-size:13px;
  text-align:center;
}

/* ============================================================
 *  Pill cloud (紫色实心胶囊云 — 配合 vh-svc--pill 或独立块)
 *  - 兼容： .vh-pill-cloud > .vh-pill
 *  - 同时为 .vh-svc--tag 变体提供胶囊样式
 * ============================================================ */
.vh-pill-cloud{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:14px var(--vh-pad-x) 0;
}
.vh-pill,
.vh-svc--pill{
  display:inline-flex;
  align-items:center;
  padding:8px 16px;
  background:linear-gradient(135deg,var(--vh-primary) 0%,var(--vh-primary-d) 100%);
  color:#fff;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  border-radius:var(--vh-rad-pill);
  text-decoration:none;
  box-shadow:0 2px 6px rgba(224,179,74,.25);
  transition:.18s var(--vh-ease);
}
.vh-pill:hover,
.vh-svc--pill:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(224,179,74,.40);
}

/* ============================================================
 *  Section header
 * ============================================================ */
.vh-section{
  margin-top:var(--vh-section-gap);
  padding:0 var(--vh-pad-x);
}
/* ----- Section header v3 · Editorial Premium ----- */
.vh-sec-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.vh-sec-head__l{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
  position:relative;
  padding-left:16px;
}
/* 左侧渐变竖条 — 三色更显眼 */
.vh-sec-head__l::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:8px;
  width:4px;
  border-radius:9999px;
  background:linear-gradient(180deg, #ecd9a0 0%, #e0b34a 52%, #c8a15e 100%);
  box-shadow:0 0 10px rgba(224,179,74,.30);
}
.vh-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--vh-primary);
  margin-bottom:3px;
}
/* eyebrow 后面跟一段渐变装饰线 */
.vh-eyebrow::after{
  content:"";
  flex-shrink:0;
  width:28px;
  height:1.5px;
  border-radius:1px;
  background:linear-gradient(90deg, currentColor 0%, transparent 100%);
}
.vh-eyebrow--gold{ color:var(--vh-warning); }
.vh-sec-head__title{
  margin:0;
  font-size:21px;
  font-weight:800;
  color:var(--vh-text);
  letter-spacing:-.015em;
  line-height:1.18;
}
.vh-sec-head__sub{
  margin:3px 0 0;
  font-size:12px;
  color:#8b9a90;
  letter-spacing:.04em;
}

/* —— 更多按钮 v3 · 文字 + 圆形渐变箭头胶囊 —— */
.vh-sec-head__more{
  position:relative;
  flex:0 0 auto !important;
  flex-shrink:0 !important;
  width:auto;
  min-width:fit-content;
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  padding:5px 5px 5px 16px;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  color:#475569;
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  white-space:nowrap !important;     /* 强制不换行 */
  word-break:keep-all !important;    /* CJK 字符也不拆分 */
  line-height:1;
  border:1px solid rgba(224,179,74,.18);
  border-radius:9999px;
  text-decoration:none;
  transition:all .28s cubic-bezier(.4,0,.2,1);
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.vh-sec-head__more > span{
  display:inline-block;
  white-space:nowrap !important;     /* 三保险 */
  word-break:keep-all !important;
  line-height:1;
}
.vh-sec-head__more > svg{
  flex-shrink:0 !important;
  width:12px !important;
  height:12px !important;
  min-width:12px;
  max-width:12px;                    /* 防止 SVG 暴涨 */
  padding:6px;
  box-sizing:content-box;
  border-radius:50%;
  background:linear-gradient(135deg, #faf3df 0%, #efe0b4 100%);
  color:#b8860b;
  transition:all .28s cubic-bezier(.4,0,.2,1);
}
.vh-sec-head__more:hover{
  background:#fff;
  border-color:rgba(224,179,74,.42);
  color:#b8860b;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(224,179,74,.18);
}
.vh-sec-head__more:hover > svg{
  background:linear-gradient(135deg, #b8860b 0%, #cea63a 100%);
  color:#fff;
  transform:translateX(3px);
  box-shadow:0 6px 14px rgba(224,179,74,.45);
}
.vh-sec-head__more:active{ transform:translateY(0); }

/* 窄屏：标题略缩，More 按钮保持精致 */
@media (max-width:520px){
  .vh-sec-head{ margin-bottom:14px; gap:10px; }
  .vh-sec-head__l{ padding-left:13px; }
  .vh-sec-head__l::before{ width:3px; top:13px; bottom:6px; }
  .vh-sec-head__title{ font-size:17px; }
  .vh-sec-head__sub{ font-size:11.5px; }
  .vh-eyebrow{ font-size:9.5px; letter-spacing:.18em; gap:8px; }
  .vh-eyebrow::after{ width:20px; }
  .vh-sec-head__more{
    padding:4px 4px 4px 13px;
    font-size:11px;
    gap:6px;
    letter-spacing:.04em;
  }
  .vh-sec-head__more > svg{ width:10px; height:10px; padding:5px; }
}

/* ============================================================
 *  Horizontal rail (posters)
 * ============================================================ */
.vh-rail{
  overflow:hidden;
  margin:0 calc(-1 * var(--vh-pad-x));
  padding:4px 0;
}
.vh-rail__inner{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:0 var(--vh-pad-x) 4px;
}
.vh-rail__inner::-webkit-scrollbar{ display:none; }
.vh-poster{
  flex:0 0 44%;
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  text-decoration:none;
  transition:.22s var(--vh-ease);
}
.vh-rail--wide .vh-poster{ flex:0 0 60%; }
@media (min-width:600px){
  .vh-poster{ flex:0 0 28%; }
  .vh-rail--wide .vh-poster{ flex:0 0 38%; }
}
@media (min-width:900px){
  .vh-poster{ flex:0 0 22%; }
  .vh-rail--wide .vh-poster{ flex:0 0 28%; }
}
@media (min-width:1200px){
  .vh-poster{ flex:0 0 17%; }
  .vh-rail--wide .vh-poster{ flex:0 0 22%; }
}

.vh-poster__cover{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border-radius:var(--vh-rad);
  overflow:hidden;
  background:var(--vh-bg-softer);
  box-shadow:var(--vh-shadow);
  transition:.22s var(--vh-ease);
}
.vh-poster:hover{ transform:translateY(-3px); }
.vh-poster:hover .vh-poster__cover{ box-shadow:var(--vh-shadow-md); }
.vh-poster__cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.4s var(--vh-ease);
}
.vh-poster:hover .vh-poster__cover img{ transform:scale(1.04); }

/* VIP 海报变体 — 淡紫边框 + 角标 */
.vh-poster--vip .vh-poster__cover{
  box-shadow:0 4px 16px rgba(224,179,74,.18), 0 0 0 2px var(--vh-primary-soft);
}
.vh-poster--vip:hover .vh-poster__cover{
  box-shadow:0 8px 24px rgba(224,179,74,.32), 0 0 0 2px var(--vh-primary-l);
}
.vh-poster__new,
.vh-poster__quality,
.vh-poster__gilt{
  position:absolute;
  top:8px;
  left:8px;
  z-index:2;
  padding:2px 7px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  border-radius:var(--vh-rad-xs);
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.vh-poster__new{ background:var(--vh-new); }
.vh-poster__quality{ background:linear-gradient(135deg,#f59e0b,#d97706); }
.vh-poster__gilt{
  background:linear-gradient(135deg,var(--vh-primary) 0%,var(--vh-primary-d) 100%);
}
.vh-poster__cat{
  position:absolute;
  bottom:8px;
  right:8px;
  z-index:2;
  padding:2px 7px;
  font-size:10px;
  font-weight:600;
  letter-spacing:.02em;
  border-radius:var(--vh-rad-xs);
  color:#fff;
  background:rgba(45,55,72,.72);
  backdrop-filter:blur(6px);
}
.vh-poster__brackets{ display:none; }
.vh-poster__meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 2px 0;
}
.vh-poster__title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:13px;
  font-weight:600;
  color:var(--vh-text);
  line-height:1.35;
}

/* ============================================================
 *  Ad banners (横幅广告位 · 推广合作)
 *  - 移动端：1 列、紧凑薄条 (≈ 5:1)，stack 紧贴
 *  - 平板：2 列、稍方一点 (≈ 7:2)
 *  - 桌面：2 列、最舒适 (16:5)
 *  - "广告" 角标：右上角小胶囊
 *  - 紧跟吸顶头部时（如分类页）：留一点点呼吸空间
 * ============================================================ */
.vh-headerstack + .vh-section--ads,
.vh-top + .vh-section--ads{ margin-top:10px; }
@media (min-width:600px){
  .vh-headerstack + .vh-section--ads,
  .vh-top + .vh-section--ads{ margin-top:12px; }
}
.vh-section--ads .vh-sec-head{ margin-bottom:10px; }

.vh-adgrid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-radius:8px;
  overflow:hidden;
}
@media (min-width:760px){
  .vh-adgrid{ grid-template-columns:1fr 1fr; gap:0; border-radius:12px; }
}

.vh-adcard{
  position:relative;
  display:block;
  width:100%;
  border-radius:0;
  overflow:hidden;
  background:var(--vh-bg-softer);
  transition:.22s var(--vh-ease);
  text-decoration:none;
}
.vh-adcard:hover{ filter:brightness(1.04); }
.vh-adcard:active{ filter:brightness(.96); }

/* —— 纯渐变 + 文字卡片（无图）：固定比例薄条 —— */
.vh-adcard--bg{ aspect-ratio:5/1; }
@media (min-width:600px){ .vh-adcard--bg{ aspect-ratio:7/2; } }
@media (min-width:760px){ .vh-adcard--bg{ aspect-ratio:16/5; } }

/* —— 有图片卡片：随图片原始比例显示，不裁切 —— */
.vh-adcard--img{ aspect-ratio:auto; background:transparent; }
.vh-adcard__img{
  display:block;
  width:100%;
  height:auto;
}

.vh-adcard__txt{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  color:#ffffff;
  text-shadow:0 1px 4px rgba(0,0,0,.18);
  text-align:center;
}
@media (min-width:760px){
  .vh-adcard__txt{ padding:0 18px; font-size:16px; }
}

.vh-adcard__badge{
  position:absolute;
  top:5px;
  right:5px;
  padding:1px 6px;
  font-size:9px;
  font-weight:600;
  letter-spacing:.04em;
  color:#ffffff;
  background:rgba(15,23,42,.55);
  backdrop-filter:saturate(140%) blur(6px);
  -webkit-backdrop-filter:saturate(140%) blur(6px);
  border-radius:999px;
  line-height:1.4;
  pointer-events:none;
  z-index:2;
}
@media (min-width:760px){
  .vh-adcard__badge{ top:8px; right:8px; padding:2px 8px; font-size:10px; }
}

/* ============================================================
 *  Premium grid (热门片单 · 视频卡片网格)
 *  统一约束所有视频卡：
 *    - 网格行高自适应，但每张卡内部封面强锁 16:9
 *    - 封面盒子用 aspect-ratio + padding-bottom 双保险
 *    - 图片用绝对定位填充，杜绝自带宽高样式撑开盒子
 *    - 标题永远占 2 行高度，让所有卡视觉对齐
 * ============================================================ */
.vh-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
  align-items:start;       /* 防止网格行高把短卡片拉伸 */
}
@media (min-width:600px){ .vh-grid{ grid-template-columns:repeat(3, 1fr); gap:14px; } }
@media (min-width:900px){ .vh-grid{ grid-template-columns:repeat(4, 1fr); } }
@media (min-width:1200px){ .vh-grid{ grid-template-columns:repeat(5, 1fr); gap:16px; } }

.vh-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  text-decoration:none;
  transition:.22s var(--vh-ease);
  align-self:start;
  min-width:0;             /* 防止超长标题撑破网格列宽 */
}
.vh-card__cover{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border-radius:var(--vh-rad);
  overflow:hidden;
  background:var(--vh-bg-softer);
  box-shadow:var(--vh-shadow);
  transition:.22s var(--vh-ease);
}
.vh-card:hover{ transform:translateY(-2px); }
.vh-card:hover .vh-card__cover{ box-shadow:var(--vh-shadow-md); }
/* 封面图：绝对定位 + 100% 填充，杜绝图片自带 width/height/style 把卡撑高
 * 同时用 max-width / max-height 双重兜底，
 * 即便上游模板写死 inline 尺寸也不会破坏布局 */
.vh-card__cover img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:cover;
  display:block;
  transition:.4s var(--vh-ease);
}
.vh-card:hover .vh-card__cover img{ transform:scale(1.04); }
/* 老浏览器没有 aspect-ratio 时，用 padding-bottom 兜底 16:9 */
@supports not (aspect-ratio: 1){
  .vh-card__cover{ height:0; padding-bottom:56.25%; }
}
/* NEW 角标 v2 · 红色火焰胶囊 + 闪光脉冲 */
.vh-card__new{
  position:absolute;
  top:7px;
  left:7px;
  z-index:2;
  padding:2px 8px 2px 7px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.6;
  color:#fff;
  background:linear-gradient(135deg,#ff3b5c 0%,#e11d48 60%,#be123c 100%);
  border-radius:3px 9px 9px 3px;             /* 不对称胶囊：左方右圆 = 旗帜感 */
  box-shadow:
    0 2px 6px rgba(225,29,72,.42),
    inset 0 1px 0 rgba(255,255,255,.32);
  text-shadow:0 1px 0 rgba(127,29,29,.25);
  overflow:hidden;
}
/* 顶角的小高光 */
.vh-card__new::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,transparent 100%);
  pointer-events:none;
}
/* 右上角小亮点（闪烁脉冲）*/
.vh-card__new::after{
  content:"";
  position:absolute;
  top:2px;
  right:3px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 6px rgba(255,255,255,.85);
  animation:vh-new-pulse 1.8s ease-in-out infinite;
}
@keyframes vh-new-pulse{
  0%, 100% { opacity:.45; transform:scale(.85); }
  50%      { opacity:1;   transform:scale(1.15); }
}
.vh-card__cat{
  position:absolute;
  bottom:8px;
  right:8px;
  z-index:2;
  padding:2px 7px;
  font-size:10px;
  font-weight:600;
  border-radius:var(--vh-rad-xs);
  color:#fff;
  background:rgba(45,55,72,.72);
  backdrop-filter:blur(6px);
}
.vh-card__body{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:0 2px;
}
.vh-card__title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:13px;
  font-weight:600;
  color:var(--vh-text);
  line-height:1.35;
  /* 始终预留两行高度，保证所有卡片视觉对齐（不会出现高高低低） */
  min-height:calc(1.35em * 2);
  word-break:break-all;
  overflow-wrap:anywhere;
}

/* ============================================================
 *  Footer
 * ============================================================ */
.vh-foot{
  margin-top:var(--vh-section-gap);
  padding:24px var(--vh-pad-x);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:var(--vh-text-3);
  font-size:12px;
}
.vh-foot__rule{
  width:32px;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--vh-primary),transparent);
  border-radius:2px;
}
.vh-foot__brand{
  font-size:14px;
  font-weight:700;
  color:var(--vh-primary);
  letter-spacing:.04em;
}
.vh-foot__tag{
  font-size:11px;
  color:var(--vh-text-4);
  letter-spacing:.04em;
}

/* ============================================================
 *  Search overlay
 * ============================================================ */
.vh-searchov{
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(45,55,72,.55);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  display:none;
  flex-direction:column;
  padding:0;
}
.vh-searchov.is-open{
  display:flex;
  animation:vh-search-in .22s var(--vh-ease);
}
@keyframes vh-search-in{
  from{ opacity:0; }
  to{ opacity:1; }
}
.vh-searchov__bar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px var(--vh-pad-x);
  background:var(--vh-bg);
  border-bottom:1px solid var(--vh-border);
}
.vh-searchov__form{
  flex:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 14px;
  height:40px;
  background:var(--vh-bg-soft);
  border:1px solid var(--vh-border);
  border-radius:var(--vh-rad-pill);
}
.vh-searchov__form:focus-within{
  background:#fff;
  border-color:var(--vh-primary);
  box-shadow:0 0 0 3px var(--vh-primary-soft);
}
.vh-searchov__form svg{ width:18px; height:18px; color:var(--vh-text-3); flex-shrink:0; }
.vh-searchov__input{
  flex:1;
  min-width:0;
  border:0;
  background:transparent;
  outline:0;
  font:inherit;
  font-size:14px;
  color:var(--vh-text);
}
.vh-searchov__input::placeholder{ color:var(--vh-text-4); }
.vh-searchov__submit{
  border:0;
  background:linear-gradient(135deg,var(--vh-primary) 0%,var(--vh-primary-d) 100%);
  color:#fff;
  padding:6px 14px;
  border-radius:var(--vh-rad-pill);
  font-size:12px;
  font-weight:700;
  transition:.18s var(--vh-ease);
}
.vh-searchov__submit:hover{ box-shadow:0 4px 12px rgba(224,179,74,.40); }
.vh-searchov__close{
  border:0;
  background:transparent;
  color:var(--vh-text-2);
  font-size:14px;
  font-weight:500;
  padding:6px 10px;
}
.vh-searchov__close:hover{ color:var(--vh-primary); }
.vh-searchov__hot{
  padding:18px var(--vh-pad-x);
  background:var(--vh-bg);
  flex:1;
  overflow-y:auto;
}
.vh-searchov__hot-t{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--vh-text-3);
  margin-bottom:12px;
}
.vh-searchov__hot-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.vh-searchov__hot-list a{
  display:inline-flex;
  align-items:center;
  padding:6px 14px;
  background:var(--vh-bg-soft);
  border:1px solid var(--vh-border);
  border-radius:var(--vh-rad-pill);
  font-size:12.5px;
  color:var(--vh-text-2);
  text-decoration:none;
  transition:.18s var(--vh-ease);
}
.vh-searchov__hot-list a:hover{
  background:var(--vh-primary-soft);
  border-color:var(--vh-primary-l);
  color:var(--vh-primary);
}

/* ============================================================
 *  Print
 * ============================================================ */
@media print{
  .vh-promo,.vh-searchov,.vh-top__actions{ display:none !important; }
  .vh-app{ padding:0 !important; }
}

/* ============================================================
 *  Accessibility
 * ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
:focus-visible{
  outline:2px solid var(--vh-primary);
  outline-offset:2px;
}

/* ============================================================
 *  Category Page (list_page)
 *  设计原则：完全复用首页同一套 vh-section / vh-sec-head / vh-grid / vh-card
 *  本节只新增「面包屑 / 子分类胶囊 / 排序栏 / 分页」四组件
 * ============================================================ */

/* —— 紧凑面包屑（页面级，不再包在 hero 内） —— */
.vh-crumb{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  font-size:12px;
  color:var(--vh-text-3);
}
.vh-crumb--page{
  margin:14px var(--vh-pad-x) 0;
}
.vh-crumb a{
  color:var(--vh-text-3);
  text-decoration:none;
  padding:2px 4px;
  border-radius:4px;
  transition:.18s var(--vh-ease);
}
.vh-crumb a:hover{ color:#9a7409; background:rgba(236,210,150,.08); }
.vh-crumb__sep{ color:var(--vh-text-4); font-weight:500; }
.vh-crumb__cur{ color:var(--vh-text); font-weight:600; padding:2px 4px; }

/* ============================================================
 *  Floating bottom ad v2 · 高端霜玻璃通知卡（vh-floatad）
 *  设计语言：
 *    - 半透明白色玻璃 + 24px 模糊 + 175% 饱和度（Apple Notification 风）
 *    - 外圈柔光 + 1px 渐变描边 + 多层投影制造"悬浮在屏幕上方"的物理感
 *    - 左侧 48×48 圆角缩略图（带细微反光描边）
 *    - 中间 2 行文字：粗黑标题 + 灰色描述
 *    - 右侧渐变胶囊 CTA（hover 时拉长 + 阴影加深）
 *    - 底部小指示点 · 自动呼吸；可点切换
 *    - 右上角 hover 才显形的极简关闭叉
 *  入场：bottom 反弹回到位 + 淡入；退场：缩小 + 淡出
 * ============================================================ */
.vh-floatad{
  position:fixed;
  left:50%;
  bottom:14px;
  transform:translate(-50%, calc(100% + 20px)) scale(.96);
  width:calc(100% - 20px);
  max-width:560px;
  z-index:80;
  display:flex;
  align-items:stretch;
  padding:10px 12px;
  gap:0;
  border-radius:22px;
  background:rgba(255,255,255,.78);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  backdrop-filter:saturate(180%) blur(24px);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,           /* 顶部高光 */
    0 -1px 0 rgba(255,255,255,.4) inset,          /* 底部高光 */
    0 24px 56px -16px rgba(150,115,20,.22),       /* 主投影：带品牌粉色 */
    0 12px 28px -12px rgba(15,36,23,.22),         /* 中层投影 */
    0 4px 10px rgba(15,36,23,.08);                /* 近层投影 */
  opacity:0;
  transition:transform .55s cubic-bezier(.22,1.2,.36,1), opacity .4s var(--vh-ease);
  isolation:isolate;
  will-change:transform, opacity;
}
.vh-floatad.is-visible{ transform:translate(-50%, 0) scale(1); opacity:1; }
.vh-floatad.is-closing{ transform:translate(-50%, 20px) scale(.92); opacity:0; pointer-events:none; }
@media (min-width:600px){
  .vh-floatad{ bottom:22px; max-width:640px; padding:12px 14px; border-radius:24px; }
}

/* 流光描边（极淡、慢速旋转） */
.vh-floatad__aurora{
  position:absolute;
  inset:-1px;
  z-index:-1;
  border-radius:inherit;
  background:conic-gradient(from 0deg,
    rgba(236,210,150,0) 0%,
    rgba(236,210,150,.55) 18%,
    rgba(120,210,160,.55) 38%,
    rgba(236,210,150,0) 58%,
    rgba(162,224,189,.5) 78%,
    rgba(236,210,150,0) 100%);
  filter:blur(8px);
  opacity:.55;
  animation:vh-floatad-aurora 9s linear infinite;
  pointer-events:none;
}
@keyframes vh-floatad-aurora{
  to{ transform:rotate(360deg); }
}

/* 多 slide 叠在同一个 stage 内 */
.vh-floatad__stage{
  position:relative;
  flex:1;
  min-width:0;
  min-height:48px;
}
.vh-floatad__slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:inherit;
  opacity:0;
  pointer-events:none;
  transform:translateY(6px);
  transition:opacity .45s var(--vh-ease), transform .45s var(--vh-ease);
}
.vh-floatad__slide.is-active{ opacity:1; pointer-events:auto; transform:translateY(0); }

/* 左侧缩略图 · 48×48 圆角带反光 */
.vh-floatad__thumb{
  flex-shrink:0;
  position:relative;
  width:48px;
  height:48px;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(135deg,#e0b34a,#9a7409);
  display:grid;
  place-items:center;
  color:#fff;
  box-shadow:0 4px 10px -2px rgba(150,115,20,.32), 0 0 0 1px rgba(255,255,255,.45) inset;
}
.vh-floatad__thumb img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.vh-floatad__thumb svg{ width:20px; height:20px; opacity:.96; }
.vh-floatad__thumb::after{                       /* 顶部细高光 */
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.32) 0%, transparent 50%);
  pointer-events:none;
}
@media (min-width:600px){
  .vh-floatad__thumb{ width:52px; height:52px; border-radius:15px; }
}

/* 中间文字区 */
.vh-floatad__body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}
.vh-floatad__title{
  font-size:14px;
  font-weight:700;
  letter-spacing:-.005em;
  color:#1f2937;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vh-floatad__sub{
  font-size:11.5px;
  font-weight:500;
  color:#6b7280;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (min-width:600px){
  .vh-floatad__title{ font-size:15px; }
  .vh-floatad__sub{ font-size:12.5px; }
}

/* 右侧 CTA 胶囊 */
.vh-floatad__cta{
  flex-shrink:0;
  align-self:center;
  display:inline-flex;
  align-items:center;
  gap:5px;
  height:34px;
  padding:0 14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.01em;
  color:#fff;
  background:linear-gradient(135deg,#b8860b 0%,#a67c0a 100%);
  border-radius:999px;
  box-shadow:0 6px 16px -4px rgba(150,115,20,.55), 0 2px 4px rgba(150,115,20,.25), 0 0 0 1px rgba(255,255,255,.18) inset;
  transition:.22s var(--vh-ease);
  white-space:nowrap;
}
.vh-floatad__cta svg{ transition:transform .22s var(--vh-ease); }
.vh-floatad__slide:hover .vh-floatad__cta{
  box-shadow:0 10px 22px -4px rgba(150,115,20,.65), 0 3px 6px rgba(150,115,20,.3), 0 0 0 1px rgba(255,255,255,.22) inset;
  transform:translateY(-1px);
}
.vh-floatad__slide:hover .vh-floatad__cta svg{ transform:translateX(2px); }
.vh-floatad__slide:active .vh-floatad__cta{ transform:translateY(0) scale(.97); }

/* 关闭 X · 极简圆点 · hover 时显形 */
.vh-floatad__close{
  position:absolute;
  top:6px;
  right:6px;
  z-index:4;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border:0;
  border-radius:50%;
  background:rgba(31,41,55,.08);
  color:#1f2937;
  cursor:pointer;
  opacity:.55;
  transition:.2s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-floatad__close:hover{
  opacity:1;
  background:rgba(31,41,55,.18);
  transform:scale(1.08);
}
.vh-floatad:hover .vh-floatad__close{ opacity:.85; }

/* 指示点 · 紧贴卡片底边 */
.vh-floatad__dots{
  position:absolute;
  left:50%;
  bottom:-12px;
  transform:translateX(-50%);
  display:flex;
  gap:5px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  box-shadow:0 4px 10px -2px rgba(15,36,23,.12), 0 0 0 1px rgba(255,255,255,.7) inset;
  z-index:3;
}
.vh-floatad__dot{
  width:6px;
  height:6px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(31,41,55,.22);
  cursor:pointer;
  transition:.22s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-floatad__dot:hover{ background:rgba(150,115,20,.5); }
.vh-floatad__dot.is-active{
  width:18px;
  border-radius:999px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  box-shadow:0 2px 6px -1px rgba(150,115,20,.5);
}

/* —— 电影封面广告卡（vh-card--ad）—— 与真实视频混排在 vh-grid 内 ——
 * 完全复用 .vh-card 的尺寸/圆角/悬停效果，仅追加：
 *   1) 右上角小「广告」灰胶囊（合规标识，hover 时弱化）
 *   2) 左上角自定义彩色 tag（VIP / 限时 / 促销 等）
 *   3) 无图时的紫色占位 + 居中标题
 */
.vh-card--ad{ position:relative; }
.vh-card--ad .vh-card__cover{
  background:linear-gradient(135deg,#e0b34a 0%,#e0b34a 60%,#b8860b 100%);
}
.vh-card--ad .vh-card__ad-badge{
  position:absolute;
  top:7px;
  right:7px;
  z-index:3;
  padding:1px 6px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.05em;
  color:#fff;
  background:rgba(0,0,0,.5);
  border-radius:4px;
  backdrop-filter:blur(4px);
  opacity:.78;
  pointer-events:none;
}
.vh-card--ad:hover .vh-card__ad-badge{ opacity:.5; }
.vh-card--ad .vh-card__poster-tag{
  position:absolute;
  top:8px;
  left:8px;
  z-index:2;
  padding:3px 10px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  color:#fff;
  border-radius:6px;
  box-shadow:0 2px 6px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.28);
}
.vh-card--ad .vh-card__ad-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:12px;
  font-size:13px;
  font-weight:700;
  color:#fff;
  letter-spacing:.04em;
  line-height:1.35;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}

/* —— 分类页横幅（放在 sec-head 与子分类之间） —— */
.vh-adgrid--cat{
  margin:0 0 14px;
  border-radius:var(--vh-rad);
  overflow:hidden;
  box-shadow:var(--vh-shadow);
}
.vh-adgrid--cat .vh-adcard{
  border-radius:0;
}

/* —— 子分类胶囊（放在 .vh-section 内，跟随 section 内边距对齐） —— */
.vh-catchips{
  margin:0 0 12px;
  overflow:hidden;
}
.vh-catchips__track{
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding:2px 2px 6px;
  scroll-snap-type:x proximity;
}
.vh-catchips__track::-webkit-scrollbar{ display:none; }
.vh-catchips__item{
  flex:0 0 auto;
  padding:7px 16px;
  font-size:13px;
  font-weight:500;
  color:var(--vh-text-2);
  background:var(--vh-bg);
  border:1px solid var(--vh-border);
  border-radius:var(--vh-rad-pill);
  text-decoration:none;
  letter-spacing:.02em;
  transition:.2s var(--vh-ease);
  scroll-snap-align:start;
}
.vh-catchips__item:hover{
  color:#9a7409;
  border-color:rgba(150,115,20,.32);
  background:rgba(236,210,150,.06);
}
.vh-catchips__item.is-active{
  color:#fff;
  background:linear-gradient(135deg,#e0b34a 0%,#9a7409 100%);
  border-color:transparent;
  box-shadow:0 3px 10px rgba(150,115,20,.28);
  font-weight:600;
}

/* —— 排序栏 —— */
.vh-catsort{
  margin:0 0 16px;
}
.vh-catsort__bar{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:4px;
  background:var(--vh-bg);
  border:1px solid var(--vh-border);
  border-radius:var(--vh-rad-pill);
  box-shadow:var(--vh-shadow-sm);
}
.vh-catsort__btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 14px;
  font-size:12.5px;
  font-weight:500;
  color:var(--vh-text-2);
  border-radius:var(--vh-rad-pill);
  text-decoration:none;
  letter-spacing:.02em;
  transition:.2s var(--vh-ease);
  white-space:nowrap;
}
.vh-catsort__btn svg{ width:13px; height:13px; opacity:.7; }
.vh-catsort__btn:hover{ color:#9a7409; background:rgba(236,210,150,.06); }
.vh-catsort__btn:hover svg{ opacity:1; }
.vh-catsort__btn.is-active{
  color:#fff;
  background:linear-gradient(135deg,#e0b34a 0%,#a67c0a 100%);
  box-shadow:0 2px 6px rgba(184,134,11,.32);
  font-weight:600;
}
.vh-catsort__btn.is-active svg{ opacity:1; }

/* —— 播放按钮悬停浮现（首页卡片也可享受到） —— */
.vh-card__play{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.5) 100%);
  opacity:0;
  transition:.25s var(--vh-ease);
  pointer-events:none;
  z-index:1;
}
.vh-card__play svg{
  width:42px;
  height:42px;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.5));
  transform:translateY(6px) scale(.9);
  transition:.3s var(--vh-ease);
}
.vh-card:hover .vh-card__play{ opacity:1; }
.vh-card:hover .vh-card__play svg{ transform:translateY(0) scale(1); }

/* 列表页 list_var 输出的小元数据 —— 默认不显示，保持首页同款简洁 */
.vh-card__meta{ display:none; }

/* ============================================================
 *  分页 v2 · 高端胶囊式翻页
 *  - 圆角药丸 + 柔光底
 *  - 当前页：粉红渐变 + 多层阴影
 *  - 首页/上一页/下一页/尾页：纯 SVG 箭头按钮（不带文字）
 *  - 1/2 当前页总数：独立"x · y"灰色胶囊
 *  - 鼠标悬停：上浮 1px + 渐变描边
 *  HTML 由 EmpireCMS 默认输出，JS 再清洗包装一层语义 class
 * ============================================================ */
.vh-pager{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin:32px 0 16px;
  font-size:13.5px;
  font-feature-settings:"tnum" 1;     /* 等宽数字 */
}
/* —— 单元基础样式：所有 a / b / span 公共底 —— */
.vh-pager a,
.vh-pager b,
.vh-pager strong,
.vh-pager > span:not(.vh-pager__total){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:38px;
  padding:0 13px;
  border-radius:12px;
  border:1px solid rgba(31,41,55,.08);
  background:linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
  color:var(--vh-text-2);
  font-weight:600;
  text-decoration:none;
  letter-spacing:.01em;
  box-shadow:0 1px 2px rgba(31,41,55,.04), 0 0 0 1px rgba(255,255,255,.6) inset;
  transition:.22s var(--vh-ease);
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.vh-pager a:hover{
  color:#9a7409;
  border-color:rgba(150,115,20,.32);
  background:linear-gradient(180deg, #fbf7ee 0%, #f3ecd9 100%);
  transform:translateY(-1px);
  box-shadow:0 4px 12px -2px rgba(150,115,20,.18), 0 0 0 1px rgba(255,255,255,.7) inset;
}
.vh-pager a:active{ transform:translateY(0); }
/* —— 当前页：粉红渐变 —— */
.vh-pager b,
.vh-pager .pagenow,
.vh-pager strong,
.vh-pager .vh-pager__cur{
  color:#fff;
  background:linear-gradient(135deg,#e0b34a 0%,#9a7409 60%,#8a6408 100%);
  border-color:transparent;
  font-weight:700;
  box-shadow:
    0 6px 16px -4px rgba(150,115,20,.5),
    0 2px 4px rgba(150,115,20,.22),
    0 0 0 1px rgba(255,255,255,.22) inset;
}
/* —— 箭头按钮（JS 处理后的纯图标按钮）—— */
.vh-pager a.vh-pager__nav{
  min-width:38px;
  padding:0;
}
.vh-pager a.vh-pager__nav svg{
  width:15px;
  height:15px;
  flex-shrink:0;
  transition:transform .22s var(--vh-ease);
}
.vh-pager a.vh-pager__nav:hover svg{ transform:translateX(1px); }
.vh-pager a.vh-pager__nav--first:hover svg,
.vh-pager a.vh-pager__nav--prev:hover svg{ transform:translateX(-1px); }
.vh-pager a.vh-pager__nav--disabled,
.vh-pager span.vh-pager__nav--disabled{
  opacity:.4;
  pointer-events:none;
  cursor:not-allowed;
}
/* —— 当前 / 总页数 chip —— */
.vh-pager .vh-pager__total{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:30px;
  padding:0 12px;
  border:0;
  border-radius:999px;
  background:linear-gradient(180deg,#f9fafb,#f3f4f6);
  color:var(--vh-text-3);
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0 1px rgba(31,41,55,.06);
  margin:0 4px;
}
.vh-pager .vh-pager__total b{
  all:unset;
  color:#9a7409;
  font-weight:800;
}
.vh-pager .vh-pager__total .sep{
  width:1px;
  height:10px;
  background:rgba(31,41,55,.14);
  display:inline-block;
}
/* —— 省略号 —— */
.vh-pager .vh-pager__dots{
  display:inline-flex;
  align-items:flex-end;
  justify-content:center;
  min-width:24px;
  height:38px;
  padding:0 4px;
  color:var(--vh-text-4);
  font-weight:700;
  letter-spacing:2px;
  background:transparent;
  border:0;
  box-shadow:none;
}
@media (max-width:520px){
  .vh-pager{ gap:5px; font-size:13px; margin:24px 0 12px; }
  .vh-pager a,
  .vh-pager b,
  .vh-pager strong,
  .vh-pager > span:not(.vh-pager__total){
    min-width:34px; height:34px; padding:0 10px; border-radius:10px;
  }
  .vh-pager a.vh-pager__nav{ min-width:34px; padding:0; }
  .vh-pager .vh-pager__total{ height:28px; padding:0 10px; font-size:11.5px; }
}

/* —— 空列表占位 —— */
.vh-grid:empty::after{
  content:"暂无内容，请稍后再来 ✿";
  grid-column:1/-1;
  display:block;
  padding:60px 20px;
  text-align:center;
  color:var(--vh-text-4);
  font-size:14px;
  letter-spacing:.04em;
}

/* ============================================================
 *  Show Page (内容页 · 视频播放页)
 *  vh-show-* 命名空间
 *  - 顶部：玻璃化封面背景 + 播放器 + 信息面板（双栏，桌面）
 *  - 中部：线路 tab + 选集网格
 *  - 底部：完整剧情 + 推荐网格
 * ============================================================ */
.vh-body--show{ background:#fafbff; }

/* —— 面包屑（独立行，与 list 页 vh-crumb 同款）—— */
.vh-show-crumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  padding:14px var(--vh-pad-x) 6px;
  font-size:12.5px; color:var(--vh-text-3);
}
.vh-show-crumb a{
  color:var(--vh-text-3); text-decoration:none;
  padding:2px 4px; border-radius:4px;
  transition:.18s var(--vh-ease);
}
.vh-show-crumb a:hover{ color:#9a7409; background:rgba(236,210,150,.08); }
.vh-show-crumb__sep{ color:var(--vh-text-4); font-weight:500; }
.vh-show-crumb__cur{ color:var(--vh-text); font-weight:600; max-width:50vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* —— Hero 容器 ——
 * 背景：当前作品封面 + 强模糊 + 渐变叠加（沉浸式影院风）
 * 内部：桌面双栏（播放器 60% / 信息 40%），移动端单列 */
.vh-show-hero{
  position:relative;
  margin:0 var(--vh-pad-x) var(--vh-section-gap);
  border-radius:18px;
  overflow:hidden;
  background:#0a0a14;
  isolation:isolate;
}
.vh-show-hero__bg{
  position:absolute; inset:0; z-index:-1;
  background-position:center; background-size:cover;
  filter:blur(28px) saturate(160%) brightness(.4);
  transform:scale(1.18);
  opacity:.85;
}
.vh-show-hero__bg::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,20,.4) 0%, rgba(10,10,20,.7) 100%);
}
.vh-show-hero__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  padding:18px;
}
@media (min-width:1024px){
  .vh-show-hero__inner{
    /* 信息面板已移除 → 播放器铺满整个 Hero（单列） */
    grid-template-columns:1fr;
    gap:0;
    padding:24px;
  }
}

/* —— 播放器外框 —— */
.vh-show-player{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  border-radius:14px;
  overflow:hidden;
  background:#000;
  box-shadow:0 20px 60px -16px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06);
}
.vh-show-player > video,
.vh-show-player > iframe,
.vh-show-player > .dplayer,
.vh-show-player > #vh-dplayer{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:0;
  display:block;
  background:#000;
}
.vh-show-player video{ object-fit:contain; }

/* 无可播放地址时的优雅占位 */
.vh-show-player__placeholder{
  position:absolute; inset:0;
  display:grid; place-items:center;
  padding:24px; text-align:center;
  color:#fff;
}
.vh-show-player__placeholder-bg{
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(135deg,#1f1d2b 0%,#17301f 60%,#103f26 100%);
}
.vh-show-player__placeholder-bg::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(236,210,150,.35), transparent 50%),
             radial-gradient(circle at 70% 80%, rgba(120,210,160,.3), transparent 50%);
}
.vh-show-player__placeholder svg{ width:56px; height:56px; opacity:.6; margin-bottom:14px; }
.vh-show-player__placeholder-t{ font-size:18px; font-weight:700; letter-spacing:.02em; }
.vh-show-player__placeholder-s{ margin-top:6px; font-size:13px; opacity:.7; }

/* —— 右侧信息面板 —— */
.vh-show-info{
  display:flex; flex-direction:column; gap:12px;
  color:#fff;
  align-self:start;
}
.vh-show-info__cat{
  display:inline-flex; align-items:center; gap:6px;
  align-self:flex-start;
  padding:4px 10px;
  font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase;
  background:rgba(236,210,150,.22);
  border:1px solid rgba(236,210,150,.4);
  border-radius:999px;
  color:#e2f6ea;
}
.vh-show-info__title{
  margin:0;
  font-size:24px; font-weight:800; line-height:1.2;
  letter-spacing:-.01em;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}
@media (min-width:1024px){ .vh-show-info__title{ font-size:28px; } }
.vh-show-info__meta{
  display:flex; flex-wrap:wrap; gap:6px 14px;
  font-size:13px; color:rgba(255,255,255,.78);
  font-weight:500;
}
.vh-show-info__meta b{
  color:#fff; font-weight:700;
  margin-right:2px;
}
.vh-show-info__score{
  display:inline-flex; align-items:baseline; gap:3px;
  padding:2px 9px;
  background:linear-gradient(135deg,#fbbf24 0%,#f59e0b 100%);
  color:#3a1f00;
  border-radius:6px;
  font-weight:800; font-size:12px;
  box-shadow:0 2px 6px -1px rgba(251,191,36,.5);
}
.vh-show-info__score b{ font-size:14px; }
.vh-show-info__tags{ display:flex; flex-wrap:wrap; gap:6px; }
.vh-show-info__tag{
  padding:3px 9px;
  font-size:11.5px; font-weight:600;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  border-radius:5px;
  color:rgba(255,255,255,.85);
  text-decoration:none;
}
.vh-show-info__tag:hover{ background:rgba(236,210,150,.18); border-color:rgba(236,210,150,.35); color:#fff; }
.vh-show-info__plot{
  margin:6px 0 0;
  font-size:13px; line-height:1.7;
  color:rgba(255,255,255,.78);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.vh-show-info__actions{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top:6px;
}
.vh-show-info__btn{
  display:inline-flex; align-items:center; gap:5px;
  height:36px; padding:0 14px;
  font-size:12.5px; font-weight:700;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  color:#fff;
  text-decoration:none; cursor:pointer;
  transition:.2s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-info__btn svg{ width:14px; height:14px; }
.vh-show-info__btn:hover{ background:rgba(255,255,255,.2); transform:translateY(-1px); }
.vh-show-info__btn--primary{
  background:linear-gradient(135deg,#e0b34a,#9a7409);
  border-color:transparent;
  box-shadow:0 6px 16px -4px rgba(150,115,20,.5);
}
.vh-show-info__btn--primary:hover{
  box-shadow:0 10px 22px -4px rgba(150,115,20,.65);
}
.vh-show-info__btn.is-active{
  background:linear-gradient(135deg,#fbbf24,#f59e0b);
  border-color:transparent;
  color:#3a1f00;
  box-shadow:0 4px 12px -2px rgba(245,158,11,.4);
}

/* —— 线路 + 选集 —— */
.vh-show-episodes{
  margin:0 var(--vh-pad-x) var(--vh-section-gap);
  padding:18px;
  background:var(--vh-bg);
  border-radius:16px;
  box-shadow:var(--vh-shadow);
}
.vh-show-episodes__head{
  display:flex; align-items:center; gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px dashed var(--vh-border);
}
.vh-show-episodes__title{
  font-size:15px; font-weight:700;
  color:var(--vh-text);
  display:inline-flex; align-items:center; gap:8px;
}
.vh-show-episodes__title::before{
  content:""; width:3px; height:14px; border-radius:2px;
  background:linear-gradient(180deg,#e0b34a,#9a7409);
}
.vh-show-episodes__count{
  font-size:12px; font-weight:500; color:var(--vh-text-4);
  margin-left:auto;
}
.vh-show-lines{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:14px;
}
.vh-show-line{
  display:inline-flex; align-items:center; gap:6px;
  height:32px; padding:0 14px;
  font-size:12.5px; font-weight:600;
  background:var(--vh-bg-soft);
  border:1px solid var(--vh-border);
  border-radius:8px;
  color:var(--vh-text-2);
  cursor:pointer;
  transition:.2s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-line:hover{
  color:#9a7409;
  border-color:rgba(150,115,20,.32);
  background:rgba(236,210,150,.06);
}
.vh-show-line.is-active{
  color:#fff;
  background:linear-gradient(135deg,#e0b34a,#9a7409);
  border-color:transparent;
  box-shadow:0 4px 10px -2px rgba(150,115,20,.4);
}
.vh-show-line__count{
  display:inline-block;
  min-width:18px; padding:0 5px;
  height:16px; line-height:16px;
  font-size:10px; font-weight:700;
  background:rgba(0,0,0,.08);
  border-radius:8px;
  text-align:center;
}
.vh-show-line.is-active .vh-show-line__count{ background:rgba(255,255,255,.25); }
.vh-show-eps{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(72px, 1fr));
  gap:8px;
}
.vh-show-ep{
  display:inline-flex; align-items:center; justify-content:center;
  height:38px; padding:0 8px;
  background:var(--vh-bg-soft);
  border:1px solid var(--vh-border);
  border-radius:8px;
  font-size:12.5px; font-weight:600;
  color:var(--vh-text-2);
  text-decoration:none; cursor:pointer;
  text-align:center;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  transition:.18s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-ep:hover{
  color:#9a7409;
  border-color:rgba(150,115,20,.4);
  background:rgba(236,210,150,.08);
  transform:translateY(-1px);
}
.vh-show-ep.is-active{
  color:#fff;
  background:linear-gradient(135deg,#e0b34a,#9a7409);
  border-color:transparent;
  box-shadow:0 4px 10px -1px rgba(150,115,20,.4);
}
.vh-show-eps__empty{
  grid-column:1/-1;
  text-align:center; padding:20px;
  color:var(--vh-text-4); font-size:13px;
}

/* —— 剧情简介 卡片 —— */
.vh-show-plotcard{
  margin:0 var(--vh-pad-x) var(--vh-section-gap);
  padding:20px;
  background:var(--vh-bg);
  border-radius:16px;
  box-shadow:var(--vh-shadow);
}
.vh-show-plotcard__head{
  display:flex; align-items:baseline; gap:10px;
  margin-bottom:12px;
}
.vh-show-plotcard__title{
  font-size:15px; font-weight:700;
  color:var(--vh-text);
  display:inline-flex; align-items:center; gap:8px;
}
.vh-show-plotcard__title::before{
  content:""; width:3px; height:14px; border-radius:2px;
  background:linear-gradient(180deg,#e0b34a,#9a7409);
}
.vh-show-plotcard__body{
  font-size:14px; line-height:1.85; color:var(--vh-text-2);
  word-break:break-word;
}
.vh-show-plotcard__body p{ margin:0 0 10px; }
.vh-show-plotcard__body p:last-child{ margin-bottom:0; }
.vh-show-plotcard__body img{
  max-width:100%; height:auto;
  border-radius:10px; margin:10px 0;
}
.vh-show-plotcard__toggle{
  margin-top:14px;
  display:inline-flex; align-items:center; gap:5px;
  background:none; border:0; padding:6px 0;
  color:#9a7409; font-size:13px; font-weight:600;
  cursor:pointer;
}
.vh-show-plotcard__toggle svg{ width:14px; height:14px; transition:transform .25s var(--vh-ease); }
.vh-show-plotcard.is-collapsed .vh-show-plotcard__body{
  max-height:160px; overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 60%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 60%,transparent 100%);
}
.vh-show-plotcard.is-collapsed .vh-show-plotcard__toggle svg{ transform:rotate(0); }
.vh-show-plotcard:not(.is-collapsed) .vh-show-plotcard__toggle svg{ transform:rotate(180deg); }

/* —— 移动端：信息面板字号缩一点，按钮宽度自适应 —— */
@media (max-width:768px){
  .vh-show-info__title{ font-size:20px; }
  .vh-show-hero{ margin-bottom:14px; border-radius:14px; }
  .vh-show-hero__inner{ padding:14px; gap:14px; }
  .vh-show-episodes,
  .vh-show-plotcard{ margin-bottom:14px; padding:16px; border-radius:14px; }
}

/* =====================================================================
 *  show.temp.peachy.htm v2-redesign · 新增组件样式
 *  - 剧情简介卡 head（新带 icon）
 *  - 2 列『剧情 + 影片资料』布局 vh-show-meta-row
 *  - 影片资料卡 vh-show-detail
 *  - 推荐区海报广告卡 vh-card--ad
 * ===================================================================== */
.vh-show-plotcard__head{
  display:flex; align-items:center; gap:10px;
  margin:0 0 14px 0;
}
.vh-show-plotcard__ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:10px;
  background:linear-gradient(135deg, rgba(236,210,150,.18), rgba(147,224,177,.06));
  color:#9a7409;
  flex:0 0 auto;
}
.vh-show-plotcard__ic svg{ width:18px; height:18px; }
.vh-show-plotcard__title{ flex:1 1 auto; margin:0; }

/* —— 2 列：剧情卡 + 影片资料卡 —— */
.vh-show-meta-row{
  display:grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  gap:14px;
  margin: 0 0 18px 0;
}
.vh-show-meta-row > .vh-show-plotcard{ margin:0; }
/* 当只剩 1 个子元素时（影片资料卡 / 剧情卡 被删时），自动铺满整宽 */
.vh-show-meta-row > *:only-child{ grid-column: 1 / -1; }
@media (max-width:980px){
  .vh-show-meta-row{ grid-template-columns: 1fr; gap:12px; }
}

/* —— 影片资料卡 —— */
.vh-show-detail{
  position:relative; overflow:hidden;
  margin:0; padding:18px 20px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(246,252,249,.96));
  border:1px solid rgba(236,210,150,.12);
  box-shadow:0 12px 32px -22px rgba(150,115,20,.18), inset 0 1px 0 rgba(255,255,255,.65);
  display:flex; flex-direction:column;
}
.vh-show-detail::before{
  content:""; position:absolute; top:0; right:0;
  width:120px; height:120px; pointer-events:none;
  background:radial-gradient(circle at top right, rgba(236,210,150,.18), transparent 70%);
  border-radius:0 18px 0 100%;
}
.vh-show-detail__head{
  display:flex; align-items:center; gap:10px;
  margin:0 0 14px 0; position:relative; z-index:1;
}
.vh-show-detail__ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:10px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff;
  box-shadow:0 6px 14px -6px rgba(150,115,20,.55);
  flex:0 0 auto;
}
.vh-show-detail__ic svg{ width:16px; height:16px; }
.vh-show-detail__title{
  flex:1 1 auto; margin:0;
  font-size:16px; font-weight:700; letter-spacing:.3px;
  color:var(--vh-text-1);
}
.vh-show-detail__list{
  margin:0; padding:0;
  display:flex; flex-direction:column;
  gap:2px;
  position:relative; z-index:1;
}
.vh-show-detail__row{
  display:grid;
  grid-template-columns: 64px 1fr;
  align-items:start;
  gap:8px;
  padding:8px 0;
  border-bottom:1px dashed rgba(236,210,150,.18);
  font-size:13px; line-height:1.6;
}
.vh-show-detail__row:last-child{ border-bottom:0; }
.vh-show-detail__row dt{
  margin:0; color:var(--vh-text-3); font-weight:500;
  letter-spacing:.4px; font-size:12.5px;
  padding-top:1px;
}
.vh-show-detail__row dd{
  margin:0; color:var(--vh-text-1); font-weight:500;
  word-break:break-word;
}
.vh-show-detail__row dd b{ color:#a67c0a; font-weight:700; }
.vh-show-detail__cta{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  margin:14px 0 0 0;
  padding:11px 18px;
  border-radius:999px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff; font-weight:700; font-size:14px; letter-spacing:.4px;
  text-decoration:none;
  box-shadow:0 10px 22px -10px rgba(150,115,20,.55), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .2s var(--vh-ease), box-shadow .2s var(--vh-ease);
  position:relative; z-index:1;
}
.vh-show-detail__cta svg{ width:14px; height:14px; }
.vh-show-detail__cta:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 26px -10px rgba(150,115,20,.65), inset 0 1px 0 rgba(255,255,255,.45);
}
.vh-show-detail__cta:active{ transform:translateY(0); }

/* —— 推荐区 海报广告卡（play_posters · 复用 .vh-card 网格） —— */
.vh-card.vh-card--ad{
  position:relative;
}
.vh-card.vh-card--ad .vh-card__cover{
  background:linear-gradient(135deg, rgba(236,210,150,.16), rgba(184,134,11,.08));
}
.vh-card__adtag{
  position:absolute; top:8px; left:8px; z-index:3;
  display:inline-flex; align-items:center;
  padding:3px 9px; border-radius:999px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff; font-size:10px; font-weight:700; letter-spacing:.6px;
  box-shadow:0 6px 14px -6px rgba(150,115,20,.55);
  text-transform:uppercase;
  pointer-events:none;
}
.vh-card__adfallback{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; padding:12px;
  color:#a67c0a;
  background:repeating-linear-gradient(135deg, rgba(236,210,150,.10) 0 12px, rgba(236,210,150,.04) 12px 24px);
}
.vh-card__adfallback svg{ width:36px; height:36px; opacity:.55; }
.vh-card__adfallback span{
  font-size:12px; font-weight:600; text-align:center; line-height:1.4;
  max-width:90%;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.vh-card.vh-card--ad .vh-card__title{
  color:#9a7409;
}

/* —— 移动端：详情卡稍微紧凑 —— */
@media (max-width:768px){
  .vh-show-detail{ padding:14px 16px; border-radius:14px; }
  .vh-show-detail__row{ grid-template-columns: 56px 1fr; font-size:12.5px; }
  .vh-show-meta-row{ margin-bottom:14px; }
}

/* =====================================================================
 *  Hero 信息面板内 · 小图标推广栏（vh-show-info__svc）
 *  - 深色玻璃风 适配 Hero 的暗色背景
 *  - 3 列 × 2 行 紧凑展示
 *  - 复用 play_items 数据（前 6 个）
 * ===================================================================== */
.vh-show-info__svc{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.10);
}
.vh-show-info__svc-head{
  display:flex; align-items:center; gap:10px;
  margin:0 0 12px 0;
}
.vh-show-info__svc-rule{
  flex:1 1 auto; height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
}
.vh-show-info__svc-tag{
  flex:0 0 auto;
  display:inline-flex; align-items:center; gap:5px;
  padding:3px 11px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(236,210,150,.22), rgba(184,134,11,.16));
  color:#efe4c8;
  font-size:11px; font-weight:700; letter-spacing:1.2px;
  border:1px solid rgba(236,210,150,.32);
  backdrop-filter: blur(8px);
}
.vh-show-info__svc-tag svg{ color:#FBBF24; opacity:.95; }

.vh-show-info__svc-list{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:8px;
}
.vh-show-info__svc-item{
  display:flex; flex-direction:column; align-items:center;
  gap:6px;
  padding:10px 6px 9px;
  border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.08);
  color:#fff; text-decoration:none;
  transition:transform .22s var(--vh-ease), box-shadow .22s var(--vh-ease), border-color .22s var(--vh-ease), background .22s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-info__svc-item:hover{
  transform:translateY(-2px);
  border-color:rgba(236,210,150,.42);
  background:linear-gradient(180deg, rgba(236,210,150,.12), rgba(184,134,11,.06));
  box-shadow:0 10px 22px -12px rgba(150,115,20,.55), 0 0 0 1px rgba(236,210,150,.18);
}
.vh-show-info__svc-ic{
  width:42px; height:42px;
  border-radius:11px;
  display:inline-flex; align-items:center; justify-content:center;
  overflow:hidden;
  background:linear-gradient(135deg, #b8860b, #a67c0a);
  color:#fff;
  box-shadow:0 6px 14px -6px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.18);
  position:relative;
}
.vh-show-info__svc-ic img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.vh-show-info__svc-tx{
  display:inline-flex; flex-direction:column;
  align-items:center; justify-content:center;
  line-height:1.05;
  font-weight:800;
  font-size:11.5px;
  letter-spacing:.4px;
  text-shadow:0 1px 0 rgba(0,0,0,.18);
}
.vh-show-info__svc-tx span{ display:block; }
.vh-show-info__svc-tx--solo span{ font-size:18px; }

.vh-show-info__svc-lb{
  font-size:11.5px;
  font-weight:600;
  color:rgba(255,255,255,.78);
  text-align:center;
  letter-spacing:.3px;
  line-height:1.2;
  max-width:100%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* —— 当 Hero 信息面板是浅色主题（万一未来改）也兜底 —— */
.vh-show-info[data-theme="light"] .vh-show-info__svc{ border-top-color:rgba(0,0,0,.08); }
.vh-show-info[data-theme="light"] .vh-show-info__svc-rule{
  background:linear-gradient(90deg, transparent, rgba(0,0,0,.12), transparent);
}
.vh-show-info[data-theme="light"] .vh-show-info__svc-tag{
  background:linear-gradient(135deg, rgba(184,134,11,.12), rgba(150,115,20,.08));
  color:#a67c0a; border-color:rgba(150,115,20,.22);
}
.vh-show-info[data-theme="light"] .vh-show-info__svc-item{
  background:linear-gradient(180deg, rgba(0,0,0,.025), rgba(0,0,0,.01));
  border-color:rgba(0,0,0,.08); color:var(--vh-text-1);
}
.vh-show-info[data-theme="light"] .vh-show-info__svc-lb{ color:var(--vh-text-2); }

/* —— 移动端：保持 3 列，但卡片更紧凑 —— */
@media (max-width:768px){
  .vh-show-info__svc{ margin-top:14px; padding-top:12px; }
  .vh-show-info__svc-list{ gap:6px; }
  .vh-show-info__svc-item{ padding:9px 4px 8px; gap:5px; }
  .vh-show-info__svc-ic{ width:38px; height:38px; border-radius:10px; }
  .vh-show-info__svc-tx{ font-size:10.5px; }
  .vh-show-info__svc-tx--solo span{ font-size:16px; }
  .vh-show-info__svc-lb{ font-size:11px; }
}

/* —— 影片资料卡：按钮组（立即播放 + 收藏 + 分享，3 钮并排） —— */
.vh-show-detail__btnrow{
  display:flex; align-items:stretch; gap:8px;
  margin:14px 0 0 0; position:relative; z-index:1;
  flex-wrap:wrap;
}
.vh-show-detail__btnrow .vh-show-detail__cta{
  margin:0; flex:1 1 auto; min-width:140px;
}
.vh-show-detail__btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:6px;
  padding:10px 14px;
  border:1px solid rgba(236,210,150,.22);
  background:linear-gradient(180deg, #fff, rgba(246,252,249,.85));
  color:var(--vh-text-1);
  font-size:13px; font-weight:600; letter-spacing:.4px;
  border-radius:999px;
  cursor:pointer;
  transition:transform .2s var(--vh-ease), border-color .2s var(--vh-ease), color .2s var(--vh-ease), background .2s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-detail__btn svg{ width:14px; height:14px; flex:0 0 auto; }
.vh-show-detail__btn:hover{
  transform:translateY(-1px);
  border-color:rgba(150,115,20,.42);
  color:#a67c0a;
  background:linear-gradient(180deg, #fff, rgba(233,247,239,.95));
}
.vh-show-detail__btn:active{ transform:translateY(0); }
.vh-show-detail__btn.is-active{
  color:#fff; border-color:#a67c0a;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
}
@media (max-width:768px){
  .vh-show-detail__btnrow{ gap:6px; margin-top:12px; }
  .vh-show-detail__btnrow .vh-show-detail__cta{ flex:1 1 100%; min-width:0; }
  .vh-show-detail__btn{ flex:1 1 0; padding:9px 10px; font-size:12.5px; }
}

/* =====================================================================
 *  内容页 · 左栏 小图标广告卡（vh-show-svccard）
 *  - 替代原「剧情简介」卡
 *  - 与右侧 影片资料卡 同样的卡片底纹/边框
 *  - 卡内 3 列 icon 网格，复用 play_items 数据
 * ===================================================================== */
.vh-show-svccard{
  position:relative; overflow:hidden;
  margin:0; padding:18px 20px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(246,252,249,.96));
  border:1px solid rgba(236,210,150,.12);
  box-shadow:0 12px 32px -22px rgba(150,115,20,.18), inset 0 1px 0 rgba(255,255,255,.65);
  display:flex; flex-direction:column;
}
.vh-show-svccard::before{
  content:""; position:absolute; top:0; left:0;
  width:140px; height:140px; pointer-events:none;
  background:radial-gradient(circle at top left, rgba(236,210,150,.18), transparent 70%);
  border-radius:18px 0 100% 0;
}
.vh-show-svccard__head{
  display:flex; align-items:center; gap:10px;
  margin:0 0 14px 0; position:relative; z-index:1;
}
.vh-show-svccard__ic{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:10px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff;
  box-shadow:0 6px 14px -6px rgba(150,115,20,.55);
  flex:0 0 auto;
}
.vh-show-svccard__ic svg{ width:16px; height:16px; }
.vh-show-svccard__title{
  flex:1 1 auto; margin:0;
  font-size:16px; font-weight:700; letter-spacing:.3px;
  color:var(--vh-text-1);
}
.vh-show-svccard__tag{
  flex:0 0 auto;
  display:inline-flex; align-items:center;
  padding:3px 9px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(236,210,150,.18), rgba(184,134,11,.10));
  color:#a67c0a;
  font-size:10px; font-weight:700; letter-spacing:1.2px;
  border:1px solid rgba(236,210,150,.32);
}

.vh-show-svccard__grid{
  display:grid;
  /* 紧凑：默认 4 列，参考底部 play_items 横条的视觉密度 */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:6px;
  position:relative; z-index:1;
}
.vh-show-svccard__item{
  display:flex; flex-direction:column; align-items:center;
  gap:6px;
  padding:8px 4px 7px;
  border-radius:11px;
  background:transparent;
  border:0;
  text-decoration:none; color:var(--vh-text-1);
  transition:transform .22s var(--vh-ease);
  -webkit-tap-highlight-color:transparent;
}
.vh-show-svccard__item:hover{
  transform:translateY(-2px);
  background:rgba(236,210,150,.06);
}
.vh-show-svccard__item:hover .vh-show-svccard__ico{
  transform:scale(1.04);
  box-shadow:0 10px 20px -10px rgba(150,115,20,.55), inset 0 1px 0 rgba(255,255,255,.32);
}
.vh-show-svccard__ico{
  width:38px; height:38px;
  border-radius:10px;
  display:inline-flex; align-items:center; justify-content:center;
  overflow:hidden;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff;
  box-shadow:0 6px 14px -8px rgba(150,115,20,.45), inset 0 1px 0 rgba(255,255,255,.22);
  position:relative;
  transition:transform .22s var(--vh-ease), box-shadow .22s var(--vh-ease);
}
.vh-show-svccard__ico img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.vh-show-svccard__tx{
  display:inline-flex; flex-direction:column;
  align-items:center; justify-content:center;
  line-height:1.04;
  font-weight:800;
  font-size:10.5px;
  letter-spacing:.3px;
  text-shadow:0 1px 0 rgba(0,0,0,.12);
}
.vh-show-svccard__tx span{ display:block; }
.vh-show-svccard__tx--solo span{ font-size:15px; }
.vh-show-svccard__lb{
  font-size:11px; font-weight:600;
  color:var(--vh-text-2);
  text-align:center;
  letter-spacing:.2px;
  line-height:1.15;
  max-width:100%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

@media (max-width:980px){
  /* 由 vh-show-meta-row 自动变 1 列后，铺满，但仍保持紧凑 */
  .vh-show-svccard{ padding:14px 16px; border-radius:14px; }
  .vh-show-svccard__grid{ grid-template-columns: repeat(6, minmax(0, 1fr)); gap:6px; }
}
@media (max-width:560px){
  .vh-show-svccard__grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vh-show-svccard__ico{ width:36px; height:36px; border-radius:10px; }
  .vh-show-svccard__tx{ font-size:10px; }
  .vh-show-svccard__tx--solo span{ font-size:14px; }
  .vh-show-svccard__lb{ font-size:10.5px; }
}

/* =====================================================================
 *  内容页 · 推荐区上方 封面类广告条（vh-show-postad）
 *  - 数据源：play_posters
 *  - 1~4 张自适应：单张全宽 / 2 张并排 / 3-4 张响应式
 *  - 21:9 影院宽屏视觉，覆盖渐变 + 标题 + CTA + 角标
 * ===================================================================== */
.vh-show-postad{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap:14px;
  margin: 0 var(--vh-pad-x) var(--vh-section-gap);
}
.vh-show-postad__card{
  position:relative; overflow:hidden;
  display:block;
  border-radius:18px;
  aspect-ratio: 21 / 9;
  text-decoration:none; color:#fff;
  background:#1a1a26 center/cover no-repeat;
  isolation:isolate;
  transition: transform .28s var(--vh-ease), box-shadow .28s var(--vh-ease);
  box-shadow:0 12px 32px -20px rgba(0,0,0,.55);
  -webkit-tap-highlight-color:transparent;
}
/* aspect-ratio 不支持时的兜底（旧浏览器） */
@supports not (aspect-ratio: 21 / 9){
  .vh-show-postad__card{ height: 0; padding-bottom: 42.86%; }
  .vh-show-postad__card > *{ position:absolute; }
}
.vh-show-postad__card--bg{
  background-image:linear-gradient(135deg,#b8860b 0%, #a67c0a 60%, #5c4304 100%);
}
.vh-show-postad__card:hover{
  transform:translateY(-3px) scale(1.005);
  box-shadow:0 22px 44px -22px rgba(150,115,20,.55), 0 0 0 1px rgba(236,210,150,.35);
}
.vh-show-postad__shade{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.05) 38%, rgba(0,0,0,.62) 100%),
    linear-gradient(90deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 55%);
  pointer-events:none;
}

.vh-show-postad__tag{
  position:absolute; top:14px; left:14px; z-index:3;
  display:inline-flex; align-items:center;
  padding:4px 10px; border-radius:999px;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  color:#fff;
  font-size:10.5px; font-weight:800; letter-spacing:1.2px;
  text-transform:uppercase;
  box-shadow:0 6px 14px -6px rgba(150,115,20,.55), inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter: blur(6px);
}
.vh-show-postad__tag--default{
  background:linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,.10));
  color:#efe4c8;
  border:1px solid rgba(255,255,255,.28);
}

.vh-show-postad__body{
  position:absolute; left:18px; right:18px; bottom:14px; z-index:2;
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:14px;
}
.vh-show-postad__t{
  font-size:18px;
  font-weight:800;
  letter-spacing:.4px;
  line-height:1.25;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
  flex:1 1 auto;
  max-width:75%;
}
.vh-show-postad__cta{
  flex:0 0 auto;
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#a67c0a;
  font-size:12px; font-weight:700; letter-spacing:.4px;
  box-shadow:0 8px 18px -10px rgba(0,0,0,.45);
  transition:transform .22s var(--vh-ease), background .22s var(--vh-ease), color .22s var(--vh-ease);
}
.vh-show-postad__card:hover .vh-show-postad__cta{
  transform:translateX(2px);
  background:#fff;
  color:#0a8a3e;
}

/* —— 单张时（auto-fit 自动铺满）保持比例 —— */
.vh-show-postad:has(> :only-child){
  grid-template-columns: 1fr;
}
.vh-show-postad:has(> :only-child) .vh-show-postad__card{
  aspect-ratio: 32 / 9;
}
@supports not (aspect-ratio: 32 / 9){
  .vh-show-postad:has(> :only-child) .vh-show-postad__card{ padding-bottom: 28.125%; }
}

/* —— 平板 —— */
@media (max-width:980px){
  .vh-show-postad{ gap:10px; }
  .vh-show-postad__card{ border-radius:14px; aspect-ratio: 16 / 7; }
  .vh-show-postad__t{ font-size:16px; }
}

/* —— 手机 —— */
@media (max-width:560px){
  .vh-show-postad{ grid-template-columns: 1fr; gap:10px; }
  .vh-show-postad__card{ aspect-ratio: 18 / 8; }
  .vh-show-postad__t{ font-size:15px; }
  .vh-show-postad__cta{ font-size:11px; padding:6px 11px; }
  .vh-show-postad__tag{ font-size:10px; padding:3px 8px; top:10px; left:10px; }
  .vh-show-postad__body{ left:12px; right:12px; bottom:10px; }
}

/* =====================================================================
 *  内容页 · 影院级播放器机框 vh-show-stage
 *  - 包裹原 vh-show-player，不动播放器本身的 ID / 行为
 *  - 顶部品牌+标题+4K/DOLBY 徽章
 *  - 底部正在播放呼吸点 + 分类/年份/评分
 *  - 背后极光光晕 + 边框双层光（影院屏幕感）
 * ===================================================================== */
.vh-show-stage{
  position:relative;
  width:100%;
  border-radius:20px;
  padding:0;
  /* 主光晕 + 内描边双层 */
  background:
    linear-gradient(180deg, rgba(236,210,150,.16), rgba(150,115,20,.04) 60%, rgba(200,160,60,.10) 100%);
  box-shadow:
    0 30px 80px -28px rgba(150,115,20,.55),
    0 14px 40px -18px rgba(200,160,60,.35),
    inset 0 0 0 1px rgba(255,255,255,.08);
  isolation:isolate;
  overflow:visible;
}

/* —— 背后极光极光层（虚化色斑，缓慢呼吸）—— */
.vh-show-stage__aurora{
  position:absolute;
  inset:-30px -30px -30px -30px;
  z-index:-1;
  border-radius:36px;
  background:
    radial-gradient(40% 60% at 18% 10%, rgba(184,134,11,.40), transparent 70%),
    radial-gradient(50% 70% at 85% 90%, rgba(224,179,74,.40), transparent 70%),
    radial-gradient(60% 50% at 80% 10%, rgba(251,191,36,.20), transparent 70%);
  filter:blur(40px) saturate(140%);
  opacity:.65;
  animation: vh-stage-glow 8s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes vh-stage-glow{
  0%   { opacity:.5; transform:scale(1); }
  100% { opacity:.78; transform:scale(1.04); }
}

/* —— 顶部信息条 —— */
.vh-show-stage__topbar{
  display:flex; align-items:center; gap:14px;
  padding:11px 16px 10px;
  color:#fff;
  font-size:12.5px; font-weight:600; letter-spacing:.3px;
  background:linear-gradient(180deg, rgba(0,0,0,.42), rgba(0,0,0,.18));
  border-radius:20px 20px 0 0;
  border-bottom:1px solid rgba(255,255,255,.06);
  backdrop-filter: blur(6px);
}
.vh-show-stage__brand{
  display:inline-flex; align-items:center; gap:8px;
  flex:0 0 auto;
}
.vh-show-stage__dot{
  width:9px; height:9px; border-radius:50%;
  background:linear-gradient(135deg,#b8860b,#a67c0a);
  box-shadow:0 0 12px rgba(184,134,11,.85), 0 0 22px rgba(150,115,20,.55);
  animation: vh-stage-pulse 1.8s ease-in-out infinite;
}
@keyframes vh-stage-pulse{
  0%, 100% { transform:scale(1);   box-shadow:0 0 12px rgba(184,134,11,.85), 0 0 22px rgba(150,115,20,.55); }
  50%      { transform:scale(1.25); box-shadow:0 0 18px rgba(184,134,11,1),    0 0 30px rgba(150,115,20,.85); }
}
.vh-show-stage__brand-name{
  font-size:13px; font-weight:800; letter-spacing:1px;
  background:linear-gradient(90deg,#fff 0%, #efe4c8 50%, #fff 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-transform:uppercase;
}
.vh-show-stage__title{
  flex:1 1 auto; min-width:0;
  font-size:12.5px; font-weight:500;
  color:rgba(255,255,255,.78);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  text-align:center;
}
.vh-show-stage__badges{
  display:inline-flex; align-items:center; gap:6px;
  flex:0 0 auto;
}
.vh-show-stage__badge{
  display:inline-flex; align-items:center;
  padding:3px 8px;
  border-radius:5px;
  font-size:10px; font-weight:800; letter-spacing:1px;
  text-transform:uppercase;
  line-height:1.3;
}
.vh-show-stage__badge--4k{
  background:linear-gradient(135deg,#FBBF24,#F59E0B);
  color:#1f1300;
  box-shadow:0 4px 12px -4px rgba(251,191,36,.55), inset 0 1px 0 rgba(255,255,255,.45);
}
.vh-show-stage__badge--dolby{
  background:linear-gradient(135deg,#fff, #d1d5db);
  color:#000;
  box-shadow:0 4px 12px -4px rgba(255,255,255,.35), inset 0 1px 0 rgba(255,255,255,.6);
}

/* —— 播放器位置在机框中（覆盖原 box-shadow 让外框接管视觉）—— */
.vh-show-stage > .vh-show-player{
  border-radius:0;
  box-shadow:none;
  /* 上下各让出 topbar/bottombar 的空间，但仍保持 16:9 比例 */
}

/* —— 底部正在播放条 —— */
.vh-show-stage__bottombar{
  display:flex; align-items:center; gap:10px;
  padding:10px 16px 11px;
  color:rgba(255,255,255,.78);
  font-size:12px; font-weight:500; letter-spacing:.3px;
  background:linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.42));
  border-radius:0 0 20px 20px;
  border-top:1px solid rgba(255,255,255,.06);
  backdrop-filter: blur(6px);
  flex-wrap:wrap;
}
.vh-show-stage__playing{
  display:inline-flex; align-items:center; gap:6px;
  color:#fff; font-weight:700; letter-spacing:.5px;
}
.vh-show-stage__pulse{
  width:7px; height:7px; border-radius:50%;
  background:#e0b34a;
  box-shadow:0 0 8px rgba(224,179,74,.85);
  animation: vh-stage-blink 1.4s ease-in-out infinite;
}
@keyframes vh-stage-blink{
  0%,100% { opacity:1;   transform:scale(1); }
  50%     { opacity:.5;  transform:scale(.85); }
}
.vh-show-stage__cat{
  display:inline-flex; align-items:center;
  padding:2px 8px;
  border-radius:999px;
  background:rgba(236,210,150,.18);
  border:1px solid rgba(236,210,150,.35);
  color:#efe4c8;
  font-size:11.5px; font-weight:700;
}
.vh-show-stage__sep{ opacity:.4; }
.vh-show-stage__score{
  color:#fbbf24; font-weight:800; letter-spacing:.5px;
  text-shadow:0 0 8px rgba(251,191,36,.35);
}

/* —— 响应式：移动端紧凑 —— */
@media (max-width:768px){
  .vh-show-stage{ border-radius:16px; }
  .vh-show-stage__aurora{ filter:blur(28px) saturate(130%); opacity:.5; }
  .vh-show-stage__topbar{ padding:9px 12px 8px; gap:10px; border-radius:16px 16px 0 0; }
  .vh-show-stage__brand-name{ font-size:12px; letter-spacing:.7px; }
  .vh-show-stage__title{ display:none; } /* 移动端隐藏中间标题 */
  .vh-show-stage__badge{ font-size:9.5px; padding:3px 6px; }
  .vh-show-stage__bottombar{ padding:9px 12px 10px; font-size:11.5px; border-radius:0 0 16px 16px; gap:8px; }
  .vh-show-stage__cat{ font-size:10.5px; padding:2px 7px; }
}

/* —— 横屏 / 全屏时机框光晕减弱（避免遮挡播放） —— */
.vh-show-player:fullscreen ~ .vh-show-stage__aurora{ display:none; }

/* =====================================================================
 *  片头预告广告 vh-preroll
 *  - 盖在 .vh-show-player 整个 16:9 区域上（z-index 远高于 iframe/video）
 *  - 入场淡入 + 退场淡出
 *  - 顶部右上 HUD：倒计时 / 跳过；左下进度条；中下文案 + CTA
 *  - 整张 slide <a> 可点；HUD 上的按钮 stopPropagation
 *  - 多 item 通过 .is-active 切换
 * ===================================================================== */
.vh-preroll{
  position:absolute;
  inset:0;
  z-index:50;
  border-radius:inherit;
  overflow:hidden;
  background:#0a0610;
  opacity:0;
  transform:scale(1.015);
  transition:opacity .42s ease, transform .42s ease;
  -webkit-tap-highlight-color:transparent;
}
.vh-preroll.is-visible{
  opacity:1;
  transform:scale(1);
}
.vh-preroll.is-closing{
  opacity:0;
  transform:scale(.985);
  pointer-events:none;
}

/* —— Slide 堆栈：所有 slide 绝对定位重叠，只显示 .is-active —— */
.vh-preroll__stack{
  position:absolute;
  inset:0;
}
.vh-preroll__slide{
  position:absolute;
  inset:0;
  display:flex;
  align-items:flex-end;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  text-decoration:none;
  color:#fff;
  opacity:0;
  visibility:hidden;
  transform:scale(1.06);
  transition:opacity .55s ease, transform 6s ease-out, visibility 0s linear .55s;
  cursor:pointer;
  overflow:hidden;
}
.vh-preroll__slide.is-active{
  opacity:1;
  visibility:visible;
  transform:scale(1);
  transition:opacity .55s ease, transform 6s ease-out, visibility 0s linear 0s;
}

/* —— 加载骨架（图片未到位时的占位 + 闪光扫动）—— */
.vh-preroll__skeleton{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(135deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.10) 50%, rgba(255,255,255,.05) 100%);
  overflow:hidden;
  transition:opacity .4s ease;
}
.vh-preroll__skeleton.is-hidden{
  opacity:0;
  pointer-events:none;
}
.vh-preroll__skeleton-shine{
  position:absolute;
  top:0; bottom:0;
  left:-40%;
  width:40%;
  background:linear-gradient(90deg,
    rgba(255,255,255,0)   0%,
    rgba(255,255,255,.18) 50%,
    rgba(255,255,255,0)   100%);
  animation: vh-preroll-shine 1.4s ease-in-out infinite;
}
@keyframes vh-preroll-shine{
  0%   { left:-40%; }
  100% { left:120%; }
}

/* —— 真实图片：铺满 16:9，object-fit:cover 不变形 —— */
.vh-preroll__img{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  opacity:0;
  transform:scale(1.04);
  transition:opacity .55s ease, transform 6s ease-out;
  pointer-events:none;
}
.vh-preroll__img.is-loaded{
  opacity:1;
  transform:scale(1);
}

/* —— 渐变蒙层：让左下文案永远清晰；图片模式下底部更黑、纯渐变模式下侧边更柔 —— */
.vh-preroll__veil{
  position:absolute;
  inset:0;
  z-index:3;
  background:
    linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0) 50%, rgba(0,0,0,.75) 100%),
    linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 55%);
  pointer-events:none;
}
/* 图片模式：底部更暗的渐变（CTA / 字更清晰）*/
.vh-preroll__slide[data-mode="image"] .vh-preroll__veil{
  background:
    linear-gradient(180deg, rgba(0,0,0,.40) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 45%, rgba(0,0,0,.82) 100%),
    linear-gradient(90deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,0) 60%);
}

/* —— 左下文案区 —— */
.vh-preroll__copy{
  position:relative;
  z-index:4;
  padding:24px 28px 26px;
  max-width:62%;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.vh-preroll__chip{
  display:inline-flex; align-items:center; gap:5px;
  width:fit-content;
  padding:4px 9px 4px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  font-size:10.5px; font-weight:700; letter-spacing:1.1px;
  color:rgba(255,255,255,.85);
  text-transform:uppercase;
}
.vh-preroll__chip svg{ width:11px; height:11px; }
.vh-preroll__title{
  margin:0;
  font-size:clamp(20px, 2.4vw, 30px);
  font-weight:900;
  line-height:1.15;
  letter-spacing:.3px;
  text-shadow:0 4px 16px rgba(0,0,0,.55);
}
.vh-preroll__sub{
  margin:0;
  font-size:clamp(12px, 1.15vw, 14.5px);
  font-weight:500;
  line-height:1.45;
  color:rgba(255,255,255,.86);
  text-shadow:0 2px 8px rgba(0,0,0,.55);
}
.vh-preroll__cta{
  margin-top:6px;
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px 10px 18px;
  width:fit-content;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:13px; font-weight:800; letter-spacing:.5px;
  box-shadow:0 8px 24px -10px rgba(255,255,255,.45), 0 2px 6px rgba(0,0,0,.35);
  transition:transform .2s ease, box-shadow .2s ease;
}
.vh-preroll__cta svg{ width:14px; height:14px; }
.vh-preroll__slide:hover .vh-preroll__cta{
  transform:translateY(-1px);
  box-shadow:0 12px 28px -10px rgba(255,255,255,.6), 0 4px 10px rgba(0,0,0,.4);
}

/* —— 右上 HUD：倒计时 / 跳过 —— */
/* —— 左上角调试徽章（确认部署版本用，绿色超亮）—— */
.vh-preroll__devtag{
  position:absolute;
  top:14px; left:14px;
  z-index:6;
  padding:5px 10px;
  border-radius:6px;
  background:#10B981;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:1px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  box-shadow:0 4px 12px -4px rgba(16,185,129,.55), 0 0 0 1px rgba(255,255,255,.25) inset;
  text-transform:uppercase;
  pointer-events:none;
}

.vh-preroll__hud{
  position:absolute;
  top:14px; right:14px;
  display:flex; align-items:center; gap:8px;
  z-index:5;
}
.vh-preroll__count{
  display:inline-flex; align-items:baseline; gap:2px;
  padding:6px 10px 6px 11px;
  border-radius:999px;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.4px;
  font-variant-numeric:tabular-nums;
  min-width:54px;
  justify-content:center;
}
.vh-preroll__count-n{
  font-size:13.5px;
  font-weight:800;
  letter-spacing:.5px;
}
.vh-preroll__count-u{
  opacity:.7;
  font-size:10.5px;
  margin-left:2px;
}

.vh-preroll__skip{
  appearance:none;
  display:inline-flex; align-items:center; gap:4px;
  padding:6px 10px 6px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.10);
  color:rgba(255,255,255,.45);
  font-size:12px; font-weight:700; letter-spacing:.4px;
  cursor:not-allowed;
  transition:all .25s ease;
  font-family:inherit;
}
.vh-preroll__skip svg{ width:12px; height:12px; opacity:.45; transition:opacity .25s ease; }
.vh-preroll__skip.is-ready{
  background:rgba(255,255,255,.96);
  color:#0a0610;
  border-color:rgba(255,255,255,1);
  cursor:pointer;
  box-shadow:0 6px 16px -6px rgba(255,255,255,.45);
}
.vh-preroll__skip.is-ready svg{ opacity:1; }
.vh-preroll__skip.is-ready:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px -8px rgba(255,255,255,.6);
}
.vh-preroll__skip.is-ready:active{ transform:translateY(0); }

/* —— 左下进度条（倒计时同步推进）—— */
.vh-preroll__bar{
  position:absolute;
  left:0; right:0; bottom:0;
  height:3px;
  background:rgba(255,255,255,.08);
  z-index:4;
}
.vh-preroll__bar-fill{
  display:block;
  height:100%; width:0%;
  background:linear-gradient(90deg,#b8860b 0%, #FBBF24 50%, #b8860b 100%);
  background-size:200% 100%;
  box-shadow:0 0 12px rgba(184,134,11,.6);
  animation:vh-preroll-shimmer 2.5s linear infinite;
  transition:width .15s linear;
}
@keyframes vh-preroll-shimmer{
  from { background-position:0% 0%; }
  to   { background-position:200% 0%; }
}

/* —— 响应式：移动端 —— */
@media (max-width:768px){
  .vh-preroll__copy{
    padding:18px 18px 22px;
    max-width:75%;
    gap:8px;
  }
  .vh-preroll__title{ font-size:18px; }
  .vh-preroll__sub{ font-size:12px; }
  .vh-preroll__cta{
    padding:8px 14px;
    font-size:12px;
  }
  .vh-preroll__hud{
    top:10px; right:10px;
    gap:6px;
  }
  .vh-preroll__count{
    padding:5px 8px 5px 9px;
    min-width:48px;
    font-size:11px;
  }
  .vh-preroll__count-n{ font-size:12.5px; }
  .vh-preroll__skip{
    padding:5px 8px 5px 10px;
    font-size:11px;
  }
  .vh-preroll__bar{ height:2px; }
}
@media (max-width:480px){
  .vh-preroll__copy{ padding:14px 14px 18px; max-width:85%; }
  .vh-preroll__title{ font-size:16px; }
  .vh-preroll__chip{ font-size:9.5px; padding:3px 8px 3px 6px; }
  .vh-preroll__cta{ padding:7px 12px; font-size:11.5px; }
}

/* —— 全屏时彻底隐藏（不能挡住全屏内容） —— */
.vh-show-player:fullscreen .vh-preroll,
:fullscreen .vh-preroll{ display:none; }

/* =====================================================================
 *  内容页 · 最近想看 + 排行榜 Tab（vh-show-rec）
 * ===================================================================== */
.vh-show-rec__head{
  align-items:flex-end;
  gap:12px;
}
.vh-show-rec__head .vh-sec-head__l{
  flex:1;
  min-width:0;
}
.vh-show-rec__tabs{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:4px;
  flex-shrink:0;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(150,115,20,.12);
  box-shadow:0 4px 14px -8px rgba(150,115,20,.25), inset 0 1px 0 rgba(255,255,255,.85);
  position:relative;
  z-index:2;
}
/* 隐藏 radio · 用 :checked 驱动 Tab（不依赖 JS，EmpireCMS 页面更稳） */
.vh-show-rec__radio{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  border:0;
  clip:rect(0,0,0,0);
  overflow:hidden;
  white-space:nowrap;
}
.vh-show-rec__tab{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--vh-muted, #6b7280);
  font:inherit;
  font-size:13px;
  font-weight:700;
  letter-spacing:.3px;
  padding:8px 16px;
  border-radius:999px;
  cursor:pointer;
  transition:background .22s ease, color .22s ease, box-shadow .22s ease;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  display:inline-block;
  line-height:1.2;
  white-space:nowrap;
}
.vh-show-rec__tab:hover{ color:var(--vh-text, #0f2417); }
.vh-show-rec__tab.is-active,
#vh-rec-guess:checked ~ .vh-show-rec__head .vh-show-rec__tab[for="vh-rec-guess"],
#vh-rec-random:checked ~ .vh-show-rec__head .vh-show-rec__tab[for="vh-rec-random"]{
  background:linear-gradient(135deg,#b8860b 0%,#a67c0a 100%);
  color:#fff;
  box-shadow:0 8px 18px -8px rgba(150,115,20,.55);
}
.vh-show-rec__panel{ display:none; }
.vh-show-rec__panel.is-active,
#vh-rec-guess:checked ~ .vh-show-rec__panel--guess,
#vh-rec-random:checked ~ .vh-show-rec__panel--random{
  display:block;
}
.vh-show-rec__empty{
  margin:0 0 8px;
  padding:28px 16px;
  text-align:center;
  font-size:13px;
  color:var(--vh-muted, #6b7280);
  background:rgba(255,255,255,.55);
  border:1px dashed rgba(150,115,20,.18);
  border-radius:14px;
}
.vh-show-rec__empty[hidden]{ display:none; }

/* 排行榜名次角标 */
.vh-card__rank{
  position:absolute;
  top:8px;
  left:8px;
  z-index:3;
  min-width:24px;
  height:24px;
  padding:0 7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(6px);
  color:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1;
  box-shadow:0 4px 10px -4px rgba(0,0,0,.45);
}
.vh-card__rank--top1{
  background:linear-gradient(135deg,#FBBF24,#F59E0B);
  color:#1f1300;
}
.vh-card__rank--top2{
  background:linear-gradient(135deg,#E5E7EB,#9CA3AF);
  color:#111827;
}
.vh-card__rank--top3{
  background:linear-gradient(135deg,#FDBA74,#EA580C);
  color:#fff;
}
.vh-card__hits{
  display:block;
  margin-top:4px;
  font-size:11px;
  font-weight:600;
  color:var(--vh-muted, #6b7280);
}

@media (max-width:768px){
  .vh-show-rec__head{ flex-direction:column; align-items:stretch; }
  .vh-show-rec__head .vh-sec-head__more{ align-self:flex-end; }
  .vh-show-rec__tabs{ width:100%; justify-content:stretch; }
  .vh-show-rec__tab{ flex:1; text-align:center; padding:8px 8px; font-size:12px; letter-spacing:0; }
}

/* =====================================================================
 *  自定义页 · 最近更新 / 排行榜（zuijinxin / paihangbang）
 * ===================================================================== */
.vh-top__act--pill.is-current{
  box-shadow:0 0 0 2px rgba(255,255,255,.95), 0 6px 18px rgba(150,115,20,.28);
  transform:translateY(-1px);
}
.vh-top__act--recent.is-current{
  background:linear-gradient(135deg,#f0d79f 0%,#9a7409 100%);
  border-color:transparent;
  color:#fff;
}
.vh-top__act--rank.is-current{
  background:linear-gradient(135deg,#fde68a 0%,#F59E0B 55%,#cea63a 110%);
  color:#7c2d12;
}

.vh-pagehero{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin:0 var(--vh-pad-x) 8px;
  padding:22px 20px;
  border-radius:18px;
  background:
    linear-gradient(135deg, rgba(244,252,247,.95) 0%, rgba(255,255,255,.88) 55%, rgba(255,236,245,.92) 100%);
  border:1px solid rgba(236,210,150,.16);
  box-shadow:0 10px 28px -16px rgba(150,115,20,.28), inset 0 1px 0 rgba(255,255,255,.85);
}
.vh-pagehero--rank{
  background:
    linear-gradient(135deg, rgba(255,251,235,.95) 0%, rgba(255,255,255,.88) 55%, rgba(244,252,247,.92) 100%);
  border-color:rgba(245,158,11,.18);
}
.vh-pagehero__icon{
  flex-shrink:0;
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  color:#9a7409;
  background:linear-gradient(135deg,#fff 0%,#e6f7ed 100%);
  border:1px solid rgba(236,210,150,.18);
  box-shadow:0 6px 16px -10px rgba(150,115,20,.35);
}
.vh-pagehero--rank .vh-pagehero__icon{
  color:#b45309;
  background:linear-gradient(135deg,#fff 0%,#fef3c7 100%);
  border-color:rgba(245,158,11,.22);
}
.vh-pagehero__icon svg{ width:22px; height:22px; }
.vh-pagehero__main{ min-width:0; flex:1; }
.vh-pagehero__title{
  margin:0;
  font-size:clamp(22px, 4vw, 28px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--vh-text, #0f2417);
}
.vh-pagehero__sub{
  margin:8px 0 0;
  font-size:13px;
  line-height:1.55;
  color:var(--vh-muted, #6b7280);
}
.vh-pagehero__stats{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:14px;
  font-size:12px;
  color:var(--vh-text-3, #9ca3af);
}
.vh-pagehero__stats em{
  font-style:normal;
  font-weight:800;
  color:#9a7409;
}
.vh-pagehero--rank .vh-pagehero__stats em{ color:#b45309; }

.vh-subsec{ margin-top:4px; }
.vh-subsec__count{
  font-style:normal;
  font-weight:800;
  font-size:.78em;
  color:#9a7409;
  margin-left:6px;
}
.vh-subsec .vh-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  margin-top:5px;
  font-size:11px;
  font-weight:600;
  color:var(--vh-muted, #6b7280);
}

@media (max-width:640px){
  .vh-pagehero{
    flex-direction:column;
    padding:18px 16px;
    gap:12px;
  }
  .vh-pagehero__stats{ gap:6px 10px; font-size:11.5px; }
}

/* ============================================================
 *  Sakura Header Re-style · 2026 粉樱刷新（追加覆盖）
 *  头部与分类导航视觉重做：玻璃质感 + 渐变胶囊导航
 * ============================================================ */

/* 顶栏：樱花玻璃质感 + 柔粉描边 + 顶部流光线 */
.vh-top{
  background:linear-gradient(180deg, rgba(253,248,236,.94), rgba(252,249,240,.86));
  -webkit-backdrop-filter:saturate(185%) blur(18px);
  backdrop-filter:saturate(185%) blur(18px);
  border-bottom:1px solid rgba(224,179,74,.16);
  box-shadow:0 6px 22px rgba(224,179,74,.08);
}
.vh-top::before{
  content:"";
  position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,#f0d79f,#e0b34a 45%,#a67c0a 75%,#f0d79f);
  background-size:200% 100%;
  animation:vhSakuraLine 6s linear infinite;
  z-index:2;
}
@keyframes vhSakuraLine{ to{ background-position:200% 0; } }

/* 操作胶囊（最近更新/排行榜）：粉色描边 → hover 渐变填充 */
.vh-top__act--pill{
  border:1px solid rgba(224,179,74,.28);
  background:rgba(255,255,255,.7);
  color:var(--vh-primary-d);
  box-shadow:0 2px 8px rgba(224,179,74,.10);
  transition:.22s var(--vh-ease);
}
.vh-top__act--pill:hover{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#e0b34a,#a67c0a);
  box-shadow:0 6px 16px rgba(184,134,11,.34);
  transform:translateY(-1px);
}
.vh-top__act--pill:hover .vh-top__act-ic{ color:#fff; }

/* 搜索框聚焦态用粉色光环 */
.vh-top__search:hover{
  border-color:var(--vh-primary-l);
  box-shadow:0 0 0 3px var(--vh-primary-soft);
}

/* 分类导航条：白底 · 翡翠胶囊填充高亮（干净精致） */
.vh-topnav{
  background:#ffffff;
  border-top:1px solid var(--vh-border-2);
  border-bottom:1px solid var(--vh-border-2);
  box-shadow:none;
  position:relative;
}
.vh-topnav::before{ content:none; }
/* 普通项：沉稳炭墨绿字 + 胶囊底 */
.vh-topnav__item{
  color:#6f6a62;
  font-weight:600;
  letter-spacing:.04em;
  border-radius:999px;
}
.vh-topnav__item:hover{
  color:var(--vh-primary-d);
  background:rgba(184,134,11,.08);
}
/* 激活项：翡翠渐变胶囊 + 白字 + 柔和落影（精致不刺眼） */
.vh-topnav__item.is-active,
.vh-topnav__item--home.is-active{
  color:#ffffff;
  font-weight:700;
  background:linear-gradient(135deg,#ecc766 0%,#a67c0a 100%);
  box-shadow:0 4px 12px -2px rgba(184,134,11,.4);
}
/* 首页项与其它项一致，激活时才点亮 */
.vh-topnav__item--home{ color:#6f6a62; }
.vh-topnav__item--home:hover{ color:var(--vh-primary-d); background:rgba(184,134,11,.08); }

/* ============================================================
 *  Premium Banner · 高端呈现（追加覆盖）
 *  精选活动大 Banner：粉金细描边 + 分层阴影 + 景深遮罩 + 缓放 hover
 * ============================================================ */
.vh-bnstrip{ margin-top:18px; }
.vh-bn{
  border-radius:0 !important;   /* 方正直角，不要胶囊圆角 */
  background:linear-gradient(180deg,#ffffff,#f6fcf9);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 10px 30px rgba(150,115,20,.14),
    0 2px 8px rgba(0,0,0,.05);
  transition:transform .32s var(--vh-ease), box-shadow .32s var(--vh-ease);
}
/* 粉金渐变 1px 细描边（伪元素 + mask 镂空） */
.vh-bn::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,
    rgba(255,205,225,.95) 0%,
    rgba(224,179,74,.45) 38%,
    rgba(255,255,255,.20) 66%,
    rgba(162,228,189,.85) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none; z-index:3;
}
/* 顶/底柔和景深遮罩，压住花哨广告图、增加层次 */
.vh-bn::before{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,
    rgba(255,255,255,.10) 0%,
    rgba(0,0,0,0) 20%,
    rgba(0,0,0,0) 70%,
    rgba(25,8,18,.16) 100%);
  z-index:2; pointer-events:none;
}
.vh-bn__img{
  transition:transform .55s var(--vh-ease), filter .4s var(--vh-ease);
  filter:saturate(.97) contrast(1.02);
}
.vh-bn:hover{
  transform:translateY(-4px);
  box-shadow:
    0 18px 44px rgba(150,115,20,.24),
    0 4px 14px rgba(0,0,0,.08);
}
.vh-bn:hover .vh-bn__img{
  transform:scale(1.045);
  filter:saturate(1.03) contrast(1.03);
}

/* ============================================================
 *  HIGH-END REFINEMENT · 整站高端化总览层（追加覆盖 · 可整段删除还原）
 *  思路：保留樱花粉主色，但把「周边一切」做精致——
 *  暖白底 / 暖炭字 / 柔和暖阴影 / 香槟金点缀 / 克制留白 / 字体层次
 * ============================================================ */
:root{
  /* 暖调中性，替换偏蓝的冷灰（冷灰配热粉=廉价感的元凶）*/
  --vh-bg-soft:#f6faf8;
  --vh-bg-softer:#ebf3ee;
  --vh-card:#ffffff;
  --vh-card-hover:#fafefb;

  /* 暖炭黑文字层次（去蓝灰、更耐看）*/
  --vh-text:#232e27;
  --vh-text-2:#4f5a53;
  --vh-text-3:#7f8b83;
  --vh-text-4:#aab6ae;

  /* 暖中性描边（发丝级）*/
  --vh-border:#efeade;
  --vh-border-2:#f6f2e8;
  --vh-border-strong:#e3dcc8;

  /* 香槟金——高端点缀色 */
  --vh-gold:#c8a15e;
  --vh-gold-l:#e4c98f;
  --vh-gold-soft:rgba(200,161,94,.14);

  /* 柔和暖阴影：更弥散、更低透明度＝高级 */
  --vh-shadow-sm:0 1px 3px rgba(120,92,20,.05);
  --vh-shadow:0 6px 22px rgba(120,92,20,.06);
  --vh-shadow-md:0 12px 30px rgba(224,179,74,.13);
  --vh-shadow-lg:0 18px 44px rgba(224,179,74,.17);

  /* 更从容的留白节奏 */
  --vh-section-gap:34px;
}
@media (min-width:768px){
  :root{ --vh-section-gap:46px; --vh-pad-x:26px; }
}

/* 全局字体渲染更细腻 */
.vh-body{ letter-spacing:.005em; }

/* —— 区块标题：更有编辑感的层次 —— */
.vh-sec-head{ margin-bottom:20px; }
.vh-sec-head__title{
  font-weight:800;
  letter-spacing:-.02em;
  background:linear-gradient(180deg,#232e27 0%,#3d4a41 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.vh-eyebrow{ color:var(--vh-primary-d); }

/* —— 视频卡片：发丝描边 + 更克制圆角 + 高级缓动 —— */
.vh-card__cover{
  border-radius:14px;
  box-shadow:0 4px 18px rgba(120,92,20,.07);
}
.vh-card__cover::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
  pointer-events:none; z-index:3;
}
.vh-card{ transition:transform .3s var(--vh-ease); }
.vh-card:hover{ transform:translateY(-4px); }
.vh-card:hover .vh-card__cover{ box-shadow:0 16px 34px rgba(224,179,74,.18); }
.vh-card__title{ font-weight:600; color:var(--vh-text); letter-spacing:.005em; }
.vh-card__cat{ background:rgba(43,36,48,.66); font-weight:500; letter-spacing:.02em; }

/* —— 服务图标格：统一发丝描边 + 柔和底，去杂色 —— */
.vh-svc__icon{
  border:1px solid var(--vh-border);
  box-shadow:0 2px 10px rgba(120,92,20,.05);
}
.vh-svc:hover .vh-svc__icon{ box-shadow:0 8px 20px rgba(224,179,74,.16); }
.vh-svc__label{ color:var(--vh-text-2); letter-spacing:.01em; }

/* —— 大 Banner：为整体协调，略降饱和 + 顶部香槟金细线暗示"精选" —— */
.vh-bn__img{ filter:saturate(.92) contrast(1.02) brightness(.99); }
.vh-bn:hover .vh-bn__img{ filter:saturate(1.0) contrast(1.03) brightness(1); }

/* —— 分割/区块之间加一点呼吸的暖底层次 —— */
.vh-body{ background:linear-gradient(180deg,#faf7ef 0%,#f5efe2 100%); background-attachment:fixed; }

/* —— "更多"按钮：加入香槟金 hover，提升质感 —— */
.vh-sec-head__more{ border-color:var(--vh-border-strong); color:var(--vh-text-2); }
.vh-sec-head__more:hover{
  border-color:var(--vh-gold-l);
  color:var(--vh-gold);
  box-shadow:0 10px 24px rgba(200,161,94,.18);
}
.vh-sec-head__more:hover > svg{
  background:linear-gradient(135deg,#b8860b 0%,#c8a15e 100%);
  color:#fff;
  box-shadow:0 6px 14px rgba(200,161,94,.4);
}

/* —— 广告占位块：花哨彩色巨块 → 克制高级空位 —— */
.vh-adgrid{
  gap:14px !important;
  background:transparent !important;
  border-radius:0 !important;
  overflow:visible !important;
}
.vh-adcard{ border-radius:16px !important; overflow:hidden; }
.vh-adcard--bg{
  aspect-ratio:32/5 !important;
  background:
    radial-gradient(130% 140% at 0% 0%, #f6fcf9 0%, rgba(255,246,250,0) 58%),
    linear-gradient(135deg, #f3faf6 0%, #eaf2ed 100%) !important;
  border:1px dashed var(--vh-border-strong) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);
}
.vh-adcard--bg .vh-adcard__txt{
  color:var(--vh-text-3) !important;
  text-shadow:none !important;
  font-weight:600;
  letter-spacing:.08em;
}
.vh-adcard--bg .vh-adcard__badge{
  background:var(--vh-gold-soft) !important;
  color:var(--vh-gold) !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.vh-adcard:hover{ filter:none !important; }
.vh-adcard--bg:hover{
  border-color:var(--vh-primary-l) !important;
  box-shadow:0 10px 26px rgba(224,179,74,.10);
}

/* ============================================================
 *  HIGH-END HEADER · 高端大气头部（追加覆盖 · 最终生效层）
 *  方向：通透白玻璃 + 香槟金点缀 + 克制留白 + 大气字距
 * ============================================================ */
/* 顶栏：更通透的白玻璃 + 大气高度 + 发丝金描边 */
.vh-top{
  background:linear-gradient(180deg, rgba(255,255,255,.93), rgba(255,252,253,.86)) !important;
  -webkit-backdrop-filter:saturate(150%) blur(20px);
  backdrop-filter:saturate(150%) blur(20px);
  border-bottom:1px solid rgba(200,161,94,.20) !important;
  box-shadow:0 10px 34px rgba(120,92,20,.06) !important;
}
/* 顶部流光线 → 极细静态金玫渐变（去动效廉价感） */
.vh-top::before{
  height:2px !important;
  background:linear-gradient(90deg, transparent 0%, #e6c489 18%, #e0b34a 50%, #e6c489 82%, transparent 100%) !important;
  animation:none !important;
  opacity:.85;
}
/* 内区大气留白 */
.vh-top__inner{ padding:15px var(--vh-pad-x); gap:16px; }

/* —— 应需求：删除 logo 顶栏（保留下方分类导航）—— */
.vh-top__inner{ display:none !important; }
/* logo 行去掉后，顶栏容器不再需要额外描边/阴影，交给分类导航当顶栏 */
.vh-top{ border-bottom:none !important; box-shadow:none !important; background:transparent !important; }
.vh-top::before{ display:none !important; }

/* Logo：更大、更从容、字距精致，玫红→酒红更显贵气 */
.vh-mark, .vh-mark svg{ width:42px; height:42px; }
.vh-brand{ gap:13px; }
.vh-brand__name{
  font-size:23px;
  letter-spacing:.08em;
  background:linear-gradient(135deg,#d9ad3f 0%,#9a7409 45%,#5c4304 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* 胶囊：香槟金+玫瑰的高级玻璃描边 */
.vh-top__act--pill{
  height:36px !important;
  border:1px solid rgba(200,161,94,.38) !important;
  background:rgba(255,255,255,.72) !important;
  color:#2b7a4f !important;
  box-shadow:0 2px 10px rgba(120,92,20,.06), inset 0 1px 0 rgba(255,255,255,.7) !important;
  letter-spacing:.04em;
}
.vh-top__act--pill:hover{
  color:#fff !important;
  border-color:transparent !important;
  background:linear-gradient(135deg,#e6c489 0%,#e0b34a 58%,#a67c0a 100%) !important;
  box-shadow:0 8px 22px rgba(184,134,11,.26) !important;
  transform:translateY(-1px);
}
.vh-top__act--pill:hover .vh-top__act-ic{ color:#fff; }

/* ============================================================
 *  NAV PREMIUM · 高端导航（翡翠胶囊填充 · 桌面最终生效层）
 *  白底通透 + 精致翡翠渐变胶囊高亮，干净大气
 * ============================================================ */
.vh-topnav{
  background:#ffffff !important;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border-top:1px solid var(--vh-border) !important;
  border-bottom:1px solid var(--vh-border) !important;
  box-shadow:0 1px 0 rgba(15,23,42,.03) !important;
  position:relative;
}
.vh-topnav::before{ content:none !important; }
.vh-topnav__track{
  gap:3px !important;
  padding:9px var(--vh-pad-x) !important;
  align-items:center !important;
  max-width:none !important;
  margin:0 !important;
}
/* 普通项：沉稳炭墨绿字 + 大气字距 + 胶囊底 */
.vh-topnav__item{
  color:#6f6a62 !important;
  font-size:14.5px !important;
  font-weight:600 !important;
  letter-spacing:.05em !important;
  padding:8px 17px !important;
  border-radius:999px !important;
  background:transparent !important;
  box-shadow:none !important;
  position:relative;
  transition:color .22s var(--vh-ease), background .22s var(--vh-ease) !important;
}
/* 关闭旧版细线指示器 */
.vh-topnav__item::after,
.vh-topnav__item:not(.is-active)::after{ content:none !important; display:none !important; }
/* hover：文字转深绿 + 淡翡翠胶囊底 */
.vh-topnav__item:hover{
  color:var(--vh-primary-d) !important;
  background:rgba(184,134,11,.08) !important;
}
/* 激活项：翡翠渐变胶囊 + 白字 + 柔和落影（精致不刺眼） */
.vh-topnav__item.is-active,
.vh-topnav__item--home.is-active{
  color:#ffffff !important;
  font-weight:700 !important;
  background:linear-gradient(135deg,#ecc766 0%,#a67c0a 100%) !important;
  box-shadow:0 4px 12px -2px rgba(184,134,11,.4) !important;
}
/* 首页默认色与其它项一致，激活时才点亮 */
.vh-topnav__item--home{ color:#6f6a62 !important; }
.vh-topnav__item--home:hover{ color:var(--vh-primary-d) !important; background:rgba(184,134,11,.08) !important; }

/* ============================================================
 *  SERVICE ICONS · 服务图标格方正化（与 banner 统一）
 * ============================================================ */
.vh-svc__icon,
.vh-svc--img .vh-svc__icon,
.vh-svc--mono .vh-svc__icon{
  border-radius:0 !important;                 /* 方正直角 */
  border:1px solid var(--vh-border) !important;
  background:#ffffff !important;
  box-shadow:0 2px 8px rgba(120,92,20,.06) !important;
  transition:transform .22s var(--vh-ease), box-shadow .22s var(--vh-ease), border-color .22s var(--vh-ease) !important;
}
.vh-svc:hover .vh-svc__icon{
  box-shadow:0 8px 18px rgba(224,179,74,.15) !important;
  border-color:var(--vh-primary-l) !important;
}

/* 固定 5 个一排；图标放大填满格子，减少居中后的空隙 */
.vh-svcblock .vh-svclist{
  grid-template-columns:repeat(5, 1fr) !important;
  justify-content:stretch !important;
  gap:16px 10px !important;
}
.vh-svc__icon{ max-width:76px !important; }

/* ============================================================
 *  PREMIUM VIDEO CARDS · 高端片单卡片（方正封面 + 遮罩 + 磨砂标签 + 圆形播放键）
 * ============================================================ */
.vh-grid{ gap:18px 14px !important; }
@media (min-width:1200px){ .vh-grid{ gap:22px 16px !important; } }

.vh-card{ gap:10px !important; }
.vh-card__cover{
  border-radius:0 !important;                 /* 方正封面，与整站统一 */
  box-shadow:0 6px 20px rgba(120,92,20,.10), inset 0 0 0 1px rgba(0,0,0,.05) !important;
  overflow:hidden;
}
/* 底部渐变遮罩：增加层次、让分类标签更清晰 */
.vh-card__cover::before{
  content:"" !important;
  position:absolute !important;
  left:0; right:0; bottom:0; top:auto !important;
  height:46% !important;
  background:linear-gradient(180deg, rgba(20,8,16,0) 0%, rgba(20,8,16,.42) 100%) !important;
  z-index:1 !important;
  pointer-events:none !important;
  border-radius:0 !important;
  transition:opacity .3s var(--vh-ease) !important;
}
/* 用封面 ::after 造播放按钮：默认隐藏，hover 居中浮现的圆形玫瑰渐变按钮 */
.vh-card__cover::after{
  content:"" !important;
  position:absolute !important;
  top:50% !important; left:50% !important;
  width:54px !important; height:54px !important;
  transform:translate(-50%,-50%) scale(.8) !important;
  border-radius:50% !important;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") 56% center / 24px 24px no-repeat,
    linear-gradient(135deg,#40cc7a 0%,#a67c0a 100%) !important;
  box-shadow:0 10px 26px rgba(8,152,63,.5), inset 0 1px 0 rgba(255,255,255,.35) !important;
  opacity:0 !important;
  z-index:4 !important;
  pointer-events:none !important;
  transition:opacity .25s var(--vh-ease), transform .3s var(--vh-ease) !important;
}
.vh-card:hover .vh-card__cover::after{
  opacity:1 !important;
  transform:translate(-50%,-50%) scale(1) !important;
}
.vh-card__cover img{ transition:transform .5s var(--vh-ease) !important; }
.vh-card:hover{ transform:translateY(-5px) !important; }
.vh-card:hover .vh-card__cover{ box-shadow:0 16px 36px rgba(224,179,74,.22), inset 0 0 0 1px rgba(0,0,0,.05) !important; }
.vh-card:hover .vh-card__cover img{ transform:scale(1.06) !important; }

/* 分类标签：精致磨砂玻璃 */
.vh-card__cat{
  bottom:8px !important; right:8px !important;
  padding:3px 8px !important;
  background:rgba(20,8,16,.46) !important;
  -webkit-backdrop-filter:blur(8px) saturate(160%) !important;
  backdrop-filter:blur(8px) saturate(160%) !important;
  border:1px solid rgba(255,255,255,.20) !important;
  color:#fff !important;
  font-weight:600 !important;
  letter-spacing:.05em !important;
  border-radius:6px !important;
  z-index:3 !important;
}

/* 播放键：hover 居中浮现的圆形玫瑰渐变按钮 */
.vh-card__play{
  background:linear-gradient(180deg, rgba(20,8,16,0) 45%, rgba(20,8,16,.30) 100%) !important;
  z-index:2 !important;
}
.vh-card__play svg{
  width:26px !important;
  height:26px !important;
  padding:13px !important;
  box-sizing:content-box !important;
  border-radius:50% !important;
  background:linear-gradient(135deg,#40cc7a 0%,#a67c0a 100%) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(8,152,63,.5), inset 0 1px 0 rgba(255,255,255,.35) !important;
  filter:none !important;
  transform:translateY(8px) scale(.82) !important;
}
.vh-card:hover .vh-card__play svg{ transform:translateY(0) scale(1) !important; }

/* 标题：精修排版 + hover 变玫红 */
.vh-card__title{
  font-size:13.5px !important;
  font-weight:600 !important;
  line-height:1.4 !important;
  letter-spacing:.005em !important;
  color:var(--vh-text) !important;
  transition:color .2s var(--vh-ease) !important;
}
.vh-card:hover .vh-card__title{ color:var(--vh-primary-d) !important; }

/* ============================================================
 *  Desktop / PC Layer  ·  大气电脑端（追加层，不改动既有移动端规则）
 *  设计要点：
 *   1) 统一居中容器 —— 头部与所有内容区左右边缘精确对齐，宽屏不再拉扯满幅
 *   2) 栅格加密 —— 桌面 5~6 列精致海报，配合既有 hover/播放键
 *   3) 影院级播放页 —— 播放器按视口高度收敛并居中，杜绝"巨屏拉伸"
 *   4) 头部升级 —— 常驻吸顶、更大品牌与导航、满幅底色内容对齐
 * ============================================================ */
@media (min-width:1024px){
  :root{
    --vh-maxw:1340px;        /* 统一内容最大宽度 */
    --vh-section-gap:44px;   /* 桌面更疏朗的分区间距 */
  }

  /* —— 统一居中容器：头部 inner / 导航 / 各内容区共用同一套边界 —— */
  .vh-top__inner,
  .vh-topnav__track,
  .vh-bnstrip,
  .vh-marquee,
  .vh-svcblock,
  .vh-section,
  .vh-crumb--page,
  .vh-show-crumb,
  .vh-show-hero,
  .vh-show-meta-row,
  .vh-show-episodes,
  .vh-show-plotcard,
  .vh-foot{
    max-width:var(--vh-maxw);
    margin-left:auto;
    margin-right:auto;
    padding-left:var(--vh-pad-x);
    padding-right:var(--vh-pad-x);
    box-sizing:border-box;
  }

  /* —— 顶栏常驻吸顶（promo 之外的 top+nav 更好用） —— */
  .vh-top{
    position:sticky; top:0; z-index:40;
    box-shadow:0 1px 0 var(--vh-border), 0 8px 24px -18px rgba(15,23,42,.28);
  }
  .vh-top__inner{ padding-top:14px; padding-bottom:14px; gap:22px; }
  .vh-top__search{ height:42px; max-width:560px; }
  .vh-brand__name{ font-size:23px; }
  .vh-mark, .vh-mark svg{ width:42px; height:42px; }

  /* promo：满幅底色 + 内容对齐主容器（full-bleed content trick） */
  .vh-promo{
    padding-left:max(var(--vh-pad-x), calc((100% - var(--vh-maxw))/2 + var(--vh-pad-x)));
    padding-right:max(var(--vh-pad-x), calc((100% - var(--vh-maxw))/2 + var(--vh-pad-x)));
  }

  /* —— 分类导航：与居中内容容器左右对齐（覆盖既有满幅 !important 规则）—— */
  .vh-topnav__track{
    max-width:var(--vh-maxw) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:var(--vh-pad-x) !important;
    padding-right:var(--vh-pad-x) !important;
    gap:4px !important;
    justify-content:flex-start;
  }
  .vh-topnav__item{ font-size:14.5px !important; }

  /* —— Banner 条：桌面三张并排（取消横滑） —— */
  .vh-bnstrip{ margin-top:24px; overflow:visible; }
  .vh-bnstrip__track{ overflow:visible; gap:18px; }
  .vh-bn{ flex:1 1 0; min-width:0; }

  /* —— 分区标题放大，更具编辑气质 —— */
  .vh-sec-head__title{ font-size:22px; }
  .vh-sec-head__sub{ font-size:12.5px; }

  /* —— 片单网格：桌面 5 列、更大 gap —— */
  .vh-grid{ grid-template-columns:repeat(5, 1fr); gap:22px 18px; }
  .vh-card__title{ font-size:14px !important; }
  .vh-card:hover{ transform:translateY(-4px); }

  /* —— 播放页：影院级 · 播放器按视口高度收敛并居中 —— */
  .vh-show-crumb{ padding-top:18px; }
  .vh-show-hero{ border-radius:22px; }
  .vh-show-hero__inner{ justify-items:center; padding:28px; }
  .vh-show-player{
    width:min(100%, calc(76vh * 16 / 9));
    margin-left:auto; margin-right:auto;
    border-radius:16px;
  }
  .vh-show-episodes,
  .vh-show-plotcard{ border-radius:20px; }
  .vh-show-eps{ grid-template-columns:repeat(auto-fill, minmax(88px, 1fr)); }
}

/* —— 大屏：加宽容器 + 加密到 6 列 —— */
@media (min-width:1440px){
  :root{ --vh-maxw:1400px; }
  .vh-grid{ grid-template-columns:repeat(6, 1fr); }
}

/* —— 超宽屏：进一步加宽，保持居中留白 —— */
@media (min-width:1760px){
  :root{ --vh-maxw:1520px; }
}

/* ============================================================
 *  VIDEO CARD v2 · 视频站封面（最终生效层 · 覆盖以上卡片样式）
 *  横版封面 + HD角标(右上) + 时长(右下) + 分类(左下) + 频道·观看量
 * ============================================================ */
.vh-card__cover{ border-radius:12px !important; }
/* 去掉 NEW 角标（不再显示） */
.vh-card__new{ display:none !important; }
/* HD 角标（右上，粉红渐变） */
.vh-card__hd{
  position:absolute; top:8px; right:8px; z-index:4;
  padding:3px 8px; border-radius:7px;
  font-size:11px; font-weight:800; letter-spacing:.04em; line-height:1.3;
  color:#fff; background:linear-gradient(135deg,#e0b34a,#b8860b);
  box-shadow:0 2px 8px rgba(184,134,11,.45);
}
/* 时长（右下，深底胶囊） */
.vh-card__dur{
  position:absolute; right:8px; bottom:8px; z-index:4;
  padding:2px 7px; border-radius:6px;
  font-size:12px; font-weight:700; line-height:1.5;
  color:#fff; background:rgba(0,0,0,.78);
  font-variant-numeric:tabular-nums;
}
/* 分类角标：移到左下，避免和时长重叠 */
.vh-card__cat{
  left:8px !important; right:auto !important; bottom:8px !important; top:auto !important;
}
/* 频道 · 观看量 元信息（覆盖全局 display:none） */
.vh-card__meta{
  display:flex !important;
  align-items:center; gap:6px;
  margin:3px 2px 0 !important; padding:0 !important;
  font-size:12.5px; color:#8a978f; font-weight:500;
  line-height:1.4; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.vh-card__meta .vh-card__chan{ color:#5a6b60; flex-shrink:0; }
.vh-card__meta .vh-card__dot{ opacity:.55; flex-shrink:0; }
.vh-card__meta .vh-card__views{ overflow:hidden; text-overflow:ellipsis; }

/* ============================================================
 *  SECTION HEADER · 样式4「下划金翠线」（用户所选 · 最终生效层）
 *  纯净大标题 + 翠→金短下划线 + 副标题；更多为白底圆角描边按钮
 * ============================================================ */
.vh-sec-head{
  align-items:flex-end;
  gap:16px;
  margin-bottom:20px;
  padding-bottom:0;
  position:relative;
}
/* 本样式不需要整条分割线 */
.vh-sec-head::after{ display:none !important; }
.vh-sec-head__l{
  padding-left:0 !important;
  gap:0;
}
.vh-sec-head__l::before{ display:none !important; }

/* 样式4 无英文眉标 */
.vh-eyebrow{ display:none !important; }

/* 主标题：暖炭黑纯色 + 底部「翠→金」短下划线 */
.vh-sec-head__title{
  margin:0;
  display:inline-block;
  width:fit-content;
  position:relative;
  padding-bottom:11px;
  font-size:23px;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.14;
  color:var(--vh-text) !important;
  background:none !important;
  -webkit-text-fill-color:currentColor !important;
}
.vh-sec-head__title::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:52px; height:3px; border-radius:3px;
  background:linear-gradient(90deg,#b8860b 0%,#c8a15e 100%);
}
.vh-sec-head__sub{
  margin:9px 0 0;
  font-size:12.5px;
  font-weight:500;
  color:#93a29a;
  letter-spacing:.03em;
}

/* 更多按钮：白底圆角描边 + 翡翠箭头（去掉圆形底） */
.vh-sec-head__more{
  align-self:center;
  padding:7px 14px !important;
  gap:7px;
  background:#fff;
  border:1px solid var(--vh-border-strong);
  border-radius:10px;
  color:var(--vh-text-2);
  box-shadow:0 1px 2px rgba(15,23,42,.05);
}
.vh-sec-head__more > svg{
  background:none !important;
  color:#b8860b;
  padding:0 !important;
  width:14px !important; height:14px !important; max-width:14px !important;
  border-radius:0 !important;
}
.vh-sec-head__more:hover{
  border-color:rgba(224,179,74,.42);
  color:#b8860b;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(224,179,74,.14);
}
.vh-sec-head__more:hover > svg{
  background:none !important;
  color:#b8860b;
  transform:translateX(3px);
  box-shadow:none !important;
}

/* 桌面：标题更大气 */
@media (min-width:1024px){
  .vh-sec-head{ margin-bottom:22px; }
  .vh-sec-head__title{ font-size:25px; }
  .vh-sec-head__sub{ font-size:13px; }
}
/* 手机：紧凑一点 */
@media (max-width:640px){
  .vh-sec-head{ margin-bottom:15px; gap:12px; }
  .vh-sec-head__title{ font-size:19px; padding-bottom:9px; }
  .vh-sec-head__title::after{ width:44px; }
  .vh-sec-head__sub{ font-size:11.5px; margin-top:7px; }
}

/* ============================================================
 *  桌面端 = 手机端（用户要求：电脑端直接显示手机版）
 *  ≥768px 时：把整站收敛为「居中的手机宽度单列」，并强制所有
 *  布局回退到移动端取值。作为最终生效层，覆盖上面全部桌面规则。
 * ============================================================ */
@media (min-width:768px){
  :root{
    --vh-maxw:480px !important;      /* 手机列宽 */
    --vh-pad-x:16px !important;      /* 手机内边距 */
    --vh-section-gap:26px !important;
  }
  /* 手机列两侧留白背景 */
  body, .vh-body{ background:#efe9db !important; }

  /* 所有主区块 → 480 居中单列 */
  .vh-top, .vh-top__inner,
  .vh-topnav, .vh-topnav__track,
  .vh-promo, .vh-bnstrip, .vh-marquee,
  .vh-svcblock, .vh-section,
  .vh-crumb--page, .vh-show-crumb, .vh-show-hero,
  .vh-show-meta-row, .vh-show-episodes, .vh-show-plotcard,
  .vh-foot{
    max-width:480px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box !important;
  }
  /* 顶栏回退：不吸顶、不通栏投影 */
  .vh-top{ position:relative !important; box-shadow:none !important; }
  /* promo 取消桌面 full-bleed 巨型内边距 */
  .vh-promo{ padding-left:16px !important; padding-right:16px !important; }

  /* 视频网格 → 手机 2 列 */
  .vh-grid{ grid-template-columns:repeat(2, 1fr) !important; gap:12px !important; }
  /* 首页图标九宫格 → 手机 5 列 */
  .vh-svclist{ grid-template-columns:repeat(5, 1fr) !important; gap:14px 8px !important; }
  .vh-svcblock--cat .vh-svclist{ grid-template-columns:repeat(5, minmax(0,1fr)) !important; }
  /* 海报横滑 → 手机比例 */
  .vh-poster{ flex:0 0 44% !important; }
  .vh-rail--wide .vh-poster{ flex:0 0 60% !important; }
  /* Banner 条 → 手机横滑（单张为主） */
  .vh-bnstrip{ overflow:hidden !important; }
  .vh-bnstrip__track{ overflow-x:auto !important; gap:10px !important; }
  .vh-bn{ flex:0 0 88% !important; }
  /* 分类导航 → 手机横滑（左对齐、限宽、可滚动） */
  .vh-topnav__track{
    justify-content:flex-start !important;
    overflow-x:auto !important;
    gap:2px !important;
    padding:6px 16px !important;
  }
  .vh-topnav__item{ font-size:13.5px !important; }
  /* 标题 / 卡片字号回退手机端 */
  .vh-sec-head__title{ font-size:19px !important; }
  .vh-sec-head__sub{ font-size:11.5px !important; }
  .vh-card__title{ font-size:13px !important; }
  /* 播放页：播放器满列宽、剧集小格 */
  .vh-show-player{ width:100% !important; }
  .vh-show-hero__inner{ padding:14px !important; }
  .vh-show-eps{ grid-template-columns:repeat(auto-fill, minmax(72px,1fr)) !important; }

  /* —— 头部对齐修复：白色导航条与促销条同宽，导航项与促销内容左对齐 —— */
  /* .vh-topnav 嵌套在 .vh-top 内，去掉 .vh-top 水平内边距，避免导航被二次缩进 */
  .vh-top{ padding-left:0 !important; padding-right:0 !important; }
  /* 品牌行仍保留 16px 内边距（如显示） */
  .vh-top__inner{ padding-left:16px !important; padding-right:16px !important; }
  /* 导航白条撑满整列（与促销条同宽），内部项由 track 的 16px 统一内缩对齐 */
  .vh-topnav{ max-width:none !important; padding-left:0 !important; padding-right:0 !important; }
  .vh-topnav__track{ max-width:none !important; padding-left:16px !important; padding-right:16px !important; }
}

/* == XIGUA-ADS-SWITCH START (auto, do not edit) == */
.vh-bnstrip,.vh-svcblock:not(.vh-svcblock--cat),.vh-svcblock--cat,.vh-section--ads,.vh-show-svccard,.vh-floatad,.vh-card--ad,.vh-section--film{display:none !important;}
/* == XIGUA-ADS-SWITCH END == */
