@charset "utf-8";
/* ==========================================================================
   成朗龙骨设备 - 主样式
   主色 #153f8f ｜ 高端工业风 ｜ 响应式
   ========================================================================== */

/* ---------- 变量 ---------- */
:root {
    --pri: #153f8f;
    --pri-deep: #0e2f6e;
    --pri-dark: #0a2454;
    --pri-ink: #071a3f;
    --pri-light: #2a5cb8;
    --pri-soft: #eef2fa;
    --gold: #c9a24c;
    --gold-l: #e0be7a;
    --ink: #16202f;
    --ink-2: #2c3a4e;
    --gray: #5e6b7d;
    --gray-l: #8b97a8;
    --line: #e2e8f2;
    --bg: #ffffff;
    --bg-soft: #f5f7fb;
    --bg-dark: #08183a;
    --wrap: 1320px;
    --gap: 24px;
    --radius: 4px;
    --shadow-s: 0 2px 10px rgba(16, 38, 82, .06);
    --shadow-m: 0 12px 34px rgba(16, 38, 82, .10);
    --shadow-l: 0 26px 60px rgba(10, 30, 70, .16);
    --ease: cubic-bezier(.22, .61, .36, 1);
    --font: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Source Han Sans SC", "Helvetica Neue", Arial, sans-serif;
    --hd-top: 84px;
    --hd-nav: 56px;
}

/* ---------- 重置 ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 150px;
}

body {
    margin: 0;
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.75;
    color: var(--ink-2);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; color: var(--ink); line-height: 1.3; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; transition: color .28s var(--ease); }
img { max-width: 100%; border: 0; vertical-align: middle; }
button { font-family: inherit; border: 0; background: none; cursor: pointer; color: inherit; }
input, textarea { font-family: inherit; }
::selection { background: var(--pri); color: #fff; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }

/* ---------- 通用板块头 ---------- */
.sec { position: relative; padding: 96px 0; }
.sec-hd { max-width: 780px; margin: 0 auto 56px; text-align: center; }

.sec-en {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--pri);
    padding-bottom: 12px;
    position: relative;
}
.sec-en::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 34px;
    height: 2px;
    margin-left: -17px;
    background: var(--pri);
}

.sec-t {
    font-size: clamp(24px, 2.6vw, 38px);
    font-weight: 800;
    letter-spacing: -.5px;
    margin: 16px 0 14px;
}
.sec-d {
    font-size: 15px;
    color: var(--gray);
    line-height: 1.9;
    margin: 0 auto;
    max-width: 700px;
}

.sec-hd--light .sec-en { color: var(--gold-l); }
.sec-hd--light .sec-t { color: #fff; }
.sec-hd--light .sec-d { color: rgba(255, 255, 255, .72); }

/* ---------- 按钮 ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 50px;
    padding: 0 30px;
    font-size: 15px;
    font-weight: 600;
    border-radius: var(--radius);
    transition: all .34s var(--ease);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
}
.btn i { font-size: 13px; transition: transform .34s var(--ease); }
.btn:hover i { transform: translateX(4px); }

.btn-pri {
    color: #fff;
    background: var(--pri);
    box-shadow: 0 10px 26px rgba(21, 63, 143, .26);
    /* 建立独立层叠上下文，供 ::before 用负 z-index 沉到文字之下 */
    isolation: isolate;
}
.btn-pri::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(120deg, var(--pri-light), var(--pri-deep));
    opacity: 0;
    transition: opacity .34s var(--ease);
}
.btn-pri > * { position: relative; z-index: 1; }
.btn-pri:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(21, 63, 143, .34); }
.btn-pri:hover::before { opacity: 1; }

.btn-ghost {
    color: var(--pri);
    border: 1px solid rgba(21, 63, 143, .28);
    background: rgba(21, 63, 143, .03);
}
.btn-ghost:hover { background: var(--pri); color: #fff; border-color: var(--pri); }

.btn-line {
    color: var(--pri);
    border: 1px solid rgba(21, 63, 143, .22);
}
.btn-line:hover { background: var(--pri); color: #fff; border-color: var(--pri); }

/* ==========================================================================
   头部
   ========================================================================== */
.hd {
    position: sticky;
    top: 0;
    z-index: 90;
    background: #fff;
    transition: box-shadow .3s var(--ease);
}
.hd.is-stuck { box-shadow: 0 6px 24px rgba(10, 30, 70, .10); }

/* 上排 */
.hd-top {
    height: var(--hd-top);
    border-bottom: 1px solid var(--line);
    transition: height .34s var(--ease);
}
.hd-top-in { display: flex; align-items: center; justify-content: space-between; height: 100%; }

.logo { display: flex; align-items: center; gap: 12px; flex: none; }
.logo-mark {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius);
    background: linear-gradient(140deg, var(--pri), var(--pri-deep));
    color: #fff;
    font-size: 19px;
    box-shadow: 0 8px 20px rgba(21, 63, 143, .28);
    flex: none;
    transition: transform .4s var(--ease);
}
.logo:hover .logo-mark { transform: rotate(-8deg) scale(1.04); }
.logo-word {
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.4px;
    color: var(--ink);
    line-height: 1.2;
    white-space: nowrap;
}

.hd-act { display: flex; align-items: center; gap: 16px; flex: none; }
.hd-tel { display: flex; align-items: center; gap: 12px; }
.hd-tel-ico {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--pri-soft);
    color: var(--pri);
    font-size: 15px;
}
.hd-tel-txt { display: flex; flex-direction: column; line-height: 1.25; }
.hd-tel-txt em { font-style: normal; font-size: 12px; color: var(--gray-l); letter-spacing: .04em; }
.hd-tel-txt b {
    font-size: 21px;
    font-weight: 800;
    color: var(--pri);
    letter-spacing: .2px;
    font-variant-numeric: tabular-nums;
}

.hd-search-btn {
    width: 44px;
    height: 44px;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    color: var(--ink-2);
    font-size: 15px;
    transition: all .3s var(--ease);
}
.hd-search-btn:hover { background: var(--pri); border-color: var(--pri); color: #fff; }

/* 汉堡 */
.burger { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 11px; }
.burger span { display: block; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .34s var(--ease), opacity .24s; }
.burger span + span { margin-top: 5px; }
.burger.is-on span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-on span:nth-child(2) { opacity: 0; }
.burger.is-on span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 导航条 */
.hd-nav { background: var(--pri); position: relative; }
.hd-nav::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .22), transparent);
}
.hd-nav-in { display: flex; align-items: center; justify-content: center; height: var(--hd-nav); }

.nav { display: flex; align-items: center; height: 100%; }
.nav-item { position: relative; height: 100%; display: flex; align-items: center; }

.nav-a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 100%;
    padding: 0 22px;
    font-size: 15.5px;
    font-weight: 500;
    color: rgba(255, 255, 255, .92);
    white-space: nowrap;
    position: relative;
}
.nav-a .caret { font-size: 10px; opacity: .7; transition: transform .3s var(--ease); }
.nav-a::after {
    content: "";
    position: absolute;
    left: 22px; right: 22px; bottom: 0;
    height: 3px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .32s var(--ease);
}
.nav-item:hover .nav-a,
.nav-a.on { color: #fff; }
.nav-item:hover .nav-a::after,
.nav-a.on::after { transform: scaleX(1); }
.nav-item:hover .nav-a .caret { transform: rotate(180deg); }

/* 下拉 */
.drop {
    position: absolute;
    left: 50%;
    top: 100%;
    min-width: 224px;
    transform: translate(-50%, 10px);
    background: #fff;
    border-radius: 0 0 var(--radius) var(--radius);
    box-shadow: var(--shadow-l);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s var(--ease), transform .34s var(--ease), visibility .3s;
    z-index: 60;
    overflow: hidden;
}
.drop::before {
    content: "";
    position: absolute;
    left: 0; right: 0; top: 0;
    height: 3px;
    background: var(--pri);
}
.nav-item:hover .drop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}
.drop-list { padding: 10px 0; }
.drop-list a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 24px;
    font-size: 14.5px;
    color: var(--ink-2);
    position: relative;
    transition: all .26s var(--ease);
}
.drop-list a i { font-size: 10px; color: var(--pri); opacity: 0; transform: translateX(-6px); transition: all .26s var(--ease); }
.drop-list a::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--pri);
    transform: scaleY(0);
    transition: transform .26s var(--ease);
}
.drop-list a:hover { background: var(--pri-soft); color: var(--pri); padding-left: 30px; }
.drop-list a:hover i { opacity: 1; transform: translateX(0); }
.drop-list a:hover::before { transform: scaleY(1); }


/* 搜索浮层 */
.search-layer {
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(6, 18, 44, .82);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 18vh;
    opacity: 0;
    visibility: hidden;
    transition: opacity .32s var(--ease), visibility .32s;
}
.search-layer.is-on { opacity: 1; visibility: visible; }
.search-box { width: min(680px, calc(100vw - 48px)); position: relative; transform: translateY(-14px); transition: transform .36s var(--ease); }
.search-layer.is-on .search-box { transform: translateY(0); }

.search-form {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border-radius: var(--radius);
    padding: 8px 8px 8px 22px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .4);
}
.search-form-ico { color: var(--gray-l); font-size: 17px; }
.search-form input {
    flex: 1;
    min-width: 0;
    height: 46px;
    border: 0;
    outline: none;
    font-size: 16px;
    color: var(--ink);
    background: transparent;
}
.search-form input::placeholder { color: var(--gray-l); }
.search-form button {
    height: 46px;
    padding: 0 30px;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    background: var(--pri);
    border-radius: 2px;
    transition: background .28s;
}
.search-form button:hover { background: var(--pri-deep); }

