/* ==========================================================================
   金肽生物官网 · 前台样式
   主色：金肽蓝；点缀：青蓝（科技/细胞感）；纯 CSS，无外部依赖
   ========================================================================== */

:root {
    --jt-blue: #0b4a86;
    --jt-blue-2: #1167b1;
    --jt-cyan: #17b6c9;
    --jt-ink: #10243b;
    --jt-muted: #5b7288;
    --jt-line: #e3ecf5;
    --jt-bg: #f5f8fc;
    --jt-white: #ffffff;
    --jt-radius: 14px;
    --jt-shadow: 0 10px 30px rgba(11, 74, 134, .08);
    --jt-max: 1200px;
    /* 固定头部高度：版块内部靠它给内容让位（背景仍可顶到最上） */
    --jt-header-h: 76px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

/* 内页：头部是固定浮层，正文整体下移，避免被压住 */
body { padding-top: var(--jt-header-h); }
/* 首页：由各整屏版块自己让位（背景才能顶到最上），body 不再留白 */
body.jt-page-home { padding-top: 0; }
/* 首屏 Banner 占满一屏（头部浮在上面，不再吃掉 76px） */
body.jt-page-home .jt-hero { min-height: 100vh; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
                 "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
    color: var(--jt-ink);
    background: var(--jt-bg);
    line-height: 1.7;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.35; font-weight: 700; }

.jt-container { max-width: var(--jt-max); margin: 0 auto; padding: 0 20px; }

/* ===================== 头部 ===================== */
/* 头部：固定浮层（不再占位），第一屏与内页背景都能顶到页面最上方 */
.jt-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 50;
    background: rgba(255, 255, 255, .94);
    backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid transparent;
    transition: box-shadow .25s ease, border-color .25s ease;
}
.jt-header.is-scrolled { box-shadow: 0 6px 24px rgba(11, 74, 134, .08); border-color: var(--jt-line); }

.jt-header-inner { display: flex; align-items: center; gap: 24px; height: 76px; }
.jt-logo img { height: 42px; width: auto; }
.jt-logo-text { font-size: 20px; font-weight: 800; color: var(--jt-blue); letter-spacing: .5px; }

.jt-nav { margin-left: auto; }
.jt-nav-list { display: flex; align-items: center; gap: 4px; }
.jt-nav-list > li { position: relative; }
.jt-nav-list > li > a {
    display: block; padding: 10px 14px; border-radius: 8px;
    font-size: 15px; font-weight: 500; color: var(--jt-ink); white-space: nowrap;
    transition: color .2s, background .2s;
}
.jt-nav-list > li > a:hover { color: var(--jt-blue); background: rgba(17, 103, 177, .07); }

.jt-sub {
    position: absolute; top: 100%; left: 0; min-width: 190px;
    background: #fff; border: 1px solid var(--jt-line); border-radius: 12px;
    box-shadow: var(--jt-shadow); padding: 8px; margin-top: 6px;
    opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: all .2s ease;
}
.jt-nav-list > li.has-sub:hover > .jt-sub { opacity: 1; visibility: visible; transform: none; }
.jt-sub a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 14px; color: var(--jt-muted); }
.jt-sub a:hover { background: var(--jt-bg); color: var(--jt-blue); }

.jt-header-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.jt-tel { font-weight: 700; color: var(--jt-blue); font-size: 15px; white-space: nowrap; }

.jt-burger { display: none; width: 42px; height: 42px; border: 1px solid var(--jt-line); background: #fff; border-radius: 10px; padding: 10px; cursor: pointer; }
.jt-burger span { display: block; height: 2px; background: var(--jt-blue); border-radius: 2px; margin: 4px 0; }

/* ===================== 首页 Banner ===================== */
.jt-hero {
    --jt-hero-h: clamp(520px, 72vh, 760px);   /* 后台可覆盖（插件设置 → 首页与 Banner → 高度） */
    position: relative; overflow: hidden; background: #061a2e; color: #fff;
    min-height: var(--jt-hero-h);
    display: flex; align-items: center;
    text-align: center;
    padding-top: var(--jt-header-h);          /* 固定头部浮在上面，文案往下让 */
}
.jt-hero-media { position: absolute; inset: 0; z-index: 0; }
.jt-hero-media video, .jt-hero-media img { width: 100%; height: 100%; object-fit: cover; }

/* PC 视频层：加载成功后才淡入，之前的封面图兜底 */
.jt-hero-video { position: absolute; inset: 0; z-index: 1; opacity: 0; transition: opacity .8s ease; }
.jt-hero-video.is-playing { opacity: 1; }
.jt-hero-video[hidden] { display: none; }
.jt-hero-poster { position: absolute; inset: 0; z-index: 2; display: block; transition: opacity .6s ease; }
.jt-hero-poster img { width: 100%; height: 100%; object-fit: cover; }
/* 视频真正开始播放后，封面淡出（否则封面一直压住视频） */
.jt-hero-poster.is-hidden { opacity: 0; pointer-events: none; }

/* 多图轮播模式：图片交叉淡入（不用蓝蒙板，只压一点暗保证文字可读） */
.jt-hero-slides { position: absolute; inset: 0; }
.jt-hero-slides--mobile { display: none; }          /* 手机专用图组：PC 不显示（也不参与视觉） */
.jt-hero-lines--mobile { display: none; }
.jt-hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; }
.jt-hero-slide.is-on { opacity: 1; }
.jt-hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.jt-hero.is-slider::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, .28) 0%, rgba(0, 0, 0, .04) 45%, rgba(0, 0, 0, .38) 100%);
}
.jt-hero.is-slider .jt-hero-title,
.jt-hero.is-slider .jt-hero-sub { text-shadow: 0 2px 26px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .35); }

/* 文案轮播：同一位置逐句淡入（只显示当前句，容器留最小高度防跳动） */
.jt-hero-lines { position: relative; min-height: clamp(96px, 13vh, 130px); }
/* 仅供屏幕阅读器/搜索引擎的隐藏标题（视觉不可见但存在） */
.jt-sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.jt-hero-line { display: none; }
.jt-hero-line.is-on { display: block; animation: jtHeroLine .8s ease both; }
.jt-hero-line .jt-hero-title { margin-bottom: 10px; }
@keyframes jtHeroLine {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}
.jt-hero::after {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background:
        radial-gradient(1200px 500px at 20% 20%, rgba(23, 182, 201, .28), transparent 60%),
        linear-gradient(100deg, rgba(6, 26, 46, .92) 0%, rgba(11, 74, 134, .78) 55%, rgba(6, 26, 46, .55) 100%);
}
/* 有背景视频时去掉蒙板（保留原片色彩），用文字阴影保证可读性 */
.jt-hero.has-video::after { display: none; }
.jt-hero.has-video .jt-hero-title,
.jt-hero.has-video .jt-hero-sub { text-shadow: 0 2px 26px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .35); }

.jt-hero-body {
    position: relative; z-index: 2;
    max-width: var(--jt-max); margin: 0 auto; padding: 120px 20px 130px;
    width: 100%; text-align: center;
}
.jt-hero-kicker {
    display: inline-block; padding: 6px 14px; border-radius: 999px;
    background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25);
    font-size: 13px; letter-spacing: 2px; margin-bottom: 18px;
}
.jt-hero-title { font-size: clamp(30px, 4.6vw, 54px); line-height: 1.2; margin-bottom: 18px; letter-spacing: 1px; }
.jt-hero-sub {
    font-size: clamp(15px, 1.6vw, 19px); color: rgba(255, 255, 255, .9);
    max-width: 760px; margin: 0 auto 12px;
}
.jt-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* 轮播左右箭头 */
.jt-hero-navs { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.jt-hero-navs--mobile { display: none; }
.jt-hero-nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 48px; height: 48px; border-radius: 50%; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(255, 255, 255, .45);
    background: rgba(0, 0, 0, .22); color: #fff; cursor: pointer;
    pointer-events: auto; backdrop-filter: blur(6px);
    transition: background .2s ease, transform .2s ease, border-color .2s ease;
}
.jt-hero-nav:hover { background: rgba(0, 0, 0, .45); border-color: rgba(255, 255, 255, .8); }
.jt-hero-nav:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.jt-hero-nav--prev { left: 26px; }
.jt-hero-nav--next { right: 26px; }

.jt-hero-play {
    position: absolute; right: 30px; bottom: 34px; z-index: 3;
    display: inline-flex; align-items: center; gap: 10px;
    background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .3);
    color: #fff; padding: 10px 18px; border-radius: 999px; cursor: pointer;
    font-size: 14px; backdrop-filter: blur(6px);
}
.jt-hero-play:hover { background: rgba(255, 255, 255, .24); }

/* 文字入场动画 */
.jt-rise { opacity: 0; transform: translateY(18px); animation: jtRise .9s ease forwards; }
.jt-rise.d1 { animation-delay: .12s; }
.jt-rise.d2 { animation-delay: .24s; }
.jt-rise.d3 { animation-delay: .36s; }
@keyframes jtRise { to { opacity: 1; transform: none; } }

