@charset "utf-8";
/* ==========================================================================
   响应式适配层（追加在原站桌面样式之后，不改动原桌面的任何一条规则）
   断点：1200px / 992px / 768px / 480px

   设计原则：
     · ≥1201px  —— 完全保持 lysoo 原站桌面版式（1:1 复刻）
     · ≤1200px  —— 原站把 html/body 锁在 min-width:1200px、内容容器固定 1000/1200px，
                   此宽度以下无法忠实呈现桌面版，故统一切换为「流式容器 + 汉堡导航」
     · ≤768px / ≤480px —— 排版、栅格进一步降级
   ========================================================================== */

/* ---------- ★ 关键：解除原站桌面版的宽度锁定 ----------
   sub_css.css 里 `html,body{min-width:1200px}` 会把整个文档钉死在 1200px，
   导致媒体查询虽命中、容器却缩不下来。必须先解除这一条。 */
html, body { min-width: 0 !important; }

/* 兜底：任何漏网的超宽装饰元素都不产生横向滚动条 */
body { overflow-x: hidden; }

/* 图片与媒体默认自适应 */
img, video, iframe { max-width: 100%; }
.Zoom img { height: auto; }
.ui-table-wrap, .table-wrap { overflow-x: auto; }

/* 汉堡按钮：桌面端（≥1201px）隐藏，仅在 ≤1200px 的媒体查询里显示 */
.m_nav_btn { display: none; }

/* ==========================================================================
   ≤1200px：桌面 → 流式
   ========================================================================== */