.search-tip { margin-top: 18px; font-size: 13.5px; color: rgba(255, 255, 255, .62); text-align: center; }
.search-tip a { color: rgba(255, 255, 255, .9); margin-left: 8px; border-bottom: 1px dashed rgba(255, 255, 255, .3); }
.search-tip a:hover { color: var(--gold-l); }

.search-close {
    position: absolute;
    right: 0;
    top: -54px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .3);
    color: #fff;
    font-size: 17px;
    transition: all .3s;
}
.search-close:hover { background: rgba(255, 255, 255, .14); transform: rotate(90deg); }

/* ==========================================================================
   移动端抽屉
   ========================================================================== */
.mnav-mask {
    position: fixed;
    inset: 0;
    background: rgba(6, 18, 44, .6);
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s, visibility .3s;
}
.mnav-mask.is-on { opacity: 1; visibility: visible; }

.mnav {
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: min(330px, 86vw);
    background: #fff;
    z-index: 110;
    display: flex;
    flex-direction: column;
    transform: translateX(-102%);
    transition: transform .38s var(--ease);
    /* 关闭时不能留阴影：抽屉移出屏外，阴影仍会投到视口左边缘 */
    box-shadow: none;
}
.mnav.is-on {
    transform: translateX(0);
    box-shadow: 20px 0 60px rgba(6, 18, 44, .2);
}

.mnav-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px;
    background: linear-gradient(120deg, var(--pri), var(--pri-deep));
    color: #fff;
}
.mnav-title { font-size: 15px; font-weight: 700; letter-spacing: .2px; }
.mnav-close { width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #fff; font-size: 15px; flex: none; }

.mnav-body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 6px 0; }

.mnav-a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 20px;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
}
.mnav-caret { font-size: 11px; color: var(--gray-l); transition: transform .3s var(--ease); }
.mnav-item.is-open > .mnav-a { color: var(--pri); }
.mnav-item.is-open .mnav-caret { transform: rotate(180deg); }

.mnav-sub {
    max-height: 0;
    overflow: hidden;
    background: var(--bg-soft);
    transition: max-height .38s var(--ease);
}
.mnav-sub a {
    display: block;
    padding: 12px 20px 12px 34px;
    font-size: 14.5px;
    color: var(--gray);
    border-bottom: 1px solid rgba(226, 232, 242, .8);
    position: relative;
}
.mnav-sub a::before {
    content: "";
    position: absolute;
    left: 22px; top: 50%;
    width: 5px; height: 5px;
    margin-top: -2.5px;
    border-radius: 50%;
    background: var(--pri);
    opacity: .4;
}
.mnav-ft { padding: 16px 20px; border-top: 1px solid var(--line); }
.mnav-ft a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    border-radius: var(--radius);
    background: var(--pri);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
}

/* ==========================================================================
   首屏轮播
   ========================================================================== */
.hero {
    position: relative;
    height: clamp(360px, 33.34vw, 640px);
    overflow: hidden;
    background: var(--pri-ink);
}
.hero-track { position: absolute; inset: 0; }
.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.045);
    transition: opacity 1s var(--ease), transform 6.5s linear;
    will-change: opacity, transform;
}
.hero-slide.is-on { opacity: 1; transform: scale(1); z-index: 2; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* 移动端专用轮播（图组 2，750×563），桌面隐藏 */
.hero--mb { display: none; }

.hero-arrow {
    position: absolute;
    top: 50%;
    z-index: 6;
    width: 54px;
    height: 54px;
    margin-top: -27px;
    border-radius: 50%;
    color: #fff;
    font-size: 17px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .34);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    display: grid;
    place-items: center;
    transition: all .34s var(--ease);
    opacity: 0;
    transform: translateX(-8px);
}
.hero-next { right: 34px; transform: translateX(8px); }
.hero-prev { left: 34px; }
.hero:hover .hero-arrow { opacity: 1; transform: translateX(0); }
.hero-arrow:hover { background: var(--pri); border-color: var(--pri); box-shadow: 0 10px 26px rgba(0, 0, 0, .3); }

.hero-dots {
    position: absolute;
    left: 50%;
    bottom: 40px;
    z-index: 6;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 10px;
}
.hero-dot {
    width: 26px;
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .38);
    transition: all .34s var(--ease);
    padding: 0;
}
.hero-dot.is-on { width: 46px; background: var(--gold); }


/* ==========================================================================
   产品中心
   ========================================================================== */
.sec-prod { background: var(--bg-soft); }

.pt-tabs {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 40px;
}
.pt-tab {
    height: 46px;
    padding: 0 26px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink-2);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 2px;
    transition: all .32s var(--ease);
    position: relative;
    white-space: nowrap;
}
.pt-tab:hover { color: var(--pri); border-color: rgba(21, 63, 143, .32); background: #fff; transform: translateY(-2px); }
.pt-tab.is-on {
    color: #fff;
    border-color: transparent;
    background: var(--pri);
    box-shadow: 0 10px 24px rgba(21, 63, 143, .26);
    transform: translateY(-2px);
}

.pt-panel { display: none; }
.pt-panel.is-on { display: block; animation: panelIn .5s var(--ease); }
@keyframes panelIn {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

.pt-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--gap);
}

.pcard {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    transition: all .4s var(--ease);
}
.pcard-pic {
    position: relative;
    aspect-ratio: 790 / 556;
    overflow: hidden;
    background: #eaeef6;
}
.pcard-pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
}
.pcard-ov {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(180deg, rgba(8, 24, 58, 0), rgba(8, 24, 58, .62));
    opacity: 0;
    transition: opacity .4s var(--ease);
}
.pcard-ov i {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: var(--pri);
    font-size: 15px;
    transform: scale(.7);
    transition: transform .4s var(--ease);
}
.pcard:hover { transform: translateY(-6px); border-color: transparent; box-shadow: var(--shadow-m); }
.pcard:hover .pcard-pic img { transform: scale(1.07); }
.pcard:hover .pcard-ov { opacity: 1; }
.pcard:hover .pcard-ov i { transform: scale(1); }

/* 图片缺失（文件 404 或系统占位图）：改用品牌色占位块，不出灰块 */
.is-nopic .pcard-pic,
.is-nopic .acard-pic,
.is-nopic .nitem-pic {
    display: grid;
    place-items: center;
    background: linear-gradient(150deg, #eef3fb 0%, #dfe8f6 100%);
}
.is-nopic .pcard-pic img,
.is-nopic .acard-pic img,
.is-nopic .nitem-pic img { display: none; }
.is-nopic .pcard-pic > i,
.is-nopic .acard-pic > i {
    position: relative;
    z-index: 1;
    font-size: 36px;
    color: rgba(21, 63, 143, .2);
    transition: color .4s var(--ease), transform .4s var(--ease);
}
.is-nopic .nitem-pic > i {
    font-size: 28px;
    color: rgba(21, 63, 143, .2);
    transition: color .4s var(--ease);
}
.is-nopic:hover .pcard-pic > i,
.is-nopic:hover .acard-pic > i { color: rgba(21, 63, 143, .55); transform: scale(1.08); }
.is-nopic:hover .nitem-pic > i { color: rgba(21, 63, 143, .45); }

.pcard-bd { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.pcard-t {
    font-size: 16.5px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 8px;
    transition: color .3s;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pcard:hover .pcard-t { color: var(--pri); }
.pcard-d {
    font-size: 13.5px;
    color: var(--gray);
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 16px;
}
.pcard-more {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pri);
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.pcard-more i { font-size: 11px; transition: transform .3s var(--ease); }
.pcard:hover .pcard-more i { transform: translateX(5px); }

/* ==========================================================================
   四大优势
   ========================================================================== */
.sec-adv {
    background: linear-gradient(150deg, var(--pri-dark) 0%, var(--pri-deep) 46%, #123a83 100%);
    color: #fff;
    overflow: hidden;
}
.adv-bg {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 12% 18%, rgba(42, 92, 184, .5), transparent 46%),
        radial-gradient(circle at 88% 82%, rgba(201, 162, 76, .16), transparent 44%);
    pointer-events: none;
}
.adv-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(circle at 50% 40%, #000, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 50% 40%, #000, transparent 78%);
}
.sec-adv .wrap { position: relative; z-index: 2; }

.adv-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}
.adv {
    position: relative;
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius);
    overflow: hidden;
    transition: all .42s var(--ease);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}
.adv::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 3px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .42s var(--ease);
}
.adv:hover {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(201, 162, 76, .5);
    transform: translateY(-8px);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .3);
}
.adv:hover::after { transform: scaleX(1); }