/* ===================== 按钮 ===================== */
.jt-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 26px; border-radius: 999px; font-weight: 600; font-size: 15px;
    background: var(--jt-blue); color: #fff; border: 1px solid var(--jt-blue);
    transition: transform .2s, box-shadow .2s, background .2s;
}
.jt-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(11, 74, 134, .25); }
.jt-btn-light { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .5); color: #fff; }
.jt-btn-light:hover { background: rgba(255, 255, 255, .24); }
.jt-btn-ghost { background: #fff; color: var(--jt-blue); border-color: var(--jt-line); }
.jt-btn-sm { padding: 8px 18px; font-size: 14px; }

/* ===================== 区块 ===================== */
.jt-section { padding: 76px 0; }
.jt-section.alt { background: #fff; }
.jt-section-head { text-align: center; max-width: 760px; margin: 0 auto 44px; }
.jt-kicker { color: var(--jt-cyan); font-size: 13px; letter-spacing: 3px; text-transform: uppercase; font-weight: 700; }
.jt-h2 { font-size: clamp(24px, 3vw, 34px); margin: 10px 0 14px; }
.jt-lead { color: var(--jt-muted); font-size: 15px; margin: 0; }
/* 板块导语 / 企业介绍正文（服务端直出，便于 AI 摘录） */
.jt-section-lead { color: var(--jt-muted); font-size: 15px; line-height: 2; max-width: 920px; margin: 22px auto 30px; }
.jt-section-foot { text-align: center; margin-top: 36px; }

/* ===================== 卡片网格 ===================== */
.jt-grid { display: grid; gap: 22px; }
.jt-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jt-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jt-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.jt-card {
    background: #fff; border: 1px solid var(--jt-line); border-radius: var(--jt-radius);
    overflow: hidden; display: flex; flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.jt-card:hover { transform: translateY(-4px); box-shadow: var(--jt-shadow); border-color: #cfe0f2; }
.jt-card-media { aspect-ratio: 16 / 10; background: #eef4fa; overflow: hidden; }
.jt-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.jt-card:hover .jt-card-media img { transform: scale(1.04); }

/* 证书/专利类图片：A4 竖版画框，完整显示不裁切，点击看大图 */
.jt-card-media.jt-media-cert {
    aspect-ratio: 3 / 4;
    background: #fff;
    display: flex; align-items: center; justify-content: center;
    padding: 12px;
}
.jt-media-cert img {
    width: 100%; height: 100%;
    object-fit: contain;
    object-position: center;
}
.jt-card:hover .jt-media-cert img { transform: none; }
.jt-media-cert:hover { background: #fbfdff; }
.jt-card-body { padding: 20px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.jt-card-title { font-size: 17px; margin-bottom: 8px; }
.jt-card-text { color: var(--jt-muted); font-size: 14px; margin: 0 0 14px; flex: 1; }
.jt-card-meta { display: flex; justify-content: space-between; color: #8aa0b5; font-size: 13px; }
.jt-card-tag {
    display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px;
    background: rgba(17, 103, 177, .08); color: var(--jt-blue); margin-bottom: 10px;
}

/* 证书/专利：列表小卡 + 详情 */
.jt-cert-card .jt-card-body { padding: 14px 16px 18px; }
/* 卡片顶部缩略图：固定高度 + contain，证书完整可见不裁切 */
.jt-cert-thumb {
    height: 168px; flex: none;
    display: flex; align-items: center; justify-content: center;
    padding: 10px; background: #fff; border-bottom: 1px solid var(--jt-line);
}
.jt-cert-thumb img {
    width: auto; height: auto;
    max-width: 100%; max-height: 100%;
    object-fit: contain;
}
.jt-card:hover .jt-cert-thumb img { transform: none; }

/* 上排：左图 + 右属性；下排：整行名称 */
.jt-cert-card--split { display: block; }
.jt-cert-top { display: flex; align-items: stretch; }
.jt-cert-card--split .jt-cert-thumb {
    width: 42%; height: auto; flex: none; min-height: 170px;
    border-bottom: 0; border-right: 1px solid var(--jt-line);
    align-self: stretch; padding: 10px;
}
.jt-cert-card--split .jt-cert-thumb img { max-height: 320px; }
.jt-cert-thumb--empty { background: var(--jt-bg); color: #9fb2c4; font-size: 12px; }
.jt-cert-card--split .jt-cert-meta {
    flex: 1; min-width: 0; align-self: center;
    padding: 14px 16px; margin: 0;
}
/* 字段名单独一行，把整行宽度让给值（专利号一行放得下，不折行） */
.jt-cert-card--split .jt-cert-meta li {
    display: block; margin-bottom: 8px;
    font-size: 12.5px; color: #4f677c;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    font-variant-numeric: tabular-nums; letter-spacing: 0;
}
.jt-cert-card--split .jt-cert-meta li:last-child { margin-bottom: 0; }
.jt-cert-card--split .jt-cert-meta li span {
    display: block; margin: 0 0 1px;
    font-size: 11.5px; color: #9fb2c4;
}
.jt-cert-name {
    border-top: 1px solid var(--jt-line);
    padding: 12px 16px 14px;
    font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--jt-ink);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jt-cert-card--split:hover .jt-cert-name { color: var(--jt-blue); }
.jt-cert-title {
    font-size: 15px; line-height: 1.5; margin-bottom: 12px; min-height: 3em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jt-cert-meta { margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--jt-muted); }
.jt-cert-meta li { margin-bottom: 6px; line-height: 1.5; }
.jt-cert-meta li span { color: #93a7ba; margin-right: 4px; }
.jt-cert-card:hover .jt-cert-title { color: var(--jt-blue); }

/* 2026-11-11：正文标题由 h1 降为 h2（避免双 H1），h2 自带 margin-top，这里归零保持原视觉 */
.jt-cert-detail-title { font-size: clamp(22px, 2.6vw, 30px); margin-top: 0; margin-bottom: 6px; }
.jt-cert-facts {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px;
    margin: 0 0 24px; padding: 16px 18px;
    background: var(--jt-bg); border: 1px solid var(--jt-line); border-radius: 10px;
}
.jt-cert-facts > div { display: flex; gap: 10px; font-size: 14px; }
.jt-cert-facts dt { color: #8aa0b5; min-width: 76px; margin: 0; flex: none; }
.jt-cert-facts dd { margin: 0; color: var(--jt-ink); word-break: break-all; }
.jt-cert-image { text-align: center; margin: 8px 0 26px; }
.jt-cert-image img {
    width: auto; max-width: 100%; max-height: 70vh;
    border: 1px solid var(--jt-line); border-radius: 8px; background: #fff;
    padding: 8px; margin: 0 auto;
}

/* 数字统计 */
.jt-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.jt-stat { background: #fff; border: 1px solid var(--jt-line); border-radius: var(--jt-radius); padding: 26px 20px; text-align: center; }
.jt-stat-num { font-size: clamp(26px, 3.4vw, 40px); font-weight: 800; color: var(--jt-blue); line-height: 1.1; }
.jt-stat-num small { font-size: 15px; font-weight: 600; margin-left: 4px; color: var(--jt-blue-2); }
.jt-stat-label { color: var(--jt-muted); font-size: 14px; margin-top: 8px; }

/* ===================== 内页头图 ===================== */
.jt-pagehead {
    --jt-ph-h: 340px;                 /* 栏目头图固定高度：所有内页统一 */
    position: relative; color: #fff; overflow: hidden;
    background: linear-gradient(120deg, #082c52, #1167b1 70%, #17b6c9);
    min-height: var(--jt-ph-h);
    display: flex; align-items: center;
}
.jt-pagehead::after {
    content: ""; position: absolute; inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, .18) 1px, transparent 1px);
    background-size: 22px 22px; opacity: .5;
}
/* 有背景图的栏目头图：轻蒙层（不再压成深蓝），并去掉点阵 */
.jt-pagehead--image {
    background-color: #0b2a4a;
    background-size: cover;
    background-position: center 38%;
    background-repeat: no-repeat;
}
.jt-pagehead--image::after { display: none; }
.jt-pagehead--image::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(115deg,
        rgba(8, 44, 82, 1) 0%,
        rgba(12, 70, 122, 1) 55%,
        rgba(17, 103, 177, 1) 100%);
    opacity: var(--jt-ph-dim, 0);   /* 0=不上蒙版（默认），0.2~0.4=轻微压暗 */
    transition: opacity .2s ease;
}
/* 蒙版很淡时用文字投影保证可读性 */
.jt-pagehead--image h1,
.jt-pagehead--image p,
.jt-pagehead--image .jt-crumb {
    text-shadow: 0 2px 22px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .28);
}
.jt-pagehead--image .jt-pagehead-inner { position: relative; z-index: 1; }

.jt-pagehead-inner { position: relative; z-index: 1; width: 100%; padding: 36px 20px; }
.jt-pagehead h1 { font-size: clamp(26px, 3.4vw, 40px); margin: 0 0 10px; }
.jt-pagehead p { margin: 0; color: rgba(255, 255, 255, .82); max-width: 760px; }
.jt-pagehead .jt-crumb { margin-top: 16px; }

@media (max-width: 820px) {
    .jt-pagehead { --jt-ph-h: 220px; }
    .jt-pagehead-inner { padding: 28px 18px; }
}

.jt-crumb { color: rgba(255, 255, 255, .78); font-size: 13px; }
.jt-crumb a { color: rgba(255, 255, 255, .9); }
.jt-crumb i { margin: 0 8px; font-style: normal; opacity: .6; }
.jt-content .jt-crumb, .jt-section .jt-crumb { color: var(--jt-muted); }
.jt-content .jt-crumb a, .jt-section .jt-crumb a { color: var(--jt-blue); }

/* ===================== 正文内容 ===================== */
.jt-article { background: #fff; border: 1px solid var(--jt-line); border-radius: var(--jt-radius); padding: clamp(22px, 4vw, 52px); }
.jt-article h1 { font-size: clamp(24px, 3vw, 34px); margin-bottom: 14px; }
.jt-article-meta { display: flex; gap: 18px; flex-wrap: wrap; color: #8aa0b5; font-size: 13px; padding-bottom: 18px; border-bottom: 1px solid var(--jt-line); margin-bottom: 26px; }
.jt-content { color: #33475b; font-size: 16px; line-height: 1.9; }
.jt-content h2 { font-size: 22px; margin: 34px 0 14px; color: var(--jt-ink); }
.jt-content h3 { font-size: 18px; margin: 26px 0 12px; }
.jt-content p { margin: 0 0 16px; }
.jt-content img { border-radius: 10px; margin: 18px 0; }
.jt-content ul, .jt-content ol { margin: 0 0 18px; padding-left: 22px; list-style: revert; }
.jt-content li { margin-bottom: 8px; }
.jt-content blockquote { margin: 20px 0; padding: 14px 20px; border-left: 3px solid var(--jt-cyan); background: var(--jt-bg); color: var(--jt-muted); }
.jt-content table { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 14px; }
.jt-content th, .jt-content td { border: 1px solid var(--jt-line); padding: 10px 12px; text-align: left; }
.jt-content th { background: var(--jt-bg); }
.jt-content a { color: var(--jt-blue); text-decoration: underline; }

/* ===================== 事实中心 ===================== */
.jt-fact-group { margin-bottom: 40px; }
.jt-fact-group h2 { font-size: 20px; color: var(--jt-blue); border-left: 4px solid var(--jt-cyan); padding-left: 12px; margin-bottom: 16px; }
.jt-fact-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.jt-fact {
    position: relative; background: #fff; border: 1px solid var(--jt-line);
    border-radius: 12px; padding: 18px 20px; scroll-margin-top: 100px;
}
.jt-fact-title { font-size: 14px; color: var(--jt-muted); margin-bottom: 6px; }
.jt-fact-value { font-size: 26px; font-weight: 800; color: var(--jt-blue); line-height: 1.2; }
.jt-fact-value small { font-size: 14px; color: var(--jt-blue-2); margin-left: 4px; }
.jt-fact-summary { margin: 8px 0 0; font-size: 14px; color: #3a5068; }
.jt-fact-meta { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--jt-line); font-size: 12px; color: #8aa0b5; }
/* 2026-11-11：事实条目「查看明细 →」（后台填了明细链接才渲染） */
.jt-fact-more {
    display: inline-block;
    margin-top: 10px;
    font-size: 13px;
    color: var(--jt-blue);
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}
.jt-fact-more:hover,
.jt-fact-more:focus-visible {
    color: #2f6ba8;
    transform: translateX(2px);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.jt-fact-copy { position: absolute; right: 12px; top: 12px; border: 1px solid var(--jt-line); background: #fff; color: var(--jt-muted); border-radius: 8px; font-size: 12px; padding: 4px 10px; cursor: pointer; }
.jt-fact-copy:hover { color: var(--jt-blue); border-color: #cfe0f2; }

/* ===================== 时间轴 ===================== */
.jt-timeline { position: relative; padding-left: 26px; }
.jt-timeline::before { content: ""; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(var(--jt-cyan), var(--jt-blue)); opacity: .35; }
.jt-tl-item { position: relative; padding: 0 0 30px 8px; }
.jt-tl-item::before {
    content: ""; position: absolute; left: -25px; top: 7px; width: 12px; height: 12px;
    border-radius: 50%; background: #fff; border: 3px solid var(--jt-blue-2);
}
.jt-tl-year { font-weight: 800; color: var(--jt-blue); font-size: 18px; }
.jt-tl-title { font-weight: 600; margin: 4px 0 6px; }
.jt-tl-text { color: var(--jt-muted); font-size: 14px; margin: 0; }

/* ===================== FAQ ===================== */
.jt-faq details {
    background: #fff; border: 1px solid var(--jt-line); border-radius: 12px;
    padding: 16px 20px; margin-bottom: 12px;
}
.jt-faq summary { cursor: pointer; font-weight: 600; color: var(--jt-ink); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.jt-faq summary::-webkit-details-marker { display: none; }
.jt-faq summary::after { content: "+"; color: var(--jt-blue); font-weight: 800; }
.jt-faq details[open] summary::after { content: "−"; }
.jt-faq details[open] summary { color: var(--jt-blue); }
.jt-faq-answer { margin: 12px 0 0; color: var(--jt-muted); font-size: 14px; }

/* ===================== 表单 ===================== */
.jt-form { background: #fff; border: 1px solid var(--jt-line); border-radius: var(--jt-radius); padding: clamp(22px, 3vw, 36px); }
.jt-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.jt-field { margin-bottom: 16px; }
.jt-field label { display: block; font-size: 14px; margin-bottom: 6px; color: #3a5068; }
.jt-field label .req { color: #d9534f; }
.jt-input, .jt-textarea {
    width: 100%; border: 1px solid var(--jt-line); border-radius: 10px;
    padding: 11px 14px; font-size: 15px; font-family: inherit; color: var(--jt-ink);
    background: #fbfdff; transition: border-color .2s, box-shadow .2s;
}
.jt-input:focus, .jt-textarea:focus { outline: none; border-color: var(--jt-blue-2); box-shadow: 0 0 0 3px rgba(17, 103, 177, .12); background: #fff; }
.jt-textarea { min-height: 130px; resize: vertical; }
.jt-form-tip { font-size: 12px; color: #8aa0b5; margin-top: 8px; }
.jt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.jt-form-msg { margin-top: 14px; font-size: 14px; }
.jt-form-msg.ok { color: #1c8b5a; }
.jt-form-msg.err { color: #c0392b; }

/* ===================== 公司介绍页：左文 + 右视频 + 数字模块 ===================== */
/* 公司介绍页 · 推荐专利卡片（横向比例，比列表页更紧凑） */
.jt-about-patent .jt-card-media { aspect-ratio: 4 / 3; }
.jt-about-patent .jt-card-body { padding: 14px 16px 16px; }
.jt-about-patent .jt-card-title {
    font-size: 15px; line-height: 1.5; margin-bottom: 8px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jt-about-patent .jt-card-text { font-size: 12.5px; color: #8aa0b5; margin: 0 0 4px; }

/* 企业荣誉：奖牌/证书大图网格（4 列，图片完整显示，名称居中） */
.jt-honor-grid { gap: 22px; }
.jt-honor-card {
    display: block; background: #fff; border: 1px solid var(--jt-line); border-radius: 10px; overflow: hidden;
    transition: box-shadow .25s ease, transform .25s ease;
}
.jt-honor-card:hover { box-shadow: 0 16px 34px rgba(11, 42, 74, .12); transform: translateY(-2px); }
.jt-honor-media {
    position: relative; aspect-ratio: 4 / 3;
    display: flex; align-items: center; justify-content: center;
    padding: 10px; background: #fff; border-bottom: 1px solid var(--jt-line);
}
.jt-honor-media img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.jt-honor-ph { color: #b6c6d6; font-size: 13px; }
.jt-honor-flag {
    position: absolute; top: 10px; left: 10px; padding: 2px 9px; border-radius: 999px;
    background: var(--jt-blue); color: #fff; font-size: 12px; line-height: 1.7;
}
.jt-honor-name {
    padding: 12px 14px 14px; text-align: center; font-size: 14px; font-weight: 600; color: var(--jt-ink);
    line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 1024px) {
    .jt-honor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 公司介绍：视频右浮动，文字环绕；视频下方文字自动贯穿整行 */
.jt-about-top .jt-container { max-width: 1080px; }
.jt-about-text .jt-h2 { margin-top: 0; }
.jt-about-text .jt-content { color: var(--jt-muted); font-size: 15px; line-height: 2; }
.jt-about-text .jt-content p { margin: 0 0 18px; }
.jt-about-text::after { content: ""; display: block; clear: both; }

.jt-about-float {
    float: right; width: 46%; max-width: 520px;
    margin: 6px 0 20px 34px;
}
.jt-about-float video,
.jt-about-float img {
    display: block; width: 100%; height: auto;
    border-radius: 14px; background: #061a2e;
    box-shadow: 0 18px 46px rgba(11, 42, 74, .18);
    aspect-ratio: 16 / 10; object-fit: cover;
}

.jt-about-stats {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 30px 20px; text-align: center;
}
.jt-about-stat-icon {
    height: 76px; display: flex; align-items: center; justify-content: center; margin-bottom: 14px;
}
.jt-about-stat-icon img { max-width: 96px; max-height: 72px; width: auto; height: auto; object-fit: contain; }
.jt-about-stat-icon svg { width: 64px; height: 64px; color: var(--jt-blue); opacity: .5; }
.jt-about-stat-num {
    font-size: clamp(26px, 2.6vw, 34px); font-weight: 800; line-height: 1.1; color: var(--jt-blue);
    font-variant-numeric: tabular-nums;
}
.jt-about-stat-num small { font-size: 14px; font-weight: 600; margin-left: 3px; }
.jt-about-stat-label { margin-top: 8px; font-size: 14px; color: #7b93a9; }

@media (max-width: 820px) {
    /* 手机端：视频不再浮动，独占一行 */
    .jt-about-float { float: none; width: 100%; max-width: none; margin: 0 0 20px; }
    .jt-about-float video { aspect-ratio: 16 / 9; }
    .jt-about-stats { grid-template-columns: repeat(2, 1fr); gap: 22px 12px; }
    .jt-about-stat-icon { height: 60px; margin-bottom: 10px; }
    .jt-about-stat-icon svg { width: 52px; height: 52px; }
    .jt-about-stat-num { font-size: 26px; }
}

/* ===================== 分页 ===================== */
.jt-pager-wrap { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 48px; }
.jt-pager-info { font-size: 13px; color: #8ba1b6; letter-spacing: .3px; }
.jt-pager-info b { color: var(--jt-blue); font-weight: 700; }
.jt-pager { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }

.jt-pager a, .jt-pager span {
    min-width: 40px; height: 40px; padding: 0 13px;
    display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    border: 0; border-radius: 12px;
    background: #fff; box-shadow: 0 1px 3px rgba(11, 42, 74, .07);
    font-size: 14px; font-weight: 600; color: #4a6480; text-decoration: none;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.jt-pager a:hover {
    background: #eef5fc; color: var(--jt-blue);
    box-shadow: 0 6px 16px rgba(11, 42, 74, .10); transform: translateY(-1px);
}
.jt-pager a:active { transform: translateY(0); }

/* 当前页 */
.jt-pager .on {
    background: linear-gradient(135deg, var(--jt-blue), var(--jt-blue-2));
    color: #fff; box-shadow: 0 8px 18px rgba(11, 74, 134, .28);
}

/* 不可用（首/末页方向） */
.jt-pager .dis {
    background: #f2f6fa; color: #b3c4d6; box-shadow: none; cursor: default; font-weight: 500;
}

/* 上一页 / 下一页 */
.jt-pager .jt-pager-nav { padding: 0 16px; }
.jt-pager .jt-pager-nav span[aria-hidden] { font-size: 16px; line-height: 1; margin-top: -1px; }

/* 省略号 */
.jt-pager .jt-pager-gap {
    min-width: auto; padding: 0 2px; background: transparent; box-shadow: none;
    color: #9fb2c4; font-weight: 500;
}

/* ===================== 首页专利证书轮播 ===================== */
.jt-patent-sec { background: linear-gradient(180deg, #f8fbff 0%, #edf4fb 100%); overflow: hidden; }
.jt-patent-sec .jt-container { position: relative; }

.jt-patent-stage { position: relative; height: 500px; margin-top: 10px; perspective: 1600px; }
.jt-patent-item {
    position: absolute; top: 0; left: 50%; width: 340px; margin-left: -170px;
    display: block; border-radius: 8px; overflow: hidden; background: #fff;
    box-shadow: 0 22px 50px rgba(11, 42, 74, .16);
    transition: transform .65s cubic-bezier(.22, .61, .36, 1), opacity .5s ease,
                filter .5s ease, box-shadow .3s ease;
    will-change: transform, opacity;
}
.jt-patent-item img { display: block; width: 100%; height: auto; }

/* 白色蒙层：靠"压白"而不是"变透明"做层次，背后的卡片不会透出来 */
.jt-patent-item::after {
    content: ""; position: absolute; inset: 0; background: #fff; opacity: 0;
    pointer-events: none; transition: opacity .5s ease;
}

.jt-patent-item.is-c0 { transform: translateX(0) scale(1); opacity: 1; z-index: 5; filter: none; }
.jt-patent-item.is-c0::after { opacity: 0; }
.jt-patent-item.is-c0:hover { box-shadow: 0 28px 62px rgba(11, 42, 74, .24); }

.jt-patent-item.is-l1 { transform: translateX(-64%) scale(.82); opacity: 1; z-index: 4; filter: blur(1.2px) brightness(.99); }
.jt-patent-item.is-r1 { transform: translateX(64%) scale(.82); opacity: 1; z-index: 4; filter: blur(1.2px) brightness(.99); }
.jt-patent-item.is-l2 { transform: translateX(-110%) scale(.68); opacity: 1; z-index: 3; filter: blur(2px) brightness(.99); }
.jt-patent-item.is-r2 { transform: translateX(110%) scale(.68); opacity: 1; z-index: 3; filter: blur(2px) brightness(.99); }

.jt-patent-item.is-l1::after,
.jt-patent-item.is-r1::after { opacity: .22; }
.jt-patent-item.is-l2::after,
.jt-patent-item.is-r2::after { opacity: .40; }
/* 超出视野的卡片停在屏幕外：进出都沿同一方向滑动，循环时无"闪现" */
.jt-patent-item.is-hide { opacity: 0; z-index: 1; pointer-events: none; }
.jt-patent-item.is-hide-l { transform: translateX(-140%) scale(.6); }
.jt-patent-item.is-hide-r { transform: translateX(140%) scale(.6); }

.jt-patent-arrow {
    position: absolute; top: 45%; z-index: 6;
    width: 44px; height: 44px; border-radius: 50%;
    border: 1px solid rgba(11, 74, 134, .18);
    background: rgba(255, 255, 255, .94); color: var(--jt-blue);
    font-size: 22px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 18px rgba(11, 42, 74, .12);
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.jt-patent-arrow:hover { background: #fff; color: var(--jt-blue-2); transform: translateY(-1px); }
.jt-patent-prev { left: 4px; }
.jt-patent-next { right: 4px; }

.jt-patent-cap { text-align: center; margin-top: 16px; }
.jt-patent-cap b { display: block; font-size: 16px; font-weight: 700; color: var(--jt-ink); margin-bottom: 6px; }
.jt-patent-cap span { font-size: 13px; color: #8ba1b6; }

/* 手机端：横滑 + 自动播放（不显示两侧卡片）
   2026-10-31：只作用于「独立证书轮播」(.jt-patent-sec)；
   首页 #jtPatent 版块在手机端继续用封面流（见文件末尾 patent-mobile-coverflow）。 */
@media (max-width: 820px) {
    .jt-patent-sec .jt-patent-stage {
        height: auto; display: flex; gap: 12px;
        overflow-x: auto; overflow-y: hidden;
        scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
        padding: 4px 0 14px; margin: 6px -16px 0;
    }
    .jt-patent-sec .jt-patent-item {
        position: relative; top: auto; left: auto; margin: 0;
        flex: 0 0 auto; width: 74vw; max-width: 320px;
        scroll-snap-align: center;
        transform: none !important; opacity: 1 !important; filter: none !important;
        pointer-events: auto !important;
        box-shadow: 0 10px 26px rgba(11, 42, 74, .14);
    }
    .jt-patent-sec .jt-patent-item::after { display: none; }
    .jt-patent-sec .jt-patent-arrow { display: none; }
    .jt-patent-sec .jt-patent-cap { margin-top: 12px; padding: 0 16px; }
    .jt-patent-sec .jt-patent-cap b { font-size: 15px; }
}

/* ===================== 底部 ===================== */
.jt-footer { background: #071c31; color: rgba(255, 255, 255, .72); margin-top: 80px; }
.jt-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr auto; gap: 36px; padding: 56px 20px 40px; }
.jt-footer h4 { color: #fff; font-size: 15px; margin-bottom: 14px; }
.jt-footer-logo { color: #fff; font-size: 20px; font-weight: 800; margin-bottom: 12px; }
.jt-footer-about p { font-size: 14px; margin: 0; max-width: 380px; }
.jt-footer ul li { font-size: 14px; margin-bottom: 8px; }
.jt-footer ul li span { color: rgba(255, 255, 255, .5); }
.jt-footer a:hover { color: #fff; }
.jt-footer-qr img { border-radius: 10px; background: #fff; padding: 6px; }
.jt-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding: 16px 0; font-size: 13px; color: rgba(255, 255, 255, .5); }
.jt-footer-bottom .jt-container { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
.jt-updated { margin-left: auto; }

/* ===================== 其他 ===================== */
.jt-empty { text-align: center; color: #8aa0b5; padding: 60px 0; background: #fff; border: 1px dashed var(--jt-line); border-radius: var(--jt-radius); }
.jt-back { margin-top: 28px; }
.jt-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; background: rgba(23, 182, 201, .12); color: #0e7f8c; }
.jt-split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }

/* ===================== 响应式 ===================== */
@media (max-width: 1024px) {
    .jt-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jt-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jt-footer-grid { grid-template-columns: 1fr 1fr; }
    .jt-split { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    :root { --jt-header-h: 64px; }
    .jt-header-inner { height: 64px; }
    .jt-nav {
        position: fixed; inset: 64px 0 auto; background: #fff; border-bottom: 1px solid var(--jt-line);
        max-height: calc(100vh - 64px); overflow: auto; padding: 10px 16px 22px;
        transform: translateY(-8px); opacity: 0; visibility: hidden; transition: all .2s ease;
    }
    .jt-header.nav-open .jt-nav { transform: none; opacity: 1; visibility: visible; }
    .jt-nav-list { display: block; }
    .jt-nav-list > li > a { padding: 13px 8px; border-bottom: 1px solid var(--jt-line); border-radius: 0; }
    .jt-sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 14px; display: none; }
    .jt-nav-list > li.has-sub.sub-open > .jt-sub { display: block; }
    .jt-burger { display: block; }
    .jt-tel { display: none; }
    .jt-hero,
    body.jt-page-home .jt-hero { min-height: var(--jt-hero-h-m, 460px); }
    .jt-hero-body { padding: 80px 20px 92px; }
    .jt-hero-lines { min-height: 110px; }
    /* 手机端：切到“手机轮播图 + 手机文案”，PC 视频/封面图组不再显示 */
    .jt-hero-slides--mobile { display: block; }
    .jt-hero-lines--mobile { display: block; }
    .jt-hero-lines--pc { display: none; }
    .jt-hero-navs--mobile { display: block; }
    .jt-hero-nav { width: 38px; height: 38px; }
    .jt-hero-nav--prev { left: 10px; }
    .jt-hero-nav--next { right: 10px; }
    .jt-hero-line .jt-hero-title { font-size: clamp(24px, 6.4vw, 34px); }
    .jt-hero-play { right: 16px; bottom: 18px; }

    /* 手机端首屏也是视频：加一层温和的上下压暗，保证白色标题读得清（不压掉画面色彩） */
    .jt-hero.has-video::after {
        display: block;
        background: linear-gradient(180deg,
            rgba(6, 26, 46, .32) 0%,
            rgba(6, 26, 46, .10) 42%,
            rgba(6, 26, 46, .55) 100%);
    }
    .jt-hero-video { z-index: 1; }
    .jt-section { padding: 52px 0; }
    .jt-fact-list, .jt-grid-2 { grid-template-columns: 1fr; }
    .jt-cert-facts { grid-template-columns: 1fr; }
    /* 手机端三列网格降为单列，证书卡保持“左图右属性 + 下名称” */
    .jt-grid-3 { grid-template-columns: 1fr; }
    .jt-cert-card--split .jt-cert-thumb { min-height: 130px; padding: 8px; }
    .jt-cert-card--split .jt-cert-meta { padding: 10px 12px; font-size: 12px; }
    .jt-cert-name { padding: 10px 12px 12px; font-size: 14px; }
    .jt-pager-wrap { margin-top: 36px; gap: 10px; }
    .jt-pager a, .jt-pager span { min-width: 36px; height: 36px; padding: 0 10px; font-size: 13px; }
    .jt-pager .jt-pager-nav { padding: 0 13px; }
    .jt-form-row { grid-template-columns: 1fr; }
    .jt-footer-grid { grid-template-columns: 1fr; gap: 26px; padding: 40px 20px 28px; }
    .jt-updated { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .jt-rise { animation: none; opacity: 1; transform: none; }
    * { transition: none !important; }
}

/* ===================== 底部（浅色版 · 2026-10 改版） ===================== */
.jt-ft { background: #fff; color: #333; font-size: 13.5px; border-top: 1px solid #f0f0f0; }

.jt-ft-main {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    padding: 54px 20px 42px;
}

/* 左：logo + 联系信息 */
.jt-ft-brand { flex: 0 0 300px; max-width: 300px; }
.jt-ft-logo { display: inline-flex; align-items: center; gap: 10px; }
.jt-ft-logo img { display: block; max-height: 46px; width: auto; }
.jt-ft-logo-mark { color: #2f7de1; font-size: 26px; line-height: 1; }
.jt-ft-logo-txt { font-size: 20px; font-weight: 800; color: #1b1b1b; line-height: 1.12; }
.jt-ft-logo-txt em {
    display: block; font-style: normal; font-size: 10.5px; letter-spacing: 2.4px;
    color: #8a8a8a; font-weight: 400; margin-top: 4px;
}

.jt-ft-contact { margin-top: 24px; line-height: 2.05; color: #333; }
.jt-ft-contact li { margin: 0; white-space: nowrap; }
.jt-ft-contact a { color: #333; }
.jt-ft-contact a:hover { color: #2f7de1; }

/* 中：四组导航 */
.jt-ft-nav { flex: 1 1 auto; display: flex; gap: 36px; justify-content: space-between; }
.jt-ft-col { min-width: 96px; }
.jt-ft-col h4 { font-size: 14px; font-weight: 700; color: #111; margin: 0 0 16px; line-height: 1.4; }
.jt-ft-col ul li { margin: 0 0 11px; line-height: 1.4; }
.jt-ft-col ul li a { color: #555; font-size: 13.5px; }
.jt-ft-col ul li a:hover { color: #2f7de1; }

/* 第一列：顶部三个一级入口，横排、加粗 */
.jt-ft-toplinks { display: flex; gap: 22px; flex-wrap: wrap; padding-top: 1px; }
.jt-ft-toplinks li { margin: 0; }
.jt-ft-toplinks a { color: #111; font-weight: 700; font-size: 14px; }
.jt-ft-toplinks a:hover { color: #2f7de1; }

/* 右：二维码 */
.jt-ft-qr { flex: 0 0 132px; text-align: center; }
.jt-ft-qr img { display: block; margin: 0 auto 10px; width: 120px; height: 120px; }
.jt-ft-qr p { margin: 0; font-size: 12.5px; color: #666; }

/* 底部备案行 */
.jt-ft-bottom { border-top: 1px solid #e9e9e9; padding: 18px 0; }
.jt-ft-bottom .jt-container {
    display: flex; justify-content: center; flex-wrap: wrap;
    gap: 8px 26px; color: #666; font-size: 12.5px; text-align: center;
}
/* ICP 备案号：可点击，链到工信部备案中心 */
.jt-ft-bottom a,
.jt-ft-icp { color: #666; }
.jt-ft-bottom a:hover,
.jt-ft-icp:hover { color: #2f7de1; }

@media (max-width: 1100px) {
    .jt-ft-main { flex-wrap: wrap; gap: 34px; }
    .jt-ft-brand { flex: 1 1 100%; max-width: none; }
    .jt-ft-nav { flex: 1 1 100%; gap: 28px; }
    .jt-ft-qr { flex: 0 0 auto; }
}

@media (max-width: 820px) {
    .jt-ft-main { padding: 36px 18px 28px; }
    .jt-ft-nav { flex-wrap: wrap; gap: 24px 26px; }
    .jt-ft-col { min-width: 44%; }
    .jt-ft-contact li { white-space: normal; }
    .jt-ft-bottom .jt-container { gap: 6px 14px; font-size: 12px; }
}

/* ===================== 首页整屏版块（设计稿版式） ===================== */
.jt-hs {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: #123f6b;
    /* 头部是浮层，内容下移让开；背景图（.jt-hs-bg 绝对定位）仍铺满整屏 */
    padding-top: var(--jt-header-h);
}
.jt-hs-bg {
    position: absolute; inset: 0; z-index: 0;
    background-size: cover; background-position: center; background-repeat: no-repeat;
}
.jt-hs-inner { position: relative; z-index: 1; width: 100%; padding: 80px 20px; }
.jt-hs-head { text-align: center; margin-bottom: 42px; }
.jt-hs-head h2 {
    font-size: clamp(24px, 2.6vw, 34px); letter-spacing: 4px; margin: 0 0 12px; color: #10406c;
}
.jt-hs-head p { margin: 0; font-size: 14px; color: #52759a; }
.jt-hs-foot { text-align: center; margin-top: 34px; }

/* ① 超越纯净（左侧白色圆形 + 右侧 2×2 蓝色图文块）
   ⚠️ 不加任何颜色蒙版：背景图 / 卡片图都按原图显示。 */
.jt-hs-pure .jt-hs-bg { background-position: center top; }

/* 版块内布局（对应设计稿的框1 / 框2 / 框3）：
   框1 = 左栏边界（整屏 35% 处），右栏从这里开始
   框2 = 右栏，占整屏 65%（四宫格）
   框3 = 左栏里的一块“内容 + 背景”面板，尺寸≈设计稿红框，不再铺满整个左栏

   椭圆切图（wu-frame.png 1000×646）只露出「左半 + 中间」：
   面板高度决定图的高度，图宽 = 高 × 1.548，超出面板宽度的那截（右弧）被裁掉。 */
.jt-pure-inner {
    position: relative; z-index: 1;
    display: flex; align-items: center;
    min-height: 100vh;
    --pure-left: 35vw;                                 /* 左栏/右栏分界线 */
    /* 面板尺寸对齐设计稿：略宽、略矮，左弧完整露出，右弧被四宫格压住 */
    --pure-panel-w: clamp(260px, 30vw, 440px);
    --pure-panel-h: clamp(280px, 64vh, 560px);
}

.jt-pure-panel {
    position: absolute;
    /* 面板右边缘贴在 35% 线上，与四宫格严丝合缝，不留缝也不重叠 */
    left: calc(var(--pure-left) - var(--pure-panel-w));
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    width: var(--pure-panel-w);
    height: var(--pure-panel-h);
    /* 背景按面板高度铺满（auto 100%）：上下完整不裁切；
       图宽 = 高 × 1.548，远大于面板宽，右半圆弧被裁掉，只留左弧 + 中间。 */
    background: url(/static/images/home/wu-frame.png) left center / auto 100% no-repeat;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center;
    /* 让文字落在“白色椭圆可见部分”的正中：
       切图白色区域左边缘在 48/646 ≈ 7.43% 高度处，垂直中心比图片中心高约 1.7%，
       所以左内边距补 7.43%·面板高、底部补 3.4%·面板高（视觉上正好居中）。 */
    padding: 0 0 calc(var(--pure-panel-h) * .034) calc(var(--pure-panel-h) * .0743);
}
/* 两行文字等宽对齐：
   .jt-pure-box 收缩包裹，宽度由最宽的一行（标题）决定；
   副标题宽度 100% 且两端对齐，自然撑到和标题一样宽。 */
.jt-pure-box {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.jt-pure-h2 {
    display: block;
    margin: 0 0 16px;
    font-size: clamp(26px, 2.8vw, 40px);
    letter-spacing: 10px;
    text-indent: 10px;      /* 抵消末尾 letter-spacing，视觉左右留白一致 */
    font-weight: 500;
    line-height: 1.2;
    color: #123c66;
}
.jt-pure-sub {
    display: block;
    width: 100%;
    font-size: clamp(13px, 1.2vw, 18px);
    letter-spacing: 0;      /* 由两端对齐自动分配字距 */
    text-indent: 0;
    text-align: justify;
    text-align-last: justify;
    line-height: 1.6;
    color: #6c8aa6;
}

.jt-pure-grid {
    position: relative;
    z-index: 2;
    /* ★ 右栏占整屏 65%：起始位置 = 左栏右边界（35vw），宽度 = 65vw */
    margin-left: var(--pure-left);
    width: calc(100% - var(--pure-left));   /* 100% 相对版块宽度，避免 100vw 带出横向滚动条 */
    height: 70vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 0;                                    /* 四格之间不留缝，图文连续 */
}

.jt-pure-card {
    position: relative;
    min-height: 280px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex; align-items: center;
    padding: 40px 44px;
    color: #123a5e;
    overflow: hidden;
}
/* 五个区域都是链接：去掉下划线、手型光标，样式不变 */
a.jt-pure-panel,
a.jt-pure-card { text-decoration: none; cursor: pointer; }
a.jt-pure-panel:focus-visible,
a.jt-pure-card:focus-visible { outline: 2px solid var(--jt-blue); outline-offset: 3px; }

/* 不再加蒙版：卡片背景就是原图本身 */
.jt-pure-txt { display: block; position: relative; z-index: 1; max-width: 320px; }
.jt-pure-card h3 {
    margin: 0 0 12px;
    font-size: clamp(16px, 1.3vw, 20px);
    font-weight: 500;
    letter-spacing: 3px;
    color: #123a5e;
}
.jt-pure-bar {
    display: block;
    width: 46px; height: 3px;
    /* 主题蓝（与站点主色一致） */
    background: var(--jt-blue);
    margin: 0 0 16px;
}
.jt-pure-card p {
    margin: 0;
    font-size: 12.5px;
    color: #2b5578;
    line-height: 2;
}
/* ===== 超越纯净：入场动效 + 悬停浮起（仅桌面，手机端不参与） =====
   顺序：右栏四块错峰出现 → 左栏白块从右栏背后（右侧）贴着滑出。 */
@media (min-width: 821px) {
    /* 放大后的格子会略微超出边界，这里允许溢出，避免被裁掉 */
    #jtPure { overflow: visible; }

    /* JS 加上 is-anim 后先隐藏；没有 JS 时保持可见（不影响无脚本访问） */
    #jtPure.is-anim:not(.is-in) .jt-pure-card { opacity: 0; transform: translateY(26px) scale(.985); }
    #jtPure.is-anim:not(.is-in) .jt-pure-panel { opacity: 0; transform: translate(110px, -50%); }

    #jtPure.is-in .jt-pure-card { animation: jtCardIn .7s cubic-bezier(.22, .8, .28, 1) both; }
    #jtPure.is-in .jt-pure-card:nth-child(1) { animation-delay: .04s; }
    #jtPure.is-in .jt-pure-card:nth-child(2) { animation-delay: .14s; }
    #jtPure.is-in .jt-pure-card:nth-child(3) { animation-delay: .24s; }
    #jtPure.is-in .jt-pure-card:nth-child(4) { animation-delay: .34s; }
    #jtPure.is-in .jt-pure-panel { animation: jtPanelIn .85s cubic-bezier(.22, .8, .28, 1) .52s both; }

    /* 动画结束后交给 transition，否则 animation 的 transform 会盖住 hover 的缩放 */
    #jtPure.is-ready .jt-pure-card,
    #jtPure.is-ready .jt-pure-panel { animation: none; opacity: 1; }
    #jtPure.is-ready .jt-pure-card { transform: none; }
    #jtPure.is-ready .jt-pure-panel { transform: translate(0, -50%); }

    /* hover：浮起 + 轻微放大（z-index 抬高，盖住相邻格子） */
    .jt-pure-card { transition: transform .32s ease, box-shadow .32s ease; will-change: transform; }
    #jtPure.is-ready .jt-pure-card:hover {
        transform: scale(1.045);
        z-index: 5;
        box-shadow: 0 22px 48px rgba(8, 45, 85, .3);
    }
}

@keyframes jtCardIn {
    from { opacity: 0; transform: translateY(26px) scale(.985); }
    to   { opacity: 1; transform: none; }
}
@keyframes jtPanelIn {
    from { opacity: 0; transform: translate(110px, -50%); }
    to   { opacity: 1; transform: translate(0, -50%); }
}

@media (min-width: 821px) and (prefers-reduced-motion: reduce) {
    #jtPure .jt-pure-card,
    #jtPure .jt-pure-panel { animation: none !important; opacity: 1 !important; transition: none !important; }
    #jtPure .jt-pure-panel { transform: translate(0, -50%) !important; }
    #jtPure .jt-pure-card { transform: none !important; }
}

/* ② 活性未来：左侧时间轴 + 右侧拱形标题 */
/* 整屏撑满：时间轴竖线从头贯到尾，文字上下均分留白 */
.jt-hs-active .jt-hs-inner {
    min-height: calc(100vh - var(--jt-header-h));
    /* 上下留白收紧到 40px，给拉大后的行距/条目间距腾空间，避免底部被裁 */
    padding-top: 40px; padding-bottom: 40px;
    display: flex; align-items: stretch;
}
.jt-active-wrap { display: flex; align-items: stretch; gap: 56px; max-width: 1280px; margin: 0 auto; width: 100%; }

/* 时间轴 */
.jt-active-timeline { flex: 0 0 46%; display: flex; }
.jt-tl {
    position: relative; margin: 0; padding: 0 0 0 26px; list-style: none;
    flex: 1 1 auto;
    /* 一组内容整体垂直居中，节点之间用固定的 row-gap：
       大屏上不会再把 4 条拉开成“中间一大片空”，小屏也不会挤到顶天立地 */
    display: flex; flex-direction: column;
    justify-content: center;
    row-gap: 32px;
}
.jt-tl::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0;
    width: 1px; background: rgba(27, 58, 92, .32);
}

/* 桌面端：竖线往上顶到版块顶部、往下顶到版块底部
   上方需要跨过「版块自身 padding-top（= 导航高度）」+「内容区 80px 内边距」，
   下方跨过内容区 80px 内边距；超出部分由版块 overflow:hidden 裁掉。 */
@media (min-width: 821px) {
    .jt-hs-active .jt-tl::before {
        top: calc(-1 * (var(--jt-header-h) + 40px));
        bottom: -40px;
    }
}
.jt-tl li {
    position: relative; margin: 0;
}
.jt-tl li:last-child { margin-bottom: 0; }
/* 第一条不再单独上移（整体居中后保持对称留白） */
.jt-tl li:first-child { margin-top: 0; }

/* 节点：默认小实心圆
   竖线在 .jt-tl 的 left:0（宽 1px，中心 0.5px）；
   内容区因 padding-left:26px 从 26px 开始，所以节点 left 需为 -(26+半径) 才能与线中心对齐。 */
.jt-tl li::before {
    content: ""; position: absolute; left: -29px; top: 9px;   /* 26 + 3.5 → 圆心落在竖线上 */
    width: 7px; height: 7px; border-radius: 50%;
    background: rgba(22, 57, 92, .55);
    border: 0;
    transition: width .25s ease, height .25s ease, left .25s ease,
                top .25s ease, background .25s ease, border .25s ease;
}

/* 第一条默认是空心大圆（当前节点） */
.jt-tl li:first-child::before {
    width: 11px; height: 11px; left: -31px; top: 7px;         /* 26 + 5.5 */
    background: #fff;
    border: 2px solid rgba(22, 57, 92, .75);
}

/* 鼠标进入时间轴后，第一条先恢复成实心（除非它自己正被悬停） */
.jt-tl:hover li:first-child::before {
    width: 7px; height: 7px; left: -29px; top: 9px;
    background: rgba(22, 57, 92, .55);
    border: 0;
}

/* 被悬停的那一条：变成空心大圆 + 文字放大 */
.jt-tl:hover li:hover::before {
    width: 11px; height: 11px; left: -31px; top: 7px;
    background: #fff;
    border: 2px solid rgba(22, 57, 92, .85);
}
/* 悬停放大只作用于文字层，节点位置保持不动 */
.jt-tl-body { transform-origin: left top; transition: transform .28s ease; }
.jt-tl li:hover .jt-tl-body { transform: translateX(6px) scale(1.03); }
.jt-tl li:hover .jt-tl-title { color: #0f2f4f; }
.jt-tl li:hover .jt-tl-text { color: #3c5d7d; }
.jt-tl-year { display: block; margin-bottom: 12px; font-size: 16px; font-weight: 600; color: #123c66; letter-spacing: .5px; }
.jt-tl-title { margin: 0 0 14px; font-size: 16.5px; font-weight: 700; line-height: 1.85; color: #16395c; }
.jt-tl-text { margin: 0; font-size: 13.5px; line-height: 2.3; color: #4a6a88; }

/* 右侧拱形 + 大标题 */
.jt-active-visual {
    position: relative; flex: 1 1 auto;
    height: 62vh;
    align-self: center;                  /* 时间轴拉伸后，右侧仍保持垂直居中 */
    display: flex; align-items: center; justify-content: center;
}
/* 拱形：左侧半圆弧 + 上下直线向右延伸（右侧开口，不封边）
   尺寸按设计稿内框：高度约 36vh，左边缘从可视区 14% 处起 */
.jt-active-arch {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 14%;
    right: 0;
    height: 36vh;
    border: 1px solid rgba(255, 255, 255, .75);
    border-right: 0;
    border-radius: calc(18vh) 0 0 calc(18vh);
    background: linear-gradient(90deg, rgba(255, 255, 255, .14) 0%, rgba(255, 255, 255, .03) 100%);
    /* 从左到右淡出：描边与浅底一起渐变到透明，右侧完全消失 */
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 28%, rgba(0, 0, 0, .45) 62%, transparent 100%);
    mask-image: linear-gradient(90deg, #000 0%, #000 28%, rgba(0, 0, 0, .45) 62%, transparent 100%);
}
.jt-active-titles { position: relative; z-index: 1; text-align: center; }
.jt-active-titles h2 {
    margin: 0 0 14px;
    font-size: clamp(30px, 3.4vw, 46px);
    font-weight: 500; letter-spacing: 12px; text-indent: 12px;
    color: #fff;
    text-shadow: 0 2px 16px rgba(10, 45, 85, .25);
}
.jt-active-titles p {
    margin: 0;
    font-size: clamp(13px, 1.2vw, 17px);
    letter-spacing: 6px; text-indent: 6px;
    color: rgba(255, 255, 255, .92);
}

/* ③ 企业介绍：楼体只占底部一块（不再铺满全屏），进入时由下往上滑出 */
.jt-hs-about { justify-content: flex-start; padding-bottom: 0; overflow: hidden; }

/* 版块整体比整屏矮「一个顶部导航」的高度（楼体同步缩短，楼顶位置保持不变） */
#jtAbout { min-height: calc(100vh - var(--jt-header-h)); }
.jt-hs-about .jt-hs-inner {
    max-width: 1280px; margin: 0 auto; text-align: left;
    /* 顶部再往下让两个“头部高度”：两块内容整体更靠下 */
    padding: calc(var(--jt-header-h) * 2 + 8px) 20px calc(62vh - var(--jt-header-h));
}
/* 左文 + 右数据 两栏
   ⚠️ 全部限定在首页这个版块内（#jtAbout）：
   「公司介绍」内页（page.php?code=about）也有 .jt-about-text / .jt-about-head 等类，
   不加作用域会把内页正文挤成半屏宽。 */
#jtAbout .jt-about-cols { display: flex; align-items: flex-start; gap: 96px; }
#jtAbout .jt-about-left { flex: 0 0 44%; }
#jtAbout .jt-about-right { flex: 1 1 auto; padding-top: 16px; padding-left: 16px; }

#jtAbout .jt-about-head h2 { font-size: clamp(24px, 2.6vw, 34px); letter-spacing: 6px; margin: 0 0 20px; color: #10406c; }
#jtAbout .jt-about-text {
    margin: 0; max-width: 620px;
    font-size: 13.5px; line-height: 1.95; color: #3d5f80; text-align: justify;
}
#jtAbout .jt-about-text p { margin: 0 0 10px; }
#jtAbout .jt-about-text p:last-child { margin-bottom: 0; }
/* 按钮靠右（与左栏右边缘对齐） */
#jtAbout .jt-about-more { margin-top: 14px; text-align: right; }

/* 右侧规模数据（2×2） */
#jtAbout .jt-about-mini {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 26px 34px;
}
/* 每一项：左图标 + 右文字（数字在上、名称在下），纵向更紧凑 */
#jtAbout .jt-about-mini-item { display: flex; align-items: center; gap: 14px; text-align: left; }
#jtAbout .jt-about-mini-icon { flex: 0 0 auto; height: 44px; margin: 0; color: var(--jt-blue); }
#jtAbout .jt-about-mini-icon img { height: 44px; width: auto; display: block; }
#jtAbout .jt-about-mini-icon svg { height: 44px; width: 44px; }
#jtAbout .jt-about-mini-body { display: flex; flex-direction: column; gap: 2px; }
#jtAbout .jt-about-mini-num {
    font-size: clamp(24px, 2.2vw, 32px); font-weight: 700; line-height: 1.1;
    color: #0f3f6d; letter-spacing: .5px;
}
#jtAbout .jt-about-mini-num small { font-size: 12px; font-weight: 500; margin-left: 4px; color: #5b7793; }
#jtAbout .jt-about-mini-label { margin: 0; font-size: 13px; color: #6b8aa8; }
/* 楼体容器：固定高度 + 裁切，图片按宽度铺满，只露上部（楼顶 + 招牌） */
#jtAbout .jt-about-building {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 0;
    /* 上移一个「导航高度」：可见高度 = 60vh - 1×导航高 */
    height: calc(60vh - var(--jt-header-h));
    overflow: hidden;
}
/* 图片按宽度铺满；上移约 5.5vw 把多余天空裁掉，
   但保留楼顶边缘完整可见（不再切到屋顶）。 */
#jtAbout .jt-about-building img {
    display: block; width: 100%; height: auto;
    margin-top: -5.5vw;
}

/* 进场动效（桌面）：
     楼体     ：从下往上滑出（20 秒循环）
     左栏文字 ：从左往右进入
     右栏数据 ：从右往左进入
   每次进入该版块都会重播（JS 摘除/重新添加 .is-in）。 */
@media (min-width: 821px) {
    /* 初始隐藏（JS 加 is-anim 后才生效；无 JS 时保持可见） */
    .jt-hs-about.is-anim:not(.is-in) .jt-about-building { opacity: 0; transform: translateY(280px); }
    #jtAbout.is-anim:not(.is-in) .jt-about-left  { opacity: 0; transform: translateX(-80px); }
    #jtAbout.is-anim:not(.is-in) .jt-about-right { opacity: 0; transform: translateX(80px); }

    /* 进入时播放 */
    .jt-hs-about.is-in .jt-about-building {
        animation: jtBuildingLoop 20s cubic-bezier(.22, .8, .28, 1) infinite both;
    }
    #jtAbout.is-in .jt-about-left {
        animation: jtAboutLeftIn .95s cubic-bezier(.22, .8, .28, 1) .10s both;
    }
    #jtAbout.is-in .jt-about-right {
        animation: jtAboutRightIn .95s cubic-bezier(.22, .8, .28, 1) .28s both;
    }

    @media (prefers-reduced-motion: reduce) {
        .jt-hs-about.is-anim:not(.is-in) .jt-about-building { opacity: 1; transform: none; }
        #jtAbout.is-anim:not(.is-in) .jt-about-left,
        #jtAbout.is-anim:not(.is-in) .jt-about-right { opacity: 1; transform: none; }
        .jt-hs-about.is-in .jt-about-building,
        #jtAbout.is-in .jt-about-left,
        #jtAbout.is-in .jt-about-right { animation: none; }
    }
}

/* 左栏：从左往右 */
@keyframes jtAboutLeftIn {
    from { opacity: 0; transform: translateX(-80px); }
    to   { opacity: 1; transform: none; }
}
/* 右栏：从右往左 */
@keyframes jtAboutRightIn {
    from { opacity: 0; transform: translateX(80px); }
    to   { opacity: 1; transform: none; }
}

/* 20 秒周期：
   0~4%    （0~0.8s）  从下方滑上来
   4~94%   （0.8~18.8s）停在原位
   94~98%  （18.8~19.6s）淡出
   98~100% （19.6~20s）在下方待命，跳到下一轮时不可见，不会看到“往下掉” */
@keyframes jtBuildingLoop {
    /* 起始位置更低（280px ≈ 小半屏），滑上来更有"升起"的感觉 */
    0%   { opacity: 0; transform: translateY(280px); }
    6%   { opacity: 1; transform: translateY(0); }    /* 6% of 20s = 1.2s */
    94%  { opacity: 1; transform: translateY(0); }
    98%  { opacity: 0; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(280px); }
}

/* ④ 10 大科研中心 */
.jt-rd-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; max-width: 1280px; margin: 0 auto; }

/* 首页科研中心：标题左对齐（设计稿版式） */
.jt-rd-head { text-align: left; margin: 0 0 26px; padding-left: 6px; }
.jt-rd-head h2 {
    margin: 0;
    font-size: clamp(22px, 2.2vw, 32px);
    letter-spacing: 2px;
    font-weight: 700;
    color: #fff;                                  /* 标题白字，压在蓝色背景上更醒目 */
    text-shadow: 0 2px 12px rgba(10, 45, 85, .22);
}

/* 卡片轨道：一屏 4 个，按「一条」为步长轮动（JS 控制 translateX） */
.jt-rd-marquee {
    position: relative; overflow: hidden;
    max-width: 1280px; margin: 0 auto;
    padding: 4px 0 6px;
}
.jt-rd-track { display: flex; align-items: stretch; gap: 20px; will-change: transform; }

.jt-rd-marquee .jt-rd-card {
    flex: 0 0 calc((100% - 60px) / 4);       /* 4 个 + 3 个 20px 间距 */
    display: flex; flex-direction: column;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(18, 60, 110, .10);
}
.jt-rd-marquee .jt-rd-media {
    flex: 0 0 auto;
    height: 320px;              /* 接近设计稿的竖版比例 */
    overflow: hidden;
}
.jt-rd-marquee .jt-rd-media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
/* 底部白条：标题居中 */
.jt-rd-marquee .jt-rd-card h3 {
    margin: 0;
    padding: 20px 14px;
    text-align: center;
    font-size: 16px; line-height: 1.5; font-weight: 500;
    color: #123c66;
}
.jt-rd-card {
    display: block;
    background: #fff; border-radius: 12px; overflow: hidden;
    box-shadow: 0 14px 38px rgba(18, 63, 107, .12);
    text-decoration: none; color: inherit;
    transition: transform .3s ease, box-shadow .3s ease;
}
a.jt-rd-card:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(18, 63, 107, .18); }
.jt-rd-media { height: 170px; background: linear-gradient(135deg, #dceafa, #b9d6f2); }
.jt-rd-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jt-rd-card h3 { margin: 16px 18px 6px; font-size: 15px; color: #123f6b; }
.jt-rd-card p { margin: 0 18px 18px; font-size: 12.5px; line-height: 1.8; color: #5b7793; }

/* ⑤ 旗下品牌 */
.jt-brand-row { display: flex; justify-content: center; align-items: flex-end; gap: 20px; max-width: 1200px; margin: 0 auto; }
.jt-brand-card {
    position: relative;
    width: 190px; height: 320px;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    padding-bottom: 34px;
    text-decoration: none;
}
.jt-brand-ring {
    position: absolute; inset: 0;
    background: url(/static/images/home/ring-brand.png) center bottom / contain no-repeat;
}
.jt-brand-logo { position: relative; z-index: 1; max-width: 110px; max-height: 70px; object-fit: contain; margin-bottom: 10px; }
.jt-brand-name { position: relative; z-index: 1; font-size: 19px; font-weight: 800; color: #124a7c; letter-spacing: 2px; }
.jt-brand-text { position: relative; z-index: 1; font-size: 12px; color: #6b8aa8; margin-top: 8px; }
.jt-brand-card:hover .jt-brand-name { color: #1f7fd0; }

/* 整屏吸附：每个版块占满一屏（桌面） */
@media (min-width: 821px) {
    body.jt-page-home main > section { min-height: 100vh; }
}

@media (max-width: 1100px) {
    .jt-pure-grid { gap: 14px; }
    .jt-rd-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
    .jt-hs-inner { padding: 56px 16px; }

    /* 超越纯净：手机端恢复上下排列（面板在上、四宫格在下） */
    .jt-pure-inner { flex-direction: column; min-height: auto; padding: 44px 16px 30px; }
    .jt-pure-panel {
        position: static;
        transform: none;
        z-index: 1;
        width: 88%; max-width: 420px;
        height: auto;
        margin: 0 auto 22px;
        padding: 0 16px;
        aspect-ratio: 1000 / 646;
        text-align: center;
        background-size: contain;
        background-position: center;
    }
    .jt-pure-h2 { letter-spacing: 6px; text-indent: 6px; }
    .jt-pure-sub { letter-spacing: 0; text-indent: 0; }
    .jt-pure-grid {
        margin-left: 0;
        width: 100%;
        height: auto;
        grid-template-columns: 1fr;
        grid-template-rows: none;
        gap: 0;
    }
    .jt-pure-card { min-height: 200px; padding: 26px 22px; }

    /* 活性未来：手机端上下排列，时间轴全宽、拱形缩到 40vh */
    .jt-hs-active .jt-hs-inner { min-height: auto; display: block; }
    .jt-active-wrap { flex-direction: column; gap: 26px; align-items: stretch; }
    .jt-active-timeline { flex: 0 0 auto; width: 100%; display: block; }
    .jt-tl { display: block; padding-left: 22px; }
    .jt-tl li { margin-bottom: 22px; }
    .jt-tl li:first-child { margin-top: 0; }
    .jt-tl-title { font-size: 14px; }
    .jt-tl-text { font-size: 12px; line-height: 1.85; }
    .jt-active-visual { height: 40vh; width: 100%; }
    .jt-active-arch { left: 6%; height: 30vh; border-radius: 15vh 0 0 15vh; }
    .jt-active-titles h2 { font-size: 26px; letter-spacing: 8px; text-indent: 8px; }
    .jt-active-titles p { font-size: 12px; letter-spacing: 4px; text-indent: 4px; }
    #jtAbout .jt-about-cols { flex-direction: column; gap: 26px; }
    #jtAbout .jt-about-left { flex: 0 0 auto; width: 100%; }
    #jtAbout .jt-about-right { width: 100%; padding-top: 0; padding-left: 0; }
    #jtAbout .jt-about-text { font-size: 13px; text-align: left; }
    #jtAbout .jt-about-mini { gap: 20px 16px; }
    #jtAbout .jt-about-mini-icon { height: 38px; }
    #jtAbout .jt-about-mini-icon img,
    #jtAbout .jt-about-mini-icon svg { height: 38px; width: 38px; }
    .jt-hs-about { min-height: auto; padding-bottom: 0; overflow: hidden; }
    #jtAbout { min-height: auto; }                 /* 手机端不锁定整屏高度 */
    .jt-hs-about .jt-hs-inner { padding: 44px 16px 0; }
    #jtAbout .jt-about-building { position: static; margin-top: 26px; height: 50vh; overflow: hidden; }
    #jtAbout .jt-about-building img { width: 100%; height: auto; margin-top: 0; }
    .jt-rd-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .jt-rd-media { height: 120px; }
    /* 手机端：一屏 2 个 */
    .jt-rd-track { gap: 12px; }
    .jt-rd-marquee .jt-rd-card { flex: 0 0 calc((100% - 12px) / 2); border-radius: 14px; }
    .jt-rd-marquee .jt-rd-media { height: 150px; }
    .jt-rd-marquee .jt-rd-card h3 { padding: 12px 8px; font-size: 13px; }
    .jt-rd-head h2 { font-size: 20px; }
    .jt-brand-row { flex-wrap: wrap; gap: 12px; }
    .jt-brand-card { width: 45%; height: 250px; }
}

/* ===================== 首页「国家发明专利」版块（bg-05 整屏 + 半透明卡片） ===================== */
.jt-patent { overflow: hidden; }
.jt-patent .jt-hs-bg { background-position: center; }

/* 半透明磨砂卡片：左右内缩，垂直居中。
   背景/描边/模糊都放在 ::before 上，并对它做自上而下的透明渐变遮罩：
   卡片下半部分（含左右下角与下边缘）自然淡出，内容（证书/文字）不受影响。 */
.jt-patent-card {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 48px;
    width: calc(100% - 14vw);
    max-width: 1440px;
    height: 72vh;
    margin: 0 auto;
    padding: 32px 48px;
    background: none;
    border: 0;
    box-shadow: none;
    overflow: hidden;                 /* 两侧证书超出卡片时按卡片边缘裁切 */
}

.jt-patent-card::before {
    content: "";
    position: absolute; inset: 0; z-index: 0;
    border-radius: 30px;
    background: rgba(255, 255, 255, .55);
    border: 1px solid rgba(255, 255, 255, .75);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    /* 顶部实、往下渐隐：55% 之前保持，到底部完全透明 */
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 52%, rgba(0, 0, 0, .35) 82%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 52%, rgba(0, 0, 0, .35) 82%, transparent 100%);
}

/* 内容压在 ::before 之上 */
.jt-patent-card > * { position: relative; z-index: 1; }

/* 左侧标题：专利成果 */
.jt-patent-label {
    flex: 0 0 auto;
    margin: 0;
    font-size: clamp(24px, 2.3vw, 34px);
    font-weight: 700;
    letter-spacing: 3px;
    color: #1b3a5c;
    white-space: nowrap;
}

/* 右侧轮播区：占满卡片剩余空间，箭头以它为定位基准 */
.jt-patent-main {
    position: relative; flex: 1 1 auto; height: 100%;
    display: flex; flex-direction: column;
}
.jt-patent .jt-patent-stage { flex: 1 1 auto; height: auto; min-height: 0; margin-top: 0; }

/* 图册下方：当前专利的「专利说明提练」
   占满整个图册区宽度（不受单张证书宽度限制），单行显示、加大加粗 */
.jt-patent-caption {
    flex: 0 0 auto;
    width: 100%;
    padding: 14px 0 2px;
    text-align: center;
    font-size: clamp(16px, 1.5vw, 21px);
    font-weight: 700;
    letter-spacing: .5px;
    line-height: 1.5;
    color: #1b3a5c;
    white-space: nowrap;        /* 字数多也不换行 */
    overflow: hidden;
    text-overflow: ellipsis;    /* 真超长时省略，而不是把卡片撑破 */
    min-height: 1.5em;
    transition: opacity .25s ease;
}

/* 进入版块时的快速滚动阶段：说明文字先隐藏，停下后再淡入 */
.jt-patent.is-spinning .jt-patent-caption { opacity: 0; }

/* 快速滚动时缩短单张切换时间，视觉上更"刷" */
.jt-patent.is-spinning .jt-patent-item {
    transition-duration: .18s, .12s, .12s, .12s;
}

/* 证书整体缩放（桌面）：以轮播区中心为基点，
   两侧卡片间距、层叠关系、点击/箭头逻辑都不受影响。
   .85 ≈ 中间证书 220px 高；1 = 原始大小（约 264px） */
@media (min-width: 821px) {
    .jt-patent .jt-patent-stage {
        transform: scale(.85);
        transform-origin: center center;
    }
}

@media (max-width: 820px) {
    .jt-patent { min-height: auto; padding-bottom: 26px; }
    .jt-patent-card {
        flex-direction: column;
        width: calc(100% - 28px);
        height: auto;
        padding: 22px 14px;
        gap: 14px;
    }
    .jt-patent-card::before { border-radius: 20px; }
    .jt-patent-label { font-size: 22px; letter-spacing: 2px; }
    .jt-patent-main { width: 100%; height: auto; }
    .jt-patent-caption {
        padding: 10px 4px 0; font-size: 14px; font-weight: 700;
        white-space: normal;        /* 手机上允许换行，避免被省略号截断 */
        text-overflow: clip;
    }
}

/* ===================== ⑤ 旗下品牌：居中放大 + 两侧递减（coverflow） ===================== */
.jt-hs-brand .jt-hs-head { text-align: center; margin-bottom: 14px; }

/* 版块内上下留白：上方少留、下方多留，视觉重心上移 */
#jtBrand .jt-hs-inner { padding: 18px 20px 96px; }

.jt-brand-stage {
    position: relative;
    height: 500px;
    max-width: 1240px;
    margin: 0 auto;
}

/* 卡片：绝对定位在中心，用 transform 分左右层级 */
.jt-brand-card {
    position: absolute;
    left: 50%; top: 50%;
    width: 340px; height: 500px;
    margin: -250px 0 0 -170px;
    border-radius: 22px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 50px rgba(20, 60, 110, .12);
    overflow: hidden;
    cursor: pointer;
    transition: transform .6s cubic-bezier(.22, .8, .28, 1),
                opacity .5s ease, box-shadow .4s ease;
    will-change: transform, opacity;
}
.jt-brand-inner {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    height: 100%; padding: 36px 26px; text-align: center;
}
.jt-brand-media {
    flex: 1 1 auto; width: 100%;
    display: flex; align-items: center; justify-content: center;
}
.jt-brand-media img { max-width: 82%; max-height: 230px; object-fit: contain; display: block; }
.jt-brand-mark { font-size: 30px; font-weight: 800; color: #123c66; letter-spacing: 2px; }

.jt-brand-title { margin: 0 0 8px; font-size: 22px; font-weight: 700; color: #123c66; }
.jt-brand-desc { margin: 0 0 20px; font-size: 13px; color: #5b7793; }
.jt-brand-more {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 96px; height: 34px; padding: 0 18px;
    border-radius: 999px;
    border: 1px solid rgba(18, 60, 110, .35);
    color: #123c66; font-size: 13px; text-decoration: none;
    transition: background .25s ease, color .25s ease;
}
.jt-brand-more:hover { background: #123c66; color: #fff; }

/* 位置与层级 */
.jt-brand-card.is-c0 { transform: translateX(0) scale(1); opacity: 1; z-index: 5; }
.jt-brand-card.is-l1 { transform: translateX(-99%) scale(.86); opacity: .88; z-index: 4; }
.jt-brand-card.is-r1 { transform: translateX(99%) scale(.86); opacity: .88; z-index: 4; }
.jt-brand-card.is-l2 { transform: translateX(-178%) scale(.76); opacity: .45; z-index: 3; }
.jt-brand-card.is-r2 { transform: translateX(178%) scale(.76); opacity: .45; z-index: 3; }
.jt-brand-card.is-hide-l { transform: translateX(-250%) scale(.7); opacity: 0; pointer-events: none; z-index: 1; }
.jt-brand-card.is-hide-r { transform: translateX(250%) scale(.7); opacity: 0; pointer-events: none; z-index: 1; }

/* 底部圆点 */
.jt-brand-dots { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 22px; }
.jt-brand-dots i {
    display: block; width: 8px; height: 8px; border-radius: 50%;
    background: rgba(18, 60, 110, .25); cursor: pointer;
    transition: width .25s ease, background .25s ease, border-radius .25s ease;
}
.jt-brand-dots i.is-on { width: 22px; border-radius: 4px; background: #123c66; }

@media (max-width: 820px) {
    .jt-brand-stage { height: 400px; }
    .jt-brand-card {
        width: 240px; height: 400px;
        margin: -200px 0 0 -120px;
        border-radius: 18px;
    }
    .jt-brand-inner { padding: 22px 16px; }
    .jt-brand-media img { max-height: 170px; }
    .jt-brand-mark { font-size: 22px; }
    .jt-brand-title { font-size: 18px; }
    .jt-brand-desc { font-size: 12px; margin-bottom: 14px; }
    .jt-brand-card.is-l1 { transform: translateX(-96%) scale(.84); }
    .jt-brand-card.is-r1 { transform: translateX(96%) scale(.84); }
    .jt-brand-card.is-l2,
    .jt-brand-card.is-r2 { opacity: 0; pointer-events: none; }
    .jt-brand-dots { margin-top: 16px; }
}

/* 旗下品牌：非中间卡片用拱形边框图作背景（中间主卡保持白底） */
/* jb-side-ring */
.jt-brand-card.is-l1,
.jt-brand-card.is-r1,
.jt-brand-card.is-l2,
.jt-brand-card.is-r2 {
    background-color: transparent;
    background-image: url(/static/images/home/ring-brand.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    box-shadow: none;
}
/* 侧卡内容区留出拱形内边距，文字不压边 */
.jt-brand-card.is-l1 .jt-brand-inner,
.jt-brand-card.is-r1 .jt-brand-inner,
.jt-brand-card.is-l2 .jt-brand-inner,
.jt-brand-card.is-r2 .jt-brand-inner {
    padding: 52px 30px 62px;
}

/* ===================== 活性未来：时间轴逐条进场 ===================== */
@media (min-width: 821px) {
    /* JS 加 is-anim 后才隐藏（无 JS 时保持可见） */
    #jtActive.is-anim:not(.is-in) .jt-tl li { opacity: 0; transform: translateY(-18px); }

    #jtActive.is-in .jt-tl li { animation: jtTlIn .58s cubic-bezier(.22, .8, .28, 1) both; }
    #jtActive.is-in .jt-tl li:nth-child(1) { animation-delay: .05s; }
    #jtActive.is-in .jt-tl li:nth-child(2) { animation-delay: .25s; }
    #jtActive.is-in .jt-tl li:nth-child(3) { animation-delay: .45s; }
    #jtActive.is-in .jt-tl li:nth-child(4) { animation-delay: .65s; }

    /* 播完撤掉 animation，交回 hover 的 transform 控制 */
    #jtActive.is-ready .jt-tl li { animation: none; opacity: 1; }
}

@keyframes jtTlIn {
    from { opacity: 0; transform: translateY(-18px); }
    to   { opacity: 1; transform: none; }
}

/* ===================== 活性未来：右侧「拱形 + 文字」从右往左出场 ===================== */
@media (min-width: 821px) {
    /* 初始状态：整体在右侧、透明 */
    #jtActive.is-anim:not(.is-in) .jt-active-arch {
        opacity: 0;
        transform: translateY(-50%) translateX(160px);
    }
    #jtActive.is-anim:not(.is-in) .jt-active-titles h2,
    #jtActive.is-anim:not(.is-in) .jt-active-titles p {
        opacity: 0;
        transform: translateX(80px);
    }

    /* 播放：先底层拱形（0.05s 起，0.9s 到位），再两行文字依次跟出 */
    #jtActive.is-in .jt-active-arch {
        animation: jtArchIn .9s cubic-bezier(.16, .84, .24, 1) .05s both;
    }
    #jtActive.is-in .jt-active-titles h2 {
        animation: jtTextIn .75s cubic-bezier(.16, .84, .24, 1) .6s both;
    }
    #jtActive.is-in .jt-active-titles p {
        animation: jtTextIn .75s cubic-bezier(.16, .84, .24, 1) .86s both;
    }

    /* 播完撤掉动画：拱形要保留 translateY(-50%) 的居中位移 */
    #jtActive.is-ready .jt-active-arch {
        animation: none; opacity: 1;
        transform: translateY(-50%);
    }
    #jtActive.is-ready .jt-active-titles h2,
    #jtActive.is-ready .jt-active-titles p {
        animation: none; opacity: 1; transform: none;
    }
}

/* 拱形：从右侧 160px 滑入（保留垂直居中） */
@keyframes jtArchIn {
    from { opacity: 0; transform: translateY(-50%) translateX(160px); }
    to   { opacity: 1; transform: translateY(-50%) translateX(0); }
}
/* 文字：从右侧 80px 滑入 */
@keyframes jtTextIn {
    from { opacity: 0; transform: translateX(80px); }
    to   { opacity: 1; transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
    #jtActive.is-anim:not(.is-in) .jt-active-arch,
    #jtActive.is-anim:not(.is-in) .jt-active-titles h2,
    #jtActive.is-anim:not(.is-in) .jt-active-titles p {
        opacity: 1; transform: none;
    }
    #jtActive.is-in .jt-active-arch,
    #jtActive.is-in .jt-active-titles h2,
    #jtActive.is-in .jt-active-titles p { animation: none; }
}

/* ============ 旗下品牌：主卡「纯宣传图 + More」 / 侧卡「LOGO + 定位」 ============ */
/* jb-modes */

/* 中间主卡：宣传图层铺满（由 .jt-brand-cover 负责），文字全部隐藏，只留底部 More */
.jt-brand-card.has-banner.is-c0 {
    background-color: #fff;
}
.jt-brand-card.has-banner.is-c0 .jt-brand-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 0 0 26px;
}
.jt-brand-card.has-banner.is-c0 .jt-brand-media,
.jt-brand-card.has-banner.is-c0 .jt-brand-title,
.jt-brand-card.has-banner.is-c0 .jt-brand-desc { display: none; }

/* 主卡的 More：白底胶囊，压在图片下方 */
.jt-brand-card.has-banner.is-c0 .jt-brand-more {
    background: rgba(255, 255, 255, .92);
    border-color: rgba(255, 255, 255, .92);
    color: #123c66;
    box-shadow: 0 6px 18px rgba(18, 60, 110, .18);
}
.jt-brand-card.has-banner.is-c0 .jt-brand-more:hover {
    background: #123c66; color: #fff; border-color: #123c66;
}

/* 未轮到的卡片：只显示 LOGO + 一句话定位（不显示品牌名与 More） */
.jt-brand-card:not(.is-c0) .jt-brand-inner {
    justify-content: center;
    gap: 18px;
    padding: 44px 26px;
}
.jt-brand-card:not(.is-c0) .jt-brand-media { flex: 0 0 auto; }
.jt-brand-card:not(.is-c0) .jt-brand-media img { max-height: 120px; max-width: 70%; }
.jt-brand-card:not(.is-c0) .jt-brand-mark { font-size: 24px; }
.jt-brand-card:not(.is-c0) .jt-brand-title,
.jt-brand-card:not(.is-c0) .jt-brand-more { display: none; }
.jt-brand-card:not(.is-c0) .jt-brand-desc {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.9;
    color: #7f9bb8;
    max-width: 170px;
}

/* ============ 旗下品牌：轮到中间时，宣传图以「翻牌」方式出现 ============ */
/* jb-flip */
.jt-brand-card { perspective: 1200px; }

/* 宣传图层：默认绕左边缘折起，居中时展开 */
.jt-brand-cover {
    position: absolute; inset: 0;
    border-radius: inherit;
    background: var(--brand-banner) center center / cover no-repeat;
    background-color: #fff;
    transform-origin: left center;
    transform: rotateY(-96deg);
    opacity: 0;
    transition: transform .75s cubic-bezier(.22, .8, .28, 1),
                opacity .3s ease;
    backface-visibility: hidden;
    pointer-events: none;
    z-index: 1;
}
.jt-brand-card.is-c0 .jt-brand-cover {
    transform: rotateY(0deg);
    opacity: 1;
}

/* 内容层（主卡只剩 More）压在宣传图之上 */
.jt-brand-inner { position: relative; z-index: 2; }

/* ===================== 大屏适配（≥1600 / ≥1920 / ≥2560） =====================
   原来容器上限写死 1200~1280px，2K/4K 显示器（CSS 宽度 1920/2560）上
   内容只占中间一条，两侧留白很大。这里按分辨率分档放大容器与字号。 */
/* big-screen */

@media (min-width: 1600px) {
    :root { --jt-max: 1400px; }

    .jt-active-wrap,
    .jt-hs-about .jt-hs-inner,
    .jt-rd-grid,
    .jt-rd-marquee,
    .jt-brand-stage,
    .jt-hero-body { max-width: 1400px; }

    .jt-patent-card { max-width: 1600px; }
}

@media (min-width: 1920px) {
    :root { --jt-max: 1640px; }

    .jt-active-wrap,
    .jt-hs-about .jt-hs-inner,
    .jt-rd-grid,
    .jt-rd-marquee,
    .jt-brand-stage,
    .jt-hero-body { max-width: 1640px; }

    .jt-patent-card { max-width: 1820px; }

    /* 文字整体放大一档，2K 屏上不显得细碎 */
    .jt-hs-head h2 { font-size: 46px; }
    .jt-hs-head p  { font-size: 16px; }

    .jt-tl-title { font-size: 17px; }
    .jt-tl-text  { font-size: 14px; }
    .jt-tl-year  { font-size: 16px; }

    #jtAbout .jt-about-text { font-size: 15px; line-height: 2.05; max-width: 720px; }
    #jtAbout .jt-about-mini-num { font-size: 36px; }
    #jtAbout .jt-about-mini-label { font-size: 15px; }

    .jt-pure-txt h2 { font-size: 44px; }
    .jt-pure-txt p  { font-size: 20px; }
    .jt-pure-card h3 { font-size: 24px; }
    .jt-pure-card p  { font-size: 14.5px; }
    .jt-pure-inner {
        --pure-panel-w: clamp(300px, 24vw, 520px);
        --pure-panel-h: clamp(320px, 62vh, 640px);
    }

    .jt-rd-marquee .jt-rd-media { height: 400px; }
    .jt-rd-marquee .jt-rd-card h3 { font-size: 18px; }

    .jt-brand-stage { height: 600px; }
    .jt-brand-card { width: 400px; height: 600px; margin: -300px 0 0 -200px; }
    .jt-brand-card:not(.is-c0) .jt-brand-desc { font-size: 14px; max-width: 200px; }

    .jt-patent-label { font-size: 42px; }
    .jt-patent-caption { font-size: 22px; }
}

@media (min-width: 2560px) {
    :root { --jt-max: 2000px; }

    .jt-active-wrap,
    .jt-hs-about .jt-hs-inner,
    .jt-rd-grid,
    .jt-rd-marquee,
    .jt-brand-stage,
    .jt-hero-body { max-width: 2000px; }

    .jt-patent-card { max-width: 2200px; }

    .jt-hs-head h2 { font-size: 56px; }
    .jt-hs-head p  { font-size: 18px; }

    .jt-tl-title { font-size: 20px; }
    .jt-tl-text  { font-size: 16px; }
    .jt-tl-year  { font-size: 19px; }

    #jtAbout .jt-about-text { font-size: 17px; max-width: 860px; }
    #jtAbout .jt-about-mini-num { font-size: 44px; }
    #jtAbout .jt-about-mini-label { font-size: 17px; }

    .jt-pure-txt h2 { font-size: 54px; }
    .jt-pure-txt p  { font-size: 24px; }
    .jt-pure-card h3 { font-size: 28px; }
    .jt-pure-card p  { font-size: 17px; }
    .jt-pure-inner {
        --pure-panel-w: clamp(360px, 22vw, 640px);
        --pure-panel-h: clamp(360px, 60vh, 760px);
    }

    .jt-rd-marquee .jt-rd-media { height: 480px; }
    .jt-rd-marquee .jt-rd-card h3 { font-size: 21px; }

    .jt-brand-stage { height: 700px; }
    .jt-brand-card { width: 470px; height: 700px; margin: -350px 0 0 -235px; }
    .jt-brand-card:not(.is-c0) .jt-brand-desc { font-size: 16px; max-width: 230px; }

    .jt-patent-label { font-size: 52px; }
    .jt-patent-caption { font-size: 26px; }
}

/* 大屏：专利证书区等比放大，避免在宽屏里显得过小 */
/* big-screen-stage */
@media (min-width: 1920px) {
    .jt-patent .jt-patent-stage { transform: scale(1); }
}
@media (min-width: 2560px) {
    .jt-patent .jt-patent-stage { transform: scale(1.1); }
}

/* ===================== 10 大科研中心：滚动区右侧贴到屏幕边缘 ===================== */
/* rd-right-bleed */
/* 左侧保持与标题/容器对齐，右侧用负外边距吃掉「容器右内边距 + 容器左右居中留白」 */
.jt-hs-rd .jt-rd-marquee {
    max-width: none;
    margin-right: calc((100vw - 100%) / -2);
}
/* 版块本身 overflow:hidden，超出屏幕的部分会被裁掉，不会出横向滚动条 */

@media (max-width: 820px) {
    .jt-hs-rd .jt-rd-marquee { margin-right: 0; }
}

/* ===================== 旗下品牌：轮播区铺满整屏宽（大屏同步放大） ===================== */
/* brand-full-width */
/* 卡片宽度随视口缩放：1080 → 216px；1440 → 288px；1920 → 384px；2560 → 512px */
#jtBrand .jt-hs-inner {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}
#jtBrand .jt-brand-stage {
    --bw: clamp(230px, 24vw, 600px);
    width: 100vw;                          /* 强制铺满视口，不受容器宽度影响 */
    max-width: none;
    margin-left: calc(50% - 50vw);         /* 向左抵消容器居中留白，左右都贴边 */
    height: calc(var(--bw) * 1.47);
}
#jtBrand .jt-brand-card {
    width: var(--bw);
    height: calc(var(--bw) * 1.47);
    margin: calc(var(--bw) * -.735) 0 0 calc(var(--bw) * -.5);
}

/* 位置：以「卡片宽 + 14px 间隙」为单位向两侧排开，整条带子铺满视口 */
#jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * (var(--bw) + 8px))) scale(.86); }
#jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) + 8px)) scale(.86); }
#jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-2 * (var(--bw) + 8px))) scale(.80); }
#jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(2 * (var(--bw) + 8px))) scale(.80); }
#jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-3 * (var(--bw) + 8px))) scale(.72); }
#jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(3 * (var(--bw) + 8px))) scale(.72); }

/* 手机端：保留左右留白，卡片小一点 */
@media (max-width: 820px) {
    #jtBrand .jt-hs-inner { padding-left: 16px; padding-right: 16px; }
    #jtBrand .jt-brand-stage {
        --bw: clamp(150px, 46vw, 220px);
        width: 100%;
        margin-left: 0;
    }
    #jtBrand .jt-brand-card.is-l2,
    #jtBrand .jt-brand-card.is-r2 { opacity: 0; pointer-events: none; }
}

/* ===================== 专利成果：证书在卡片内垂直居中、说明紧贴下方 ===================== */
/* patent-center */
/* 之前证书固定在舞台顶部，卡片一高就会出现「上面挤、下面空一大块」 */
.jt-patent .jt-patent-item { top: 50%; }

.jt-patent .jt-patent-item.is-c0 { transform: translateY(-50%) scale(1); }
.jt-patent .jt-patent-item.is-l1 { transform: translateY(-50%) translateX(-64%)  scale(.82); }
.jt-patent .jt-patent-item.is-r1 { transform: translateY(-50%) translateX(64%)   scale(.82); }
.jt-patent .jt-patent-item.is-l2 { transform: translateY(-50%) translateX(-110%) scale(.68); }
.jt-patent .jt-patent-item.is-r2 { transform: translateY(-50%) translateX(110%)  scale(.68); }
.jt-patent .jt-patent-item.is-hide-l { transform: translateY(-50%) translateX(-140%) scale(.6); }
.jt-patent .jt-patent-item.is-hide-r { transform: translateY(-50%) translateX(140%)  scale(.6); }

/* 说明文字与证书之间不再留大空隙 */
.jt-patent-caption { padding-top: 4px; }

/* 屏幕高度偏矮时（笔记本 1366×768、开 125% 缩放等）自动缩小证书，避免溢出错位 */
@media (max-height: 820px) and (max-width: 1919px) {
    .jt-patent .jt-patent-stage { transform: scale(.72); }
    .jt-patent-card { height: 68vh; }
}

/* ===================== 首页文字配色统一（非白色一律 #212121） ===================== */
/* home-color-unify */
body.jt-page-home { color: #212121; }

/* 版块标题与副标题 */
body.jt-page-home .jt-hs-head h2,
body.jt-page-home .jt-hs-head p { color: #212121; }

/* 活性未来：时间轴 */
body.jt-page-home .jt-tl-year,
body.jt-page-home .jt-tl-title,
body.jt-page-home .jt-tl-text { color: #212121; }

/* 企业介绍 */
body.jt-page-home #jtAbout .jt-about-head h2,
body.jt-page-home #jtAbout .jt-about-text,
body.jt-page-home #jtAbout .jt-about-text p,
body.jt-page-home #jtAbout .jt-about-mini-num,
body.jt-page-home #jtAbout .jt-about-mini-num small,
body.jt-page-home #jtAbout .jt-about-mini-label { color: #212121; }

/* 超越纯净 */
body.jt-page-home .jt-pure-txt h2,
body.jt-page-home .jt-pure-txt p,
body.jt-page-home .jt-pure-card h3,
body.jt-page-home .jt-pure-card p { color: #212121; }

/* 专利成果 */
body.jt-page-home .jt-patent-label,
body.jt-page-home .jt-patent-caption { color: #212121; }

/* 10 大科研中心（标题在深色背景上，保持白色） */
body.jt-page-home .jt-rd-marquee .jt-rd-card h3 { color: #212121; }

/* 旗下品牌（主卡为宣传图，文字均已隐藏；此处管副卡与按钮） */
body.jt-page-home .jt-brand-mark,
body.jt-page-home .jt-brand-title,
body.jt-page-home .jt-brand-desc { color: #212121; }
body.jt-page-home .jt-brand-more { color: #212121; border-color: rgba(33, 33, 33, .38); }

/* 空数据提示 */
body.jt-page-home .jt-empty { color: #212121; }

/* 页脚正文字色（悬停态保留品牌色，便于交互反馈） */
body.jt-page-home .jt-ft,
body.jt-page-home .jt-ft p,
body.jt-page-home .jt-ft li,
body.jt-page-home .jt-ft span,
body.jt-page-home .jt-ft a,
body.jt-page-home .jt-ft h4 { color: #212121; }

/* 首页配色：白色文字保持白色（深色背景上的标题）、页脚底行同步 */
/* home-color-white-keep */
body.jt-page-home .jt-rd-head h2 { color: #fff; }                 /* 10 大科研中心标题（深色背景） */
body.jt-page-home .jt-active-titles h2,
body.jt-page-home .jt-active-titles p { color: #fff; }            /* 活性未来拱形内文字 */
body.jt-page-home .jt-hero .jt-hero-title,
body.jt-page-home .jt-hero .jt-hero-sub { color: #fff; }          /* 首屏 Banner 文案 */
body.jt-page-home .jt-brand-more:hover { color: #fff; }
body.jt-page-home .jt-ft-bottom,
body.jt-page-home .jt-ft-bottom .jt-container,
body.jt-page-home .jt-ft-bottom span,
body.jt-page-home .jt-ft-bottom a { color: #212121; }

/* ===================== 企业介绍：正文加大加松、右侧数据去图标 ===================== */
/* about-text-bigger */
#jtAbout .jt-about-text {
    font-size: 15px;
    line-height: 2.2;
}
#jtAbout .jt-about-text p { margin: 0 0 18px; }
#jtAbout .jt-about-text p:last-child { margin-bottom: 0; }

/* 右侧 4 项：不再显示图标，只留数字 + 名称 */
#jtAbout .jt-about-mini-icon { display: none; }
#jtAbout .jt-about-mini-item { justify-content: flex-start; }
#jtAbout .jt-about-mini-body { gap: 6px; }
#jtAbout .jt-about-mini-num { font-size: 34px; }
#jtAbout .jt-about-mini-label { font-size: 14px; }

@media (min-width: 1920px) {
    #jtAbout .jt-about-text { font-size: 17px; }
    #jtAbout .jt-about-mini-num { font-size: 40px; }
    #jtAbout .jt-about-mini-label { font-size: 16px; }
}
@media (min-width: 2560px) {
    #jtAbout .jt-about-text { font-size: 19px; }
    #jtAbout .jt-about-mini-num { font-size: 46px; }
    #jtAbout .jt-about-mini-label { font-size: 18px; }
}

/* 企业介绍：每段首行缩进 2 个汉字（2em 随字号自动缩放） */
/* about-indent */
#jtAbout .jt-about-text p {
    text-indent: 2em;
}

/* ===================== 企业介绍：右侧数据下移对齐正文 + 单位右上角 ===================== */
/* about-right-align */
/* 右侧不再与「企业介绍」标题齐平，而是和正文段落起点齐平 */
#jtAbout .jt-about-right { padding-top: 64px; }

/* 单位（平方 / 项 / 大 / 家）放到数字右上角，像上标 */
#jtAbout .jt-about-mini-num small {
    display: inline-block;
    position: relative;
    top: -.8em;
    margin-left: 6px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    color: #5b7793;
    vertical-align: baseline;
}

@media (min-width: 1920px) {
    #jtAbout .jt-about-right { padding-top: 74px; }
    #jtAbout .jt-about-mini-num small { font-size: 14px; }
}
@media (min-width: 2560px) {
    #jtAbout .jt-about-right { padding-top: 86px; }
    #jtAbout .jt-about-mini-num small { font-size: 16px; }
}

/* 手机端：两栏堆叠，不需要这个下移 */
@media (max-width: 820px) {
    #jtAbout .jt-about-right { padding-top: 0; }
}

/* ===================== 企业介绍：数字/单位改蓝、项目名加大 ===================== */
/* about-blue */
#jtAbout .jt-about-mini-num,
#jtAbout .jt-about-mini-num span,
#jtAbout .jt-about-mini-num small { color: #246DCE; }

#jtAbout .jt-about-mini-label { font-size: 16px; }

@media (min-width: 1920px) {
    #jtAbout .jt-about-mini-label { font-size: 18px; }
}
@media (min-width: 2560px) {
    #jtAbout .jt-about-mini-label { font-size: 20px; }
}

/* 详情/单页：标题下的副标题 */
.jt-article-sub {
    margin: -2px 0 18px;
    font-size: 16px;
    line-height: 1.75;
    color: #5b7288;
    font-weight: 400;
}
@media (max-width: 820px) {
    .jt-article-sub { font-size: 14.5px; margin-bottom: 14px; }
}

/* ===================== 活性未来：时间轴轮转（第二个节点为主展示） ===================== */
/* tl-ticker */
@media (min-width: 821px) {
    /* JS 加上 is-ticker 后才切换为「固定窗口 + 逐条上移」 */
    #jtActive #jtTl.is-ticker {
        display: block;                 /* 覆盖原来的 flex 居中 */
        align-self: flex-start;
        overflow: hidden;
        padding-top: 2px;
        will-change: transform;
    }
    #jtActive #jtTl.is-ticker > li {
        margin: 0 0 32px;
        opacity: .45;
        transition: opacity .5s ease;
    }
    #jtActive #jtTl.is-ticker > li:last-child { margin-bottom: 32px; }

    /* 激活项（第二个节点）：字号大一号、完全不透明 */
    #jtActive #jtTl.is-ticker > li.is-active { opacity: 1; }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-year  { font-size: 18px; }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-title { font-size: 19px; line-height: 1.65; }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-text  { font-size: 14.5px; }

    /* 空心圆点跟随激活项，其余为实心小点 */
    #jtActive #jtTl.is-ticker > li:first-child::before {
        width: 7px; height: 7px; left: -29px; top: 9px;
        background: rgba(22, 57, 92, .55); border: 0;
    }
    #jtActive #jtTl.is-ticker > li.is-active::before {
        width: 11px; height: 11px; left: -31px; top: 7px;
        background: #fff; border: 2px solid rgba(22, 57, 92, .85);
    }
}

/* tl-ticker-prehide：入场前先隐藏（权重高于上面的常态透明度） */
@media (min-width: 821px) {
    #jtActive.is-anim:not(.is-in) #jtTl.is-ticker > li { opacity: 0; }
    #jtActive #jtTl.is-ticker > li.is-active { opacity: 1; }
}

/* ===================== 活性未来：轮转时的「静态轴线」 ===================== */
/* tl-rail */
@media (min-width: 821px) {
    #jtActive .jt-active-timeline { position: relative; }

    /* 轮转模式下隐藏列表自带的竖线与圆点（它们会跟着内容一起移动） */
    #jtActive #jtTl.is-ticker::before,
    #jtActive #jtTl.is-ticker > li::before { display: none !important; }

    /* 竖线：固定在时间轴容器上，不随内容滚动 */
    #jtActive .jt-tl-rail {
        position: absolute; left: 0;
        top: calc(-1 * (var(--jt-header-h) + 40px));
        bottom: -40px;
        width: 1px;
        background: rgba(27, 58, 92, .32);
        z-index: 2;
        pointer-events: none;
    }

    /* 圆点：固定在三个槽位上，只做大小/空心切换 */
    #jtActive .jt-tl-dot {
        position: absolute; left: -4px;
        width: 9px; height: 9px; border-radius: 50%;
        background: rgba(22, 57, 92, .55);
        border: 0;
        transform: translateY(-50%);
        transition: width .35s ease, height .35s ease, left .35s ease,
                    background .35s ease, border .35s ease;
    }
    #jtActive .jt-tl-dot.is-active {
        width: 12px; height: 12px; left: -5.5px;
        background: #fff;
        border: 2px solid rgba(22, 57, 92, .85);
    }
}

/* 活性未来：左栏加宽（容纳更多文字），右侧拱形收窄 */
/* tl-wider */
@media (min-width: 821px) {
    #jtActive .jt-active-wrap { gap: 40px; }          /* 两栏间距收紧，进一步让位给文字 */
    #jtActive .jt-active-timeline { flex: 0 0 56%; }  /* 原 46% → 56% */
    #jtActive .jt-active-visual { flex: 1 1 auto; }   /* 右侧自适应剩余 44% */
}

@media (min-width: 1920px) {
    #jtActive .jt-active-timeline { flex: 0 0 58%; }
}

/* 时间轴圆点：位置用 JS 精确对齐；这里只做大小/空心过渡，top 不参与过渡 */
/* tl-dot-fixed */
@media (min-width: 821px) {
    #jtActive .jt-tl-dot {
        transition: width .35s ease, height .35s ease, left .35s ease,
                    background .35s ease, border .35s ease;
    }
    /* 第二个槽位永远是空心圆（主展示），其余实心 */
    #jtActive .jt-tl-dot:nth-child(2) {
        width: 12px; height: 12px; left: -5.5px;
        background: #fff;
        border: 2px solid rgba(22, 57, 92, .85);
    }
}

/* ===================== 活性未来：主展示改为“缩放”而非“改字号” ===================== */
/* tl-stable */
/* 改字号会改变每条的高度 → 窗口高度跟着变 → 整块高度跳动。
   这里让所有条目字号保持一致，主展示只做轻微放大（transform 不参与布局）。 */
@media (min-width: 821px) {
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-year  { font-size: 16px; }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-title { font-size: 16.5px; line-height: 1.85; }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-text  { font-size: 13.5px; }

    #jtActive #jtTl.is-ticker > li {
        transition: opacity .5s ease, transform .5s ease;
        transform-origin: left center;
    }
    #jtActive #jtTl.is-ticker > li.is-active {
        transform: scale(1.06);
    }
}

/* 量圆点位置时临时取消缩放，保证坐标是布局坐标 */
@media (min-width: 821px) {
    #jtActive #jtTl.is-ticker.is-measuring > li { transform: none !important; }
}

/* 活性未来：主标题 / 副标题 / 正文 之间收紧 */
/* tl-tight */
#jtActive .jt-tl-year  { margin-bottom: 4px; line-height: 1.5; }
#jtActive .jt-tl-title { margin: 0 0 8px; line-height: 1.7; }
#jtActive .jt-tl-text  { line-height: 2.0; }

/* ===================== 活性未来：每个节点统一使用空心圆，并与主标题对齐 ===================== */
/* tl-hollow */
@media (min-width: 821px) {
    /* 轮转模式下重新显示每条自己的圆点（跟着主标题走，不会错位） */
    #jtActive #jtTl.is-ticker > li::before {
        display: block !important;
        content: "";
        position: absolute;
        left: -31px;                 /* 26(padding) + 5(半径) → 圆心压在竖线上 */
        top: 7px;                    /* 与主标题第一行垂直居中 */
        width: 11px; height: 11px;
        border-radius: 50%;
        background: #fff !important;
        border: 2px solid rgba(22, 57, 92, .55);
        box-shadow: 0 0 0 2px rgba(255, 255, 255, .55);
        transition: border-color .35s ease, transform .35s ease;
    }
    /* 主展示节点：空心圆稍微更实一点 */
    #jtActive #jtTl.is-ticker > li.is-active::before {
        border-color: rgba(22, 57, 92, .85);
        transform: scale(1.1);
    }

    /* 外层脉点不再使用（圆点已回到每条上） */
    #jtActive .jt-tl-dot { display: none !important; }
}

/* 第一条也要是空心圆（覆盖此前 first-child 的实心小点） */
/* tl-hollow-first */
@media (min-width: 821px) {
    #jtActive #jtTl.is-ticker > li:first-child::before {
        width: 11px; height: 11px; left: -31px; top: 7px;
        background: #fff !important;
        border: 2px solid rgba(22, 57, 92, .55);
    }
}

/* ===================== 空心圆与竖线严格同心 ===================== */
/* tl-dot-center */
/* 原因：列表 overflow:hidden 会按 padding 盒裁切，
   圆点画在 left:-31px（跑到盒外）会被裁掉左半边，看起来就"偏右"。
   现在把竖线内移到 6px，圆点圆心放在同一条线上，且在可视区域内。 */
@media (min-width: 821px) {
    #jtActive .jt-tl-rail { left: 6px; }

    #jtActive #jtTl.is-ticker > li::before {
        left: -25.5px;               /* 6 - 26(左侧内边距) - 5.5(半径) → 圆心在 x=6 */
        top: 7px;
        width: 11px; height: 11px;
    }
    #jtActive #jtTl.is-ticker > li:first-child::before {
        left: -25.5px; top: 7px;
        width: 11px; height: 11px;
    }
    #jtActive #jtTl.is-ticker > li.is-active::before {
        left: -25.5px; top: 7px;
        width: 11px; height: 11px;
        transform: none;             /* 不再放大，避免圆心偏移或超出裁切区 */
    }
}

/* ===================== 活性未来：时间轴可鼠标按住拖动 ===================== */
/* tl-drag */
@media (min-width: 821px) {
    #jtActive .jt-active-timeline {
        cursor: grab;
        -webkit-user-select: none;
        user-select: none;
        touch-action: pan-y;
    }
    #jtActive .jt-active-timeline.is-dragging { cursor: grabbing; }
    #jtActive .jt-active-timeline.is-dragging * { cursor: grabbing; }
}

/* ===================== 专利成果：不同分辨率下两边留白自适应 ===================== */
/* patent-inset */
/* 原来卡片左右内边距固定 48px、宽度固定减 14vw，
   在较窄的屏幕上（1440 以下、或浏览器缩放）标题与箭头会贴到卡片边缘。
   这里改成随视口缩放的 clamp 值，窄屏自动往里收。 */
@media (min-width: 821px) {
    .jt-patent-card {
        /* 卡片更宽：左右留白从 clamp(160,18vw,280) 收窄到 clamp(60,8vw,160) */
        width: min(calc(100% - clamp(60px, 8vw, 160px)), 1560px);
        padding: clamp(24px, 2.2vw, 40px) clamp(40px, 4vw, 72px);
        gap: clamp(28px, 3vw, 48px);
    }
    /* 箭头再往内挪一点，避免贴着卡片边缘 */
    .jt-patent-arrow {
        width: clamp(38px, 2.6vw, 44px);
        height: clamp(38px, 2.6vw, 44px);
        font-size: clamp(18px, 1.4vw, 22px);
    }
    .jt-patent-prev { left: clamp(10px, 1.6vw, 28px); }
    .jt-patent-next { right: clamp(10px, 1.6vw, 28px); }
}

/* ===================== 专利成果：说明文字贴近证书，不再贴卡片底部 ===================== */
/* patent-caption-gap */
@media (min-width: 821px) {
    /* 证书区不再撑满整张卡片，改为按证书大小给一个高度，整体垂直居中 */
    .jt-patent-main {
        justify-content: center;
    }
    .jt-patent .jt-patent-stage {
        flex: 0 0 auto;
        /* 证书里较高的一张约 410px（缩放后），舞台必须略高于它，否则说明文字会压到证书 */
        height: clamp(430px, 56vh, 560px);
    }
    /* 说明文字紧跟证书下方 */
    .jt-patent-caption {
        padding: 4px 0 0;
    }
}

/* ===================== 活性未来：时间轴在大屏上垂直居中、间距随屏幕放大 ===================== */
/* tl-vcenter */
@media (min-width: 821px) {
    /* 窗口整体在版块内垂直居中（原来贴顶，大屏下方会空一大块） */
    #jtActive #jtTl.is-ticker { align-self: center; }

    /* 条目间距随屏幕高度放大：小屏紧凑、大屏宽松 */
    #jtActive #jtTl.is-ticker > li {
        margin-bottom: clamp(26px, 3.4vh, 54px);
    }
}

/* ===================== 活性未来：1600~1919 档位（1920 全屏、100% 缩放常见） ===================== */
/* tl-1600 */
@media (min-width: 1600px) and (max-width: 1919px) {
    #jtActive .jt-active-wrap { max-width: 1480px; }
    #jtActive .jt-tl-year  { font-size: 16.5px; }
    #jtActive .jt-tl-title { font-size: 17px; }
    #jtActive .jt-tl-text  { font-size: 14px; line-height: 2.05; }
    #jtActive #jtTl.is-ticker > li { margin-bottom: clamp(30px, 4vh, 64px); }
}

/* 1920 及以上：容器进一步放宽（文字已在更早的大屏档位放大） */
@media (min-width: 1920px) {
    #jtActive .jt-active-wrap { max-width: 1680px; }
}

/* 企业介绍标题：字号加大 + 居中 */
/* about-head-center */
#jtAbout .jt-about-head { text-align: center; }
#jtAbout .jt-about-head h2 {
    font-size: clamp(28px, 3vw, 44px);
    letter-spacing: 8px;
    text-indent: 8px;          /* 抵消末字后的字距，视觉更居中 */
    margin: 0 0 24px;
}

/* 10 大科研中心标题：改为黑色（与此前“白色”规则区分，写在后面覆盖） */
/* rd-title-black */
body.jt-page-home .jt-rd-head h2 {
    color: #212121;
    text-shadow: none;
}

/* ===================== 旗下品牌：缩小卡片之间的空隙 ===================== */
/* brand-gap */
/* 台阶位置按“两张卡片可见宽度的一半 + 6px 缝”计算，
   原来是 bw + 8px（含卡片缩放后剩下的 0.07bw 空隙），所以显得空。
   1 号位：0.93bw + 6px；2 号位：1.76bw + 12px */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * (var(--bw) * .93 + 6px))) scale(.86); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .93 + 6px)) scale(.86); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * (var(--bw) * 1.76 + 12px))) scale(.80); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.76 + 12px)) scale(.80); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * (var(--bw) * 2.5))) scale(.72); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.5)) scale(.72); }
}

/* ===================== 旗下品牌：更紧密的卡牌排布（对齐设计稿） ===================== */
/* brand-tight */
/* 副卡收窄（.80 / .72），台阶按“半宽相加 + 8px 缝”精确计算：
     1 号位 = (0.50 + 0.40)bw + 8  = 0.90bw + 8
     2 号位 = 0.90bw + 8 + (0.40 + 0.36)bw + 8 = 1.66bw + 16 */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * (var(--bw) * .90 + 8px))) scale(.80); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .90 + 8px)) scale(.80); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * (var(--bw) * 1.66 + 16px))) scale(.72); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.66 + 16px)) scale(.72); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * (var(--bw) * 2.35))) scale(.66); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.35)) scale(.66); }
}

/* ===================== 旗下品牌：卡牌整体加大、卡间几乎贴合 ===================== */
/* brand-big2 */
/* 主卡 --bw 再次加大；副卡 .84 / .76，台阶 = 半宽相加 + 2px */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * (var(--bw) * .92 + 2px))) scale(.84); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .92 + 2px)) scale(.84); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * (var(--bw) * 1.72 + 4px))) scale(.76); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.72 + 4px)) scale(.76); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * (var(--bw) * 2.45))) scale(.70); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.45)) scale(.70); }
}

/* ===================== 旗下品牌：5 张卡全部完整可见 + 缝隙 6px ===================== */
/* brand-fit5 */
/* 主卡 1、副卡 .82 / .72，台阶按半宽相加 + 6px：
     1 号位 = (1 + .82)/2 × bw + 6      = 0.91bw + 6
     2 号位 = 0.91bw + 6 + (.82 + .72)/2 × bw + 6 = 1.68bw + 12
   最外侧右边缘 = 1.68bw + 12 + .36bw = 2.04bw + 12
   视口宽 1080 时 bw ≈ 248 → 边缘 ≈ 518 < 540（半屏），因此 1、5 号卡完整显示。 */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * (var(--bw) * .91 + 6px))) scale(.82); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .91 + 6px)) scale(.82); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * (var(--bw) * 1.68 + 12px))) scale(.72); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.68 + 12px)) scale(.72); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * (var(--bw) * 2.30))) scale(.66); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.30)) scale(.66); }
}