@media screen and (max-width: 1200px) {

  /* ---- 0. 移动端统一 border-box（原站为 content-box，padding 会撑宽） ---- */
  *, *::before, *::after { box-sizing: border-box; }

  /* ---- 1. 内容容器：固定宽 → 100% -------------------------------------
     白名单来自对 style1.css / style.css / sub_css.css 的全量审计
     （所有 width >= 1000px 的内容容器） */
  .wrap, .wfix, .content, .foot, .topLink, .head_wrap .head, .foot_company_group_in,
  .logo, .logo.disBlock,
  .jb_nav_k_nr, .jb_nav_z, .jb_nav_z ul,
  .x_cyxn_cont, .x_cyxn_banner, .ywz_xh_xian1, .ywz_jiage_ttu_erer,
  #ywz_zz_jg_bao, .ywz_zz_jg_xiaobao,
  .pageNav ul, .fixtop ul, .tel400 ul, .fixtop400 ul, .tabNav .navHd ul, .CaseNav ul,
  .showother, .jb_new_k, .jp_0825_gmlc_wrap, .case, .anlititle,
  .links, .links div, .bot_gn, .caseList,
  .home-subjects-v2, .home-subjects-v2 ul,
  .sub_exploit .a41 .mian ul, .sub_iphone .iphone_mian .a2 .mian ul {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  .wrap, .wfix, .content, .foot, .topLink, .jb_nav_k_nr, .jb_new_k, .case, .caseList,
  .links, .bot_gn, .main { padding-left: 12px; padding-right: 12px; }

  /* ---- 1b. logo 区：标题换行会被整段裁掉 ----
     原站把 .logo 锁死 height:114px + overflow:hidden。窄屏下站点标题会折行，
     多出来的行被裁掉 —— 在搜索引擎眼里等同于「隐藏文本」，首页 H1 直接失效。
     两处一起改：① 放开高度，不再裁剪；② 标题改块级，独占一行并按容器宽度折行
     （它原本是 inline-block、宽度由内容撑开，390px 屏上会横向溢出两百多像素）。
     桌面端 >1200px 维持原样，不受影响。 */
  .logo, .logo.disBlock { height: auto !important; }
  .logo.disBlock h1, .logo.disBlock h2 { display: block !important; }

  /* ---- 2. 装饰性超宽元素（1920px 背景条/图标）：裁掉溢出，不撑破文档 ----
     注意：绝对定位装饰元素的「包含块」是有 position 的 .wrap（不是 .bg），
     所以 overflow:hidden 必须加在 .wrap 上才真正生效。 */
  .pageSide, .pageSide .hd, .fullSlide, .CaseBanner,
  .xn_ba_js_14_bigImg, .xn_ba_js_15_bigImg, .xn_ba_js_16_bigImg { overflow: hidden; }
  .sub_weixin .weixin_mian .a2 .wrap,
  .sub_exploit .a4 .wrap, .sub_exploit .a41 .wrap,
  .sub_exploit .a6 .wrap, .sub_exploit .a7 .wrap { overflow: hidden; }

  /* 轮播：容器固定 360px 高（.xn_ba_js_14_main）而图片会随宽缩小，
     会在下方留出大片空白。改为按原图 1920×360 的比例自适应高度。 */
  .xn_ba_js_14_main { height: auto !important; aspect-ratio: 1920 / 360; }
  .xn_ba_js_14_element { position: absolute !important; inset: 0; }
  .xn_ba_js_14_bigImg { width: 100%; height: 100%; }
  .xn_ba_js_14_bigImg img { width: 100% !important; height: 100% !important; object-fit: cover; }
  .xn_ba_js_14_btn { top: auto !important; bottom: 6px; position: absolute !important; left: 0; right: 0; margin: 0 auto; }
  .xn_ba_js_14_btn li { float: none !important; display: inline-block; margin: 0 8px !important; }
  .fullSlide .bd li .pic, .fullSlide .bd li .pic img, .CaseBanner .bd li .txtbaner {
    width: 100% !important; height: auto;
  }

  /* ---- 3. 页头：LOGO / 电话 改两行居中 ----
     .topTel 原为 163×56 带背景图的固定盒子（overflow:hidden），手机上会裁掉号码 */
  .header .topbann .wfix .fr { display: none; }
  .header .topbann .wfix .fl { float: none; width: 100%; }
  .sites p { font-size: 12px; line-height: 20px; margin: 6px 0; text-align: center; }
  .logo.disBlock { text-align: center; float: none; }
  .topTel {
    float: none !important; text-align: center;
    width: auto !important; height: auto !important; min-height: 0 !important;
    margin: 6px auto 10px !important; padding: 0 !important;
    background: none !important; overflow: visible !important;
  }
  .topTel span { font-size: 20px !important; line-height: 26px !important; }

  /* ---- 4. 导航：改汉堡菜单 ----
     .j_nav 必须用 !important：jQuery 的 slide 插件会往它写内联 display */
  .m_nav_btn {
    display: block; position: absolute; right: 12px; top: 8px; width: 34px; height: 34px;
    padding: 7px 6px; box-sizing: border-box; cursor: pointer; z-index: 100001;
  }
  .m_nav_btn i { display: block; height: 2px; background: #fff; margin: 4px 0; border-radius: 2px; }
  .jb_nav_k { position: relative; }
  .jb_nav_z { position: relative; }
  .j_nav {
    display: none !important; float: none !important; height: auto !important; width: 100% !important;
    background: var(--lv-red); position: absolute; top: 50px; left: 0; z-index: 100000;
    box-shadow: 0 6px 14px rgba(0, 0, 0, .25);
  }
  .j_nav.open { display: block !important; }
  .jb_nav_z ul li.m, .jb_nav_z ul li.navitem {
    float: none !important; width: 100% !important; height: auto !important;
    overflow: visible !important; border-bottom: 1px solid rgba(255, 255, 255, .15);
  }
  .jb_nav_z ul li > a.nav-a, .jb_nav_z ul li.m > a {
    display: block; width: 100% !important; box-sizing: border-box;
    padding: 0 16px; line-height: 46px; height: 46px; text-align: left;
  }
  .jb_nav_z .sub {
    display: block !important; position: static !important; width: 100% !important;
    background: var(--lv-red5) !important; height: auto !important; left: auto !important; top: auto !important;
  }
  .jb_nav_z .sub li { float: none; display: block; }
  .jb_nav_z .sub li a { width: 100% !important; box-sizing: border-box; text-align: left; padding-left: 30px; }

  /* ---- 5. 页脚 ---- */
  .foot ul.list1, .foot ul.list2 { width: 33.33%; float: left; box-sizing: border-box; }
  .foot .foot_logo { display: none; }
  .foot_bottom span { width: 100% !important; max-width: 100%; box-sizing: border-box; padding: 0 12px; }
  .foot_bottom { font-size: 12px; line-height: 22px; word-break: break-all; padding: 10px 0; }
  .foot_bottom a { word-break: break-all; }
  .bot_gn li { width: 16.66%; box-sizing: border-box; padding: 0 4px; }
  .bot_gn li img { width: 100%; height: auto; }

  /* ---- 6. 首页套餐卡片 / 服务 tabs / 优势 / 新闻三栏 ---- */
  .sy-h1b { display: flex; flex-wrap: wrap; justify-content: center; }
  .s1, .s2, .s3, .s4 { margin: 0 6px 12px 6px; }
  .s1 a, .s2 a, .s3 a, .s4 a { width: 215px !important; }

  .mian.tab .c1.hd { width: 100% !important; float: none; }
  .mian.tab .c1.hd ul { display: flex; flex-wrap: wrap; width: 100% !important; }
  .mian.tab .c1.hd ul li { width: 33.33%; box-sizing: border-box; }
  .mian.tab .bd { width: 100% !important; float: none; }
  .mian.tab .bd .c2 { width: 100% !important; box-sizing: border-box; padding: 12px; }

  .a4 .mian ul { display: flex; flex-wrap: wrap; }
  .a4 .mian ul li { width: 50% !important; box-sizing: border-box; margin: 0 0 10px 0 !important; }

  .jp_0825_zxzx_wrap .jb_new_k { display: flex; flex-wrap: wrap; }
  .jb_new_sj { width: 100% !important; float: none; border-right: 0 !important; margin-right: 0 !important; padding-top: 14px; }
  .jb_new_sj_bt, .jb_new_sj_nr { width: 100% !important; }
  .jb_new_sj_nr li { width: 100% !important; }
  .jb_new_sj_nr li a { width: 100% !important; box-sizing: border-box; }
  .jb_new_sj_bt p { margin: 6px 0 !important; font-size: 20px !important; }
  .jb_new_sj_bt a { margin-top: 16px !important; }

  /* ---- 7. 右侧悬浮客服条（★ .swt_main 已停用，这两行现在是空转）---------
     .swt_main 是**原站**右下角那条客服条。2026-09-30 版式 v3 上线后，
     它由 .lv-dock 接管（theme.js 的 footerHtml 已无人调用），
     页面上 `.swt_main` 出现次数为 0，swt.css / swt.js 也已在 2026-10-01
     从页面资源清单里摘掉。
     这两行留着不动：一是它们对不存在的元素本来就是空转，零代价；
     二是万一要回滚到老客服条，改回来即可。 */
  .swt_main .swt_right { transform: scale(.85); transform-origin: right bottom; }
  .swt_main .swt_weixin, .swt_main .swt_xinlan { display: none; }

  /* ---- 8. 图片列表 / 案例 ---- */
  .caseList li { width: 50%; float: left; box-sizing: border-box; }
  .clImgPd { width: 100%; height: auto; }
  .clImgPd img { width: 100%; height: auto; }

  /* ---- 9. 左侧工具栏类布局（单页） ---- */
  .left-tool-bar { position: static; width: 100%; }
  .right-content { margin-left: 0; }
  .main_r, .main_l, .p10 { width: 100% !important; box-sizing: border-box; }

  /* ---- 10. 固定宽浮动瓦片 → 可折行网格 -------------------------------------
     这三处是老站用「固定 px 宽 + float」排的瓦片墙，全站只出现在 3 个页面上：
       · .sub_exploit .a5 .mian ul li              389×278  案例封面卡
                                                   （/weixinkaifa/、/shoujiwangzhanjianshe/）
       · .sub_iphone .iphone_mian .a2 .mian ul li  365×592  优势卡（/shoujiwangzhanjianshe/）
       · .hostCate .bd ul li                       318×高   服务器类型卡（/yunfuwuqi/）
     窄屏下瓦片比容器还宽，而父级（.wrap / .mian / .bd 上的 overflow:hidden，
     老站拿来清浮动用的）会**就地把它切掉** —— 右侧内容不是"要滑才看得到"，
     是彻底没了。实测 /shoujiwangzhanjianshe/ @320 每张卡被切掉 93px。

     ★ 改法是「能不收缩就不收缩」：
       容器 display:flex + wrap，瓦片 flex:0 0 auto 保持原宽、只加 max-width:100%。
       能放得下 → 与改造前逐像素一致（>430px 时瓦片仍是 389px 宽）；
       放不下 → 收缩到容器宽，自然变成单列。宽屏观感零变化，是这里敢动手的前提。
       原来靠 margin 拉开的间距改成 margin 保留（不用 gap），是为了不动 .a5
       里那套 `ul{margin-left:-15px}` 配 `li{margin-left:15px}` 的负边距对消。 */
  .sub_exploit .a5 .mian ul,
  .sub_iphone .iphone_mian .a2 .mian ul,
  .hostCate .bd ul {
    display: flex; flex-wrap: wrap; justify-content: center;
    width: 100% !important; max-width: 100%; margin: 0 !important;
  }
  .sub_exploit .a5 .mian ul li,
  .sub_iphone .iphone_mian .a2 .mian ul li,
  .hostCate .bd ul li {
    float: none !important; flex: 0 0 auto; max-width: 100%;
    margin: 0 7px 20px !important;
  }

  /* .a5 案例卡：.h4 是绝对定位、写死 389×278 的封面图，卡宽一收它就露出来 */
  .sub_exploit .a5 .mian ul li { height: auto !important; aspect-ratio: 389 / 278; }
  .sub_exploit .a5 .mian ul li h4 { width: 100%; height: 100%; }
  .sub_exploit .a5 .mian ul li h4 img { display: block; width: 100%; height: 100%; object-fit: cover; }

  /* .a2 优势卡：卡高写死 592px，卡一收内容会顶出去；卡内那排圆圈图标
     原本是「float + margin:0 25px」的 3 连排（3×163=489 > 卡内宽 250），
     改 flex-wrap 让它们按实际宽度自动折行（250px 里正好两列）。 */
  .sub_iphone .iphone_mian .a2 .mian ul li { height: auto !important; min-height: 0; }
  .sub_iphone .iphone_mian .a2 .mian ul li.i-1 > p,
  .sub_iphone .iphone_mian .a2 .mian ul li.i-2 > p {
    display: flex; flex-wrap: wrap; justify-content: center;
    width: auto !important; margin-left: 0 !important;
  }
  .sub_iphone .iphone_mian .a2 .mian ul li.i-1 > p span,
  .sub_iphone .iphone_mian .a2 .mian ul li.i-2 > p span { float: none; margin: 0 5px 7px; }

  /* .hostCate 服务器卡：dt/dd 是固定两栏（110px + margin-left:120px），
     卡收到 296px 后内宽 274 仍够用，不用再动。 */

  /* ---- 11. 固定宽「PC 版式」容器 → 收成容器宽 + 版块内横滑 --------------
     这一批和内页兜底层（.lv-body-flat{overflow-x:auto}）是两回事：
       兜底层是"整页可以左右滑"，页头/页脚不动，但**正文整条跟着滑**；
       这里要的是"只有这个版块滑，页面骨架和上下相邻版块都不动"。
     问题出在这些容器的**宽度本身**是写死的（不是内容溢出），
     所以给它们 overflow-x:auto 也没用 —— 它自己就是 1000px 宽，照旧顶破外层。
     必须先把它收成 100%，它才真正"变成一个能装下横向滚动条的盒子"。

     ★ 内联 style 也算在内：/yumingzhuce/ 的 #pnOther2 是
       style="... width: 1000px; ..."，只有 !important 压得住。
     ★ 这份名单同样是全站扫出来的（adapt_audit.js 的 pgWide 诊断），不是猜的：
         320px 视口下"让整页多出横向滚动"的最外层元素，去重后就是下面这些。 */
  #ny-bady,
  #pnOther1,
  #pnOther2,
  body.lv-v3 .lv-body-flat section > div.container {
    width: 100% !important; max-width: 100%;
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  /* .ban-a 是分类筛选标签条：内联 width:728px，而 li 是 inline-block、
     标签之间没有空格可折行 —— 320 屏上整条顶出 408px 的整页横滑。
     改 flex-wrap 即按容器宽度自动换行（宽屏下排布与原来一致）。 */
  ul.ban-a {
    width: auto !important; max-width: 100%;
    display: flex; flex-wrap: wrap; justify-content: center;
    padding: 15px 8px 0;
  }
  ul.ban-a li { margin: 0 4px 8px; }

  /* ---- 12. 页面级版块一律封顶到容器宽 --------------------------------
     上面第 11 条是"点名"修法；这条是兜底的通则，因为有一批版块根本点不了名：
     /fangzhapianhuzhuji/ 的元凶是
       <div style="width: 1000px;margin:0 auto;"> … <video width="488"> …
     —— **既没有 class 也没有 id**，宽度写死在 style 属性里。
     类选择器挂不上，属性选择器又要逐页去数，不如按结构来：
     「.lv-body-flat 的直接子元素＝页面级版块」，它们不该宽过页面。

     ★ 用 max-width 而不是 width：
       max-width 只封顶、不拉伸 —— 窄于容器的版块保持原宽，宽的才收到容器宽。
       写 width:100% 会把所有版块统统拉满，那是另一回事。
     ★ max-width:100% !important 压得住内联的 width:NNNpx：
       只有"width 带 !important 而 max-width 不带"时 max-width 才会失效，反过来则 max-width 赢。
     ★★ min-width 必须也带 !important —— 这是本条唯一踩过的坑：
       一开始写成 `min-width: 0`（不带 !important），在 /zhihuidangjian/ 上完全不起作用，
       因为那边是 `#banner{width:100%;min-width:1120px}` —— **ID 选择器（1,0,0）**
       压过本条（0,2,2）。而 min-width 在 CSS 里是"封底"的：
       max-width 就算赢了，**min-width 优先级仍高于 max-width**，宽度照样被顶到 1120。
       实测：加了 !important 之后 #banner / #main02 / #main04 / #main06 才真的收到容器宽。
     ★ 不给 table 加 max-width：套餐页那些 1000px 价格表应该"版块内横滑"，
       被压成 320 会把每列挤成豆腐块，反而更难读。 */
  body.lv-v3 .lv-body-flat > * { max-width: 100% !important; min-width: 0 !important; }
  /* 版块收窄了，里面的媒体得跟着收，否则图片/视频照旧顶破。
     video/iframe 必须一起改 height:auto —— 它们带 HTML 的 height 属性，
     只压宽度会把人像拉变形。
     ★ 这里的 min-width:0 !important 也不是装饰：
       /APPjianshe/ 的 app.css 写着 `.banner_top img{width:100%;min-width:1060px}`，
       而 img 是本条第一句（`> *`）的**孙元素**，够不着 —— 那张 1920×697 的横幅
       在 320 屏上被硬撑到 1060px，右边 740px 全在屏幕外。 */
  body.lv-v3 .lv-body-flat img { max-width: 100%; min-width: 0 !important; }
  body.lv-v3 .lv-body-flat video,
  body.lv-v3 .lv-body-flat iframe { max-width: 100%; height: auto; min-width: 0 !important; }

  /* ---- 13. app.css 的「左右定宽双栏」版式（/APPjianshe/）---------------
     app.css 只被这一页引用（theme.js 里 APPjianshe 单独挂的）。
     整页是「左列 700px 文字 + 右列 460px 配图，外框 .Weby_conNN 1200px」，
     末尾再叠一段「中央 430px 圆形插图 + 四角 hover 气泡」的图形（.Weby_man05）。

     320 屏实测（改造前）：
       · .Weby_left01_co 文字列 680px 宽，屏幕只看得见前 290px —— 每行都被腰斩；
       · .Weby_right01 配图列被挤到 x=-170，整块看不见；
       · 整页靠兜底层横滑 740px，而兜底层横滑是"最后手段"，不算改好了。

     ★ 改法：左右列改上下堆叠（float:none + width:auto），文字随容器自动折行。
     ★ .Weby_man05 只保留中央那张圆形插图（等比缩到 280px 居中），
       四个 hover 装饰气泡和贯穿的 1px 竖线隐掉 —— 它们对应的四张文字卡
       （.Weby_left05_c/_c2、.Weby_right05_c/_c2）在下面仍然逐条列着，
       信息一条没少，丢的只是那圈装饰。
     ★ 四张文字卡原本是"右列右对齐、左列左对齐"贴着中间图形排的，
       堆叠后一律左对齐、满宽。 */
  body.lv-v3 .lv-body-flat .Weby_con01,
  body.lv-v3 .lv-body-flat .Weby_con02,
  body.lv-v3 .lv-body-flat .Weby_con03,
  body.lv-v3 .lv-body-flat .Weby_con04,
  body.lv-v3 .lv-body-flat .Weby_con05 {
    width: 100% !important; max-width: 100%; overflow: visible !important;
    padding: 0 16px; box-sizing: border-box;
  }
  /* ★ 外框的定高必须一起放掉：.Weby01{height:305px} / .Weby02{height:300px}
     （.Weby02 那句还写在页面 HTML 的内联 style 里，非 !important 压不住）。
     文字列一折行内容就变高，外框不放高 = 内容被就地切掉 —— 这正是
     "整页不横滑了、但内容被静默裁了"的典型形态，只看滚动条是发现不了的。 */
  body.lv-v3 .lv-body-flat .Weby01,
  body.lv-v3 .lv-body-flat .Weby02,
  body.lv-v3 .lv-body-flat .Weby05 { height: auto !important; }
  body.lv-v3 .lv-body-flat .Weby_left01,
  body.lv-v3 .lv-body-flat .Weby_right01,
  body.lv-v3 .lv-body-flat .Weby_left02,
  body.lv-v3 .lv-body-flat .Weby_right02,
  body.lv-v3 .lv-body-flat .Weby_left03,
  body.lv-v3 .lv-body-flat .Weby_right03,
  body.lv-v3 .lv-body-flat .Weby_left05,
  body.lv-v3 .lv-body-flat .Weby_right05 {
    float: none !important; width: auto !important; max-width: 100%;
    position: static !important; margin: 0 auto !important;
    left: auto !important; right: auto !important; top: auto !important;
  }
  /* 版块二是左右镜像（图在左、字在右）。堆叠后统一成「字在上、图在下」更好读 */
  body.lv-v3 .lv-body-flat .Weby_con02 { display: flex; flex-direction: column; }
  body.lv-v3 .lv-body-flat .Weby_left02 { order: 2; }
  body.lv-v3 .lv-body-flat .Weby_right02 { order: 1; }

  /* 标题里的编号是 41px/50px 的巨字。窄屏上它和后面的说明文字会挤在同一行，
     总宽 296px 刚好越过 288px 的行宽 —— 于是断在"建设需 / 求？"。
     改成 display:block + fit-content：编号独占一行（下划线仍只跟到文字宽度），
     说明另起一行，不再出现把一个词组劈开的断法。 */
  body.lv-v3 .lv-body-flat .Weby_left01 .Weby_left01_bt,
  body.lv-v3 .lv-body-flat .Weby_right02 .Weby_right02_bt {
    margin-bottom: 20px; height: auto; font-size: 20px; line-height: 34px;
  }
  body.lv-v3 .lv-body-flat .Weby_left01 .Weby_left01_bt span,
  body.lv-v3 .lv-body-flat .Weby_right02 .Weby_right02_bt span {
    float: none; display: block; width: fit-content;
    height: auto; min-height: 0;
    font-size: 28px; line-height: 42px; padding: 0 2px 4px;
  }
  body.lv-v3 .lv-body-flat .Weby_left01 .Weby_left01_co,
  body.lv-v3 .lv-body-flat .Weby_left03 .Weby_left03_co,
  body.lv-v3 .lv-body-flat .Weby_right02 .Weby_right02_co {
    width: auto !important; margin: 0 !important;
  }
  body.lv-v3 .lv-body-flat .Weby_right01,
  body.lv-v3 .lv-body-flat .Weby_left02 { text-align: center; }

  /* .home-main-wrap / .process：747px 定高 + 1920×747 居中背景图，
     而里面只有一行标题加两段说明 —— 窄屏下那 747px 全是空场。 */
  body.lv-v3 .lv-body-flat .home-main-wrap,
  body.lv-v3 .lv-body-flat .process { height: auto !important; min-height: 0 !important; }
  body.lv-v3 .lv-body-flat .home-main-wrap {
    background-size: cover; background-position: center top;
    padding: 36px 16px 44px; box-sizing: border-box;
  }
  body.lv-v3 .lv-body-flat .process .process-wrap { padding-top: 0 !important; }
  body.lv-v3 .lv-body-flat .process .process-wrap .title-top { margin-bottom: 16px; }
  body.lv-v3 .lv-body-flat .process .process-wrap .title-top .title-con,
  body.lv-v3 .lv-body-flat .process .process-wrap .title-top .title-con .title-btn {
    width: auto !important; max-width: 100%;
  }
  body.lv-v3 .lv-body-flat .process .process-wrap .title-top .title-con h2 a { font-size: 26px; }

  /* .Weby05 的图形底座：470px 宽、子元素全靠绝对定位（圆盘 + 4 个 hover 气泡） */
  body.lv-v3 .lv-body-flat .Weby05 { height: auto !important; }
  body.lv-v3 .lv-body-flat .Weby_man05 {
    float: none !important; width: 100% !important; max-width: 100%;
    position: static !important; margin: 0 auto !important; padding: 22px 0;
  }
  body.lv-v3 .lv-body-flat .Weby_man05_x,
  body.lv-v3 .lv-body-flat .Weby_man05_x1,
  body.lv-v3 .lv-body-flat .Weby_man05_x2,
  body.lv-v3 .lv-body-flat .Weby_man05_x3,
  body.lv-v3 .lv-body-flat .Weby_man05_x4 { display: none !important; }
  body.lv-v3 .lv-body-flat .Weby_man05_c {
    position: static !important; width: 100% !important; max-width: 280px;
    height: auto !important; aspect-ratio: 1 / 1;
    border-radius: 50%; margin: 0 auto !important; box-sizing: border-box;
  }
  body.lv-v3 .lv-body-flat .Weby_man05_c img {
    display: block; width: 100% !important; height: 100% !important;
    object-fit: contain; margin: 0 !important;
  }
  body.lv-v3 .lv-body-flat .Weby_left05_c,
  body.lv-v3 .lv-body-flat .Weby_left05_c2,
  body.lv-v3 .lv-body-flat .Weby_right05_c,
  body.lv-v3 .lv-body-flat .Weby_right05_c2 { margin: 0 0 18px !important; }
  body.lv-v3 .lv-body-flat .Weby_left05_c h2,
  body.lv-v3 .lv-body-flat .Weby_left05_c2 h2,
  body.lv-v3 .lv-body-flat .Weby_right05_c h2,
  body.lv-v3 .lv-body-flat .Weby_right05_c2 h2 { text-align: left !important; margin: 0 !important; }
  body.lv-v3 .lv-body-flat .Weby_left05_c p,
  body.lv-v3 .lv-body-flat .Weby_left05_c2 p,
  body.lv-v3 .lv-body-flat .Weby_right05_c p,
  body.lv-v3 .lv-body-flat .Weby_right05_c2 p {
    width: auto !important; max-width: 100%; height: auto !important;
    text-align: left !important; box-sizing: border-box; padding: 10px 14px !important;
  }

  /* ---- 14. css.css 的 1120px PC 版式（/zhihuidangjian/）-----------------
     这一页的版式独享 theme/default/css.css：每个版块都是
       width:100% + min-width:1120px，内部再按 1070px 画三列。
     min-width 是这一页真正的病根（第 12 段里有详述）：ID 选择器 + min-width 封底，
     压 max-width 那一招在这里打不动。
     内部三列（.gn01/.gn02 380px、.cpld 320px、.syjz .con 320px、.syqt .con 320px）
     则改成上下堆叠；#main05 那圈「党员24小时」的绝对定位标签改成顺排列表。

     ★ 只作用于 #banner / #mainNN 这些 ID —— 已核过全库：
       这些 ID 只出现在「智慧党建」这一篇 content 里，别的页面没有。 */
  body.lv-v3 .lv-body-flat #banner,
  body.lv-v3 .lv-body-flat #main01,
  body.lv-v3 .lv-body-flat #main02,
  body.lv-v3 .lv-body-flat #main03,
  body.lv-v3 .lv-body-flat #main04,
  body.lv-v3 .lv-body-flat #main05,
  body.lv-v3 .lv-body-flat #main06 {
    width: 100% !important; min-width: 0 !important; max-width: 100% !important;
    box-sizing: border-box;
  }
  body.lv-v3 .lv-body-flat #main01,
  body.lv-v3 .lv-body-flat #main02,
  body.lv-v3 .lv-body-flat #main03,
  body.lv-v3 .lv-body-flat #main04,
  body.lv-v3 .lv-body-flat #main05,
  body.lv-v3 .lv-body-flat #main06 {
    height: auto !important; padding: 0 16px !important; position: static !important;
  }
  body.lv-v3 .lv-body-flat #main02 .con,
  body.lv-v3 .lv-body-flat #main04 .syjz,
  body.lv-v3 .lv-body-flat #main06 .syqt,
  body.lv-v3 .lv-body-flat #main03 > div { width: 100% !important; padding: 0 !important; }

  /* 轮播：#banner 高 550px、背景 1920×550，文案块 .bt01(700px)/.bt02(1000px) 定宽居中 */
  body.lv-v3 .lv-body-flat #banner { height: 420px !important; background-size: cover; }
  body.lv-v3 .lv-body-flat #banner .pics,
  body.lv-v3 .lv-body-flat #banner .pics li { height: 100% !important; }
  body.lv-v3 .lv-body-flat #banner .bt01,
  body.lv-v3 .lv-body-flat #banner .bt02 {
    width: auto !important; height: auto !important; max-width: 100%;
    margin: 88px 16px 0 !important; box-sizing: border-box;
  }
  body.lv-v3 .lv-body-flat #banner .bt01 { min-height: 150px; }
  /* .conbg 是那块半透明白底：原来是 static 垫在 absolute 的 .con 下面。
     窄屏文字要跟着换行，得把顺序翻过来 —— .con 回到文档流（撑起 .bt01 的高度），
     .conbg 改成绝对定位铺满。z-index 必须补，否则定位元素会盖住文字。 */
  body.lv-v3 .lv-body-flat #banner .bt01 .con {
    position: relative !important; z-index: 2 !important;
    width: 100% !important; height: auto !important;
    box-sizing: border-box; padding: 0 12px;
  }
  body.lv-v3 .lv-body-flat #banner .bt01 .conbg {
    position: absolute !important; top: 0; left: 0; z-index: 1 !important;
    width: 100% !important; height: 100% !important;
  }
  body.lv-v3 .lv-body-flat #banner .bt01 h3 { font-size: 24px; padding: 22px 0 16px; }
  body.lv-v3 .lv-body-flat #banner .bt01 p { font-size: 16px; padding-bottom: 20px; }
  body.lv-v3 .lv-body-flat #banner .bt02 h3 { font-size: 22px; }
  body.lv-v3 .lv-body-flat #banner .bt02 p { font-size: 16px; padding-top: 12px; }
  /* 左右箭头平时停在 ±50px（屏幕外），靠 :hover 才滑进来 ——
     触摸设备永远不会 hover，等于没有。直接钉在两侧可见位置。 */
  body.lv-v3 .lv-body-flat #banner .btns .prev { left: 4px !important; }
  body.lv-v3 .lv-body-flat #banner .btns .next { right: 4px !important; }

  /* 「主要功能」两列 380px 卡片 → 上下堆叠。
     padding-left:120px 原本是给 100×100 的功能图标（images/gn0*.gif）留位。
     窄屏只剩 288px，再挖掉 120px 给图标，正文行宽就只剩 168px，一屏铺不下几个字，
     所以把图标挪到卡片上方（靠左），文字占满宽 —— 图标本身照常显示。 */
  body.lv-v3 .lv-body-flat #main02 .con .gn01,
  body.lv-v3 .lv-body-flat #main02 .con .gn02 {
    float: none !important; width: auto !important; max-width: 100%;
    margin: 0 0 26px !important;
    padding: 118px 0 0 !important;
    background-position: left top !important;
    background-repeat: no-repeat !important;
    background-size: 100px auto !important;
  }
  /* 板块标题的两级字号（page-zhihuidangjian.css 里 h2 是 30px，
     #main01 h1 也是 30px），320 屏上一行放不下会断成孤字。 */
  body.lv-v3 .lv-body-flat #main01 h1,
  body.lv-v3 .lv-body-flat #main02 h2,
  body.lv-v3 .lv-body-flat #main03 h2,
  body.lv-v3 .lv-body-flat #main04 h2,
  body.lv-v3 .lv-body-flat #main05 h2,
  body.lv-v3 .lv-body-flat #main06 h2 { font-size: 22px; padding: 28px 0 18px; }
  /* 产品亮点 / 使用价值 / 适用群体：三张 320px 卡 + 左右 55px 间距
     （间距是内联 style="margin:0 55px"，非 !important 压不住） */
  body.lv-v3 .lv-body-flat #main03 .cpld,
  body.lv-v3 .lv-body-flat #main04 .syjz .con,
  body.lv-v3 .lv-body-flat #main06 .syqt .con {
    float: none !important; width: auto !important; max-width: 100%;
    height: auto !important; margin: 0 0 20px !important; box-sizing: border-box;
  }
  body.lv-v3 .lv-body-flat #main04 .syjz .con { padding: 22px 0 26px; }
  body.lv-v3 .lv-body-flat #main03 .cpld h3,
  body.lv-v3 .lv-body-flat #main04 .syjz .con h3,
  body.lv-v3 .lv-body-flat #main06 .syqt .con h3 { font-size: 21px; }

  /* 「党员24小时」：525×509 的表盘 + 11 条绕着它绝对定位的标签
     （.dw1 到 .dw11，坐标都是 800px 画布上的绝对值）。
     窄屏把表盘缩到容器宽，标签改成顺排列表 —— 顺序本来就是时间序，列表反而更好读。 */
  body.lv-v3 .lv-body-flat #main05 .h24 { padding-top: 22px; }
  body.lv-v3 .lv-body-flat #main05 .h24 img { max-width: 100%; height: auto; }
  body.lv-v3 .lv-body-flat #main05 .con {
    position: static !important; width: auto !important; max-width: 100%;
    border-left: 2px solid var(--lv-red); padding: 2px 0 2px 12px;
    margin: 12px 0 !important; text-align: left !important;
    background: none !important;
  }
}