.adv-pic { position: relative; aspect-ratio: 790 / 500; overflow: hidden; }
.adv-pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.adv:hover .adv-pic img { transform: scale(1.08); }
.adv-pic::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 24, 58, .1), rgba(8, 24, 58, .55));
}
.adv-no {
    position: absolute;
    left: 20px;
    bottom: 14px;
    z-index: 2;
    font-size: 34px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    color: rgba(255, 255, 255, .82);
    letter-spacing: -2px;
    text-shadow: 0 4px 18px rgba(0, 0, 0, .4);
}
.adv-bd { padding: 22px 22px 26px; }
.adv-t {
    font-size: 19px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 10px;
    letter-spacing: .3px;
}
.adv-d {
    font-size: 13.5px;
    line-height: 1.85;
    color: rgba(255, 255, 255, .72);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ==========================================================================
   关于我们
   ========================================================================== */
.sec-about { background: #fff; }

.about-grid {
    display: grid;
    grid-template-columns: 1.02fr 1fr;
    gap: 72px;
    align-items: center;
}
.about-pic { position: relative; padding: 0 0 26px 26px; }
.about-pic > img {
    position: relative;
    z-index: 2;
    width: 100%;
    border-radius: var(--radius);
    display: block;
    box-shadow: var(--shadow-m);
}
.about-frame {
    position: absolute;
    left: 0; bottom: 0;
    width: 62%;
    height: 68%;
    border-left: 3px solid var(--gold);
    border-bottom: 3px solid var(--gold);
    z-index: 1;
}
.about-frame::after {
    content: "";
    position: absolute;
    right: -14px; top: -14px;
    width: 100px; height: 100px;
    background-image: radial-gradient(rgba(21, 63, 143, .28) 1.4px, transparent 1.4px);
    background-size: 11px 11px;
}
.about-tag {
    position: absolute;
    right: -18px;
    top: 30px;
    z-index: 3;
    padding: 16px 22px;
    background: linear-gradient(140deg, var(--pri), var(--pri-deep));
    color: #fff;
    border-radius: var(--radius);
    box-shadow: 0 18px 40px rgba(21, 63, 143, .34);
    text-align: center;
    line-height: 1.2;
}
.about-tag b { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.5px; }
.about-tag b i { font-style: normal; font-size: 15px; color: var(--gold-l); margin-left: 2px; }
.about-tag em { font-style: normal; font-size: 11.5px; color: rgba(255, 255, 255, .76); letter-spacing: .06em; }

.about-bd .sec-en::after { display: none; }
.about-bd .sec-en { padding-bottom: 0; }
.about-t {
    font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 800;
    color: var(--ink);
    margin: 14px 0 18px;
    letter-spacing: -.4px;
}
.about-txt { font-size: 15px; line-height: 1.95; color: var(--gray); }
.about-txt + .about-txt { margin-top: 12px; }
.about-txt--body { color: var(--gray); }
.about-txt--body p { margin: 0 0 10px; }

.about-points { margin: 24px 0 30px; display: grid; gap: 12px; }
.about-points li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14.5px;
    color: var(--ink-2);
    font-weight: 500;
}
.about-points i {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--pri-soft);
    color: var(--pri);
    font-size: 11px;
    flex: none;
}

.about-btns { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ==========================================================================
   新闻 + 常见问题
   ========================================================================== */
.sec-news { background: var(--bg-soft); }

.news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 28px;
}
.news-grid > * { min-width: 0; }
.news-col {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 30px 32px;
    display: flex;
    flex-direction: column;
}

.col-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 18px;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--line);
    position: relative;
}
.col-hd::after {
    content: "";
    position: absolute;
    left: 0; bottom: -1px;
    width: 68px; height: 2px;
    background: var(--pri);
}
.col-t {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 19px;
    font-weight: 700;
    color: var(--ink);
}
.col-t i { font-size: 16px; color: var(--pri); }
.col-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--gray-l);
    white-space: nowrap;
}
.col-more i { font-size: 10px; transition: transform .3s var(--ease); }
.col-more:hover { color: var(--pri); }
.col-more:hover i { transform: translateX(3px); }

/* 公司新闻 */
.news-top {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 20px;
    padding-bottom: 22px;
    margin-bottom: 6px;
    border-bottom: 1px dashed var(--line);
}
.news-top-pic {
    aspect-ratio: 4 / 3;
    border-radius: var(--radius);
    overflow: hidden;
    background: #eaeef6;
}
.news-top-pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.news-top:hover .news-top-pic img { transform: scale(1.06); }
.news-top-bd { display: flex; flex-direction: column; min-width: 0; }
.news-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--gray-l);
    font-variant-numeric: tabular-nums;
}
.news-date i { font-size: 11px; }
.news-top-t {
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    margin: 8px 0 8px;
    line-height: 1.5;
    transition: color .3s;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-top:hover .news-top-t { color: var(--pri); }
.news-top-d {
    font-size: 13.5px;
    color: var(--gray);
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news-top-more {
    margin-top: auto;
    padding-top: 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pri);
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.news-top-more i { font-size: 10px; transition: transform .3s var(--ease); }
.news-top:hover .news-top-more i { transform: translateX(4px); }

.news-list li + li { border-top: 1px solid rgba(226, 232, 242, .7); }
.news-list a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 2px;
    transition: all .3s var(--ease);
}
.news-bullet {
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--line);
    flex: none;
    transition: all .3s var(--ease);
}
.news-li-t {
    flex: 1;
    min-width: 0;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--ink-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color .3s;
}
.news-li-d {
    font-size: 12.5px;
    color: var(--gray-l);
    font-variant-numeric: tabular-nums;
    flex: none;
}
.news-list a:hover { padding-left: 8px; }
.news-list a:hover .news-bullet { background: var(--gold); transform: scale(1.5); }
.news-list a:hover .news-li-t { color: var(--pri); }

/* 常见问题手风琴 */
.faq { display: flex; flex-direction: column; gap: 10px; }
.faq-i {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    transition: all .34s var(--ease);
    background: #fff;
}
.faq-i.is-on {
    border-color: rgba(21, 63, 143, .28);
    box-shadow: 0 10px 26px rgba(21, 63, 143, .1);
}
.faq-q {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    text-align: left;
}
.faq-q-ico {
    width: 22px; height: 22px;
    display: grid;
    place-items: center;
    border-radius: 3px;
    background: var(--pri-soft);
    color: var(--pri);
    font-size: 11.5px;
    font-weight: 800;
    flex: none;
    transition: all .3s var(--ease);
}
.faq-i.is-on .faq-q-ico { background: var(--pri); color: #fff; }
.faq-q-t {
    flex: 1;
    min-width: 0;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink-2);
    line-height: 1.6;
    transition: color .3s;
}
.faq-i.is-on .faq-q-t { color: var(--pri); }
.faq-q-sign {
    font-size: 12px;
    color: var(--gray-l);
    flex: none;
    transition: transform .34s var(--ease), color .3s;
}
.faq-i.is-on .faq-q-sign { transform: rotate(135deg); color: var(--pri); }

.faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .42s var(--ease);
}
.faq-a-in {
    display: flex;
    gap: 12px;
    padding: 0 18px 18px;
}
.faq-a-ico {
    width: 22px; height: 22px;
    display: grid;
    place-items: center;
    border-radius: 3px;
    background: rgba(201, 162, 76, .16);
    color: #a8842f;
    font-size: 11.5px;
    font-weight: 800;
    flex: none;
    margin-top: 2px;
}
.faq-a-txt { font-size: 13.5px; line-height: 1.9; color: var(--gray); }

/* ==========================================================================
   案例展示
   ========================================================================== */
.sec-case { background: #fff; }

.case-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.case {
    position: relative;
    display: block;
    border-radius: var(--radius);
    overflow: hidden;
    aspect-ratio: 790 / 556;
    background: #dde4f0;
}
.case-pic { position: absolute; inset: 0; }
.case-pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.case::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 24, 58, 0) 32%, rgba(8, 24, 58, .82) 100%);
    opacity: .74;
    transition: opacity .42s var(--ease);
}
.case-ov {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 2;
    padding: 24px 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.case-t {
    font-size: 16.5px;
    font-weight: 700;
    color: #fff;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: transform .42s var(--ease);
}
.case-ico {
    width: 38px; height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .5);
    color: #fff;
    font-size: 13px;
    flex: none;
    transition: all .42s var(--ease);
    transform: scale(.85);
    opacity: .8;
}
.case:hover .case-pic img { transform: scale(1.08); }
.case:hover::after { opacity: .92; }
.case:hover .case-t { transform: translateY(-2px); }
.case:hover .case-ico { background: var(--gold); border-color: var(--gold); color: var(--pri-dark); transform: scale(1); opacity: 1; }

.case-more { text-align: center; margin-top: 44px; }

/* ==========================================================================
   友情链接
   ========================================================================== */
.links {
    background: #eef1f6;
    border-top: 1px solid #e2e6ee;
    border-bottom: 1px solid #e2e6ee;
    padding: 16px 0;
}
.links-in { display: flex; align-items: flex-start; gap: 18px; }
.links-t {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--gray);
    flex: none;
    padding-top: 2px;
    white-space: nowrap;
}
.links-t i { font-size: 12px; color: var(--gray-l); }
.links-list { display: flex; flex-wrap: wrap; gap: 6px 4px; }
.links-list a {
    font-size: 13px;
    color: var(--gray);
    padding: 2px 10px;
    border-radius: 2px;
    transition: all .26s;
    line-height: 1.7;
}
.links-list a:hover { color: var(--pri); background: rgba(21, 63, 143, .07); }

/* ==========================================================================
   页脚
   ========================================================================== */
.ft {
    position: relative;
    background: var(--bg-dark);
    color: rgba(255, 255, 255, .68);
    padding-top: 72px;
    overflow: hidden;
}
.ft-glow {
    position: absolute;
    top: -180px; left: 50%;
    width: 900px; height: 420px;
    margin-left: -450px;
    background: radial-gradient(ellipse at center, rgba(42, 92, 184, .42), transparent 66%);
    pointer-events: none;
}
.ft-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.25fr 1.35fr 1fr;
    gap: 56px;
    padding-bottom: 56px;
}