/* ===================== 旗下品牌：两侧卡牌整体向中间靠拢 ===================== */
/* brand-inward */
/* 1、2 号卡右移，4、5 号卡左移（台阶变小 → 略有叠压，视觉更紧凑）。
   台阶系数：1 号位 .88bw、2 号位 1.60bw（原来是 .91bw / 1.68bw） */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * var(--bw) * .88)) scale(.82); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .88)) scale(.82); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * var(--bw) * 1.60)) scale(.72); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.60)) scale(.72); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * var(--bw) * 2.20)) scale(.66); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.20)) scale(.66); }
}

/* ===================== 旗下品牌：卡牌贴合（0 间隙），5 张完整可见 ===================== */
/* brand-touch */
/* 台阶 = 两张卡可见半宽之和（不留缝）：
     1 号位 = (0.50 + 0.41) × bw = 0.91bw
     2 号位 = 0.91bw + (0.41 + 0.35) × bw = 1.67bw
   最外边缘 = 1.67bw + 0.35bw = 2.02bw，1080 宽时约 523px < 540 → 不裁边 */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * var(--bw) * .91)) scale(.82); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .91)) scale(.82); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * var(--bw) * 1.67)) scale(.70); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.67)) scale(.70); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * var(--bw) * 2.30)) scale(.64); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.30)) scale(.64); }
}

/* ===================== 旗下品牌：卡牌之间直接叠压，彻底消除空隙 ===================== */
/* brand-overlap */
/* 台阶比“两卡半宽之和”更小 → 后一张压住前一张边缘（z-index 已分层，看起来是紧贴/微叠）。
   1 号位 .86bw（半宽和 .91bw → 叠压约 .05bw）
   2 号位 1.55bw（半宽和 1.67bw → 叠压约 .12bw） */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * var(--bw) * .86)) scale(.82); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .86)) scale(.82); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * var(--bw) * 1.55)) scale(.70); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.55)) scale(.70); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * var(--bw) * 2.10)) scale(.64); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.10)) scale(.64); }
}

/* ===================== 旗下品牌：侧卡底图铺满卡片，消除“看起来的空隙” ===================== */
/* brand-fill */
/* 之前侧卡用 contain 显示拱形图（400×700，比例 0.57），
   而卡片本身比例约 0.68 → 图缩在卡片中间，左右各留一截，
   于是视觉上就出现“卡与卡之间很大一块空”。
   这里让底图铺满卡片（100% 100%），卡片的边缘 = 可见边缘。 */
@media (min-width: 821px) {
    #jtBrand .jt-brand-card.is-l1,
    #jtBrand .jt-brand-card.is-r1,
    #jtBrand .jt-brand-card.is-l2,
    #jtBrand .jt-brand-card.is-r2 {
        background-size: 100% 100%;
    }

    /* 底图铺满后台阶回到“刚好贴合”，不再需要额外叠压 */
    #jtBrand .jt-brand-card.is-l1 { transform: translateX(calc(-1 * var(--bw) * .90)) scale(.82); }
    #jtBrand .jt-brand-card.is-r1 { transform: translateX(calc(var(--bw) * .90)) scale(.82); }
    #jtBrand .jt-brand-card.is-l2 { transform: translateX(calc(-1 * var(--bw) * 1.66)) scale(.70); }
    #jtBrand .jt-brand-card.is-r2 { transform: translateX(calc(var(--bw) * 1.66)) scale(.70); }
    #jtBrand .jt-brand-card.is-hide-l { transform: translateX(calc(-1 * var(--bw) * 2.30)) scale(.64); }
    #jtBrand .jt-brand-card.is-hide-r { transform: translateX(calc(var(--bw) * 2.30)) scale(.64); }
}

