/* ==========================================================================
   昆仑石油（Xinjiang Kunlun Petroleum）双语站 - 主题样式
   蓝湖还原 / 主色 深蓝 #014681 · 强调红 #e50014 · 新闻底 #f5f4f0
   设计基准 1920px / 内容区 1400px
   ========================================================================== */

:root {
    --blue: #014681;
    --navy: #01345e;
    --deep: #01274a;
    --red:  #e50014;
    --ink:  #202020;
    --gray: #666;
    --line: rgba(0,0,0,.08);
    --bgf:  #f5f4f0;
    --wrap-max: 1400px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
    font-family: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.6;
    background: #fff;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; margin: 0; }

.wrap { max-width: var(--wrap-max); margin-inline: auto; padding-inline: 24px; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0; }

/* ==========================================================================
   通用：节标题（蓝湖稿 sec_head 通用形态：圆形小图标 + 大字标题）
   ========================================================================== */
.sec-head { display: inline-flex; align-items: center; gap: 14px; }
.sec-head .sec-icon { width: 46px; height: 46px; flex: 0 0 46px; object-fit: contain; }
.sec-head h2 { font-size: 44px; color: var(--blue); font-weight: 700; letter-spacing: 2px; margin: 0; line-height: 1; }
.sec-sub  { font-size: 26px; color: var(--ink); font-weight: 700; margin-top: 18px; line-height: 1.4; display: block; }
.sec-desc { font-size: 16px; color: #555; line-height: 1.95; }

/* --------------------------------------------------------------------------
   首页板块标题体系（一级 / 二级）· 2026-09-10 起首页 6 个板块通用
   --------------------------------------------------------------------------
   一级标题 = 英文眉标（.sec-head__eyebrow，仅中文站）+ 图标 + 主标（.sec-head）
             + 红→蓝渐变短线（.sec-head__line，作一/二级分层线）
   二级标题 = 4px 红色竖条（.sec-sub::before）+ 加粗标语
   结构由 partials/home_head.blade.php 输出；.kz-intro 为 60px 主标的放大版，见该段
   -------------------------------------------------------------------------- */
.sec-head__eyebrow {
    display: block;
    font-size: 12px; font-weight: 700; letter-spacing: 5px; text-transform: uppercase;
    color: rgba(1, 70, 129, .45); line-height: 1;
    margin-bottom: 14px;
}
/* 渐变短线：左起红 → 蓝 → 渐隐（百分比色标，改宽度不需重调渐变） */
.sec-head__line {
    display: block; width: 240px; max-width: 100%; height: 3px;
    margin: 18px 0 0; border-radius: 2px;
    background: linear-gradient(90deg,
        #e50014 0%, #014681 32%,
        rgba(1, 70, 129, .32) 63%, rgba(1, 70, 129, 0) 100%);
}
/* 二级标题红竖条（与一级标题图标同处左基准线，不额外产生缩进错位） */
.kz-intro .intro-text .sec-sub,
.kz-biz .sec-sub,
.kz-strength .strength-top .sec-sub,
.kz-overseas .ov-row .sec-sub,
.kz-domestic .sec-sub,
.kz-news .sec-sub { position: relative; padding-left: 16px; }
.kz-intro .intro-text .sec-sub::before,
.kz-biz .sec-sub::before,
.kz-strength .strength-top .sec-sub::before,
.kz-overseas .ov-row .sec-sub::before,
.kz-domestic .sec-sub::before,
.kz-news .sec-sub::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 22px; border-radius: 2px; background: var(--red);
}

/* 了解更多（蓝湖按钮：红底 圆角 0 16 0 16 + 白色箭头） */
.btn-more {
    display: inline-flex; align-items: center; gap: 12px;
    background: var(--red); color: #fff; font-size: 16px;
    padding: 12px 22px; border-radius: 0 16px 0 16px;
    transition: background .2s; cursor: pointer; border: 0;
}
.btn-more:hover { background: #c10010; }
.btn-more .arrow { width: 24px; height: 24px; filter: brightness(0) invert(1); }

/* ==========================================================================
   公共 - 顶部导航（双行：上 联系方式/语言，下 主菜单）
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: 0 2px 12px rgba(1,70,129,.06); }
.hd-inner { max-width: var(--wrap-max); margin-inline: auto; padding: 0 24px; display: grid; grid-template-columns: 200px 1fr; align-items: center; height: 90px; gap: 30px; }
.site-header .logo img { height: 56px; width: auto; }
.site-header .logo { display: inline-flex; align-items: center; gap: 10px; }
.hd-right { display: grid; grid-template-rows: auto 1fr; gap: 8px; }
.hd-top { display: flex; justify-content: flex-end; align-items: center; gap: 26px; font-size: 15px; color: #0f0f0f; }
.hd-top .tel { display: inline-flex; align-items: center; gap: 6px; }
.hd-top .tel img { width: 16px; height: 16px; }
.hd-top .tel b { font-weight: 600; }
/* 中英文切换下拉（2026-09-10 参照蓝湖：语言图标 + 当前语言 + 下箭头） */
.hd-top .lang-dd { position: relative; }
.hd-top .lang-dd__btn {
    position: relative;
    display: inline-flex; align-items: center; gap: 7px;
    padding: 4px 0; margin: 0; border: 0; background: none; cursor: pointer;
    font-family: inherit; font-size: 15px; color: #0f0f0f; line-height: 1;
}
/* 语言图标：单色图标当蒙版，填站内红（不使用彩色图，颜色可控）
   2026-09-10 栋生定稿：默认纯红 + 「放大转动」循环吸引注意；
   鼠标悬停 / 点击展开下拉时「只转动、不改变大小」 */
.hd-top .lang-dd__ico {
    position: relative; z-index: 1;
    display: block; width: 18px; height: 18px; flex: 0 0 18px;
    background-color: var(--red);
    -webkit-mask: url('/resources/themes/nlqst/public/images/langerage@2x.png') center / contain no-repeat;
            mask: url('/resources/themes/nlqst/public/images/langerage@2x.png') center / contain no-repeat;
    animation: langIcoSpin 3.6s cubic-bezier(.32, .72, .30, 1) infinite;
    will-change: transform;
}
/* 默认态：先放大到 1.3 倍 → 在放大状态下转一圈 → 缩回原尺寸 */
@keyframes langIcoSpin {
    0%   { transform: scale(1)   rotate(0deg); }
    30%  { transform: scale(1.3) rotate(0deg); }
    70%  { transform: scale(1.3) rotate(360deg); }
    100% { transform: scale(1)   rotate(360deg); }
}
/* 悬停 / 展开下拉：尺寸不变，只匀速转动 */
@keyframes langIcoSpinFlat {
    0%   { transform: scale(1) rotate(0deg); }
    100% { transform: scale(1) rotate(360deg); }
}
.hd-top .lang-dd__btn:hover .lang-dd__ico,
.hd-top .lang-dd.is-open .lang-dd__ico {
    animation: langIcoSpinFlat 3.6s linear infinite;
}
.hd-top .lang-dd__cur { transition: color .2s; }
.hd-top .lang-dd__btn:hover .lang-dd__cur { color: var(--blue); }
.hd-top .lang-dd__caret {
    width: 11px; height: 7px; flex: 0 0 11px; color: #0f0f0f;
    transition: transform .25s ease, color .2s;
}
.hd-top .lang-dd__btn:hover .lang-dd__caret { color: var(--blue); }
.hd-top .lang-dd.is-open .lang-dd__caret { transform: rotate(180deg); }
/* 展开菜单（visibility 不参与过渡：避免过渡未跑完时菜单残留可见）
   对齐：左缘与按钮对齐、紧贴按钮下方 4px；菜单项文字左缩进 19px(=图标18+间距7−菜单内边距6)
   使「English」与按钮里的「中文」在同一竖直线上 */
.hd-top .lang-dd__menu {
    position: absolute; left: 0; right: auto; top: calc(100% + 4px); z-index: 60;
    min-width: 100%; padding: 6px;
    background: #fff; border: 1px solid #edf1f5; border-radius: 10px;
    box-shadow: 0 12px 28px rgba(1,70,129,.16);
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(-4px);
    transition: opacity .2s ease, transform .2s ease;
}
.hd-top .lang-dd.is-open .lang-dd__menu {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.hd-top .lang-dd__item {
    display: block; padding: 8px 14px 8px 19px; border-radius: 6px;
    font-size: 15px; color: #0f0f0f; white-space: nowrap;
    transition: background .2s, color .2s;
}
.hd-top .lang-dd__item:hover { background: #eef3f9; color: var(--blue); }
/* 901–1200px 顶栏本身已很紧（导航会顶到内容右缘），下拉改为右对齐，
   避免菜单比按钮宽出的部分越过视口右缘、产生横向滚动条 */
@media (min-width: 901px) and (max-width: 1200px) {
    .hd-top .lang-dd__menu { left: auto; right: 0; }
    .hd-top .lang-dd__item { padding-left: 14px; }
}

/* 尊重系统减弱动效偏好 */
@media (prefers-reduced-motion: reduce) {
    .hd-top .lang-dd__ico, .hd-top .lang-dd__caret { transition: none; }
    .hd-top .lang-dd__ico,
    .hd-top .lang-dd__btn:hover .lang-dd__ico,
    .hd-top .lang-dd.is-open .lang-dd__ico { animation: none; }   /* 静止纯红图标 */
}
.hd-top .lang img { width: 16px; height: 16px; vertical-align: middle; margin: 0 4px 2px 0; }

.nav-menu { display: flex; gap: 22px; justify-content: flex-end; align-items: center; flex-wrap: nowrap; }
.nav-menu > .nav-item { position: relative; white-space: nowrap; }
.nav-menu > .nav-item > a { display: block; font-size: 15px; color: #333; padding: 10px 0; transition: color .2s; position: relative; white-space: nowrap; }
.nav-menu > .nav-item > a:hover, .nav-menu > .nav-item > a.active { color: var(--blue); }
.nav-menu > .nav-item > a.active::after, .nav-menu > .nav-item > a:hover::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--red); }
.sub-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); min-width: 180px; background: #fff; box-shadow: 0 10px 24px rgba(0,0,0,.1); padding: 8px 0; display: none; }
.nav-item.has-sub:hover > .sub-menu { display: block; }
.sub-menu .nav-item a { display: block; padding: 10px 22px; font-size: 15px; color: #333; white-space: nowrap; transition: background .2s; }
.sub-menu .nav-item a:hover { background: #f4f7fb; color: var(--blue); }

.hd-toggle { display: none; background: transparent; border: 0; font-size: 26px; color: var(--blue); cursor: pointer; }
/* 移动端专用语言切换（常驻 logo 右侧）。桌面端整体隐藏 → PC 布局零影响 */
.hd-lang { display: none; }

/* ==========================================================================
   公共 - 底部
   ========================================================================== */
.site-footer { background: var(--navy) url('/resources/themes/nlqst/public/images/index_lanhu/db03a681462ffa40be040110f809bff9.png') center/cover no-repeat; color: #fff; margin-top: 0; }
/* 栋生 2026-09-10：左 logo+联系方式 | 白竖线 | 右 4 栏导航 + 二维码 */
.foot-main {
    max-width: var(--wrap-max); margin-inline: auto;
    padding: 60px 24px 34px;
    display: flex; align-items: flex-start; gap: 38px;
}
.foot-brand { flex: 0 0 290px; width: 290px; }
.foot-brand .brand-logo { height: 60px; }
.foot-brand h4 { font-size: 18px; margin: 16px 0 8px; font-weight: 600; }
.foot-brand .ftel-label, .foot-brand .faddr-label { font-size: 15px; color: #cfe0f2; margin-top: 12px; }
.foot-brand .ftel-num { font-size: 26px; font-weight: 700; line-height: 1.4; margin: 4px 0 14px; }
.foot-brand .faddr { font-size: 15px; color: #cfe0f2; line-height: 1.7; }

.foot-divider { flex: 0 0 1px; width: 1px; align-self: stretch; background: rgba(255,255,255,.28); }

.foot-nav { flex: 1 1 auto; min-width: 0; display: flex; align-items: flex-start; gap: 14px; }
.foot-col { flex: 1 1 0; min-width: 0; text-align: left; }
.foot-col--wide { flex: 1.5 1 0; }
/* 末栏（石油勘探开发投资及服务）：宽度按标题内容占位，标题一行显示 */
.foot-col:last-child { flex: 0 0 auto; }
.foot-col:last-child h4 { white-space: nowrap; }
/* 四栏大标题：左侧红竖条修饰（站内统一语言，见 .svd-nav__cap / .svd-main__rule）；标题左起，下方条目与标题首字对齐 */
.foot-col h4 {
    display: flex; align-items: center; justify-content: flex-start; gap: 10px;
    font-size: 18px; font-weight: 700; margin: 0 0 16px;
}
.foot-col h4::before {
    content: ''; flex: 0 0 4px; width: 4px; height: 18px;
    background: var(--red); border-radius: 2px;
}
.foot-col h4 a { color: #fff; transition: color .2s; }
.foot-col h4 a:hover { color: var(--red); }
/* 条目缩进 14px = 标题红竖条 4px + 间距 10px，使条目文字与标题首个字左边缘严格对齐 */
.foot-col ul { padding-left: 14px; }
.foot-col ul li { margin-bottom: 9px; }
.foot-col ul li a { font-size: 14px; color: #cfe0f2; line-height: 1.55; transition: color .2s; }
/* footer 全部条目链接统一「经过色」= 站内红 */
.foot-col ul li a:hover { color: var(--red); }
/* 石油工程 9 项细分业务两列：列宽按内容自适应 + 窄间隙 + 左起与标题首字对齐 */
.foot-col ul.is-two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    justify-content: start;
    column-gap: 14px; row-gap: 0;
}

.foot-qr { flex: 0 0 130px; text-align: center; }
.foot-qr .qr { width: 130px; height: 130px; background: #fff; padding: 6px; border-radius: 6px; }
.foot-qr .qr img { width: 100%; height: 100%; object-fit: cover; }
.foot-qr .qr-tip { font-size: 14px; color: #cfe0f2; margin-top: 10px; }
.foot-copy { border-top: 1px solid rgba(255,255,255,.12); padding: 16px 24px; text-align: center; font-size: 13px; color: #9eb6d0; letter-spacing: .5px; }

/* ==========================================================================
   首页 - 1 Banner（高度随激活图比例自适应，整图零裁切）
   设计稿 1920×1000 → 基准 52.08vw；JS 按每张图 natural 比例精确撑高（≤1000px）
   ========================================================================== */
.kz-banner { position: relative; height: clamp(380px, 52.08vw, 1000px); overflow: hidden; background: #01274a; transition: height .4s ease; }
.kz-banner .slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.kz-banner .slide.active { opacity: 1; }
.kz-banner .slide img { width: 100%; height: 100%; object-fit: cover; }
.kz-banner--fallback { height: clamp(300px, 52.08vw, 1000px); }
.kz-banner--fallback img { width: 100%; height: 100%; object-fit: cover; }

/* Banner 宣传语浮层（描述 2 行 + 内容 1 行；与顶部 Logo 同左对齐到 1400 容器） */
.kz-banner__cap {
    position: absolute; left: 0; right: 0; top: 0; bottom: 0;
    display: flex; flex-direction: column; justify-content: center;
    pointer-events: none;
    z-index: 2;
    max-width: var(--wrap-max); margin-inline: auto; padding-inline: 24px;
    text-align: left;
}
.kz-banner__cap .cap-l1 {
    color: #fff; font-size: 26px; font-weight: 500;
    letter-spacing: 4px; text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.kz-banner__cap .cap-l2 {
    color: #fff; font-size: clamp(34px, 3.1vw, 56px); font-weight: 700;
    line-height: 1.28; letter-spacing: 3px;
    text-shadow: 0 3px 16px rgba(0,0,0,.45);
}
.kz-banner__cap .cap-l1 + .cap-l2 { margin-top: 14px; }
.kz-banner__cap .cap-sub {
    color: rgba(255,255,255,.95); font-size: 20px;
    letter-spacing: 1px; margin-top: 20px; text-shadow: 0 2px 10px rgba(0,0,0,.35);
}
/* 宣传语入场特效：行1/行2/内容错峰上移淡入；切图(active 切换)时自动重播 */
.kz-banner .slide .kz-banner__cap .cap-l1,
.kz-banner .slide .kz-banner__cap .cap-l2,
.kz-banner .slide .kz-banner__cap .cap-sub { opacity: 0; }
.kz-banner .slide.active .kz-banner__cap .cap-l1,
.kz-banner .slide.active .kz-banner__cap .cap-l2,
.kz-banner .slide.active .kz-banner__cap .cap-sub {
    animation: kzCapIn .7s cubic-bezier(.22,.61,.36,1) both;
}
.kz-banner .slide.active .kz-banner__cap .cap-l1  { animation-delay: .15s; }
.kz-banner .slide.active .kz-banner__cap .cap-l2  { animation-delay: .35s; }
.kz-banner .slide.active .kz-banner__cap .cap-sub { animation-delay: .55s; }
@keyframes kzCapIn {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
.kz-banner .dots { position: absolute; left: 0; right: 0; bottom: 37px; display: flex; justify-content: center; gap: 10px; z-index: 3; }
.kz-banner .dots button { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.5); border: 0; padding: 0; cursor: pointer; }
.kz-banner .dots button.active { background: #fff; width: 26px; border-radius: 6px; }

/* ==========================================================================
   首页 - 2 集团简介（蓝湖 box_4：1920×1000 整宽 + 1345×1000 出血大图）
   蓝湖 vue 真实结构：box_4 flex-row justify-end 内含 section_1(690×629 margin:99/0/0/260) + image_4(1345×1000)
     flex 让两子项首尾相连：文字 0..950、大图 950..1920（图右下角贴视口右下角）
   实际渲染：图等比高 100% 满铺 1000px → 宽 1345，超出 1920 的 325px 溢出左侧
     但实测效果图（1首页.jpg）图实际显示宽 ≈1020（蓝湖→设计稿导出误差），左缘 x≈900
   实现策略：section 高度与 banner 同（52.08vw），文字用 .wrap 容器 1400 居中自动对齐 section_1 的 260px
             大图 absolute 定位 right:0 width:53.125%（1020/1920），img height:100% 等比 1.345:1
             容器 overflow:hidden 裁掉右侧溢出 → 图右下角始终贴区块右下角
   ========================================================================== */
.kz-intro {
    position: relative;
    height: clamp(380px, 52.08vw, 1000px);   /* 与 banner 等高，无缝衔接 */
    margin-top: -20px;                        /* 整体上移 20px：大厦图右上角更贴 banner 右下角 */
    overflow: hidden;
    background: #fff url('/resources/themes/nlqst/public/images/index_lanhu/7a8db7eed550944e16949cab6cc73281.png') center/cover no-repeat;
}
.kz-intro .wrap { position: relative; height: 100%; z-index: 1; }
.kz-intro .intro-photo {
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 71.875%;                          /* 1380/1920；容器左缘 x540，让大厦图完整左缘≈x540 */
    overflow: hidden;
}
.kz-intro .intro-photo img {
    position: absolute;
    right: 0; top: 0;
    height: 100%;
    width: auto;
    max-width: none;
    display: block;
}
.kz-intro .intro-text {
    position: relative;
    width: 36%;                              /* 690/1920 */
    max-width: 690px;
    /* 原为 9.9%（99/1000 区块高）；2026-09-10 栋生要求「文字块整体上移 50px」——
       眉标 / 主标 / 分层线 / 二级标题 / 正文 / 按钮作为一整块上移，块内间距不变 */
    padding-top: calc(9.9% - 50px);
}
/* --- 集团介绍板块标题体系（2026-09-10） ---------------------------------------
   2026-09-10 栋生要求：本板块标题字号与「核心业务」一致 →
   原先的 60px 主标 / 28px 副标 / 300px 短线 / 15px 眉标间距等覆盖全部取消，
   直接继承通用规格（44px 主标、26px 副标、240px 短线、14px 眉标间距、16px 副标缩进），
   与 .kz-biz / .kz-strength / .kz-overseas / .kz-domestic / .kz-news 完全同规格。
   二级标题红竖条已并入下方通用选择器组。
   ------------------------------------------------------------------------------- */
.kz-intro .intro-text .sec-desc { font-size: 18px; line-height: 44px; margin-top: 26px; display: -webkit-box; -webkit-line-clamp: 6; line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.kz-intro .intro-text .btn-more { margin-top: 36px; }

/* ==========================================================================
   首页 - 3 核心数据（5 列等宽）
   ========================================================================== */
.kz-stats { padding: 56px 0 90px; background: #fff; }
.kz-stats .stats-row { display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; max-width: 1200px; margin: 0 auto; }
.kz-stats .num-val { font-variant-numeric: tabular-nums; }
.kz-stats .stat { text-align: center; padding: 8px 18px; position: relative; }
.kz-stats .stat + .stat::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 76px; background: #e3e6ec; }
.kz-stats .stat .stat-num { display: inline-block; color: var(--red); font-size: 56px; font-weight: 700; line-height: 1; }
.kz-stats .stat .stat-num .unit { color: #202020; font-size: 18px; font-weight: 500; margin-left: 4px; }
.kz-stats .stat .stat-label { color: #202020; font-size: 15px; margin-top: 14px; line-height: 1.5; }

/* ==========================================================================
   首页 - 4 核心业务（3 卡：1 大 + 2 小）
   ========================================================================== */
.kz-biz { padding: 80px 0 100px; background: #fff url('/resources/themes/nlqst/public/images/index_lanhu/e76b15c631419e84c36a721b072a43be.png') center/cover no-repeat; }
.kz-biz .sec-sub { margin-top: 18px; margin-bottom: 38px; }
/* 手风琴：flex + flex-grow 过渡（19:8:8），蓝湖 760/320/320 比例；默认首张 is-open */
.kz-biz .biz-row { display: flex; gap: 0; max-width: var(--wrap-max); margin: 0 auto; padding: 0; }
.kz-biz .biz-card {
    position: relative; overflow: hidden; height: 570px; color: #fff;
    flex: 0 1 0; flex-grow: 8; flex-shrink: 1; flex-basis: 0;
    cursor: pointer; -webkit-tap-highlight-color: transparent;
    transition: flex-grow .75s cubic-bezier(.4,0,.2,1);
}
.kz-biz .biz-card.is-open { flex-grow: 19; cursor: default; }
/* 双层背景：竖图（收起）/ 横图（展开）交叉淡化；展开态悬停横图缓慢放大（商务感） */
.kz-biz .biz-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; transition: opacity .75s ease; }
.kz-biz .biz-bg--thumb  { opacity: 1; }
.kz-biz .biz-bg--expand { opacity: 0; }
.kz-biz .biz-card.is-open .biz-bg--thumb  { opacity: 0; }
.kz-biz .biz-card.is-open .biz-bg--expand { opacity: 1; transition: opacity .75s ease, transform 7s ease-out; }
.kz-biz .biz-card.is-open:hover .biz-bg--expand { transform: scale(1.07); }
/* 渐变罩：顶部微暗衬标题，底部加深衬描述/按钮 */
.kz-biz .biz-cover { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.05) 24%, rgba(0,0,0,0) 40%, rgba(0,0,0,.62) 78%, rgba(0,0,0,.86) 100%); pointer-events: none; transition: opacity .5s ease; }
/* ============================================================
   文字层策略（v3）：收起/展开「双态文字层」+ 错峰淡入淡出
   —— 手风琴宽度动画（flex-grow .75s）期间文字整体不可见，
      规避中文文本在宽度渐变中的逐帧换行重排，杜绝“晃动”；
      宽度接近稳定后，新态文字延迟淡入并轻微上浮，干净商务。
   ------------------------------------------------------------
   .biz-copy--min = 收起态层：贴底 bottom:20 锚定，desc 全显示
   .biz-copy--max = 展开态层：顶部 top:126 锚定，desc clamp3 + tabs + 了解更多
   时序（注意：CSS transition 取自“变化后目标状态”的声明，故：
   目标=显示态一律给快过渡 .16s，目标=隐藏态给 .42s 且延迟至 flex .75s 结束后 .68s）：
   获 is-open：min 立即淡出(.16s) → 空窗期完成宽度重排 → max 于宽度稳定后(.68s)淡入(.42s)+上浮
   移除 is-open：max 立即淡出(.16s) → min 延迟 .68s 淡入(.42s)+上浮
   ============================================================ */
.kz-biz .biz-body { position: absolute; inset: 0; color: #fff; }

/* ---- 收起态层：常态显示（贴底 20px）；移入 is-open（目标隐藏）用 .16s 立即淡出 ---- */
.kz-biz .biz-copy--min {
    position: absolute; left: 30px; right: 26px; top: auto; bottom: 20px;
    opacity: 1; visibility: visible; pointer-events: none;
    transform: translateY(0);
    transition: opacity .42s ease .68s, transform .42s ease .68s, visibility 0s linear 0s;
}
.kz-biz .biz-card.is-open .biz-copy--min {
    opacity: 0; visibility: hidden; transform: translateY(14px);
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
/* ---- 展开态层：常态隐藏；移入 is-open（目标显示）等 flex .75s 结束后再淡入 + 上浮 ---- */
.kz-biz .biz-copy--max {
    position: absolute; left: 30px; right: 26px; top: 126px; bottom: auto;
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(14px);
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.kz-biz .biz-card.is-open .biz-copy--max {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
    transition: opacity .42s ease .68s, transform .42s ease .68s, visibility 0s linear 0s;
}
/* 标题：30px 白 + 左侧红色短竖条（品牌点） + 阴影保证叠图可读 */
.kz-biz .biz-title-link { color: inherit; text-decoration: none; display: inline-block; max-width: 100%; }
.kz-biz .biz-title {
    position: relative; margin: 0; padding-left: 22px;
    font-size: 30px; font-weight: 700; line-height: 1.25;
    text-shadow: 0 2px 18px rgba(0,0,0,.45);
}
.kz-biz .biz-title::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 5px; height: 24px; border-radius: 3px; background: var(--red);
}
/* 描述：收起态全显示（层贴底自撑）；展开态限 3 行给 tabs 留位 */
.kz-biz .biz-desc {
    margin: 14px 0 0; max-width: 660px;
    font-size: 16px; font-weight: 400; line-height: 28px; color: rgba(255,255,255,.94);
    overflow: hidden;
    text-shadow: 0 1px 10px rgba(0,0,0,.35);
}
.kz-biz .biz-card.is-open .biz-desc {
    display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3;
    -webkit-box-orient: vertical;
}
/* tab：白框白字；位于展开层内随层淡入（无需内部折叠动画） */
.kz-biz .biz-tabs {
    list-style: none; padding: 0; margin: 28px 0 0;
    display: flex; flex-wrap: wrap; gap: 12px; max-width: 660px;
}
.kz-biz .biz-tabs li { list-style: none; }
.kz-biz .biz-tabs a,
.kz-biz .biz-tabs .biz-tab-disabled {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 128px; height: 34px; padding: 0 14px;
    border: 1px solid rgba(255,255,255,.95); color: #fff; font-size: 15px; font-weight: 500; line-height: 1;
    text-align: center; text-decoration: none; white-space: nowrap;
    background: rgba(0,0,0,.08);
    transition: background .25s ease, border-color .25s ease, color .25s ease; box-sizing: border-box;
}
.kz-biz .biz-tabs a:hover { background: var(--red); border-color: var(--red); color: #fff; }
.kz-biz .biz-tabs .biz-tab-disabled { cursor: default; background: rgba(255,255,255,.10); }
/* 了解更多按钮：位于展开层内随层淡入（基类视觉见顶部 .btn-more） */
.kz-biz .btn-more { margin: 28px 0 0; }

/* ==========================================================================
   首页 - 5 综合实力（3 张大幅实景图卡）
   ========================================================================== */
.kz-strength { padding: 80px 0 100px; background: #fff; }
.kz-strength .sec-head { margin-bottom: 14px; }   /* 2026-09-10：下方新增红蓝渐变分层线，原 22px 让位 */
.kz-strength .strength-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; margin: 14px 0 44px; }
.kz-strength .strength-top .sec-sub { margin: 0; }
.kz-strength .strength-top .sec-desc { max-width: 760px; padding-top: 6px; }
.kz-strength .strength-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.kz-strength .s-card { position: relative; height: 560px; background-color: #dfe5ec; background-size: cover; background-position: center; overflow: hidden; }
.kz-strength .s-card .cover { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 25%, rgba(0,0,0,.82) 100%); }
.kz-strength .s-card .body { position: relative; height: 100%; padding: 32px 30px; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; }
.kz-strength .s-card .s-title { font-size: 24px; font-weight: 700; }
.kz-strength .s-card .s-sub { font-size: 16px; color: rgba(255,255,255,.92); margin-top: 6px; }
.kz-strength .s-card .s-line {
    position: relative; overflow: hidden;
    width: 86%; height: 2px; background: rgba(255,255,255,.3);
    margin: 14px 0 16px;
}
/* 二级标题（品宣行）下方的线：hover 时红线从左流入（宽度展开），商务强调 */
.kz-strength .s-card .s-line::after {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 0;
    background: var(--red);
    transition: width .65s cubic-bezier(.22,.61,.36,1);
}
.kz-strength .s-card:hover .s-line::after { width: 100%; }
.kz-strength .s-card .s-desc { font-size: 14px; line-height: 1.85; color: rgba(255,255,255,.92); }

/* ---- 综合实力三卡 动效（专业商务风：进入上浮淡入 + hover 上浮/投影/红条） ---- */
/* 仅当 JS 已启用（html.js）才做初始隐藏，无 JS 时内容直接可见（兜底） */
html.js .kz-strength .s-card { opacity: 0; transform: translateY(46px); }
.kz-strength .s-card {
    transition: opacity .7s ease, transform .55s cubic-bezier(.22,.61,.36,1), box-shadow .5s ease;
    will-change: transform, opacity;
}
.kz-strength .s-card.is-in,
html.js .kz-strength .s-card.is-in { opacity: 1; transform: translateY(0); }
/* hover：上浮 + 商务深蓝投影 + 文字内容微抬升 */
html.js .kz-strength .s-card.is-in:hover { transform: translateY(-10px); box-shadow: 0 20px 46px rgba(1,70,129,.24); }
.kz-strength .s-card .body { transition: transform .45s ease; }
.kz-strength .s-card:hover .body { transform: translateY(-6px); }
/* 遮罩 hover 变化：下部渐变加深并向品牌蓝过渡（视觉聚焦） */
.kz-strength .s-card .cover { transition: background .45s ease; }
.kz-strength .s-card:hover .cover { background: linear-gradient(180deg, rgba(0,0,0,0) 18%, rgba(1,70,129,.55) 58%, rgba(1,70,129,.92) 100%); }
/* 尊重系统减弱动态偏好：关闭位移/延迟，仅保留淡入 */
@media (prefers-reduced-motion: reduce) {
    html.js .kz-strength .s-card { opacity: 1; transform: none; transition: none; }
    /* 内页大图文字进入效果：系统偏好减弱动态时直接静态显示 */
    .sv-hero__t1, .sv-hero__t2,
    .ab-hero__t1, .ab-hero__t2, .ab-hero__t3 { animation: none; }
}

/* ==========================================================================
   首页 - 6 海外市场（全幅世界地图 + 顶部文案）
   ========================================================================== */
.kz-overseas { position: relative; height: auto; min-height: 540px; overflow: hidden; }
/* 背景世界地图比例 3840:1980 ≈ 1.94:1，让容器高度随宽度按图片比例自动伸缩，
   保证 object-fit:cover 不再额外裁切，完整显示地图主体（栋生 2026-09-11） */
.kz-overseas::before { content: ""; display: block; padding-bottom: 51.56%; }
.kz-overseas .ov-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* 手机端专用地图（分类「缩略图」）：PC 一律隐藏，≤900 断点内反向切换（见文件末尾移动端区块） */
.kz-overseas .ov-bg--m { display: none; }
.kz-overseas .ov-inner { position: absolute; inset: 0; display: flex; align-items: flex-start; }
.kz-overseas .ov-text { width: 100%; max-width: var(--wrap-max); margin: 0 auto; padding: 30px 24px 0; }
.kz-overseas .sec-head { color: var(--ink); }
.kz-overseas .sec-head h2 { color: var(--blue); }
/* 海外市场标题区节奏对齐「综合实力」（2026-09-10 栋生要求）：
   目标与 .kz-strength 完全一致 —— 主标→分层线 32px、分层线→二级标题 14px、主标→二级标题 49px。
   两个板块的 .sec-head 行盒上下文不同（本板块隐式留白少 7px），故分层线上边距补 25.4px（通用 18px）。 */
.kz-overseas .sec-head__line { margin-top: 25.4px; }
.kz-overseas .ov-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 60px; margin-top: -20.6px; }
.kz-overseas .ov-row .sec-sub { margin: 0; }
/* 2026-09-10 栋生要求：这段描述文字「单独」上移 40px（二级标题不动）。
   用相对定位而非 margin —— 该行是 flex + align-items:flex-end，给该项加 margin 会反过来把二级标题顶下去。 */
.kz-overseas .ov-row .ov-desc { margin: 0; font-size: 16px; color: #444; line-height: 2; max-width: 780px; position: relative; top: -40px; }

/* ==========================================================================
   首页 - 7 国内市场（左文案 + Cooperation 水印 + 右 6 油田卡）
   ========================================================================== */
.kz-domestic { padding: 40px 0 30px; background: #fff; position: relative; overflow: hidden; }
.kz-domestic .domestic-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 40px; align-items: stretch; }
.kz-domestic .domestic-text { position: relative; padding: 20px 0 20px; overflow: hidden; }
.kz-domestic .domestic-text .sec-sub { margin-top: 18px; }
.kz-domestic .domestic-text .sec-desc { margin-top: 70px; }
.kz-domestic .domestic-text .coop { font-size: 92px; font-weight: 700; color: #f2f2f2; line-height: 1; margin-top: 30px; letter-spacing: 2px; white-space: nowrap; }
.kz-domestic .domestic-right { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 44px; }
.kz-domestic .domestic-right::before { content: ""; position: absolute; top: -65px; bottom: -75px; left: 0; width: calc(100% + 24px); background: var(--blue); z-index: 0; }
@media (min-width: 1450px) {
    .kz-domestic .domestic-right::before { width: calc(100% + 24px + (100vw - 1400px) / 2); }
}
.kz-domestic .domestic-right .oil-grid { position: relative; z-index: 1; }
.kz-domestic .oil-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 18px; }
.kz-domestic .oil-card { text-align: center; }
.kz-domestic .oil-card .oil-thumb { height: 108px; background-size: cover; background-position: center; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .18); box-shadow: 0 6px 18px rgba(0, 0, 0, .18); transition: transform .35s ease, box-shadow .35s ease; }
.kz-domestic .oil-card:hover .oil-thumb { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(0, 0, 0, .3); }
.kz-domestic .oil-card .oil-name { margin-top: 12px; color: #fff; font-size: 17px; font-weight: 700; letter-spacing: 2px; line-height: 1.4; display: flex; align-items: center; justify-content: center; gap: 10px; }
.kz-domestic .oil-card .oil-name::before { content: ""; width: 22px; height: 3px; background: var(--red); flex: 0 0 22px; }

/* ==========================================================================
   首页 - 8 新闻资讯（4 卡）
   ========================================================================== */
.kz-news { background: var(--bgf); padding: 80px 0 90px; }
.kz-news .news-row-top { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 40px; gap: 30px; }
.kz-news .news-row-top .left-side .sec-head { display: inline-flex; }
.kz-news .news-row-top .left-side .sec-sub { margin-top: 14px; }
.kz-news .news-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.kz-news .news-card { background: #fff; border-radius: 8px; overflow: hidden; transition: transform .3s, box-shadow .3s; display: flex; flex-direction: column; }
.kz-news .news-card:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(1,70,129,.12); }
.kz-news .news-card .pic { width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #eaeef3; }
.kz-news .news-card .pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.kz-news .news-card:hover .pic img { transform: scale(1.05); }
.kz-news .news-card .body { padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.kz-news .news-card h3 { font-size: 17px; font-weight: 600; color: var(--ink); line-height: 1.5; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 51px; }
.kz-news .news-card .excerpt { font-size: 14px; color: #777; line-height: 1.7; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kz-news .news-card .date { font-size: 14px; color: #888; display: flex; align-items: center; gap: 6px; margin-top: auto; }
.kz-news .news-card .date::before { content: ""; width: 14px; height: 14px; background: url('/resources/themes/nlqst/public/images/index_lanhu/5ac6653ae7212406953bed00714471fa.png') center/contain no-repeat; opacity: .65; }

/* ==========================================================================
   响应式
   ========================================================================== */
/* 首页「集团介绍」窄屏兜底（≤1300px）
   原实现区块高度固定 52.08vw，窄屏下（文字列收窄 → 描述 6 行 + 副标语折行）
   内容会超出高度、把「了解更多」按钮裁掉。这里改为「高度按内容自适应 + 保底 52.08vw」，
   右侧大厦图仍按原设计高度贴顶，不改动 ≥1400px 的视觉。 */
@media (max-width: 1300px) {
    .kz-intro { height: auto; min-height: clamp(380px, 52.08vw, 1000px); padding-bottom: 36px; }
    .kz-intro .intro-photo { bottom: auto; height: clamp(380px, 52.08vw, 1000px); }
    /* 窄屏 9.9% 本身已很小，减 50px 会贴顶 → 保底 46px */
    .kz-intro .intro-text { padding-top: max(46px, calc(9.9% - 50px)); }
}
@media (max-width: 1200px) {
    .kz-stats .stats-row { grid-template-columns: repeat(3, 1fr); row-gap: 28px; }
    .kz-stats .stat:nth-child(4)::before { display: block; }
    .kz-stats .stat:nth-child(3)::before, .kz-stats .stat:nth-child(6)::before { display: none; }
    .kz-biz .biz-row { padding: 0 16px; }
    .kz-strength .strength-row { grid-template-columns: 1fr 1fr; }
    .kz-strength .strength-row .s-card:last-child { grid-column: 1 / -1; height: 480px; }
    .kz-news .news-row { grid-template-columns: repeat(2, 1fr); }
    .kz-domestic .domestic-text .coop { font-size: 80px; }
    /* footer：窄屏竖线隐藏，导航换行到 brand 下方 */
    .foot-main { flex-wrap: wrap; gap: 32px; }
    .foot-divider { display: none; }
    .foot-brand { flex-basis: 100%; width: 100%; }
    .foot-nav { flex-basis: 100%; width: 100%; }
}
@media (max-width: 900px) {
    /* 三列：logo | 语言切换（占满中间、居中）| 汉堡靠右。
       2026-09-16 二次调整：语言切换改为「logo 与汉堡按钮的正中间」，中间列吃掉全部剩余空间 */
    .hd-inner { grid-template-columns: auto 1fr auto; column-gap: 18px; height: 72px; }
    .site-header .logo img { height: 44px; }   /* 收一点 logo，给语言切换留出呼吸位 */
    .hd-toggle { display: block; order: 3; justify-self: end; }
    .hd-right { position: absolute; top: 72px; left: 0; right: 0; background: #fff; padding: 18px 24px; box-shadow: 0 8px 16px rgba(0,0,0,.08); display: none; }
    .hd-right.open { display: block; }
    .hd-lang { display: inline-flex; order: 2; align-items: center; justify-self: center; min-width: 0; }
    .hd-top .lang-dd { display: none; }   /* 已提到页头，抽屉内不再重复 */

    /* 移动端语言按钮：与桌面同款视觉，整体收小一号，避免与 logo / 汉堡抢位 */
    .hd-lang .lang-dd { position: relative; }
    .hd-lang .lang-dd__btn {
        position: relative; display: inline-flex; align-items: center; gap: 5px;
        padding: 6px 0; margin: 0; border: 0; background: none; cursor: pointer;
        font-family: inherit; font-size: 13px; color: #0f0f0f; line-height: 1;
    }
    .hd-lang .lang-dd__ico {
        position: relative; z-index: 1;
        display: block; width: 16px; height: 16px; flex: 0 0 16px;
        background-color: var(--red);
        -webkit-mask: url('/resources/themes/nlqst/public/images/langerage@2x.png') center / contain no-repeat;
                mask: url('/resources/themes/nlqst/public/images/langerage@2x.png') center / contain no-repeat;
        animation: langIcoSpin 3.6s cubic-bezier(.32, .72, .30, 1) infinite;
        will-change: transform;
    }
    .hd-lang .lang-dd__btn:hover .lang-dd__ico,
    .hd-lang .lang-dd.is-open .lang-dd__ico { animation: langIcoSpinFlat 3.6s linear infinite; }
    .hd-lang .lang-dd__cur { transition: color .2s; white-space: nowrap; }
    .hd-lang .lang-dd__btn:hover .lang-dd__cur { color: var(--blue); }
    .hd-lang .lang-dd__caret {
        width: 9px; height: 6px; flex: 0 0 9px; color: #0f0f0f;
        transition: transform .25s ease, color .2s;
    }
    .hd-lang .lang-dd__btn:hover .lang-dd__caret { color: var(--blue); }
    .hd-lang .lang-dd.is-open .lang-dd__caret { transform: rotate(180deg); }
    .hd-lang .lang-dd__menu {
        position: absolute; left: 0; right: auto; top: calc(100% + 6px); z-index: 60;
        min-width: 100%; padding: 6px;
        background: #fff; border: 1px solid #edf1f5; border-radius: 10px;
        box-shadow: 0 12px 28px rgba(1,70,129,.16);
        opacity: 0; visibility: hidden; pointer-events: none;
        transform: translateY(-4px);
        transition: opacity .2s ease, transform .2s ease;
    }
    .hd-lang .lang-dd.is-open .lang-dd__menu {
        opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
    }
    .hd-lang .lang-dd__item {
        display: block; padding: 9px 16px; border-radius: 6px;
        font-size: 14px; color: #0f0f0f; white-space: nowrap;
        transition: background .2s, color .2s;
    }
    .hd-lang .lang-dd__item:hover { background: #eef3f9; color: var(--blue); }

    .hd-top { justify-content: flex-start; flex-wrap: wrap; }
    .nav-menu { flex-direction: column; gap: 4px; align-items: stretch; }
    .nav-menu > .nav-item > a { padding: 12px 0; }
    .sub-menu { position: static; transform: none; box-shadow: none; }
    .nav-item.has-sub:hover > .sub-menu { display: none; }
    .kz-intro { height: auto; min-height: 0; margin-top: 0; padding: 0 0 40px; }
    .kz-intro .wrap { height: auto; }
    .kz-intro .intro-photo { position: relative; width: 100%; height: 260px; opacity: .25; margin-top: 20px; }
    .kz-intro .intro-photo img { position: relative; right: auto; top: auto; width: 100%; height: 100%; object-fit: cover; }
    .kz-intro .intro-text { width: 100%; max-width: none; padding-top: 6%; }
    /* 集团介绍标题字号已与其它板块统一，窄屏无需单独降级 */
    .kz-intro .intro-text .sec-desc { font-size: 15px; line-height: 1.9; }
    .kz-domestic .domestic-grid { grid-template-columns: 1fr; }
    .kz-domestic .domestic-text .coop { font-size: 60px; }
    .kz-domestic .domestic-right { padding: 0; justify-content: flex-start; }
    .kz-domestic .domestic-right::before { top: 0; bottom: 0; width: 100%; }
    /* 手风琴移动端：三卡纵向堆叠，初始第一张 is-open（无宽度动画，高度过渡同样走双态层错峰淡变） */
    .kz-biz .biz-row { flex-direction: column; gap: 14px; padding: 0 16px; }
    .kz-biz .biz-card { height: 360px; flex-grow: 1; flex-basis: auto; cursor: pointer; }
    .kz-biz .biz-card.is-open { height: 470px; cursor: default; }
    .kz-biz .biz-copy--min { left: 24px; right: 20px; top: auto; bottom: 20px; }
    .kz-biz .biz-card.is-open .biz-copy--min { left: 24px; right: 20px; top: auto; bottom: 20px; }
    .kz-biz .biz-copy--max { left: 24px; right: 20px; top: 90px; bottom: auto; }
    .kz-biz .biz-card.is-open .biz-copy--max { left: 24px; right: 20px; top: 90px; bottom: auto; }
    .kz-biz .biz-card .biz-title { font-size: 26px; padding-left: 18px; }
    .kz-biz .biz-card .biz-title::before { height: 20px; }
    .kz-biz .biz-card .biz-desc { font-size: 15px; line-height: 26px; }
    .kz-biz .biz-card.is-open .biz-desc { -webkit-line-clamp: 3; line-clamp: 3; }
    .kz-biz .biz-card.is-open .biz-tabs { gap: 10px 10px; max-width: 100%; }
    .kz-biz .biz-card.is-open .biz-tabs a,
    .kz-biz .biz-card.is-open .biz-tabs .biz-tab-disabled { min-width: 0; flex: 0 0 calc(33.333% - 10px); font-size: 14px; padding: 0 8px; }
    .kz-news .biz-row { grid-template-columns: 1fr; }
    .kz-stats .stats-row { grid-template-columns: 1fr 1fr; }
    .kz-stats .stat::before { display: none !important; }
    .kz-strength .strength-row { grid-template-columns: 1fr; }
    .kz-strength .strength-row .s-card:last-child { height: 360px; }
    .kz-overseas .ov-row { flex-direction: column; gap: 18px; margin-top: 16px; }
    /* 窄屏描述与二级标题已是纵向堆叠，上移 40px 会重叠 → 取消桌面端的单独上移 */
    .kz-overseas .ov-row .ov-desc { top: 0; }
    .kz-overseas .sec-head__line { margin-top: 14px; }   /* 窄屏恢复通用值（桌面端的对齐补偿不适用） */
    .kz-overseas .ov-text { padding-top: 40px; }
    .foot-main { gap: 28px; }
    .foot-nav { flex-wrap: wrap; gap: 26px; }
    .foot-col { flex: 1 1 40%; }
    .foot-col--wide { flex: 1 1 100%; }
    .foot-col:last-child { flex: 1 1 40%; }
    .foot-col:last-child h4 { white-space: normal; }
    /* 2026-09-16：二维码 + 扫码关注 整块左右居中（.qr 是定宽块，光靠 text-align 居中不了，要配 margin:auto） */
    .foot-qr { flex: 1 1 100%; text-align: center; }
    .foot-qr .qr { margin-inline: auto; }
    .sec-head h2 { font-size: 32px; }
    .sec-sub { font-size: 22px; }
    /* 首页板块标题体系窄屏降级：眉标隐藏、短线缩短、红竖条缩小 */
    .sec-head__eyebrow { display: none; }
    .sec-head__line { width: 176px; margin-top: 14px; }
    .kz-intro .intro-text .sec-sub,
    .kz-biz .sec-sub,
    .kz-strength .strength-top .sec-sub,
    .kz-overseas .ov-row .sec-sub,
    .kz-domestic .sec-sub,
    .kz-news .sec-sub { padding-left: 13px; }
    .kz-intro .intro-text .sec-sub::before,
    .kz-biz .sec-sub::before,
    .kz-strength .strength-top .sec-sub::before,
    .kz-overseas .ov-row .sec-sub::before,
    .kz-domestic .sec-sub::before,
    .kz-news .sec-sub::before { width: 3px; height: 18px; }
}

/* ==========================================================================
   集团简介页（/about）· 参照蓝湖 E:\客户资料\昆仑石油\Material\about 还原
   --------------------------------------------------------------------------
   设计基准 1920px / 内容区 1400px 居中（沿用 .wrap）；主色 #e50014 红 + #014681 蓝
   ========================================================================== */

/* 共用板块头：红主 + 蓝子，2 段同行 36px 加粗 */
.ab-h { margin: 0; font-size: 36px; font-weight: 700; line-height: 1.22; letter-spacing: 0; }
.ab-h__red  { color: var(--red); }
.ab-h__blue { color: var(--blue); }
.ab-h__white { color: #fff; }
.ab-h--light .ab-h__red { color: var(--red); }  /* 深色 band 上仍保留红/白对比 */

/* 板块小标题下方 18px 加粗 #333 单行 lead 导语 */
.ab-lead {
    position: relative;
    font-size: 18px; color: #333; font-weight: 700; line-height: 44px;
    margin: 14px 0 0;
    padding-left: 16px;   /* 2026-09-10：二级标题红竖条让位（与首页 .sec-sub 同款，不产生额外缩进错位） */
}
.ab-lead--full { max-width: 760px; }
/* 二级标题红竖条：与首页 .sec-sub::before 完全同规格（4×22px 圆角红条，落在左基准线上） */
.ab-lead::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 22px; border-radius: 2px; background: var(--red);
}
/* 集团文化（深色 band）上眉标与分层线换浅色，保证深底可读 */
.ab-cult .sec-head__eyebrow { color: rgba(255, 255, 255, .62); }
.ab-cult .sec-head__line {
    background: linear-gradient(90deg,
        #e50014 0%, #ffffff 32%,
        rgba(255, 255, 255, .34) 63%, rgba(255, 255, 255, 0) 100%);
}

/* 大段正文（编辑器 HTML） */
.ab-body p { margin: 0; color: #333; font-size: 18px; line-height: 51px; letter-spacing: 0.2px; }   /* 段间距=行间距 51px（蓝湖 paragraph_1 两段间仅一个 <br/> · 栋生 2026-09-10） */

/* ---- 1. Hero banner（广告位 集团简介banner） ---- */
.ab-hero {
    position: relative;
    height: clamp(420px, 51.56vw, 990px);
    background: #01274a;
    overflow: hidden;
}
.ab-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab-hero__shade {
    position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 45%, rgba(0,0,0,0) 75%);
}
.ab-hero__inner {
    position: relative; height: 100%;
    display: flex; align-items: flex-start;
    padding-top: clamp(60px, 16vw, 280px);
}
.ab-hero__text { max-width: 540px; color: #fff; }
.ab-hero__t1 { font-size: clamp(28px, 3.4vw, 40px); font-weight: 700; line-height: 1.25; margin: 0; text-shadow: 0 2px 16px rgba(0,0,0,.45); }
.ab-hero__t2 { font-size: 18px; font-weight: 700; margin: 18px 0 0; letter-spacing: 2px; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
.ab-hero__t3 { font-size: 18px; line-height: 2; margin: 36px 0 0; max-width: 520px; text-shadow: 0 2px 10px rgba(0,0,0,.35); }

/* ---- 2. 集团底蕴（左文 + 右图：底层宣传图按原尺寸 366×540 + 上层缩略图左下移 50px，整体贴右对齐） ---- */
.ab-bs { background: #fff; padding: 80px 0 60px; }
.ab-bs__row { display: grid; grid-template-columns: minmax(0, 1fr) 366px; gap: clamp(30px, 4vw, 60px); align-items: start; }
.ab-bs__l { min-width: 0; max-width: 850px; }   /* 文案列限宽，右缘留出净空，供上层大厦图左下探出（不遮文字） */
.ab-bs__r {
    position: relative;
    width: 366px;                 /* 宣传图原始宽度 */
    height: 540px;                /* 宣传图原始高度 */
    justify-self: end;            /* 右列整体贴 .wrap 右缘（同下方 .ab-hard 卡片右缘对齐） */
}
.ab-bs__promo {                   /* 蓝底 logo 宣传图 —— 底层，按原尺寸 366×540 显示（不放大） */
    position: absolute; left: 0; top: 0;
    width: 100%; height: 100%;
    display: block; z-index: 1;
}
.ab-bs__photo {                   /* 石油大厦主图（缩略图）—— 宣传图上层，相对宣传图向左下移动 */
    position: absolute; left: 0; top: 0;
    width: 100%; height: 100%;
    z-index: 3;
    transform: translate(-100px, 70px);   /* 向左 100px、向下 60px：保留向左下探出效果，同时底部不超出 ab-bs 板块 */
    box-shadow: 0 18px 40px rgba(1,70,129,.16);
}

/* ---- 3. 企业硬实力（板块头 + 4 卡） ---- */
.ab-hard { background: #fff; padding: 40px 0 90px; }
.ab-hard__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 27px;
    margin-top: 36px;
}
.ab-hard__card {
    position: relative;
    background: #f2f2f2;
    border-radius: 20px;
    padding: 26px 25px 0;
    display: flex; flex-direction: column;
    min-height: 480px;
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease;
}
.ab-hard__card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(1,70,129,.18); }
.ab-hard__head { display: flex; align-items: center; gap: 8px; }
.ab-hard__icon { width: 28px; height: 22px; object-fit: contain; flex: 0 0 28px; }
.ab-hard__title { font-size: 24px; font-weight: 700; color: #333; line-height: 1.1; margin: 0; }
.ab-hard__desc {
    font-size: 16px; color: #333; line-height: 1.9; margin: 18px 0 0;
    flex: 1 1 auto;
}
.ab-hard__photo { margin: 22px -25px 0; }
.ab-hard__photo img { width: 100%; height: 240px; object-fit: cover; display: block; }

/* ---- 4. 四大核心战略（深蓝 band + 4 tab：标题距顶 10px、title 下方白线、宣传图探出对齐副标题、tab 白线串联、hover 切换） ---- */
.ab-strat { background: #fff; }
.ab-strat__head { padding: 60px 24px 40px; }   /* 原来水平 padding 被覆盖为 0，导致本板块标题比其他板块左移 24px（2026-09-10 修正，全部对齐 .wrap 内容左缘） */
.ab-strat__band {
    position: relative;
    min-height: clamp(440px, 36vw, 600px);
    background-color: #01274a;
}
.ab-strat__band::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: url('/resources/themes/nlqst/public/images/about/ab_strategy_bg.png') center/cover no-repeat;
    opacity: .95;
}
.ab-strat__inner {
    position: relative; z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(480px, 730px);
    grid-template-rows: 1fr auto;
    column-gap: 40px; row-gap: 20px;
    padding: 10px 0 70px;         /* 顶部 10px：tab 内容标题固定在离板块顶 10px */
    align-items: start;           /* 内容顶部对齐，标题不随内容高度浮动 */
    min-height: inherit;
}
.ab-strat__spot {
    position: relative;
    min-height: 240px;
    grid-column: 1; grid-row: 1;
}
.ab-strat__panel {
    position: absolute; inset: 0;
    color: #fff; opacity: 0; pointer-events: none;
    transition: opacity .45s ease;
}
.ab-strat__panel.is-active { position: relative; opacity: 1; pointer-events: auto; }
.ab-strat__title { display: flex; align-items: center; gap: 14px; margin-top: 50px; }  /* 栋生 2026-09-09：标题相对板块顶部再下移 50px */
.ab-strat__t1 { font-size: 26px; font-weight: 700; line-height: 1.3; }
.ab-strat__bar { display: inline-block; width: 2px; height: 22px; background: rgba(255,255,255,.9); }  /* 竖杠分隔 */
.ab-strat__t2 { font-size: 18px; font-weight: 700; line-height: 1.3; }
.ab-strat__rule { display: block; width: 540px; max-width: 100%; height: 1px; background: rgba(255,255,255,.8); margin-top: 22px; }  /* 标题+关键词下方白色横线 */
.ab-strat__desc { margin: 20px 0 0; max-width: 540px; font-size: 16px; line-height: 2.4; color: rgba(255,255,255,.92); }  /* 栋生 2026-09-09：行间距调大约 0.5 倍（1.95→2.4） */
/* 2026-09-16 内容改接「单页正文」（富文本）后的排版归一：段间距按设计节奏走，图片/列表不撑破 540px 栏 */
.ab-strat__desc p { margin: 0; }
.ab-strat__desc p + p { margin-top: 10px; }
.ab-strat__desc p:empty { display: none; }
.ab-strat__desc img { max-width: 100%; height: auto; border-radius: 8px; }
.ab-strat__desc a { color: #fff; text-decoration: underline; }
.ab-strat__desc ul, .ab-strat__desc ol { margin: 0; padding-left: 22px; }
.ab-strat__desc li + li { margin-top: 6px; }
.ab-strat__desc strong, .ab-strat__desc b { font-weight: 700; }
.ab-strat__photo {
    position: relative;
    grid-column: 2; grid-row: 1;
    aspect-ratio: 730 / 490;
    width: 100%; max-width: 730px;
    justify-self: end; align-self: start;
    margin-top: -50px;            /* 2026-09-10 栋生要求：宣传图下移，使图顶与上方导语（以人才、资本…）底线对齐；原为 -140px */
}
.ab-strat__photo img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0; transition: opacity .55s ease;
    border-radius: 12px;          /* 图片圆角（栋生 2026-09-09） */
    box-shadow: 0 18px 40px rgba(0,0,0,.32);
}
.ab-strat__photo img.is-active { opacity: 1; }
.ab-strat__chips {
    grid-column: 1 / -1; grid-row: 2;
    position: relative;
    display: flex; justify-content: center; align-items: center; gap: 0;
    margin-top: 18px;
}
.ab-strat__tail { flex: 1 1 0; height: 1px; background: rgba(255,255,255,.55); align-self: center; }   /* 两端线：左起标题左边、右止宣传图右边 */
.ab-strat__link { flex: 0 0 150px; height: 1px; background: rgba(255,255,255,.55); align-self: center; }  /* tab 间线段=间距 150px；线不进入透明按钮框内（栋生 2026-09-09） */
.ab-strat__chip {
    width: 142px; height: 46px;
    position: relative; z-index: 1;            /* 按钮在白线上层 */
    display: inline-flex; align-items: center; justify-content: center;
    border: 2px solid #fff; border-radius: 24px;
    background: transparent; color: #fff;      /* 鼠标不经过时透明（栋生 2026-09-09） */
    font-size: 18px; font-weight: 700; letter-spacing: 1px;
    cursor: pointer; transition: background .25s ease, color .25s ease;
}
.ab-strat__chip:hover { background: rgba(255,255,255,.12); }
.ab-strat__chip.is-active { background: var(--red); border-color: var(--red); }

/* ---- 5. 科创体系（4 图 row） ---- */
.ab-tech { background: #fff; padding: 60px 0 100px; }
.ab-tech__body { margin: 24px 0 0; }
.ab-tech__body p { margin: 0; font-size: 18px; line-height: 41px; color: #333; }   /* 段间距=行间距 41px（蓝湖稿两段间仅一个 <br/>，行/段节奏一致 · 栋生 2026-09-10） */
.ab-tech__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 50px; }
.ab-tech__cell { overflow: hidden; border-radius: 4px; }
.ab-tech__cell img { width: 100%; height: 190px; object-fit: cover; display: block; transition: transform .5s ease; }
.ab-tech__cell:hover img { transform: scale(1.04); }

/* ---- 6. 集团文化（深色 band，左文 + 右大图） ---- */
.ab-cult {
    position: relative;
    background:
        linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 50%, rgba(0,0,0,0) 75%),
        url('/resources/themes/nlqst/public/images/about/ab_culture_bg.png') center/cover no-repeat;
    padding: 30px 0 130px;   /* 标题距板块顶部 30px（栋生 2026-09-09，原 110px） */
}
.ab-cult__inner { display: block; }   /* 右大图已取消（栋生 2026-09-09），左文单列 */
.ab-cult__l { max-width: 100%; color: #fff; }
.ab-cult__l .ab-h { max-width: 720px; }
.ab-cult__rows { margin-top: 60px; }
.ab-cult__row + .ab-cult__row { margin-top: 36px; }
.ab-cult__head { display: flex; align-items: center; gap: 12px; }
.ab-cult__icon { width: 31px; height: 40px; object-fit: contain; flex: 0 0 31px; }
.ab-cult__label { font-size: 24px; font-weight: 700; color: #fff; line-height: 1.2; }
.ab-cult__body { margin: 14px 0 0 50px; font-size: 18px; line-height: 2; color: #fff; max-width: 19em; }  /* 每行约 19 字换行（2026-09-10 栋生要求再减 1 字，20→19） */
.ab-cult__body p { margin: 0; }

/* ---- 7. 市场布局（浅蓝点状地图 bg，左文+大图 / 右 4 张） ---- */
.ab-lay {
    position: relative;
    background: #fff url('/resources/themes/nlqst/public/images/about/ab_layout_bg.png') center/cover no-repeat;  /* 复原（栋生 2026-09-09） */
    padding: 80px 0 110px;
}
.ab-lay__head { margin-bottom: 36px; }
.ab-lay__row { display: flex; gap: clamp(30px, 4vw, 60px); align-items: flex-start; }
.ab-lay__l { flex: 1 1 auto; max-width: 1060px; }
.ab-lay__r { flex: 0 0 auto; width: 290px; display: grid; grid-template-columns: 1fr; gap: 24px; }
/* 行高 41px + 与副标题间距 24px —— 全部对齐科创体系（.ab-tech__body）。
   间距算式：.ab-lay__head 的 36px 外边距 + 本行 -12px = 净 24px；
   底部 -2px 用于抵消正文下移 38px（原 -50px 上移值失效于 41px 行高），保证下方地图位置不动。 */
.ab-lay__text { font-size: 18px; line-height: 41px; color: #333; margin: -12px 0 -2px; }
.ab-lay__text p { margin: 0; }
.ab-lay__map img { width: 100%; height: auto; display: block; border-radius: 4px; }
.ab-lay__cell { overflow: hidden; border-radius: 4px; }
.ab-lay__cell img { width: 100%; height: 160px; object-fit: cover; display: block; transition: transform .4s ease; }
.ab-lay__cell:hover img { transform: scale(1.04); }

/* ==========================================================================
   集团简介页 · 响应式
   ========================================================================== */
@media (max-width: 1200px) {
    .ab-hard__grid { grid-template-columns: repeat(2, 1fr); }
    .ab-tech__row { grid-template-columns: repeat(2, 1fr); }
    .ab-strat__inner { grid-template-columns: 1fr; padding: 10px 0 50px; }
    .ab-strat__photo { grid-column: 1; grid-row: 2; max-width: 100%; margin-top: 0; justify-self: center; }
    /* 栋生 2026-09-16：单列堆叠时宣传图与 4 个战略胶囊原本同处第 2 行 → 胶囊叠在图上。
       胶囊下移到第 3 行，落到配图下方；PC 双列布局（>1200）不受影响。 */
    .ab-strat__chips { grid-row: 3; flex-wrap: wrap; row-gap: 12px; }
    .ab-strat__tail, .ab-strat__link { display: none; }
    .ab-lay__row { flex-direction: column; }
    .ab-lay__r { width: 100%; grid-template-columns: repeat(2, 1fr); }
    .ab-bs__row { grid-template-columns: 1fr; }
    .ab-bs__r { width: 100%; max-width: 480px; height: 540px; justify-self: center; margin-top: 16px; }
    .ab-bs__promo { left: -40px; bottom: -30px; width: 200px; height: 280px; }
}
@media (max-width: 900px) {
    .ab-hero { height: clamp(360px, 86vw, 640px); }
    .ab-hero__inner { padding-top: 40px; }
    .ab-hero__t1 { font-size: 26px; }
    .ab-hero__t3 { font-size: 15px; line-height: 1.9; }
    .ab-bs, .ab-hard, .ab-tech, .ab-cult, .ab-lay { padding: 50px 0 60px; }
    .ab-h { font-size: 26px; }
    .ab-lead { font-size: 15px; line-height: 1.9; padding-left: 13px; }
    .ab-lead::before { width: 3px; height: 18px; }
    .ab-body p { font-size: 15px; line-height: 2; }
    .ab-hard__grid { grid-template-columns: 1fr; gap: 18px; }
    .ab-hard__card { min-height: 0; padding-bottom: 24px; }
    .ab-hard__photo img { height: 200px; }
    .ab-tech__row { grid-template-columns: 1fr 1fr; gap: 14px; }
    .ab-strat__band { min-height: 0; }
    .ab-strat__inner { padding: 40px 0 60px; gap: 24px; }
    .ab-strat__title { flex-wrap: wrap; gap: 8px; }
    .ab-strat__t1 { font-size: 22px; }
    .ab-strat__t2 { font-size: 15px; }
    .ab-strat__chips { flex-wrap: wrap; gap: 10px; }
    .ab-strat__tail, .ab-strat__link { display: none; }
    .ab-strat__chip { width: 132px; height: 42px; font-size: 15px; }
    .ab-cult__rows { margin-top: 36px; }
    .ab-cult__label { font-size: 20px; }
    .ab-cult__body { margin-left: 0; font-size: 15px; }
    .ab-lay__r { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .ab-tech__row { grid-template-columns: 1fr; }
    .ab-lay__r { grid-template-columns: 1fr; }
    .ab-hard__photo img { height: 180px; }
    .foot-main { padding: 44px 20px 26px; }
    .foot-col { flex: 1 1 100%; }
    .foot-col h4 { font-size: 16px; margin-bottom: 12px; }
    .foot-col ul li a { font-size: 13px; }
    .foot-brand .brand-logo { height: 48px; }
    .foot-brand .ftel-num { font-size: 22px; }
    .foot-qr .qr { width: 110px; height: 110px; }
}

/* ==========================================================================
   石油工程技术服务页（/services） —— 蓝湖 1920 稿还原
   板块 5：banner / 业务总述 / 细分业务 / 核心实力 / 历年业绩
   ========================================================================== */

/* 板块通用标题（蓝湖稿：36px PingFang-SC-Bold #383838） */
.sv-h {
    font-size: 36px; font-weight: 700; color: #383838;
    line-height: 44px; margin-top: 0px; letter-spacing: 0;
}

/* 板块标题统一形态（栋生 2026-09-10 设计）：红竖条 + 中文主标 + 英文栏目词 + 底部渐变细线
   设计语言对齐站内既有元素：红竖条同 footer 四栏标题（.foot-col h4::before），
   渐隐线同 footer 分隔线（.foot-copy 上边框）与 .svd-main__rule。 */
.sv-head { display: flex; align-items: flex-end; gap: 18px; }
.sv-head__bar {
    flex: 0 0 4px; width: 4px; height: 34px; margin-bottom: 5px;
    background: var(--red); border-radius: 2px;
}
.sv-head__title { font-size: 36px; font-weight: 700; color: #383838; line-height: 44px; margin: 0; letter-spacing: 0; }
.sv-head__en {
    font-size: 13px; font-weight: 700; letter-spacing: 2.6px; text-transform: uppercase;
    color: rgba(1, 70, 129, .45); line-height: 1; padding-bottom: 9px;
}
.sv-head__line {
    display: block; width: 100%; height: 1px; margin-top: 18px;
    background: linear-gradient(90deg, rgba(1,70,129,.30) 0, rgba(1,70,129,.10) 62%, rgba(1,70,129,0) 100%);
}

/* --- 1. Hero banner（蓝湖稿：1920×520，左对齐 title + 副标，背景图满屏） --- */
.sv-hero {
    position: relative; width: 100%; height: 520px;
    overflow: hidden; background: #1a1a1a;
}
.sv-hero__bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: center;
}
.sv-hero__shade {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.15) 45%, transparent 75%);
}
.sv-hero__inner {
    position: relative; height: 100%;
    display: flex; flex-direction: column; justify-content: center;
    padding-top: 0; padding-bottom: 0;
}
.sv-hero__t1 {
    font-size: 36px; font-weight: 700; color: #fff;
    line-height: 44px; margin: 0; letter-spacing: 0;
}
.sv-hero__t2 {
    font-size: 18px; font-weight: 700; color: #fff;
    line-height: 30px; margin: 24px 0 0 0;
}

/* ==========================================================================
   内页大图（banner）文字进入效果（栋生 2026-09-10）
   覆盖：集团简介 /about（.ab-hero__t1~t3）、石油工程技术服务 /services、
         油田化工服务 /oil-chemical、石油勘探开发投资及服务 /oil-exploration、
         新闻资讯 /articles/list（后四者共用 .sv-hero__t1/t2）
   做法：复用首页 banner 的 kzCapIn（下→上淡入 28px），按层级错峰 120/280/440ms；
         animation-fill-mode: both 保证动画开始前就处于不可见态，无需 JS 门控；
         reduced-motion 下整体关闭（见文件下方 prefers-reduced-motion 段）。
   ========================================================================== */
.sv-hero__t1,
.ab-hero__t1 { animation: kzCapIn .8s cubic-bezier(.22,.61,.36,1) both; animation-delay: .12s; }
.sv-hero__t2,
.ab-hero__t2 { animation: kzCapIn .8s cubic-bezier(.22,.61,.36,1) both; animation-delay: .28s; }
.ab-hero__t3 { animation: kzCapIn .8s cubic-bezier(.22,.61,.36,1) both; animation-delay: .44s; }

/* --- 2. 业务总述（标题 + 左文 + 右图 650×390） --- */
.sv-over { background: #fff; }
.sv-over .sv-head { margin-top: 79px; }
.sv-over__row {
    display: flex; justify-content: space-between; align-items: flex-start;
    margin: 26px 0 81px; gap: 110px;
}
.sv-over__l { flex: 0 0 638px; max-width: 638px; min-width: 0; }
.sv-over__text {
    font-size: 18px; line-height: 56px; color: #383838;
    margin: 10px 0 0 0;
}
.sv-over__r {
    flex: 0 0 650px; width: 650px; height: 390px; margin-top: 5px;
    overflow: hidden;
}
.sv-over__r img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* --- 3. 细分业务（1920 宽灰底 #f9f9f9，标题 + 3×3 = 9 卡，每卡 440×380） --- */
.sv-biz { background: #f9f9f9; padding: 30px 0 80px; }
.sv-biz .sv-head { margin: 0; }
.sv-biz__row {
    display: flex; justify-content: space-between; gap: 40px;
    margin-top: 46px;
}
.sv-biz__row--last { margin-top: 40px; }
.sv-biz__card {
    flex: 0 0 440px; width: 440px; height: 380px;
    background: transparent; display: flex; flex-direction: column; justify-content: space-between;
}
.sv-biz__photo {
    display: block; width: 440px; height: 330px; overflow: hidden; background: #eaeaea;
}
.sv-biz__photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.sv-biz__photo:hover img { transform: scale(1.04); }
.sv-biz__photo--empty { background: #ddd; }
.sv-biz__foot {
    display: flex; align-items: center; justify-content: space-between;
    width: 440px; height: 40px; margin-top: 10px;
}
.sv-biz__rule {
    display: inline-block; width: 5px; height: 40px;
    background: #014681; flex: 0 0 5px;
    transition: background .2s;
}
/* 竖杠 / 查看详情按钮：鼠标不经过一律蓝色；鼠标经过卡片时变红（9 卡统一） */
.sv-biz__card:hover .sv-biz__rule { background: #e50014; }
.sv-biz__name {
    flex: 1; font-size: 20px; font-weight: 700; color: #383838;
    line-height: 40px; padding-left: 9px;
}
.sv-biz__btn {
    display: inline-flex; align-items: center; justify-content: space-between;
    width: 133px; height: 40px; padding: 0 20px;
    border: 1px solid #014681; border-radius: 20px;
    font-size: 14px; font-weight: 700; color: #383838;
    transition: background .2s, color .2s, border-color .2s;
    box-sizing: border-box;
}
.sv-biz__card:hover .sv-biz__btn {
    border-color: #e50014; color: #e50014; background: #fff;
}
.sv-biz__btn-txt { line-height: 1; }
.sv-biz__arrow {
    width: 9px; height: 15px; flex: 0 0 9px;
    color: currentColor; transition: transform .2s;
}
.sv-biz__card:hover .sv-biz__arrow { transform: translateX(3px); }

/* --- 4. 核心实力（白底，标题 + 5 卡 244×290 圆角 20px；首卡深蓝底白字，余 4 卡浅灰底深蓝字）
       数字上移 15px / 单位上移 20px（栋生 2026-09-09）
       hover 蓝底白字：鼠标经过任意卡背景变 #014681，内容全部变白 -- */
.sv-str { background: #fff; padding-bottom: 80px; }
.sv-str .sv-head { margin-top: 45px; }
.sv-str__row {
    display: flex; justify-content: space-between; gap: 45px;
    margin-top: 46px;
}
.sv-str__card {
    flex: 0 0 244px; width: 244px; height: 240px; border-radius: 20px;
    background: #cfcfcf; color: #014681;
    display: flex; flex-direction: column; align-items: center;
    padding: 30px 24px 40px; box-sizing: border-box;
    transition: background .25s ease, color .25s ease;
}
.sv-str__card--lead {
    background: #014681; color: #fff;
}
/* 联动（栋生 2026-09-09）：默认首卡深蓝；鼠标进入行时除被 hover 卡变蓝外，
   其余卡（含首卡）自动变灰；鼠标离开行后首卡恢复深蓝 —— 同一时刻仅一张蓝卡 */
.sv-str__row:hover .sv-str__card {
    background: #cfcfcf; color: #014681;
}
.sv-str__row:hover .sv-str__card:hover {
    background: #014681; color: #fff;
}
.sv-str__label {
    font-size: 19px; font-weight: 700; line-height: 28px;
    text-align: center; min-height: 28px;
}
.sv-str__num {
    font-size: 52px; font-weight: 700; line-height: 1;
    margin-top: 22px; text-align: center; letter-spacing: 0;
    min-width: 2ch; font-variant-numeric: tabular-nums;
}
.sv-str__num-val { display: inline-block; }
/* 数字后缀（如海外业务 "+"）：蓝湖稿 24px 小号，紧贴大数字右侧静态显示，不参与滚动 */
.sv-str__num-suffix {
    display: inline-block; font-size: 16px; font-weight: 700;
    line-height: 1; margin-left: 2px; vertical-align: baseline;
}
.sv-str__unit {
    font-size: 14px; font-weight: 700; line-height: 28px;
    text-align: center; margin-top: 16px;
}
/* 英文版：长标签固定占 3 行高度、收缩上下间距，数字统一在其下方排布，避免与标签重叠（仅 /en 生效） */
.sv-str--en .sv-str__card { padding-bottom: 24px; }
.sv-str--en .sv-str__label { min-height: 84px; }
.sv-str--en .sv-str__num { margin-top: 8px; }
.sv-str--en .sv-str__unit { margin-top: 8px; }

/* --- 4.5 项目案例（图片分类图集：卡片链接到详情页；照片 16:10 封面裁切，hover 上浮） --- */
.sv-case { background: #fff; padding-bottom: 80px; }
.sv-case .sv-head { margin-top: 45px; }
.sv-case__viewport { position: relative; }
.sv-case__grid {
    display: flex; gap: 30px;
    margin-top: 46px;
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin; scrollbar-color: #c9d4df transparent;
    padding-bottom: 6px;
}
.sv-case__grid::-webkit-scrollbar { height: 6px; }
.sv-case__grid::-webkit-scrollbar-thumb { background: #c9d4df; border-radius: 3px; }
.sv-case__grid::-webkit-scrollbar-track { background: transparent; }
.sv-case__card {
    flex: 0 0 calc((100% - 60px) / 3);   /* 桌面 3 张/屏，超出横向滑动 */
    width: auto; scroll-snap-align: start;
    display: block; border-radius: 16px; overflow: hidden;
    background: #f5f7fa; color: #014681;
    box-shadow: 0 6px 20px rgba(1, 70, 129, 0.08);
    transition: transform .25s ease, box-shadow .25s ease;
}
.sv-case__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(1, 70, 129, 0.16);
}
.sv-case__photo {
    display: block; width: 100%; aspect-ratio: 16 / 10;
    background: #e9eef3; overflow: hidden;
}
.sv-case__photo img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.sv-case__name {
    display: block; padding: 18px 20px 22px;
    font-size: 20px; font-weight: 700; line-height: 1.4; text-align: center;
}
/* 左右切换箭头 + 滑动提示：仅内容可滚动（>3 张）时出现 */
.sv-case__arrow {
    position: absolute; top: calc(50% + 23px); transform: translateY(-50%);
    width: 46px; height: 46px; border-radius: 50%; border: none; padding: 0;
    display: none; align-items: center; justify-content: center;
    background: #014681; color: #fff; font-size: 26px; line-height: 1;
    cursor: pointer; z-index: 5;
    box-shadow: 0 6px 18px rgba(1, 70, 129, 0.28);
    transition: background .2s ease, opacity .2s ease;
}
.sv-case__arrow:hover { background: #e00000; }
.sv-case__arrow--prev { left: -10px; }
.sv-case__arrow--next { right: -10px; }
.sv-case.is-scrollable .sv-case__arrow { display: flex; }
.sv-case__arrow[disabled] { opacity: .3; cursor: default; pointer-events: none; }
.sv-case__hint {
    display: none; margin: 16px 0 0; text-align: center;
    font-size: 15px; color: #6b7c8c; letter-spacing: .05em;
}
.sv-case.is-scrollable .sv-case__hint { display: block; }

/* --- 4.5 核心能力（图片分类卡片：仅 oil-exploration 启用，替换数字型核心实力板块；卡片不链接，标题压图底） --- */
.sv-cap { background: #fff; padding-bottom: 80px; }
.sv-cap .sv-head { margin-top: 45px; }
.sv-cap__grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px;
    margin-top: 46px;
}
.sv-cap__card {
    position: relative; display: block; border-radius: 16px; overflow: hidden;
    aspect-ratio: 4 / 5;
    box-shadow: 0 6px 20px rgba(1, 70, 129, 0.10);
    transition: transform .25s ease, box-shadow .25s ease;
}
.sv-cap__card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(1, 70, 129, 0.18);
}
.sv-cap__photo { position: absolute; inset: 0; display: block; overflow: hidden; }
.sv-cap__photo img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .5s ease;
}
.sv-cap__card:hover .sv-cap__photo img { transform: scale(1.06); }
.sv-cap__shade {
    position: absolute; inset: 0; display: block;
    background: linear-gradient(to top,
        rgba(1, 40, 80, 0.88) 0%,
        rgba(1, 40, 80, 0.45) 38%,
        rgba(1, 40, 80, 0.04) 68%,
        rgba(1, 40, 80, 0) 100%);
}
.sv-cap__name {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    display: block; padding: 20px 18px 22px;
    color: #fff; font-size: 19px; font-weight: 700; line-height: 1.45;
    text-align: center; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

/* --- 5. 历年业绩（左右联动：左白卡 3 条/屏 + 左右箭头翻批 / 右大图全量宣传图池 / 蓝色横条 tabs；栋生 2026-09-09 改造） --- */
.sv-perf { background: #fff; padding-bottom: 80px; }
.sv-perf .sv-head { margin-top: 35px; }
/* band 与核心实力卡排同宽同起止：内容左缘 0 = 277，右图右缘=核心实力末卡右缘（flex 1400 溢出 wrap 48px，故右图 right:-48px）
   flex + align-items:center → 左白卡在右图高度内垂直居中（栋生 2026-09-09） */
.sv-perf__band {
    position: relative; display: flex; align-items: center;
    width: 100%; min-height: 460px;
    margin: 46px 0 80px; overflow: visible;
}
.sv-perf__bg {
    position: absolute; top: 0; right: -48px; bottom: 0;
    width: 1110px; height: 100%; max-width: none;
    overflow: hidden; border-radius: 0;
}
/* 多张宣传图叠层切换（数据源：portal_posts.promo_image） */
.sv-perf__bg .sv-perf__photo {
    position: absolute; inset: 0;
    width: 100%; height: 100%; object-fit: cover; display: block;
    opacity: 0; transition: opacity .45s ease;
    pointer-events: none;
}
.sv-perf__bg .sv-perf__photo.is-active { opacity: 1; }

.sv-perf__card {
    position: relative; top: 0; left: 0;   /* 左缘=wrap 内容左缘=核心实力首卡左缘（蓝湖 box_11 x=260 同核心实力左缘） */
    width: 700px; min-height: 360px;
    background: #fff; border-radius: 20px;
    box-shadow: 0 6px 7px rgba(128,128,128,.66);
    padding: 26px 32px 26px 36px; box-sizing: border-box;
    z-index: 2;
}

/* 翻批容器：每次只显示一屏（3 条），配合 sv-perf__ctrl 左右箭头切换批次 */
.sv-perf__pages { position: relative; }
.sv-perf__page { display: none; }
.sv-perf__page.is-active { display: block; }

/* 底部左右箭头翻批 + 页码 */
.sv-perf__ctrl {
    display: flex; justify-content: center; align-items: center;
    gap: 18px; margin-top: 14px; user-select: none;
}
.sv-perf__arrow {
    width: 34px; height: 34px; padding: 0; border-radius: 50%;
    border: 1px solid rgba(1,70,129,.4); background: #fff;
    color: #014681; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.sv-perf__arrow svg { width: 16px; height: 16px; display: block; }
.sv-perf__arrow:hover { background: #014681; color: #fff; border-color: #014681; }
.sv-perf__count {
    min-width: 44px; text-align: center;
    font-size: 15px; font-weight: 700; color: #014681;
    font-variant-numeric: tabular-nums; letter-spacing: 1px;
}

.sv-perf__list {
    display: flex; flex-direction: column; position: relative;
}
/* 每条业绩：左红方块 + 缩字号文字；默认白底深灰字；激活 → 蓝底白字 + 红方块反白 */
.sv-perf__item {
    display: flex; align-items: flex-start; gap: 12px;
    background: transparent; border: 0; padding: 12px 14px;
    text-align: left; cursor: pointer;
    border-radius: 10px; transition: background .25s, color .25s;
    color: #383838;
    font: inherit; width: 100%;
}
.sv-perf__item:hover { background: rgba(1,70,129,.08); }
.sv-perf__item.is-active {
    background: #014681; color: #fff;
}
.sv-perf__dot {
    flex: 0 0 10px; width: 10px; height: 10px;
    background: #e50014; margin-top: 7px;
    transition: background .25s;
}
.sv-perf__item.is-active .sv-perf__dot { background: #fff; }

.sv-perf__text {
    flex: 1; font-size: 15px; font-weight: 500;
    line-height: 26px; color: inherit;
}

/* 虚线分隔（dashed） */
.sv-perf__dash {
    display: block; height: 0;
    border-top: 1px dashed rgba(56,56,56,.30);
    margin: 2px 14px;
}

/* 蓝色横条 tabs：与右大图同位置同宽（right:-48px / 1110px），内部 flex 居中即悬于图底部中央 */
.sv-perf__tabs {
    position: absolute; bottom: 24px; left: auto; right: -48px;
    width: 1110px;
    display: flex; justify-content: center; gap: 16px; z-index: 3;
}
.sv-perf__tab {
    width: 80px; height: 6px; border: 0; padding: 0;
    background: rgba(255,255,255,.45); border-radius: 3px;
    cursor: pointer; transition: background .25s ease;
}
.sv-perf__tab.is-active {
    background: #014681;
}
.sv-perf__tab:hover { background: rgba(1,70,129,.7); }

/* --- services 页响应式 --- */
/* 栋生 2026-09-16：≤1480 视口下 services 页横向溢出修复。
   现象：1366 视口整页被撑到 1424px（横滚 73px），1440/1280/1200 同样溢出。
   根因：页面按 1920 稿撰写，内容区宽度写死 1400px——
         ① .sv-biz__row 3 卡 ×440px + 2×40px 间距 = 1400px
         ② .sv-str__row 5 卡 ×244px + 4×45px 间距 = 1400px
         ③ .sv-perf__bg / .sv-perf__tabs 为与「核心实力」末卡右缘对齐写死 right:-48px
   1920 下靠 .wrap 两侧各 260px 留白吸收这 48px 探出，视口一窄就没余量 → 顶破页宽。
   修法：本档内把这三组改为「按容器等分 / 与内容区右缘对齐」，>1480（含 1920）完全不变。 */
@media (max-width: 1480px) {
    .sv-over__row { gap: 40px; }
    /* 左文区允许收缩（右图 650px 固定）：容器不足时优先压缩文字列，避免整页横滚 */
    .sv-over__l { flex: 1 1 580px; max-width: 580px; min-width: 0; }
    .sv-perf__card { left: 0; }
    .sv-perf__bg { right: 0; }
    .sv-perf__tabs { right: 0; }
    .sv-biz__card { flex: 1 1 0; width: auto; min-width: 0; }
    .sv-biz__photo, .sv-biz__foot { width: 100%; }
    .sv-str__card { flex: 1 1 0; width: auto; min-width: 0; }
}
@media (max-width: 1100px) {
    .sv-hero { height: 420px; }
    .sv-hero__t1 { font-size: 30px; }
    .sv-over__row { flex-direction: column; gap: 30px; }
    .sv-over__l { flex-basis: auto; max-width: 100%; }
    .sv-over__r { flex-basis: auto; width: 100%; max-width: 100%; height: auto; aspect-ratio: 650/390; }
    .sv-biz__row { flex-wrap: wrap; gap: 20px; }
    .sv-biz__card { flex-basis: calc(50% - 10px); width: calc(50% - 10px); }
    .sv-biz__photo { width: 100%; }
    .sv-biz__foot { width: 100%; }
    .sv-str__row { flex-wrap: wrap; gap: 16px; }
    .sv-str__card { flex-basis: calc(33.333% - 12px); width: calc(33.333% - 12px); }
    .sv-str__num { font-size: 40px; }
    .sv-case__grid { gap: 20px; }
    .sv-case__card { flex-basis: calc((100% - 20px) / 2); }
    .sv-cap__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .sv-perf__band { height: auto; min-height: 0; flex-wrap: wrap; }
    .sv-perf__bg { display: none; }
    .sv-perf__card { position: relative; top: 0; left: 0; width: 100%; }
    /* 栋生 2026-09-16：大图（.sv-perf__bg）隐藏后，原本绝对定位叠在图底部的指示条
       仍保留 right:-48px / width:1110px，会在窄屏撑破页宽（375 屏 → 整页 399px）。
       这里让它回到正常文档流、宽度跟随容器，作为卡片下方的指示条居中显示。 */
    .sv-perf__tabs { position: static; flex: 0 0 100%; width: 100%; right: auto; margin-top: 18px; gap: 12px; justify-content: center; }
    .sv-perf__tab { width: 56px; }
}
@media (max-width: 600px) {
    .sv-hero { height: 320px; }
    .sv-hero__t1 { font-size: 24px; }
    .sv-hero__t2 { font-size: 13px; line-height: 22px; margin-top: 14px; }
    .sv-over .sv-h, .sv-biz .sv-h, .sv-str .sv-h, .sv-perf .sv-h { font-size: 28px; margin-top: 50px; }
    /* 板块标题（红竖条形态）窄屏：缩字号、英文词换到第二行、线距收紧 */
    .sv-over .sv-head, .sv-biz .sv-head, .sv-str .sv-head, .sv-perf .sv-head { margin-top: 50px; }
    .sv-head { flex-wrap: wrap; gap: 8px 12px; align-items: center; }
    .sv-head__bar { height: 26px; margin-bottom: 0; }
    .sv-head__title { font-size: 28px; line-height: 34px; }
    .sv-head__en { font-size: 11px; letter-spacing: 2px; padding-bottom: 0; flex-basis: 100%; padding-left: 16px; }
    .sv-head__line { margin-top: 14px; }
    .sv-over__text { font-size: 15px; line-height: 32px; }
    .sv-biz__card { flex-basis: 100%; width: 100%; }
    .sv-str__card { flex-basis: 100%; width: 100%; }
    .sv-str__num { font-size: 34px; }
    .sv-case__grid { gap: 18px; }
    .sv-case__card { flex-basis: 84%; }
    .sv-cap__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .sv-cap__name { font-size: 17px; padding: 16px 12px 18px; }
    .sv-perf__title, .sv-perf__text { font-size: 15px; line-height: 26px; }
}

/* ==========================================================================
   细分业务详情页（/services/detail/{id}）—— 栋生 2026-09-09
   结构：banner(.sv-hero 复用) + 面包屑 + 左竖排业务导航 + 右侧标题/图/正文 + 上下篇分页
   ========================================================================== */
.svd { background: #fff; padding-bottom: 90px; }

/* 面包屑 */
.svd-crumb {
    display: flex; align-items: center; gap: 12px;
    padding: 26px 0 0; font-size: 15px; color: #9aa1a8;
    flex-wrap: wrap;
}
.svd-crumb a { color: #014681; text-decoration: none; transition: color .2s; }
.svd-crumb a:hover { color: #e50014; }
.svd-crumb__sep { color: #c4c9cf; user-select: none; }
.svd-crumb__cur { color: #383838; font-weight: 700; }

/* 左右两栏 */
.svd__layout {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 60px; margin-top: 34px;
}

/* --- 左：细分业务竖排导航 --- */
.svd-nav {
    flex: 0 0 300px; width: 300px;
    background: #f4f6f9; border-radius: 16px;
    padding: 28px 20px 26px; box-sizing: border-box;
    position: sticky; top: 20px;
}
.svd-nav__cap {
    display: flex; align-items: center; gap: 12px;
    font-size: 22px; font-weight: 700; color: #014681;
    line-height: 30px; margin: 0 0 18px; padding: 0 6px;
}
.svd-nav__cap-rule {
    width: 5px; height: 24px; flex: 0 0 5px;
    background: #e50014; border-radius: 3px;
}
.svd-nav__list { list-style: none; margin: 0; padding: 0; }
.svd-nav__item { margin-bottom: 6px; }
.svd-nav__item a {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 14px; border-radius: 10px;
    text-decoration: none; color: #383838;
    transition: background .2s, color .2s;
}
.svd-nav__item a:hover { background: #e8eef5; color: #014681; }
.svd-nav__item.is-active a {
    background: #014681; color: #fff;
    box-shadow: 0 6px 12px rgba(1,70,129,.25);
}
.svd-nav__idx {
    font-size: 13px; font-weight: 700; color: #9aa1a8;
    font-variant-numeric: tabular-nums; letter-spacing: .5px;
}
.svd-nav__item.is-active .svd-nav__idx { color: rgba(255,255,255,.75); }
.svd-nav__name {
    flex: 1; font-size: 17px; font-weight: 700; line-height: 24px;
}
.svd-nav__arrow {
    width: 8px; height: 13px; color: #c4c9cf;
    opacity: 0; transform: translateX(-4px);
    transition: opacity .2s, transform .2s;
}
.svd-nav__item a:hover .svd-nav__arrow,
.svd-nav__item.is-active .svd-nav__arrow { opacity: 1; transform: translateX(0); }
.svd-nav__item.is-active .svd-nav__arrow { color: #fff; }

.svd-nav__back {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin-top: 18px; padding: 11px 12px;
    border: 1px solid rgba(1,70,129,.35); border-radius: 10px;
    font-size: 15px; font-weight: 700; color: #014681;
    text-decoration: none; transition: background .2s, color .2s, border-color .2s;
}
.svd-nav__back svg { width: 16px; height: 16px; }
.svd-nav__back:hover { background: #014681; color: #fff; border-color: #014681; }

/* --- 右：当前业务详情 --- */
.svd-main { flex: 1 1 auto; min-width: 0; max-width: 1000px; }

/* 顶部 左宣传图 + 右标题 */
.svd-main__top {
    display: flex; align-items: flex-start; gap: 42px;
    padding-bottom: 34px; border-bottom: 1px solid #f0f2f5;
}
.svd-main__media {
    flex: 0 0 440px; width: 440px; height: 330px;
    border-radius: 14px; overflow: hidden; background: #eaeaea;
}
.svd-main__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svd-main__head { flex: 1; min-width: 0; padding-top: 8px; }

.svd-main__title {
    display: flex; align-items: center; gap: 14px;
    font-size: 32px; font-weight: 700; color: #014681;
    line-height: 44px; margin: 0;
}
.svd-main__rule {
    width: 6px; height: 30px; flex: 0 0 6px;
    background: #e50014; border-radius: 3px;
}
.svd-main__en {
    display: inline-block; margin-top: 10px;
    font-size: 15px; font-weight: 700; color: #9aa1a8;
    letter-spacing: 2px; text-transform: uppercase;
}

/* 摘要块（栋生 2026-09-09）：左侧红竖条 + 白底红字「摘要」胶囊 + 摘录文字，商务克制 */
.svd-sum {
    display: flex; align-items: flex-start; gap: 16px;
    margin-top: 22px; padding: 18px 22px 18px 24px;
    background: #f5f8fc; border-left: 4px solid #e50014;
    border-radius: 10px;
}
.svd-sum__tag {
    flex: 0 0 auto; margin-top: 2px;
    padding: 2px 12px; border-radius: 999px;
    background: #fff; border: 1px solid #e50014;
    font-size: 14px; font-weight: 700; line-height: 24px; color: #e50014;
    letter-spacing: 3px; text-indent: 3px; /* 中文两字视觉居中补偿 */
}
.svd-sum__text {
    flex: 1; margin: 0; min-width: 0;
    font-size: 16px; line-height: 30px; color: #5c6470;
}

/* 正文：站点统一排版（已剔除 Word 内联样式） */
.svd-main__content {
    margin-top: 34px; color: #383838;
    font-size: 17px; line-height: 32px;
    word-break: break-word;
}
.svd-main__content p {
    margin: 0 0 18px; color: #383838;
}
.svd-main__content div { color: #383838; margin-bottom: 18px; }
.svd-main__content img {
    display: block; max-width: 100%; height: auto;
    margin: 24px auto; border-radius: 10px;
}
.svd-main__content strong { color: #014681; }

/* 底部分页引导：上一篇 / 下一篇 */
.svd-pager {
    display: flex; justify-content: space-between; gap: 24px;
    margin-top: 46px; padding-top: 26px;
    border-top: 1px solid #f0f2f5;
}
.svd-pager__item {
    display: flex; align-items: center; gap: 12px;
    text-decoration: none; padding: 14px 18px;
    border-radius: 12px; background: #f7f9fb;
    min-width: 0; max-width: 440px;
    transition: background .2s;
}
.svd-pager__item svg { width: 16px; height: 16px; flex: 0 0 16px; color: #014681; transition: transform .2s; }
.svd-pager__item--prev svg { order: 0; }
.svd-pager__item--next svg { order: 3; }
.svd-pager__item:hover { background: #e8eef5; }
.svd-pager__item--prev:hover svg { transform: translateX(-3px); }
.svd-pager__item--next:hover svg { transform: translateX(3px); }
.svd-pager__cap {
    order: 1; font-size: 14px; font-weight: 700; color: #9aa1a8;
    flex: 0 0 auto;
}
.svd-pager__name {
    order: 2; font-size: 16px; font-weight: 700; color: #014681;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ==========================================================================
   细分业务详情页 — 内容渲染器组件（svdRender 输出 · 栋生 2026-09-09）
   数据全部来自后台 post_content，按内容结构自动匹配以下形态：
     .svd-sec 小节标题(红竖条+蓝字，带编号) / .svd-p 正文
     .svd-fig 单图 / .svd-gal 图组网格 / .svd-spec 参数表 / .svd-tbl 设备表
     .svd-adv 编号优势卡（油建 01/02/03）
   ========================================================================== */

/* --- 小节标题：左侧红竖条 + 深蓝字；带 01.. 编号时为蓝描边数字徽章 --- */
.svd-sec {
    position: relative;
    display: flex; align-items: center; gap: 14px;
    margin: 46px 0 20px; padding-left: 18px;
    font-size: 24px; font-weight: 700; color: #014681;
    line-height: 36px;
}
.svd-sec::before {
    content: ''; position: absolute; left: 0; top: 50%;
    width: 6px; height: 26px; transform: translateY(-50%);
    background: #e50014; border-radius: 3px;
}
.svd-main__content > .svd-sec:first-child { margin-top: 6px; }
.svd-sec + .svd-sec { margin-top: 32px; }
.svd-sec__num {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto; min-width: 38px; height: 38px; padding: 0 9px;
    box-sizing: border-box;
    border: 1.5px solid #014681; border-radius: 10px;
    background: #f0f5fa; color: #014681;
    font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.svd-sec__txt { flex: 1; min-width: 0; }

/* --- 正文段落（继承 .svd-main__content 17px/32px） --- */
.svd-p { margin: 0 0 20px; }

/* --- 单图：居中、圆角、轻微浮起 --- */
.svd-fig { margin: 8px auto 32px; text-align: center; }
.svd-fig img {
    max-width: 100%; height: auto; display: inline-block;
    margin: 0 auto;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(20, 42, 70, .12);
}

/* --- 图组：自适应网格（宽内容区 3 列 / 窄屏自动降列） --- */
.svd-gal {
    margin: 8px 0 32px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 18px;
}
.svd-gal img {
    width: 100%; height: auto; display: block; margin: 0;
    border-radius: 12px; background: #f2f4f7;
    box-shadow: 0 8px 22px rgba(20, 42, 70, .10);
}

/* --- 参数表：白卡细边、两栏、行斑马纹；lead 行作组眉（核心参数/服务优势） --- */
.svd-spec {
    list-style: none; margin: 0 0 28px; padding: 0;
    border: 1px solid #e6ebf1; border-radius: 14px;
    overflow: hidden; background: #fff;
}
.svd-spec__row {
    display: flex; align-items: flex-start;
    padding: 11px 22px;
    font-size: 16px; line-height: 26px;
}
.svd-spec__row:nth-child(even) { background: #f7f9fb; }
.svd-spec__key {
    flex: 0 0 172px; padding-right: 16px; box-sizing: border-box;
    color: #014681; font-weight: 700;
}
.svd-spec__val { flex: 1; min-width: 0; color: #383838; word-break: break-word; }
.svd-spec__row--lead,
.svd-spec__row--lead:nth-child(even) {
    display: block; padding: 13px 22px;
    background: #eef4fb; border-bottom: 1px solid #d9e5f2;
}
.svd-spec__lead {
    font-size: 15px; font-weight: 800; color: #014681;
    letter-spacing: 3px; text-indent: 3px;
}

/* --- 编号优势卡：左侧红渐变数字块 + 描述（油建 01/02/03 服务优势） --- */
.svd-adv {
    display: flex; align-items: flex-start; gap: 18px;
    margin: 0 0 14px; padding: 18px 24px;
    background: #fafbfd; border: 1px solid #e6ebf1;
    border-left: 4px solid #014681; border-radius: 12px;
    transition: border-color .2s, box-shadow .2s;
}
.svd-adv:last-of-type { margin-bottom: 30px; }
.svd-adv:hover { border-left-color: #e50014; box-shadow: 0 6px 18px rgba(20, 42, 70, .07); }
.svd-adv__num {
    flex: 0 0 auto; min-width: 42px; height: 34px; margin-top: 1px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 6px; box-sizing: border-box;
    background: linear-gradient(135deg, #ff2a3c, #e50014);
    color: #fff; font-size: 15px; font-weight: 800;
    font-variant-numeric: tabular-nums;
    border-radius: 9px;
    box-shadow: 0 4px 10px rgba(229, 0, 20, .25);
}
.svd-adv__text { flex: 1; min-width: 0; margin: 0; font-size: 16px; line-height: 28px; color: #383838; }

/* --- 表格：表头深蓝底白字 + 数据行斑马纹 + hover --- */
.svd-tbl {
    margin: 4px 0 30px;
    border: 1px solid #e6ebf1; border-radius: 14px;
    overflow-x: auto; background: #fff;
}
.svd-tbl__table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 16px; }
.svd-tbl__head th {
    background: #014681; color: #fff;
    padding: 14px 20px; font-weight: 700; text-align: center;
    white-space: nowrap;
}
.svd-tbl__body td {
    padding: 12px 20px; text-align: center; color: #383838;
    border-top: 1px solid #f0f2f5;
}
.svd-tbl__body tr:nth-child(even) td { background: #f7f9fb; }
.svd-tbl__body tr:hover td { background: #eef4fb; }
.svd-tbl__body td:first-child { color: #014681; font-weight: 700; }

/* 内容渲染器组件 — 移动端 */
@media (max-width: 600px) {
    .svd-sec { font-size: 20px; line-height: 30px; margin: 36px 0 16px; padding-left: 15px; }
    .svd-sec::before { height: 20px; }
    .svd-sec__num { min-width: 32px; height: 32px; font-size: 14px; border-radius: 8px; }
    .svd-gal { grid-template-columns: 1fr; gap: 14px; }
    .svd-spec { border-radius: 10px; }
    .svd-spec__row { flex-wrap: wrap; padding: 10px 16px; font-size: 15px; line-height: 24px; }
    .svd-spec__key { flex: 0 0 100%; padding: 0 0 3px; }
    .svd-spec__row--lead,
    .svd-spec__row--lead:nth-child(even) { padding: 11px 16px; }
    .svd-adv { padding: 15px 18px; gap: 14px; }
    .svd-adv__num { min-width: 36px; height: 30px; font-size: 14px; }
    .svd-tbl { border-radius: 10px; }
}

/* services 详情页响应式 */
@media (max-width: 1400px) {
    .svd__layout { gap: 40px; }
    .svd-nav { flex-basis: 270px; width: 270px; }
    .svd-main { max-width: none; }
    .svd-main__media { flex-basis: 380px; width: 380px; height: 285px; }
}
@media (max-width: 1100px) {
    .svd__layout { flex-direction: column; gap: 30px; }
    .svd-nav { position: static; width: 100%; flex-basis: auto; }
    .svd-nav__list { display: flex; flex-wrap: wrap; gap: 8px; }
    .svd-nav__item { margin-bottom: 0; }
    .svd-nav__item a { gap: 8px; padding: 10px 14px; }
    .svd-nav__idx { display: none; }
    .svd-nav__arrow { display: none; }
    .svd-main__top { flex-direction: column; gap: 24px; }
    .svd-main__media { flex-basis: auto; width: 100%; height: auto; aspect-ratio: 440/330; }
}
@media (max-width: 600px) {
    .svd-crumb { font-size: 13px; gap: 8px; }
    .svd-main__title { font-size: 24px; line-height: 36px; }
    .svd-main__content { font-size: 15px; line-height: 28px; }
    .svd-pager { flex-direction: column; }
    .svd-pager__item { max-width: none; }
}

/* ==========================================================================
   新闻列表页（/articles/list/{id}）+ 新闻详情页（/articles/show/{id}）—— 栋生 2026-09-09
   banner 复用 .sv-hero（响应式高度已由 services 段提供）
   面包屑复用 .svd-crumb / 摘要块复用 .svd-sum / 正文组件复用 .svd-*
   详情正文容器复用 .svd-main__content（17px/32px 站点正文排版）
   ========================================================================== */

/* ---------- 列表页主体 ---------- */
.nw-list { background: #fff; padding: 0 0 96px; }
.nw-list__frame { max-width: 1180px; margin-inline: auto; }

/* 分类 pill（仅多分类时显示） */
.nw-cats {
    display: flex; flex-wrap: wrap; gap: 10px;
    margin: 26px 0 4px;
}
.nw-cats__item {
    padding: 9px 22px; border-radius: 999px;
    border: 1px solid #dfe5ec; background: #fff;
    font-size: 15px; font-weight: 600; color: #5a6472;
    transition: border-color .2s, color .2s, background .2s, box-shadow .2s;
}
.nw-cats__item:hover { border-color: var(--blue); color: var(--blue); }
.nw-cats__item.is-active {
    background: var(--blue); border-color: var(--blue); color: #fff;
    box-shadow: 0 6px 14px rgba(1,70,129,.22);
}

/* 卡片列表 */
.nw-items { margin-top: 30px; }
.nw-item {
    display: flex; align-items: center; gap: 36px;
    padding: 30px 30px 30px 30px;
    border: 1px solid #edf0f4; border-radius: 16px; background: #fff;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.nw-item + .nw-item { margin-top: 18px; }
.nw-item:hover {
    transform: translateY(-3px);
    border-color: transparent;
    box-shadow: 0 16px 36px rgba(20,42,70,.10);
}

.nw-item__pic {
    flex: 0 0 296px; width: 296px; height: 188px;
    border-radius: 12px; overflow: hidden;
    background: linear-gradient(135deg, #eef1f5, #e2e8ef);
}
.nw-item__pic img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .5s ease;
}
.nw-item:hover .nw-item__pic img { transform: scale(1.06); }

.nw-item__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nw-item__title {
    margin: 0 0 12px;
    font-size: 21px; font-weight: 700; color: #262b33;
    line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    min-height: 63px;
}
.nw-item__title a { transition: color .2s; }
.nw-item__title a:hover { color: var(--blue); }
.nw-item__ex {
    margin: 0; font-size: 15px; line-height: 1.8; color: #8a939e;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nw-item__meta { display: flex; flex-wrap: wrap; gap: 26px; margin-top: 16px; }
.nw-item__meta-i {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 14px; color: #a3aab3; font-variant-numeric: tabular-nums;
}
.nw-item__meta-i svg { width: 15px; height: 15px; opacity: .85; }

.nw-item__go {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 10px;
    padding: 11px 20px;
    border: 1px solid #dfe5ec; border-radius: 999px;
    color: #7b8592; font-size: 15px; font-weight: 600;
    transition: background .25s, color .25s, border-color .25s;
}
.nw-item__go svg { width: 16px; height: 16px; }
.nw-item__go:hover { background: var(--blue); border-color: var(--blue); color: #fff; }

/* 分页 */
.nw-pager {
    display: flex; justify-content: center; align-items: center; gap: 8px;
    margin-top: 46px;
}
.nw-pager__btn, .nw-pager__num {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 38px; height: 38px; padding: 0 6px; box-sizing: border-box;
    border: 1px solid #e2e7ee; border-radius: 10px; background: #fff;
    color: #5a6472; font-size: 15px;
    transition: border-color .2s, color .2s, background .2s;
}
.nw-pager__btn svg { width: 16px; height: 16px; }
.nw-pager__btn:hover, .nw-pager__num:hover { border-color: var(--blue); color: var(--blue); }
.nw-pager__num.is-cur {
    background: var(--blue); border-color: var(--blue); color: #fff;
    font-weight: 700; box-shadow: 0 6px 14px rgba(1,70,129,.2);
}
.nw-pager__btn.is-dis { color: #c6ccd4; background: #f7f9fb; cursor: not-allowed; }
.nw-pager__dots { color: #b7bec7; padding: 0 4px; user-select: none; }

.nw-empty { text-align: center; color: #9aa1a8; padding: 80px 0 20px; font-size: 16px; }

/* ==========================================================================
   新闻列表页 · 2026-09-10 重构新增
   工具栏（分类 + 搜索）/ 搜索提示条 / 关键词高亮 / 头条区 / 两列主体 / 侧栏
   参考：能源行业官网新闻中心通用结构（分类 Tab + 头条 + 图文列表 + 侧栏模块）
   ========================================================================== */

/* ---------- 导航栏：面包屑（左） + 搜索（右）同一行，上下边缘对齐 ---------- */
.nw-bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px; flex-wrap: wrap;
    padding: 26px 0 20px;
    border-bottom: 1px solid #edf0f4;
}
/* 面包屑与搜索框同为 42px 高 → 上边缘、下边缘严格对齐 */
.nw-bar .svd-crumb { padding: 0; min-height: 42px; }

/* 分类切换（仅多于 1 个分类时出现） */
.nw-tool { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 20px 0 0; }
.nw-tool__cats { display: flex; flex-wrap: wrap; gap: 10px; }

.nw-search { display: flex; align-items: center; gap: 10px; margin-left: auto; }   /* 窄屏换行时也保持靠右 */
.nw-search__box {
    display: flex; align-items: center; gap: 8px;
    width: 300px; height: 42px; padding: 0 16px;
    border: 1px solid #dfe5ec; border-radius: 999px; background: #fff;
    transition: border-color .2s, box-shadow .2s;
}
.nw-search__box:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(1,70,129,.10); }
.nw-search__icon { width: 17px; height: 17px; flex: 0 0 17px; color: #9aa1a8; }
.nw-search__input {
    flex: 1; min-width: 0; height: 100%;
    border: 0; outline: 0; background: transparent;
    font-size: 14px; color: #262b33; font-family: inherit;
}
.nw-search__input::placeholder { color: #a7aeb7; }
.nw-search__input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.nw-search__btn {
    height: 42px; padding: 0 24px; border: 0; border-radius: 999px;
    background: var(--blue); color: #fff;
    font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer;
    transition: background .2s, box-shadow .2s;
}
.nw-search__btn:hover { background: #013561; box-shadow: 0 6px 16px rgba(1,70,129,.22); }

/* ---------- 搜索提示条 ---------- */
.nw-resultbar {
    display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    margin: 22px 0 0; padding: 14px 20px;
    background: #f2f7fc; border: 1px solid #dbe8f5; border-radius: 10px;
    font-size: 15px; color: #3c4753;
}
.nw-resultbar b { color: var(--blue); }
.nw-resultbar__clear {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 14px; color: #7b8592; transition: color .2s;
}
.nw-resultbar__clear:hover { color: var(--red); }
.nw-resultbar__clear svg { width: 14px; height: 14px; }

/* ---------- 关键词高亮 ---------- */
.nw-hl {
    background: rgba(229, 0, 20, .10); color: var(--red);
    font-style: normal; padding: 0 2px; border-radius: 2px;
}

/* ---------- 头条区（置顶/推荐 1 条，大图 + 文案左右分栏） ---------- */
.nw-top {
    display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 32px; align-items: center;
    margin-top: 28px; padding: 24px;
    border: 1px solid #e7edf4; border-radius: 18px;
    background: linear-gradient(120deg, #f7fafd 0%, #ffffff 58%);
    transition: border-color .3s, box-shadow .3s;
}
.nw-top:hover { border-color: transparent; box-shadow: 0 18px 40px rgba(20,42,70,.10); }
.nw-top__pic {
    display: block; border-radius: 12px; overflow: hidden;
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, #eef1f5, #e2e8ef);
}
.nw-top__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nw-top__body { min-width: 0; }
.nw-top__tag {
    display: inline-block; padding: 3px 12px; border-radius: 4px;
    background: var(--red); color: #fff;
    font-size: 12px; font-weight: 700; letter-spacing: 1px;
}
.nw-top__title {
    margin: 14px 0 0; font-size: 26px; font-weight: 700; line-height: 1.45; color: #1d232b;
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.nw-top__title a { transition: color .2s; }
.nw-top__title a:hover { color: var(--blue); }
.nw-top__ex {
    margin: 12px 0 0; font-size: 15px; line-height: 1.85; color: #7d8792;
    display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3;
    -webkit-box-orient: vertical; overflow: hidden;
}

/* ---------- 两列主体：左列表 / 右侧栏 ---------- */
.nw-body {
    display: grid; grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px; align-items: start;
    margin-top: 34px;
}
.nw-main { min-width: 0; }
.nw-main__head {
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
    padding-bottom: 14px; margin-bottom: 22px;
    border-bottom: 1px solid #edf0f4;
}
.nw-main__title {
    position: relative; margin: 0; padding-left: 14px;
    font-size: 20px; font-weight: 700; color: var(--blue);
}
.nw-main__title::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 18px; border-radius: 2px; background: var(--red);
}
.nw-main__count { font-size: 14px; color: #9aa1a8; font-variant-numeric: tabular-nums; }

/* 两列下的卡片紧凑化（原位单栏样式保留给其它场景） */
.nw-body .nw-item { gap: 24px; padding: 20px; position: relative; }
.nw-body .nw-item + .nw-item { margin-top: 14px; }
.nw-body .nw-item__pic { flex: 0 0 208px; width: 208px; height: 132px; border-radius: 10px; }
.nw-body .nw-item__title { font-size: 18px; line-height: 1.5; margin-bottom: 8px; min-height: 0; }
.nw-body .nw-item__ex { font-size: 14px; line-height: 1.75; }
.nw-body .nw-item__meta { gap: 20px; margin-top: 12px; }
/* 整卡可点：标题链接用「拉伸伪元素」铺满卡片，扩大点击热区（图片链接为装饰，已 aria-hidden） */
.nw-body .nw-item__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* 角标（置顶 / 推荐 / 热点） */
.nw-item__badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.nw-badge {
    display: inline-block; padding: 1px 8px; border-radius: 3px;
    font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .5px; line-height: 18px;
    background: #eef3f9; color: var(--blue);
}
.nw-badge.is-top { background: var(--red); color: #fff; }
.nw-badge.is-hot { background: #fff1e6; color: #c96a1b; }

/* ---------- 侧栏 ---------- */
.nw-side { display: grid; gap: 24px; align-content: start; }
.nw-box {
    padding: 20px 20px 6px;
    border: 1px solid #e7edf4; border-radius: 14px; background: #fff;
}
.nw-box__head {
    position: relative; margin: 0 0 6px; padding-left: 14px;
    font-size: 17px; font-weight: 700; color: var(--blue);
}
.nw-box__head::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 16px; border-radius: 2px; background: var(--red);
}
.nw-box__list { margin: 0; padding: 0; list-style: none; }

/* 推荐阅读（小图 + 标题 + 日期） */
.nw-rec { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid #f0f3f7; }
.nw-rec:first-child { border-top: 0; }
.nw-rec__pic {
    flex: 0 0 92px; width: 92px; height: 62px;
    border-radius: 8px; overflow: hidden;
    background: linear-gradient(135deg, #eef1f5, #e2e8ef);
}
.nw-rec__pic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.nw-rec:hover .nw-rec__pic img { transform: scale(1.06); }
.nw-rec__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nw-rec__title {
    margin: 0; font-size: 14px; font-weight: 600; line-height: 1.55; color: #2b323b;
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.nw-rec__title a { transition: color .2s; }
.nw-rec__title a:hover { color: var(--blue); }
.nw-rec__date { margin-top: auto; padding-top: 6px; font-size: 12px; color: #a3aab3; font-variant-numeric: tabular-nums; }

/* 热门排行（序号 + 标题 + 阅读量） */
.nw-rank { margin: 0; padding: 0; list-style: none; }
.nw-rank__li {
    display: flex; align-items: flex-start; gap: 10px;
    padding: 11px 0; border-top: 1px solid #f0f3f7;
}
.nw-rank__li:first-child { border-top: 0; }
.nw-rank__no {
    flex: 0 0 20px; width: 20px; height: 20px; margin-top: 2px; border-radius: 4px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700; color: #a3aab3; background: #f2f5f9;
    font-variant-numeric: tabular-nums;
}
.nw-rank__no.is-top { background: var(--red); color: #fff; }
.nw-rank__title {
    flex: 1; min-width: 0;
    font-size: 14px; line-height: 1.55; color: #2b323b;
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
    transition: color .2s;
}
.nw-rank__title:hover { color: var(--blue); }
.nw-rank__num { flex: 0 0 auto; margin-top: 2px; font-size: 12px; color: #b7bec7; font-variant-numeric: tabular-nums; }

/* ---------- 详情页主体（单栏居中阅读） ---------- */
/* ==========================================================================
   新闻详情页 · 2026-09-10 重新设计
   变化：① 面包屑不再带文章标题（只到栏目）② 去掉顶部封面大图
        ③ 标题区改为「大标题 → 英文名 → 元信息 → 红蓝渐进分层线」
        ④ 摘要改为浅蓝底卡片（左侧红条）承接标题作导读
        ⑤ 新增「相关阅读」三卡  ⑥ 上下篇 + 返回按钮重排
   ========================================================================== */
.nw-view { background: #fff; padding: 0 0 100px; }
.nw-view__inner { max-width: 1000px; margin-inline: auto; }

/* ---- 标题区 ---- */
.nw-view__head { margin-top: 30px; }
.nw-view__title {
    margin: 0; font-size: 36px; font-weight: 700;
    color: #20242b; line-height: 1.45; letter-spacing: .2px;
}
.nw-view__en {
    display: block; margin-top: 12px;
    font-size: 15px; font-weight: 600; color: #9aa4b0;
    line-height: 1.65; letter-spacing: .3px;
}
.nw-view__meta {
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px;
    margin-top: 20px;
}
.nw-view__meta-i {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 15px; color: #9aa1a8; font-variant-numeric: tabular-nums;
}
.nw-view__meta-i svg { width: 16px; height: 16px; opacity: .9; }
/* 分类做成胶囊标签（与列表页 pill 同一语言） */
.nw-view__meta-cat {
    padding: 5px 14px; border-radius: 999px; background: #eef3f9;
    color: var(--blue); font-weight: 600; font-size: 14px;
    transition: background .2s, color .2s;
}
.nw-view__meta-cat svg { width: 15px; height: 15px; }
.nw-view__meta-cat:hover { background: var(--blue); color: #fff; }
/* 分层线：与首页板块标题同一视觉语言（红 → 蓝 → 渐隐） */
.nw-view__rule {
    display: block; height: 2px; margin-top: 24px; border-radius: 2px;
    background: linear-gradient(90deg,
        #e50014 0, #014681 110px,
        rgba(1, 70, 129, .22) 58%, rgba(1, 70, 129, 0) 100%);
}

/* ---- 摘要（正文导读）：浅蓝底 + 左侧红条 ---- */
.nw-view__sum {
    margin-top: 34px; padding: 22px 28px;
    background: #f5f8fc;
    border-left: 4px solid var(--red);
    border-radius: 4px 12px 12px 4px;
}
.nw-view__sum-tag {
    display: inline-block; margin-bottom: 10px;
    font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--blue);
}
.nw-view__sum-text { margin: 0; font-size: 16px; line-height: 1.95; color: #4a545f; }

/* 正文（.svd-main__content 提供 17px/32px 站点正文排版） */
.nw-art { margin-top: 40px; }
.nw-art > .svd-sec:first-child { margin-top: 6px; }

/* ---- 相关阅读 ---- */
.nw-rel { margin-top: 60px; padding-top: 36px; border-top: 1px solid #eef1f5; }
.nw-rel__head {
    position: relative; margin: 0 0 22px; padding-left: 14px;
    font-size: 20px; font-weight: 700; color: var(--blue);
}
.nw-rel__head::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 18px; border-radius: 2px; background: var(--red);
}
.nw-rel__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.nw-rel__card {
    display: block; background: #fff;
    border: 1px solid #e7edf4; border-radius: 12px; overflow: hidden;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.nw-rel__card:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 16px 34px rgba(20,42,70,.10); }
.nw-rel__pic {
    display: block; aspect-ratio: 16 / 10; overflow: hidden;
    background: linear-gradient(135deg, #eef1f5, #e2e8ef);
}
.nw-rel__pic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.nw-rel__card:hover .nw-rel__pic img { transform: scale(1.05); }
.nw-rel__body { display: block; padding: 16px 18px 18px; }
.nw-rel__title {
    display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
    font-size: 15px; font-weight: 600; color: #2b323b; line-height: 1.6;
    min-height: 48px; transition: color .2s;
}
.nw-rel__card:hover .nw-rel__title { color: var(--blue); }
.nw-rel__date {
    display: block; margin-top: 10px;
    font-size: 13px; color: #a3aab3; font-variant-numeric: tabular-nums;
}

/* ---- 底部：上下篇 + 返回列表 ---- */
.nw-foot { margin-top: 52px; }
.nw-foot__bar { margin-top: 30px; text-align: center; }
.nw-view__back {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 26px;
    border: 1px solid rgba(1,70,129,.4); border-radius: 999px;
    color: var(--blue); font-size: 15px; font-weight: 600;
    transition: background .2s, color .2s, border-color .2s;
}
.nw-view__back svg { width: 16px; height: 16px; }
.nw-view__back:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.nw-view .svd-pager { margin-top: 0; }

/* ---------- 新闻页响应式 ---------- */
@media (max-width: 1100px) {
    .nw-list__frame { max-width: 100%; }
    .nw-item { gap: 26px; }
    .nw-item__pic { flex-basis: 250px; width: 250px; height: 160px; }
    .nw-item__title { font-size: 19px; min-height: 57px; }
    .nw-view__title { font-size: 30px; }
}
@media (max-width: 900px) {
    .nw-item__go-txt { display: none; }
    .nw-item__go { padding: 0; width: 42px; height: 42px; justify-content: center; }
    .nw-rel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* 平板：相关阅读两列 */
}
@media (max-width: 600px) {
    .nw-list { padding-bottom: 70px; }
    .nw-items { margin-top: 24px; }
    .nw-item {
        flex-direction: column; align-items: stretch; gap: 0;
        padding: 0 0 24px;
        border: 0; border-bottom: 1px solid #eef1f5;
        border-radius: 0; box-shadow: none !important;
        transform: none !important;
    }
    .nw-item + .nw-item { margin-top: 26px; }
    .nw-item__pic {
        flex-basis: auto; width: 100%; height: auto;
        aspect-ratio: 16 / 10; margin-bottom: 18px;
    }
    .nw-item__title { font-size: 18px; line-height: 1.55; min-height: 0; }
    .nw-item__ex { font-size: 14px; line-height: 1.75; }
    .nw-item__meta { gap: 18px; margin-top: 14px; }
    .nw-item__go { display: none; }   /* 移动端点击标题/图片即入详情 */

    .nw-view { padding-bottom: 70px; }
    .nw-view__head { margin-top: 22px; }
    .nw-view__title { font-size: 24px; line-height: 1.5; }
    .nw-view__en { font-size: 14px; }
    .nw-view__meta { font-size: 14px; gap: 10px 18px; margin-top: 16px; }
    .nw-view__rule { margin-top: 20px; }
    .nw-view__sum { margin-top: 26px; padding: 18px 20px; }
    .nw-view__sum-text { font-size: 15px; line-height: 1.9; }
    .nw-art { margin-top: 28px; }
    .nw-rel { margin-top: 44px; padding-top: 28px; }
    .nw-rel__grid { grid-template-columns: 1fr; gap: 16px; }
    .nw-rel__title { min-height: 0; }
    .nw-foot { margin-top: 38px; }
    .nw-foot__bar { margin-top: 24px; }
    .nw-pager { gap: 6px; margin-top: 38px; }
    .nw-pager__btn, .nw-pager__num { min-width: 34px; height: 34px; font-size: 14px; }
}

/* ---------- 新闻列表页（重构版）响应式 ---------- */
@media (max-width: 1100px) {
    .nw-body { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .nw-side { grid-template-columns: 1fr 1fr; }
    .nw-box { padding: 18px 18px 4px; }
}
@media (max-width: 900px) {
    .nw-top { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 18px; }
    .nw-top__title { font-size: 21px; }
    .nw-top__ex { -webkit-line-clamp: 2; line-clamp: 2; }
    .nw-body { margin-top: 26px; }
    .nw-body .nw-item { gap: 16px; padding: 16px; }
    .nw-body .nw-item__pic { flex: 0 0 132px; width: 132px; height: 90px; }
    .nw-body .nw-item__title { font-size: 16px; }
    .nw-body .nw-item__ex { display: none; }
    .nw-search { width: 100%; }
    .nw-search__box { width: auto; flex: 1 1 auto; }
    .nw-search__btn { padding: 0 18px; }
}
@media (max-width: 600px) {
    .nw-bar, .nw-tool { flex-direction: column; align-items: stretch; gap: 14px; }
    .nw-bar .svd-crumb { min-height: 0; }
    .nw-tool__cats { gap: 8px; }
    .nw-cats__item { padding: 7px 16px; font-size: 14px; }
    .nw-side { grid-template-columns: 1fr; }
    .nw-body .nw-item { flex-direction: column; align-items: stretch; gap: 0; }
    .nw-body .nw-item__pic { flex: none; width: 100%; height: auto; aspect-ratio: 16 / 10; }
    .nw-body .nw-item__title { margin-top: 14px; font-size: 17px; }
    .nw-body .nw-item__ex { display: -webkit-box; }
}

/* ==========================================================================
   Footer 锚点跳转适配（header sticky 90px，跳转预留顶部空间）—— 2026-09-10
   ========================================================================== */
[id^="sec-"] { scroll-margin-top: 104px; }
@media (max-width: 900px) {
    [id^="sec-"] { scroll-margin-top: 84px; }
}

/* ==========================================================================
   回到顶部按钮（全站）—— 栋生 2026-09-10
   深蓝底白箭头 → hover 红；滚动 400px 后浮现，点击平滑回顶
   ========================================================================== */
.backtop {
    position: fixed; right: 28px; bottom: 96px; z-index: 45;
    width: 46px; height: 46px; padding: 0; border: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--blue); color: #fff; border-radius: 12px;
    box-shadow: 0 8px 20px rgba(1,70,129,.28);
    opacity: 0; visibility: hidden; transform: translateY(12px);
    transition: opacity .28s, visibility .28s, transform .28s, background .22s;
}
.backtop svg { width: 20px; height: 20px; }
.backtop:hover { background: var(--red); box-shadow: 0 8px 20px rgba(229,0,20,.3); }
.backtop.is-show { opacity: 1; visibility: visible; transform: translateY(0); }
@media (max-width: 600px) {
    .backtop { right: 16px; bottom: 80px; width: 42px; height: 42px; border-radius: 10px; }
    .backtop svg { width: 18px; height: 18px; }
}

/* ==========================================================================
   联系我们页（/contact）—— 2026-09-10 开发
   数据源：banner=广告位「联系我们banner」；联系信息=站点信息；地图=百度地图 JS API
   设计：延续全站商务语言（蓝 #014681 / 红 #e50014、英文眉标 + 红蓝分层线 + 红竖条小节标题）
         关键信息卡「小标签 + 大号数值」拉开层级；地图定位点红色脉冲闪动
   2026-09-10 二次调整：去掉在线留言、备案号、微信公众号二维码；新增定位地图
   ========================================================================== */
.ct-main { background: #fff; padding: 0 0 100px; }
.ct-frame { max-width: 1180px; margin-inline: auto; }

/* 板块头下的引导语 */
.ct-intro {
    margin: 26px 0 0; max-width: 860px;
    font-size: 16px; line-height: 2; color: #5a6472;
}

/* ---------- 关键联系信息卡（客服热线 / 联系地址 / 网站域名） ---------- */
.ct-cards {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px; margin-top: 34px;
}
.ct-card {
    display: flex; flex-direction: column;
    padding: 26px 24px; min-height: 152px;
    background: #f7fafd; border: 1px solid #e7edf4; border-radius: 14px;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
a.ct-card:hover {
    transform: translateY(-3px); border-color: transparent;
    background: #fff; box-shadow: 0 16px 34px rgba(20,42,70,.10);
}
.ct-card__ico {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; margin-bottom: 16px;
    border-radius: 12px; background: var(--blue); color: #fff;
}
.ct-card__ico svg { width: 22px; height: 22px; }
.ct-card__label {
    font-size: 14px; color: #8a939e; letter-spacing: 1px;
}
/* 关键信息：大号加粗深蓝，辨识度优先 */
.ct-card__val {
    margin-top: 8px; font-size: 19px; font-weight: 700; color: #232a33;
    line-height: 1.5; word-break: break-word;
}
.ct-card__val--lg { font-size: 26px; color: var(--blue); letter-spacing: .5px; }
/* 客服热线卡：红顶边强调「关键中的关键」 */
.ct-card--key { position: relative; overflow: hidden; background: #fff; border-color: #dbe5ef; }
.ct-card--key::before {
    content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--red) 0, var(--blue) 60%);
}
.ct-card--key .ct-card__ico { background: var(--red); }

/* 公司标识卡：LOGO → 渐变短线 → 公司全称（→ 英文名），把卡片填满不显空 */
.ct-card--logo { justify-content: flex-start; }
.ct-card__logo {
    display: block; margin: 0 0 16px;
    height: 56px; width: auto; max-width: 100%;
    object-fit: contain; object-position: left center;
    align-self: flex-start;   /* 卡片是 column flex，默认 stretch 会把 logo 拉变形 */
}
.ct-card__rule {
    display: block; width: 42px; height: 3px; margin: 0 0 14px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--red) 0, var(--blue) 100%);
}
.ct-card--logo .ct-card__val { margin-top: 0; }
.ct-card__en {
    display: block; margin-top: 8px;
    font-size: 12px; font-weight: 600; letter-spacing: .5px;
    color: #9aa4b0; line-height: 1.65;
}

/* ---------- 两列：定位地图 + 侧栏 ---------- */
.ct-split {
    display: grid; grid-template-columns: minmax(0, 1fr) 340px;
    gap: 40px; align-items: start; margin-top: 54px;
}

/* ---------- 定位地图 ---------- */
.ct-map-wrap {
    border: 1px solid #e7edf4; border-radius: 14px; overflow: hidden; background: #fff;
}
/* 地图容器必须有确定高度，否则百度地图不渲染 */
.ct-map { width: 100%; height: 460px; background: #eef2f7; }
.ct-map img { max-width: none; }               /* 避免主题全局 img 规则压坏地图瓦片 */
/* 未配置百度地图 AK 时的降级底纹（纯装饰，不绘制任何地图要素） */
.ct-map--plain {
    position: relative;
    background:
        repeating-linear-gradient(0deg, rgba(1,70,129,.045) 0 1px, transparent 1px 46px),
        repeating-linear-gradient(90deg, rgba(1,70,129,.045) 0 1px, transparent 1px 46px),
        linear-gradient(135deg, #f2f7fc 0%, #e6eef7 100%);
}
.ct-map--plain .ct-pulse { left: 50%; top: 50%; }

/* 地址条 */
.ct-map__bar {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 16px 20px;
    background: #f7fafd; border-top: 1px solid #e7edf4;
}
.ct-map__pin {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px;
    background: var(--blue); color: #fff;
}
.ct-map__pin svg { width: 18px; height: 18px; }
.ct-map__addr { flex: 1 1 240px; min-width: 0; font-size: 16px; font-weight: 600; color: #232a33; line-height: 1.6; }
.ct-map__addr em {
    font-style: normal; margin-right: 10px;
    font-size: 14px; font-weight: 400; color: #8a939e;
}
.ct-map__nav {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 18px; border-radius: 999px;
    border: 1px solid rgba(1,70,129,.4); color: var(--blue);
    font-size: 14px; font-weight: 600;
    transition: background .2s, color .2s, border-color .2s;
}
.ct-map__nav svg { width: 15px; height: 15px; }
.ct-map__nav:hover { background: var(--blue); color: #fff; border-color: var(--blue); }

/* 红色脉冲定位点（百度地图自定义 Overlay 与降级面板共用） */
.ct-pulse { position: absolute; width: 0; height: 0; pointer-events: none; z-index: 10; }
.ct-pulse i, .ct-pulse b {
    position: absolute; left: 0; top: 0; width: 16px; height: 16px;
    margin: -8px 0 0 -8px; border-radius: 50%;
}
.ct-pulse b {
    background: var(--red);
    box-shadow: 0 0 0 3px rgba(229,0,20,.20), 0 2px 8px rgba(229,0,20,.35);
}
.ct-pulse i { background: var(--red); animation: ctPulse 1.9s cubic-bezier(.2,.6,.3,1) infinite; }
@keyframes ctPulse {
    0%   { transform: scale(1);   opacity: .55; }
    70%  { transform: scale(4.6); opacity: 0; }
    100% { transform: scale(4.6); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ct-pulse i { animation: none; opacity: 0; }
}

/* ---------- 侧栏 ---------- */
.ct-side { display: grid; gap: 24px; align-content: start; }
.ct-box {
    padding: 24px 24px 22px;
    border: 1px solid #e7edf4; border-radius: 14px; background: #f7fafd;
}

/* 小节标题（与站内「红竖条 + 标题」一致） */
.ct-sec {
    position: relative; margin: 0 0 20px; padding-left: 14px;
    font-size: 20px; font-weight: 700; color: var(--blue); line-height: 1.3;
}
.ct-sec::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 18px; border-radius: 2px; background: var(--red);
}
.ct-sec__txt { display: inline-block; }

/* 官方二维码 */
.ct-qr { margin: 0; text-align: center; }
.ct-qr--single { max-width: 196px; margin: 0 auto; }
.ct-qr img {
    width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain;
    background: #fff; border: 1px solid #e7edf4; border-radius: 10px; padding: 8px; box-sizing: border-box;
}
.ct-qr figcaption { margin-top: 10px; font-size: 13px; color: #7b8592; }

/* 网站域名（侧栏次要信息） */
.ct-domain {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e7edf4; border-radius: 10px; background: #fff;
    font-size: 15px; font-weight: 600; color: var(--blue);
    word-break: break-all;
    transition: background .2s, color .2s, border-color .2s;
}
.ct-domain svg { width: 18px; height: 18px; flex: 0 0 18px; opacity: .85; }
.ct-domain:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.ct-domain:hover svg { opacity: 1; }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
    .ct-split { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .ct-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ct-map { height: 400px; }
}
@media (max-width: 900px) {
    .ct-cards { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .ct-card { min-height: 0; padding: 22px 20px; }
    .ct-split { margin-top: 40px; }
    .ct-map { height: 340px; }
    .ct-map--plain { height: 340px; }
}
@media (max-width: 600px) {
    .ct-main { padding-bottom: 70px; }
    .ct-side { grid-template-columns: minmax(0, 1fr); }
    .ct-card__val--lg { font-size: 23px; }
    .ct-map { height: 280px; }
    .ct-map--plain { height: 280px; }
    .ct-map__bar { padding: 14px 16px; }
    .ct-map__nav { width: 100%; justify-content: center; }
}

/* ==========================================================================
   移动端 Banner 文字字号统一收口（栋生 2026-09-16）
   --------------------------------------------------------------------------
   范围：仅 ≤600px（手机档），中英文站共用同一套 CSS。
   目标：三类 Banner 的宣传语在手机上视觉协调、舒适 —— 整体下调约 35%~42%，
        固定 px 值保证各机型一致（不再随 vw 缩放）。
   PC 端（>600px）与平板档（601~900）完全不受影响。
   覆盖：首页 .kz-banner__cap（眉标 l1 / 主标 l2 / 细目 sub）
         内页 .sv-hero__t1/t2（服务、新闻列表、新闻详情、联系我们共用）
         集团简介 .ab-hero__t1/t2/t3
   ========================================================================== */
@media (max-width: 600px) {
    /* ① 首页 Banner：眉标 → 主标 → 细目，逐级递减，行距与字距同步收紧 */
    .kz-banner__cap .cap-l1 {
        font-size: 15px; letter-spacing: 1.5px; line-height: 1.5;
    }
    .kz-banner__cap .cap-l2 {
        font-size: 21px; letter-spacing: 1px; line-height: 1.4;
    }
    .kz-banner__cap .cap-l1 + .cap-l2 { margin-top: 9px; }
    .kz-banner__cap .cap-sub {
        font-size: 12.5px; letter-spacing: .2px; line-height: 1.6; margin-top: 11px;
    }

    /* ② 内页 Banner（.sv-hero）：主标 + 副题 */
    .sv-hero__t1 { font-size: 20px; line-height: 1.45; }
    .sv-hero__t2 { font-size: 12px; line-height: 20px; margin-top: 12px; }

    /* ③ 集团简介 Banner（.ab-hero）：主标 + 副标 + 描述 */
    .ab-hero__t1 { font-size: 21px; line-height: 1.4; }
    .ab-hero__t2 { font-size: 14px; letter-spacing: 1px; margin-top: 12px; line-height: 1.6; }
    .ab-hero__t3 { font-size: 13px; line-height: 1.9; margin-top: 22px; }
}

/* ==========================================================================
   集团简介页 ·「四大核心战略」手机端横向溢出修复（栋生 2026-09-16）
   --------------------------------------------------------------------------
   现象：375px 手机上整页被撑到 540px，出现横向滚动条。
   根因：.ab-strat__inner 是 grid，其 1fr 列的 auto 最小宽度由内容决定，
        而 .ab-strat__rule（标题下白色横线）写死了 width:540px，
        于是这一列（连同正文、战略配图）被强制撑到 540px，超出手机屏。
   修法：① 列定义改为 minmax(0,1fr) —— 去掉 auto 最小宽度（标准解法）
         ② 横线改为随容器宽度 100%；③ 关键格 min-width:0 双保险
         ④ band 加 overflow:hidden 兜底，防斜向探出的绝对定位元素再撑破
         ⑤ 正文区补 24px 左右内边距，与上方标题区（.ab-strat__head）对齐、不贴屏边
   范围：仅 ≤600px，PC 端与平板档（601~1200）完全不受影响。
   ========================================================================== */
@media (max-width: 600px) {
    .ab-strat__band { overflow: hidden; }
    .ab-strat__inner {
        grid-template-columns: minmax(0, 1fr);
        padding-left: 24px; padding-right: 24px;
    }
    .ab-strat__spot,
    .ab-strat__panel { min-width: 0; }
    .ab-strat__rule { width: 100%; }
    .ab-strat__desc { max-width: 100%; }
}

/* ==========================================================================
   新闻板块标题行 · 手机端横向溢出修复（栋生 2026-09-16）
   --------------------------------------------------------------------------
   现象：英文首页（/en）在 375px 手机上整页被撑到 414px。
   根因：.kz-news .news-row-top 是 flex + flex-wrap:nowrap，
        英文标题（"News & Insights" 等）比中文长，把右侧「Learn More」按钮顶出容器。
   修法：窄屏允许换行，并让标题侧可收缩（min-width:0）——
        中文站标题短、不触发换行，视觉保持不变。
   范围：仅 ≤600px，PC 端与平板档完全不受影响。
   ========================================================================== */
@media (max-width: 600px) {
    .kz-news .news-row-top { flex-wrap: wrap; gap: 16px 20px; }
    .kz-news .news-row-top .left-side { min-width: 0; flex: 1 1 auto; }
}

/* ==========================================================================
   页头 · 移动端语言切换（logo 右侧）收尾（栋生 2026-09-16）
   --------------------------------------------------------------------------
   ① 尊重系统「减弱动效」：语言图标静止（.hd-lang 在 PC 端 display:none，
      故该覆盖只作用于移动端）；
   ② 极窄屏（≤360，多见于 320/360 安卓机）再收一档，保证
      「logo + 中文/English + 汉堡」同排不挤、不产生横向溢出。
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    .hd-lang .lang-dd__ico { animation: none; }
    .hd-lang .lang-dd__caret { transition: none; }
}

@media (max-width: 360px) {
    .hd-inner { column-gap: 10px; }
    .site-header .logo img { height: 40px; }
    .hd-lang .lang-dd__btn { font-size: 12px; gap: 4px; }
    .hd-lang .lang-dd__ico { width: 14px; height: 14px; flex-basis: 14px; }
}

/* ==========================================================================
   首页手机端 · 6 项调整（栋生 2026-09-16）★
   --------------------------------------------------------------------------
   全部写在 ≤900 断点内（本站「移动端」＝ ≤900：汉堡抽屉 / 手风琴堆叠等都在这档），
   PC（≥901）一行不受影响。放在文件末尾是为了让同优先级规则按顺序生效，
   不必回头改各板块的原始声明。
   --------------------------------------------------------------------------
   ① 集团简介：去掉板块上方的出血大图（手机上它紧贴 banner、占 260px 高）
   ② 核心业务：三张卡全部呈「点击后（展开态）」，并去掉宽度/淡入等一切动效；
      三块背景左右满屏（去掉 .biz-row 的 16px 内边距）
   ③ 综合实力：删掉「以权威资质、智能设备…」那一行描述；三张卡左右满屏
   ④ 海外市场：二级标题左移（原被 align-items:flex-end 顶到右侧）；
      地图下移到文字下方，不再被正文压住
   ⑤ 国内市场：6 宫格蓝底左右铺满视口（冲出 .wrap 的 24px 内边距）
   ⑥ 底部四栏导航：中文站两栏一行（英文站保持原样 —— 英文栏目标题过长，
      折成半栏会换行错乱）
   ========================================================================== */
@media (max-width: 900px) {

    /* ---- ① 集团简介：去掉上方图片 ---- */
    .kz-intro .intro-photo { display: none; }
    .kz-intro .intro-text { padding-top: 40px; }   /* 图没了，标题离 banner 留一口气 */

    /* ---- ② 核心业务：三卡恒为展开态 + 零动效 + 背景满屏 ---- */
    .kz-biz .biz-row { padding: 0; margin-inline: -24px; }  /* 冲出 .wrap 内边距 → 背景左右满屏（原 0 16px） */
    .kz-biz .biz-card,
    .kz-biz .biz-card.is-open {
        height: auto;                                      /* 高度按展开态内容自撑（英文 tab/标题更长） */
        min-height: 470px;                                 /* 三块视觉高度保底一致 */
        flex-grow: 1; cursor: default;
        transition: none;                                  /* 去掉 flex-grow 宽度动画 */
    }
    /* 文字层改「随内容撑高」：原绝对定位 + 固定卡高，英文长标题/长 tab 会被裁掉 */
    .kz-biz .biz-body { position: relative; inset: auto; min-height: 470px; padding: 90px 20px 34px 24px; box-sizing: border-box; }
    .kz-biz .biz-copy--max,
    .kz-biz .biz-card.is-open .biz-copy--max { position: static; left: auto; right: auto; top: auto; bottom: auto; }
    .kz-biz .biz-bg { transition: none; }
    .kz-biz .biz-bg--thumb { opacity: 0; }                  /* 只看展开（横图）那一层 */
    .kz-biz .biz-bg--expand,
    .kz-biz .biz-card.is-open .biz-bg--expand {
        opacity: 1; transform: none;
        transition: none !important;                       /* 覆盖 392 行的 .75s/7s 动效 */
    }
    .kz-biz .biz-card.is-open:hover .biz-bg--expand { transform: none; }   /* 去悬停缓慢放大 */
    .kz-biz .biz-cover { transition: none; }
    .kz-biz .biz-copy--min,
    .kz-biz .biz-card.is-open .biz-copy--min { display: none; }            /* 收起态文字层不要 */
    .kz-biz .biz-copy--max,
    .kz-biz .biz-card.is-open .biz-copy--max {                             /* 展开态文字层恒显示 */
        opacity: 1; visibility: visible; pointer-events: auto;
        transform: none; transition: none;
    }
    .kz-biz .biz-card .biz-desc,
    .kz-biz .biz-card.is-open .biz-desc { display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; }
    .kz-biz .biz-tabs,
    .kz-biz .biz-card.is-open .biz-tabs { gap: 10px; max-width: 100%; }
    .kz-biz .biz-tabs a,
    .kz-biz .biz-card.is-open .biz-tabs a { min-width: 0; flex: 0 0 calc(33.333% - 10px); font-size: 14px; padding: 0 8px; }

    /* ---- ③ 综合实力：删描述行 + 三卡满屏 ---- */
    .kz-strength .strength-top { display: block; }         /* 只剩二级标题，别再被 flex 挤成窄列 */
    .kz-strength .strength-top .sec-desc { display: none; }
    .kz-strength .strength-row { margin-inline: -24px; }   /* 冲出 .wrap 的 24px 内边距 → 左右满屏 */

    /* ---- ④ 海外市场：标题左移 + 地图下移 ---- */
    .kz-overseas {
        display: flex; flex-direction: column;
        min-height: 0; padding-bottom: 0;
    }
    .kz-overseas::before { display: none; }                /* 取消 51.56% 比例占位（原用于撑住背景） */
    .kz-overseas .ov-inner { order: 1; position: static; display: block; }
    .kz-overseas .ov-text { max-width: none; padding: 40px 24px 26px; }
    .kz-overseas .ov-row { align-items: flex-start; }       /* 二级标题回到左基准线（原挤在右侧） */
    .kz-overseas .ov-bg {                                  /* 地图改到文字下方，整幅按原比例展开 */
        order: 2; position: static; inset: auto;
        width: 100%; height: auto; object-fit: fill;
    }
    /* 2026-09-17：手机端地图改用分类「缩略图」字段（展开图四周留白多，窄屏主体偏小） */
    .kz-overseas .ov-bg--pc { display: none; }
    .kz-overseas .ov-bg--m { display: block; }

    /* ---- ⑤ 国内市场：蓝底左右铺满 ---- */
    .kz-domestic .domestic-right::before { left: -24px; width: calc(100% + 48px); }
    /* 2026-09-16 追加：6 宫格上方留 10px 蓝（原来图片直接贴着蓝底上边缘） */
    .kz-domestic .domestic-right .oil-grid { padding-top: 10px; }

    /* ---- ⑥ 底部四栏导航：中文站两栏一行（英文站不动） ---- */
    html[lang="zh-CN"] .foot-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 18px; }
    html[lang="zh-CN"] .foot-col,
    html[lang="zh-CN"] .foot-col--wide,
    html[lang="zh-CN"] .foot-col:last-child { flex: none; min-width: 0; }
    html[lang="zh-CN"] .foot-col h4 { font-size: 15px; gap: 8px; margin-bottom: 12px; }
    html[lang="zh-CN"] .foot-col:last-child h4 { white-space: normal; }
    html[lang="zh-CN"] .foot-col ul { padding-left: 12px; }
}

/* ==========================================================================
   集团简介页 · 手机端 3 项调整（栋生 2026-09-16）★
   --------------------------------------------------------------------------
   同样全部写在 ≤900 断点内（本站「移动端」＝ ≤900）；PC（≥901）一行不受影响。
   ① 所有板块一级标题（.ab-h 集团底蕴/企业硬实力/四大核心战略/科创体系/
      集团文化/市场布局）26 → 22px；≤600 再降到 21px。
      配套把板块内的「二级」小标题同幅下压一档（卡片标题 24→19、战略面板标题
      22→19、文化条目标签 20→18），否则二级会比一级还大，层级倒挂。
   ② 集团底蕴：去掉板块配图（右列 366×540 的宣传图 + 叠在其上的大厦图），
      正文单列铺满。
   ③ 市场布局：右侧 4 张照片改按原图比例完整显示。原 height:160px + cover
      会把 290×160 的原图放大到 312×172 再裁掉上下各 6px（画面被切），
      改 height:auto 后框比例与图完全吻合，一张不裁。
   ========================================================================== */
@media (max-width: 900px) {

    /* ---- ① 一级标题字号 ---- */
    .ab-h { font-size: 22px; }
    .ab-hard__title  { font-size: 19px; }
    .ab-strat__t1    { font-size: 19px; }
    .ab-cult__label  { font-size: 18px; }

    /* ---- ② 集团底蕴：配图整列去掉 ---- */
    .ab-bs__r { display: none; }

    /* ---- ③ 市场布局 4 图：按原比例完整显示（不裁切、不留白） ---- */
    .ab-lay__cell img { height: auto; object-fit: fill; }
}

@media (max-width: 600px) {
    .ab-h { font-size: 21px; }
}

/* ==========================================================================
   首页「集团简介」下方 · 核心数据（闪动数字）手机端重排（栋生 2026-09-17）★
   --------------------------------------------------------------------------
   第二轮调整（同日晚，栋生追加）：
     「一个数据一行，所有一条信息调整为一行，名称放在单位的后面，加竖线区分」
   做法（仅 ≤900，PC ≥901 一行不改）：
   ① 网格 2 列 → **单列**：每个数据独占一行（上一轮的「落单项跨列」规则随之作废）
   ② .stat 纵排 → **横排**（flex row + align-items:center）：
      数字组「数字+单位」在左，名称在右，同一行内并排
   ③ 名称左侧用 ::before 画 1px 竖线做区分
      （PC 那条「格与格之间」的 `.stat + .stat::before` 在 ≤900 已被 !important 关掉，
        这里的竖线是「数字组 ｜ 名称」之内的一条，两者不冲突）
   ④ 字号再收一档（≤900 数字 30 / 单位 14 / 名称 13.5；≤600 再降到 26 / 12.5 / 13），
      保证中英文都尽量挤进一行；确实超长的（如英文 200,000 hydraulic horsepower）允许名称折行
   ⑤ 横排后文字基线以左对齐为主 → 显式 text-align:left（PC 基础态是 center）
   ========================================================================== */
@media (max-width: 900px) {

    .kz-stats { padding: 40px 0 56px; }

    .kz-stats .stats-row { grid-template-columns: 1fr; gap: 10px; }

    .kz-stats .stat {
        display: flex; flex-direction: row;
        align-items: center; justify-content: flex-start;
        min-width: 0;
        text-align: left;
        padding: 14px 16px;
        background: #f7f8fa;
        border-radius: 10px;
    }
    /* 单列后不再需要「落单项跨列」 */
    .kz-stats .stat:last-child:nth-child(odd) { grid-column: auto; }

    .kz-stats .stat .stat-num { flex: none; font-size: 30px; }
    .kz-stats .stat .stat-num .unit { font-size: 14px; margin-left: 3px; }

    .kz-stats .stat .stat-label {
        position: relative;
        flex: 1 1 auto; min-width: 0;
        margin: 0 0 0 14px; padding-left: 14px;
        font-size: 13.5px; line-height: 1.4;
    }
    /* 数字组 ｜ 名称 之间的竖线 */
    .kz-stats .stat .stat-label::before {
        content: ""; position: absolute; left: 0; top: 50%;
        transform: translateY(-50%);
        width: 1px; height: 20px; background: #d8dde5;
    }
}

@media (max-width: 600px) {
    .kz-stats .stat { padding: 12px 14px; }
    /* 数字再收一档：英文的「300,000 +meters | Annual drilling capacity」这类超长组合
       才能挤进 375 屏的一行（已按生产站真实文案实测，24px 是分界点） */
    .kz-stats .stat .stat-num { font-size: 24px; }
    .kz-stats .stat .stat-num .unit { font-size: 12px; }
    .kz-stats .stat .stat-label { font-size: 13px; margin-left: 12px; padding-left: 12px; }
    .kz-stats .stat .stat-label::before { height: 18px; }
}

/* ==========================================================================
   移动端收口（栋生 2026-09-17）★
   ① 集团简介「企业硬实力」：灰底内容块左右铺满视口（冲出 .wrap 的 24px 内边距）
   ② 内容配图一律「按原图比例完整显示」（height:auto，不用 contain 以免留白）
   ③ 服务/油田详情页：设备参数表把详情列撑破屏幕（整页横向滚动）的修复
   --------------------------------------------------------------------------
   ② 涉及两处内容大图，根因都是「写死高度的框 + object-fit:cover」：
      · 企业硬实力卡配图   330×240 塞进 327×180  → 上下各裁 24%
      · 服务页细分业务卡图 440×330 塞进 327×330  → 左右各裁 25%
      · 详情页头图         650×390 塞进 440/330  → 裁掉 25%
      改 height:auto 后框比例 = 原图比例，一张不裁、且不留白。
   ③ .svd__layout 是 align-items:flex-start 的纵排 flex，子项宽 = fit-content，
      表格 min-width:560px 于是把 .svd-main 撑到 562px → 手机整页 375 溢出 211px。
      改 stretch 让详情列回到容器宽度，超宽表格交给 .svd-tbl 自己横向滚动。
   --------------------------------------------------------------------------
   不动项（这些是「背景」不是「内容图」，栋生口径就是铺满屏幕 → 保持 cover）：
      首页轮播 .kz-banner / 核心业务 .kz-biz .biz-bg / 海外市场 .kz-overseas .ov-bg
      内页 banner .sv-hero__bg / .ab-hero__bg / 战略深蓝带 .ab-strat__band::before
   范围：≤1100（详情页头图、表格）/ ≤900（企业硬实力、细分业务卡）；PC ≥1101 一行不改。
   ========================================================================== */
@media (max-width: 1100px) {
    /* 详情页头图：框改随原图比例（各业务原图有 440×330 与 650×390 两种） */
    .svd-main__media { width: 100%; height: auto; aspect-ratio: auto; }
    .svd-main__media img { height: auto; object-fit: fill; }

    /* 详情列（含正文里的设备参数表）不再撑破视口 */
    .svd__layout { align-items: stretch; }
    .svd-main,
    .svd-main__content,
    .svd-tbl { max-width: 100%; }
}

@media (max-width: 900px) {
    /* ---- ① 企业硬实力：内容块左右满屏（直角，贴住屏幕两侧） ---- */
    .ab-hard__grid { margin-inline: -24px; gap: 16px; }
    .ab-hard__card { border-radius: 0; }
    .ab-hard__card:hover { transform: none; box-shadow: none; }

    /* ---- ② 企业硬实力卡配图 / 细分业务卡配图：完整显示 ---- */
    .ab-hard__photo img { height: auto; object-fit: fill; }
    .sv-biz__photo { height: auto; }
    .sv-biz__photo img { height: auto; object-fit: fill; }
    .sv-biz__card { height: auto; }

    /* ---- 科创体系 4 图同理：≤600 单列时 552 宽塞进 190 高的框，会裁掉 41% ---- */
    .ab-tech__cell img { height: auto; object-fit: fill; }
}

/* ==========================================================================
   内页 Banner「整幅完整显示」（栋生 2026-09-17）★
   --------------------------------------------------------------------------
   现象：石油工程技术服务 / 油田化工服务 / 石油勘探开发投资及服务 / 新闻资讯 /
        联系我们 五个内页的 banner 在手机上看不全。
   根因：原图 1920×520（3.69:1），塞进 375×320 的框用 object-fit:cover，
        只露出中间约 30% 画面（裁切倍率 3.28）——所以「显示不全」。
   修法（≤900；901+ 与 PC 零改动）：
        ① 图从「绝对定位的 cover 背景」改为「正常文档流的整幅图」→ 容器高 = 图高，一张不裁；
        ② 文字层恢复绝对定位、铺满图片区域垂直居中 → 文字依旧压在图上（2026-09-17 二次调整）；
        ③ 深色渐变遮罩保留，保证浅色画面上白字可读。
   注：图按原比例铺满宽度，375 屏下高约 101px（3.69:1 的物理高度）；
       不用 object-fit:contain —— 会在图上下留白，栋生明确不要。
   涉及模板（结构完全一致，仅 CSS 即可）：services / services-detail /
        articles/list / articles/view / contact（油田化工、石油勘探页复用 services 模板）。
   ========================================================================== */
@media (max-width: 900px) {
    .sv-hero {
        position: relative;
        height: auto;
        background: #0b2545;              /* 图未加载时的兜底底色 */
    }

    /* ① 图：正常流，宽度满屏、高度随原图 → 整幅可见（不裁切、不留白） */
    .sv-hero__bg {
        position: static; inset: auto;
        display: block;
        width: 100%; height: auto;
        object-fit: fill;
    }

    /* ② 遮罩：仍作用于图片区域，左侧加深 → 白字可读 */
    .sv-hero__shade {
        display: block;
        background: linear-gradient(90deg, rgba(0,0,0,.66) 0%, rgba(0,0,0,.42) 50%, rgba(0,0,0,.10) 100%);
    }

    /* ③ 文字层：绝对定位铺满图片区域、垂直居中 → 文字压在图上 */
    .sv-hero__inner {
        position: absolute; inset: 0;
        height: auto;
        justify-content: center;
        padding: 0 24px;
    }
    .sv-hero__t1 { color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
    .sv-hero__t2 { color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
}

/* ==========================================================================
   内页 Banner 手机档 · 英文文案字号微调（栋生 2026-09-17）
   --------------------------------------------------------------------------
   缘由：图片完整显示后容器高度由原图比例决定（375 屏约 102px）。
        英文副题最长 119 字符，按中文口径（t1 20px / t2 12px）在 375 屏需
        130px，t1 会超出图片上沿、t2 掉到图外 → 页面出现「白字压白底」。
   做法：英文站单独收字号 —— t1 16px/1.4（35 字符单行）、t2 11px/1.55
        （119 字符两行），合计约 64px，稳落在图内。
   范围：仅 ≤600px 且 html[lang="en"]；中文站与 PC / 平板档不受影响。
   ========================================================================== */
@media (max-width: 600px) {
    html[lang="en"] .sv-hero__t1 { font-size: 16px; line-height: 1.4; }
    html[lang="en"] .sv-hero__t2 { font-size: 11px; line-height: 1.55; margin-top: 8px; }
}

/* ==========================================================================
   首页核心数据（闪动数字）· PC 不等宽自适应 + 手机端行内居中（栋生 2026-09-17）★
   --------------------------------------------------------------------------
   ① PC（≥901）数字整体收一档：56 → 46，单位 18 → 16，格间竖线 76 → 66
   ② PC 宽屏（≥1201）：5 列「等宽 1fr」→ **内容自适应**（display:flex），
      每格宽度 = 自身「数字组」与「名称」中较宽的那个 → 数字大的格更宽，
      不再是五等分；整组水平居中（justify-content:center）。
      英文名称偏长时会等比收缩折行（min-width:0 保证可收缩），不会撑破 1200。
   ③ 手机（≤900）：行内由「左对齐」改为**左右居中** —— 数字组 ｜ 名称
      整组居中（flex 收缩同理，超长时仍在屏内折行）
   ========================================================================== */
@media (min-width: 901px) {
    .kz-stats .stat .stat-num { font-size: 46px; }
    .kz-stats .stat .stat-num .unit { font-size: 16px; }
    .kz-stats .stat + .stat::before { height: 66px; }
}

@media (min-width: 1201px) {
    .kz-stats .stats-row { display: flex; justify-content: center; align-items: center; }
    .kz-stats .stat { flex: 0 1 auto; min-width: 0; }
}

@media (max-width: 900px) {
    .kz-stats .stat { justify-content: center; text-align: center; }
    .kz-stats .stat .stat-label { flex: 0 1 auto; }
}

/* ==========================================================================
   services 页「核心实力」手机端改「一条一行」（栋生 2026-09-17）★
   --------------------------------------------------------------------------
   需求原话：「移动端，石油工程技术服务，油田化工服务 核心实力数据，一行显示，
             若英文端一行显示不下，则增加行高度显示」。
   涉及：/services（cate 3 石油工程核心实力）、/oil-chemical（cate 4 油田化工服务），
        两页共用 pages/services.blade.php 的 .sv-str 板块（DOM 顺序 名称 → 数字 → 单位）。
   做法（仅 ≤600；601~900 仍是原 3 列纵排卡，>900 与 PC 零改动）：
    ① 卡片由「纵排 244×240」改「横排一行」：flex-direction:row + wrap，
       height:auto 让高度随内容 —— 中文一行刚好一条，英文放不下自动折行、卡片随之增高
       （即「增加行高度显示」，不裁切、不溢出）
    ② 清掉英文专用的固定占位：.sv-str--en .sv-str__label{min-height:84px}
       （那是 PC 纵排时给 3 行标签预留的高度，横排后会把卡片撑出大片空白）
    ③ 数字 52→30、名称 19→16、单位 14→13；间距统一交给 column-gap，避免折行时
       残留 margin 造成第二行缩进
   ========================================================================== */
@media (max-width: 600px) {
    .sv-str__row { gap: 10px; }

    .sv-str__card,
    .sv-str--en .sv-str__card {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        height: auto;
        min-height: 0;
        padding: 12px 16px;
        border-radius: 12px;
        column-gap: 8px;
        row-gap: 2px;
    }

    .sv-str__label,
    .sv-str--en .sv-str__label {
        min-height: 0;
        font-size: 16px;
        line-height: 24px;
        text-align: center;
    }

    .sv-str__num,
    .sv-str--en .sv-str__num {
        font-size: 30px;
        margin-top: 0;
    }
    .sv-str__num-suffix { font-size: 14px; }

    .sv-str__unit,
    .sv-str--en .sv-str__unit {
        font-size: 13px;
        line-height: 22px;
        margin-top: 0;
    }
}

/* ==========================================================================
   集团简介页 Hero（/about，仅桌面 ≥901px）：一级标题整句一行 + 段落行宽 +30%
   —— 栋生 2026-09-17

   原状（基础规则，桌面/手机同源）：
       .ab-hero__text 限宽 540px、.ab-hero__t3 限宽 520px；
       英文一级标题「Group Overview · Kunlun Strength」40px 实测单行需 647px
       → 被 540px 挤成 2 行；英文段落 530 字在 520px 下排 9 行。

   现改（只在 ≥901px 生效）：
       ① .ab-hero__text 540 → 700px：一级标题 647px 自然放得下 → 整句一行显示全部
          （用「放开容器宽度」实现，不加 white-space:nowrap：日后标题再长也只是自然折行，
            不会像 nowrap 那样溢出压出横向滚动条）；
       ② .ab-hero__t3 520 → 676px（= 原宽 +30%），段落每行容纳更多字，行数 9 → 7；
       ③ .ab-hero__t2 回落 540px：副标原本就是被父级 540px 挤出的 2 行，
          父级放宽后若不管它会改折行位置 → 显式锁回 540px，副标排版与改动前逐像素一致。

   注：≤900px 的移动端数值（.ab-hero__t1 26px / .ab-hero__t3 15px）不受影响 —— 手机零回归。
   ========================================================================== */
@media (min-width: 901px) {
    .ab-hero__text { max-width: 700px; }
    .ab-hero__t2   { max-width: 540px; }
    .ab-hero__t3   { max-width: 676px; }
}