.ft-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.ft-logo-mark {
    width: 40px; height: 40px;
    display: grid;
    place-items: center;
    border-radius: var(--radius);
    background: linear-gradient(140deg, var(--pri-light), var(--pri-deep));
    color: #fff;
    font-size: 17px;
    flex: none;
}
.ft-logo-word { font-size: 19px; font-weight: 800; color: #fff; letter-spacing: -.2px; }
.ft-desc { font-size: 13.5px; line-height: 1.85; color: rgba(255, 255, 255, .58); margin-bottom: 24px; }

.ft-qr { display: flex; align-items: center; gap: 14px; }
.ft-qr-pic {
    width: 92px; height: 92px;
    padding: 5px;
    background: #fff;
    border-radius: var(--radius);
    flex: none;
}
.ft-qr-pic img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ft-qr-txt { display: flex; flex-direction: column; gap: 4px; }
.ft-qr-txt b { font-size: 14px; color: #fff; font-weight: 600; }
.ft-qr-txt em { font-style: normal; font-size: 12.5px; color: rgba(255, 255, 255, .5); }

.ft-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ft-col-t {
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 18px;
    padding-bottom: 12px;
    position: relative;
}
.ft-col-t::after {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    width: 26px; height: 2px;
    background: var(--gold);
}
.ft-col-a {
    display: block;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .58);
    padding: 6px 0;
    transition: all .28s var(--ease);
}
.ft-col-a:hover { color: var(--gold-l); transform: translateX(4px); }

.ft-tel {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding: 14px 18px;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .09);
    transition: all .3s var(--ease);
}
.ft-tel:hover { background: rgba(255, 255, 255, .09); border-color: rgba(201, 162, 76, .4); }
.ft-tel > i { font-size: 20px; color: var(--gold); flex: none; }
.ft-tel span { display: flex; flex-direction: column; line-height: 1.3; }
.ft-tel em { font-style: normal; font-size: 11.5px; color: rgba(255, 255, 255, .5); letter-spacing: .06em; }
.ft-tel b { font-size: 20px; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: .3px; }

.ft-list { display: grid; gap: 11px; }
.ft-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .58);
    line-height: 1.65;
}
.ft-list i { font-size: 13px; color: rgba(201, 162, 76, .8); margin-top: 3px; flex: none; }

.ft-bot {
    position: relative;
    z-index: 2;
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding: 20px 0;
}
.ft-bot-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 12.5px;
    color: rgba(255, 255, 255, .42);
}
.ft-icp a { color: rgba(255, 255, 255, .42); }
.ft-icp a:hover { color: var(--gold-l); }

/* ==========================================================================
   移动端底部操作栏
   ========================================================================== */
.mtab {
    display: none;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 80;
    height: 58px;
    background: rgba(255, 255, 255, .97);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -6px 20px rgba(10, 30, 70, .08);
    padding-bottom: env(safe-area-inset-bottom);
}
.mtab-i {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    font-size: 11px;
    color: var(--gray);
    position: relative;
    height: 58px;
}
.mtab-i i { font-size: 17px; transition: transform .3s var(--ease); }
.mtab-i.is-on { color: var(--pri); }
.mtab-i.is-on i { transform: translateY(-1px); }

.mtab-tel { justify-content: flex-end; padding-bottom: 6px; }
.mtab-ring {
    position: absolute;
    top: -26px;
    left: 50%;
    width: 62px; height: 62px;
    margin-left: -31px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(140deg, var(--pri-light), var(--pri-deep));
    color: #fff;
    font-size: 22px;
    box-shadow: 0 10px 26px rgba(21, 63, 143, .42), 0 0 0 6px rgba(255, 255, 255, .96);
    animation: telPulse 2.6s infinite;
}
.mtab-ring::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 1px solid rgba(42, 92, 184, .4);
    animation: telRing 2.6s infinite;
}
@keyframes telPulse {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}
@keyframes telRing {
    0% { transform: scale(1); opacity: .8; }
    70%, 100% { transform: scale(1.28); opacity: 0; }
}
.mtab-tel-t { font-size: 11px; color: var(--pri); font-weight: 600; }

/* ---------- 返回顶部 ---------- */
.backtop {
    position: fixed;
    right: 26px;
    bottom: 100px;
    z-index: 70;
    width: 46px; height: 46px;
    border-radius: 50%;
    background: #fff;
    color: var(--pri);
    font-size: 14px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow-m);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: all .34s var(--ease);
}
.backtop.is-on { opacity: 1; visibility: visible; transform: translateY(0); }
.backtop:hover { background: var(--pri); color: #fff; border-color: var(--pri); }

/* ==========================================================================
   滚动动效
   ========================================================================== */
[data-rv] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .8s var(--ease), transform .8s var(--ease);
}
[data-rv].is-in { opacity: 1; transform: translateY(0); }

.adv-grid > .adv:nth-child(1)[data-rv] { transition-delay: .04s; }
.adv-grid > .adv:nth-child(2)[data-rv] { transition-delay: .12s; }
.adv-grid > .adv:nth-child(3)[data-rv] { transition-delay: .2s; }
.adv-grid > .adv:nth-child(4)[data-rv] { transition-delay: .28s; }

.case-grid > .case:nth-child(3n+2)[data-rv] { transition-delay: .08s; }
.case-grid > .case:nth-child(3n+3)[data-rv] { transition-delay: .16s; }

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
    html { scroll-behavior: auto; }
    [data-rv] { opacity: 1; transform: none; }
}

/* ==========================================================================
   响应式
   ========================================================================== */

/* ---------- ≤1400：导航与容器微调 ---------- */
@media (max-width: 1400px) {
    .nav-a { padding: 0 18px; }
    .nav-a::after { left: 18px; right: 18px; }
}

/* ---------- ≤1200：产品 3 列 / 优势 2 列 ---------- */
@media (max-width: 1200px) {
    .sec { padding: 80px 0; }
    .pt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .adv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .adv-pic { aspect-ratio: 790 / 460; }
    .about-grid { gap: 52px; }
    .news-top { grid-template-columns: 190px minmax(0, 1fr); }
    .ft-grid { grid-template-columns: 1fr 1fr; gap: 44px; }
    .ft-cols { grid-column: 1 / -1; order: 3; }
    .logo-word { font-size: 23px; }
    .hd-tel-txt b { font-size: 19px; }
}

/* ---------- ≤1180：导航收窄，必要时切汉堡 ---------- */
@media (max-width: 1180px) {
    .nav-a { padding: 0 13px; font-size: 15px; }
    .nav-a::after { left: 13px; right: 13px; }
    .hd-tel-ico { display: none; }
}

/* ---------- ≤1100：切换汉堡菜单 ---------- */
@media (max-width: 1100px) {
    .nav { display: none; }
    .burger { display: block; }
    .hd-nav { display: none; }
    .hd-top { height: 70px; border-bottom: 0; box-shadow: 0 2px 12px rgba(10, 30, 70, .07); }
    .sec { padding: 70px 0; }
    .sec-hd { margin-bottom: 44px; }
    .hero-arrow { width: 46px; height: 46px; margin-top: -23px; font-size: 15px; }
    .hero-prev { left: 18px; }
    .hero-next { right: 18px; }
}

/* ---------- ≤992：关于单列 / 案例 2 列 ---------- */
@media (max-width: 992px) {
    .about-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
    .about-pic { padding: 0 0 22px 22px; max-width: 620px; }
    .about-tag { right: 0; }
    .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
    .news-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ft-grid { gap: 36px; }
}

