/* ════════════════════════════════════════════
   设计系统 Design Tokens
   ════════════════════════════════════════════ */
:root{
    --jx-blue:#1e6fff;
    --jx-cyan:#00c6ff;
    --jx-ink:#0b1626;
    --jx-ink-2:#0e2036;
    --jx-text:#eaf2ff;
    --jx-muted:#93a4bd;
    --jx-radius:16px;
}

/* ════════════ Hero 主视觉 ════════════ */
.jx-hero{
    position:relative;
    overflow:hidden;
    color:var(--jx-text);
    background:linear-gradient(120deg,#081120 0%, #0b1e33 55%, #0a2a44 100%);
    padding:96px 0 72px;
}
.jx-hero-bg{
    position:absolute; inset:0;
    background:url("../images/hero-bg.webp") center 60%/cover no-repeat;
    opacity:.28;
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.15) 70%,transparent);
            mask-image:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.15) 70%,transparent);
    pointer-events:none;
}
.jx-hero::after{ /* 点阵网格 */
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(rgba(120,180,255,.14) 1px, transparent 1px);
    background-size:26px 26px;
    -webkit-mask-image:radial-gradient(ellipse at 30% 20%, #000 0%, transparent 70%);
            mask-image:radial-gradient(ellipse at 30% 20%, #000 0%, transparent 70%);
}
.jx-hero-orb{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; pointer-events:none; }
.jx-orb-1{ width:420px; height:420px; left:-120px; top:-140px; background:radial-gradient(circle,#1e6fff, transparent 70%); animation:jxFloat 9s ease-in-out infinite; }
.jx-orb-2{ width:360px; height:360px; right:-100px; bottom:-160px; background:radial-gradient(circle,#00c6ff, transparent 70%); animation:jxFloat 11s ease-in-out infinite reverse; }
@keyframes jxFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-24px)} }

.jx-hero-inner{ position:relative; z-index:2; display:flex; align-items:center; gap:56px; }
.jx-hero-copy{ flex:1 1 55%; min-width:0; }
.jx-hero-visual{ flex:1 1 45%; min-width:0; }

.jx-hero-badge{
    display:inline-flex; align-items:center; gap:8px;
    padding:7px 16px; border-radius:999px;
    background:rgba(30,111,255,.16); border:1px solid rgba(0,198,255,.35);
    color:#7fd0ff; font-size:13px; letter-spacing:.5px;
    backdrop-filter:blur(6px);
}
.jx-hero-badge .jx-dot{ width:7px; height:7px; border-radius:50%; background:var(--jx-cyan); box-shadow:0 0 0 0 rgba(0,198,255,.6); animation:jxPulse 2s infinite; }
@keyframes jxPulse{ 0%{box-shadow:0 0 0 0 rgba(0,198,255,.5)} 70%{box-shadow:0 0 0 9px rgba(0,198,255,0)} 100%{box-shadow:0 0 0 0 rgba(0,198,255,0)} }

.jx-hero-title{
    margin:22px 0 16px; font-size:46px; line-height:1.18; font-weight:800; color:#fff;
    letter-spacing:.5px;
}
.jx-hero-title em{
    font-style:normal;
    background:linear-gradient(92deg,#4da3ff, #00e0ff);
    -webkit-background-clip:text; background-clip:text; color:transparent;
}
.jx-hero-sub{ color:var(--jx-muted); font-size:16px; line-height:1.8; max-width:520px; margin:0 0 28px; }

.jx-hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.jx-btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 28px; border-radius:12px; font-size:15px; font-weight:600;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.jx-btn-primary{
    color:#fff; background:linear-gradient(92deg,var(--jx-blue), var(--jx-cyan));
    box-shadow:0 8px 24px rgba(0,150,255,.35);
}
.jx-btn-primary:hover{ transform:translateY(-3px); box-shadow:0 14px 32px rgba(0,170,255,.45); }
.jx-btn-primary svg{ transition:transform .25s ease; }
.jx-btn-primary:hover svg{ transform:translateX(4px); }
.jx-btn-ghost{
    color:var(--jx-text); border:1px solid rgba(147,164,189,.4); background:rgba(255,255,255,.04);
    backdrop-filter:blur(6px);
}
.jx-btn-ghost:hover{ border-color:var(--jx-cyan); color:#7fd0ff; transform:translateY(-3px); }

.jx-hero-stats{
    list-style:none; display:flex; gap:40px; margin:36px 0 0; padding:22px 0 0;
    border-top:1px solid rgba(147,164,189,.2);
}
.jx-hero-stats li{ display:flex; flex-direction:column; gap:4px; }
.jx-hero-stats strong{ font-size:26px; font-weight:800; color:#fff; font-variant-numeric:tabular-nums; }
.jx-hero-stats span{ font-size:13px; color:var(--jx-muted); }

/* Hero 右侧视觉 */
.jx-hero-frame{
    position:relative; border-radius:20px; overflow:hidden;
    box-shadow:0 24px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(0,198,255,.25);
    transform:perspective(1200px) rotateY(-6deg) rotateX(2deg);
    transition:transform .5s ease;
}
.jx-hero-frame:hover{ transform:perspective(1200px) rotateY(0) rotateX(0); }
.jx-hero-frame img{ display:block; width:100%; height:auto; }
.jx-float-chip{
    position:absolute; display:inline-flex; align-items:center; gap:7px;
    padding:8px 14px; border-radius:999px; font-size:12.5px; font-weight:600; color:#dff3ff;
    background:rgba(8,20,36,.72); border:1px solid rgba(0,198,255,.4);
    backdrop-filter:blur(8px);
}
.jx-float-chip i{ width:7px; height:7px; border-radius:50%; background:var(--jx-cyan); }
.jx-chip-1{ top:14%; left:8%; animation:jxFloat 6s ease-in-out infinite; }
.jx-chip-2{ top:44%; right:6%; animation:jxFloat 7s ease-in-out infinite .8s; }
.jx-chip-3{ bottom:12%; left:16%; animation:jxFloat 8s ease-in-out infinite .4s; }

/* ════════════ 测评库渐变图标卡 ════════════ */
.ceping-nav-list{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin:0; padding:0; list-style:none; }
.ceping-card{
    position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px;
    padding:22px 18px 20px; border-radius:var(--jx-radius); overflow:hidden;
    color:#fff; text-decoration:none;
    transition:transform .3s ease, box-shadow .3s ease;
    isolation:isolate;
}
.ceping-card::after{ /* 高光扫过 */
    content:""; position:absolute; inset:0; z-index:0;
    background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
    transform:translateX(-120%); transition:transform .6s ease;
}
.ceping-card:hover{ transform:translateY(-6px); }
.ceping-card:hover::after{ transform:translateX(120%); }
.ceping-card.g-blue  { background:linear-gradient(135deg,#1e6fff,#00a6ff); box-shadow:0 10px 26px rgba(30,111,255,.28); }
.ceping-card.g-purple{ background:linear-gradient(135deg,#7c3aed,#a06bff); box-shadow:0 10px 26px rgba(124,58,237,.28); }
.ceping-card.g-cyan  { background:linear-gradient(135deg,#0891b2,#22d3ee); box-shadow:0 10px 26px rgba(8,145,178,.28); }
.ceping-card.g-orange{ background:linear-gradient(135deg,#f59e0b,#fb7c1a); box-shadow:0 10px 26px rgba(245,158,11,.28); }
.ceping-card.g-green { background:linear-gradient(135deg,#0ea371,#34d399); box-shadow:0 10px 26px rgba(14,163,113,.28); }
.ceping-card:hover{ box-shadow:0 18px 40px rgba(0,0,0,.18); }

.ceping-icon{
    display:inline-flex; align-items:center; justify-content:center;
    width:46px; height:46px; border-radius:13px; margin-bottom:6px;
    background:rgba(255,255,255,.18); backdrop-filter:blur(4px);
    transition:transform .3s ease;
}
.ceping-icon svg{ width:25px; height:25px; }
.ceping-card:hover .ceping-icon{ transform:scale(1.1) rotate(-6deg); }
.ceping-nav-title{ font-size:15.5px; font-weight:700; }
.ceping-nav-desc{ font-size:12.5px; opacity:.85; }
.ceping-arrow{ position:absolute; right:14px; bottom:14px; opacity:.6; transform:translateX(-6px); transition:all .3s ease; }
.ceping-card:hover .ceping-arrow{ opacity:1; transform:translateX(0); }

/* ════════════ 商家库头像卡 ════════════ */
.vendor-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; }
.vendor-card{
    display:flex; align-items:center; gap:12px; padding:14px 16px;
    background:#fff; border:1px solid #eef1f6; border-radius:14px;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.vendor-card:hover{ transform:translateY(-4px); border-color:rgba(30,111,255,.4); box-shadow:0 12px 28px rgba(30,111,255,.12); }
.vendor-avatar{
    flex:0 0 44px; width:44px; height:44px; border-radius:12px;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:19px; font-weight:800; color:#fff;
    background:linear-gradient(135deg,var(--jx-blue), var(--jx-cyan));
}
.vendor-info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.vendor-info strong{ font-size:15px; color:#1d2b3f; }
.vendor-info em{ font-style:normal; font-size:12px; color:#8a97a8; }
.vendor-arrow{ margin-left:auto; color:#b7c2d0; transition:all .25s ease; }
.vendor-card:hover .vendor-arrow{ color:var(--jx-blue); transform:translateX(3px); }

/* ════════════ 滚动显现 ════════════ */
.jx-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.jx-reveal.jx-in{ opacity:1; transform:none; }

/* ════════════ 响应式 ════════════ */
@media (max-width: 992px){
    .jx-hero{ padding:84px 0 56px; }
    .jx-hero-inner{ flex-direction:column; gap:36px; }
    .jx-hero-title{ font-size:36px; }
    .ceping-nav-list{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 640px){
    .jx-hero-title{ font-size:30px; }
    .jx-hero-stats{ gap:22px; flex-wrap:wrap; }
    .jx-hero-stats strong{ font-size:21px; }
    .ceping-nav-list{ grid-template-columns:repeat(2,1fr); gap:10px; }
    .ceping-card{ padding:18px 14px 16px; }
    .ceping-icon{ width:40px; height:40px; }
    .vendor-grid{ grid-template-columns:1fr; }
}

/* ════════════ 测评文章布局 ════════════ */
.rv-card.rv-score{
    display:flex; align-items:center; gap:20px;
    margin:0 0 22px; padding:18px 22px; border-radius:16px;
    background:linear-gradient(120deg,#0b1e33,#0a2a44); color:#eaf2ff;
    box-shadow:0 10px 26px rgba(8,20,40,.25);
}
.rv-score-num strong{ font-size:40px; font-weight:800; color:#fff; }
.rv-score-num span{ font-size:14px; color:#93a4bd; margin-left:2px; }
.rv-stars{ font-size:18px; letter-spacing:2px; color:#3a4a61; }
.rv-star.on{ color:#ffb400; }
.rv-score-meta{ display:flex; align-items:center; gap:10px; margin-top:4px; }
.rv-vendor{ display:inline-flex; padding:3px 12px; border-radius:999px; background:rgba(0,198,255,.16); border:1px solid rgba(0,198,255,.4); color:#7fd0ff; font-size:12.5px; }
.rv-price{ font-style:normal; color:#ffd27a; font-weight:700; font-size:14px; }
.rv-h{ margin:26px 0 12px; font-size:18px; font-weight:700; color:#1d2b3f; border-left:4px solid var(--jx-blue); padding-left:10px; }
.rv-table{ width:100%; border-collapse:collapse; border-radius:12px; overflow:hidden; box-shadow:0 0 0 1px #e6ebf2; }
.rv-table th,.rv-table td{ padding:10px 14px; font-size:14px; text-align:left; }
.rv-table th{ width:110px; background:#f2f6fb; color:#5a6b80; font-weight:600; }
.rv-table tr:nth-child(even) td{ background:#eff4fa; }
.rv-proscons{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.rv-col{ border-radius:12px; padding:14px 16px; }
.rv-col h4{ margin:0 0 8px; font-size:15px; }
.rv-col ul{ margin:0; padding-left:18px; }
.rv-col li{ font-size:14px; margin:4px 0; }
.rv-good{ background:#f0faf4; border:1px solid #bfe8cd; } .rv-good h4{ color:#178a4c; }
.rv-bad{ background:#fdf3f2; border:1px solid #f2cdc9; } .rv-bad h4{ color:#c0392b; }

/* ════════════ 商家库 / 商家档案 ════════════ */
.jx-page-head{ margin:6px 0 22px; }
.jx-page-head h1{ font-size:26px; font-weight:800; color:#1d2b3f; margin:0 0 8px; }
.jx-page-head p{ color:#8a97a8; margin:0; }
.vendor-grid-page{ grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.vendor-rate{ margin-left:auto; font-weight:800; color:var(--jx-blue); font-size:16px; }
.vendor-rate i{ font-style:normal; font-size:11px; color:#98a5b5; margin-left:1px; }
.vendor-rate-lg{ font-size:26px; }
.jx-method-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
.jx-method-list li{ font-size:14px; color:#5a6b80; }
.jx-method-list strong{ color:#1d2b3f; margin-right:6px; }
.jx-empty{ padding:40px; text-align:center; color:#98a5b5; background:#f7f9fc; border-radius:12px; }
.rv-vendor-head{ display:flex; align-items:center; gap:16px; margin:6px 0 22px; padding:20px; border-radius:16px; background:linear-gradient(120deg,#0b1e33,#0a2a44); color:#eaf2ff; }
.vendor-avatar-lg{ width:64px; height:64px; font-size:28px; border-radius:16px; }
.rv-vendor-title h1{ font-size:22px; font-weight:800; color:#fff; margin:0 0 4px; }
.rv-vendor-title p{ margin:0; color:#93a4bd; font-size:13.5px; }
.rv-vendor-side{ margin-left:auto; display:flex; align-items:center; gap:12px; }
.jx-btn-sm{ padding:8px 18px; font-size:13px; }
@media (max-width:640px){
    .rv-card.rv-score{ flex-direction:column; align-items:flex-start; gap:10px; }
    .rv-proscons{ grid-template-columns:1fr; }
    .jx-method-list{ grid-template-columns:1fr; }
    .rv-vendor-head{ flex-wrap:wrap; }
    .rv-vendor-side{ margin-left:0; }
}

/* ════════════ 测评卡 v2：评级徽章 + 四维评分条 ════════════ */
.rv-score-top{ display:flex; align-items:center; gap:12px; }
.rv-verdict{ display:inline-flex; padding:4px 12px; border-radius:999px; font-size:13px; font-weight:700; }
.rv-verdict.v-great{ background:linear-gradient(92deg,#ff9d00,#ffb400); color:#fff; box-shadow:0 4px 14px rgba(255,170,0,.4); }
.rv-verdict.v-good { background:rgba(52,211,153,.18); color:#34d399; border:1px solid rgba(52,211,153,.5); }
.rv-verdict.v-ok   { background:rgba(125,211,252,.15); color:#7dd3fc; border:1px solid rgba(125,211,252,.4); }
.rv-verdict.v-warn { background:rgba(248,113,113,.15); color:#f87171; border:1px solid rgba(248,113,113,.4); }
.rv-score-main{ display:flex; flex-direction:column; gap:8px; }
.rv-chip{ font-style:normal; font-size:12.5px; color:#9fb4d4; background:rgba(159,180,212,.12); padding:3px 10px; border-radius:999px; }
.rv-score-bars{ display:flex; flex-direction:column; gap:10px; flex:1; min-width:240px; margin-left:26px; }
.rv-bar{ display:flex; align-items:center; gap:10px; }
.rv-bar-label{ width:48px; font-size:12.5px; color:#93a4bd; text-align:right; }
.rv-bar-track{ flex:1; height:8px; border-radius:99px; background:rgba(147,164,189,.22); overflow:hidden; }
.rv-bar-track i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#1e6fff,#00e0ff); animation:jxBarGrow 1s ease both; transform-origin:left; }
@keyframes jxBarGrow{ from{ transform:scaleX(0);} to{ transform:scaleX(1);} }
.rv-bar-num{ width:26px; font-size:12.5px; color:#7fd0ff; font-weight:700; font-variant-numeric:tabular-nums; }

/* ════════════ 商家库 v2 ════════════ */
.jx-vendors-hero, .jx-vp-hero{ position:relative; overflow:hidden; color:var(--jx-text); background:linear-gradient(120deg,#081120 0%,#0b1e33 55%,#0a2a44 100%); }
.jx-vendors-hero{ padding:52px 0 44px; }
.jx-vendors-hero h1{ font-size:32px; font-weight:800; color:#fff; margin:0 0 10px; }
.jx-vendors-hero p{ color:var(--jx-muted); margin:0 0 22px; max-width:560px; }
.jx-vh-stats{ list-style:none; display:flex; gap:38px; margin:0; padding:0; }
.jx-vh-stats li{ display:flex; flex-direction:column; }
.jx-vh-stats strong{ font-size:26px; font-weight:800; color:#fff; }
.jx-vh-stats strong i{ font-style:normal; font-size:13px; color:#93a4bd; }
.jx-vh-stats span{ font-size:12.5px; color:var(--jx-muted); }

.jx-filter-tabs{ display:flex; gap:10px; margin:0 0 18px; flex-wrap:wrap; }
.jx-ftab{ padding:8px 20px; border-radius:999px; border:1px solid #dfe6ef; background:#fff; color:#5a6b80; font-size:13.5px; cursor:pointer; transition:all .2s; }
.jx-ftab:hover{ border-color:var(--jx-blue); color:var(--jx-blue); }
.jx-ftab.active{ background:linear-gradient(92deg,var(--jx-blue),var(--jx-cyan)); border-color:transparent; color:#fff; box-shadow:0 6px 16px rgba(0,150,255,.3); }

.vcard-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.vcard{ position:relative; display:flex; flex-direction:column; background:#fff; border-radius:16px; overflow:hidden; border:1px solid #e8edf4; transition:transform .25s ease, box-shadow .25s ease; text-decoration:none; }
.vcard:hover{ transform:translateY(-5px); box-shadow:0 16px 36px rgba(15,40,80,.14); }
.vcard-band{ display:block; height:64px; }
.vcard.g-blue .vcard-band{ background:linear-gradient(120deg,#1e6fff,#00c6ff); }
.vcard.g-purple .vcard-band{ background:linear-gradient(120deg,#7c3aed,#a06bff); }
.vcard.g-cyan .vcard-band{ background:linear-gradient(120deg,#0891b2,#22d3ee); }
.vcard.g-orange .vcard-band{ background:linear-gradient(120deg,#f59e0b,#fb7c1a); }
.vcard.g-green .vcard-band{ background:linear-gradient(120deg,#0ea371,#34d399); }
.vcard.g-blue .vcard-avatar{ background:linear-gradient(135deg,#1e6fff,#00a6ff); }
.vcard.g-purple .vcard-avatar{ background:linear-gradient(135deg,#7c3aed,#a06bff); }
.vcard.g-cyan .vcard-avatar{ background:linear-gradient(135deg,#0891b2,#22d3ee); }
.vcard.g-orange .vcard-avatar{ background:linear-gradient(135deg,#f59e0b,#fb7c1a); }
.vcard.g-green .vcard-avatar{ background:linear-gradient(135deg,#0ea371,#34d399); }
.vcard-avatar{ position:absolute; top:36px; left:18px; width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:800; color:#fff; box-shadow:0 8px 20px rgba(0,0,0,.22); border:3px solid #fff; }
.vcard-avatar-lg{ width:72px; height:72px; font-size:30px; }
.vcard-body{ padding:20px 18px 14px 18px; margin-top:22px; display:flex; flex-direction:column; gap:6px; }
.vcard-name{ font-size:17px; font-weight:700; color:#1d2b3f; }
.vcard-stars{ color:#d5dde8; font-size:14px; letter-spacing:2px; }
.vcard-stars i, .vcard-stars b{ font-style:normal; font-weight:400; }
.vcard-stars .on, .vcard-stars b.on{ color:#ffb400; }
.vcard-meta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
.vcard-meta em{ font-style:normal; font-size:11.5px; color:#66788e; background:#f2f6fb; padding:3px 10px; border-radius:999px; }
.vcard-meta em.vcard-price{ color:#c4451c; background:#fdf0ea; font-weight:600; }
.vcard-score{ position:absolute; top:12px; right:14px; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.3); }
.vcard-score strong{ font-size:24px; font-weight:800; }
.vcard-score i{ font-style:normal; font-size:11px; opacity:.85; }
.vcard-go{ margin:2px 18px 16px; padding:9px 0; text-align:center; border-radius:10px; font-size:13px; font-weight:600; color:var(--jx-blue); background:#eef5ff; transition:all .2s; }
.vcard:hover .vcard-go{ background:linear-gradient(92deg,var(--jx-blue),var(--jx-cyan)); color:#fff; }

/* 测评方法卡片 */
.jx-method-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.jx-method{ padding:18px 16px; border-radius:14px; background:#f7f9fc; border:1px solid #e8edf4; transition:all .25s; }
.jx-method:hover{ background:#fff; border-color:rgba(30,111,255,.35); box-shadow:0 10px 24px rgba(30,111,255,.1); transform:translateY(-3px); }
.jx-method i.jm{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; margin-bottom:10px; font-style:normal; font-size:19px; color:#fff; background:linear-gradient(135deg,var(--jx-blue),var(--jx-cyan)); }
.jx-method:nth-child(2) i.jm{ background:linear-gradient(135deg,#7c3aed,#a06bff); }
.jx-method:nth-child(3) i.jm{ background:linear-gradient(135deg,#0ea371,#34d399); }
.jx-method:nth-child(4) i.jm{ background:linear-gradient(135deg,#f59e0b,#fb7c1a); }
.jx-method strong{ display:block; font-size:15px; color:#1d2b3f; margin-bottom:4px; }
.jx-method p{ margin:0; font-size:12.5px; color:#66788e; line-height:1.6; }

/* 商家档案头 v2 */
.jx-vp-hero{ padding:44px 0 38px; }
.jx-vp-inner{ position:relative; z-index:2; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.jx-vp-title h1{ font-size:28px; font-weight:800; color:#fff; margin:0 0 8px; }
.jx-vp-title p{ color:var(--jx-muted); margin:0 0 12px; max-width:560px; font-size:14px; line-height:1.7; }
.jx-vp-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.vc-chip{ font-style:normal; font-size:12.5px; padding:4px 13px; border-radius:999px; background:rgba(0,198,255,.14); border:1px solid rgba(0,198,255,.35); color:#7fd0ff; }
.vc-chip-price{ background:rgba(255,176,0,.14); border-color:rgba(255,184,0,.4); color:#ffd27a; }
.jx-vp-side{ margin-left:auto; display:flex; align-items:center; gap:18px; }
.jx-vp-score{ display:flex; align-items:baseline; gap:2px; color:#fff; }
.jx-vp-score strong{ font-size:42px; font-weight:800; }
.jx-vp-score i{ font-style:normal; font-size:14px; color:#93a4bd; }
.jx-vp-score .vcard-stars{ display:block; text-shadow:0 2px 8px rgba(0,0,0,.35); }

@media (max-width:768px){
    .jx-method-grid{ grid-template-columns:repeat(2,1fr); }
    .vcard-grid{ grid-template-columns:1fr; }
    .jx-vh-stats{ gap:22px; flex-wrap:wrap; }
    .jx-vp-side{ margin-left:0; width:100%; }
}

/* ════════ 商家档案页 v3 ════════ */
.jx-orbs{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.jx-orbs i{ position:absolute; border-radius:50%; filter:blur(46px); opacity:.5; animation:jxFloat 9s ease-in-out infinite; }
.jx-orbs i:nth-child(1){ width:230px; height:230px; right:8%; top:-70px; background:rgba(0,132,255,.4); }
.jx-orbs i:nth-child(2){ width:160px; height:160px; right:30%; bottom:-50px; background:rgba(0,198,255,.3); animation-delay:2.5s; }
.jx-orbs i:nth-child(3){ width:130px; height:130px; left:32%; top:-30px; background:rgba(120,90,255,.28); animation-delay:5s; }
@keyframes jxFloat{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-22px) } }

.jx-vp3-hero{ position:relative; overflow:hidden; color:#fff; }
.jx-vp3-inner{ position:relative; z-index:2; display:flex; align-items:center; gap:26px; padding:52px 0 44px; flex-wrap:wrap; }
.jx-vp3-ava{ display:flex; align-items:center; justify-content:center; width:92px; height:92px; border-radius:26px; font-size:38px; font-weight:800; color:#fff; background:linear-gradient(135deg,var(--jx-blue),#7c5cff 60%,var(--jx-cyan)); box-shadow:0 14px 34px rgba(0,110,255,.45), inset 0 1px 0 rgba(255,255,255,.28); text-shadow:0 2px 6px rgba(0,0,0,.25); flex:none; }
.jx-vp3-info{ flex:1; min-width:260px; }
.jx-vp3-info h1{ margin:0 0 10px; font-size:31px; font-weight:800; letter-spacing:.5px; }
.jx-vp3-info > p{ margin:0 0 14px; max-width:600px; font-size:14px; line-height:1.75; color:var(--jx-muted); }
.jx-vp3-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.jx-vp3-chips a.vc-chip{ cursor:pointer; transition:all .2s; }
.jx-vp3-chips a.vc-chip:hover{ background:rgba(0,198,255,.3); color:#fff; transform:translateY(-2px); }

.jx-vp3-panel{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 30px 18px; border-radius:18px; background:rgba(13,25,48,.55); border:1px solid rgba(120,160,255,.22); backdrop-filter:blur(12px); box-shadow:0 18px 44px rgba(2,10,30,.5); flex:none; }
.jx-vp3-score{ display:flex; align-items:baseline; gap:3px; }
.jx-vp3-score strong{ font-size:46px; font-weight:800; line-height:1; background:linear-gradient(180deg,#fff,#8fd4ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jx-vp3-score i{ font-style:normal; font-size:13px; color:#8ba0bd; }
.jx-vp3-panel .vcard-stars{ font-size:16px; }
.jx-vp3-verdict{ font-style:normal; font-size:12.5px; font-weight:700; padding:4px 16px; border-radius:999px; letter-spacing:2px; }
.jx-vp3-verdict.v-great{ background:linear-gradient(135deg,#ff9d2e,#ff5e3a); color:#fff; box-shadow:0 4px 14px rgba(255,110,50,.4); }
.jx-vp3-verdict.v-good{ background:linear-gradient(135deg,#18c964,#0ea371); color:#fff; box-shadow:0 4px 14px rgba(20,190,100,.35); }
.jx-vp3-verdict.v-ok{ background:linear-gradient(135deg,#2f90ff,#1e6fff); color:#fff; }
.jx-vp3-verdict.v-warn{ background:rgba(255,180,60,.16); color:#ffc861; border:1px solid rgba(255,190,80,.4); }

.jx-vp3-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:-26px auto 0; position:relative; z-index:3; }
.jx-vp3-stat{ display:flex; flex-direction:column; align-items:center; gap:4px; padding:20px 10px 17px; border-radius:14px; background:#fff; border:1px solid #e8edf4; box-shadow:0 12px 30px rgba(16,42,90,.08); }
.jx-vp3-stat em{ font-style:normal; font-size:22px; font-weight:800; color:#17324f; }
.jx-vp3-stat span{ font-size:12px; color:#8395ab; letter-spacing:1px; }
.jx-vp3-stat:nth-child(1) em{ color:var(--jx-blue); }

.jx-vp3-body{ padding:30px 0 46px; }
.jx-vp3-sec{ margin-bottom:30px; }
.jx-vp3-sechead{ display:flex; align-items:center; margin-bottom:16px; }
.jx-vp3-sechead h2{ display:flex; align-items:center; gap:10px; margin:0; font-size:19px; font-weight:800; color:#16273e; }
.jx-vp3-sechead h2 i{ width:5px; height:20px; border-radius:3px; background:linear-gradient(180deg,var(--jx-blue),var(--jx-cyan)); }
.jx-vp3-cnt{ font-size:12px; font-weight:600; color:#7f92a8; background:#f0f4fa; padding:2px 10px; border-radius:999px; }
.jx-vp3-all{ margin-left:auto; font-size:13px; font-weight:600; color:var(--jx-blue); }
.jx-vp3-all:hover{ color:var(--jx-cyan); }

.jx-art-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.jx-art-card{ display:flex; flex-direction:column; border-radius:14px; background:#fff; border:1px solid #e8edf4; overflow:hidden; text-decoration:none; transition:all .25s; }
.jx-art-card:hover{ transform:translateY(-4px); border-color:rgba(30,111,255,.35); box-shadow:0 16px 36px rgba(16,42,90,.13); }
.jx-art-thumb{ position:relative; height:158px; background:linear-gradient(135deg,#eef3fa,#dfe8f4); overflow:hidden; }
.jx-art-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.jx-art-card:hover .jx-art-thumb img{ transform:scale(1.05); }
.jx-art-thumb::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(6,16,34,.5)); }
.jx-art-score{ position:absolute; right:10px; bottom:10px; z-index:2; font-style:normal; font-size:12px; font-weight:800; color:#fff; padding:3px 11px; border-radius:999px; background:linear-gradient(135deg,#ff9d2e,#ff5e3a); box-shadow:0 4px 10px rgba(0,0,0,.3); }
.jx-art-body{ display:flex; flex-direction:column; gap:7px; padding:15px 17px 17px; }
.jx-art-meta{ display:flex; align-items:center; gap:10px; }
.jx-art-meta em{ font-style:normal; font-size:11px; font-weight:600; color:var(--jx-blue); background:rgba(30,111,255,.09); padding:2px 9px; border-radius:999px; }
.jx-art-meta time{ font-size:11.5px; color:#9aa8ba; }
.jx-art-body h3{ margin:0; font-size:15.5px; font-weight:700; color:#1d2b3f; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jx-art-card:hover h3{ color:var(--jx-blue); }
.jx-art-body p{ margin:0; font-size:12.5px; color:#7c8ca1; line-height:1.7; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

@media (max-width:992px){
    .jx-vp3-stats{ grid-template-columns:repeat(2,1fr); margin-top:-18px; }
}
@media (max-width:768px){
    .jx-vp3-inner{ padding:36px 0 34px; gap:18px; }
    .jx-vp3-ava{ width:70px; height:70px; font-size:28px; border-radius:20px; }
    .jx-vp3-info h1{ font-size:24px; }
    .jx-vp3-panel{ width:100%; flex-direction:row; align-items:center; justify-content:space-between; padding:14px 18px; }
    .jx-vp3-score strong{ font-size:34px; }
    .jx-art-grid{ grid-template-columns:1fr; }
    .jx-vp3-sechead h2{ font-size:17px; }
}

/* ════════ 商家档案页 v3.1：深度测评横卡 + 资讯列表 ════════ */
.jx-vp3-body{ padding:28px 0 46px; }
.jx-rv-list{ display:flex; flex-direction:column; gap:16px; }
.jx-rv-card{ display:flex; gap:0; border-radius:14px; background:#fff; border:1px solid #e8edf4; overflow:hidden; text-decoration:none; transition:all .25s; }
.jx-rv-card:hover{ transform:translateY(-3px); border-color:rgba(30,111,255,.35); box-shadow:0 14px 32px rgba(16,42,90,.12); }
.jx-rv-thumb{ position:relative; width:260px; min-height:172px; flex:none; background:linear-gradient(135deg,#eef3fa,#dfe8f4); overflow:hidden; }
.jx-rv-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.jx-rv-card:hover .jx-rv-thumb img{ transform:scale(1.05); }
.jx-rv-score{ position:absolute; left:10px; top:10px; z-index:2; font-style:normal; font-size:16px; font-weight:800; color:#fff; padding:4px 12px; border-radius:10px; background:linear-gradient(135deg,#ff9d2e,#ff5e3a); box-shadow:0 4px 12px rgba(255,90,40,.4); }
.jx-rv-score i{ font-style:normal; font-size:10px; font-weight:600; opacity:.85; margin-left:1px; }
.jx-rv-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; padding:18px 20px; }
.jx-rv-body h3{ margin:0; font-size:17px; font-weight:700; color:#1d2b3f; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jx-rv-card:hover .jx-rv-body h3{ color:var(--jx-blue); }
.jx-rv-body p{ margin:0; font-size:13px; color:#7c8ca1; line-height:1.75; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jx-rv-badge{ color:#e67e22 !important; background:rgba(255,150,50,.1) !important; }
.jx-rv-go{ margin-top:auto; align-self:flex-start; font-size:12.5px; font-weight:700; color:var(--jx-blue); transition:all .2s; }
.jx-rv-card:hover .jx-rv-go{ color:var(--jx-cyan); letter-spacing:1px; }

.jx-nl{ display:flex; flex-direction:column; background:#fff; border:1px solid #e8edf4; border-radius:14px; overflow:hidden; }
.jx-nl-row{ display:flex; align-items:center; gap:14px; padding:13px 18px; text-decoration:none; border-bottom:1px solid #f0f4f9; transition:background .18s; }
.jx-nl-row:last-child{ border-bottom:none; }
.jx-nl-row:hover{ background:#f6f9fd; }
.jx-nl-thumb{ width:104px; height:70px; flex:none; border-radius:8px; overflow:hidden; background:linear-gradient(135deg,#eef3fa,#dfe8f4); }
.jx-nl-thumb img{ width:100%; height:100%; object-fit:cover; }
.jx-nl-body{ flex:1; min-width:0; }
.jx-nl-body h4{ margin:0 0 6px; font-size:14.5px; font-weight:600; color:#26374d; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jx-nl-row:hover h4{ color:var(--jx-blue); }
.jx-nl-meta{ display:flex; align-items:center; gap:10px; }
.jx-nl-meta em{ font-style:normal; font-size:11px; font-weight:600; color:#6b7d94; background:#eef3fa; padding:2px 9px; border-radius:999px; }
.jx-nl-meta time{ font-size:11.5px; color:#a3b0c0; }

@media (max-width:768px){
    .jx-rv-card{ flex-direction:column; }
    .jx-rv-thumb{ width:100%; min-height:0; height:168px; }
    .jx-nl-thumb{ width:88px; height:60px; }
    .jx-nl-body h4{ white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
}

/* ════════ 商家档案页 v4：大气高端头部 + 杂志式资讯 ════════ */
.jx-vp4-hero{ position:relative; overflow:hidden; color:#fff; padding-bottom:0; }
.jx-vp4-dots{ position:absolute; inset:0; background-image:radial-gradient(rgba(140,170,255,.16) 1px, transparent 1px); background-size:26px 26px; -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 72%); mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 72%); pointer-events:none; }
.jx-vp4-inner{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:58px 0 46px; flex-wrap:wrap; }
.jx-vp4-left{ flex:1; min-width:300px; }
.jx-vp4-namerow{ display:flex; align-items:center; gap:22px; margin-bottom:16px; }
.jx-vp4-ava{ position:relative; display:flex; align-items:center; justify-content:center; width:100px; height:100px; border-radius:28px; font-size:42px; font-weight:800; color:#fff; background:linear-gradient(135deg,var(--jx-blue),#7c5cff 55%,var(--jx-cyan)); box-shadow:0 18px 44px rgba(0,110,255,.5), inset 0 1px 0 rgba(255,255,255,.3); text-shadow:0 2px 8px rgba(0,0,0,.3); flex:none; }
.jx-vp4-ava::after{ content:''; position:absolute; inset:-7px; border-radius:33px; border:1.5px solid rgba(140,190,255,.35); }
.jx-vp4-namerow h1{ margin:0 0 10px; font-size:40px; font-weight:800; letter-spacing:1px; line-height:1.15; }
.jx-vp4-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.jx-vp4-desc{ margin:0; max-width:640px; font-size:15px; line-height:1.9; color:#aab9d4; }

.jx-vp4-panel{ position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; gap:10px; padding:30px 40px 24px; border-radius:20px; background:linear-gradient(160deg, rgba(21,36,66,.72), rgba(10,20,42,.55)); border:1px solid rgba(130,170,255,.25); backdrop-filter:blur(14px); box-shadow:0 24px 60px rgba(2,10,30,.55), inset 0 1px 0 rgba(255,255,255,.08); flex:none; }
.jx-vp4-panel::after{ content:''; position:absolute; inset:0; background:linear-gradient(105deg, transparent 42%, rgba(255,255,255,.09) 50%, transparent 58%); transform:translateX(-120%); animation:jxShine 5.5s ease-in-out infinite; pointer-events:none; }
@keyframes jxShine{ 0%,55%{ transform:translateX(-120%) } 85%,100%{ transform:translateX(120%) } }
.jx-vp4-score{ display:flex; align-items:baseline; gap:4px; }
.jx-vp4-score strong{ font-size:58px; font-weight:800; line-height:1; background:linear-gradient(180deg,#ffffff 20%,#8fd4ff 90%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.jx-vp4-score i{ font-style:normal; font-size:14px; color:#8ba0bd; }
.jx-vp4-stars{ font-size:18px; letter-spacing:3px; }
.jx-vp4-verdict{ font-style:normal; font-size:13px; font-weight:700; padding:5px 20px; border-radius:999px; letter-spacing:3px; }
.jx-vp4-verdict.v-great{ background:linear-gradient(135deg,#ffb23e,#ff6a3d); color:#fff; box-shadow:0 6px 18px rgba(255,120,50,.45); }
.jx-vp4-verdict.v-good{ background:linear-gradient(135deg,#1fd66f,#0c9e63); color:#fff; box-shadow:0 6px 18px rgba(20,190,110,.4); }
.jx-vp4-verdict.v-ok{ background:linear-gradient(135deg,#2f90ff,#1e6fff); color:#fff; }
.jx-vp4-verdict.v-warn{ background:rgba(255,180,60,.16); color:#ffc861; border:1px solid rgba(255,190,80,.4); }

.jx-vp4-strip{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); margin-bottom:34px; border-radius:16px; background:rgba(16,28,54,.5); border:1px solid rgba(120,160,255,.18); backdrop-filter:blur(10px); overflow:hidden; }
.jx-vp4-cell{ display:flex; flex-direction:column; align-items:center; gap:5px; padding:20px 8px 17px; }
.jx-vp4-cell + .jx-vp4-cell{ border-left:1px solid rgba(120,160,255,.14); }
.jx-vp4-cell em{ font-style:normal; font-size:24px; font-weight:800; color:#fff; }
.jx-vp4-cell span{ font-size:12px; color:#8fa2c0; letter-spacing:2px; }
.jx-vp4-cell:first-child em{ background:linear-gradient(180deg,#9fd8ff,#4da6ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* 头条大卡 + 杂志双列卡 */
.jx-feat{ display:flex; gap:0; margin:4px 0 20px; border-radius:16px; background:#fff; border:1px solid #e8edf4; overflow:hidden; text-decoration:none; transition:all .3s; }
.jx-feat:hover{ transform:translateY(-3px); border-color:rgba(30,111,255,.4); box-shadow:0 18px 42px rgba(16,42,90,.14); }
.jx-feat-thumb{ position:relative; width:320px; min-height:216px; flex:none; overflow:hidden; background:linear-gradient(135deg,#eef3fa,#dfe8f4); }
.jx-feat-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.jx-feat:hover .jx-feat-thumb img{ transform:scale(1.06); }
.jx-feat-cover{ position:absolute; inset:0; background:linear-gradient(90deg, transparent 60%, rgba(255,255,255,.14)); }
.jx-feat-cat{ position:absolute; left:12px; top:12px; z-index:2; font-style:normal; font-size:11.5px; font-weight:700; color:#fff; padding:4px 13px; border-radius:999px; background:linear-gradient(135deg,var(--jx-blue),#5f8bff); box-shadow:0 4px 12px rgba(20,80,220,.4); }
.jx-feat-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; padding:24px 26px; }
.jx-feat-body h3{ margin:0; font-size:19px; font-weight:800; color:#1a2940; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jx-feat:hover h3{ color:var(--jx-blue); }
.jx-feat-body p{ margin:0; font-size:13.5px; color:#7c8ca1; line-height:1.85; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.jx-feat-meta{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; }
.jx-feat-meta time{ font-size:12px; color:#a3b0c0; }
.jx-feat-go{ font-size:13px; font-weight:700; color:var(--jx-blue); transition:all .2s; }
.jx-feat:hover .jx-feat-go{ color:var(--jx-cyan); letter-spacing:1px; }

.jx-mag-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.jx-mag-card{ display:flex; flex-direction:column; border-radius:14px; background:#fff; border:1px solid #e8edf4; overflow:hidden; text-decoration:none; transition:all .28s; }
.jx-mag-card:hover{ transform:translateY(-4px); border-color:rgba(30,111,255,.38); box-shadow:0 16px 36px rgba(16,42,90,.13); }
.jx-mag-thumb{ position:relative; height:150px; overflow:hidden; background:linear-gradient(135deg,#eef3fa,#dfe8f4); }
.jx-mag-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.jx-mag-card:hover .jx-mag-thumb img{ transform:scale(1.07); }
.jx-mag-cover{ position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(6,16,34,.45)); }
.jx-mag-thumb em{ position:absolute; left:10px; bottom:10px; z-index:2; font-style:normal; font-size:11px; font-weight:600; color:#fff; padding:3px 11px; border-radius:999px; background:rgba(10,24,48,.6); backdrop-filter:blur(4px); }
.jx-mag-body{ display:flex; flex-direction:column; gap:7px; padding:15px 17px 17px; }
.jx-mag-body h4{ margin:0; font-size:15px; font-weight:700; color:#1d2b3f; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; transition:color .2s; }
.jx-mag-card:hover h4{ color:var(--jx-blue); }
.jx-mag-body time{ font-size:11.5px; color:#a3b0c0; }

@media (max-width:992px){
    .jx-vp4-strip{ grid-template-columns:repeat(2,1fr); }
    .jx-vp4-cell:nth-child(3){ border-left:none; border-top:1px solid rgba(120,160,255,.14); }
    .jx-vp4-cell:nth-child(4){ border-top:1px solid rgba(120,160,255,.14); }
}
@media (max-width:768px){
    .jx-vp4-inner{ padding:38px 0 34px; gap:20px; }
    .jx-vp4-namerow{ gap:15px; }
    .jx-vp4-ava{ width:74px; height:74px; font-size:30px; border-radius:21px; }
    .jx-vp4-ava::after{ inset:-5px; border-radius:25px; }
    .jx-vp4-namerow h1{ font-size:27px; }
    .jx-vp4-desc{ font-size:13.5px; }
    .jx-vp4-panel{ width:100%; flex-direction:row; align-items:center; justify-content:space-between; padding:16px 20px; }
    .jx-vp4-score strong{ font-size:36px; }
    .jx-vp4-stars{ font-size:15px; }
    .jx-feat{ flex-direction:column; }
    .jx-feat-thumb{ width:100%; min-height:0; height:186px; }
    .jx-feat-body{ padding:17px 19px; }
    .jx-mag-grid{ grid-template-columns:1fr; }
}

/* ════════ 商家档案参数表 + 口碑投票 + 认领弹窗/表单 ════════ */
.jx-claim-btn{ position:absolute; top:24px; right:0; z-index:3; font-size:12.5px; font-weight:600; color:#cdd9f0; background:rgba(16,28,54,.5); border:1px solid rgba(130,170,255,.28); border-radius:999px; padding:7px 16px; cursor:pointer; backdrop-filter:blur(8px); transition:all .22s; }
.jx-claim-btn:hover{ color:#fff; border-color:rgba(140,190,255,.6); background:rgba(30,90,200,.35); transform:translateY(-2px); }
.jx-claim-link{ color:#7fa8e8; text-decoration:none; }
.jx-claim-link:hover{ color:#a5c6ff; }

.jx-par-card{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 34px; background:#fff; border:1px solid #e8edf4; border-radius:14px; padding:6px 24px; }
.jx-par-row{ display:flex; align-items:baseline; gap:14px; padding:13px 0; border-bottom:1px dashed #edf1f7; }
.jx-par-card .jx-par-row:nth-last-child(1), .jx-par-card .jx-par-row:nth-last-child(2):nth-child(odd){ border-bottom:none; }
.jx-par-row span{ flex:none; width:64px; font-size:12.5px; color:#8b9bb1; }
.jx-par-row em{ font-style:normal; font-size:13.5px; font-weight:600; color:#22354e; line-height:1.6; }

.jx-vote{ background:#fff; border:1px solid #e8edf4; border-radius:14px; padding:20px 22px; }
.jx-vote-q{ margin:0 0 14px; font-size:14.5px; font-weight:700; color:#22354e; }
.jx-vote-btns{ display:flex; gap:12px; flex-wrap:wrap; }
.jx-vote-btns button{ font-size:13.5px; font-weight:600; color:#3d5170; background:#f3f6fb; border:1px solid #e3eaf4; border-radius:10px; padding:10px 22px; cursor:pointer; transition:all .2s; }
.jx-vote-btns button:hover{ transform:translateY(-2px); box-shadow:0 8px 18px rgba(16,42,90,.1); }
.jx-vote-btns button[data-choice=up]:hover{ color:#0e9f5c; border-color:#bfe8d2; background:#edfaf2; }
.jx-vote-btns button[data-choice=mid]:hover{ color:#c98a00; border-color:#f3e2b3; background:#fdf7e8; }
.jx-vote-btns button[data-choice=down]:hover{ color:#e05252; border-color:#f3caca; background:#fdefef; }
.jx-vote.voted .jx-vote-btns{ opacity:.45; pointer-events:none; }
.jx-vote-res{ margin-top:16px; display:flex; flex-direction:column; gap:9px; }
.jx-vote-bar{ display:flex; align-items:center; gap:12px; }
.jx-vote-bar span{ flex:none; width:62px; font-size:12px; color:#7c8ca1; text-align:right; }
.jx-vote-track{ flex:1; height:8px; border-radius:99px; background:#eef2f8; overflow:hidden; }
.jx-vote-track i{ display:block; height:100%; border-radius:99px; transition:width .6s ease; }
.jx-vote-track i.vc-up{ background:linear-gradient(90deg,#1fd66f,#0c9e63); }
.jx-vote-track i.vc-mid{ background:linear-gradient(90deg,#ffd36e,#f5a623); }
.jx-vote-track i.vc-down{ background:linear-gradient(90deg,#ff8d8d,#e05252); }
.jx-vote-bar em{ flex:none; width:44px; font-style:normal; font-size:11.5px; color:#a3b0c0; }

.jx-modal{ position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; }
.jx-modal.on{ display:flex; }
.jx-modal-mask{ position:absolute; inset:0; background:rgba(7,14,30,.62); backdrop-filter:blur(4px); }
.jx-modal-box{ position:relative; width:460px; max-width:100%; max-height:88vh; overflow-y:auto; background:#fff; border-radius:18px; padding:26px 28px; box-shadow:0 30px 80px rgba(2,10,30,.4); animation:jxPop .25s ease; }
@keyframes jxPop{ from{ transform:translateY(18px) scale(.97); opacity:0 } to{ transform:none; opacity:1 } }
.jx-modal-box h3{ margin:0 0 8px; font-size:19px; font-weight:800; color:#16273e; }
.jx-modal-tip{ margin:0 0 18px; font-size:12.5px; color:#8395ab; line-height:1.7; }
.jx-modal-x{ position:absolute; top:14px; right:14px; width:30px; height:30px; border:none; border-radius:50%; background:#f1f4f9; color:#66788e; font-size:13px; cursor:pointer; }
.jx-modal-x:hover{ background:#e4e9f2; color:#22354e; }

.jx-join-card{ background:#fff; border:1px solid #e8edf4; border-radius:14px; padding:24px 26px; }
.jx-vform{ display:flex; flex-direction:column; gap:14px; }
.jx-vform label{ display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:#3d5170; }
.jx-vform label b{ color:#e05252; font-weight:700; }
.jx-vform input, .jx-vform textarea{ font-size:13.5px; color:#22354e; border:1px solid #dde5f0; border-radius:9px; padding:10px 13px; background:#f8fafd; outline:none; transition:all .2s; font-family:inherit; }
.jx-vform input:focus, .jx-vform textarea:focus{ border-color:var(--jx-blue); background:#fff; box-shadow:0 0 0 3px rgba(30,111,255,.12); }
.jx-vform .jx-hp{ position:absolute; left:-9999px; height:0; width:0; opacity:0; }
.jx-vform .jx-btn-primary{ align-self:flex-start; margin-top:4px; }
.jx-vform-msg{ margin:0; font-size:12.5px; min-height:18px; }
.jx-vform-msg.ok{ color:#0e9f5c; }
.jx-vform-msg.err{ color:#e05252; }

@media (max-width:768px){
    .jx-par-card{ grid-template-columns:1fr; padding:4px 18px; }
    .jx-par-card .jx-par-row:nth-last-child(2){ border-bottom:1px dashed #edf1f7; }
    .jx-claim-btn{ position:static; align-self:flex-start; }
    .jx-vote-btns button{ flex:1; padding:10px 8px; }
    .jx-modal-box{ padding:20px; }
}
.jx-join-enter{ display:inline-block; margin-top:18px; font-size:13px; font-weight:600; color:#a5c8ff; border:1px dashed rgba(140,190,255,.4); border-radius:999px; padding:8px 20px; transition:all .22s; }
.jx-join-enter:hover{ color:#fff; border-color:#7fb1ff; background:rgba(30,90,200,.3); }

/* ════════ 商家 logo 头像 ════════ */
.jx-vp4-ava img{ width:100%; height:100%; object-fit:contain; border-radius:24px; background:rgba(255,255,255,.94); padding:10px; box-sizing:border-box; }
.vcard-avatar img{ width:100%; height:100%; object-fit:contain; border-radius:14px; background:rgba(255,255,255,.95); padding:5px; box-sizing:border-box; }
.jx-vp4-ava{ overflow:hidden; }

/* ════════ 商家页头部 v5：纯深色高对比（弃用发亮的背景图）════════ */
.jx-vp5{ background:linear-gradient(138deg, #081430 0%, #0a1f4a 46%, #072958 100%); }
.jx-vp5 .jx-vp5-bg{ position:absolute; inset:0; background:
    radial-gradient(900px 380px at 18% -10%, rgba(47,120,255,.22), transparent 60%),
    radial-gradient(700px 320px at 88% 8%, rgba(0,198,255,.14), transparent 55%),
    linear-gradient(180deg, rgba(5,12,30,.25), rgba(5,12,30,0) 30%); }
.jx-vp5::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:88px; background:linear-gradient(180deg, rgba(8,20,48,0), rgba(8,20,48,.65)); pointer-events:none; }
.jx-vp5 .jx-vp4-namerow h1{ color:#ffffff; text-shadow:0 2px 12px rgba(0,0,0,.45); }
.jx-vp5 .jx-vp4-desc{ color:#c9d8f0 !important; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.jx-vp5 .jx-vp4-chips .vc-chip{ background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.26); color:#dbe8ff; }
.jx-vp5 .jx-vp4-chips .vc-chip-price{ background:rgba(255,176,0,.16); border-color:rgba(255,196,60,.5); color:#ffd98a; }
.jx-vp5 .jx-vp4-panel{ background:linear-gradient(160deg, rgba(10,22,48,.88), rgba(6,14,34,.82)); border:1px solid rgba(150,190,255,.34); }
.jx-vp5 .jx-vp4-score i{ color:#aebfdc; }
.jx-vp5 .jx-vp4-stars b{ color:#5b6b85; }
.jx-vp5 .jx-vp4-stars b.on{ color:#ffc63a; text-shadow:0 2px 8px rgba(255,170,0,.5); }
.jx-vp5 .jx-vp4-strip{ background:rgba(6,14,32,.78); border:1px solid rgba(130,165,240,.26); }
.jx-vp5 .jx-vp4-cell em{ color:#ffffff; text-shadow:0 2px 10px rgba(0,0,0,.4); }
.jx-vp5 .jx-vp4-cell span{ color:#b7c7e4; }
.jx-vp5 .jx-vp4-cell + .jx-vp4-cell{ border-left:1px solid rgba(130,165,240,.18); }
.jx-vp5 .jx-vp4-cell:first-child em{ background:none; -webkit-text-fill-color:currentColor; color:#6fc4ff; }
.jx-vp5 .jx-vp4-ava{ box-shadow:0 18px 44px rgba(0,90,255,.55), 0 0 0 1px rgba(255,255,255,.14) inset; }
.jx-vp5 .jx-vp4-ava::after{ border-color:rgba(170,205,255,.5); }
.jx-vp5 .jx-claim-btn{ color:#ffffff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.32); }
.jx-vp5 .jx-claim-btn:hover{ background:rgba(70,140,255,.4); border-color:rgba(180,215,255,.6); }
.jx-vp5 .jx-btn-ghost{ border-color:rgba(255,255,255,.4); color:#ffffff; }
.jx-vp5 .jx-btn-ghost:hover{ background:rgba(255,255,255,.12); color:#ffffff; }
.jx-vp5 .jx-orbs i{ opacity:.42; }

/* ════════ 商家页头部 v6：G2/HostAdvice 式结构化布局 ════════ */
.jx-vp6-hero{ position:relative; overflow:hidden; color:#fff; background:linear-gradient(138deg,#081430 0%,#0a1f4a 46%,#072958 100%); }
.jx-vp6-hero::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:70px; background:linear-gradient(180deg,rgba(8,20,48,0),rgba(8,20,48,.55)); pointer-events:none; }
.vp6-inner{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:36px; align-items:stretch; padding:46px 0 0; }
.vp6-brand{ display:flex; align-items:center; gap:20px; }
.vp6-logo{ display:flex; align-items:center; justify-content:center; width:96px; height:96px; flex:none; border-radius:22px; background:linear-gradient(135deg,var(--jx-blue),#7c5cff 55%,var(--jx-cyan)); font-size:40px; font-weight:800; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.3); box-shadow:0 16px 40px rgba(0,90,255,.5), inset 0 0 0 1px rgba(255,255,255,.16); overflow:hidden; }
.vp6-logo img{ width:100%; height:100%; object-fit:contain; background:rgba(255,255,255,.95); padding:10px; box-sizing:border-box; }
.vp6-name{ display:flex; align-items:center; gap:12px; }
.vp6-name h1{ margin:0; font-size:34px; font-weight:800; letter-spacing:.5px; line-height:1.2; text-shadow:0 2px 12px rgba(0,0,0,.45); }
.vp6-claim{ flex:none; font-size:11.5px; font-weight:700; color:#ffe3a6; background:rgba(255,178,44,.22); border:1px solid rgba(255,200,90,.65); border-radius:999px; padding:4px 13px; cursor:pointer; transition:all .2s; box-shadow:0 2px 10px rgba(255,170,40,.18); }
.vp6-claim:hover{ background:rgba(255,178,44,.38); transform:translateY(-1px); }
.vp6-meta{ margin-top:8px; font-size:13px; color:#b9c9e6; letter-spacing:.5px; }
.vp6-desc{ margin:20px 0 0; max-width:660px; font-size:15px; line-height:1.9; color:#c9d8f0; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.vp6-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.vp6-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.vp6-btn{ display:inline-flex; align-items:center; justify-content:center; gap:7px; height:42px; padding:0 22px; border-radius:10px; font-size:13.5px; font-weight:600; text-decoration:none; cursor:pointer; border:none; transition:all .22s; }
.vp6-btn b{ font-size:11px; font-weight:700; background:rgba(255,255,255,.18); border-radius:999px; padding:1px 8px; }
.vp6-btn-solid{ background:linear-gradient(135deg,#1e6fff,#00b7ff); color:#fff; box-shadow:0 10px 24px rgba(30,111,255,.45); }
.vp6-btn-solid:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(30,111,255,.6); color:#fff; }
.vp6-btn-ghost{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.32); color:#fff; }
.vp6-btn-ghost:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.55); transform:translateY(-2px); color:#fff; }
.vp6-card{ display:flex; flex-direction:column; padding:22px 24px 18px; border-radius:18px; background:linear-gradient(160deg,rgba(10,22,48,.88),rgba(6,14,34,.84)); border:1px solid rgba(150,190,255,.32); backdrop-filter:blur(12px); box-shadow:0 20px 50px rgba(2,10,30,.5); }
.vp6-card-head{ display:flex; align-items:center; gap:16px; }
.vp6-score{ display:flex; align-items:baseline; gap:3px; flex:none; }
.vp6-score strong{ font-size:52px; font-weight:800; line-height:1; color:#6fc4ff; text-shadow:0 4px 18px rgba(60,160,255,.45); font-variant-numeric:tabular-nums; }
.vp6-score i{ font-style:normal; font-size:13px; color:#aebfdc; }
.vp6-rate{ display:flex; flex-direction:column; gap:7px; }
.vp6-rate .vcard-stars{ font-size:17px; letter-spacing:3px; }
.vp6-verdict{ font-style:normal; font-size:12px; font-weight:700; padding:4px 16px; border-radius:999px; letter-spacing:2px; align-self:flex-start; }
.vp6-verdict.v-great{ background:linear-gradient(135deg,#ffb23e,#ff6a3d); color:#fff; box-shadow:0 4px 14px rgba(255,120,50,.45); }
.vp6-verdict.v-good{ background:linear-gradient(135deg,#1fd66f,#0c9e63); color:#fff; box-shadow:0 4px 14px rgba(20,190,110,.4); }
.vp6-verdict.v-ok{ background:linear-gradient(135deg,#2f90ff,#1e6fff); color:#fff; }
.vp6-verdict.v-warn{ background:rgba(255,180,60,.16); color:#ffc861; border:1px solid rgba(255,190,80,.4); }
.vp6-hr{ height:1px; margin:16px 0; background:linear-gradient(90deg,rgba(150,190,255,.28),rgba(150,190,255,.06)); }
.vp6-rows{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.vp6-rows li{ display:flex; align-items:center; justify-content:space-between; }
.vp6-rows li span{ font-size:13px; color:#a9b9d8; }
.vp6-rows li em{ font-style:normal; font-size:13.5px; font-weight:700; color:#eaf2ff; font-variant-numeric:tabular-nums; }
.vp6-note{ margin:0; font-size:11.5px; line-height:1.7; color:#7f92b5; }
.vp6-strip{ position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); margin:36px 0 0; border-radius:16px; background:rgba(6,14,32,.78); border:1px solid rgba(130,165,240,.26); backdrop-filter:blur(10px); overflow:hidden; }
.vp6-cell{ display:flex; flex-direction:column; align-items:center; gap:5px; padding:19px 8px 16px; }
.vp6-cell + .vp6-cell{ border-left:1px solid rgba(130,165,240,.18); }
.vp6-cell em{ font-style:normal; font-size:23px; font-weight:800; line-height:1; color:#fff; font-variant-numeric:tabular-nums; text-shadow:0 2px 10px rgba(0,0,0,.4); }
.vp6-cell span{ font-size:12px; color:#b7c7e4; letter-spacing:2px; line-height:1; }
.jx-vp6-hero .jx-orbs i{ opacity:.4; }

@media (max-width:992px){
    .vp6-inner{ grid-template-columns:1fr; }
    .vp6-card{ width:100%; }
}
@media (max-width:768px){
    .vp6-inner{ padding:32px 0 0; gap:22px; }
    .vp6-logo{ width:72px; height:72px; border-radius:17px; font-size:30px; }
    .vp6-name h1{ font-size:25px; }
    .vp6-desc{ font-size:13.5px; margin-top:14px; }
    .vp6-actions{ margin-top:18px; }
    .vp6-btn{ height:40px; padding:0 16px; font-size:13px; flex:1; }
    .vp6-score strong{ font-size:42px; }
    .vp6-strip{ grid-template-columns:repeat(2,1fr); margin-top:26px; }
    .vp6-cell:nth-child(3){ border-left:none; border-top:1px solid rgba(130,165,240,.18); }
    .vp6-cell:nth-child(4){ border-top:1px solid rgba(130,165,240,.18); }
}

/* ════════ 头部 v7：logo 列排版 + 商家简介卡 ════════ */
.vp7-brand{ display:grid; grid-template-columns:108px minmax(0,1fr); gap:22px; align-items:center; }
.vp7-brand .vp6-logo{ width:108px; height:108px; border-radius:24px; font-size:44px; }
.vp7-head{ display:flex; flex-direction:column; gap:10px; min-width:0; }
.vp6-main .vp7-head .vp6-name{ margin:0; }
.vp7-intro{ position:relative; margin-top:24px; padding:18px 24px 20px; border-radius:14px; background:rgba(13,26,54,.55); border:1px solid rgba(120,160,255,.18); backdrop-filter:blur(8px); overflow:hidden; }
.vp7-intro::before{ content:''; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:0 3px 3px 0; background:linear-gradient(180deg,var(--jx-blue),var(--jx-cyan)); }
.vp7-cap{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:3px; color:#8fb0e8; }
.vp7-cap i{ width:8px; height:8px; border-radius:2px; background:linear-gradient(135deg,var(--jx-blue),var(--jx-cyan)); }
.vp7-desc{ margin:10px 0 0; font-size:15px; line-height:1.95; color:#d4e1f6; }
.vp7-facts{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px 28px; margin-top:16px; padding-top:15px; border-top:1px solid rgba(120,160,255,.14); }
.vp7-fact{ display:flex; align-items:baseline; gap:12px; min-width:0; }
.vp7-fact span{ flex:none; font-size:12px; color:#8da2c6; letter-spacing:1px; }
.vp7-fact em{ font-style:normal; font-size:13.5px; font-weight:600; color:#eef4ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

@media (max-width:768px){
    .vp7-brand{ grid-template-columns:76px minmax(0,1fr); gap:14px; }
    .vp7-brand .vp6-logo{ width:76px; height:76px; border-radius:18px; font-size:30px; }
    .vp7-intro{ padding:14px 16px 16px; margin-top:18px; }
    .vp7-desc{ font-size:13.5px; line-height:1.85; }
    .vp7-facts{ grid-template-columns:1fr; gap:9px; padding-top:12px; margin-top:12px; }
}

/* ════════ 头部 v8：去 AI 化（扁平、克制、无装饰渐变）════════ */
.vp8 .jx-vp5-bg{ background:radial-gradient(800px 340px at 15% -8%, rgba(40,100,220,.16), transparent 60%); }
.vp8 .vp6-name h1{ text-shadow:none; letter-spacing:0; }
.vp8 .vp6-desc{ text-shadow:none; }
.vp8 .vp6-logo{ background:#f4f6fa; box-shadow:none; border:1px solid rgba(255,255,255,.16); border-radius:16px; color:#12294e; text-shadow:none; }
.vp8 .vp6-logo img{ padding:12px; background:#fff; }
.vp8 .vp6-claim{ box-shadow:none; background:transparent; border:1px solid rgba(255,190,80,.45); font-weight:600; }
.vp8 .vp6-meta{ font-size:13.5px; color:#a8b8d8; }
.vp8 .vp7-intro{ background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.09); backdrop-filter:none; border-radius:12px; }
.vp8 .vp7-intro::before{ display:none; }
.vp8 .vp7-cap{ color:#8da2c6; letter-spacing:2px; }
.vp8 .vp7-cap i{ display:none; }
.vp8 .vp7-desc{ color:#d0dcef; text-shadow:none; }
.vp8 .vp7-facts{ border-top:1px solid rgba(255,255,255,.08); }
.vp8 .vp6-btn-solid{ background:#2f7bff; box-shadow:none; }
.vp8 .vp6-btn-solid:hover{ background:#4487ff; box-shadow:none; }
.vp8 .vp6-btn-ghost{ border-color:rgba(255,255,255,.26); }
.vp8 .vp6-card{ background:rgba(10,18,38,.62); border:1px solid rgba(255,255,255,.1); backdrop-filter:none; box-shadow:none; border-radius:12px; }
.vp8 .vp6-score strong{ color:#fff; text-shadow:none; }
.vp8 .vp6-verdict.v-great, .vp8 .vp6-verdict.v-good, .vp8 .vp6-verdict.v-ok{ box-shadow:none; }
.vp8 .vp6-verdict.v-great{ background:#e8862e; }
.vp8 .vp6-verdict.v-good{ background:#17a35c; }
.vp8 .vp6-verdict.v-ok{ background:#2f7bff; }
.vp8 .vp6-hr{ background:rgba(255,255,255,.09); }
.vp8 .vp6-strip{ background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.09); backdrop-filter:none; }
.vp8 .vp6-cell + .vp6-cell{ border-left:1px solid rgba(255,255,255,.08); }
.vp8 .vp6-cell em{ text-shadow:none; color:#fff; }
.vp8::after{ display:none; }
.vp8 .vp6-inner{ padding-top:40px; }
.vp8 .vp6-strip{ margin-bottom:30px; }

/* ════════ 头部 v8.1：logo 无边框 + 恢复背景图（压暗防糊字）+ 行内参数 ════════ */
.vp8 .vp6-logo{ border:none; background:#fff; }
.vp8 .vp6-logo img{ padding:10px; }
.vp8 .jx-vp5-bg{ position:absolute; inset:0; background:
    linear-gradient(100deg, rgba(7,17,40,.86) 0%, rgba(8,22,52,.58) 45%, rgba(7,26,55,.36) 100%),
    url('../images/hero-bg.webp') center 32%/cover no-repeat; }
.vp8 .vp6-desc, .vp8 .vp7-desc{ text-shadow:0 1px 6px rgba(4,10,26,.8); }
.vp8 .vp6-name{ flex-wrap:wrap; align-items:baseline; gap:12px; }
.vp8-inl{ font-size:13px; font-weight:400; color:#a9bad9; letter-spacing:.3px; white-space:nowrap; }
@media (max-width:768px){
    .vp8-inl{ white-space:normal; font-size:12px; flex-basis:100%; order:3; line-height:1.7; }
}

/* ════════ 首页商家速览（logo 卡）════════ */
.jx-hv-grid{ display:grid; grid-template-columns:repeat(5, 1fr); gap:14px; }
.jx-hv-card{ display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:12px; background:#fff; border:1px solid #e8edf4; text-decoration:none; transition:all .22s; }
.jx-hv-card:hover{ transform:translateY(-3px); border-color:rgba(30,111,255,.35); box-shadow:0 12px 26px rgba(16,42,90,.1); }
.jx-hv-logo{ display:flex; align-items:center; justify-content:center; width:46px; height:46px; flex:none; border-radius:11px; background:#f7f9fc; font-size:19px; font-weight:800; color:#33507a; overflow:hidden; }
.jx-hv-logo img{ width:100%; height:100%; object-fit:contain; padding:4px; box-sizing:border-box; }
.jx-hv-info{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.jx-hv-info strong{ font-size:14px; color:#1d2b3f; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jx-hv-info em{ font-style:normal; font-size:11.5px; color:#95a5ba; }
.jx-hv-score{ margin-left:auto; flex:none; font-size:12px; font-weight:800; color:#e8801f; background:rgba(255,150,50,.1); padding:2px 8px; border-radius:999px; }
.jx-hv-more .jx-hv-logo{ background:linear-gradient(135deg,#eaf2ff,#dcebff); color:var(--jx-blue); font-size:20px; }
.jx-hv-more strong{ color:var(--jx-blue); }
@media (max-width:992px){ .jx-hv-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:640px){ .jx-hv-grid{ grid-template-columns:repeat(2, 1fr); } }
.jx-vlink{ color:var(--jx-blue); text-decoration:none; border-bottom:1px dashed rgba(30,111,255,.45); }
.jx-vlink:hover{ color:var(--jx-cyan); border-bottom-style:solid; }