/* ===================== 旗下品牌：轮播整体下移，与标题拉开距离 ===================== */
/* brand-push-down */
#jtBrand .jt-brand-stage {
    margin-top: clamp(30px, 4.5vh, 64px);   /* 标题与卡片之间留出呼吸空间 */
}
/* 下移后底部相应收紧，避免整屏被撑高 */
#jtBrand .jt-hs-inner {
    padding-bottom: clamp(48px, 6vh, 88px);
}
#jtBrand .jt-brand-dots {
    margin-top: clamp(12px, 1.6vh, 20px);
}

/* ===================== 企业介绍：左列两项数据往右移 ===================== */
/* facts-shift-right */
/* 2×2 网格里第 1、3 项属于左列，单独给它们加左缩进，
   右列（第 2、4 项）位置保持不变。 */
@media (min-width: 821px) {
    #jtAbout .jt-about-mini-item:nth-child(odd) {
        margin-left: clamp(24px, 4vw, 72px);
    }
}

/* ===================== 企业介绍：四个数据项两列靠拢（对齐设计稿） ===================== */
/* facts-gap-tight */
@media (min-width: 821px) {
    /* 取消上一版“左列右移”的额外缩进 */
    #jtAbout .jt-about-mini-item:nth-child(odd) { margin-left: 0; }

    /* 两列按内容宽度排布，列间距收窄，整组在右侧区域内居中 */
    #jtAbout .jt-about-mini {
        grid-template-columns: max-content max-content;
        justify-content: center;
        column-gap: clamp(40px, 5vw, 104px);
        row-gap: 26px;
    }
}

/* ===================== 超越纯净：左标题 + 横向轮播卡片（设计稿版式） ===================== */
/* pure-row */
#jtPure { overflow: hidden; }
/* 覆盖旧版「左右两栏 flex」布局，改为普通块级：标题在上、卡行在下 */
#jtPure .jt-pure-inner {
    display: block;
    min-height: 0;
    max-width: 1240px;
    margin: 0 auto;
    padding: clamp(40px, 8vh, 92px) 20px;
}

/* 标题：左上角、左对齐 */
.jt-pure-head { margin: 0 0 26px; }
.jt-pure-head h2 {
    margin: 0 0 10px;
    font-size: clamp(26px, 2.6vw, 38px);
    font-weight: 700; letter-spacing: 2px; color: #212121;
}
.jt-pure-head p {
    margin: 0;
    font-size: clamp(14px, 1.15vw, 17px);
    letter-spacing: 1px; color: #4a6785;
}

/* 卡片行 */
.jt-pure-row {
    display: flex; align-items: stretch; gap: 20px;
    height: clamp(280px, 40vh, 380px);
    overflow: hidden;
    will-change: transform;
}
.jt-pure-card {
    position: relative; flex: 0 0 clamp(160px, 15vw, 210px);
    display: block; overflow: hidden;
    background: #fff; border-radius: 4px;
    box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
    text-decoration: none;
    transition: flex-basis .55s cubic-bezier(.22, .8, .28, 1), box-shadow .3s ease;
}
.jt-pure-card:hover { box-shadow: 0 16px 34px rgba(20, 60, 110, .18); }

/* 小卡：上标题、下图片 */
.jt-pure-card .jt-pure-media {
    position: absolute; left: 0; right: 0; bottom: 0;
    height: calc(100% - 56px);
    background: var(--pure-img) center center / cover no-repeat;
}
.jt-pure-card .jt-pure-body {
    position: absolute; left: 0; right: 0; top: 0;
    padding: 16px 16px 0;
}
.jt-pure-card h3 {
    margin: 0; font-size: 15px; font-weight: 600;
    color: #1c5fae; letter-spacing: .5px;
}
.jt-pure-card .jt-pure-bar { display: none; }
.jt-pure-card p { display: none; }

/* 激活卡（第一个）：左蓝底文字 + 右图片 */
.jt-pure-card.is-active { flex-basis: clamp(360px, 40vw, 520px); }
.jt-pure-card.is-active .jt-pure-media {
    left: 45%; right: 0; top: 0; bottom: 0; height: auto;
}
.jt-pure-card.is-active .jt-pure-body {
    top: 0; bottom: 0; width: 55%;
    padding: 42px 26px;
    display: flex; flex-direction: column; justify-content: center;
    background: linear-gradient(90deg, #1c58b0 0%, #2a6fc4 62%, rgba(42, 111, 196, .92) 100%);
}
.jt-pure-card.is-active h3 {
    color: #fff; margin: 0 0 18px;
    font-size: clamp(18px, 1.7vw, 26px); font-weight: 500; letter-spacing: 2px;
}
.jt-pure-card.is-active .jt-pure-bar {
    display: block; width: 34px; height: 2px; margin: 0 0 18px;
    background: rgba(255, 255, 255, .6);
}
.jt-pure-card.is-active p {
    display: block; margin: 0;
    font-size: clamp(12px, .95vw, 14px); line-height: 1.95;
    color: rgba(255, 255, 255, .92);
}

/* 手机端：卡片更窄，一屏约 2.5 个 */
@media (max-width: 820px) {
    .jt-pure-row { gap: 12px; height: 240px; }
    .jt-pure-card { flex: 0 0 130px; }
    .jt-pure-card.is-active { flex-basis: 240px; }
    .jt-pure-card.is-active .jt-pure-body { padding: 24px 16px; }
    .jt-pure-card.is-active h3 { font-size: 17px; }
    .jt-pure-card.is-active p { font-size: 11.5px; line-height: 1.8; }
    .jt-pure-head h2 { font-size: 24px; }
}

/* ===================== 超越纯净：整体放大，页面更大气 ===================== */
/* pure-bigger */
#jtPure .jt-pure-inner {
    max-width: 1480px;
    padding-left: 32px;
    padding-right: 32px;
}
.jt-pure-head { margin-bottom: 34px; }
.jt-pure-head h2 {
    font-size: clamp(34px, 3.4vw, 52px);
    letter-spacing: 4px;
    margin-bottom: 14px;
}
.jt-pure-head p {
    font-size: clamp(16px, 1.35vw, 21px);
    letter-spacing: 2px;
}

.jt-pure-row {
    gap: 24px;
    height: clamp(360px, 48vh, 470px);
}
.jt-pure-card {
    flex: 0 0 clamp(200px, 19vw, 280px);
    border-radius: 6px;
}
.jt-pure-card .jt-pure-media { height: calc(100% - 64px); }
.jt-pure-card .jt-pure-body { padding: 20px 20px 0; }
.jt-pure-card h3 { font-size: clamp(16px, 1.3vw, 20px); }

/* 激活大卡同步放大 */
.jt-pure-card.is-active { flex-basis: clamp(460px, 50vw, 700px); }
.jt-pure-card.is-active .jt-pure-body { padding: 54px 34px; }
.jt-pure-card.is-active h3 {
    font-size: clamp(24px, 2.2vw, 36px);
    margin-bottom: 22px;
}
.jt-pure-card.is-active .jt-pure-bar { width: 42px; margin-bottom: 22px; }
.jt-pure-card.is-active p {
    font-size: clamp(13px, 1.05vw, 16px);
    line-height: 2.05;
}

@media (max-width: 820px) {
    #jtPure .jt-pure-inner { padding-left: 16px; padding-right: 16px; }
    .jt-pure-row { gap: 12px; height: 250px; }
    .jt-pure-card { flex: 0 0 140px; }
    .jt-pure-card.is-active { flex-basis: 260px; }
    .jt-pure-head h2 { font-size: 26px; }
}

/* ===================== 超越纯净：右侧小卡放大成近正方 + 顶到屏幕右边 ===================== */
/* pure-square */
@media (min-width: 821px) {
    /* 卡行向右突破容器，一直顶到视口右边缘（左侧仍与标题对齐） */
    #jtPure .jt-pure-row {
        margin-right: calc((100vw - 100%) / -2);
        padding-right: 0;
    }

    /* 小卡放大成接近正方形（宽度≈行高） */
    #jtPure .jt-pure-card {
        flex: 0 0 clamp(280px, 40vh, 460px);
    }
    #jtPure .jt-pure-card.is-active {
        flex-basis: clamp(460px, 50vw, 700px);
    }

    /* 小卡标题区相应加高，图片占比更饱满 */
    #jtPure .jt-pure-card .jt-pure-media { height: calc(100% - 70px); }
    #jtPure .jt-pure-card .jt-pure-body { padding: 22px 22px 0; }
}

/* ===================== 超越纯净：与顶部 Logo 左对齐 ===================== */
/* pure-align-logo */
/* 头部用的是 .jt-container（max-width: var(--jt-max) + 20px 内边距），
   这里改成同一套宽度，标题与卡片的左边缘就和 Logo 对齐。 */
@media (min-width: 821px) {
    #jtPure .jt-pure-inner {
        max-width: var(--jt-max);
        margin: 0 auto;
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* 小卡图片区兜底：确保铺到卡片底边（避免个别卡片下沿露出白边） */
.jt-pure-card .jt-pure-media {
    top: auto;
    bottom: 0;
}

/* ===================== 超越纯净：严格按设计稿（大卡横版 + 小卡白框内嵌图） ===================== */
/* pure-design-2 */
@media (min-width: 821px) {
    /* 行：底部对齐，不再强行统一高度 */
    #jtPure .jt-pure-row { align-items: flex-end; height: auto; }

    /* 小卡：白底、圆角、标题居中、图片内嵌（四周留白） */
    #jtPure .jt-pure-card {
        display: flex; flex-direction: column;
        flex: 0 0 clamp(180px, 15vw, 240px);
        height: clamp(180px, 24vh, 232px);
        background: #fff; border-radius: 3px;
        box-shadow: 0 8px 22px rgba(20, 60, 110, .12);
    }
    #jtPure .jt-pure-card .jt-pure-body {
        position: static; top: auto; left: auto; right: auto; bottom: auto;
        padding: 14px 10px 12px; text-align: center;
    }
    #jtPure .jt-pure-card h3 {
        margin: 0; font-size: clamp(14px, 1.05vw, 17px);
        font-weight: 500; text-align: center; color: #1c5fae; letter-spacing: 1px;
    }
    #jtPure .jt-pure-card .jt-pure-media {
        position: static; left: auto; right: auto; top: auto; bottom: auto;
        flex: 1 1 auto; height: auto;
        margin: 0 10px 10px; border-radius: 2px;
        background: var(--pure-img) center center / cover no-repeat;
    }

    /* 激活大卡：横版，左蓝底文字 + 右图片 */
    #jtPure .jt-pure-card.is-active {
        display: block;
        flex-basis: clamp(360px, 34vw, 560px);
        height: clamp(240px, 33vh, 312px);
    }
    #jtPure .jt-pure-card.is-active .jt-pure-media {
        position: absolute; left: 45%; right: 0; top: 0; bottom: 0;
        margin: 0; border-radius: 0;
    }
    #jtPure .jt-pure-card.is-active .jt-pure-body {
        position: absolute; left: 0; top: 0; bottom: 0; width: 45%;
        padding: 0 22px;
        display: flex; flex-direction: column; justify-content: center;
        background: linear-gradient(90deg, #1c58b0 0%, #2a6fc4 100%);
        text-align: left;
    }
    #jtPure .jt-pure-card.is-active h3 {
        text-align: center;
        margin: 0 0 14px;
        font-size: clamp(18px, 1.6vw, 24px);
        font-weight: 500; letter-spacing: 2px; color: #fff;
    }
    #jtPure .jt-pure-card.is-active .jt-pure-bar {
        display: block; width: 28px; height: 2px;
        margin: 0 auto 14px; background: rgba(255, 255, 255, .55);
    }
    #jtPure .jt-pure-card.is-active p {
        display: block; margin: 0;
        font-size: clamp(11px, .85vw, 13px); line-height: 1.9;
        text-align: left; color: rgba(255, 255, 255, .92);
    }
}

/* ===================== 超越纯净：标题与卡行统一左对齐（保险规则） ===================== */
/* pure-left-guard */
#jtPure { text-align: left; }
#jtPure .jt-pure-inner {
    display: block;
    text-align: left;
}
#jtPure .jt-pure-head,
#jtPure .jt-pure-head h2,
#jtPure .jt-pure-head p {
    text-align: left;
}
#jtPure .jt-pure-row {
    justify-content: flex-start;
}

/* ===================== 超越纯净：撑满版块、卡片整体加大 ===================== */
/* pure-fill-area */
/* 1) 容器强制铺开（覆盖历史遗留的 flex / 限宽 / 偏移） */
#jtPure > .jt-pure-inner {
    display: block !important;
    width: 100% !important;
    max-width: var(--jt-max) !important;
    margin: 0 auto !important;
    padding: clamp(76px, 10vh, 120px) 20px clamp(40px, 6vh, 80px) !important;
    text-align: left !important;
}

/* 2) 标题 */
#jtPure .jt-pure-head { margin: 0 0 34px !important; }
#jtPure .jt-pure-head h2 {
    font-size: clamp(34px, 3.2vw, 50px) !important;
    letter-spacing: 3px; color: #1a1a1a; margin: 0 0 12px !important;
}
#jtPure .jt-pure-head p {
    font-size: clamp(15px, 1.2vw, 19px) !important;
    color: #4a6785; letter-spacing: 1px;
}

/* 3) 卡行：整体放大 */
@media (min-width: 821px) {
    #jtPure .jt-pure-row { gap: 24px; align-items: flex-end; height: auto; }

    #jtPure .jt-pure-card {
        flex: 0 0 clamp(200px, 17vw, 280px);
        height: clamp(210px, 27vh, 280px);
    }
    #jtPure .jt-pure-card.is-active {
        flex-basis: clamp(430px, 42vw, 680px);
        height: clamp(280px, 36vh, 360px);
    }
    #jtPure .jt-pure-card.is-active .jt-pure-body { padding: 0 30px; width: 44%; }
    #jtPure .jt-pure-card.is-active .jt-pure-media { left: 44%; }
    #jtPure .jt-pure-card.is-active h3 { font-size: clamp(22px, 1.9vw, 30px); }
    #jtPure .jt-pure-card.is-active p { font-size: clamp(12px, .95vw, 15px); }
    #jtPure .jt-pure-card h3 { font-size: clamp(15px, 1.15vw, 19px); }
}

/* ===================== 超越纯净：仅把左侧大卡改成正方形（宽度不变） ===================== */
/* pure-active-square */
@media (min-width: 821px) {
    #jtPure .jt-pure-card.is-active {
        height: auto;            /* 取消固定高度 */
        aspect-ratio: 1 / 1;     /* 高度 = 宽度 → 正方形 */
    }
}

/* ===================== 超越纯净：2/3/4 号小卡按设计稿（竖版白卡 + 左对齐标题 + 内嵌图） ===================== */
/* pure-small-cards */
@media (min-width: 821px) {
    #jtPure .jt-pure-row { align-items: flex-end; }

    /* 小卡：白底竖版，内容从上往下排，底边与大卡齐平 */
    #jtPure .jt-pure-card:not(.is-active) {
        display: flex;
        flex-direction: column;
        align-items: stretch;          /* 关键：子元素撑满宽度 */
        justify-content: flex-start;   /* 关键：不要垂直居中 */
        flex: 0 0 clamp(180px, 14.5vw, 240px);
        width: auto;
        height: clamp(200px, 27vh, 268px);
        aspect-ratio: auto;            /* 取消可能残留的正方形 */
        background: #fff;
        border-radius: 3px;
        box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
        overflow: hidden;
    }

    /* 标题：左上角、左对齐、蓝字 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body {
        position: static;
        flex: 0 0 auto;
        padding: 16px 14px 12px;
        text-align: left;
    }
    #jtPure .jt-pure-card:not(.is-active) h3 {
        margin: 0;
        text-align: left;
        font-size: clamp(15px, 1.1vw, 18px);
        font-weight: 500;
        letter-spacing: 1px;
        color: #1c5fae;
    }

    /* 图片：内嵌（四周留白），占满剩余高度 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        position: static;
        flex: 1 1 auto;
        min-height: 0;
        width: auto;
        align-self: stretch;
        margin: 0 12px 12px;
        border-radius: 2px;
        background: var(--pure-img) center center / cover no-repeat;
    }

    /* 小卡里的描述文字与短线不显示 */
    #jtPure .jt-pure-card:not(.is-active) p,
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-bar { display: none; }
}

/* ===================== 超越纯净：小卡放大一倍 + 标题回到图片上方 ===================== */
/* pure-small-double */
@media (min-width: 821px) {
    #jtPure .jt-pure-card:not(.is-active) {
        flex: 0 0 clamp(360px, 29vw, 480px);
        height: clamp(400px, 54vh, 536px);
    }

    /* HTML 里 media 在前、body 在后，用 order 把标题提到图片上方 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body { order: -1; }

    /* 放大后字号同步 */
    #jtPure .jt-pure-card:not(.is-active) h3 { font-size: clamp(17px, 1.3vw, 21px); }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body { padding: 20px 16px 14px; }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media { margin: 0 16px 16px; }
}

/* ===================== 超越纯净：小卡内留白缩小 + 标题居中 ===================== */
/* pure-small-tight */
@media (min-width: 821px) {
    /* 标题区：上下留白收紧、文字居中 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body {
        padding: 12px 8px 8px;
        text-align: center;
    }
    #jtPure .jt-pure-card:not(.is-active) h3 {
        text-align: center;
        font-size: clamp(16px, 1.15vw, 19px);
    }

    /* 图片：四周只留 8px 细边 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        margin: 0 8px 8px;
        border-radius: 2px;
    }
}

/* ===================== 超越纯净：小卡图片改为绝对铺满，四周只留 8px ===================== */
/* pure-small-imgfill */
@media (min-width: 821px) {
    #jtPure .jt-pure-card:not(.is-active) {
        position: relative;
        overflow: hidden;
    }

    /* 标题单独占顶部一条 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body {
        position: absolute;
        left: 0; right: 0; top: 0;
        height: 52px;
        display: flex; align-items: center; justify-content: center;
        padding: 0 8px;
        text-align: center;
    }
    #jtPure .jt-pure-card:not(.is-active) h3 {
        margin: 0; text-align: center;
        font-size: clamp(16px, 1.15vw, 19px);
    }

    /* 图片：从标题下方一直铺到卡片底部，左右各留 8px */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        position: absolute;
        left: 12px; right: 12px; top: 52px; bottom: 12px;
        margin: 0;
        background: var(--pure-img) center center / cover no-repeat;
    }
}

/* ===================== 超越纯净：切换时只有内容淡出淡入，卡片框不动 ===================== */
/* pure-swap */
#jtPure .jt-pure-card .jt-pure-media,
#jtPure .jt-pure-card h3,
#jtPure .jt-pure-card p {
    transition: opacity .26s ease, transform .26s ease;
}
#jtPure .jt-pure-card.is-swap .jt-pure-media,
#jtPure .jt-pure-card.is-swap h3,
#jtPure .jt-pure-card.is-swap p {
    opacity: 0;
    transform: translateY(6px);
}

/* ===================== 超越纯净：图片不加蒙版；大卡左侧蓝层改半透明 ===================== */
/* pure-no-mask */
@media (min-width: 821px) {
    /* 1) 图片保持原图：不加任何滤镜/蒙版 */
    #jtPure .jt-pure-card .jt-pure-media {
        filter: none;
        opacity: 1;
        mix-blend-mode: normal;
    }

    /* 2) 大卡：图片铺满整张卡，蓝色文字层浮在上面（半透明，能透出图片） */
    #jtPure .jt-pure-card.is-active .jt-pure-media {
        left: 0;
    }
    #jtPure .jt-pure-card.is-active .jt-pure-body {
        width: 42%;
        background: linear-gradient(90deg,
            rgba(24, 78, 160, .90) 0%,
            rgba(32, 92, 180, .72) 55%,
            rgba(42, 111, 196, .55) 100%);
        -webkit-backdrop-filter: blur(1.5px);
        backdrop-filter: blur(1.5px);
    }
}

/* ===================== 超越纯净：大卡加宽成横长方形，小卡整体缩小 ===================== */
/* pure-size-3 */
@media (min-width: 821px) {
    /* 大卡：取消正方形，改为横版矩形 */
    #jtPure .jt-pure-card.is-active {
        flex: 0 0 clamp(560px, 50vw, 820px);
        width: auto;
        aspect-ratio: auto;
        height: clamp(330px, 42vh, 450px);
    }
    /* 蓝层随大卡宽度调整比例 */
    #jtPure .jt-pure-card.is-active .jt-pure-body { width: 36%; padding: 0 26px; }

    /* 小卡：整体缩小 */
    #jtPure .jt-pure-card:not(.is-active) {
        flex: 0 0 clamp(160px, 12vw, 210px);
        height: clamp(180px, 23vh, 236px);
    }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body { height: 46px; }
    #jtPure .jt-pure-card:not(.is-active) h3 { font-size: clamp(14px, 1vw, 17px); }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        left: 10px; right: 10px; top: 46px; bottom: 10px;
    }
}

/* ===================== 超越纯净：大卡加高（比例更接近 1.5:1）、小卡放大 1.5 倍 ===================== */
/* pure-size-4 */
@media (min-width: 821px) {
    /* 大卡：加高，长宽比约 1.5:1 */
    #jtPure .jt-pure-card.is-active {
        flex: 0 0 clamp(560px, 48vw, 800px);
        height: clamp(370px, 52vh, 540px);
    }

    /* 小卡：整体放大 1.5 倍（160~210 → 240~315；180~236 → 270~354） */
    #jtPure .jt-pure-card:not(.is-active) {
        flex: 0 0 clamp(240px, 18vw, 315px);
        height: clamp(270px, 34vh, 354px);
    }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body { height: 56px; }
    #jtPure .jt-pure-card:not(.is-active) h3 { font-size: clamp(16px, 1.15vw, 19px); }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        left: 12px; right: 12px; top: 56px; bottom: 12px;
    }
}

/* ===================== 企业介绍：整块锁定在一屏内，楼体完整可见 ===================== */
/* about-fit-screen */
@media (min-width: 821px) {
    /* 版块高度固定为「一屏 − 头部」，不再被内容撑高 */
    #jtAbout {
        height: calc(100vh - var(--jt-header-h));
        min-height: 620px;
        max-height: calc(100vh - var(--jt-header-h));
        overflow: hidden;
    }

    /* 文字区：上移一个头部高度不变，底部留出楼体位置（40vh） */
    #jtAbout .jt-hs-inner {
        padding-top: calc(var(--jt-header-h) * 2 + 8px);
        padding-bottom: 40vh;
    }

    /* 楼体：占下方 40vh，图片略微上移让楼顶与招牌露出来 */
    #jtAbout .jt-about-building {
        height: 40vh;
    }
    #jtAbout .jt-about-building img {
        margin-top: -3vw;
    }
}

/* 手机端保持原有的自然高度 */
@media (max-width: 820px) {
    #jtAbout { height: auto; max-height: none; min-height: 0; }
}

/* 矮屏（如 1366×768）时进一步收紧，避免文字压到楼体 */
/* about-fit-short */
@media (min-width: 821px) and (max-height: 840px) {
    #jtAbout .jt-hs-inner {
        padding-top: calc(var(--jt-header-h) + 8px);
        padding-bottom: 36vh;
    }
    #jtAbout .jt-about-building { height: 36vh; }
    #jtAbout .jt-about-text { font-size: 12.5px; line-height: 1.9; }
    #jtAbout .jt-about-head h2 { font-size: 26px; margin-bottom: 16px; }
    #jtAbout .jt-about-more { margin-top: 10px; }
}

/* ===================== 企业介绍：楼体再往上抬一个导航高度 ===================== */
/* about-building-up */
@media (min-width: 821px) {
    /* 文字区先上移一点，给加高后的楼体让位（避免压住正文） */
    #jtAbout .jt-hs-inner {
        padding-top: calc(var(--jt-header-h) + 8px);
    }
    #jtAbout .jt-about-building {
        height: calc(40vh + var(--jt-header-h));   /* 40vh + 76px */
    }
}

/* ===================== 企业介绍：按整屏 100vh 铺满（125%/150% 缩放也不留缝） ===================== */
/* about-full-vp */
@media (min-width: 821px) {
    #jtAbout {
        height: 100vh;
        max-height: 100vh;
        min-height: 0;
    }
    /* 楼体仍贴底部，高度按整屏算 */
    #jtAbout .jt-about-building {
        height: calc(40vh + var(--jt-header-h));
    }
}

/* ===================== 企业介绍：字号/间距随屏幕等比放大（不同分辨率下都一样大气） ===================== */
/* about-fluid */
@media (min-width: 821px) {
    /* 容器更宽，别在大屏上缩在中间 */
    #jtAbout .jt-hs-inner {
        max-width: min(1720px, 94vw);
    }

    /* 两栏比例与间距随屏幕变化 */
    #jtAbout .jt-about-cols {
        gap: clamp(48px, 6vw, 128px);
    }
    #jtAbout .jt-about-left { flex: 0 0 clamp(420px, 46%, 760px); }
    #jtAbout .jt-about-right { flex: 1 1 auto; padding-left: 0; }

    /* 标题 */
    #jtAbout .jt-about-head h2 {
        font-size: clamp(30px, 2.4vw, 48px);
        letter-spacing: 6px;
        margin-bottom: clamp(18px, 2vh, 30px);
    }

    /* 正文 */
    #jtAbout .jt-about-text {
        max-width: none;
        font-size: clamp(13.5px, 1.02vw, 18px);
        line-height: 2.0;
    }
    #jtAbout .jt-about-text p { margin-bottom: clamp(10px, 1.2vh, 18px); }

    /* 右侧四组数字 */
    #jtAbout .jt-about-mini {
        column-gap: clamp(44px, 5vw, 130px);
        row-gap: clamp(20px, 3vh, 44px);
    }
    #jtAbout .jt-about-mini-icon { height: clamp(38px, 3vw, 56px); }
    #jtAbout .jt-about-mini-num {
        font-size: clamp(26px, 2.3vw, 46px);
    }
    #jtAbout .jt-about-mini-num small { font-size: clamp(12px, .85vw, 16px); }
    #jtAbout .jt-about-mini-label { font-size: clamp(13px, .95vw, 17px); }

    /* 按钮 */
    #jtAbout .jt-about-more .jt-btn {
        font-size: clamp(13px, .95vw, 17px);
        padding: .62em 1.6em;
    }
}

/* ===================== 专利成果：随分辨率等比缩放 ===================== */
/* patent-fluid */
@media (min-width: 821px) {
    /* 证书尺寸随视口缩放（宽度用变量，居中偏移自动跟随） */
    .jt-patent .jt-patent-item {
        --pcw: clamp(300px, 21vw, 500px);
        width: var(--pcw);
        margin-left: calc(var(--pcw) * -0.5);
    }

    /* 卡片内边距、间距、圆角随屏幕放大 */
    .jt-patent .jt-patent-card {
        padding: clamp(28px, 2.6vw, 60px) clamp(40px, 4vw, 100px);
        gap: clamp(28px, 3vw, 64px);
        border-radius: clamp(20px, 2vw, 40px);
    }
    .jt-patent .jt-patent-card::before { border-radius: clamp(20px, 2vw, 40px); }

    /* 左侧标题 */
    .jt-patent .jt-patent-label {
        font-size: clamp(26px, 2.3vw, 48px);
        letter-spacing: clamp(2px, .3vw, 6px);
    }

    /* 图册下方说明 */
    .jt-patent .jt-patent-caption {
        font-size: clamp(14px, 1.15vw, 24px);
        padding-top: clamp(4px, .8vh, 12px);
    }

    /* 证书舞台高度随视口（略高于证书本身，留出说明文字位置） */
    .jt-patent .jt-patent-stage {
        height: clamp(430px, 54vh, 640px);
    }

    /* 箭头随屏幕缩放 */
    .jt-patent .jt-patent-arrow {
        width: clamp(38px, 2.4vw, 56px);
        height: clamp(38px, 2.4vw, 56px);
        font-size: clamp(18px, 1.3vw, 26px);
    }
}

/* 专利卡片宽度也随视口（与大屏一致，不再固定 1560 上限） */
/* patent-fluid-w */
@media (min-width: 821px) {
    .jt-patent .jt-patent-card {
        width: min(calc(100vw - clamp(36px, 6vw, 200px)), 1720px);
    }
}

/* ===================== 专利成果：白色卡片与「专利成果」标题一起等比放大 ===================== */
/* patent-label-fix */
@media (min-width: 821px) {
    /* 卡片左右内边距随屏幕放大，给标题留出足够位置 */
    .jt-patent .jt-patent-card {
        padding-left: clamp(56px, 5vw, 130px);
        padding-right: clamp(44px, 4vw, 110px);
    }

    /* 标题：字号更大 + 不被证书覆盖 + 固定最小宽度，避免只剩半个字 */
    .jt-patent .jt-patent-label {
        position: relative;
        z-index: 8;
        flex: 0 0 auto;
        min-width: clamp(130px, 9vw, 210px);
        font-size: clamp(30px, 2.8vw, 56px);
        line-height: 1.25;
        white-space: nowrap;
    }

    /* 轮播区退回标题下方层级，证书不会压住标题 */
    .jt-patent .jt-patent-main {
        position: relative;
        z-index: 1;
    }
}

/* ===================== 专利成果：白色卡片层放大到接近满屏 ===================== */
/* patent-card-big */
@media (min-width: 821px) {
    .jt-patent .jt-patent-card {
        width: min(92vw, 1780px);
        height: 74vh;
        max-width: none;
    }
}

/* ===================== 专利成果：圆角卡片铺满屏宽，左右各留两个导航条高度 ===================== */
/* patent-card-full */
@media (min-width: 821px) {
    .jt-patent .jt-patent-card {
        width: calc(100vw - var(--jt-header-h) * 2);   /* 左右合计留 2 个导航高（各 76px） */
        max-width: none;
        height: 74vh;
    }
}

/* ===================== 专利成果：证书上移，说明文字不再被遮住 ===================== */
/* patent-caption-clear */
@media (min-width: 821px) {
    /* 证书整体上移，给下方说明文字留出空间 */
    .jt-patent .jt-patent-item {
        top: calc(50% - 34px);
    }

    /* 说明文字压在最上层，且不会被证书边缘盖住 */
    .jt-patent .jt-patent-caption {
        position: relative;
        z-index: 9;
        padding: 10px 0 0;
        background: transparent;
    }
}

/* ===================== 专利成果：证书与说明文字的距离固定（各分辨率一致） ===================== */
/* patent-gap-fixed */
@media (min-width: 821px) {
    /* 证书宽度变量同时给到舞台，便于按证书高度算舞台高度 */
    .jt-patent .jt-patent-stage {
        --pcw: clamp(300px, 21vw, 500px);
        height: calc(var(--pcw) * 1.42);   /* 证书高 ≈ 宽 × 1.42，两者永远等高 */
        flex: 0 0 auto;
        margin-top: 0;
    }
    .jt-patent .jt-patent-item { top: 50%; }   /* 回到舞台正中 */

    /* 说明文字紧跟舞台底边，距离固定 12px */
    .jt-patent .jt-patent-caption {
        position: relative;
        z-index: 9;
        padding: 12px 0 0;
        margin-top: 0;
    }
}

/* ===================== 活性未来：左右两栏向两侧拉开 + 高分辨率等比放大 ===================== */
/* active-spread */
@media (min-width: 821px) {
    /* 容器更宽：左栏往左、右栏往右，中间留出更大呼吸区 */
    #jtActive .jt-active-wrap {
        max-width: min(1760px, 94vw);
        gap: clamp(48px, 7vw, 160px);
    }

    /* 左栏宽度随屏幕增长，文字字号同步等比 */
    #jtActive .jt-active-timeline { flex: 0 0 clamp(520px, 52%, 920px); }

    #jtActive .jt-tl-year  { font-size: clamp(15px, 1.05vw, 20px); }
    #jtActive .jt-tl-title { font-size: clamp(16px, 1.15vw, 22px); }
    #jtActive .jt-tl-text  { font-size: clamp(13px, .92vw, 18px); }

    /* 主展示节点（第 2 条）比其它大一号，也随屏幕缩放 */
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-year  { font-size: clamp(16px, 1.2vw, 23px); }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-title { font-size: clamp(17px, 1.3vw, 25px); }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-text  { font-size: clamp(14px, 1vw, 19px); }

    /* 右侧拱形内的大标题也随屏幕放大 */
    #jtActive .jt-active-titles h2 { font-size: clamp(30px, 3vw, 56px); }
    #jtActive .jt-active-titles p  { font-size: clamp(13px, 1.05vw, 20px); }
}

/* ===================== 企业介绍：各分辨率统一放大（文字 + 数字 + 标题） ===================== */
/* about-bigger-2 */
@media (min-width: 821px) {
    /* 标题 */
    #jtAbout .jt-about-head h2 {
        font-size: clamp(32px, 2.6vw, 52px);
        letter-spacing: clamp(4px, .4vw, 10px);
        margin-bottom: clamp(16px, 2.2vh, 30px);
    }

    /* 正文：下限 15px，宽屏继续放大到 20px */
    #jtAbout .jt-about-text {
        font-size: clamp(15px, 1.12vw, 20px);
        line-height: 2.1;
    }
    #jtAbout .jt-about-text p { margin-bottom: clamp(12px, 1.4vh, 22px); }

    /* 右侧四组数字：明显放大 */
    #jtAbout .jt-about-mini {
        column-gap: clamp(48px, 5.5vw, 140px);
        row-gap: clamp(24px, 3.4vh, 52px);
    }
    #jtAbout .jt-about-mini-num {
        font-size: clamp(36px, 2.8vw, 58px);
        line-height: 1.05;
    }
    #jtAbout .jt-about-mini-num small { font-size: clamp(13px, .95vw, 20px); }
    #jtAbout .jt-about-mini-label { font-size: clamp(15px, 1.1vw, 21px); }

    /* 右侧数据起点与正文对齐（随屏高微调） */
    #jtAbout .jt-about-right { padding-top: clamp(56px, 7vh, 96px); }

    /* 按钮 */
    #jtAbout .jt-about-more .jt-btn { font-size: clamp(14px, 1vw, 18px); }
}

/* ===================== 企业介绍：2K/4K（如 3072×1920 @125%）继续放大 ===================== */
/* about-4k */
@media (min-width: 1600px) {
    /* 容器更宽，减少两侧空白 */
    #jtAbout .jt-hs-inner { max-width: min(2100px, 94vw); }

    /* 标题 */
    #jtAbout .jt-about-head h2 {
        font-size: clamp(36px, 2.4vw, 68px);
        margin-bottom: clamp(18px, 2.2vh, 34px);
    }

    /* 正文：随宽度继续长，上限提到 26px */
    #jtAbout .jt-about-text {
        font-size: clamp(16px, 1.05vw, 26px);
        line-height: 2.15;
    }
    #jtAbout .jt-about-text p { margin-bottom: clamp(14px, 1.5vh, 26px); }

    /* 数字 / 单位 / 项目名同步放大 */
    #jtAbout .jt-about-mini { column-gap: clamp(60px, 5vw, 180px); row-gap: clamp(28px, 3.2vh, 64px); }
    #jtAbout .jt-about-mini-num { font-size: clamp(40px, 2.6vw, 78px); }
    #jtAbout .jt-about-mini-num small { font-size: clamp(14px, .9vw, 26px); }
    #jtAbout .jt-about-mini-label { font-size: clamp(16px, 1vw, 26px); }

    /* 左右两栏比例：文字区更宽 */
    #jtAbout .jt-about-left { flex: 0 0 clamp(620px, 52%, 1100px); }
    #jtAbout .jt-about-right { padding-top: clamp(64px, 7vh, 120px); }
    #jtAbout .jt-about-more .jt-btn { font-size: clamp(15px, .95vw, 22px); }
}

/* ===================== 超越纯净：横向滑动轮播（任何分辨率都显示 4 个，第 4 个露一半） ===================== */
/* pure-slide-4 */
@media (min-width: 821px) {
    /* 容器 */
    #jtPure .jt-pure-inner {
        max-width: min(1760px, 94vw);
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }

    /* 轨道：一行铺开、底边对齐、超出部分裁掉（第 4 张自然露一半） */
    #jtPure .jt-pure-row {
        display: flex;
        align-items: flex-end;
        gap: clamp(12px, 1.6vw, 30px);
        margin: 0;                       /* 取消之前的负边距 */
        padding: 0;
        height: auto;
        overflow: hidden;
        will-change: transform;
    }

    /* 小卡：宽高都随视口（1080 约 184×230；1920 约 326×330） */
    #jtPure .jt-pure-card:not(.is-active) {
        flex: 0 0 clamp(150px, 17vw, 320px);
        width: auto;
        height: clamp(190px, 27vh, 380px);
        aspect-ratio: auto;
        background: #fff;
    }

    /* 大卡：宽约为小卡 2.6 倍（1080 约 475；1920 约 845） */
    #jtPure .jt-pure-card.is-active {
        flex: 0 0 clamp(360px, 44vw, 820px);
        width: auto;
        height: clamp(280px, 42vh, 520px);
        aspect-ratio: auto;
    }

    /* 大卡内部：左侧蓝层 42%、右侧图片 */
    #jtPure .jt-pure-card.is-active .jt-pure-body { width: 42%; padding: 0 clamp(20px, 2vw, 40px); }
    #jtPure .jt-pure-card.is-active .jt-pure-media { left: 42%; }

    /* 小卡：标题条 + 内嵌图片 */
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-body { height: clamp(44px, 4vh, 60px); }
    #jtPure .jt-pure-card:not(.is-active) .jt-pure-media {
        left: 12px; right: 12px;
        top: clamp(44px, 4vh, 60px);
        bottom: 12px;
    }
}