/* ---------- ≤768：手机端 ---------- */
@media (max-width: 768px) {
    :root { --gap: 16px; }

    body { font-size: 14.5px; padding-bottom: calc(58px + env(safe-area-inset-bottom)); }

    .wrap { padding: 0 16px; }
    .sec { padding: 52px 0; }
    .sec-hd { margin-bottom: 32px; }
    .sec-t { font-size: 23px; margin: 12px 0 10px; }
    .sec-d { font-size: 13.5px; line-height: 1.8; }
    .sec-en { font-size: 11px; letter-spacing: .18em; }

    /* 头部 */
    .hd-top { height: 62px; }
    .logo { gap: 9px; }
    .logo-mark { width: 36px; height: 36px; font-size: 15px; }
    .logo-word { font-size: 17.5px; letter-spacing: -.2px; }
    .hd-act { gap: 10px; }
    .hd-tel { gap: 0; }
    .hd-tel-txt em { display: none; }
    .hd-tel-txt b { font-size: 15px; }
    .hd-search-btn { width: 38px; height: 38px; font-size: 14px; }
    .burger { width: 38px; height: 38px; padding: 11px 9px; }
    .burger span { height: 2px; }
    .burger span + span { margin-top: 4px; }
    .burger.is-on span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .burger.is-on span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    /* 轮播：手机改用图组 2（750×563，约 4:3），按原图比例撑满，几乎零裁切 */
    .hero--pc { display: none; }
    .hero--mb {
        display: block;
        height: auto;
        min-height: 0;
        max-height: none;
        aspect-ratio: 750 / 563;
        background: var(--pri-ink);
    }
    .hero--mb .hero-slide img { object-position: center; }
    .hero-dots { bottom: 14px; gap: 7px; }
    .hero-dot { width: 18px; height: 2px; }
    .hero-dot.is-on { width: 30px; }
    .hero-arrow { display: none; }

    /* 产品 */
    .pt-tabs { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; gap: 8px; margin: 0 -16px 24px; padding: 0 16px 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .pt-tabs::-webkit-scrollbar { display: none; }
    .pt-tab { height: 38px; padding: 0 16px; font-size: 13.5px; flex: none; }
    .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .pcard-bd { padding: 13px 13px 15px; }
    .pcard-t { font-size: 14px; margin-bottom: 6px; }
    .pcard-d { font-size: 12px; line-height: 1.7; -webkit-line-clamp: 2; margin-bottom: 10px; }
    .pcard-more { font-size: 11.5px; padding-top: 10px; gap: 6px; }
    .pcard-ov i { width: 38px; height: 38px; font-size: 13px; }

    /* 优势 */
    .adv-grid { grid-template-columns: 1fr; gap: 14px; }
    .adv-pic { aspect-ratio: 790 / 400; }
    .adv-bd { padding: 16px 18px 20px; }
    .adv-t { font-size: 16.5px; margin-bottom: 8px; }
    .adv-d { font-size: 12.5px; -webkit-line-clamp: 3; }
    .adv-no { font-size: 26px; left: 16px; bottom: 10px; }

    /* 关于 */
    .about-grid { gap: 32px; }
    .about-pic { padding: 0 0 16px 16px; }
    .about-tag { padding: 11px 16px; top: 14px; }
    .about-tag b { font-size: 22px; }
    .about-tag em { font-size: 10.5px; }
    .about-t { font-size: 22px; margin: 10px 0 14px; }
    .about-txt { font-size: 13.5px; line-height: 1.85; }
    .about-points { margin: 18px 0 24px; gap: 10px; }
    .about-points li { font-size: 13.5px; }
    .btn { height: 44px; padding: 0 22px; font-size: 14px; }

    /* 新闻 */
    .news-col { padding: 18px 16px 20px; }
    .col-hd { padding-bottom: 13px; margin-bottom: 16px; }
    .col-t { font-size: 15.5px; gap: 8px; }
    .col-t i { font-size: 14px; }
    .col-more { font-size: 12px; }
    .news-top { grid-template-columns: minmax(0, 1fr); gap: 12px; padding-bottom: 16px; }
    .news-top-pic { aspect-ratio: 16 / 9; }
    .news-top-t { font-size: 15px; margin: 6px 0 6px; -webkit-line-clamp: 2; }
    .news-top-d { font-size: 12.5px; -webkit-line-clamp: 2; }
    .news-list a { padding: 11px 0; gap: 9px; }
    .news-li-t { font-size: 13.5px; }
    .news-li-d { font-size: 11.5px; }
    .faq-q { padding: 12px 13px; gap: 9px; }
    .faq-q-t { font-size: 13.5px; }
    .faq-q-ico { width: 20px; height: 20px; font-size: 10.5px; }
    .faq-a-in { padding: 0 13px 14px; gap: 9px; }
    .faq-a-txt { font-size: 12.5px; line-height: 1.8; }
    .faq-a-ico { width: 20px; height: 20px; font-size: 10.5px; }

    /* 案例 */
    .case-grid { grid-template-columns: 1fr; gap: 12px; }
    .case-ov { padding: 16px 16px; }
    .case-t { font-size: 14.5px; }
    .case-ico { width: 32px; height: 32px; font-size: 11px; }
    .case-more { margin-top: 28px; }

    /* 友链：手机端隐藏 */
    .links { display: none; }

    /* 页脚 */
    .ft { padding-top: 44px; }
    .ft-grid { grid-template-columns: 1fr; gap: 30px; padding-bottom: 32px; }
    .ft-logo-mark { width: 34px; height: 34px; font-size: 14px; }
    .ft-logo-word { font-size: 16px; }
    .ft-desc { font-size: 12.5px; margin-bottom: 18px; }
    .ft-qr { gap: 12px; }
    .ft-qr-pic { width: 80px; height: 80px; }
    .ft-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
    .ft-col-t { font-size: 14px; margin-bottom: 12px; padding-bottom: 9px; }
    .ft-col-a { font-size: 12.5px; padding: 5px 0; }
    .ft-tel { padding: 11px 14px; margin-bottom: 14px; }
    .ft-tel > i { font-size: 17px; }
    .ft-tel b { font-size: 17px; }
    .ft-list { gap: 9px; }
    .ft-list li { font-size: 12.5px; }
    .ft-bot { padding: 16px 0 42px; }
    .ft-bot-in { font-size: 11.5px; gap: 8px; }

    /* 移动底栏 */
    .mtab { display: flex; }
    .backtop { right: 14px; bottom: calc(74px + env(safe-area-inset-bottom)); width: 40px; height: 40px; font-size: 12px; }

    /* 搜索浮层 */
    .search-layer { padding-top: 12vh; }
    .search-form { padding: 6px 6px 6px 15px; gap: 10px; }
    .search-form input { height: 40px; font-size: 14.5px; }
    .search-form button { height: 40px; padding: 0 18px; font-size: 13.5px; }
    .search-tip { font-size: 12px; }
    .search-close { top: -48px; width: 38px; height: 38px; font-size: 15px; }
}

/* ---------- ≤480：小屏微调 ---------- */
@media (max-width: 480px) {
    .logo-word { font-size: 15.5px; }
    .logo-mark { width: 32px; height: 32px; font-size: 13px; }
    .hd-tel-txt b { font-size: 13.5px; }
    .pt-grid { gap: 10px; }
    .pcard-d { display: none; }
    .about-tag { padding: 9px 13px; }
    .about-tag b { font-size: 19px; }
    .ft-bot-in { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* ==========================================================================
   补丁：细节修正
   ========================================================================== */

/* 兜底：避免任何子元素撑出横向滚动条 */
html { overflow-x: hidden; }

/* 产品网格：按实际卡片数量收缩列数，避免数据少时右侧留大片空洞 */
.pt-panel[data-cols="2"] .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pt-panel[data-cols="3"] .pt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* 优势卡片：底色与描边略加强，深色底上更有块面感 */
.adv { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14); }

/* 关于我们正文：保留原 <p> 段落结构 */
.about-txt--body p { text-indent: 0; }
.about-txt--body p + p { margin-top: 10px; }

@media (max-width: 768px) {
    /* 正文底部只需让出底栏本身的高度（58px），多留会露出空隙 */
    body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
    .backtop { bottom: calc(74px + env(safe-area-inset-bottom)); }
    /* 小屏强制两列，覆盖 data-n 的列数规则 */
    .pt-panel[data-cols] .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 480px) {
    /* 390 及以下：公司全名 + 热线 + 搜索 + 汉堡 会撑破一行，收起热线（抽屉内有拨号入口） */
    .hd-tel { display: none; }
    .logo-word { font-size: 15px; }
    .pt-panel[data-cols] .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* 抽屉打开时隐藏汉堡按钮，避免它与遮罩叠在一起 */
body.is-nav-open .burger { opacity: 0; visibility: hidden; }

/* 新闻左列底部转化块：填满与右侧 FAQ 的高度差，同时给出转化入口 */
.news-cta {
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px dashed var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.news-cta-t { font-size: 13.5px; color: var(--gray); }
.news-cta-a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 18px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: var(--pri);
    border-radius: 2px;
    white-space: nowrap;
    transition: all .3s var(--ease);
}
.news-cta-a i { font-size: 11px; transition: transform .3s var(--ease); }
.news-cta-a:hover { background: var(--pri-deep); transform: translateY(-1px); }
.news-cta-a:hover i { transform: translateX(4px); }

@media (max-width: 768px) {
    .news-cta { gap: 10px; padding-top: 14px; }
    .news-cta-t { font-size: 12.5px; }
    .news-cta-a { height: 34px; padding: 0 14px; font-size: 12px; }
}

/* ==========================================================================
   v2 调整：主标题 / 副标题之间的主题色横线
   ========================================================================== */
.sec-line {
    display: block;
    width: 54px;
    height: 3px;
    margin: 0 auto 20px;
    border-radius: 2px;
    background: var(--pri);
}
.sec-hd--light .sec-line { background: var(--gold); }
/* 关于我们左对齐排版，横线跟着左对齐 */
.about-bd .sec-line { margin-left: 0; margin-bottom: 18px; }

@media (max-width: 768px) {
    .sec-line { width: 42px; height: 2px; margin-bottom: 14px; }
}


/* ==========================================================================
   内页体系
   ========================================================================== */

/* ---------- 内页头 ---------- */
.pghd {
    position: relative;
    overflow: hidden;
    padding: 66px 0 58px;
    background: linear-gradient(150deg, var(--pri-dark) 0%, var(--pri-deep) 46%, #123a83 100%);
    color: #fff;
}
.pghd::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(circle at 50% 40%, #000, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 50% 40%, #000, transparent 78%);
    pointer-events: none;
}
.pghd-in { position: relative; z-index: 1; }
.pghd-t {
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 800;
    color: #fff;
    letter-spacing: -.4px;
    line-height: 1.2;
}
.pghd-line {
    display: block;
    width: 54px;
    height: 3px;
    margin: 16px 0 18px;
    background: var(--gold);
}
.pghd-d {
    max-width: 760px;
    font-size: 14.5px;
    line-height: 1.85;
    color: rgba(255, 255, 255, .7);
}
.pghd-d:empty { display: none; }

/* 面包屑 */
.crumb {
    margin-top: 24px;
    font-size: 13px;
    line-height: 1.9;
    color: rgba(255, 255, 255, .6);
}
.crumb a { color: rgba(255, 255, 255, .82); }
.crumb a:hover { color: var(--gold-l); }
.crumb i {
    font-size: 9px;
    margin: 0 9px;
    opacity: .5;
    vertical-align: 1px;
}

/* ---------- 两栏主体 ---------- */
.psub { padding: 60px 0 90px; }
.psub-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 42px;
    align-items: start;
}
.psub-main { min-width: 0; }

/* ---------- 侧栏 ---------- */
.psub-side { min-width: 0; }
.side-box {
    margin-bottom: 24px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}
.side-box:last-child { margin-bottom: 0; }
.side-h {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 52px;
    padding: 0 20px;
    font-size: 15.5px;
    font-weight: 700;
    color: #fff;
    background: var(--pri);
}
.side-h i { font-size: 14px; color: var(--gold-l); }
.side-list a {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 15px 20px;
    font-size: 14.5px;
    color: var(--ink-2);
    border-bottom: 1px solid var(--line);
    transition: all .28s var(--ease);
}
.side-list li:last-child > a { border-bottom: 0; }
.side-list a::before {
    content: "";
    flex: none;
    width: 5px;
    height: 5px;
    background: var(--gray-l);
    transition: background .28s var(--ease);
}
.side-list a:hover,
.side-list a.is-on {
    padding-left: 26px;
    background: var(--pri-soft);
    color: var(--pri);
    font-weight: 600;
}
.side-list a:hover::before,
.side-list a.is-on::before { background: var(--pri); }

/* 侧栏咨询卡 */
.side-cta {
    padding: 26px 22px;
    background: var(--pri-deep);
    border-color: var(--pri-deep);
    color: #fff;
}
.side-cta-t { font-size: 16.5px; font-weight: 700; color: #fff; }
.side-cta-d {
    margin-top: 9px;
    font-size: 13px;
    line-height: 1.75;
    color: rgba(255, 255, 255, .64);
}
.side-cta-a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    margin-top: 18px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pri-deep);
    background: var(--gold);
    border-radius: var(--radius);
    transition: all .3s var(--ease);
}
.side-cta-a:hover { background: var(--gold-l); transform: translateY(-2px); }
.side-tel {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.side-tel > i { font-size: 17px; color: var(--gold-l); }
.side-tel-txt { display: flex; flex-direction: column; line-height: 1.3; }
.side-tel-txt em { font-style: normal; font-size: 11.5px; color: rgba(255, 255, 255, .55); }
.side-tel-txt b { font-size: 19px; font-weight: 700; color: var(--gold-l); letter-spacing: .4px; }

/* 侧栏联系信息 */
.side-info { padding: 16px 20px 20px; }
.side-info li {
    display: flex;
    gap: 11px;
    padding: 10px 0;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--gray);
    border-bottom: 1px dashed var(--line);
}
.side-info li:last-child { border-bottom: 0; }
.side-info li i { flex: none; width: 15px; margin-top: 4px; font-size: 12.5px; color: var(--pri); }

/* ---------- 列表页头 ---------- */
.plist-hd {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 28px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}
.plist-hd h2 {
    position: relative;
    font-size: 20px;
    font-weight: 800;
    padding-bottom: 16px;
    margin-bottom: -17px;
}
.plist-hd h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 52px;
    height: 2px;
    background: var(--pri);
}
.plist-hd span { font-size: 13px; color: var(--gray-l); }
.plist-hd b { color: var(--pri); font-weight: 700; }

/* ---------- 产品 / 案例网格 ---------- */
.plist {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}
.plist > * { min-width: 0; }

.acard { display: block; }
.acard-pic {
    position: relative;
    aspect-ratio: 790 / 556;
    overflow: hidden;
    background: #eaeef6;
    border-radius: var(--radius);
}
.acard-pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
}
.acard-pic::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 24, 58, 0) 40%, rgba(8, 24, 58, .68) 100%);
    opacity: 0;
    transition: opacity .4s var(--ease);
}
.acard-ico {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 2;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    font-size: 13px;
    color: var(--pri);
    background: #fff;
    border-radius: 50%;
    opacity: 0;
    transform: translateY(8px);
    transition: all .4s var(--ease);
}
.acard:hover .acard-pic img { transform: scale(1.07); }
.acard:hover .acard-pic::after { opacity: 1; }
.acard:hover .acard-ico { opacity: 1; transform: translateY(0); }
.acard-bd { padding: 15px 2px 0; }
.acard-t {
    font-size: 15.5px;
    font-weight: 700;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color .28s var(--ease);
}
.acard:hover .acard-t { color: var(--pri); }
.acard-d {
    margin-top: 6px;
    font-size: 12.5px;
    color: var(--gray-l);
    display: flex;
    align-items: center;
    gap: 7px;
}
.acard-d i { font-size: 11px; }

