/* SJ Project Carousel（R-H19 卡片放大 + 右滑 + hover 按钮；R-H20 居中弹窗四指标 + 左右切换 + 小 CTA） */
.sj-pc{--p:var(--e-global-color-primary,#2861ee);--d:var(--e-global-color-secondary,#0b1120);--h:var(--e-global-color-sjhead,#0f172a);--t:var(--e-global-color-text,#475569);--l:var(--e-global-color-sjline,#e2e8f0);--sj-pc-n:4;padding:88px 0;background:#fff}
.sj-pc *{box-sizing:border-box}
.sj-pc-in{max-width:1320px;margin:0 auto;padding:0 24px}
.sj-pc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.sj-pc-label{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--p);margin-bottom:10px}.sj-pc-h{font-size:2.4rem;font-weight:700;color:var(--h);margin:0 0 10px;letter-spacing:-.02em}.sj-pc-sub{max-width:640px;color:var(--t);margin:0;line-height:1.6}
.sj-pc-ctl{display:flex;gap:10px;align-items:center;flex-shrink:0}
.sj-pc-cta{color:var(--h);font-weight:600;text-decoration:none;border:1px solid var(--l);padding:10px 16px;border-radius:6px;margin-right:6px}.sj-pc-cta:hover{border-color:var(--p);color:var(--p)}
.sj-pc-arrow{width:42px;height:42px;border-radius:50%;border:1px solid var(--l);background:#fff;color:var(--h);font-size:22px;line-height:1;cursor:pointer}.sj-pc-arrow:hover{background:var(--d);color:#fff;border-color:var(--d)}
.sj-pc-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 12px}.sj-pc-track::-webkit-scrollbar{display:none}
.sj-pc-card{flex:0 0 calc((100% - 20px * (var(--sj-pc-n) - 1)) / var(--sj-pc-n));scroll-snap-align:start;background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit}
.sj-pc-media{position:relative;display:block;border-radius:12px;overflow:hidden;background:#e6edf7;aspect-ratio:3/4}.sj-pc-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.sj-pc-card:hover .sj-pc-media img{transform:scale(1.05)}
.sj-pc-hover{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translateY(10px);opacity:0;background:#fff;color:var(--h);font-weight:700;font-size:13px;padding:10px 16px;border-radius:999px;box-shadow:0 10px 24px rgba(15,23,42,.2);transition:opacity .25s,transform .25s;white-space:nowrap}.sj-pc-card:hover .sj-pc-hover,.sj-pc-card:focus-visible .sj-pc-hover{opacity:1;transform:translate(-50%,-50%)}
.sj-pc-card:focus-visible{outline:2px solid var(--p);outline-offset:4px;border-radius:12px}
.sj-pc-name{display:block;margin-top:14px}.sj-pc-name em{display:block;font-style:normal;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--p);margin-bottom:4px}.sj-pc-name strong{display:block;font-size:1.05rem;font-weight:700;color:var(--h);line-height:1.3}
.sj-pc-modal{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:24px;opacity:0;transition:opacity .25s}.sj-pc-modal.is-open{opacity:1}.sj-pc-modal[hidden]{display:none}
.sj-pc-modal-bg{position:absolute;inset:0;background:rgba(11,17,32,.72);backdrop-filter:blur(6px)}
.sj-pc-modal-card{position:relative;width:min(1040px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;display:grid;grid-template-columns:1.1fr 1fr;box-shadow:0 40px 80px rgba(0,0,0,.4);transform:translateY(12px);transition:transform .25s}.sj-pc-modal.is-open .sj-pc-modal-card{transform:none}
.sj-pc-modal-img img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block}
.sj-pc-modal-body{padding:36px 36px 32px}.sj-pc-modal-ind{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--p);margin-bottom:8px}.sj-pc-modal-body h3{font-size:1.6rem;color:var(--h);margin:0 0 12px}.sj-pc-modal-body p{color:var(--t);line-height:1.6;margin:0 0 20px}
.sj-pc-metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin-bottom:22px}.sj-pc-metrics span{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--t)}.sj-pc-metrics strong{display:block;font-size:15px;color:var(--h);margin-top:4px}
.sj-pc-modal-cta{display:inline-block;background:var(--d);color:#fff;text-decoration:none;font-size:13px;font-weight:600;padding:9px 16px;border-radius:6px}.sj-pc-modal-cta:hover{background:var(--p);color:#fff}
.sj-pc-modal-close{position:absolute;top:10px;right:12px;z-index:2;width:36px;height:36px;border-radius:50%;border:0;background:#fff;color:var(--h);font-size:22px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.sj-pc-modal-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:var(--h);font-size:24px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2)}.sj-pc-modal-nav.is-prev{left:12px}.sj-pc-modal-nav.is-next{right:12px}
body.sj-pc-open{overflow:hidden}
@media(max-width:1024px){.sj-pc{--sj-pc-n:3}}@media(max-width:768px){.sj-pc{--sj-pc-n:1.6;padding:56px 0}.sj-pc-head{flex-direction:column;align-items:flex-start}.sj-pc-modal-card{grid-template-columns:1fr}.sj-pc-modal-img img{min-height:240px;max-height:40vh}.sj-pc-modal-body{padding:24px}}

/* Kit 按钮样式覆盖 */
.sj-pc .sj-pc-card,.sj-pc .sj-pc-card:hover{background:none;color:inherit;padding:0;border-radius:0;box-shadow:none;font:inherit;text-transform:none;letter-spacing:normal;line-height:inherit}
.sj-pc .sj-pc-arrow{background:#fff;color:var(--h);padding:0;border-radius:50%;font-size:22px;line-height:1;box-shadow:none}.sj-pc .sj-pc-arrow:hover{background:var(--d);color:#fff}
.sj-pc .sj-pc-modal-close,.sj-pc .sj-pc-modal-close:hover{background:#fff;color:var(--h);padding:0;border-radius:50%;font-size:22px;line-height:1}
.sj-pc .sj-pc-modal-nav,.sj-pc .sj-pc-modal-nav:hover{background:#fff;color:var(--h);padding:0;border-radius:50%;font-size:24px;line-height:1}

/* G3 目视 D-10（2026-09-18）：<button> 默认把内容垂直居中，文字行数不同→封面错位；min-width:0 防长词撑宽 */
.sj-pc .sj-pc-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-width:0}

/* G5 codex 09-20：View All 文字被 Kit a 色改蓝，按设计用 navy，hover 蓝 */
.sj-pc .sj-pc-cta{color:var(--h)}.sj-pc .sj-pc-cta:hover{color:var(--p)}

/* R2 codex 09-20：弹窗 View Details 被 Kit a 色改成蓝字(3.4:1)→白字；Kit 的 hover 样式同时命中 button:focus，补 :focus；手机端左右切换钮压住分类/标题→移到弹窗正文底部 */
.sj-pc .sj-pc-modal-cta,.sj-pc .sj-pc-modal-cta:focus{color:#fff}.sj-pc .sj-pc-modal-cta:hover{color:#fff;background:#1D4ED8}
.sj-pc .sj-pc-card:focus{background:none;color:inherit;padding:0;border-radius:0;box-shadow:none}.sj-pc .sj-pc-card:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.sj-pc .sj-pc-arrow:focus{background:#fff;color:var(--h);padding:0;border-radius:50%}.sj-pc .sj-pc-modal-close:focus,.sj-pc .sj-pc-modal-nav:focus{background:#fff;color:var(--h);padding:0;border-radius:50%}
@media(max-width:768px){.sj-pc .sj-pc-modal-nav{top:auto;bottom:16px;transform:none}.sj-pc .sj-pc-modal-nav.is-prev{left:auto;right:64px}.sj-pc .sj-pc-modal-nav.is-next{right:16px}.sj-pc-modal-body{padding-bottom:72px}}
/* 09-22 grok(390)：露半卡的分类/标题被卡片右缘切断（R4-11 遗留）→ 半卡只露图，文字整块隐藏；滑到位后自然显示 */
@media(max-width:768px){.sj-pc-track{scroll-padding-left:20px}.sj-pc-card{overflow:hidden}.sj-pc-card .sj-pc-name{overflow:hidden;text-overflow:ellipsis}.sj-pc-card .sj-pc-name em,.sj-pc-card .sj-pc-name strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