/* ===================== 超越纯净：左区单卡滑动轮播 + 右区小卡 ===================== */
/* pure-zones */
@media (min-width: 821px) {
    #jtPure .jt-pure-inner {
        max-width: min(1760px, 94vw);
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }

    /* 两区并排 */
    .jt-pure-zones {
        display: flex;
        align-items: stretch;
        gap: clamp(16px, 2vw, 44px);
    }

    /* 左区：一次只显示一张的“视口” */
    .jt-pure-big {
        position: relative;
        flex: 0 0 clamp(420px, 44vw, 860px);
        height: clamp(300px, 42vh, 540px);
        border-radius: 6px;
        overflow: hidden;
        background: #dce9f7;
    }

    /* 单张卡片：默认藏在右侧 */
    .jt-pure-slide {
        position: absolute;
        inset: 0;
        display: block;
        text-decoration: none;
        background: var(--pure-img) center center / cover no-repeat;
        transform: translateX(100%);
        transition: transform .7s cubic-bezier(.22, .8, .28, 1);
        will-change: transform;
    }
    .jt-pure-slide.is-cur  { transform: translateX(0); }
    .jt-pure-slide.is-prev { transform: translateX(-100%); }
    .jt-pure-slide.is-next { transform: translateX(100%); }

    /* 左侧半透明蓝层（文字区） */
    .jt-pure-slide-body {
        position: absolute;
        left: 0; top: 0; bottom: 0;
        width: 42%;
        padding: 0 clamp(22px, 2.2vw, 46px);
        display: flex; flex-direction: column; justify-content: center;
        background: linear-gradient(90deg,
            rgba(24, 78, 160, .92) 0%,
            rgba(32, 92, 180, .74) 60%,
            rgba(42, 111, 196, .55) 100%);
        -webkit-backdrop-filter: blur(1.5px);
        backdrop-filter: blur(1.5px);
    }
    .jt-pure-slide-body h3 {
        margin: 0 0 18px;
        text-align: center;
        font-size: clamp(18px, 1.7vw, 30px);
        font-weight: 500; letter-spacing: 2px; color: #fff;
    }
    .jt-pure-slide-body .jt-pure-bar {
        display: block;
        width: 30px; height: 2px; margin: 0 auto 18px;
        background: rgba(255, 255, 255, .55);
    }
    .jt-pure-slide-body p {
        margin: 0;
        font-size: clamp(12px, .95vw, 16px);
        line-height: 1.95;
        color: rgba(255, 255, 255, .92);
    }

    /* 右区：小卡（本轮先静态） */
    .jt-pure-strip {
        flex: 1 1 auto;
        display: flex;
        align-items: stretch;
        gap: clamp(12px, 1.4vw, 28px);
        overflow: hidden;
    }
    .jt-pure-mini {
        flex: 0 0 clamp(150px, 16vw, 300px);
        display: flex; flex-direction: column;
        padding: 14px 12px 12px;
        background: #fff;
        border-radius: 4px;
        box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
        text-decoration: none;
    }
    .jt-pure-mini-title {
        display: block;
        text-align: center;
        font-size: clamp(14px, 1.05vw, 19px);
        color: #246DCE;
        margin-bottom: 10px;
    }
    .jt-pure-mini-img {
        flex: 1 1 auto;
        min-height: 0;
        background: var(--pure-img) center center / cover no-repeat;
        border-radius: 2px;
    }
}

/* 手机端：两区上下堆叠，左区高度固定 */
@media (max-width: 820px) {
    .jt-pure-zones { display: block; }
    .jt-pure-big { position: relative; height: 260px; border-radius: 6px; overflow: hidden; margin-bottom: 16px; }
    .jt-pure-slide-body { width: 100%; background: rgba(24, 78, 160, .35); }
    .jt-pure-strip { display: flex; gap: 12px; overflow-x: auto; }
    .jt-pure-mini { flex: 0 0 140px; }
}

/* ===================== 超越纯净：只有背景图向右→左滑，蓝层与文字固定 ===================== */
/* pure-bg-slide */
@media (min-width: 821px) {
    #jtPure .jt-pure-big {
        position: relative;
        flex: 0 0 clamp(420px, 44vw, 860px);
        height: clamp(300px, 42vh, 540px);
        border-radius: 6px;
        overflow: hidden;
        background: #dce9f7;
    }

    /* 背景图层：只做横向滑动 */
    .jt-pure-bgs { position: absolute; inset: 0; z-index: 0; }
    .jt-pure-bg {
        position: absolute; inset: 0;
        background-position: center center;
        background-size: cover;
        background-repeat: no-repeat;
        transform: translateX(100%);
        transition: transform .8s cubic-bezier(.22, .8, .28, 1);
        will-change: transform;
    }
    .jt-pure-bg.is-cur  { transform: translateX(0); }
    .jt-pure-bg.is-prev { transform: translateX(-100%); }   /* 旧图向左滑出 */
    .jt-pure-bg.is-next { transform: translateX(100%); }    /* 新图从右滑入 */

    /* 固定蓝层：位置永远在左边，不参与滑动 */
    .jt-pure-panel {
        position: absolute;
        left: 0; top: 0; bottom: 0;
        width: 42%;
        z-index: 2;
        padding: 0 clamp(22px, 2.2vw, 46px);
        display: flex; flex-direction: column; justify-content: center;
        background: linear-gradient(90deg,
            rgba(24, 78, 160, .92) 0%,
            rgba(32, 92, 180, .74) 60%,
            rgba(42, 111, 196, .55) 100%);
        -webkit-backdrop-filter: blur(1.5px);
        backdrop-filter: blur(1.5px);
    }
    .jt-pure-panel h3 {
        margin: 0 0 18px;
        text-align: center;
        font-size: clamp(18px, 1.7vw, 30px);
        font-weight: 500; letter-spacing: 2px; color: #fff;
        transition: opacity .3s ease;
    }
    .jt-pure-panel .jt-pure-bar {
        display: block;
        width: 30px; height: 2px; margin: 0 auto 18px;
        background: rgba(255, 255, 255, .55);
    }
    .jt-pure-panel p {
        margin: 0;
        font-size: clamp(12px, .95vw, 16px);
        line-height: 1.95;
        color: rgba(255, 255, 255, .92);
        transition: opacity .3s ease;
    }
    /* 文字切换时只淡出淡入，不做水平位移 */
    .jt-pure-panel.is-fade h3,
    .jt-pure-panel.is-fade p { opacity: 0; }

    /* 整块可点击 */
    .jt-pure-link { position: absolute; inset: 0; z-index: 3; }

    /* 旧版滑动卡（已不使用）彻底隐藏，避免干扰 */
    .jt-pure-slide { display: none !important; }
}

@media (max-width: 820px) {
    .jt-pure-big { height: 260px; }
    .jt-pure-panel { width: 100%; background: rgba(24, 78, 160, .35); }
}

/* ===================== 超越纯净：修正蓝层高度与远端背景“横扫”问题 ===================== */
/* pure-bg-fix */
@media (min-width: 821px) {
    #jtPure .jt-pure-big { display: block; }

    /* 蓝层铺满整张卡片高度（之前只到 80% 左右） */
    .jt-pure-panel {
        top: 0;
        bottom: auto;
        height: 100%;
    }

    /* 远端（不相邻）的背景：固定在右侧且不做过渡，防止从 -100% 扫回 +100% */
    .jt-pure-bg.is-far {
        transform: translateX(100%);
        transition: none;
    }
}

/* ===================== 超越纯净：蓝层铺满卡片高度、文字垂直居中 ===================== */
/* pure-panel-fix */
@media (min-width: 821px) {
    /* 卡片：明确高度，作为蓝层的定位基准 */
    #jtPure .jt-pure-big {
        position: relative;
        display: block;
        height: clamp(300px, 42vh, 540px);
        overflow: hidden;
    }

    /* 蓝层：四边拉满（top/bottom 同时为 0），不再依赖 height:100% */
    #jtPure .jt-pure-panel {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: auto;
        height: auto;
        width: 42%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: stretch;
    }

    /* 里面的文字块整体居中，留出与卡片一致的上下呼吸 */
    #jtPure .jt-pure-panel h3 { margin-top: 0; }
}

/* ===================== 超越纯净：改用 flex 布局，蓝层自适应满高（不再用绝对定位百分比） ===================== */
/* pure-panel-flex */
@media (min-width: 821px) {
    #jtPure .jt-pure-big {
        position: relative;
        display: flex;                 /* 蓝层作为 flex 子项，自动拉伸到卡片高度 */
        align-items: stretch;
        height: clamp(320px, 46vh, 560px);
        overflow: hidden;
        border-radius: 6px;
    }

    /* 背景层固定铺满，位于最底层 */
    #jtPure .jt-pure-bgs { position: absolute; inset: 0; z-index: 0; }

    /* 蓝层：正常文档流里的第一列，宽度 42%，高度自动撑满 */
    #jtPure .jt-pure-panel {
        position: relative;
        z-index: 2;
        flex: 0 0 42%;
        width: 42%;
        height: auto;
        top: auto; bottom: auto; left: auto; right: auto;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0 clamp(22px, 2.2vw, 46px);
    }

    /* 标题与说明的间距关系（按设计稿：标题大、留白、说明分三行） */
    #jtPure .jt-pure-panel h3 {
        margin: 0 0 clamp(18px, 2.4vh, 34px);
        font-size: clamp(20px, 1.9vw, 34px);
        letter-spacing: 2px;
        text-align: left;
    }
    #jtPure .jt-pure-panel p {
        margin: 0;
        font-size: clamp(12px, .95vw, 16px);
        line-height: 2.0;
        text-align: left;
        max-width: 92%;
    }

    /* 设计稿里标题下没有短线，隐藏 */
    #jtPure .jt-pure-panel .jt-pure-bar { display: none; }

    /* 点击层在最上，但不挡文字选区 */
    #jtPure .jt-pure-link { position: absolute; inset: 0; z-index: 3; }
}

/* ===================== 超越纯净：卡片 + 蓝色层（最终版，覆盖所有历史规则） ===================== */
/* pure-panel-final */
@media (min-width: 821px) {

    /* ① 卡片框：唯一的“定位框”，尺寸随分辨率变化 */
    #jtPure #jtPureBig {
        position: relative;
        display: block;
        width: auto;
        height: clamp(320px, 46vh, 560px);
        flex: 0 0 clamp(420px, 44vw, 860px);
        overflow: hidden;
        border-radius: 6px;
        background: #dce9f7;
    }

    /* ② 背景层：铺满整个框 */
    #jtPure #jtPureBig .jt-pure-bgs {
        position: absolute;
        inset: 0;
        z-index: 0;
    }

    /* ③ 蓝色层：贴框左边、宽度 40%、高度与框同高 —— 用 !important 压掉旧的
          入场动画（translate -50%）与旧绝对定位（35vw 偏移） */
    #jtPure #jtPurePanel {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        right: auto !important;
        width: 40% !important;
        height: auto !important;
        margin: 0 !important;
        transform: none !important;
        animation: none !important;
        opacity: 1 !important;
        z-index: 2;

        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 0 clamp(22px, 2.2vw, 46px);
        background: linear-gradient(90deg,
            rgba(24, 78, 160, .92) 0%,
            rgba(32, 92, 180, .74) 62%,
            rgba(42, 111, 196, .55) 100%);
        -webkit-backdrop-filter: blur(1.5px);
        backdrop-filter: blur(1.5px);
    }

    #jtPure #jtPurePanel h3 {
        margin: 0 0 clamp(18px, 2.4vh, 34px);
        padding: 0;
        text-align: left;
        font-size: clamp(20px, 1.9vw, 34px);
        font-weight: 500;
        letter-spacing: 2px;
        color: #fff;
    }
    #jtPure #jtPurePanel .jt-pure-bar { display: none !important; }
    #jtPure #jtPurePanel p {
        margin: 0;
        text-align: left;
        font-size: clamp(12px, .95vw, 16px);
        line-height: 2;
        color: rgba(255, 255, 255, .92);
    }

    #jtPure #jtPureBig .jt-pure-link { position: absolute; inset: 0; z-index: 3; }
}

/* ===================== 超越纯净：左区卡片宽度缩小 20%，高度不变 ===================== */
/* pure-big-narrow */
@media (min-width: 821px) {
    #jtPure #jtPureBig {
        flex: 0 0 clamp(336px, 35.2vw, 688px);   /* 原 420~860 的 80% */
    }
}

/* ===================== 超越纯净：右侧轮播区（与左卡等高、底边齐平、右顶到屏幕边） ===================== */
/* pure-strip-fix */
@media (min-width: 821px) {
    /* 两区等高，底边自然齐平 */
    #jtPure .jt-pure-zones { align-items: stretch; }

    /* 右侧可视区：吃掉容器右侧留白，一直铺到屏幕最右 */
    #jtPure .jt-pure-strip {
        flex: 1 1 auto;
        display: flex;
        align-items: stretch;
        gap: clamp(12px, 1.4vw, 28px);
        margin-right: calc((100vw - 100%) / -2);   /* 关键：越过容器右内边距，贴屏幕 */
        padding-right: 0;
        overflow: hidden;
        height: auto;                              /* 高度由两区等高决定 */
    }

    /* 小卡：与左卡同高，标题在上、图片铺满剩余高度 */
    #jtPure .jt-pure-mini {
        flex: 0 0 clamp(180px, 17vw, 330px);
        height: auto;
        align-self: stretch;
        display: flex;
        flex-direction: column;
        padding: 12px 10px 10px;
        background: #fff;
        border-radius: 4px;
        box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
        box-sizing: border-box;
    }
    #jtPure .jt-pure-mini-title {
        flex: 0 0 auto;
        margin: 0 0 8px;
        text-align: center;
        font-size: clamp(14px, 1.05vw, 19px);
        color: #246DCE;
    }
    #jtPure .jt-pure-mini-img {
        flex: 1 1 auto;
        min-height: 0;
        background: var(--pure-img) center center / cover no-repeat;
        border-radius: 2px;
    }
}

/* ===================== 超越纯净：右区小卡图片 1:1、底部与左卡齐平 ===================== */
/* pure-mini-square */
@media (min-width: 821px) {
    /* 卡片靠底边排，取消拉伸 */
    #jtPure .jt-pure-strip { align-items: flex-end; }

    #jtPure .jt-pure-mini {
        height: auto;                  /* 高度由 标题 + 方形图片 决定 */
        align-self: flex-end;          /* 与左侧大卡底边对齐 */
        padding: 12px 10px 0;          /* 底部不再留 12px */
    }

    /* 图片：正方形（宽 = 高） */
    #jtPure .jt-pure-mini-img {
        flex: 0 0 auto;
        width: auto;
        aspect-ratio: 1 / 1;
        min-height: 0;
        margin: 0;
    }
}

/* ===================== 超越纯净：右区整排滑动（丝滑右→左） ===================== */
/* pure-strip-slide */
@media (min-width: 821px) {
    #jtPure .jt-pure-strip {
        will-change: transform;
        transform: translateX(0);
    }
    #jtPure .jt-pure-mini { flex-shrink: 0; }
}

/* ===================== 超越纯净：右区「框固定 + 内容滑动」 ===================== */
/* pure-frames */
@media (min-width: 821px) {
    /* 三个槽位等分右区宽度、等高（= 左卡高度） */
    #jtPure .jt-pure-strip { align-items: stretch; }

    #jtPure .jt-pure-mini {
        position: relative;
        flex: 1 1 0;
        min-width: 0;
        height: auto;
        align-self: stretch;
        padding: 0;
        overflow: hidden;
        background: #fff;
        border-radius: 4px;
        box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
    }

    /* 内容条：两倍长度，整条左移 */
    #jtPure .jt-pure-mini-track {
        display: flex;
        height: 100%;
        width: 100%;
        will-change: transform;
    }

    /* 每一格 = 一个内容单元（标题 + 方图），占满槽位宽度 */
    #jtPure .jt-pure-mini-cell {
        flex: 0 0 100%;
        display: flex;
        flex-direction: column;
        padding: 12px 10px 0;
        box-sizing: border-box;
        text-decoration: none;
    }

    #jtPure .jt-pure-mini-cell .jt-pure-mini-title {
        flex: 0 0 auto;
        margin: 0 0 8px;
        text-align: center;
        font-size: clamp(14px, 1.05vw, 19px);
        color: #246DCE;
    }

    /* 方图：底边贴槽位底边 */
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        flex: 0 0 auto;
        margin-top: auto;
        width: auto;
        aspect-ratio: 1 / 1;
        max-width: 100%;
        max-height: 100%;
        background-size: cover;
        background-position: center center;
        background-repeat: no-repeat;
        border-radius: 2px;
    }
}

/* ===================== 超越纯净：右区图片重新显示（宽度撑满 + 方形贴底） ===================== */
/* pure-frame-imgfix */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini { height: 100%; }        /* 槽位高度跟右区一致 */

    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        width: 100%;                               /* 关键：之前 width:auto 导致宽 0，图片不可见 */
        max-width: 100%;
        max-height: none;
        flex: 0 0 auto;
        margin-top: auto;                          /* 贴槽位底边 */
        aspect-ratio: 1 / 1;
        background: var(--pure-img) center center / cover no-repeat;
        background-color: #dfeaf7;                 /* 图未加载时的兜底底色 */
        border-radius: 2px;
        align-self: stretch;
    }
}

/* ===================== 超越纯净：右区卡片按“标题 + 方图”自然高度，底边与大卡齐平 ===================== */
/* pure-title-trim */
@media (min-width: 821px) {
    /* 槽位靠底排，高度由内容决定（不再撑满整列） */
    #jtPure .jt-pure-strip {
        align-items: flex-end;
    }
    #jtPure .jt-pure-mini {
        height: auto;
        align-self: flex-end;
    }

    /* 内容单元：标题在上、图片紧跟其下，不留大块空白 */
    #jtPure .jt-pure-mini-cell {
        padding: 14px 12px 12px;
    }
    #jtPure .jt-pure-mini-cell .jt-pure-mini-title {
        margin: 0 0 12px;
    }
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        margin-top: 0;          /* 关键：取消“推开到底部”，标题下方紧接图片 */
        width: 100%;
        aspect-ratio: 1 / 1;
    }
}

/* ===================== 超越纯净：滑动更轻柔（可回滚，备份见 _bak） ===================== */
/* pure-soft */
@media (min-width: 821px) {
    #jtPure .jt-pure-bg {
        transition: transform 1s cubic-bezier(.45, .05, .25, 1);
    }
    #jtPure .jt-pure-panel h3,
    #jtPure .jt-pure-panel p {
        transition: opacity .45s ease;
    }
}

/* ===================== 超越纯净：彻底禁止“左→右”横扫 ===================== */
/* pure-far-fix */
@media (min-width: 821px) {
    /* 只给参与“进出”的两类元素加过渡 */
    #jtPure .jt-pure-bg.is-cur,
    #jtPure .jt-pure-bg.is-prev,
    #jtPure .jt-pure-bg.is-next {
        transition: transform 1s cubic-bezier(.45, .05, .25, 1);
    }

    /* 远端（不相邻）的背景：必须瞬时归位，禁止任何过渡动画
       —— 权重高于 #jtPure .jt-pure-bg，并使用 !important 兜底 */
    #jtPure .jt-pure-bg.is-far {
        transform: translateX(100%) !important;
        transition: none !important;
        animation: none !important;
        opacity: 1;
    }
}

/* ===================== 超越纯净：标题一行显示，文字区更宽 ===================== */
/* pure-title-nowrap */
@media (min-width: 821px) {
    /* 蓝层稍微加宽（40% → 46%），内边距收紧，给标题更多横向空间 */
    #jtPure #jtPurePanel {
        width: 46% !important;
        padding: 0 clamp(14px, 1.5vw, 30px) !important;
    }

    /* 标题：不换行 + 字号略收，保证 5 个字一行放得下 */
    #jtPure #jtPurePanel h3 {
        white-space: nowrap;
        font-size: clamp(17px, 1.35vw, 24px);
        letter-spacing: 1px;
        margin-bottom: clamp(14px, 2vh, 26px);
    }

    /* 正文：行宽放宽到 100%，减少换行 */
    #jtPure #jtPurePanel p {
        max-width: 100%;
        font-size: clamp(12px, .95vw, 16px);
        line-height: 1.95;
    }
}

/* ===================== 超越纯净：右区小卡去掉底部内留白，图片底边与左区齐平 ===================== */
/* pure-mini-bottom0 */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini-cell {
        padding: 14px 12px 0;          /* 底部不留 12px */
    }
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        margin-bottom: 0;
        border-radius: 2px 2px 0 0;    /* 只保留上方圆角，底部与卡片底边齐平 */
    }
    /* 卡片本身不再做底部内边距，图片直接贴到卡片下沿 */
    #jtPure .jt-pure-mini { padding-bottom: 0; }
}

/* ===================== 超越纯净：小卡外框左/上/右三面投影（底部齐平不投影） ===================== */
/* pure-mini-shadow */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini {
        box-shadow:
            -10px 0 22px -8px rgba(20, 60, 110, .28),   /* 左 */
              0 -10px 22px -8px rgba(20, 60, 110, .22),  /* 上 */
             10px 0 22px -8px rgba(20, 60, 110, .28);   /* 右 */
    }
}

/* ===================== 超越纯净：右区不再裁掉第一张卡左侧的投影 ===================== */
/* pure-shadow-clip */
@media (min-width: 821px) {
    /* 槽位本身仍然裁掉内部滑动内容，但整条右区允许投影外溢 */
    #jtPure .jt-pure-strip {
        overflow: visible;
        padding-left: 4px;        /* 给左侧投影留一点余量 */
    }
    #jtPure .jt-pure-mini { overflow: hidden; }   /* 卡片内部仍裁剪（圆角/图片） */
}

/* ===================== 超越纯净：恢复小卡原有尺寸（overflow 可见导致被撑大） ===================== */
/* pure-strip-size-fix */
@media (min-width: 821px) {
    /* overflow:visible 会让 flex 项的 min-width:auto 取内容宽度，从而把右区撑宽；
       这里显式 min-width:0，宽度仍由 flex 分配 */
    #jtPure .jt-pure-strip {
        min-width: 0;
        max-width: none;
        padding-left: 0;        /* 之前的 4px 也去掉，宽度回到原来 */
    }

    /* 卡片：宽度按等分，不再被内容撑开 */
    #jtPure .jt-pure-mini {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }
}

/* ===================== 超越纯净：小卡图片左右贴边（去掉 12px 内留白） ===================== */
/* pure-mini-fullwidth */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini-cell {
        padding: 14px 0 0;         /* 左右归零，仅保留标题上方的留白 */
    }
    #jtPure .jt-pure-mini-cell .jt-pure-mini-title {
        padding: 0 10px;           /* 标题仍留内边距，避免贴边 */
    }
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        border-radius: 0;          /* 图片四角贴齐卡片边角，由卡片圆角裁剪 */
    }
}

/* ===================== 超越纯净：所有分辨率按同一比例放大（不再有 1760 上限） ===================== */
/* pure-scale-all */
@media (min-width: 821px) {
    /* 容器：跟视口等比，最高到 2800（4K 也不至于铺满到失真） */
    #jtPure .jt-pure-inner {
        max-width: min(2800px, 94vw);
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }

    /* 大卡：宽度按容器百分比，高度用固定比例（16:10 左右），整体等比 */
    #jtPure #jtPureBig {
        flex: 0 0 36%;
        width: auto;
        height: auto;
        aspect-ratio: 1.6 / 1;
    }

    /* 右区间距随视口放大 */
    #jtPure .jt-pure-strip {
        gap: clamp(12px, 1.2vw, 40px);
    }

    /* 大卡内文字随视口等比 */
    #jtPure #jtPurePanel h3 {
        font-size: clamp(18px, 1.3vw, 34px);
    }
    #jtPure #jtPurePanel p {
        font-size: clamp(12px, .85vw, 20px);
        line-height: 1.95;
    }
}

/* ===================== 超越纯净：恢复“左大卡高、右小卡矮”的高度关系 ===================== */
/* pure-big-height-restore */
@media (min-width: 821px) {
    /* 左区大卡：高度按视口，上限提到 780（4K 下继续变高），不再用正方形比例 */
    #jtPure #jtPureBig {
        aspect-ratio: auto;
        height: clamp(320px, 46vh, 780px);
        flex: 0 0 36%;
    }

    /* 右区小卡：高度由「标题 + 方图」决定，明显比大卡矮 */
    #jtPure .jt-pure-mini {
        height: auto;
        align-self: flex-end;
    }
}

/* ===================== 超越纯净：恢复之前确认过的尺寸（大卡矩形 + 小卡偏小） ===================== */
/* pure-restore-size */
@media (min-width: 821px) {
    /* 容器：回到 1760 的观感，但仍保留 94vw 随视口 */
    #jtPure .jt-pure-inner {
        max-width: min(2100px, 94vw);   /* 1920 及以下不变（1760），4K 才放宽一些 */
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }

    /* 左区大卡：宽度 35.2vw（原 -20% 后的值），高度按视口，横向矩形 */
    #jtPure #jtPureBig {
        /* 宽度取「35.2vw」与「容器 42%」的较小值，避免容器封顶后大卡仍在变大 */
        flex: 0 0 max(336px, min(35.2vw, 42%, 900px));
        width: auto;
        height: clamp(320px, 46vh, 700px);
        aspect-ratio: auto;
    }

    /* 右区：间距恢复；小卡等分剩余宽度（因此比大卡窄很多） */
    #jtPure .jt-pure-strip {
        gap: clamp(12px, 1.4vw, 32px);
    }
    #jtPure .jt-pure-mini {
        flex: 1 1 0;
        min-width: 0;
        height: auto;
        align-self: flex-end;
    }
}

/* ===================== 超越纯净：左区大卡加宽（高度不变） ===================== */
/* pure-big-wider */
@media (min-width: 821px) {
    #jtPure #jtPureBig {
        /* 35.2vw → 40vw；容器占比 42% → 47%；上限 900 → 1040 */
        flex: 0 0 max(380px, min(40vw, 47%, 1040px));
    }
}

/* ===================== 超越纯净：左区大卡宽高等比例放大 10% ===================== */
/* pure-big-10 */
@media (min-width: 821px) {
    #jtPure #jtPureBig {
        flex: 0 0 max(418px, min(44vw, 52%, 1150px));   /* 宽 +10% */
        height: clamp(352px, 50.6vh, 770px);            /* 高 +10% */
    }
}

/* ===================== 超越纯净：右区允许第 4 张露出部分 ===================== */
/* pure-slots4 */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini {
        /* 按右区宽度取 38%：可视区里 2 张完整 + 第 3 张露出约一半 */
        flex: 0 0 38%;
        min-width: 0;
    }
    #jtPure .jt-pure-strip {
        gap: clamp(10px, 1.2vw, 28px);
    }
}

/* ===================== 超越纯净：右区小卡整体缩小 15% ===================== */
/* pure-mini-shrink15 */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini {
        /* 38% → 32.3%（-15%）；高度由「标题 + 方图」自动跟随缩小 */
        flex: 0 0 32.3%;
        min-width: 0;
    }
    /* 方图宽 = 卡片内容宽，卡片变窄后图片同步缩小；底部仍贴卡片底边 */
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        width: 100%;
        aspect-ratio: 1 / 1;
    }
}

/* ===================== 超越纯净：卡项标题加大加粗（更醒目） ===================== */
/* pure-title-bold */
@media (min-width: 821px) {
    /* 大卡（蓝层）标题 */
    #jtPure #jtPurePanel h3 {
        font-size: clamp(22px, 1.75vw, 40px);
        font-weight: 700;
        letter-spacing: 2px;
        text-shadow: 0 2px 10px rgba(6, 30, 66, .28);
    }

    /* 右区小卡标题（内容单元里的 title） */
    #jtPure .jt-pure-mini-cell .jt-pure-mini-title,
    #jtPure .jt-pure-mini-title {
        font-size: clamp(17px, 1.28vw, 25px);
        font-weight: 700;
        letter-spacing: .5px;
        color: #1a63b8;
    }
}

/* ===================== 内页头图文字（2026-11-05 恢复显示） =====================
   原「文字直接做在图片里」的方案已取消：现在头图统一叠文字
   —— 上面是栏目名，下面是栏目头图标题（后台用 | 作换行）。
   这段只做「显示」兜底，具体字号见文件末尾 pagehead-text 段。 */
.jt-pagehead.jt-pagehead--image .jt-pagehead-inner > * {
    display: block;                            /* 取消之前的 display:none */
}
.jt-pagehead.jt-pagehead--image .jt-pagehead-inner h1 {
    position: static !important;
    width: auto; height: auto;
    /* 2026-11-05：这里不再写 margin —— 否则 .jt-pagehead--image 下特异性更高，
       会把末尾统一设置的 margin-left: 10.5% 清成 0（标题贴左）。 */
    padding: 0; border: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
}

/* ===================== 超越纯净：右区小卡副标题样式 ===================== */
/* pure-mini-sub */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini-cell .jt-pure-mini-sub {
        display: block;
        margin: 0 0 10px;
        padding: 0 2px;
        text-align: center;
        font-size: clamp(11px, .78vw, 14px);
        line-height: 1.6;
        color: #6b8aa8;
    }
}

/* ===================== 超越纯净：右区小卡恢复原样（无副标题、图片贴底） ===================== */
/* mini-reset-3 */
@media (min-width: 821px) {
    /* 卡片本体不留任何内边距 */
    #jtPure .jt-pure-mini {
        padding: 0;
        height: auto;
        align-self: flex-end;
        overflow: hidden;
    }

    /* 内容条顶部对齐，避免被拉伸产生空白 */
    #jtPure .jt-pure-mini-track {
        align-items: flex-start;
        height: auto;
    }

    /* 单个内容单元：上方留 12px 放标题，其余留给图片 */
    #jtPure .jt-pure-mini-cell {
        padding: 12px 0 0;
        justify-content: flex-start;
    }

    /* 不显示副标题 */
    #jtPure .jt-pure-mini-sub { display: none !important; }

    /* 图片：紧接标题、宽度撑满、底边贴住卡片底边 */
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img {
        margin: 0;
        width: 100%;
        max-width: 100%;
        max-height: none;
        flex: 0 0 auto;
        aspect-ratio: 1 / 1;
        border-radius: 0;
        background: var(--pure-img) center center / cover no-repeat;
        background-color: #dfeaf7;
    }
}

/* ===================== 导航条随分辨率等比缩放 ===================== */
/* header-fluid */
@media (min-width: 821px) {
    /* 头部高度：1080 屏 76px，1920 屏约 80px，2560 屏约 108px */
    :root {
        --jt-header-h: clamp(76px, 4.2vw, 112px);
    }

    .jt-header-inner {
        height: var(--jt-header-h);
        gap: clamp(18px, 1.6vw, 44px);
    }

    /* Logo */
    .jt-logo img { height: clamp(42px, 2.2vw, 66px); }
    .jt-logo-text { font-size: clamp(19px, 1.05vw, 30px); }

    /* 导航 */
    .jt-nav-list { gap: clamp(4px, .45vw, 12px); }
    .jt-nav-list > li > a {
        padding: clamp(9px, .62vw, 18px) clamp(12px, .95vw, 26px);
        font-size: clamp(15px, .85vw, 22px);
    }

    /* 导航下拉面板同步放大 */
    .jt-sub > li > a {
        font-size: clamp(13.5px, .78vw, 19px);
        padding: clamp(8px, .6vw, 15px) clamp(14px, 1vw, 24px);
    }
}

/* ===================== 4K / 超宽屏：中间内容区加宽、两侧留白收窄 ===================== */
/* rd-scale-4k */
@media (min-width: 2560px) {
    /* 容器从 2000 → 2400，中间内容占比从约 65% 提到约 78% */
    :root { --jt-max: 2400px; }

    .jt-active-wrap,
    .jt-hs-about .jt-hs-inner,
    .jt-rd-grid,
    .jt-rd-marquee,
    .jt-brand-stage,
    .jt-hero-body { max-width: 2400px; }

    .jt-patent-card { max-width: 2500px; }

    /* 10 大科研中心：标题、卡片、图片同步放大 */
    .jt-rd-head { margin-bottom: 40px; padding-left: 10px; }
    .jt-rd-head h2 { font-size: clamp(40px, 2.6vw, 68px); letter-spacing: 4px; }

    .jt-rd-track { gap: 28px; }
    .jt-rd-marquee .jt-rd-card {
        flex: 0 0 calc((100% - 84px) / 4);      /* 4 张 + 3 个 28px 间距 */
        border-radius: 22px;
    }
    .jt-rd-marquee .jt-rd-media { height: clamp(380px, 26vh, 560px); }
    .jt-rd-marquee .jt-rd-card h3 {
        font-size: clamp(20px, 1.1vw, 28px);
        padding: 26px 18px;
    }
}

/* ===================== 页脚：随分辨率等比放大 ===================== */
/* ft-fluid */
@media (min-width: 821px) {
    /* 整体字号 */
    .jt-ft { font-size: clamp(13.5px, .72vw, 20px); }

    /* 布局：内边距、列间距、左栏宽度 */
    .jt-ft-main {
        gap: clamp(40px, 3.2vw, 120px);
        padding: clamp(48px, 3.2vw, 110px) 20px clamp(36px, 2.4vw, 84px);
    }
    .jt-ft-brand {
        flex: 0 0 clamp(280px, 19vw, 560px);
        max-width: clamp(280px, 19vw, 560px);
    }

    /* Logo */
    .jt-ft-logo img { height: clamp(40px, 2.1vw, 72px); width: auto; }
    .jt-ft-logo-txt { font-size: clamp(18px, 1vw, 28px); }
    .jt-ft-logo-txt em { font-size: clamp(9px, .5vw, 14px); }

    /* 列标题 / 链接 / 联系方式 */
    .jt-ft-col h4,
    .jt-ft h4 {
        font-size: clamp(14.5px, .8vw, 22px);
        margin-bottom: clamp(12px, .9vw, 24px);
    }
    .jt-ft ul li,
    .jt-ft p,
    .jt-ft a,
    .jt-ft-contact li {
        font-size: clamp(13px, .72vw, 19px);
        line-height: 1.85;
    }
    .jt-ft ul li { margin-bottom: clamp(6px, .55vw, 14px); }

    /* 二维码 */
    .jt-ft-qr img {
        width: clamp(110px, 5.4vw, 172px);
        height: auto;
    }
    .jt-ft-qr p { font-size: clamp(12px, .65vw, 17px); margin-top: clamp(8px, .6vw, 16px); }

    /* 底部备案行 */
    .jt-ft-bottom {
        font-size: clamp(12px, .62vw, 17px);
        padding: clamp(14px, 1.1vw, 28px) 0;
    }
    .jt-ft-bottom .jt-container { gap: clamp(16px, 1.2vw, 32px); }
}

/* ===================== 页脚：高分屏再加一档（字更大、布局更紧凑） ===================== */
/* ft-fluid-2 */
@media (min-width: 821px) {
    /* 字号比例从 .72vw 提高到 .92vw：3072 宽时约 28px（原 20px） */
    .jt-ft { font-size: clamp(13.5px, .92vw, 30px); }

    .jt-ft-col h4,
    .jt-ft h4 {
        font-size: clamp(15px, 1vw, 32px);
        margin-bottom: clamp(12px, .8vw, 22px);
    }
    .jt-ft ul li,
    .jt-ft p,
    .jt-ft a,
    .jt-ft-contact li {
        font-size: clamp(13.5px, .92vw, 28px);
        line-height: 1.75;
    }
    .jt-ft ul li { margin-bottom: clamp(6px, .45vw, 13px); }

    /* 布局收紧：列间距、左栏宽度不再无限变宽 */
    .jt-ft-main {
        gap: clamp(36px, 2.2vw, 84px);
        padding: clamp(46px, 2.6vw, 96px) 20px clamp(34px, 2vw, 72px);
    }
    .jt-ft-brand {
        flex: 0 0 clamp(280px, 15vw, 470px);
        max-width: clamp(280px, 15vw, 470px);
    }

    /* Logo / 二维码 */
    .jt-ft-logo img { height: clamp(40px, 2vw, 70px); }
    .jt-ft-qr img { width: clamp(110px, 6vw, 190px); height: auto; }
    .jt-ft-qr p { font-size: clamp(12px, .8vw, 24px); }

    /* 底部备案行 */
    .jt-ft-bottom {
        font-size: clamp(12px, .78vw, 24px);
        padding: clamp(14px, .95vw, 26px) 0;
    }
}

/* ===================== 页脚：修正版权行字号、导航列均分、子项放大 ===================== */
/* ft-fluid-3 */
@media (min-width: 821px) {
    /* 1) 版权 / 备案行：之前被 .jt-ft-bottom .jt-container 的 12.5px 覆盖，这里同权重后写 */
    .jt-ft-bottom .jt-container {
        font-size: clamp(12.5px, .78vw, 24px);
        gap: clamp(10px, .9vw, 26px);
    }
    .jt-ft-bottom { padding: clamp(14px, .95vw, 28px) 0; }

    /* 2) 中段导航：一条一列，等分一行（列数由 footer.php 输出 --ft-cols）
          justify-items: center → 每列按自身文字宽度居中，相邻一级导航的视觉间距因此一致 */
    .jt-ft-nav {
        display: grid;
        grid-template-columns: repeat(var(--ft-cols, 6), minmax(0, 1fr));
        justify-items: center;
        justify-content: flex-start;
        gap: 0 clamp(10px, 1.2vw, 76px);
        align-items: start;
    }
    .jt-ft-nav > .jt-ft-col {
        min-width: 0;
        max-width: 100%;       /* 居中收缩后也不会宽出本列 */
        text-align: left;
    }

    /* 3) 子级链接单独放大（父级 .jt-ft a 压不过 .jt-ft-col ul li a） */
    .jt-ft-col ul li a,
    .jt-ft-col ul li span {
        font-size: clamp(13.5px, .88vw, 26px);
        line-height: 1.7;
    }
    .jt-ft-toplinks a { font-size: clamp(14px, .95vw, 28px); }
    .jt-ft-toplinks { gap: clamp(18px, 1.6vw, 48px); }

    /* 4) 联系方式逐行放大 */
    .jt-ft-contact { line-height: 1.9; }
    .jt-ft-contact li { font-size: clamp(13.5px, .9vw, 26px); }
}

/* ===================== 导航条：大分辨率下再放大一档 ===================== */
/* header-fluid-2 */
@media (min-width: 821px) {
    :root {
        /* 1080 屏约 56px → 1920 屏约 100px → 2560 以上 150px */
        --jt-header-h: clamp(76px, 5.2vw, 150px);
    }

    .jt-header-inner {
        height: var(--jt-header-h);
        gap: clamp(20px, 1.8vw, 56px);
    }

    .jt-logo img { height: clamp(44px, 2.8vw, 96px); width: auto; }
    .jt-logo-text { font-size: clamp(20px, 1.2vw, 40px); }

    /* 导航文字 */
    .jt-nav-list { gap: clamp(6px, .6vw, 20px); }
    .jt-nav-list > li > a {
        padding: clamp(10px, .78vw, 28px) clamp(14px, 1.15vw, 36px);
        font-size: clamp(15px, 1.05vw, 30px);
    }

    /* 下拉子项同步 */
    .jt-sub > li > a {
        font-size: clamp(14px, .9vw, 24px);
        padding: clamp(8px, .7vw, 18px) clamp(14px, 1vw, 28px);
    }

    /* 电话号码等右侧元素 */
    .jt-tel { font-size: clamp(14px, .95vw, 26px); }
}

/* ===================== 活性未来：大分辨率内容更靠左、字号等比放大 ===================== */
/* active-4k */
@media (min-width: 1200px) {
    /* 容器加宽 → 左侧留白从 656px 收窄到约 236px（3072 视口） */
    #jtActive .jt-active-wrap {
        max-width: min(2600px, 96vw);
        gap: clamp(48px, 5vw, 150px);
    }

    /* 左栏（时间轴）占更多宽度，文字每行可容纳更多字 */
    #jtActive .jt-active-timeline { flex: 0 0 clamp(560px, 54%, 1320px); }

    /* 普通条目 */
    #jtActive .jt-tl-year  { font-size: clamp(16px, 1.05vw, 32px); }
    #jtActive .jt-tl-title { font-size: clamp(17px, 1.2vw, 36px); }
    #jtActive .jt-tl-text  { font-size: clamp(14px, .95vw, 28px); }

    /* 主展示（第 2 条）大一号 */
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-year  { font-size: clamp(17px, 1.15vw, 34px); }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-title { font-size: clamp(18px, 1.3vw, 38px); }
    #jtActive #jtTl.is-ticker > li.is-active .jt-tl-text  { font-size: clamp(15px, 1.05vw, 30px); }

    /* 右侧拱形内的大标题 */
    #jtActive .jt-active-titles h2 { font-size: clamp(34px, 2.6vw, 76px); }
    #jtActive .jt-active-titles p  { font-size: clamp(15px, 1.1vw, 32px); }

    /* 词条间距随字号放大，避免挤在一起 */
    #jtActive #jtTl.is-ticker > li { margin-bottom: clamp(26px, 2vw, 56px); }
}