/* ---------- 新闻列表 ---------- */
.nlist { display: flex; flex-direction: column; }
.nitem {
    display: grid;
    grid-template-columns: 178px minmax(0, 1fr);
    gap: 26px;
    padding: 26px 0;
    border-bottom: 1px solid var(--line);
    align-items: start;
}
.nitem:first-child { padding-top: 4px; }
/* 无配图时正文占满整行 */
.nitem--txt { grid-template-columns: minmax(0, 1fr); }
.nitem--txt .nitem-pic { display: none; }
.nitem-pic {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eaeef6;
    border-radius: var(--radius);
}
.nitem-pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s var(--ease);
}
.nitem:hover .nitem-pic img { transform: scale(1.06); }
.nitem-bd { min-width: 0; }
.nitem-t {
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color .28s var(--ease);
}
.nitem:hover .nitem-t { color: var(--pri); }
.nitem-d {
    margin-top: 10px;
    font-size: 13.5px;
    line-height: 1.8;
    color: var(--gray);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nitem-ft {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 13px;
    font-size: 12.5px;
    color: var(--gray-l);
}
.nitem-ft i { margin-right: 5px; font-size: 11.5px; }
.nitem-ft .nitem-sort { color: var(--pri); }
.nitem-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    font-size: 12.5px;
    color: var(--pri);
    font-weight: 600;
}
.nitem-more i { font-size: 10px; transition: transform .3s var(--ease); }
.nitem:hover .nitem-more i { transform: translateX(4px); }

/* ---------- 分页 ---------- */
.pg {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 46px;
}
.pg > span { display: inline-flex; align-items: center; }
.pg a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    font-size: 14px;
    color: var(--ink-2);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .28s var(--ease);
}
.pg a:hover { color: var(--pri); border-color: var(--pri); }
.pg .page-num-current {
    font-weight: 600;
    color: #fff;
    background: var(--pri);
    border-color: var(--pri);
}
.pg .page-status {
    display: inline-flex;
    align-items: center;
    height: 40px;
    padding: 0 16px;
    font-size: 13px;
    color: var(--gray);
    background: var(--bg-soft);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
.pg a[href="javascript:;"] {
    color: var(--gray-l);
    background: var(--bg-soft);
    border-color: var(--line);
    cursor: default;
    pointer-events: none;
}

/* ---------- 空状态 ---------- */
.pempty {
    padding: 80px 20px;
    text-align: center;
    background: var(--bg-soft);
    border: 1px dashed var(--line);
    border-radius: var(--radius);
}
.pempty i { font-size: 38px; color: var(--gray-l); opacity: .55; }
.pempty p { margin-top: 16px; font-size: 14.5px; color: var(--gray); }
.pempty-acts { display: flex; justify-content: center; margin-top: 24px; }

/* 空字段自动收起 */
.pghd-d:empty,
.pd-sum:empty,
.pnews-sum:empty { display: none; }

/* ---------- 富文本 ---------- */
.rich {
    font-size: 15.5px;
    line-height: 1.95;
    color: var(--ink-2);
    overflow-wrap: break-word;
}
.rich > *:first-child { margin-top: 0; }
.rich p { margin: 0 0 18px; }
.rich h2 {
    margin: 36px 0 16px;
    padding-left: 14px;
    font-size: 21px;
    border-left: 3px solid var(--pri);
}
.rich h3 { margin: 28px 0 13px; font-size: 18px; }
.rich h4 { margin: 24px 0 11px; font-size: 16px; }
.rich img {
    max-width: 100%;
    height: auto;
    margin: 12px 0;
    border-radius: var(--radius);
}
.rich ul,
.rich ol { margin: 0 0 18px; padding-left: 24px; }
.rich ul { list-style: disc; }
.rich ol { list-style: decimal; }
.rich li { margin-bottom: 8px; }
.rich a { color: var(--pri); text-decoration: underline; }
.rich a:hover { color: var(--pri-light); }
.rich table {
    width: 100%;
    margin: 22px 0;
    border-collapse: collapse;
    font-size: 14.5px;
}
.rich th,
.rich td { padding: 11px 14px; border: 1px solid var(--line); text-align: left; }
.rich th { background: var(--bg-soft); font-weight: 700; color: var(--ink); }
.rich blockquote {
    margin: 22px 0;
    padding: 16px 20px;
    background: var(--bg-soft);
    border-left: 3px solid var(--pri);
    color: var(--gray);
}
.rich iframe { max-width: 100%; }
/* 正文为空时的占位提示 */
.rich:empty::after {
    content: "内容正在完善中，如需了解详细资料请联系我们。";
    display: block;
    padding: 36px 0;
    font-size: 14px;
    color: var(--gray-l);
}

/* ---------- 单页 ---------- */
.pabout-hd {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
}
.pabout-hd h2 {
    position: relative;
    display: inline-block;
    font-size: clamp(21px, 2.2vw, 28px);
    font-weight: 800;
    padding-bottom: 14px;
}
.pabout-hd h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 46px;
    height: 3px;
    background: var(--pri);
}

/* ---------- 产品详情 ---------- */
.pd-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 44px;
    align-items: start;
    margin-bottom: 46px;
}
.pd-gallery { min-width: 0; }
.pd-main {
    position: relative;
    aspect-ratio: 790 / 556;
    overflow: hidden;
    background: #eaeef6;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
.pd-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity .3s var(--ease);
}
.pd-main img[hidden] { display: none; }

/* 产品主图缺失：占位块代替灰块 */
.is-nopic.pd-main {
    display: grid;
    place-items: center;
    background: linear-gradient(150deg, #eef3fb 0%, #dfe8f6 100%);
}
.is-nopic.pd-main img { display: none; }
.is-nopic.pd-main > i { font-size: 56px; color: rgba(21, 63, 143, .2); }
.pd-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.pd-thumb {
    position: relative;
    aspect-ratio: 4 / 3;
    padding: 0;
    overflow: hidden;
    background: #eaeef6;
    border: 2px solid transparent;
    border-radius: var(--radius);
    cursor: pointer;
    transition: border-color .26s var(--ease);
}
.pd-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: .72; transition: opacity .26s; }
.pd-thumb:hover img { opacity: 1; }
.pd-thumb.is-on { border-color: var(--pri); }
.pd-thumb.is-on img { opacity: 1; }