/* ==========================================================================
   ≤768px
   ========================================================================== */
@media screen and (max-width: 768px) {
  /* 页头 */
  .header { height: auto; padding-bottom: 10px; }
  .logo.disBlock img { width: 210px !important; height: auto !important; }
  .logo.disBlock h1, .logo.disBlock h2 { font-size: 14px; line-height: 20px; padding: 0 12px; }
  .logo.disBlock h1 span, .logo.disBlock h2 span { display: block; font-size: 12px; }

  /* 面包屑与正文 */
  .position .p_w { font-size: 12px; line-height: 20px; }
  .position .p_w a { white-space: normal; }
  .maincont h1.green { font-size: 19px; line-height: 28px; }
  .maincont p.explain { font-size: 12px; line-height: 20px; }
  .Zoom { font-size: 15px; line-height: 26px; }
  .Zoom img { width: auto !important; }
  .Zoom table { display: block; overflow-x: auto; }

  /* 首页套餐卡片：缩小 */
  .s1 a, .s2 a, .s3 a, .s4 a { width: 165px !important; height: 110px !important; padding: 88px 0 0 14px !important; background-size: cover !important; font-size: 13px; }
  .s1, .s2, .s3, .s4 { margin: 0 4px 10px 4px; }

  /* 服务 tabs：两列 */
  .mian.tab .c1.hd ul li { width: 50%; }

  /* 优势：单列 */
  .a4 .mian ul li { width: 100% !important; }

  /* 页脚：两列 */
  .foot ul.list1, .foot ul.list2 { width: 50%; margin-bottom: 12px; }
  .bot_gn li { width: 33.33%; }

  /* 列表页 */
  .news_pic_list .l_list a { font-size: 15px; line-height: 22px; }
  .news_pic_list .l_list p { font-size: 13px; line-height: 22px; }
  .list_page li { margin: 2px; }
  .list_page li a { padding: 4px 8px; font-size: 13px; }

  /* 案例：单列 */
  .caseList li { width: 100%; padding: 10px; }

  /* 业务区块 */
  .contain ul.ban-a { display: flex; flex-wrap: wrap; }
  .contain ul.ban-a li { width: 50%; box-sizing: border-box; }

  /* 客服条再缩 */
  .swt_main .swt_right { transform: scale(.7); }
}

/* ==========================================================================
   ≤480px
   ========================================================================== */
@media screen and (max-width: 480px) {
  .logo.disBlock img { width: 170px !important; }
  .s1 a, .s2 a, .s3 a, .s4 a { width: 100% !important; box-sizing: border-box; }
  .s1, .s2, .s3, .s4 { width: 100%; margin: 0 0 10px 0; }
  .mian.tab .c1.hd ul li { width: 100%; }
  .foot ul.list1, .foot ul.list2 { width: 100%; }
  .bot_gn li { width: 50%; }
  .contain ul.ban-a li { width: 100%; }
  .swt_main { display: none; }
}

/* 触摸设备：二级菜单点击展开 */
@media (hover: none) {
  .jb_nav_z ul li:hover .sub { display: block; }

  /* 案例卡（.a5）的标题条：原站靠 :hover 把它从卡片下沿滑进来
     （a{position:absolute; bottom:-68px} → :hover 时 bottom:0，被 li 的 overflow:hidden 裁着）。
     触摸设备压根没有 hover 事件，结果卡片只剩一张图片，案例名一个都看不到。
     直接钉在底部 —— 等价于「永远处于 hover 态」。 */
  .sub_exploit .a5 .mian ul li a { bottom: 0 !important; }
}