/* ===================== 超越纯净：小卡图片只铺一张、按比例裁切，禁止重复平铺 ===================== */
/* mini-img-norepeat */
@media (min-width: 821px) {
    #jtPure .jt-pure-mini-cell .jt-pure-mini-img,
    #jtPure .jt-pure-mini-img {
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-position: center center !important;
        background-attachment: scroll !important;
    }

    /* 大卡背景层同样兜底 */
    #jtPure .jt-pure-bg {
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-position: center center !important;
    }
}

/* ===================== 专利成果：2560 宽屏下证书不再压住说明文字、标题更靠左 ===================== */
/* patent-2560 */
@media (min-width: 2560px) {
    /* 取消 stage 的 1.1 倍缩放（缩放不改布局高度，会让证书压到下方文字），
       改为直接把证书尺寸做大 */
    .jt-patent .jt-patent-stage {
        transform: none;
        --pcw: clamp(360px, 21vw, 640px);
        height: calc(var(--pcw) * 1.42);
    }
    .jt-patent .jt-patent-item {
        --pcw: clamp(360px, 21vw, 640px);
    }

    /* 说明文字与证书之间留出稳定间距 */
    .jt-patent .jt-patent-caption {
        padding-top: clamp(14px, 1vw, 26px);
        font-size: clamp(16px, .95vw, 26px);
    }

    /* 「专利成果」标题往左移（减小卡片左内边距） */
    .jt-patent .jt-patent-card {
        padding-left: clamp(36px, 2.2vw, 96px);
        padding-right: clamp(36px, 2.2vw, 96px);
    }
    .jt-patent .jt-patent-label {
        font-size: clamp(30px, 1.75vw, 56px);
        min-width: clamp(150px, 8vw, 240px);
    }
}

/* ===================== 首页版块：主标题 / 副标题字号全站统一 ===================== */
/* unify-section-titles */
@media (min-width: 821px) {
    :root {
        /* 主标题基准：与「超越纯净」一致 */
        --jt-sec-h2: clamp(34px, 3.2vw, 50px);
        /* 副标题基准：与「活性未来 · 专注于细胞生物活性 36 年」一致 */
        --jt-sec-sub: clamp(15px, 1.1vw, 32px);
    }

    /* —— 主标题 —— */
    #jtActive .jt-active-titles h2,      /* 活性未来 */
    .jt-patent .jt-patent-label,          /* 专利成果 */
    body.jt-page-home .jt-rd-head h2,     /* 10 大科研中心 */
    #jtBrand .jt-hs-head h2,              /* 旗下品牌 */
    #jtAbout .jt-about-head h2,           /* 企业介绍 */
    #jtPure .jt-pure-head h2 {            /* 超越纯净（基准） */
        font-size: var(--jt-sec-h2) !important;
        line-height: 1.25;
    }

    /* —— 副标题 —— */
    #jtActive .jt-active-titles p,        /* 专注于细胞生物活性 36 年（基准） */
    #jtPure .jt-pure-head p {             /* 无添加标准体系 */
        font-size: var(--jt-sec-sub) !important;
        line-height: 1.5;
    }
}

/* ===================== 超越纯净 · 右区方案 B：外框一起滑动 ===================== */
/* pure-reel-slide */
@media (min-width: 821px) {
    /* 可视窗口：高度撑满右区，卡片靠底边；裁掉滑出边界的卡片 */
    #jtPure .jt-pure-strip {
        display: flex;
        align-items: flex-end;          /* 轨道整体贴住右区底边 */
        /* 不要写 height:100%：父级高度是内容撑开的，百分比会退化成 auto，
           反而让右区缩成内容高度。靠 flex 的 stretch 自动与左卡等高即可 */
        min-height: 0;
        overflow: hidden;
        padding-left: 0;
        padding-right: 0;
    }

    /* 轨道：四张卡并排，整条一起平移 */
    #jtPure .jt-pure-reel {
        display: flex;
        align-items: flex-end;          /* 卡片之间底边对齐 */
        width: 100%;
        gap: clamp(12px, 1.2vw, 28px);
        will-change: transform;
    }

    /* 轨道里的每一张卡 = 一个完整白框（含外框一起动） */
    #jtPure .jt-pure-reel > .jt-pure-mini {
        flex: 0 0 32.3%;
        min-width: 0;
        height: auto;
        align-self: flex-end;
        display: flex;
        flex-direction: column;
        padding: 0;
        background: #fff;
        border-radius: 6px;
        overflow: hidden;
        box-shadow: 0 10px 26px rgba(20, 60, 110, .10);
    }

    #jtPure .jt-pure-reel > .jt-pure-mini .jt-pure-mini-title {
        flex: 0 0 auto;
        margin: 0;
        padding: 14px 10px 10px;
        text-align: center;
        font-size: clamp(15px, 1.05vw, 22px);
        font-weight: 700;
        color: #246DCE;
    }

    #jtPure .jt-pure-reel > .jt-pure-mini .jt-pure-mini-img {
        flex: 1 1 auto;
        min-height: 190px;
        margin: 0 12px 12px;
        border-radius: 2px;
        background: var(--pure-img) center center / cover no-repeat;
        background-color: #dfeaf7;
    }
}

/* ===================== 活性未来：时间轴滑动更顺滑（无抖动） ===================== */
/* tl-smooth */
@media (min-width: 821px) {
    #jtActive #jtTl.is-ticker {
        will-change: transform;
        -webkit-backface-visibility: hidden;
        backface-visibility: hidden;
        transform: translateZ(0);          /* 走 GPU 合成，减少逐帧重绘 */
        transition-timing-function: cubic-bezier(.33, 0, .2, 1);
    }

    /* 条目内部不要触发额外重排动画（不能用 contain:paint，会裁掉 li 外的空心圆点） */
    #jtActive #jtTl.is-ticker > li {
        contain: layout;
    }

    /* 拖动时禁止文字选中，避免拖出蓝色选区导致视觉跳动 */
    #jtActive .jt-active-timeline.is-dragging { user-select: none; }
}

/* ===================== 活性未来：连续向上滚动（中间项放大） ===================== */
/* tl-float */
@media (min-width: 821px) {
    /* 定位基准：JS 用 offsetTop 计算每条位置 */
    #jtActive #jtTl.is-float { position: relative; }

    /* 每帧由 JS 写 transform / opacity，这里关掉过渡避免“拖尾” */
    #jtActive #jtTl.is-float > li {
        transition: none !important;
        transform-origin: left center;
        will-change: transform, opacity;
        contain: none;                 /* 取消裁剪，放大时才不会被切 */
    }

    /* 焦点项：圆点加重（不改变字号，避免布局跳动） */
    #jtActive #jtTl.is-float > li.is-focus::before {
        border-color: rgba(22, 57, 92, .9);
        background: #fff !important;
    }

    /* 连续滚动模式下不再使用“第二项固定放大”的样式 */
    #jtActive #jtTl.is-float > li.is-active {
        transform: none !important;
        opacity: inherit !important;
    }
}

/* ===================== 活性未来：连续滚动的窗口高度 ===================== */
/* tl-float-window */
@media (min-width: 821px) {
    /* 连续滚动模式（当前已停用，保留以便后续启用） */
    #jtActive #jtTl.is-float {
        height: clamp(420px, 62vh, 760px) !important;
        max-height: clamp(420px, 62vh, 760px);
        min-height: 0;
        overflow: hidden;
        align-self: center;
    }
}

/* ===================== 活性未来：固定窗口 + 内容在窗口内上移 ===================== */
/* tl-viewport-fixed */
@media (min-width: 821px) {
    /* 窗口：位置/高度固定，只有里面的内容滚动；左侧留出圆点空间 */
    #jtActive .jt-tl-view {
        position: relative;
        overflow: hidden;
        margin-left: -26px;      /* 抵消下面的 padding，文字位置与原来一致 */
        padding-left: 26px;      /* 圆点（left:-25.5px）落在可视区内，不会被裁 */
        width: calc(100% + 26px);
    }

    /* 列表本身不再裁剪、不再定高：它整体在窗口里平移 */
    #jtActive #jtTl.is-ticker {
        overflow: visible !important;
        height: auto !important;
        padding-left: 0 !important;
        will-change: transform;
    }
}

/* ===================== 活性未来：连续滚动模式修正 ===================== */
/* tl-float-dotfix */
@media (min-width: 821px) {
    /* 列表本身不定高、不裁剪（高度由外层窗口控制） */
    #jtActive #jtTl.is-float {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    /* 空心圆点：确保不被裁剪，位置贴竖线 */
    #jtActive #jtTl.is-float > li::before,
    #jtActive #jtTl.is-ticker > li::before {
        display: block !important;
        left: -25.5px !important;
        top: 7px;
        width: 11px; height: 11px;
        border-radius: 50%;
        background: #fff !important;
        border: 2px solid rgba(22, 57, 92, .55);
    }

    /* 焦点项圆点加深 */
    #jtActive #jtTl.is-float > li.is-focus::before {
        border-color: rgba(22, 57, 92, .9);
    }

    /* 窗口稍微左移，给圆点留出空间（避免贴边被裁一半） */
    #jtActive .jt-tl-view {
        margin-left: -30px;
        padding-left: 30px;
        width: calc(100% + 30px);
    }
}

/* ===================== 活性未来：文字右移、空心圆与竖线严格同心 ===================== */
/* tl-dot-align2 */
@media (min-width: 821px) {
    /* 文字起始位置：原来 30px → 56px（整体右移 26px）；圆点仍钉在竖线上 */
    #jtActive .jt-tl-view {
        --jt-tl-pad: 56px;                                  /* 文字离竖线的距离 */
        --jt-rail-x: 6px;                                   /* 竖线横坐标（与 .jt-tl-rail 一致） */
        --jt-dot-d: 11px;                                   /* 圆点直径 */
        /* 不要用负 margin 抵消 padding：负 margin 会把窗口整体左移，
           圆点被推到窗口外 → 看起来“圆点消失”。窗口从左边缘开始即可。 */
        margin-left: 0;
        padding-left: var(--jt-tl-pad);
        width: 100%;
        overflow: hidden;
    }

    /* 圆点圆心 = 竖线横坐标（水平居中于竖线） */
    #jtActive #jtTl.is-float > li::before,
    #jtActive #jtTl.is-ticker > li::before {
        display: block !important;
        left: calc(var(--jt-rail-x) - var(--jt-dot-d) / 2 - var(--jt-tl-pad)) !important;
        top: 6px;
        width: var(--jt-dot-d);
        height: var(--jt-dot-d);
        border-radius: 50%;
        background: #fff !important;
        border: 2px solid rgba(22, 57, 92, .55);
        box-sizing: border-box;
    }

    /* 焦点项：描边加深，仍保持同心（不再做 scale，避免圆心偏移） */
    #jtActive #jtTl.is-float > li.is-focus::before {
        border-color: rgba(22, 57, 92, .9);
        transform: none;
    }

    /* 竖线位置固定，保证与上面的计算一致 */
    #jtActive .jt-tl-rail { left: 6px; }
}

/* ===================== 活性未来：右侧文字不再被裁（放大项溢出问题） ===================== */
/* tl-text-clipfix */
@media (min-width: 821px) {
    /* 中间项会放大到 1.06 倍，如果 li 占满整宽，放大后右侧就会超出窗口被裁。
       这里让 li 只占 93%，放大 1.06 后仍在窗口内（93 × 1.06 ≈ 98.6%）。 */
    #jtActive #jtTl.is-float > li,
    #jtActive #jtTl.is-ticker > li {
        width: 93%;
        max-width: 93%;
        box-sizing: border-box;
        word-break: break-word;
        overflow-wrap: break-word;
    }

    /* 窗口右侧再留一点余量，避免亚像素舍入把最后一笔切掉 */
    #jtActive .jt-tl-view {
        padding-right: 8px;
    }

    /* 列表本身不要超出窗口宽度 */
    #jtActive #jtTl.is-float,
    #jtActive #jtTl.is-ticker {
        width: 100%;
        max-width: 100%;
    }
}

/* ===================== 活性未来：大分辨率下加高滚动窗口，减少下方空白 ===================== */
/* tl-window-tall */
@media (min-width: 821px) {
    /* 窗口高度按视口高度取（约 3/4 屏），高分屏能多看 2~3 条，底部空白明显变小 */
    #jtActive .jt-tl-view {
        height: clamp(460px, 76vh, 1500px) !important;
        max-height: clamp(460px, 76vh, 1500px) !important;
        margin-top: 0;
    }
}

/* ===================== 企业介绍：中小分辨率收紧行距，文字不压楼体 ===================== */
/* about-mid-lh */
@media (min-width: 821px) and (max-width: 1599px) {
    /* 字号与行距都收一档，整段更紧凑 */
    #jtAbout .jt-about-text {
        font-size: clamp(13.5px, 1vw, 17px);
        line-height: 1.82;
        max-width: min(720px, 100%);
    }
    #jtAbout .jt-about-text p { margin-bottom: clamp(9px, 1.2vh, 16px); }

    /* 底部留白 = 楼体高度 + 余量，文字永远停在楼顶上方 */
    #jtAbout .jt-hs-inner {
        padding-bottom: calc(40vh + var(--jt-header-h) + 24px) !important;
    }

    /* 矮屏再紧一点（900px 以下高度） */
    @media (max-height: 900px) {
        #jtAbout .jt-about-text { font-size: clamp(13px, .95vw, 15.5px); line-height: 1.75; }
        #jtAbout .jt-about-text p { margin-bottom: 8px; }
        #jtAbout .jt-about-head h2 { margin-bottom: 14px; }
    }
}

/* ===================== 企业介绍：去掉按钮后行距再放宽 ===================== */
/* about-lh-loosen */
@media (min-width: 821px) {
    #jtAbout .jt-about-text {
        line-height: 2.0;                 /* 1.82 → 2.0，更舒展 */
    }
    #jtAbout .jt-about-text p {
        margin-bottom: clamp(12px, 1.5vh, 20px);
    }

    /* 行距变大、文字变高，底部避让同步加大，仍不压楼体 */
    #jtAbout .jt-hs-inner {
        padding-bottom: calc(40vh + var(--jt-header-h) + 40px) !important;
    }

    /* 按钮已移除，容器不再需要下边距 */
    #jtAbout .jt-about-more { display: none !important; }
}

/* ============================================================================
   pagehead-ratio ｜ 内页头图改为「等比缩放」（与专题页版块同一思路）
   ----------------------------------------------------------------------------
   原来：min-height: 340px（固定 px）→ 屏幕越宽，头图越扁、背景裁得越多。
   现在：高度 = 宽度 ÷ 比例（默认 4:1，对应 1920×480 的切图），
        任何分辨率下头图与背景都是同一比例，文字/蒙层位置不会漂移。
   ----------------------------------------------------------------------------
   想换比例：只改 --jt-ph-aspect（例如切图 1920×600 → 3.2 / 1）
   ========================================================================== */
.jt-pagehead {
    --jt-ph-aspect: 4 / 1;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: var(--jt-ph-aspect);
    display: flex;
    align-items: center;
}

/* 背景图：居中裁切，主体不会被推到底部 */
.jt-pagehead--image {
    background-size: cover !important;
    background-position: center center !important;
}

/* 纯渐变（没有配头图）的内页：给个比例下限，别扁成一条 */
.jt-pagehead:not(.jt-pagehead--image) {
    min-height: clamp(180px, 14vw, 340px) !important;
}

/* 手机端：没配头图时才用 16:9 + 200px 保底；
   配了头图时比例由 PHP 按图片真实宽高比写成 --jt-ph-aspect（行内），
   这里把最小高度清掉 → 高度完全由图片比例决定，cover 也不会裁切 */
@media (max-width: 900px) {
    .jt-pagehead {
        --jt-ph-aspect: 16 / 9;
        min-height: 200px !important;
    }

    .jt-pagehead.jt-pagehead--image {
        min-height: 0 !important;
        background-size: cover !important;
        background-position: center center !important;
    }

    /* 详情页内容很少时也给足高度（手机端） */
    body.jt-page-detail .jt-article { min-height: 62vw; }
}

/* ============================================================================
   patent-proportional ｜ 首页「专利成果」改为按屏宽等比缩放
   ----------------------------------------------------------------------------
   之前：卡片 height: 72vh / max-width: 1440px / 证书 340px / 舞台 scale(.85|1|1.1)
        → 换分辨率时各部分各自到顶，比例就乱了（3072@150% 时证书显得很小）。
   现在：全部用 vw 表达，去掉 vh、px 上限与 stage scale，任何宽度都是同一张版式。
   ========================================================================== */
@media (min-width: 1001px) {
    /* 外框卡片 */
    .jt-patent .jt-patent-card {
        width: 88vw;
        max-width: none;
        height: auto;
        min-height: 0;
        padding: 2.4vw 3.4vw 2vw;
        border-radius: 2vw;
    }
    .jt-patent .jt-patent-card::before { border-radius: 2vw; }

    /* 左侧标题 */
    .jt-patent .jt-patent-label {
        font-size: 2.9vw;
        letter-spacing: .2vw;
    }

    /* 轮播舞台：高度由宽度推导，不再用 vh，也不再整体 scale */
    .jt-patent .jt-patent-stage {
        height: 33vw !important;
        flex: 0 0 auto;
        margin-top: 1vw;
        transform: none !important;
        perspective: 100vw;
    }

    /* 单张证书：宽度随屏宽，translateX 用的是百分比（相对自身宽），所以层次自动等比 */
    .jt-patent .jt-patent-item {
        width: 20vw;
        margin-left: -10vw;
        border-radius: .5vw;
        box-shadow: 0 1.2vw 2.6vw rgba(11, 42, 74, .16);
    }

    /* 说明文字 */
    .jt-patent .jt-patent-caption {
        font-size: 1.55vw;
        padding: 1vw 0 .4vw;
        letter-spacing: .03vw;
    }

    /* 左右箭头 */
    .jt-patent .jt-patent-arrow {
        width: 3vw;
        height: 3vw;
        font-size: 1.5vw;
        top: 50%;
        margin-top: -1.5vw;
    }
    .jt-patent .jt-patent-prev { left: .4vw; }
    .jt-patent .jt-patent-next { right: .4vw; }
}

/* 上面这段已经包含等比逻辑，把之前按断点/屏高写死的放大规则全部关掉 */
@media (min-width: 1001px) {
    .jt-patent .jt-patent-stage { transform: none !important; }
}
@media (min-width: 1920px) {
    .jt-patent .jt-patent-stage { transform: none !important; }
}
@media (min-width: 2560px) {
    .jt-patent .jt-patent-stage { transform: none !important; }
}
@media (max-height: 820px) and (max-width: 1919px) {
    .jt-patent .jt-patent-stage { transform: none !important; }
    .jt-patent .jt-patent-card { height: auto; }
}

/* ============================================================================
   contact-page ｜ 联系我们：头图 + 左侧地图 + 右侧联系方式（按设计稿）
   ----------------------------------------------------------------------------
   设计稿量取（1080 宽）：
     卡片 680 宽（63%）· 高 175（16.2%）· 左边缘 200（18.5%）
     地图 345×175（左侧，占卡片 51%）｜ 信息区 右侧，图标 18px、文字 15px
   全部换 vw，1000px 以上严格等比；手机上改为上下堆叠。
   ========================================================================== */
.ct-main {
    background: #f4f8fd;
    padding: 5vw 0 6vw;
}

.ct-card {
    width: 63vw;
    height: 16.2vw;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    background: #fff;
    box-shadow: 0 1vw 3vw rgba(23, 74, 130, .08);
}

/* 左侧地图 */
.ct-map {
    flex: 0 0 auto;
    width: 32vw;
    height: 100%;
    margin: 0;
    overflow: hidden;
}
.ct-map img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 右侧联系方式 */
.ct-info {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0 2vw 0 3.2vw;
    list-style: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2.15vw;
}
.ct-info li {
    display: flex;
    align-items: center;
    gap: 1.15vw;
    font-size: 1.39vw;
    line-height: 1.5;
    letter-spacing: .01em;
    color: #33475b;
}
.ct-info li span { min-width: 0; }
.ct-info a { color: inherit; text-decoration: none; }
.ct-info a:hover { color: #1f6fd0; }

.ct-ico {
    flex: 0 0 auto;
    width: 1.7vw;
    height: 1.7vw;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

/* 手机：上下堆叠，地图整宽 */
@media (max-width: 900px) {
    .ct-main { padding: 28px 0 40px; }
    .ct-card {
        width: 88vw;
        height: auto;
        flex-direction: column;
        box-shadow: 0 6px 20px rgba(23, 74, 130, .08);
    }
    .ct-map { width: 100%; height: auto; }
    .ct-map img { height: auto; aspect-ratio: 600 / 378; }
    .ct-info { padding: 22px 20px 26px; gap: 16px; }
    .ct-info li { font-size: 13.5px; gap: 10px; }
    .ct-ico { width: 16px; height: 16px; }
}

/* p4ct-tall ｜ 联系我们卡片加高（16.2vw → 19.5vw），地图按原图比例显示不被裁 */
@media (min-width: 901px) {
    .ct-card { height: 19.5vw; }

    /* 地图原始比例 600×378 = 1.587，卡片高 19.5vw 时宽度取 31vw 正好不裁 */
    .ct-map { width: 31vw; }

    /* 信息行随之略微拉开，视觉更均衡 */
    .ct-info {
        gap: 2.45vw;
        padding: 0 2vw 0 3.2vw;
    }
}

@media (max-width: 900px) {
    .ct-card { height: auto; }
}

/* ============================================================================
   ft-mobile ｜ 手机端页脚精简
   ----------------------------------------------------------------------------
   按设计稿：手机端只保留「地址 / 电话 / 公众号 / 邮箱」+ 底部备案行，
   去掉 logo 与整块多列导航（含顶部 首页/P4/专利技术 一行）。
   ========================================================================== */
@media (max-width: 900px) {
    .jt-ft .jt-ft-logo { display: none !important; }
    .jt-ft .jt-ft-nav  { display: none !important; }

    /* 联系信息独占整行，左对齐，行距舒展 */
    .jt-ft .jt-ft-main { padding-top: 26px; padding-bottom: 22px; }
    .jt-ft .jt-ft-brand { width: 100%; }
    .jt-ft .jt-ft-contact { margin-top: 0; }
    .jt-ft .jt-ft-contact li {
        font-size: 13px;
        line-height: 2.1;
    }
}

/* ft-mobile2 ｜ 手机端页脚再精简：联系方式与二维码也不显示，只留底部版权 + ICP */
@media (max-width: 900px) {
    .jt-ft .jt-ft-brand,
    .jt-ft .jt-ft-qr,
    .jt-ft .jt-ft-contact { display: none !important; }

    /* 上面全部隐藏后，主区不再占高度 */
    .jt-ft .jt-ft-main { padding: 0 !important; }

    /* 底栏保持居中、留一点上下呼吸 */
    .jt-ft .jt-ft-bottom { padding: 20px 0 24px; }
    .jt-ft .jt-ft-bottom .jt-container {
        flex-direction: column;
        gap: 8px;
        text-align: center;
    }
}

/* ============================================================================
   header-topmost ｜ 导航永远浮在最顶层
   ----------------------------------------------------------------------------
   原因：首页/专题页里的轮播卡片会用 transform + 各自的 z-index（最高到 100），
        而导航原 z-index 只有 50，滚动到某些版块时会被卡片压住。
   做法：导航层级提到 99999，并给内部下拉/移动端面板同级；页面内容不再能盖住它。
   ========================================================================== */
.jt-header {
    z-index: 99999 !important;
    isolation: isolate;
}
.jt-header .jt-nav,
.jt-header .jt-sub,
.jt-header .jt-header-right,
.jt-header .jt-burger {
    z-index: 99999;
}
/* 移动端展开的菜单面板也在同一层 */
@media (max-width: 900px) {
    .jt-header.nav-open .jt-nav { z-index: 99999; }
}

/* ============================================================================
   ft-grid ｜ 页脚重构：上「左 / 中 / 右」三区 + 下「版权备案」一条，全等比缩放
   ----------------------------------------------------------------------------
   基准 1440（--k: 1 时 1440 屏为设计原样）：
       · 内容宽 = 86vw（不用 .jt-container 的 max-width:1200px，否则大屏缩成一小块）
       · 三区 = 20.8vw ｜ 1fr ｜ 9.2vw，中区左右各一条分隔线
       · 所有尺寸 = calc(基准vw × var(--k))，改 --k 一个数 → 整条页脚同比缩放
   目的：任何分辨率下都保持「左中右 + 底部一条」，不再被 flex-wrap 打散。
   窄屏（<1001px）仍走上面的竖排堆叠 / 手机端精简版。
   ========================================================================== */
@media (min-width: 1001px) {
    .jt-ft { --k: 1; }

    /* ---------- 外层：内容宽度参与缩放 ---------- */
    .jt-ft-main {
        display: grid;
        grid-template-columns: calc(20.8vw * var(--k)) minmax(0, 1fr) calc(9.2vw * var(--k));
        align-items: start;
        gap: 0;
        width: 86vw;
        max-width: none;
        margin: 0 auto;
        padding: calc(3.75vw * var(--k)) 0 calc(2.9vw * var(--k));
    }

    /* ---------- 左区：logo + 联系信息 ---------- */
    .jt-ft-brand {
        flex: none;
        max-width: none;
        padding-right: calc(1.6vw * var(--k));
    }
    .jt-ft-logo img { height: calc(2.78vw * var(--k)); width: auto; max-height: none; }
    .jt-ft-logo-txt { font-size: calc(1.4vw * var(--k)); }
    .jt-ft-logo-txt em {
        font-size: calc(.73vw * var(--k));
        letter-spacing: .18em;
        margin-top: calc(.28vw * var(--k));
    }
    .jt-ft-contact { margin-top: calc(1.67vw * var(--k)); line-height: 2; }
    .jt-ft-contact li { font-size: calc(.97vw * var(--k)); white-space: nowrap; }

    /* ---------- 中区：页脚导航「一条一列，等分一行」 ----------
       列数由 footer.php 输出（--ft-cols，= 导航条数），六个就是六等分；
       字号比原来小一档，保证 6 列在 1920 屏也有足够呼吸空间。 */
    .jt-ft-nav {
        display: grid;
        grid-template-columns: repeat(var(--ft-cols, 6), minmax(0, 1fr));
        gap: 0 calc(1.2vw * var(--k));
        padding: 0 calc(1.8vw * var(--k));
        border-left: 1px solid #ececec;
        border-right: 1px solid #ececec;
        align-items: start;
    }
    .jt-ft-col { min-width: 0; max-width: 100%; }
    .jt-ft-col h4 {
        font-size: calc(.95vw * var(--k));
        line-height: 1.45;
        margin: 0 0 calc(.95vw * var(--k));
        word-break: break-word;
    }
    .jt-ft-col ul li {
        margin: 0 0 calc(.68vw * var(--k));
        line-height: 1.45;
    }
    .jt-ft-col ul li a {
        font-size: calc(.86vw * var(--k));
        line-height: 1.45;
        word-break: break-word;
    }
    /* 列标题现在也是链接（跳父级栏目）：保持纯文本外观，只在悬停时变色 */
    .jt-ft-col h4 a { color: inherit; text-decoration: none; }
    .jt-ft-col h4 a:hover { color: var(--jt-blue-2); }

    /* 旧版「横排一级入口」已不再使用（每条导航各占一列） */
    .jt-ft-toplinks {
        display: flex;
        flex-wrap: wrap;
        gap: calc(.9vw * var(--k));
        padding-top: 0;
    }
    .jt-ft-toplinks a {
        font-size: calc(.86vw * var(--k));
        line-height: 1.45;
    }

    /* ---------- 右区：二维码 ---------- */
    .jt-ft-qr {
        flex: none;
        width: auto;
        text-align: center;
    }
    .jt-ft-qr img {
        width: calc(7.8vw * var(--k));
        height: auto;
        margin: 0 auto calc(.7vw * var(--k));
    }
    .jt-ft-qr p { font-size: calc(.9vw * var(--k)); }

    /* ---------- 底部一条：版权 + 备案，水平居中 ---------- */
    .jt-ft-bottom { padding: calc(.9vw * var(--k)) 0; }
    .jt-ft-bottom .jt-container {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 0 calc(1.4vw * var(--k));
        width: 86vw;
        max-width: none;
        margin: 0 auto;
        padding: 0;
        font-size: calc(.9vw * var(--k));
        text-align: center;
    }
}

/* ============================================================================
   about-hs ｜ 首页「企业介绍」版块重构（左：公司介绍文字 / 右：4 项事实数据 / 底：楼体）
   ----------------------------------------------------------------------------
   为什么要重构：旧代码用 100vh + 62vh padding + 60vh 楼体高 + clamp()，
   屏幕高度一变，文字、数据和楼顶的相对位置就散 → 数据压到楼体、多分辨率不统一。

   新做法（全等比）：
     1) 背景图 bg-04.jpg 与楼体切图 building.png 都是 **1920×1080**，
        所以版块直接用 aspect-ratio: 1920/1080 —— 与设计稿 1:1，永不裁切/错位；
     2) 楼体 <img width:100%> 贴在版块底部，PNG 自带的透明天空区就是安全留白，
        不再用 height:60vh + margin-top:-5.5vw 去"裁"；
     3) 文字区 / 数据区用「% 定位 + vw 字号」，全部 × var(--k)，改 --k 一个数整块缩放；
     4) 数据区限宽 36vw 且右对齐 → 与楼顶之间恒留空，不再压图。
   窄屏（<1001px）保持原有的堆叠版式，不受影响。
   ========================================================================== */
@media (min-width: 1001px) {
    /* 兜底：保证容器链上没有内边距/宽度上限，版块才能顶到屏幕左右两边 */
    body.jt-page-home main.jt-main {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    #jtAbout {
        --k: 1;
        position: relative;
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
        height: auto;
        aspect-ratio: 1920 / 1080;     /* 与背景图 / 楼体切图 1:1（16:9） */
        min-height: 100vh;             /* 16:10 等非 16:9 屏：多出的天空留在上方，内容不位移 */
        padding-top: 0;
        overflow: hidden;
        background-color: #e6eff9;     /* 天空色兜底：万一有缝也看不出来 */
    }

    /* 背景层：强制铺满整个版块（四边贴边，cover 居中），不留下白边 */
    #jtAbout .jt-hs-bg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
    }

    /* 内容层：铺满版块，用百分比/vw 定位 */
    #jtAbout .jt-hs-inner {
        position: absolute;
        inset: 0;
        z-index: 2;
        width: auto;
        max-width: none;
        margin: 0;
        padding: calc(6.4vw * var(--k)) calc(17vw * var(--k)) 0 calc(6.5vw * var(--k));
        text-align: left;
    }

    /* ---- 左文 + 右数据：按设计稿红框对位 ----
       左栏 6.5vw → 44.5vw（右移 + 加宽 → 每行字更多、行数更少，整块更短）
       右栏 59vw → 83vw（右区收窄，2×2 数据不再贴到屏幕最右） */
    #jtAbout .jt-about-cols {
        display: grid;
        grid-template-columns: calc(38vw * var(--k)) calc(24vw * var(--k));
        justify-content: space-between;
        align-items: start;
        column-gap: 0;
    }
    #jtAbout .jt-about-left { min-width: 0; }

    /* 标题 */
    #jtAbout .jt-about-head { margin: 0 0 calc(1.2vw * var(--k)); }
    #jtAbout .jt-about-head h2 {
        margin: 0;
        font-size: calc(2.3vw * var(--k));
        line-height: 1.2;
        letter-spacing: .3em;
        text-indent: .3em;          /* 抵消末字字距，视觉居中 */
        text-align: center;
        color: #10406c;
    }

    /* 正文：行距 / 段距收紧，整块更短，底边不再压到楼体 */
    #jtAbout .jt-about-text {
        margin: 0;
        max-width: none;
        font-size: calc(.92vw * var(--k));
        line-height: 1.6;                /* 行距再收紧，整块更短 */
        letter-spacing: .01em;
        color: #3d5f80;
        text-align: justify;
    }
    #jtAbout .jt-about-text p {
        margin: 0 0 calc(.45vw * var(--k));
        text-indent: 2em;
    }
    #jtAbout .jt-about-text p:last-child { margin-bottom: 0; }

    /* ---- 右：4 项数据（2×2，无图标）；整体往下移，离版块顶留出空档 ---- */
    #jtAbout .jt-about-right {
        padding: 0;
        margin-top: calc(1.8vw * var(--k));
    }
    #jtAbout .jt-about-mini {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: calc(2.9vw * var(--k)) calc(3.2vw * var(--k));
        justify-items: start;
    }
    #jtAbout .jt-about-mini-item { display: block; text-align: left; }
    #jtAbout .jt-about-mini-icon { display: none !important; }   /* 设计稿此处无图标 */
    #jtAbout .jt-about-mini-body { display: block; }
    #jtAbout .jt-about-mini-num {
        font-size: calc(2.2vw * var(--k));
        font-weight: 700;
        line-height: 1.1;
        letter-spacing: .01em;
        color: #0f3f6d;
    }
    #jtAbout .jt-about-mini-num small {
        font-size: calc(.85vw * var(--k));
        font-weight: 500;
        margin-left: .3em;
        color: #5b7793;
    }
    #jtAbout .jt-about-mini-label {
        margin: calc(.55vw * var(--k)) 0 0;
        font-size: calc(.95vw * var(--k));
        line-height: 1.5;
        color: #6b8aa8;
    }

    /* ---- 楼体：与 1920×1080 切图 1:1 对位 ---- */
    #jtAbout .jt-about-building {
        /* 楼体缩放旋钮：1 = 图片按版块宽 100% 显示（默认）。
           想放大别动图片本身，改这个数（如 1.15）；超出的部分由版块 overflow 裁切。 */
        --bld: 1;
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        width: 100%;
        height: auto;
        overflow: visible;
        z-index: 1;
    }
    #jtAbout .jt-about-building img {
        display: block;
        width: calc(100% * var(--bld));
        height: auto;                 /* 高度永远由宽度推导 → 换任何比例的图都不变形 */
        margin: 0 0 0 auto;           /* 右对齐：放大时向左溢出，右侧贴住版块 */
    }
}

/* ============================================================================
   patent-slogan ｜ 首页「专利成果」证书上方的一句话
   ----------------------------------------------------------------------------
   位置：轮播区 .jt-patent-main（flex 列）顶部，证书仍在剩余空间内垂直居中；
   样式：居中加粗，颜色与「专利成果」「证书说明」一致（首页统一为 #212121），
        字号略大于下方证书说明，形成层级。
   ========================================================================== */
.jt-patent-slogan {
    flex: 0 0 auto;
    margin: 0 0 clamp(6px, .5vw, 14px);
    text-align: center;
    font-size: clamp(18px, 1.9vw, 34px);
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.4;
    color: #212121;
}

@media (max-width: 900px) {
    .jt-patent-slogan {
        font-size: 16px;
        margin-bottom: 10px;
        letter-spacing: .02em;
    }
}

/* ============================================================================
   patent-caption-tight ｜ 「专利成果」证书下方说明文字
   ----------------------------------------------------------------------------
   按需求：离证书近一点、字号小一些、不加粗。
   （原 padding-top 1~1.4vw ≈ 19~27px、font-size .95vw ≈ 18px、font-weight 700）
   ========================================================================== */
.jt-patent .jt-patent-caption {
    padding: 4px 0 0;
    margin-bottom: calc(1.1vw);          /* 说明行整体上移（随分辨率等比） */
    font-size: clamp(13px, .82vw, 19px);
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 1.6;
}

/* ============================================================================
   patent-proportional2 ｜「专利成果」定稿：唯一 --k + 全部 vw，任意分辨率同一版式
   ----------------------------------------------------------------------------
   基准宽度 1920（--k: 1 = 当前这版原样）：
     版块  aspect-ratio 1920/1080 —— 与背景图 bg-05.jpg 原图 1:1（不再用 100vh，
           换屏幕高度时版块和背景的关系不会变）
     卡片  88vw 宽 · padding 2.4 / 3.4 / 2vw · 圆角 2vw · 列间距 2.4vw
     标题  2.9vw ｜ 口号 1.8vw ｜ 证书 20vw 宽 ｜ 舞台高 33vw ｜ 说明 .82vw ｜ 箭头 3vw
   只改 --k 一个数即可整块同比缩放；所有值都随屏宽线性变化，无 clamp 上限、无 vh、无 px。
   ========================================================================== */
@media (min-width: 1001px) {
    .jt-patent {
        --k: 1;
        aspect-ratio: 1920 / 1080;      /* 版块高 = 屏宽 × 0.5625，与背景图同比例 */
        min-height: 100vh;              /* 16:10 等非 16:9 屏：多出的高度留在上下，内容不改变比例 */
        padding-top: var(--jt-header-h);
        display: flex;
        align-items: center;            /* 卡片在（版块高 − 导航高）区域内垂直居中 */
        justify-content: center;
        overflow: hidden;
    }

    .jt-patent .jt-patent-card {
        width: calc(88vw * var(--k));
        max-width: none;
        height: auto;
        min-height: 0;
        gap: calc(2.4vw * var(--k));
        padding: calc(2.4vw * var(--k)) calc(3.4vw * var(--k)) calc(2vw * var(--k));
        border-radius: calc(2vw * var(--k));
    }
    .jt-patent .jt-patent-card::before { border-radius: calc(2vw * var(--k)); }

    /* 左侧标题 */
    .jt-patent .jt-patent-label {
        font-size: calc(2.9vw * var(--k));
        letter-spacing: calc(.2vw * var(--k));
    }

    /* 证书上方口号 */
    .jt-patent .jt-patent-slogan {
        font-size: calc(1.8vw * var(--k));
        letter-spacing: calc(.06vw * var(--k));
        margin: 0 0 calc(.5vw * var(--k));
        line-height: 1.4;
    }

    /* 轮播舞台：高度由宽度推导（33vw），单张证书 20vw、translateX 用百分比 → 层次自动等比 */
    .jt-patent .jt-patent-stage {
        height: calc(33vw * var(--k)) !important;
        flex: 0 0 auto;
        margin-top: calc(1vw * var(--k));
        transform: none !important;
        perspective: 100vw;
    }
    .jt-patent .jt-patent-item {
        width: calc(20vw * var(--k));
        margin-left: calc(-10vw * var(--k));
        border-radius: calc(.5vw * var(--k));
        box-shadow: 0 calc(1.2vw * var(--k)) calc(2.6vw * var(--k)) rgba(11, 42, 74, .16);
    }

    /* 证书下方说明：小字、不加粗、贴近证书 */
    .jt-patent .jt-patent-caption {
        font-size: calc(.82vw * var(--k));
        padding: calc(.2vw * var(--k)) 0 0;
        margin-bottom: calc(1.1vw * var(--k));
        font-weight: 400;
        letter-spacing: .02em;
        line-height: 1.6;
    }

    /* 左右箭头 */
    .jt-patent .jt-patent-arrow {
        width: calc(3vw * var(--k));
        height: calc(3vw * var(--k));
        font-size: calc(1.5vw * var(--k));
        top: 50%;
        margin-top: calc(-1.5vw * var(--k));
    }
    .jt-patent .jt-patent-prev { left: calc(.4vw * var(--k)); }
    .jt-patent .jt-patent-next { right: calc(.4vw * var(--k)); }
}