.pd-info { min-width: 0; }
.pd-title {
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 800;
    line-height: 1.32;
    color: var(--ink);
}
.pd-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 16px;
    padding-bottom: 20px;
    font-size: 13px;
    color: var(--gray-l);
    border-bottom: 1px solid var(--line);
}
.pd-meta span i { margin-right: 6px; color: var(--pri); font-size: 12px; }
.pd-sum {
    margin-top: 20px;
    font-size: 14.5px;
    line-height: 1.9;
    color: var(--gray);
}
.pd-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
}
.pd-tags span {
    padding: 6px 13px;
    font-size: 12.5px;
    color: var(--pri);
    background: var(--pri-soft);
    border-radius: var(--radius);
}
.pd-acts {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}
.pd-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
    font-size: 12.5px;
    color: var(--gray-l);
}
.pd-note i { color: var(--gold); }

/* 详情正文标题 */
.pd-sec-h {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 24px;
    font-size: 19px;
    font-weight: 800;
}
.pd-sec-h i { font-size: 15px; color: var(--gold); }
.pd-sec-h::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line);
}

/* 案例图集 */
.agallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 10px;
}
.agallery > a {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eaeef6;
    border-radius: var(--radius);
}
.agallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}
.agallery > a:hover img { transform: scale(1.06); }

/* ---------- 上下篇 ---------- */
.pnav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    margin-top: 44px;
    padding-top: 26px;
    border-top: 1px solid var(--line);
}
.pnav > * {
    min-width: 0;
    padding: 15px 18px;
    background: var(--bg-soft);
    border: 1px solid transparent;
    border-radius: var(--radius);
    transition: all .28s var(--ease);
}
.pnav em {
    display: block;
    margin-bottom: 4px;
    font-style: normal;
    font-size: 11.5px;
    color: var(--gray-l);
}
.pnav a {
    display: block;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ink-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pnav-none {
    display: block;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--gray-l);
}
.pnav > *:hover { background: #fff; border-color: var(--pri); }
.pnav > *:hover a { color: var(--pri); }
.pnav-next { text-align: right; }

/* ---------- 相关推荐 ---------- */
.rel { margin-top: 56px; }
.rel-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--line);
}
.rel-hd h2 {
    position: relative;
    font-size: 19px;
    font-weight: 800;
    padding-bottom: 15px;
    margin-bottom: -16px;
}
.rel-hd h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 44px;
    height: 2px;
    background: var(--pri);
}
.rel-hd a { font-size: 13px; color: var(--pri); font-weight: 600; }
.rel-hd a i { font-size: 10px; margin-left: 5px; }
.rel-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 0;
    font-size: 14.5px;
    color: var(--ink-2);
    border-bottom: 1px dashed var(--line);
    transition: color .28s var(--ease);
}
.rel-list a:last-child { border-bottom: 0; }
.rel-list a:hover { color: var(--pri); }
.rel-t {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rel-d { flex: none; font-size: 12.5px; color: var(--gray-l); }

/* ---------- 新闻详情 ---------- */
.pnews-hd {
    padding-bottom: 24px;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--line);
}
.pnews-hd h1 {
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 800;
    line-height: 1.4;
}
.pnews-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 16px;
    margin-bottom: 28px;
    font-size: 13px;
    color: var(--gray-l);
}
.pnews-meta i { margin-right: 6px; font-size: 12px; color: var(--pri); }
.pnews-sum {
    margin-bottom: 26px;
    padding: 16px 20px;
    font-size: 14px;
    line-height: 1.85;
    color: var(--gray);
    background: var(--bg-soft);
    border-left: 3px solid var(--pri);
    border-radius: var(--radius);
}

/* ---------- 搜索页 ---------- */
.psearch-bar {
    display: flex;
    gap: 0;
    max-width: 640px;
    margin-bottom: 36px;
}
.psearch-bar input {
    flex: 1;
    min-width: 0;
    height: 52px;
    padding: 0 20px;
    font-size: 15px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-right: 0;
    border-radius: var(--radius) 0 0 var(--radius);
    outline: none;
    transition: border-color .28s var(--ease);
}
.psearch-bar input:focus { border-color: var(--pri); }
.psearch-bar button {
    flex: none;
    height: 52px;
    padding: 0 32px;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    background: var(--pri);
    border-radius: 0 var(--radius) var(--radius) 0;
    transition: background .28s var(--ease);
}
.psearch-bar button:hover { background: var(--pri-deep); }
.psearch-tip { font-size: 13.5px; color: var(--gray); margin-bottom: 26px; }
.psearch-tip b { color: var(--pri); }

/* ---------- 联系页 ---------- */
.cinfo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}
.cinfo {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .3s var(--ease);
}
.cinfo:hover { border-color: var(--pri); box-shadow: var(--shadow-s); transform: translateY(-2px); }
.cinfo-ico {
    flex: none;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    font-size: 16px;
    color: #fff;
    background: var(--pri);
    border-radius: var(--radius);
}
.cinfo-bd { display: flex; flex-direction: column; min-width: 0; }
.cinfo-t { font-size: 12.5px; color: var(--gray-l); }
.cinfo-v {
    margin-top: 3px;
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--ink);
    word-break: break-all;
}
.caddr {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 30px;
    padding: 15px 20px;
    font-size: 14px;
    color: var(--gray);
    background: var(--bg-soft);
    border-radius: var(--radius);
}
.caddr i { flex: none; font-size: 15px; color: var(--pri); }