/* ============================================================================
   patent-font-final ｜「专利成果」三行文字彻底等比（压掉历史 clamp 上限）
   ----------------------------------------------------------------------------
   根因：文件前面有一段
        .jt-patent .jt-patent-label { font-size: var(--jt-sec-h2) !important; }
        --jt-sec-h2: clamp(34px, 3.2vw, 50px)
   → 「自研技术」到 50px 就被 !important 卡死，3072/4K 下显得很小。
   做法：这里用同等 !important + 更晚的顺序覆盖，三行全部改成 calc(vw × --k)。
        slogan 2.2vw（1920 = 42px）｜ label 3.1vw（59px）｜ caption .95vw（18px）
   ========================================================================== */
@media (min-width: 1001px) {
    .jt-patent .jt-patent-slogan {
        font-size: calc(2.2vw * var(--k)) !important;
        letter-spacing: calc(.06vw * var(--k));
        line-height: 1.4;
        margin: 0 0 calc(.5vw * var(--k));
    }

    .jt-patent .jt-patent-label {
        font-size: calc(3.1vw * var(--k)) !important;   /* 原被 clamp 上限卡在 50px */
        letter-spacing: calc(.18vw * var(--k));
        line-height: 1.25;
        white-space: nowrap;
    }

    .jt-patent .jt-patent-caption {
        font-size: calc(.95vw * var(--k)) !important;
        /* 上移到证书正下方（负 margin 只压缩间距，不会带动证书） */
        margin-top: calc(-2vw * var(--k));
        margin-bottom: calc(1.1vw * var(--k));
        padding: calc(.2vw * var(--k)) 0 0;
        font-weight: 400;
        letter-spacing: .02em;
        line-height: 1.6;
    }
}

/* ============================================================================
   rd-proportional ｜ 首页「10 大科研中心」改成单一 --k + 全 vw 等比
   ----------------------------------------------------------------------------
   原实现的问题：
     · 版块高度 = 100vh，换屏幕高度内容位置就跑；
     · 卡片图高是 px / clamp（400px、clamp(380px,26vh,560px)）+ h3 字号
       分 1920/2560 两档写死 → 大分辨率下整排卡片显得又小又挤；
     · 标题走 --jt-sec-h2: clamp(34px,3.2vw,50px) 且 !important → 50px 封顶。
   新做法（基准 1920，--k: 1 = 当前这版原样）：
     版块 aspect-ratio 1920/1080 ｜ 标题 2.8vw ｜ 卡片宽 21vw ｜ 图高 22vw
     间距 1.15vw ｜ 卡标题 1.05vw ｜ 左起点 8.33vw（与标题对齐）
   只改 --k 一个数即可整块同比缩放。
   ========================================================================== */
@media (min-width: 1001px) {
    #jtRd {
        --k: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        aspect-ratio: 1920 / 1080;
        min-height: 100vh;
        padding-top: var(--jt-header-h);
        overflow: hidden;
    }

    /* 内容层铺满，不再受 .jt-container 的 px 上限约束 */
    #jtRd .jt-hs-inner {
        position: relative;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    /* 标题：左对齐到卡片左边缘 */
    #jtRd .jt-rd-head {
        margin: 0 0 calc(1.6vw * var(--k)) calc(8.33vw * var(--k));
        padding: 0;
        text-align: left;
    }
    #jtRd .jt-rd-head h2 {
        font-size: calc(2.8vw * var(--k)) !important;   /* 压掉 --jt-sec-h2 的 50px 上限 */
        letter-spacing: calc(.1vw * var(--k));
        line-height: 1.25;
    }

    /* 轮播区：左边缘与标题对齐（8.33vw），右侧溢出到屏幕外由版块裁切 */
    #jtRd .jt-rd-marquee {
        max-width: none;
        margin-left: calc(8.33vw * var(--k));
        margin-right: calc(-8.33vw * var(--k));
        padding: 0;
        overflow: hidden;
    }
    #jtRd .jt-rd-track {
        gap: calc(1.15vw * var(--k));
        padding: 0;
        align-items: stretch;
    }
    #jtRd .jt-rd-marquee .jt-rd-card {
        flex: 0 0 calc(21vw * var(--k));
        border-radius: calc(1vw * var(--k));
    }
    #jtRd .jt-rd-marquee .jt-rd-media {
        height: calc(22vw * var(--k));       /* 图片区高度随宽度，不再 px / vh */
    }
    #jtRd .jt-rd-marquee .jt-rd-card h3 {
        padding: calc(1.9vw * var(--k)) calc(.7vw * var(--k));
        font-size: calc(1.05vw * var(--k));
        line-height: 1.4;
    }
}

/* ============================================================================
   brand-proportional ｜ 首页「旗下品牌」coverflow 改为单一 --k + 全 vw 等比
   ----------------------------------------------------------------------------
   原实现的问题：
     · --bw: clamp(230px, 24vw, 600px) —— 卡宽 600px 封顶，2560/4K 上整组卡不再放大，
       于是“大分辨率下整块显得很小”；
     · 卡内字号（title 22px / desc 13px / More 13px）、圆角、间距全是 px；
     · 版块高度靠 100vh + vh 内边距，换屏幕高度位置就变。
   新做法（基准 1920，--k: 1 = 当前效果）：
     版块 aspect-ratio 1920/1080 ｜ 标题 2.8vw ｜ 卡宽 --bw = 24vw（高度 = 1.47×宽）
     左右台阶沿用原有系数（×--bw），因此层叠关系在任何分辨率下完全一致。
   ========================================================================== */
@media (min-width: 1001px) {
    #jtBrand {
        --k: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        aspect-ratio: 1920 / 1080;
        min-height: 100vh;
        padding-top: var(--jt-header-h);
        overflow: hidden;
    }
    #jtBrand .jt-hs-inner {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    /* 标题 */
    #jtBrand .jt-hs-head {
        margin: 0 0 calc(2.2vw * var(--k));
        padding: 0;
    }
    #jtBrand .jt-hs-head h2 {
        font-size: calc(2.8vw * var(--k)) !important;   /* 压掉 --jt-sec-h2 的 50px 上限 */
        letter-spacing: calc(.1vw * var(--k));
        line-height: 1.25;
    }

    /* 轮播舞台：卡宽不再有 px 上限 */
    #jtBrand .jt-brand-stage {
        --bw: calc(24vw * var(--k));
        width: 100vw;
        max-width: none;
        margin: 0 0 0 calc(50% - 50vw);
        height: calc(var(--bw) * 1.47);
    }
    #jtBrand .jt-brand-card {
        width: var(--bw);
        height: calc(var(--bw) * 1.47);
        margin: calc(var(--bw) * -.735) 0 0 calc(var(--bw) * -.5);
        border-radius: calc(1.1vw * var(--k));
    }

    /* 卡内元素：字号 / 内边距 / 圆角全部等比 */
    #jtBrand .jt-brand-inner { padding: calc(1.9vw * var(--k)) calc(1.35vw * var(--k)); }
    #jtBrand .jt-brand-media img { max-width: 82%; max-height: calc(12vw * var(--k)); }
    #jtBrand .jt-brand-mark { font-size: calc(1.55vw * var(--k)); letter-spacing: calc(.1vw * var(--k)); }
    #jtBrand .jt-brand-title {
        font-size: calc(1.15vw * var(--k));
        margin: 0 0 calc(.4vw * var(--k));
    }
    #jtBrand .jt-brand-desc {
        font-size: calc(.68vw * var(--k));
        margin: 0 0 calc(1vw * var(--k));
    }
    #jtBrand .jt-brand-more {
        min-width: calc(5vw * var(--k));
        height: calc(1.8vw * var(--k));
        padding: 0 calc(.95vw * var(--k));
        font-size: calc(.68vw * var(--k));
    }

    /* 底部圆点 */
    #jtBrand .jt-brand-dots {
        margin-top: calc(1.1vw * var(--k));
        gap: calc(.5vw * var(--k));
    }
    #jtBrand .jt-brand-dots i {
        width: calc(.42vw * var(--k));
        height: calc(.42vw * var(--k));
    }
    #jtBrand .jt-brand-dots i.is-on {
        width: calc(1.15vw * var(--k));
        border-radius: calc(.2vw * var(--k));
    }
}

/* ============================================================================
   detail-wide ｜ 详情页（detail.php）内容区改为全等比宽版
   ----------------------------------------------------------------------------
   原来受全站容器 --jt-max（1200 / 1640 / 2000 三档 px）与正文写死的 960px 限制，
   大屏上正文缩在中间一小条。这里：
     · 内容区宽度 = 86vw × --k（去掉所有 px 上限）
     · 卡片内边距、标题、正文、段落间距全部换成 vw × --k
   1920 屏：内容区 1651px（原来 960），正文 16.9px。
   ========================================================================== */
body.jt-page-detail { --k: 1; }

@media (min-width: 1001px) {
    body.jt-page-detail .jt-section > .jt-container {
        width: calc(86vw * var(--k));
        max-width: none;
    }

    body.jt-page-detail .jt-article {
        padding: calc(2.7vw * var(--k));
        border-radius: calc(.9vw * var(--k));
        /* 内容很少时也给足高度，页面不会显得又短又空：
           1920 屏 ≈ 538px，1280 屏保底 400px，4K 等比放大到 ≈1075px */
        min-height: max(400px, calc(28vw * var(--k)));
    }
    body.jt-page-detail .jt-article h1 {
        font-size: calc(2.2vw * var(--k));
        margin-bottom: calc(.75vw * var(--k));
    }
    body.jt-page-detail .jt-article-meta {
        font-size: calc(.72vw * var(--k));
        gap: calc(1vw * var(--k));
        padding-bottom: calc(1vw * var(--k));
        margin-bottom: calc(1.4vw * var(--k));
    }

    body.jt-page-detail .jt-content {
        font-size: calc(.88vw * var(--k));
        line-height: 1.95;
    }
    body.jt-page-detail .jt-content p { margin: 0 0 calc(.9vw * var(--k)); }
    body.jt-page-detail .jt-content h2 {
        font-size: calc(1.25vw * var(--k));
        margin: calc(1.8vw * var(--k)) 0 calc(.7vw * var(--k));
    }
    body.jt-page-detail .jt-content h3 { font-size: calc(1.05vw * var(--k)); }
    body.jt-page-detail .jt-content img {
        border-radius: calc(.5vw * var(--k));
        margin: calc(.9vw * var(--k)) 0;
    }

    /* 下方「相关推荐」也一起铺开 */
    body.jt-page-detail .jt-grid { gap: calc(1.3vw * var(--k)); }
}

/* ============================================================================
   pure-proportional ｜ 首页「无添加 P4 / 超越纯净」改为单一 --k + 全 vw 等比
   ----------------------------------------------------------------------------
   原实现的问题（都是 clamp 的 px 上限 + vh）：
     · 左卡宽 clamp(336px, 35.2vw, 688px) → 1955px 屏以后不再变宽；
     · 左卡高 clamp(320px, 46vh, 560px) → 跟屏幕高走，且 560px 封顶；
     · 小卡宽 clamp(180px, 17vw, 330px)、小卡图 min-height 190px、卡标题 22px 封顶；
     · 蓝层字号 clamp(...) + 容器 min(1760px, 94vw)。
   新做法（基准 1920，--k: 1 = 1920 屏现在这版一模一样）：
     版块 aspect-ratio 1920/1080 ｜ 容器 91.67vw ｜ 左卡 35.2vw × 25.88vw
     小卡 17vw ｜ 两区间距 2vw ｜ 全部字号 = 基准 vw × --k
   ========================================================================== */
@media (min-width: 1001px) {
    #jtPure {
        --k: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        aspect-ratio: 1920 / 1080;
        min-height: 100vh;
        padding-top: var(--jt-header-h);
        overflow: hidden;
    }

    /* 内容容器：宽度参与缩放（去掉 min(2100px,94vw) 的 px 上限）；
       左边距固定 4.165vw —— 任何分辨率下左边只留这么多，不会出现“大屏左边一大片空白” */
    #jtPure .jt-pure-inner {
        flex-direction: column;
        justify-content: center;
        align-items: stretch;
        width: calc(91.67vw * var(--k));
        max-width: none;
        min-height: 0;
        margin-left: calc(4.165vw * var(--k));
        margin-right: 0;
        padding: 0;
    }

    /* 标题区 */
    #jtPure .jt-pure-head { margin: 0 0 calc(1.77vw * var(--k)) !important; }
    #jtPure .jt-pure-head h2 {
        font-size: calc(2.6vw * var(--k)) !important;
        letter-spacing: calc(.1vw * var(--k));
        line-height: 1.25;
    }
    #jtPure .jt-pure-head p {
        font-size: calc(1.1vw * var(--k)) !important;
        line-height: 1.5;
    }

    /* 左右两区 */
    #jtPure .jt-pure-zones {
        display: flex;
        align-items: stretch;
        gap: calc(2vw * var(--k));
    }
    #jtPure #jtPureBig {
        flex: 0 0 calc(35.2vw * var(--k));
        height: calc(25.88vw * var(--k));
        border-radius: calc(.32vw * var(--k));
    }

    /* 蓝色文字层 */
    #jtPure #jtPurePanel { padding: 0 calc(2.2vw * var(--k)); }
    #jtPure #jtPurePanel h3 {
        font-size: calc(1.77vw * var(--k));
        letter-spacing: calc(.1vw * var(--k));
        margin: 0 0 calc(1.35vw * var(--k));
    }
    #jtPure #jtPurePanel p {
        font-size: calc(.83vw * var(--k));
        line-height: 2;
    }

    /* 右侧小卡：宽度保持「等分剩余空间」（flex:1），因此天然随容器缩放，不需要写死 vw */
    #jtPure .jt-pure-strip { gap: calc(1.4vw * var(--k)); }
    #jtPure .jt-pure-mini {
        flex: 1 1 0;
        min-width: 0;
        padding: calc(.62vw * var(--k)) calc(.52vw * var(--k)) calc(.52vw * var(--k));
        border-radius: calc(.32vw * var(--k));
    }
    #jtPure .jt-pure-mini-title {
        font-size: calc(1.05vw * var(--k));
    }
    #jtPure .jt-pure-mini-img {
        min-height: calc(9.9vw * var(--k));
    }
}

/* ============================================================================
   pure-cards-mobile ｜ 手机端「超越纯净」右区改为 2×2 卡片（标题 + 说明 + 配图）
   ----------------------------------------------------------------------------
   · 数据源不变：仍是栏目 WTJP4 的同一条内容（title / subtitle / cover），
     「图文与标题同源」，后台改一条，卡片三处一起变；
   · 只在手机端（≤900px）生效，桌面端保持原来的左大图 + 右小卡；
   · 手机端不再做横向滚动（index.php 里的滚动脚本已在 ≤900px 直接 return）。
   ========================================================================== */
@media (max-width: 900px) {
    /* 不再显示左区大图（手机端一张图 + 一堆小卡反而更乱） */
    #jtPure .jt-pure-big { display: none !important; }
    #jtPure .jt-pure-zones { display: block; }

    /* 小卡容器变成两列网格 */
    #jtPure .jt-pure-strip {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 12px !important;
        padding: 0 !important;
        overflow: visible !important;
        align-items: stretch;
    }

    /* 单张卡：白底 + 圆角 + 轻投影，从上到下 = 标题 / 说明 / 图 */
    #jtPure .jt-pure-mini {
        display: flex !important;
        flex-direction: column;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        padding: 14px 14px 0 !important;
        background: #fff !important;
        border-radius: 8px !important;
        box-shadow: 0 2px 12px rgba(18, 62, 116, .08);
        overflow: hidden !important;
    }

    #jtPure .jt-pure-mini-title {
        order: 1;
        display: block;
        width: auto !important;
        font-size: 15px !important;
        font-weight: 600;
        line-height: 1.4;
        color: #2b6fd0 !important;
        text-align: left;
        white-space: normal;
    }

    #jtPure .jt-pure-mini-sub {
        order: 2;
        display: block !important;
        margin: 8px 0 0;
        font-size: 12px;
        line-height: 1.7;
        color: #5c7285;
        text-align: left;
    }

    #jtPure .jt-pure-mini-img {
        order: 3;
        width: calc(100% + 28px) !important;
        min-height: 0 !important;
        height: 92px !important;
        margin: 12px -14px 0 !important;
        border-radius: 0 !important;
        background: var(--pure-img) center center / cover no-repeat, #dfeaf7;
    }
}

/* ============================================================================
   pure-cards-mobile-2 ｜ 手机端「无添加 P4 / 超越纯净」二次修正
   ----------------------------------------------------------------------------
   1) 整块去掉背景图，改白底；
   2) 标题、副标题居中；
   3) 4 张卡严格 2 行 2 列、等宽等高，不再出现右侧被切掉（横向溢出）。
   ========================================================================== */
@media (max-width: 900px) {
    /* ① 去背景 */
    #jtPure { background: #fff !important; }
    #jtPure .jt-hs-bg { display: none !important; }
    #jtPure .jt-pure-inner { background: transparent !important; }

    /* ② 标题 / 副标题居中 */
    #jtPure .jt-pure-head { text-align: center !important; margin-left: auto; margin-right: auto; }
    #jtPure .jt-pure-head h2,
    #jtPure .jt-pure-head p {
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 100% !important;
    }

    /* ③ 2×2 等分：minmax(0,1fr) 防止内容把列撑宽 */
    #jtPure .jt-pure-zones { display: block; }
    #jtPure .jt-pure-strip {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        align-items: stretch !important;
    }

    #jtPure .jt-pure-mini {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 100% !important;                /* 同一行两张卡等高 */
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 12px 12px 0 !important;
        background: #fff !important;
        border-radius: 8px !important;
        box-shadow: 0 2px 12px rgba(18, 62, 116, .08);
        overflow: hidden !important;
    }

    #jtPure .jt-pure-mini-title {
        order: 1;
        display: block;
        width: 100% !important;
        font-size: 15px !important;
        font-weight: 600;
        line-height: 1.4;
        color: #2b6fd0 !important;
        text-align: left;
        white-space: normal !important;
        word-break: break-word;
    }

    #jtPure .jt-pure-mini-sub {
        order: 2;
        display: block !important;
        margin: 6px 0 0 !important;
        padding: 0 !important;
        font-size: 12px;
        line-height: 1.65;
        color: #5c7285;
        text-align: left;
        white-space: normal !important;
        word-break: break-word;
    }

    /* 图片：贴卡片左右边与底边，高度固定，两张卡视觉一致 */
    #jtPure .jt-pure-mini-img {
        order: 3;
        width: calc(100% + 24px) !important;
        max-width: none !important;
        min-height: 0 !important;
        height: 88px !important;
        margin: auto -12px 0 !important;          /* margin-top:auto → 图片贴着卡片底部 */
        border-radius: 0 !important;
        background: var(--pure-img) center center / cover no-repeat, #dfeaf7;
    }
}

/* ============================================================================
   pure-cards-mobile-3 ｜ 手机端卡片改「封面图铺满整卡 + 文字压在上面」
   ----------------------------------------------------------------------------
   · 图片：直接用栏目内容的「封面图」（cover），不再取大图 big_image；
   · 整张卡就是一张图（background-size: cover），底部不再单独占一条图带；
   · 文字：标题 + 说明压在图上，顶部加一层深色渐变压暗，保证可读。
   ========================================================================== */
@media (max-width: 900px) {
    #jtPure .jt-pure-mini {
        position: relative !important;
        display: block !important;
        flex-direction: initial !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1;                       /* 正方形卡片，两行两列整齐 */
        background: var(--pure-img) center center / cover no-repeat, #2f5fae !important;
        border-radius: 8px !important;
        overflow: hidden !important;
        box-shadow: 0 2px 12px rgba(18, 62, 116, .10);
    }

    /* 压暗层：上深下浅，文字看得清、图又不至于被压死 */
    #jtPure .jt-pure-mini::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background: linear-gradient(180deg,
            rgba(8, 32, 58, .80) 0%,
            rgba(8, 32, 58, .48) 52%,
            rgba(8, 32, 58, .12) 100%);
        pointer-events: none;
    }

    #jtPure .jt-pure-mini-title {
        position: relative !important;
        z-index: 2;
        display: block;
        margin: 0 !important;
        padding: 11px 12px 0 !important;
        font-size: 15px !important;
        font-weight: 600;
        line-height: 1.4;
        color: #fff !important;
        text-shadow: 0 1px 6px rgba(0, 0, 0, .35);
        text-align: left;
        white-space: normal !important;
        word-break: break-word;
    }

    #jtPure .jt-pure-mini-sub {
        position: relative !important;
        z-index: 2;
        display: block !important;
        margin: 0 !important;
        padding: 5px 12px 12px !important;
        font-size: 11.5px;
        line-height: 1.6;
        color: rgba(255, 255, 255, .92) !important;
        text-shadow: 0 1px 5px rgba(0, 0, 0, .30);
        text-align: left;
        white-space: normal !important;
        word-break: break-word;
    }

    /* 不再单独渲染图片元素（图已经是卡片背景） */
    #jtPure .jt-pure-mini-img { display: none !important; }
}

/* ============================================================================
   pure-cards-mobile-4 ｜ 手机端「无添加 P4」收顶部留白 + 蒙版改蓝
   ----------------------------------------------------------------------------
   1) .jt-hs 默认 min-height:100vh + 垂直居中，手机端会剩出一大块空白 →
      这里改成「内容自适应高度 + 顶部对齐」，只保留导航让位；
   2) 卡片图的蒙版由黑色改成品牌蓝，观感更统一。
   ========================================================================== */
@media (max-width: 900px) {
    /* ① 去掉整屏高度与垂直居中，顶部只留导航高度 + 一点呼吸 */
    #jtPure {
        min-height: 0 !important;
        height: auto !important;
        padding-top: calc(var(--jt-header-h) + 10px) !important;
        padding-bottom: 26px !important;
        justify-content: flex-start !important;
        display: block !important;
    }

    #jtPure .jt-pure-inner {
        padding: 0 14px !important;
        min-height: 0 !important;
    }

    /* 标题与卡片之间收紧 */
    #jtPure .jt-pure-head {
        margin: 0 0 16px !important;
    }
    #jtPure .jt-pure-head h2 {
        margin: 0 0 8px !important;
        line-height: 1.25 !important;
    }
    #jtPure .jt-pure-head p { margin: 0 !important; }

    /* ② 蒙版：黑色 → 品牌蓝（上深下浅，白字仍清晰） */
    #jtPure .jt-pure-mini::before {
        background: linear-gradient(180deg,
            rgba(12, 52, 104, .82) 0%,
            rgba(16, 66, 128, .50) 52%,
            rgba(20, 82, 152, .10) 100%) !important;
    }
}

/* ============================================================================
   pure-cards-mobile-5 ｜ 手机端「无添加 P4」留白微调
   ----------------------------------------------------------------------------
   · 标题区上移：顶部只保留 40px（导航是浮层，不需要再叠一个 64px）；
   · 标题组上下留白均匀：标题上 40px ≈ 副标题下 36px；
   · 版块底部留 64px，与下一个版块明显隔开。
   ========================================================================== */
@media (max-width: 900px) {
    #jtPure {
        padding-top: 40px !important;      /* 原 calc(header + 10px) ≈ 74px */
        padding-bottom: 64px !important;   /* 原 26px：与下一版块拉开 */
    }

    #jtPure .jt-pure-head {
        margin: 0 0 36px !important;       /* 副标题到第一行卡片的距离 */
    }
    #jtPure .jt-pure-head h2 {
        margin: 0 0 10px !important;
        line-height: 1.2 !important;
    }
}

/* ============================================================================
   active-tl-scroll ｜ 首页「活性未来」时间轴：一屏高窗口 + 自动向上滚动
   ----------------------------------------------------------------------------
   · .jt-tl-view 是滚动窗口（overflow:hidden），高度约「一屏」；
   · 里面的 .jt-tl 由 index.php 的脚本 translateY 上移，走完一份静默回绕；
   · 上下各 6% 做渐隐，进出窗口不会有硬边；
   · padding-left:5px / margin-left:-5px：让时间轴左侧的圆点不被窗口裁掉
     （圆点在 ol 的 left:-29px，最左会凸出约 3px）。
   ========================================================================== */
#jtActive .jt-tl-view {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    height: calc(100vh - var(--jt-header-h) - 150px);
    min-height: 320px;
    overflow: hidden;
    padding-left: 5px;
    margin-left: -5px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}

/* 滚动窗口里改为从上往下排（原来整组垂直居中，滚起来会“两头都溢出”） */
#jtActive .jt-tl-view .jt-tl {
    justify-content: flex-start;
    will-change: transform;
}

@media (max-width: 900px) {
    #jtActive .jt-tl-view {
        height: calc(100vh - var(--jt-header-h) - 130px);   /* 手机端约一屏 */
        min-height: 300px;
    }
}

/* ============================================================================
   active-tl-head ｜ 首页「活性未来」滚动区上方的主标题 + 副标题
   ----------------------------------------------------------------------------
   桌面端：右侧拱形里已有同样两行大字，这里隐藏，避免重复；
   手机端：拱形被压到时间轴下方看不见了，所以在滚动区上方补一组标题。
   ========================================================================== */
.jt-tl-head { display: none; }

@media (max-width: 900px) {
    #jtActive .jt-active-timeline { display: block; }

    .jt-tl-head {
        display: block;
        margin: 0 0 16px;
        padding: 0 4px;
        text-align: center;
    }
    .jt-tl-head h2 {
        margin: 0 0 8px;
        font-size: 26px;
        font-weight: 500;
        line-height: 1.25;
        letter-spacing: 8px;
        text-indent: 8px;              /* 抵消末字字距，视觉居中 */
        color: #fff;
        text-shadow: 0 2px 16px rgba(10, 45, 85, .25);
    }
    .jt-tl-head p {
        margin: 0;
        font-size: 13px;
        line-height: 1.6;
        letter-spacing: 4px;
        text-indent: 4px;
        color: rgba(255, 255, 255, .92);
    }

    /* 多了标题后，滚动窗口相应缩一点，整体仍是一屏 */
    #jtActive .jt-tl-view {
        height: calc(100vh - var(--jt-header-h) - 210px);
        min-height: 260px;
    }
}

/* ============================================================================
   active-tl-head-white ｜「活性未来」标题改白色底条，样式对齐上一个版块
   ----------------------------------------------------------------------------
   上一个版块（无添加 P4）手机端：白底 + 居中 + 深色标题（34px #1a1a1a）+ 灰蓝副标题（15px #4a6785）。
   这里让「活性未来」的标题区完全一致：白色通屏底条、同样字号/颜色/字距、同样居中。
   ========================================================================== */
@media (max-width: 900px) {
    #jtActive .jt-tl-head {
        display: block;
        background: #fff;
        margin: 0 -16px 16px;              /* 负边距吃掉 .jt-hs-inner 的左右 16px，白条通屏 */
        padding: 26px 16px 22px;
        text-align: center;
    }

    #jtActive .jt-tl-head h2 {
        margin: 0 0 10px;
        font-size: 34px;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 3px;
        text-indent: 3px;                  /* 抵消末字字距，视觉居中 */
        color: #1a1a1a;
        text-shadow: none;
    }

    #jtActive .jt-tl-head p {
        margin: 0;
        font-size: 15px;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: 1px;
        text-indent: 1px;
        color: #4a6785;
        text-shadow: none;
    }

    /* 白条占了高度，滚动窗口相应缩小，整体仍控制在一屏内 */
    #jtActive .jt-tl-view {
        height: calc(100vh - var(--jt-header-h) - 300px);
        min-height: 240px;
    }
}

/* ============================================================================
   active-split ｜「活性未来」拆成两段：白底标题区 + 蓝色背景滚动区
   ----------------------------------------------------------------------------
   改版要求（手机端）：
     ① 删掉标题上方那条「白一段 + 蓝一段」的空白；
     ② 标题、副标题放在背景之外（白底、居中）；
     ③ 标题之下才是「背景图 + 滚动区」，背景图只包住滚动区，不包标题。
   ========================================================================== */
@media (max-width: 900px) {
    /* 版块本体：白底、去掉上下留白，背景图不再整块铺 */
    #jtActive {
        background: #fff !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        min-height: 0 !important;
    }
    #jtActive .jt-hs-bg { display: none !important; }
    #jtActive .jt-hs-inner {
        padding: 0 !important;
        min-height: 0 !important;
        display: block !important;
    }

    /* ① 标题区：纯白、居中，接在上一个版块下面，中间不再夹蓝条 */
    #jtActive .jt-tl-head {
        display: block;
        background: #fff;
        margin: 0;
        padding: 26px 16px 20px;
        text-align: center;
    }
    #jtActive .jt-tl-head h2 {
        margin: 0 0 10px;
        font-size: 34px;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 3px;
        text-indent: 3px;
        color: #1a1a1a;
        text-shadow: none;
    }
    #jtActive .jt-tl-head p {
        margin: 0;
        font-size: 15px;
        line-height: 1.5;
        letter-spacing: 1px;
        text-indent: 1px;
        color: #4a6785;
        text-shadow: none;
    }

    /* ② 滚动区：自带蓝色背景图，通屏宽，一屏高左右 */
    #jtActive .jt-tl-view {
        margin: 0 !important;
        padding: 22px 16px 22px 21px !important;
        width: 100% !important;
        height: calc(100vh - var(--jt-header-h) - 170px) !important;
        min-height: 300px;
        max-height: none;
        background: url("/static/images/home/bg-03.jpg") center center / cover no-repeat, #2f6fa8;
        overflow: hidden;
        /* 背景图要完整显示，所以不再用 mask 渐隐（否则连背景一起淡掉） */
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }

    /* ③ 右侧拱形在手机上已无标题可承载，直接隐藏（避免白色描边在白底上隐形却占 40vh） */
    #jtActive .jt-active-visual { display: none !important; }
    #jtActive .jt-active-wrap { gap: 0 !important; }
}

/* ============================================================================
   active-head-center ｜「活性未来」两行标题在白色区域内垂直居中
   ----------------------------------------------------------------------------
   白色区域 = 上一个版块底部留白（40px）+ 本标题块；标题块用 flex 居中，
   无论上下留白怎么变，两行文字都稳稳落在白区的正中。
   ========================================================================== */
@media (max-width: 900px) {
    /* 上一个版块底部留白收一点，白色区域不至于太高 */
    #jtPure { padding-bottom: 40px !important; }

    #jtActive .jt-tl-head {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;    /* ← 垂直居中 */
        min-height: 168px;          /* 白色标题区高度 */
        padding: 0 16px !important;
        margin: 0 !important;
        background: #fff;
        text-align: center;
    }

    #jtActive .jt-tl-head h2 {
        margin: 0 0 10px !important;
        font-size: 34px;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 3px;
        text-indent: 3px;
        color: #1a1a1a;
        text-shadow: none;
    }
    #jtActive .jt-tl-head p {
        margin: 0 !important;
        font-size: 15px;
        line-height: 1.5;
        letter-spacing: 1px;
        text-indent: 1px;
        color: #4a6785;
        text-shadow: none;
    }
}

/* ============================================================================
   about-fit-image ｜ 手机端「企业介绍」：版块底部 = 楼体图片底边，多余空白去掉
   ----------------------------------------------------------------------------
   原来楼体容器固定 height:50vh，而图片按宽高比只有一半高 →
   容器下方空出一大块（背景云层继续铺着）。改成容器高度由图片撑开。
   ========================================================================== */
@media (max-width: 900px) {
    #jtAbout {
        min-height: 0 !important;
        padding-bottom: 0 !important;
        display: block !important;
    }
    #jtAbout .jt-hs-inner {
        padding-bottom: 0 !important;
        min-height: 0 !important;
    }

    /* 楼体容器：不再锁 50vh，高度=图片高度 */
    #jtAbout .jt-about-building {
        position: static !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 22px 0 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    #jtAbout .jt-about-building img {
        display: block;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        object-fit: contain;
    }

    /* 版块内其它可能撑高的元素一并清掉底部留白 */
    #jtAbout .jt-about-cols,
    #jtAbout .jt-about-mini { margin-bottom: 0 !important; }
}

/* ============================================================================
   about-fit-image-fix ｜ 楼体恢复显示（层级修正）
   ----------------------------------------------------------------------------
   上一版把楼体容器改成了 position:static，结果它变成「普通流内元素」，
   而版块背景图 .jt-hs-bg 是 position:absolute + z-index:0，
   绘制顺序上背景会盖住流内元素 → 房子“消失”。
   这里改成 position:relative + z-index:1，既在背景之上，又保持高度=图片高度。
   ========================================================================== */
@media (max-width: 900px) {
    #jtAbout .jt-about-building {
        position: relative !important;   /* 关键：不是 absolute（不脱流），但能建立层级 */
        z-index: 1 !important;           /* 高于 .jt-hs-bg（z-index:0） */
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        top: auto !important;
        height: auto !important;
        margin: 22px 0 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        display: block !important;
        opacity: 1 !important;
        transform: none !important;
    }
    #jtAbout .jt-about-building img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

/* ============================================================================
   patent-mobile-coverflow ｜ 手机端「专利成果」沿用 PC 的封面流，整体等比缩小
   ----------------------------------------------------------------------------
   做法：轮播舞台按「设计稿 1000×500」固定尺寸，再用 transform: scale() 缩到屏宽：
       scale = (100vw − 24px) / 1000
   卡片间距、层叠、模糊、箭头、点击逻辑全部原样保留（JS 读的是未缩放的 px）。
   图册下方的专利说明文字不缩放，保证手机端仍然清晰可读。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent {
        min-height: 0 !important;
        padding-bottom: 24px !important;
    }

    #jtPatent .jt-patent-card {
        flex-direction: column !important;
        width: calc(100% - 16px) !important;
        height: auto !important;
        padding: 16px 10px 10px !important;
        gap: 6px !important;
        overflow: visible !important;
    }
    #jtPatent .jt-patent-card::before { border-radius: 18px; }

    #jtPatent .jt-patent-label {
        align-self: flex-start;
        padding-left: 6px;
        font-size: 20px !important;
        letter-spacing: 2px;
    }

    #jtPatent .jt-patent-main {
        width: 100% !important;
        height: auto !important;
    }

    /* 舞台：1000×500 设计尺寸 → 等比缩放到屏宽 */
    #jtPatent .jt-patent-stage {
        display: block !important;
        position: relative !important;
        left: 50% !important;
        width: 1000px !important;
        height: 500px !important;
        padding: 0 !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
        transform: scale(calc((100vw - 24px) / 1000)) !important;
        transform-origin: top center !important;
        margin: 0 0 calc(500px * ((100vw - 24px) / 1000) - 500px) -500px !important;
    }

    /* 卡片回到绝对定位（封面流） */
    #jtPatent .jt-patent-item {
        position: absolute !important;
        top: 0;
        left: 50%;
        width: 340px;
        margin-left: -170px;
    }
    #jtPatent .jt-patent-item::after { display: block; }

    /* 左右箭头：不缩放，正常大小 */
    #jtPatent .jt-patent-arrow {
        display: inline-flex !important;
        width: 34px;
        height: 34px;
        font-size: 18px;
        top: 42%;
    }
    #jtPatent .jt-patent-prev { left: -2px; }
    #jtPatent .jt-patent-next { right: -2px; }

    /* 说明文字：不缩放，手机端可读 */
    #jtPatent .jt-patent-caption {
        padding: 12px 6px 0 !important;
        font-size: 14px !important;
        white-space: normal !important;
        line-height: 1.6;
    }
}

/* ============================================================================
   patent-mobile-fix2 ｜ 手机端「自研技术 / 专利成果」重做
   ----------------------------------------------------------------------------
   上一版用 transform: scale(calc((100vw - 24px)/1000)) 缩放 ——
   scale() 只接受「数字」，calc 里 vw÷px 得到的是「长度」→ 整条声明被判无效，
   于是卡片完全没缩小 → 错位。
   现在改为：**直接把尺寸换成 vw**（设计稿 1000 宽 → 卡片 34vw、舞台高 50vw），
   封面流的百分比位移因此天然等比缩放，不再依赖 transform。
   同时：去掉白色磨砂底板；主标题 + 副标题居中（与上方版块一致）。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent {
        min-height: 0 !important;
        padding-bottom: 26px !important;
    }

    #jtPatent .jt-patent-card {
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
        height: auto !important;
        padding: 4px 0 0 !important;
        gap: 0 !important;
        overflow: visible !important;
    }
    /* 去掉那层白色磨砂底板 */
    #jtPatent .jt-patent-card::before { display: none !important; }

    /* 主标题 / 副标题：居中、样式与上一个版块统一 */
    #jtPatent .jt-patent-label {
        align-self: center !important;
        margin: 0 0 10px !important;
        padding: 0 16px !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        text-align: center !important;
        color: #1a1a1a !important;
    }
    #jtPatent .jt-patent-slogan {
        margin: 0 0 14px !important;
        padding: 0 16px !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        text-align: center !important;
        color: #4a6785 !important;
    }

    #jtPatent .jt-patent-main {
        position: relative !important;
        width: 100% !important;
        height: auto !important;
    }

    /* 舞台：宽度 = 屏宽，高度 = 50vw（设计稿 500/1000） */
    #jtPatent .jt-patent-stage {
        display: block !important;
        position: relative !important;
        left: auto !important;
        width: 100% !important;
        height: 50vw !important;
        min-height: 0 !important;
        margin: 6px 0 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        scroll-snap-type: none !important;
        transform: none !important;
    }

    /* 卡片：34vw 宽（设计稿 340/1000），位移百分比不变 → 整体等比 */
    #jtPatent .jt-patent-item {
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        width: 34vw !important;
        margin-left: -17vw !important;
        box-shadow: 0 8px 20px rgba(11, 42, 74, .16) !important;
    }
    #jtPatent .jt-patent-item img { width: 100%; height: auto; }
    #jtPatent .jt-patent-item::after { display: block !important; }

    /* 箭头：正常大小 */
    #jtPatent .jt-patent-arrow {
        display: inline-flex !important;
        width: 30px !important;
        height: 30px !important;
        font-size: 16px !important;
        top: 38% !important;
    }
    #jtPatent .jt-patent-prev { left: 2px !important; }
    #jtPatent .jt-patent-next { right: 2px !important; }

    /* 说明文字：不缩小，可换行 */
    #jtPatent .jt-patent-caption {
        padding: 10px 16px 0 !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
        white-space: normal !important;
        min-height: 0 !important;
    }
}

/* ============================================================================
   patent-mobile-fix3 ｜ 手机端「自研技术」封面流：位置修正（不再压住标题）
   ----------------------------------------------------------------------------
   ① .jt-patent-main 改回普通块级流：说明文字 → 证书舞台 → 底部说明，按顺序上下排；
   ② 舞台明确 position:relative + 固定高度 50vw，证书卡片在里面 absolute 排布；
   ③ 标题/口号/说明都提到 z-index 20，任何情况下都不会被证书盖住。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-main {
        display: block !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        padding: 0 !important;
    }

    /* 文字层：始终在证书之上 */
    #jtPatent .jt-patent-slogan {
        position: relative !important;
        z-index: 20 !important;
        margin: 0 0 14px !important;
    }
    #jtPatent .jt-patent-caption {
        position: relative !important;
        z-index: 20 !important;
        margin: 0 !important;
    }

    /* 证书舞台：普通流里的一块，高度 50vw（设计 500/1000） */
    #jtPatent .jt-patent-stage {
        position: relative !important;
        z-index: 1 !important;
        display: block !important;
        width: 100% !important;
        height: 50vw !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        transform: none !important;
        left: auto !important;
    }

    /* 箭头：垂直落在证书中部 */
    #jtPatent .jt-patent-arrow {
        top: calc(25vw - 15px) !important;
    }
}

/* ============================================================================
   patent-mobile-fix4 ｜ 手机端「自研技术」标题区按上一个版块的排法：
   自研技术（34px 居中）→ 持续科研创新…（15px 居中）→ 下面才是证书封面流
   ----------------------------------------------------------------------------
   做法：给卡片顶部留出 132px 的“标题区”，把 h2 与口号绝对定位到这块区域里；
   main 改 static，证书舞台从 132px 之后开始，两者不再重叠。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-card {
        position: relative !important;
        padding: 132px 0 4px !important;
        overflow: visible !important;
    }

    /* 主标题 */
    #jtPatent .jt-patent-label {
        position: absolute !important;
        top: 26px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 30 !important;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
    }

    /* 副标题（口号） */
    #jtPatent .jt-patent-main { position: static !important; }

    #jtPatent .jt-patent-slogan {
        position: absolute !important;
        top: 76px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 30 !important;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }

    /* 证书舞台：从标题区下方开始 */
    #jtPatent .jt-patent-stage {
        margin: 0 !important;
        height: 50vw !important;
    }

    /* 箭头随舞台一起下移（卡片顶部 132px 之后） */
    #jtPatent .jt-patent-arrow {
        top: calc(132px + 25vw - 15px) !important;
    }

    /* 底部说明 */
    #jtPatent .jt-patent-caption {
        position: relative !important;
        z-index: 20 !important;
        margin: 8px 0 0 !important;
        padding: 0 16px !important;
    }
}

/* ============================================================================
   patent-mobile-fix5 ｜ 手机端「自研技术」：证书图册整体下移 + 箭头对准图册中线
   ----------------------------------------------------------------------------
   上一版靠 .jt-patent-card 的 padding-top 撑开标题区，但证书是 absolute，
   若舞台没成为“定位祖先”，就会锚到卡片本身（top:0）→ 依旧压在标题上。
   这次改成：标题绝对定位；**给 .jt-patent-main 加 margin-top**（在流里下移），
   并保证 main / stage 都是 position:relative —— 证书无论锚到谁，都从 128px 之后开始。
   箭头在 main 内，top = 舞台一半高（25vw）− 箭头一半（15px）→ 正好垂直居中。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-card {
        position: relative !important;
        padding: 0 0 4px !important;
        overflow: visible !important;
    }

    /* 标题区：绝对定位，固定占卡片顶部 0~110px */
    #jtPatent .jt-patent-label {
        position: absolute !important;
        top: 22px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 30 !important;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
    }
    #jtPatent .jt-patent-slogan {
        position: absolute !important;
        top: 72px !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 30 !important;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }

    /* 证书区整体下移到标题下方（关键：用 margin 而不是 padding） */
    #jtPatent .jt-patent-main {
        position: relative !important;
        top: auto !important;
        margin-top: 128px !important;
        height: auto !important;
        padding: 0 !important;
    }

    /* 舞台：定位祖先 + 固定高度 50vw = 证书区可视高度 */
    #jtPatent .jt-patent-stage {
        position: relative !important;
        top: 0 !important;
        left: auto !important;
        display: block !important;
        width: 100% !important;
        height: 50vw !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        transform: none !important;
    }

    /* 箭头：垂直落在图册中线（50vw ÷ 2 − 15px） */
    #jtPatent .jt-patent-arrow {
        top: calc(25vw - 15px) !important;
        z-index: 40 !important;
    }

    /* 底部说明图册下方一点 */
    #jtPatent .jt-patent-caption {
        position: relative !important;
        z-index: 20 !important;
        margin: 10px 0 0 !important;
        padding: 0 16px !important;
    }
}

/* ============================================================================
   patent-arrow-center ｜ 左右箭头改放进「图册舞台」内，用 50% 精确对齐中线
   ----------------------------------------------------------------------------
   原来箭头在 .jt-patent-main 里，top 只能靠 calc 估算（main 还含说明文字），
   永远差一截。现在箭头是 .jt-patent-stage 的子元素：top:50% 即图册正中。
   手机端标题区改用「舞台自己的 margin-top」下移，比给 main 加 margin 可靠。
   ========================================================================== */
#jtPatent .jt-patent-arrow {
    top: 50% !important;
    transform: translateY(-50%) !important;
}
#jtPatent .jt-patent-arrow:hover {
    transform: translateY(-50%) scale(1.06) !important;
}

@media (max-width: 820px) {
    /* 标注：图册从卡片顶部 128px 处开始 */
    #jtPatent .jt-patent-main {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    #jtPatent .jt-patent-stage {
        margin: 128px 0 0 !important;
        height: 50vw !important;
    }
    /* 箭头尺寸（top/transform 已由上面的通用规则接管，这里只改大小和左右位置） */
    #jtPatent .jt-patent-arrow {
        width: 30px !important;
        height: 30px !important;
        font-size: 16px !important;
    }
    #jtPatent .jt-patent-prev { left: 2px !important; }
    #jtPatent .jt-patent-next { right: 2px !important; }
}

/* ============================================================================
   patent-mobile-fix6 ｜ 手机端「自研技术」按 4 个框重排（全部走普通流，不再重叠）
   ----------------------------------------------------------------------------
   ┌─────────────── 外层上框：主标题 + 副标题 ───────────────┐
   │  自研技术                                              │
   │  持续科研创新，保障产品确切功效                          │
   ├─────────────── 外层下框：轮播区 ───────────────────────┤
   │  ┌─ 图册区（证书封面流，高 50vw）──────────────────┐   │
   │  └────────────────────────────────────────────────┘   │
   │  ┌─ 文字区（当前专利说明）─────────────────────────┐   │
   │  └────────────────────────────────────────────────┘   │
   └───────────────────────────────────────────────────────┘
   关键：标题、口号、图册、说明全部 position: static + 正常流，
        网格顺序由 order 控制；证书 absolute 只锚定「图册舞台」。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-card {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        padding: 18px 0 8px !important;
        gap: 0 !important;
        overflow: visible !important;
    }
    #jtPatent .jt-patent-card::before { display: none !important; }

    /* ---------- 外层上框：主标题 ---------- */
    #jtPatent .jt-patent-label {
        position: static !important;
        order: 1;
        flex: 0 0 auto !important;
        min-height: 60px;
        display: flex !important;
        align-items: center;
        justify-content: center;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
    }

    /* ---------- 外层下框：轮播区（含上：图册 / 下：文字） ---------- */
    #jtPatent .jt-patent-main {
        position: static !important;
        order: 2;
        flex: 0 0 auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }

    /* 副标题（口号）：轮播区最上方一行 */
    #jtPatent .jt-patent-slogan {
        position: static !important;
        order: 1;
        flex: 0 0 auto !important;
        margin: 0 0 14px !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }

    /* 图册区 */
    #jtPatent .jt-patent-stage {
        position: relative !important;
        order: 2;
        flex: 0 0 auto !important;
        display: block !important;
        width: 100% !important;
        height: 50vw !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        transform: none !important;
        left: auto !important;
        top: 0 !important;
    }

    /* 文字区 */
    #jtPatent .jt-patent-caption {
        position: relative !important;
        order: 3;
        flex: 0 0 auto !important;
        margin: 14px 0 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
        white-space: normal !important;
    }
}

/* ============================================================================
   patent-mobile-fix7 ｜ 手机端「自研技术」证书无法下移 —— 根因修复
   ----------------------------------------------------------------------------
   现象：证书跑到版块最顶部、压在标题上，而下方留出一大块空白。
   根因：① 版块本身是 .jt-hs（min-height:100vh + 垂直居中）→ 整块被居中，
            上下都是白；
         ② .jt-patent-item 是 position:absolute，它锚定的是「最近的定位祖先」。
            只要 .jt-patent-stage 的 position 没生效（被别的规则改成 static），
            证书就会锚到更外层的祖先，于是跑到版块顶端，而舞台盒子被空出来。
   修法：
     · 版块取消 100vh 居中，改成自适应高度、顶部对齐；
     · 给舞台同时加 position:relative **和** transform:translateZ(0)
       —— transform 会强制建立包含块，即使 position 被覆盖，证书也必定锚在舞台里。
   ========================================================================== */
@media (max-width: 820px) {
    /* ① 版块：不再整屏居中，高度由内容决定 */
    #jtPatent {
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        padding: 22px 0 30px !important;
        justify-content: flex-start !important;
    }

    /* ② 舞台：强制成为证书的包含块 */
    #jtPatent .jt-patent-stage {
        position: relative !important;
        transform: translateZ(0) !important;   /* ← 关键：建立包含块 */
        display: block !important;
        width: 100% !important;
        height: 50vw !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        top: 0 !important;
        left: auto !important;
    }

    /* ③ 证书：明确从舞台顶部开始 */
    #jtPatent .jt-patent-item {
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        width: 34vw !important;
        margin-left: -17vw !important;
    }

    /* ④ 标题 / 口号 / 说明：普通流、层级提到最上，绝不会被证书盖住 */
    #jtPatent .jt-patent-card {
        display: flex !important;
        flex-direction: column !important;
        position: static !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    #jtPatent .jt-patent-label {
        position: relative !important;
        z-index: 30 !important;
        min-height: 56px;
        display: flex !important;
        align-items: center;
        justify-content: center;
        margin: 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
    }
    #jtPatent .jt-patent-main {
        position: static !important;
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    #jtPatent .jt-patent-slogan {
        position: relative !important;
        z-index: 30 !important;
        margin: 8px 0 14px !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }
    #jtPatent .jt-patent-caption {
        position: relative !important;
        z-index: 30 !important;
        margin: 14px 0 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
        white-space: normal !important;
    }
}


/* ============================================================================
   patent-mobile-fix8 ｜ 真凶：证书的 transform 里带着 translateY(-50%)
   ----------------------------------------------------------------------------
   桌面版（CSS 1969 行起）是这样把证书垂直居中的：
       .jt-patent .jt-patent-item       { top: 50%; }
       .jt-patent .jt-patent-item.is-c0 { transform: translateY(-50%) scale(1); }
       .jt-patent .jt-patent-item.is-l1 { transform: translateY(-50%) translateX(-64%) scale(.82); }
   前面在手机端把 top 改成了 0，却没去掉 transform 里的 translateY(-50%)，
   卡片被「向上提了半个自身高度」→ 跑到舞台上方压住标题，舞台盒子却留在原处 →
   下方露出一大块空白。修法：手机端保持 top:50%，让 translateY(-50%) 继续居中。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-item {
        top: 50% !important;
        left: 50% !important;
        width: 34vw !important;
        margin-left: -17vw !important;
        margin-top: 0 !important;
    }
}


/* ============================================================================
   patent-mobile-fix9 ｜ 证书图册高度自适应 + 标题/副标题排好位置
   ----------------------------------------------------------------------------
   证书图是竖版长图（高约为宽的 1.4 倍以上），而舞台高度写死 50vw 比证书矮，
   证书又是 top:50% + translateY(-50%) 居中 → 上下都会溢出，顶部就钻进了副标题。
   修法：让「当前那张（is-c0）」回到普通流里撑高舞台，其余卡片相对它居中——
   舞台高度 = 证书真实高度，永不溢出，标题/副标题自然就在图册上方。
   ========================================================================== */
@media (max-width: 820px) {
    /* 版块顶部稍收，标题区紧凑 */
    #jtPatent { padding: 16px 0 26px !important; }

    /* 舞台：高度由图内的静态卡片撑开 */
    #jtPatent .jt-patent-stage {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    /* 中间那张：普通流，撑起舞台高度 */
    #jtPatent .jt-patent-item.is-c0 {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        display: block !important;
        width: 34vw !important;
        margin: 0 auto !important;
        transform: scale(1) !important;
    }

    /* 两侧 / 屏幕外的卡片：相对舞台垂直居中 */
    #jtPatent .jt-patent-item:not(.is-c0) {
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 34vw !important;
        margin-left: -17vw !important;
    }

    /* 主标题 / 副标题：紧凑、居中、层级最高 */
    #jtPatent .jt-patent-label {
        position: relative !important;
        z-index: 30 !important;
        min-height: 0 !important;
        margin: 0 0 6px !important;
        padding: 0 16px !important;
        display: block !important;
        text-align: center !important;
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
    }
    #jtPatent .jt-patent-slogan {
        position: relative !important;
        z-index: 30 !important;
        margin: 0 0 10px !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }
    #jtPatent .jt-patent-caption {
        position: relative !important;
        z-index: 30 !important;
        margin: 12px 0 0 !important;
        padding: 0 16px !important;
        text-align: center !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
        white-space: normal !important;
    }
}


/* ============================================================================
   patent-mobile-fix10 ｜ 副标题彻底离开滚动区（真正留出空白间距）
   ----------------------------------------------------------------------------
   1) 副标题与图册之间给足 24px 间隙，且副标题本身不再有任何 transform；
   2) 中间的证书是普通流元素（is-c0），不会再向上溢出压到文字；
   3) 两侧卡片只在舞台内部居中，不参与文字区的排版。
   ========================================================================== */
@media (max-width: 820px) {
    #jtPatent .jt-patent-slogan {
        position: relative !important;
        top: auto !important;
        z-index: 30 !important;
        margin: 0 0 24px !important;
        padding: 0 16px !important;
        transform: none !important;
        text-align: center !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 1.5 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
    }

    #jtPatent .jt-patent-stage {
        margin: 0 !important;
        padding: 0 !important;
        height: auto !important;
    }

    /* 中间证书：普通流、无位移，绝对不向上溢出 */
    #jtPatent .jt-patent-item.is-c0 {
        position: relative !important;
        top: auto !important;
        transform: scale(1) !important;
        margin: 0 auto !important;
    }

    /* 两侧证书：只在舞台内居中 */
    #jtPatent .jt-patent-item:not(.is-c0) {
        position: absolute !important;
        top: 50% !important;
    }
}


/* ============================================================================
   patent-mobile-fix11 ｜ 主标题 / 副标题 / 图册 三段之间各自留足间隙
   ----------------------------------------------------------------------------
   原来 label 只给了 6px 下间距，34px 的字视觉上会贴到副标题 → 看着像压住。
   这里把三段间距按字号重设，并把整块内容整体下移一点。
   ========================================================================== */
@media (max-width: 820px) {
    /* 整块下移 */
    #jtPatent { padding-top: 22px !important; }

    /* 主标题：34px，行高 1.25，下方 16px */
    #jtPatent .jt-patent-label {
        margin: 0 0 16px !important;
        padding: 0 16px !important;
        font-size: 34px !important;
        line-height: 1.25 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        color: #1a1a1a !important;
        text-align: center !important;
    }

    /* 副标题：15px，下方 28px 再进图册区 */
    #jtPatent .jt-patent-slogan {
        margin: 0 0 28px !important;
        padding: 0 16px !important;
        font-size: 15px !important;
        line-height: 1.6 !important;
        letter-spacing: 1px !important;
        text-indent: 1px;
        color: #4a6785 !important;
        text-align: center !important;
    }

    /* 说明文字与图册之间也留一点 */
    #jtPatent .jt-patent-caption {
        margin: 16px 0 0 !important;
    }
}


/* ============================================================================
   patent-mobile-fix12 ｜ 版块加高 / 图册下移 / 标题与副标题再拉开
   ========================================================================== */
@media (max-width: 820px) {
    /* ① 版块整体加高：上下留白都比之前大 */
    #jtPatent {
        padding-top: 40px !important;
        padding-bottom: 46px !important;
    }

    /* ② 主标题与副标题之间拉开到 26px */
    #jtPatent .jt-patent-label {
        margin: 0 0 26px !important;
    }

    /* ③ 图册整体再下移：副标题与图册之间加到 40px */
    #jtPatent .jt-patent-slogan {
        margin: 0 0 40px !important;
    }

    /* ④ 说明文字与图册之间也跟着放宽 */
    #jtPatent .jt-patent-caption {
        margin: 20px 0 0 !important;
    }
}


/* ============================================================================
   rd-mobile-grid ｜ 手机端「10 大科研中心」：标题居中 + 两列网格，一次 4 个
   ----------------------------------------------------------------------------
   · 标题与「自研技术」同规格：34px、居中、深色；
   · 卡片从「横向 2 个」改成「2 列 × 2 行 = 4 个」的网格排布；
   · 轮播轨道里 JS 复制的副本（aria-hidden=true）在手机端隐藏，避免重复；
   · app.js 的手机端横向轮播已关闭（见 JT_RD_STEP 开头）。
   ========================================================================== */
@media (max-width: 820px) {
    /* ---------- 标题 ---------- */
    #jtRd { min-height: 0 !important; padding: 30px 0 34px !important; }
    #jtRd .jt-hs-inner { padding: 0 16px !important; }
    #jtRd .jt-rd-head {
        margin: 0 0 18px !important;
        padding: 0 !important;
        text-align: center !important;
    }
    #jtRd .jt-rd-head h2 {
        font-size: 34px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: 3px !important;
        text-indent: 3px;
        text-align: center !important;
        color: #1a1a1a !important;
        text-shadow: none !important;
    }

    /* ---------- 卡片区：两列网格 ---------- */
    #jtRd .jt-rd-marquee {
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    #jtRd .jt-rd-track {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        transform: none !important;
        will-change: auto !important;
    }
    #jtRd .jt-rd-marquee .jt-rd-card {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        border-radius: 12px !important;
        box-shadow: 0 6px 18px rgba(18, 60, 110, .10) !important;
    }
    /* 复制出来用于循环的那一份不要显示 */
    #jtRd .jt-rd-track .jt-rd-card[aria-hidden="true"] { display: none !important; }

    /* 图片与文字比例 */
    #jtRd .jt-rd-marquee .jt-rd-media { height: 34vw !important; }
    #jtRd .jt-rd-marquee .jt-rd-card h3 {
        padding: 12px 8px !important;
        font-size: 13px !important;
        line-height: 1.5 !important;
        color: #1a1a1a !important;
    }
}


/* ============================================================================
   rd-mobile-slider ｜ 手机端「10 大科研中心」：4 个一组（2×2）横向平滑滑动
   ----------------------------------------------------------------------------
   · 桌面/平板仍用 .jt-rd-marquee（一排 4 个横向按条轮动）；
   · 手机端隐藏它，改用 .jt-rd-slider：每一页 = 2×2 的 4 张卡，
     整页向左平滑滑动，JS 在末尾复制第一页 → 无缝循环；
   · 每页正好 4 个，10 条数据由 PHP 补成 4+4+4（最后一页用开头补齐）。
   ========================================================================== */
/* 桌面端默认不显示手机滑板 */
.jt-rd-slider { display: none; }

@media (max-width: 820px) {
    /* 关掉桌面那套横向轨道 */
    #jtRd .jt-rd-marquee { display: none !important; }

    /* 滑板：一屏一页，横向排列，整块做位移 */
    #jtRd .jt-rd-slider {
        display: block !important;
        position: relative;
        width: 100%;
        overflow: hidden;
        margin: 0;
        padding: 0;
    }
    #jtRd .jt-rd-slides {
        display: flex;
        flex-wrap: nowrap;
        will-change: transform;
        transition: transform .65s cubic-bezier(.4, .05, .2, 1);
    }
    /* 每一页 = 2 列 × 2 行 = 4 个 */
    #jtRd .jt-rd-slide {
        flex: 0 0 100%;
        width: 100%;
        min-width: 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        align-content: start;
    }

    /* 卡片：白底圆角，图片 34vw 高，标题两行内 */
    #jtRd .jt-rd-slide .jt-rd-card {
        display: block;
        width: 100%;
        min-width: 0;
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 6px 18px rgba(18, 60, 110, .10);
        text-decoration: none;
    }
    #jtRd .jt-rd-slide .jt-rd-media {
        height: 34vw;
        overflow: hidden;
    }
    #jtRd .jt-rd-slide .jt-rd-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    #jtRd .jt-rd-slide .jt-rd-card h3 {
        margin: 0;
        padding: 10px 8px;
        font-size: 13px;
        line-height: 1.45;
        font-weight: 500;
        text-align: center;
        color: #1a1a1a;
    }
}


/* ============================================================================
   cert-detail-width ｜ 证书/专利详情页：内容区宽度 = 全站容器 × 0.8
   ----------------------------------------------------------------------------
   .jt-container 本身是 var(--jt-max)（1200 / 1400 / 1640 / 2000 分档），
   这里按需求收窄 20%：960 / 1120 / 1312 / 1600，仍然随分辨率自动变化。
   ========================================================================== */
.jt-cert-detail-sec .jt-container {
    max-width: calc(var(--jt-max) * 0.8);
}


/* ============================================================================
   cert-detail-center ｜ 证书/专利详情页：标题（含摘要）水平居中
   ========================================================================== */
.jt-cert-detail-sec .jt-cert-detail-title {
    text-align: center;
}
.jt-cert-detail-sec .jt-lead {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

/* ===================== 专利成果：去掉代码里的白色蒙板层（2026-11-04） ===================== */
/* patent-mask-off
   背景图（bg-05.jpg）已把白色圆角卡片一起设计在图里，
   这里不再用伪元素铺一层半透明白 + 毛玻璃，避免背景发灰、卡片边缘重影。
   只关掉 ::before 这一层，卡片本身的布局/裁切（overflow:hidden）保持不变。 */
.jt-patent-card::before {
    display: none !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
}

/* ============================================================================
   patent-narrow-right ｜ 专利图册缩窄 + 右侧留空（2026-11-04）
   ----------------------------------------------------------------------------
   背景图里已自带白色卡片，原来图册最右一张证书几乎贴到白层边缘。
   这里两件事：
     ① 证书宽度 20vw → 18.6vw（整体缩窄约 7%，等比）；
     ② 轮播区右侧留出 3.2vw 内边距 —— 证书以轮播区中心为基准，
        留白后中心整体左移，最右那张自然与白层边缘拉开距离。
   说明文字宽度 100%，与图册同步收窄，居中不跑偏。
   ========================================================================== */
@media (min-width: 1001px) {
    .jt-patent .jt-patent-item {
        width: 18.6vw;
        margin-left: -9.3vw;
    }
    .jt-patent .jt-patent-main {
        padding-right: 3.2vw;
        box-sizing: border-box;
    }
}

/* ============================================================================
   pagehead-text-style ｜ 内页头图文字（2026-11-05 以 base50 专题页为基准统一）
   ----------------------------------------------------------------------------
   全站内页头图文字一套参数（与 .b5-hero 的专题页 banner 完全一致）：
     文字区：左起 10.5%、宽度 52%、垂直居中（flex 已由 .jt-pagehead 提供）
     大标题 = 栏目名：白色 #fff、700、clamp(20px, 2.4vw, 46px)、行高 1.15、字距 .02em
     副标题 = 栏目头图标题（后台可用 | 换行）：白 94%、clamp(14px, 1.4vw, 40px)、行高 1.5
     面包屑：头图里不显示（DOM 保留，另有 JSON-LD BreadcrumbList）
   ========================================================================== */
.jt-pagehead .jt-pagehead-inner {
    display: block;
    padding: 0;
    max-width: none;
    width: 100%;
}

/* 文字块：与专题页 banner 同样的左缩进与宽度上限 */
.jt-pagehead .jt-pagehead-inner > * {
    max-width: 52%;
    margin-left: 10.5%;
}

/* 头图里不显示面包屑（那块像导航条的东西）
   DOM 保留 —— 页面另有 JSON-LD BreadcrumbList，不影响 SEO */
.jt-pagehead .jt-crumb {
    display: none !important;
}

.jt-pagehead h1 {
    font-size: clamp(20px, 2.4vw, 46px);          /* 与 base50 一致（1920 屏 ≈ 46px） */
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: .02em;
    color: #fff;
    /* 左缩进与宽度显式写全，避免被其它高特异性规则清零 */
    margin: 0 0 clamp(7px, .65vw, 13px) 10.5%;
    max-width: 52%;
}

/* 副标题：支持 | 换行（PHP 已转成 <br>）
   ⚠ 这里必须自带 margin-left / max-width：
   `.jt-pagehead .jt-pagehead-sub` 特异性(0,2,0) 与上面 `> *` 相同，
   若只写 margin:0 会把左缩进清零（副标题贴到最左边）。 */
.jt-pagehead p,
.jt-pagehead .jt-pagehead-sub {
    margin: 0 0 0 10.5%;
    max-width: 52%;
    font-size: clamp(14px, 1.4vw, 40px);          /* 与 base50 一致（1920 屏 ≈ 27px） */
    line-height: 1.5;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .94);
}

/* 文字投影：有头图时保证可读 */
.jt-pagehead--image h1,
.jt-pagehead--image p,
.jt-pagehead--image .jt-pagehead-sub {
    text-shadow: 0 2px 18px rgba(0, 20, 45, .34), 0 1px 2px rgba(0, 20, 45, .2);
}

/* 手机端：与专题页一致 —— 左 6%、宽 88%、标题 18px、副标题 13px */
@media (max-width: 900px) {
    .jt-pagehead .jt-pagehead-inner { padding: 0; }
    .jt-pagehead .jt-pagehead-inner > * {
        max-width: 88%;
        margin-left: 6%;
    }
    .jt-pagehead h1 { font-size: 18px; margin: 0 0 6px 6%; max-width: 88%; }
    .jt-pagehead p,
    .jt-pagehead .jt-pagehead-sub { font-size: 13px; line-height: 1.5; margin: 0 0 0 6%; max-width: 88%; }
}

/* ============================================================================
   jt-card-title-small ｜ 列表页资讯卡片标题：字号缩小、取消加粗（2026-11-05）
   ----------------------------------------------------------------------------
   原 17px + 继承 h3 的 700 字重，长标题占两行会显得很重；
   现改为 15px + 400 + 行高 1.55，两行也不会压过图片。
   ========================================================================== */
.jt-card-title,
.jt-card .jt-card-title {
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.55;
    letter-spacing: 0;
    color: #1f2f3d;
}

@media (max-width: 900px) {
    .jt-card-title,
    .jt-card .jt-card-title {
        font-size: 13.5px !important;
        line-height: 1.6;
    }
}

/* ============================================================================
   hero-mobile-oneline ｜ 手机端首页 Banner 文案（2026-11-05）
   ----------------------------------------------------------------------------
   需求：手机上一句文案要能「一行显示完」，不折行。
   做法：
     ① 字号按视口宽缩到能装下最长一句（后台 banner_lines 最长约 26 字）；
     ② 强制 white-space: nowrap；
     ③ 左右内边距从 20px 收到 12px，多给文案腾 16px。
   最长句 26 字时各屏宽占用：
     320px → 11.0px×26 ≈ 286px（可用 296）✅
     375px → 11.6px×26 ≈ 302px（可用 351）✅
     414px → 12.8px×26 ≈ 333px（可用 390）✅
     430px → 13.3px×26 ≈ 346px（可用 406）✅
   ========================================================================== */
@media (max-width: 820px) {
    .jt-hero-body {
        padding-left: 12px;
        padding-right: 12px;
    }

    /* 主文案：一行 + 给足字号；放不下的长句由 app.js 的 fitHeroText() 自动缩到刚好一行 */
    .jt-hero-lines .jt-hero-title,
    .jt-hero-line .jt-hero-title {
        font-size: clamp(13px, 4.2vw, 26px) !important;   /* 基准调大，JS 只对超长句做收缩 */
        line-height: 1.35;
        letter-spacing: 0;
        white-space: nowrap;                /* 不换行 */
        word-break: keep-all;
        overflow: visible;
    }

    /* 副标题同样一行、比主文案小一档 */
    .jt-hero-line .jt-hero-sub {
        margin-top: 6px;
        font-size: clamp(11.5px, 3.4vw, 20px);
        line-height: 1.4;
        letter-spacing: 0;
        white-space: nowrap;
    }

    /* 文案容器不再限制宽度，避免原本的 max-width 触发折行 */
    .jt-hero-lines,
    .jt-hero-line {
        max-width: none;
        width: 100%;
    }
}

/* 超窄屏（≤340px）基准再降一点（仍然是「能大则大」，不缩到底） */
@media (max-width: 340px) {
    .jt-hero-lines .jt-hero-title,
    .jt-hero-line .jt-hero-title {
        font-size: 14px !important;
    }
    .jt-hero-line .jt-hero-sub {
        font-size: 12px;
    }
}

/* ============================================================================
   hero-slides-by-platform ｜ 首页 Banner 轮播按「端」分组（2026-11-05）
   ----------------------------------------------------------------------------
   后台「首页轮播」每条现在有「所属端」= PC 端 / 手机端，两组各自独立条目、独立数量。
   前台同时输出两组：
     .jt-hero-slides--pc      / .jt-hero-lines--pc      → 只在宽屏显示
     .jt-hero-slides--mobile  / .jt-hero-lines--mobile  → 只在窄屏显示
   ========================================================================== */

/* 宽屏：默认只看 PC 组 */
.jt-hero-slides--pc,
.jt-hero-lines--pc {
    display: block;
}

.jt-hero-slides--mobile,
.jt-hero-lines--mobile {
    display: none;
}

/* 窄屏（≤820px）：换成手机组 */
@media (max-width: 820px) {
    .jt-hero-slides--pc,
    .jt-hero-lines--pc {
        display: none !important;
    }

    .jt-hero-slides--mobile,
    .jt-hero-lines--mobile {
        display: block !important;
    }
}

/* ============================================================================
   about-static-2026-11-06 ｜ 首页「企业介绍」版块：楼体固定贴合版块底
   ----------------------------------------------------------------------------
   原来：
     · 版块高度锁 100vh → 楼体贴的其实是「屏幕底」，屏幕高矮不同位置就跑；
     · 楼体每 20 秒从下往上滑一次（jtBuildingLoop）。
   现在：
     · 版块高度改为与背景切图同比例（1920 : 1080），不再锁 100vh；
     · 内边距同步改用 vw（相对宽度）→ 任何分辨率下文字与楼体的相对位置都一致；
     · 楼体贴版块底、固定显示，取消滑入与循环动画。
   ========================================================================== */
@media (min-width: 821px) {
    #jtAbout {
        height: auto;
        max-height: none;
        min-height: 0;
        aspect-ratio: 1920 / 1080;   /* 与背景图同比例 → 多分辨率等比一致 */
        overflow: hidden;
    }

    /* 文字区：上留白 = 导航高度 + 2.5vw 余量 ——
       2026-11-06 第二次调整：原来只有 4vw（1366 屏 ≈ 55px）**小于固定导航高度**，
       鼠标滚到本版块时左侧正文与右侧数字会被导航条压住。
       现在改成「导航高 + 2.5vw」，任何分辨率都留出导航让位；
       下留白同步从 22.5vw 收到 21vw，把楼体压回一点，给文字腾空间（版块比例不变、等比缩放照旧）。 */
    #jtAbout .jt-hs-inner {
        /* 上留白 = 导航高 + 4.35vw
           （= 2.5vw 基础余量 + 1.85vw，约一行正文：字号 .98vw × 行距 1.88 ≈ 1.84vw） */
        padding-top: calc(var(--jt-header-h) + 4.35vw);
        /* 下留白从 19.5vw 收到 16vw：上边多让了两行，下边把空间还给正文，版块比例不变 */
        padding-bottom: 16vw;
    }

    /* 楼体：彻底去掉位移与动画（同时屏蔽 JS 加的 is-anim / is-in 状态类） */
    #jtAbout .jt-about-building,
    .jt-hs-about.is-anim:not(.is-in) .jt-about-building,
    .jt-hs-about.is-in .jt-about-building {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
    #jtAbout .jt-about-building img {
        transform: none !important;
    }
}

/* ============================================================================
   about-text-typo-2026-11-06 ｜ 首页「企业介绍」左侧正文：字距 / 行距放大
   ----------------------------------------------------------------------------
   上一版为了不让正文压到楼体，把行距压到了 1.6、字距 .01em，看着偏挤。现调整为：
     · 字号   .92vw → .98vw   （1920 屏 17.7 → 18.8px，略增一档）
     · 行距   1.6   → 1.88    （主要诉求：行与行之间更舒展）
     · 字距   .01em → .06em   （主要诉求：字与字之间更透气）
     · 段距   .45vw → .62vw   （随行距同步放大）
   · 全部使用 vw / em 相对单位 → 与版块一起等比缩放，任何分辨率下都不变形。
   · 文字列加 z-index：行距变大后正文底边更靠下，避免被楼体（z-index:1）盖住。
   ========================================================================== */
@media (min-width: 821px) {
    #jtAbout .jt-about-cols { position: relative; z-index: 2; }

    #jtAbout .jt-about-text {
        font-size: calc(.98vw * var(--k));
        line-height: 1.88;
        letter-spacing: .06em;
    }

    #jtAbout .jt-about-text p {
        margin: 0 0 calc(.62vw * var(--k));
    }
}

/* ============================================================================
   hero-text-2of3-2026-11-06 ｜ 首页视频 Banner 的切换文案位置
   ----------------------------------------------------------------------------
   原来：.jt-hero 是 flex + align-items:center → 文案垂直居中。
   现在：只在「视频模式」下把文案块改为绝对定位，中心落在版块高度的 **2/3** 处。
     · 用 top:80% + translate(-50%,-50%) → 任何屏幕高度下都在同一比例位置，
       不会像「固定 px 偏移」那样在矮屏 / 高屏上跑偏；
     · 轮播图模式（.is-slider）不受影响，仍保持居中；
     · 只改定位方式，文字居中(text-align)、最大宽度、动画都保持原样。
   ========================================================================== */
.jt-hero.has-video .jt-hero-body {
    position: absolute;
    left: 50%;
    top: 80%;                     /* 2026-11-06：由 2/3 处继续下移到 80% 处 */
    transform: translate(-50%, -50%);
    margin: 0;
    padding: 0 20px;              /* 上下留白交给定位，只保留左右边距 */
    width: 100%;
}

/* 手机端：文字块更高、版块更矮（约 460px），跟到 74% 避免贴底被裁 */
@media (max-width: 820px) {
    .jt-hero.has-video .jt-hero-body {
        top: 74%;
    }
}

/* ============================================================================
   hero-dual-2026-11-06 ｜ 首页 Banner 按端渲染（PC / 手机各一套内容）
   ----------------------------------------------------------------------------
   页面同时输出 .jt-hero-group--pc 与 .jt-hero-group--mobile：
     · 每端可以是「轮播图」（用轮播图管理里对应端的图）或「视频」（本端视频 + 文案）；
     · 下面按断点只显示对应的一组，另一组不参与视觉；
     · 播放按钮同理（PC 只显示 PC 的、手机只显示手机的）。
   注：按钮的 display:none（自动播放开启时由 PHP 输出行内样式）优先级高于这里的类规则，
       所以「自动播放关闭时才出现按钮」的逻辑不受影响。
   ========================================================================== */
.jt-hero-group {
    position: absolute;
    inset: 0;
}
.jt-hero-group--mobile { display: none; }

@media (max-width: 820px) {
    .jt-hero-group--pc     { display: none; }
    .jt-hero-group--mobile { display: block; }
}

/* 播放按钮分端 */
.jt-hero-play--mobile { display: none; }

@media (max-width: 820px) {
    .jt-hero-play--pc     { display: none !important; }
    .jt-hero-play--mobile { display: inline-flex; }
}

/* ============================================================================
   hero-slider-ratio-2026-11-06 ｜ 轮播图模式：整图完整显示，高度按图片比例
   ----------------------------------------------------------------------------
   需求：首页 Banner 用「轮播图」时，图片按**整宽**显示、高度由图片自身比例推导，
         不再用后台填的 Banner 高度，也不再 object-fit:cover 裁切。
   做法：
     · 对应的端（PC 或手机）给 <section> 加 is-slider-pc / is-slider-mobile；
     · 该端的高度限制放开（min-height:0、height:auto），顶部 padding 归零，图片顶到最上
       （导航本来就是浮层，不会压住图片）；
     · 该端的轮播组回到文档流，**第一张图**负责撑开高度，其余绝对定位叠上去做淡入淡出；
     · 图片 width:100% + height:auto → 完整可见、不变形。
   注意：视频模式完全不受影响（仍占满整屏）。
   ========================================================================== */

/* ---------- 桌面：PC 端是轮播图 ---------- */
@media (min-width: 821px) {
    body.jt-page-home .jt-hero.is-slider-pc,
    .jt-hero.is-slider-pc {
        min-height: 0;
        height: auto;
        padding-top: 0;
        display: block;
    }
    .jt-hero.is-slider-pc .jt-hero-group--slider {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-pc .jt-hero-group--slider .jt-hero-slides {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-pc .jt-hero-group--slider .jt-hero-slide {
        position: absolute;
        inset: 0;
    }
    .jt-hero.is-slider-pc .jt-hero-group--slider .jt-hero-slide:first-child {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-pc .jt-hero-group--slider .jt-hero-slide img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}

/* ---------- 手机：手机端是轮播图 ---------- */
@media (max-width: 820px) {
    body.jt-page-home .jt-hero.is-slider-mobile,
    .jt-hero.is-slider-mobile {
        min-height: 0;
        height: auto;
        padding-top: 0;
        display: block;
    }
    .jt-hero.is-slider-mobile .jt-hero-group--slider {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-mobile .jt-hero-group--slider .jt-hero-slides {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-mobile .jt-hero-group--slider .jt-hero-slide {
        position: absolute;
        inset: 0;
    }
    .jt-hero.is-slider-mobile .jt-hero-group--slider .jt-hero-slide:first-child {
        position: relative;
        inset: auto;
    }
    .jt-hero.is-slider-mobile .jt-hero-group--slider .jt-hero-slide img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}

/* ============================================================================
   rd-banner-2026-11-06 ｜ 首页「科研中心」版块：整块只放一张设计稿整图
   ----------------------------------------------------------------------------
   · 原「Research Centers + 4 张卡」的内容与背景已删除；
   · 图 1920×1081（比例约 16:9），宽度 100% + 高度自适应
     → 任意分辨率等比缩放，不裁切、不变形，与首屏视口高度基本吻合；
   · 整块可点击，跳 /page.php?code=base50-rd（10 大科研中心专题）。
   ========================================================================== */
.jt-rd-banner-sec {
    display: block;
    margin: 0;
    padding: 0;
    line-height: 0;          /* 去掉图片底部 1~4px 缝隙 */
    background: #fff;
    overflow: hidden;
}

.jt-rd-banner {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.jt-rd-banner img {
    display: block;
    width: 100%;
    height: auto;            /* 高度 = 宽度 × (1081/1920) */
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    vertical-align: top;
}
/* ============================================================================
   about-bg-2026-11-09 ｜ 首页「企业介绍」版块（#jtAbout）换背景
   ----------------------------------------------------------------------------
   改动：
     · 背景图 bg-04.jpg → bg-about.jpg（1920×1080，楼房已做进图里）；
     · 删掉底部独立的楼房图片层 .jt-about-building；
     · 原来内边距底部留了 calc(62vh - 导航高) 专门给楼房让位，
       楼房去掉后这里必须收回，否则下方会空出一大片。
   保持不变：文字 / 数字版块的顶部位置（由 padding-top 控制）、字号、颜色、间距。
   ========================================================================== */
.jt-hs-about .jt-hs-inner {
    padding-bottom: clamp(48px, 7vh, 110px);
}

/* 楼房层已移除，相关规则不再命中（保留原规则便于回溯） */
#jtAbout .jt-about-building { display: none !important; }

@media (max-width: 820px) {
    .jt-hs-about .jt-hs-inner {
        padding-bottom: 32px;
    }
}