/* ---------- 留言表单 ---------- */
.pform { max-width: 100%; }
.pform-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
}
.pform-f { display: flex; flex-direction: column; gap: 8px; }
.pform-f--full { grid-column: 1 / -1; }
.pform-f label { font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.pform-f label em { font-style: normal; color: #d64545; margin-left: 3px; }
.pform-f input,
.pform-f textarea {
    width: 100%;
    padding: 13px 16px;
    font-size: 14.5px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    outline: none;
    transition: border-color .28s var(--ease);
}
.pform-f input { height: 50px; }
.pform-f textarea { min-height: 130px; resize: vertical; line-height: 1.7; }
.pform-f input:focus,
.pform-f textarea:focus { border-color: var(--pri); }
.pform-acts { margin-top: 24px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.pform-acts .btn { height: 48px; padding: 0 38px; }
.pform-tip { font-size: 12.5px; color: var(--gray-l); }

/* ---------- 内页响应式 ---------- */
@media (max-width: 1200px) {
    .psub-grid { grid-template-columns: minmax(0, 1fr) 268px; gap: 32px; }
    .plist { gap: 20px; }
    .pd-top { gap: 32px; }
}

@media (max-width: 1100px) {
    .psub-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .pghd { padding: 54px 0 46px; }
    .psub { padding: 48px 0 70px; }
    /* 侧栏移到底部，横向铺开 */
    .psub-side {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
        align-items: start;
    }
    .psub-side > * { margin-bottom: 0; min-width: 0; }
    .plist { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .pd-top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .pd-thumbs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .pghd { padding: 40px 0 34px; }
    .pghd-line { width: 42px; height: 2px; margin: 13px 0 15px; }
    .pghd-d { font-size: 13.5px; }
    .crumb { margin-top: 18px; font-size: 12.5px; }
    .crumb i { margin: 0 7px; }
    .psub { padding: 36px 0 54px; }
    .psub-grid { gap: 32px; }

    .plist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .acard-bd { padding: 11px 0 0; }
    .acard-t { font-size: 14px; }
    .acard-d { font-size: 11.5px; }
    .acard-ico { width: 32px; height: 32px; right: 12px; bottom: 12px; font-size: 11px; }

    .nitem { grid-template-columns: 132px minmax(0, 1fr); gap: 16px; padding: 20px 0; }
    .nitem-t { font-size: 15.5px; }
    .nitem-d { display: none; }
    .nitem-ft { margin-top: 9px; font-size: 11.5px; gap: 12px; }
    .nitem-more { display: none; }

    .psub-side { grid-template-columns: minmax(0, 1fr); }
    .side-h { height: 48px; font-size: 15px; }
    .side-list a { padding: 13px 18px; font-size: 14px; }

    .plist-hd { margin-bottom: 22px; }
    .plist-hd h2 { font-size: 17.5px; padding-bottom: 13px; margin-bottom: -14px; }
    .plist-hd h2::after { width: 42px; height: 2px; }

    .rich { font-size: 15px; line-height: 1.9; }
    .rich h2 { font-size: 18.5px; margin: 28px 0 13px; }
    .rich h3 { font-size: 16.5px; }

    .pd-thumbs { gap: 7px; margin-top: 9px; }
    .pd-sec-h { font-size: 17px; margin-bottom: 18px; }
    .pd-acts .btn { flex: 1; justify-content: center; }
    .pd-acts { gap: 10px; }

    .pnav { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 34px; padding-top: 20px; }
    .pnav-next { text-align: left; }

    .rel { margin-top: 40px; }
    .rel-hd h2 { font-size: 17px; }

    .pg { gap: 7px; margin-top: 34px; }
    .pg a, .pg span, .pg em { min-width: 36px; height: 36px; padding: 0 11px; font-size: 13px; }

    .pform-row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .pempty { padding: 56px 16px; }
    .cinfo-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .cinfo { padding: 16px 18px; }
    .cinfo-ico { width: 40px; height: 40px; font-size: 15px; }
    .cinfo-v { font-size: 14.5px; }
    .caddr { margin-bottom: 24px; padding: 13px 16px; font-size: 13px; }
}

@media (max-width: 480px) {
    .nitem { grid-template-columns: 108px minmax(0, 1fr); gap: 13px; }
    .nitem-t { font-size: 14.5px; }
    .pd-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .psearch-bar button { padding: 0 22px; }
}


/* ==========================================================================
   内页结构 v2：单栏 + 二级栏目上置 + 底部转化带
   ========================================================================== */

/* ---------- 二级栏目导航（内容上方） ---------- */
.subnav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 34px;
    padding-bottom: 26px;
    border-bottom: 1px solid var(--line);
}
.subnav[hidden] { display: none; }
.subnav a {
    display: inline-flex;
    align-items: center;
    height: 44px;
    padding: 0 22px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink-2);
    background: var(--bg-soft);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .28s var(--ease);
}
.subnav a span { font-weight: 800; }
.subnav a:hover { color: var(--pri); background: #fff; border-color: var(--pri); }
.subnav a.is-on {
    color: #fff;
    background: var(--pri);
    border-color: var(--pri);
    box-shadow: 0 8px 20px rgba(21, 63, 143, .2);
}

/* ---------- 底部转化带 ---------- */
.pcta {
    position: relative;
    background: var(--pri-deep);
    color: #fff;
    overflow: hidden;
}
.pcta::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 56px 56px;
    pointer-events: none;
}
.pcta-in {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    /* 只设上下内边距，左右交给 .wrap，否则内容会贴屏边 */
    padding-top: 38px;
    padding-bottom: 38px;
}
.pcta-t { font-size: clamp(18px, 1.8vw, 23px); font-weight: 800; color: #fff; }
.pcta-d { margin-top: 7px; font-size: 13.5px; line-height: 1.7; color: rgba(255, 255, 255, .62); }
.pcta-acts { display: flex; flex: none; gap: 12px; }
.btn-gold {
    color: var(--pri-deep);
    background: var(--gold);
    box-shadow: 0 10px 24px rgba(201, 162, 76, .22);
}
.btn-gold:hover { background: var(--gold-l); transform: translateY(-2px); }
.btn-ghost-l {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .34);
}
.btn-ghost-l:hover { color: var(--pri); background: #fff; border-color: #fff; }

/* ---------- 详情页：标题与上下篇同排 ---------- */
.pdetail-hd {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
    padding-bottom: 22px;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--line);
}
.pdetail-hd > h1 {
    flex: 1;
    min-width: 0;
    font-size: clamp(22px, 2.6vw, 32px);
    font-weight: 800;
    line-height: 1.38;
    color: var(--ink);
}
.pdetail-nav { flex: none; display: flex; gap: 8px; padding-top: 4px; }
.pdetail-nav a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 38px;
    padding: 0 14px;
    font-size: 13px;
    color: var(--ink-2);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .28s var(--ease);
}
.pdetail-nav a:hover { color: var(--pri); background: #fff; border-color: var(--pri); }
.pdetail-nav a.is-off {
    color: var(--gray-l);
    background: transparent;
    border-color: var(--line);
    pointer-events: none;
    opacity: .6;
}
.pdetail-nav i { font-size: 11px; }
.pdetail-nav a[href="javascript:;"] {
    opacity: .42;
    pointer-events: none;
}

/* 产品详情：标题行与图标翻页 */
.pd-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.pd-title-row .pd-title { flex: 1; min-width: 0; }
.pd-title-row .pdetail-nav { padding-top: 2px; gap: 8px; }
.pd-title-row .pdetail-nav a { height: 36px; padding: 0 12px; }
.pd-title-row .pdetail-nav a span { white-space: nowrap; }

/* ---------- 内容页：正文下方上一篇 / 下一篇（带标题） ---------- */
.pdetail-pn {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 44px;
    padding-top: 32px;
    border-top: 1px solid var(--line);
}
.pn-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 17px 22px;
    background: var(--bg-soft);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .28s var(--ease);
}
.pn-item:hover {
    background: #fff;
    border-color: var(--pri);
    box-shadow: var(--shadow-s);
}
.pn-k {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: var(--gray-l);
}
.pn-k i { font-size: 11px; }
.pn-t {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 右卡：标签与标题仍横排，镜像到右端（标题在左、标签在右） */
.pn-next { flex-direction: row-reverse; text-align: right; }
.pn-item:hover .pn-t { color: var(--pri); }
.pn-item.is-off { pointer-events: none; opacity: .5; }
.pn-item.is-off .pn-t { font-weight: 400; }
.pn-item.is-off:hover { background: var(--bg-soft); border-color: var(--line); box-shadow: none; }
.pn-item.is-off:hover .pn-t { color: var(--ink); }

/* ---------- 联系页 v2 ---------- */
.cgrid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 34px;
}
.cbox {
    position: relative;
    min-width: 0;
    padding: 26px 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all .32s var(--ease);
}
.cbox::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 3px;
    background: var(--pri);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s var(--ease);
}
.cbox:hover { transform: translateY(-4px); border-color: transparent; box-shadow: var(--shadow-m); }
.cbox:hover::before { transform: scaleX(1); }
.cbox-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 16px;
    font-size: 17px;
    color: #fff;
    background: var(--pri);
    border-radius: var(--radius);
    transition: background .3s var(--ease);
}
.cbox:hover .cbox-ico { background: var(--pri-deep); }
.cbox-t { font-size: 13px; color: var(--gray-l); }
.cbox-v {
    display: block;
    margin-top: 6px;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.4;
    color: var(--ink);
    word-break: break-all;
}
.cbox-sub { margin-top: 8px; font-size: 12px; color: var(--gray-l); }

/* 公司信息细目 */
.cdetail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 44px;
    margin-top: 8px;
}
.cdetail-row {
    display: flex;
    gap: 16px;
    padding: 13px 0;
    font-size: 14px;
    border-bottom: 1px dashed var(--line);
}
.cdetail-k { flex: none; width: 62px; color: var(--gray-l); }
.cdetail-v { min-width: 0; color: var(--ink-2); word-break: break-all; }
.cdetail-v a { color: var(--pri); font-weight: 600; }

/* ---------- 联系页表单带 ---------- */
.cform-wrap {
    margin-top: 6px;
    padding: 38px 36px;
    background: var(--bg-soft);
    border-radius: var(--radius);
}
.cform-hd { margin-bottom: 26px; }
.cform-hd h2 { font-size: 21px; font-weight: 800; }
.cform-hd p { margin-top: 8px; font-size: 13.5px; color: var(--gray); }

/* ---------- 内页结构 v2 响应式 ---------- */
@media (max-width: 1200px) {
    .cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
    .pcta-in { flex-direction: column; align-items: flex-start; gap: 20px; }
    .pcta-acts { width: 100%; }
    .pcta-acts .btn { flex: 1; justify-content: center; }
}

@media (max-width: 768px) {
    .subnav {
        gap: 8px;
        margin-bottom: 26px;
        padding-bottom: 20px;
        flex-wrap: nowrap;
        /* 横向滚动时靠左，居中会把第一项裁到滚动区外 */
        justify-content: flex-start;
        overflow-x: auto;
        margin-right: -16px;
        padding-right: 16px;
        scrollbar-width: none;
    }
    .subnav::-webkit-scrollbar { display: none; }
    .subnav a { flex: none; height: 40px; padding: 0 16px; font-size: 13.5px; }

    /* 转化带：竖排文案 + 并排两个大按钮（原来按钮被 flex:1 压成 25px 高） */
    .pcta-in {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .pcta-t { font-size: 20px; line-height: 1.36; }
    .pcta-d { margin-top: 7px; font-size: 13px; line-height: 1.68; }
    .pcta-acts { flex-direction: row; flex-wrap: wrap; gap: 10px; }
    .pcta-acts .btn {
        flex: 1 1 140px;
        width: auto;
        height: 48px;
        min-height: 48px;
        padding: 0 14px;
        font-size: 14.5px;
        gap: 8px;
    }

    .pdetail-hd { flex-direction: column; gap: 14px; padding-bottom: 18px; margin-bottom: 18px; }
    .pdetail-nav { padding-top: 0; }
    .pdetail-nav a { height: 36px; font-size: 12.5px; }
    /* 上下篇：窄屏单列，标签统一在左 */
    .pdetail-pn { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 32px; padding-top: 24px; }
    .pn-item { padding: 13px 16px; gap: 10px; }
    .pn-next { flex-direction: row; text-align: left; }

    .cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 26px; }
    .cbox { padding: 20px 16px; }
    .cbox-ico { width: 40px; height: 40px; margin-bottom: 12px; font-size: 15px; }
    .cbox-v { font-size: 14.5px; }
    .cbox-sub { display: none; }
    .cdetail { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .cform-wrap { margin-top: 34px; padding: 24px 18px; }
    .cform-hd h2 { font-size: 18px; }
}

@media (max-width: 480px) {
    .cgrid { grid-template-columns: minmax(0, 1fr); }
    .cbox { display: flex; align-items: center; gap: 14px; padding: 16px; }
    .cbox-ico { margin-bottom: 0; flex: none; }
    .cbox-t { font-size: 12px; }
    .cbox-v { margin-top: 3px; font-size: 15px; }
}

/* 去掉英文小标题后，主标题成为区块头第一个元素，清掉它的上外边距避免多出空白 */
.sec-hd > .sec-t:first-child { margin-top: 0; }
.about-bd > .about-t:first-child { margin-top: 0; margin-bottom: 0; }
.about-bd .sec-line { margin-top: 14px; }
