@charset "utf-8";
/* ==========================================================================
   home-merge.css —— 首页 × 公司介绍页（/sm/）融合样式（自动生成，勿手改）
   --------------------------------------------------------------------------
   来源：root/simiaocms/sm/index.html 的内联 <style>（版本：2026-10-03）
   生成：temp/scope_home_merge.py
   加载：header.html / index.html 中 theme-v2.css 之后（style.css -> theme-v2.css -> 本文件）
   作用域：全部选择器加 #smHome 前缀。首页新增内容包在 <div id="smHome"> 内，
           sm 的 :root 变量、h2/section/footer 等元素选择器因此不会外泄到
           style.css / theme-v2.css 管着的菜单、幻灯片、新闻等区块。
   已剔除（首页走 CMS 自己的实现）：阅读进度条 / 顶部导航 / hero / 统计数字 /
           页脚 / 返回顶部 / 相关 @keyframes。
   ========================================================================== */

#smHome{--ink:#0b1a2b;
    --ink-2:#132b45;
    --body:#243b53;
    --muted:#5b7189;
    --line:#e3e8ef;
    --line-bg:var(--line);   
    --bg:#f5fffa;   
    --card:#ffffff;

    
    --brand:#059e53;
    --brand-l:#d9f6e0;
    --accent:#059e53;

    
    --deep:#059e53;
    --deep-2:#28843e;

    
    /* 2026-10-04 服务客户 logo 墙改白卡（--wall/--wall-hi/--wall-line 品牌绿卡变量已废弃） */

    --c1:#309c48;   
    --c2:#0e8a78;   
    --c3:#b8761d;   
    --c4:#2b6fb5;   

    --radius:16px;
    
    --shadow-sm:0 1px 2px rgba(11,26,43,.04), 0 2px 10px -2px rgba(11,26,43,.06);
    --shadow-md:0 2px 6px -1px rgba(11,26,43,.06), 0 14px 32px -10px rgba(11,26,43,.15);
    --shadow-lg:0 8px 18px -8px rgba(11,26,43,.10), 0 32px 64px -16px rgba(11,26,43,.20);
    --hairline:inset 0 1px 0 rgba(255,255,255,.72);
    --ease:cubic-bezier(.2,.7,.3,1);
    --maxw:1120px;}
#smHome *{box-sizing:border-box;}
#smHome{margin:0;
    background:var(--bg);
    color:var(--body);
    font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Source Han Sans SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    font-size:16px;
    line-height:1.9;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;}
#smHome .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
@media (max-width:1120px){#smHome section, #smHome #cases{scroll-margin-top:116px;}}
#smHome section{padding:64px 0;scroll-margin-top:76px;}
#smHome #cases{scroll-margin-top:76px;}
#smHome .sec-head{margin-bottom:40px;}
#smHome .sec-num{display:inline-flex;align-items:center;gap:10px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:12.5px;letter-spacing:.26em;color:var(--accent);
    margin-bottom:14px;}
#smHome .sec-num::before{content:"";width:20px;height:1px;background:currentColor;opacity:.6;}
#smHome .sec-head{position:relative;}
#smHome .sec-wm{position:absolute;right:0;top:-36px;
    font-family:Georgia,"Times New Roman",serif;font-weight:700;
    font-size:clamp(70px,8.2vw,104px);line-height:1;letter-spacing:-.03em;
    color:color-mix(in srgb,var(--accent) 9%,transparent);
    pointer-events:none;user-select:none;-webkit-user-select:none;}
@media (max-width:820px){#smHome .sec-wm{display:none;}}
#smHome h2{margin:0 0 16px;
    font-size:clamp(23px,2.7vw,32px);
    line-height:1.4;letter-spacing:.03em;color:var(--ink);font-weight:700;
    text-wrap:balance;}
#smHome h2::after{content:"";display:block;width:58px;height:3px;border-radius:2px;
    background:linear-gradient(90deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 34%,transparent) 100%);
    margin-top:20px;}
#smHome .lead{margin:0;
    padding:22px 26px;
    background:linear-gradient(180deg,rgba(48,156,72,.060),rgba(48,156,72,.025));
    border-left:3px solid var(--accent);
    border-radius:0 12px 12px 0;
    color:var(--ink-2);font-size:16.5px;line-height:1.95;font-weight:500;}
#smHome .prose{max-width:920px;}
#smHome .prose p{margin:0 0 20px;text-wrap:pretty;}
#smHome .prose p:last-child{margin-bottom:0;}
#smHome .prose strong{color:var(--ink);font-weight:600;}
#smHome .hl{color:var(--ink);font-weight:600;
    background:linear-gradient(180deg,transparent 62%,rgba(48,156,72,.20) 62%);}
#smHome .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:34px 0 22px;}
#smHome .pillar{position:relative;overflow:hidden;
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:24px 20px 22px;
    box-shadow:var(--hairline), var(--shadow-sm);
    transition:transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .28s, border-color .28s;}
#smHome .pillar::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ac);}
#smHome .pillar:hover{transform:translateY(-4px);box-shadow:var(--hairline), 0 16px 36px -12px rgba(11,26,43,.20);border-color:color-mix(in srgb,var(--ac) 34%, transparent);}
#smHome .pillar::after{content:attr(data-n);
    position:absolute;right:16px;top:15px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:11.5px;font-weight:700;letter-spacing:.06em;
    color:var(--ac);opacity:.34;
    transition:opacity .28s;}
#smHome .pillar:hover::after{opacity:.74;}
#smHome .pillar b{display:block;font-size:17px;color:var(--ink);font-weight:700;letter-spacing:.06em;}
#smHome .pillar i{display:block;font-style:normal;margin-top:8px;font-size:15px;color:var(--ac);font-weight:600;letter-spacing:.06em;}
#smHome .pillar p{margin:10px 0 0;font-size:13.5px;line-height:1.85;color:var(--muted);}
@media (max-width:900px){#smHome .pillars{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){#smHome .pillars{grid-template-columns:1fr;}}
#smHome .platform{position:relative;overflow:hidden;
    display:grid;grid-template-columns:1.25fr 1fr;gap:34px;align-items:center;
    background:linear-gradient(135deg,#17a95f 0%,#059e53 52%,#048847 100%);
    border-radius:20px;padding:38px 40px;color:#fff;
    box-shadow:0 20px 50px rgba(9,40,24,.26);}
#smHome .platform::before{content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(720px 300px at 90% -24%,rgba(255,255,255,.20) 0%,rgba(255,255,255,0) 62%);}
#smHome .platform > *{position:relative;z-index:1;}
#smHome .platform h3{margin:0 0 8px;font-size:21px;color:#fff;font-weight:700;letter-spacing:.03em;}
#smHome .platform h3 span{color:var(--brand-l);font-size:15px;letter-spacing:.08em;font-weight:600;}
#smHome .platform p{margin:0;font-size:15px;line-height:1.95;color:rgba(255,255,255,.92);}
#smHome .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
#smHome .chips span{font-size:12.5px;color:#e7f2ea;
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.32);
    padding:5px 12px;border-radius:999px;
    transition:background .24s, border-color .24s, transform .24s var(--ease);}
#smHome .chips span:hover{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.52);transform:translateY(-1px);}
#smHome .chips span.k{background:rgba(255,255,255,.30);border-color:rgba(255,255,255,.58);color:#fff;}
#smHome .rules{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
#smHome .rule{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
    border-radius:12px;padding:14px 16px;}
#smHome .rule b{display:flex;align-items:center;gap:9px;color:#fff;font-size:15px;font-weight:600;letter-spacing:.04em;}
#smHome .rule b::before{content:"";flex:none;width:13px;height:7px;
    border-left:2px solid var(--brand-l);border-bottom:2px solid var(--brand-l);
    transform:rotate(-45deg) translate(1px,-3px);}
#smHome .rule i{display:block;font-style:normal;font-size:12.5px;color:rgba(255,255,255,.86);margin-top:3px;}
@media (max-width:880px){#smHome .platform{grid-template-columns:1fr;padding:30px 24px;gap:26px;}}
#smHome .domain{background:#fff;border-top:1px solid var(--line-bg);
    border-image:linear-gradient(90deg,transparent 0,var(--line-bg) 14%,var(--line-bg) 86%,transparent 100%) 1;}
#smHome .domain:nth-of-type(even){background:var(--bg);}
#smHome #about, #smHome #history, #smHome #platform, #smHome .cases-sec, #smHome .domain:nth-of-type(even){--line:#dde5ef;--line-bg:#93d9b4;}
#smHome .domain .sec-num, #smHome .domain h2::after{color:var(--accent);}
#smHome .domain h2::after{background:var(--accent);}
#smHome .domain .lead{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent);
    border-left-color:var(--accent);}
#smHome .domain .prose strong, #smHome .domain .hl{color:var(--ink);}
#smHome .domain .hl{background:linear-gradient(180deg,transparent 62%,color-mix(in srgb,var(--accent) 18%,transparent) 62%);}
@media (max-width:620px){#smHome .prose-list p{padding-top:14px;border-top:1px solid var(--line-bg);margin-bottom:14px;}
#smHome .prose-list p:first-child{border-top:0;padding-top:0;}
#smHome .prose-list strong{display:block;font-size:15px;font-weight:700;color:var(--accent);margin-bottom:5px;letter-spacing:.02em;}}
#smHome .svc-title{display:flex;align-items:center;gap:14px;
    margin:38px 0 20px;
    font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.14em;}
#smHome .svc-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-bg) 0%,transparent 100%);}
#smHome .svc-title em{font-style:normal;font-size:12px;font-weight:600;letter-spacing:.05em;
    color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);
    padding:3px 10px;border-radius:999px;}
#smHome .services{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
#smHome .svc{position:relative;
    background:var(--card);border:1px solid var(--line);border-radius:14px;
    padding:20px 22px 20px 24px;
    border-radius:var(--radius);box-shadow:var(--hairline), var(--shadow-sm);
    transition:transform .26s cubic-bezier(.2,.7,.3,1), box-shadow .26s, border-color .26s;}
#smHome .svc::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;
    background:var(--accent);opacity:.85;transform:scaleY(.55);transform-origin:top;
    transition:transform .3s cubic-bezier(.2,.7,.3,1), opacity .3s;}
#smHome .svc:hover{transform:translateY(-3px);box-shadow:var(--hairline), 0 14px 32px -12px rgba(11,26,43,.20);border-color:color-mix(in srgb,var(--accent) 34%, transparent);}
#smHome .svc:hover::before{transform:scaleY(1);opacity:1;}
#smHome .svc::after{content:attr(data-n);
    position:absolute;right:18px;top:15px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:12px;font-weight:700;letter-spacing:.05em;
    color:var(--accent);opacity:.20;
    transition:opacity .26s;}
#smHome .svc:hover::after{opacity:.52;}
#smHome .svc b{display:block;font-size:16.5px;color:var(--ink);font-weight:700;letter-spacing:.04em;margin-bottom:7px;transition:color .26s;}
#smHome .svc:hover b{color:var(--accent);}
#smHome .svc p{margin:0;font-size:14.5px;line-height:1.85;color:var(--muted);}
@media (max-width:820px){#smHome .services{grid-template-columns:1fr;}}
@media (max-width:620px){#smHome .services{grid-template-columns:1fr;gap:7px;}
#smHome .svc{padding:11px 13px 11px 16px;}
#smHome .svc b{font-size:14.5px;}
#smHome .svc p{font-size:12.5px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
#smHome .svc::after{right:12px;top:11px;}}
#smHome #company{background:#fff;}
#smHome .multi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px;}
#smHome .multi-item{position:relative;
    background:var(--card);border:1px solid var(--line);border-radius:14px;
    padding:20px 18px 18px 22px;border-radius:var(--radius);box-shadow:var(--hairline), var(--shadow-sm);
    transition:transform .26s var(--ease), box-shadow .26s, border-color .26s;}
#smHome .multi-item::before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;border-radius:3px;
    background:var(--brand);opacity:.82;}
#smHome .multi-item:hover{transform:translateY(-3px);box-shadow:var(--hairline), 0 14px 32px -12px rgba(11,26,43,.20);border-color:color-mix(in srgb,var(--brand) 34%, transparent);}
#smHome .multi-item b{display:block;font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.04em;}
#smHome .multi-item i{display:block;margin-top:8px;font-style:normal;font-size:13.5px;color:var(--muted);line-height:1.8;}
@media (max-width:900px){#smHome .multi{grid-template-columns:repeat(2,1fr);gap:12px;}}
@media (max-width:520px){#smHome .multi{grid-template-columns:1fr;}}
#smHome .tl{margin-top:36px;}
#smHome .tl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;position:relative;}
#smHome .tl-grid::before{content:"";position:absolute;left:5px;top:9px;height:1px;
    width:calc((100% - 84px) / 7 * 6 + 89px);
    background:linear-gradient(90deg,rgba(5,158,83,.30) 0%,rgba(5,158,83,.62) 100%);}
#smHome .tl-item{position:relative;padding-top:30px;}
#smHome .tl-item::before{content:"";position:absolute;left:0;top:4px;width:11px;height:11px;border-radius:50%;
    background:#fff;border:2px solid var(--brand);
    box-shadow:0 0 0 4px rgba(5,158,83,.10);}
#smHome .tl-item:last-child::before{background:var(--brand);}
#smHome .tl-year{font-family:Georgia,"Times New Roman",serif;
    font-size:19px;font-weight:700;color:var(--brand);letter-spacing:.02em;
    font-variant-numeric:tabular-nums lining-nums;}
#smHome .tl-item b{display:block;margin-top:7px;font-size:14px;font-weight:700;color:var(--ink);line-height:1.5;}
#smHome .tl-item i{display:block;margin-top:4px;font-style:normal;font-size:12.5px;color:var(--muted);line-height:1.7;}
@media (max-width:1000px){#smHome .tl-grid{grid-template-columns:repeat(4,1fr);gap:18px 16px;}
#smHome .tl-grid::before{display:none;}}
@media (max-width:620px){#smHome .tl-grid{grid-template-columns:repeat(2,1fr);gap:16px 14px;}
#smHome .tl-item:last-child{grid-column:1/-1;}}
#smHome #certs{background:#fff;border-top:1px solid var(--line);}
#smHome .cases-sec{background:var(--bg);}
#smHome .cases-sec .wall-lead{color:#14532d;}
#smHome #about .sec-num, #smHome #history .sec-num, #smHome #history .tl-year{color:#14532d;}
#smHome #d2 .sec-num{color:#0b5348;}
#smHome #d4 .sec-num{color:#14456f;}
#smHome #history .tl-item i{color:var(--body);}
#smHome .certs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px;}
#smHome .cert{display:block;text-decoration:none;overflow:hidden;
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--hairline), var(--shadow-sm);
    transition:transform .26s var(--ease), box-shadow .26s, border-color .26s;}
#smHome .cert:hover{transform:translateY(-4px);box-shadow:var(--hairline), 0 18px 40px -14px rgba(11,26,43,.22);border-color:rgba(5,158,83,.44);}
/* 栏目证照图有两种比例：1000×750（横，6 张）与 750×1000（竖，ICP / IDC·ISP 两张）。
   框统一 4:3 + object-fit:contain —— 横图正好铺满；竖图左右留底色，绝不用 cover 把证件边缘裁掉。
   底色取 #fff（与 #certs 白底板块、.cert 卡片本体 var(--card)=#fff 一致）：
   contain 留出的空边与卡片融为一体，观感就是"图直接放在白卡上"，不再有灰框感。 */
#smHome .cert-img{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;
    background:#fff;border-bottom:1px solid var(--line);}
#smHome .cert-img img{display:block;width:100%;height:100%;object-fit:contain;
    transition:transform .5s var(--ease);}
#smHome .cert:hover .cert-img img{transform:scale(1.04);}
#smHome .cert-body{display:block;padding:15px 17px 17px;}
#smHome .cert-body b{display:block;font-size:15px;font-weight:700;color:var(--ink);line-height:1.5;
    transition:color .26s;}
#smHome .cert:hover .cert-body b{color:var(--brand);}
#smHome .cert-body em{display:inline-block;margin-top:8px;font-style:normal;
    font-size:11.5px;letter-spacing:.08em;color:var(--brand);
    background:rgba(5,158,83,.08);border-radius:6px;padding:2px 9px;}
@media (max-width:900px){#smHome .certs{grid-template-columns:repeat(2,1fr);gap:14px;}}
@media (max-width:560px){#smHome .certs{grid-template-columns:1fr;}}
@media (max-width:620px){#smHome .certs{grid-template-columns:none;grid-auto-flow:column;
      grid-auto-columns:min(64%,272px);
      gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
      padding:2px 2px 12px;scrollbar-width:none;}
#smHome .certs::-webkit-scrollbar{display:none;}
#smHome .cert{scroll-snap-align:start;}}
#smHome .certs-note{margin-top:18px;font-size:13px;color:var(--muted);}
#smHome .wall-lead{margin-top:16px;font-size:14.5px;line-height:1.85;color:var(--muted);}
#smHome .wall-lead b{color:var(--ink);font-weight:700;letter-spacing:.02em;}
#smHome .logo-wall{display:grid;grid-template-columns:repeat(4,1fr);
    gap:12px;margin-top:18px;}
#smHome .logo-cell{display:block;position:relative;perspective:500px;overflow:visible;
    /* box-sizing 必须是 content-box（详见本节末尾的实测说明）：
       #smHome * 那一行把全站设成了 border-box，若沿用，aspect-ratio:2/1 会落在**边框盒**上，
       减掉左右各 1px 边框后可用区变成 2.0157:1，而 40 张 logo 全是精确 2:1 ——
       contain 只能按高度贴齐，左右各多出 1px 空白。
       改成 content-box 后 2:1 落在**可用区**上，logo 四边都贴到边框内沿。 */
    box-sizing:content-box;
    aspect-ratio:2 / 1;padding:0;
    /* 完全参照 /partners/（style_partner.css:1185-1196 的 .flipper）：
       该处未声明 background（卡片透明，透出页面底）、未声明 border-radius（直角）、
       无 box-shadow；border-color 也未声明，继承 body color，经 theme-v2 覆盖后即 #4a5a53。
       2026-10-04 追加：原为 padding:20px + 图片 max-width/max-height:100%，
       图片实际只占卡片约 2/3，四周留出 20px 空白（自带底色的图看着就是"浮"在框里的小白块）。
       /partners/ 那边 .front/.back 是 position:absolute + width/height:100%，
       参照 .flipper 的 padding box，20px 内边距实际不起作用 ——
       300×150 的 logo 最终渲染成 296×148，图基本顶到卡片边框。
       故这里同样把内边距清零、图片撑满整格：图片大小与 /partners/ 一致，
       自带底色的图（16 张白底 + yndl/gat）直接铺到边框、不再留空。
       2026-10-04 用户反馈第二轮：「图片的大小要和黑色边框一致」—— 即图片四边
       都要顶到那圈 1px 深灰绿（#4a5a53）边框的内沿：padding:0 + img 100%×100%
       已做到（框内不再有任何页面底色露出来）。
       注意：40 张素材全部是 2:1（300×150 或 1000×500），与卡片 2:1 完全吻合，
       故用 object-fit:contain 即可满铺、且不裁切图形（**不能改用 cover**：实测
       多张 logo 的图形本身就顶到画布边缘，cover 会切掉图形）。 */
    /* 2026-10-05 第二轮用户反馈：「参考对象翻转是带外框，你改的只是图片翻转，外框没跟着翻」。
       原因：旧版把 1px 黑框画在这个**不旋转**的格子上，翻转只发生在子元素 .flipper 上。
       改法：框改画在会旋转的 .front/.back 上（参考 /partners/：框在 .flipper 上，
       style_partner.css:1194 border-style:solid;border-width:1px）。
       这里的 border 只留 1px 宽度**占位**、颜色透明 —— 保证盒子尺寸与旧版逐像素一致
       （content-box + aspect-ratio:2/1 靠这 1px 撑出"内容区 2:1"），
       同时避免静止时出现"静止框 + 旋转框"两道边。
       配套：overflow 由 hidden 改 visible —— overflow 裁到 padding box，
       会把子元素画在外面的那圈 1px 边框整条裁掉（该兜底职责已搬到 .front/.back 上）。 */
    background:none;border:1px solid transparent;border-radius:0;}
/* ---- 翻面（2026-10-05 用户要求：复刻 /partners/ 的"鼠标指向翻面"）----
   结构（模板同步改造）：.logo-cell > .flipper > (.front + .back)，两面同一张图。
   规则与 style_partner.css 的 .flipper/.front/.back/:hover 同源：
     .flipper  preserve-3d + transition .6s，hover 时 rotateY(180deg)
     .front/.back  absolute + backface-visibility:hidden（只看得见朝向自己的那一面）
     .back  预转 rotateY(180deg)，翻过去正好正立
   配色按用户 10-05 选择：**默认彩色，翻到背面后呈灰**（延续 10-04 的"指向变灰"，
   只是把"渐变"换成"翻面"）；灰态取值与改前一致：grayscale(100%) + opacity:.5。
   实测（无头 Chrome 夹具 temp/flip-fixture.html）：overflow:hidden **不会**把子元素的
   preserve-3d 强平（grouping property 只作用于携带它的元素自身）→ 翻转终态确为
   rotateY(180deg)，卡片与图片尺寸与改前完全一致（335x168.5 / 图 333x166.5）。
   触屏/无悬停设备不触发 :hover → 永远停在正面（彩色），行为与改前一致。 */
#smHome .logo-cell .flipper{position:relative;width:100%;height:100%;
    transform-style:preserve-3d;transition:transform .6s var(--ease);}
#smHome .logo-cell:hover .flipper{transform:rotateY(180deg);}
#smHome .logo-cell .front,
#smHome .logo-cell .back{position:absolute;left:-1px;top:-1px;width:100%;height:100%;
    /* 黑框画在**会旋转的面**上 → 外框跟着图片一起翻。
       box-sizing:content-box 是关键：width/height:100% 只算**内容盒**（= 格子内容区，
       即旧版的图片区），1px 边框画在 100% 之外 → 边框盒 == 格子边框盒。
       ⚠ 必须再补 left/top:-1px：content-box 的边框是**加在右下**的，
       只写 left:0;top:0 会让边框盒整体右下偏 1px（实测 388x195@1,55 vs 格子 @0,54）；
       补 -1px 后边框盒与格子边框盒逐像素重合 → 图片大小/位置与旧版完全一致。
       overflow:hidden 从格子搬到这里：元素的 overflow **不裁自己的 border**，
       所以只裁图片内容（原来的"亚像素兜底"职责原样保留）。 */
    box-sizing:content-box;border:1px solid #4a5a53;overflow:hidden;
    backface-visibility:hidden;-webkit-backface-visibility:hidden;}
/* ⚠ 必须显式清零 filter/opacity：style.css:1228 的 `.front` 是**全局选择器**
   （原文只写 `.front`，没限定 `.flip-container`），内容是
   `filter:grayscale(100%); filter:gray; opacity:.2` —— 那是给 /partners/
   的"平时淡灰、翻面才显色"用的。我们的翻面结构一旦用了同名类 `front`，
   首页（会加载 style.css）就会继承这条规则 → **默认态被染成淡灰**
   （2026-10-05 用户反馈"默认变成灰色了"）。
   此处用带 ID 的选择器把 filter/opacity 显式打回正常值。
   注：`filter` 只在本元素上由 none 变 non-none 才会生成包含块，
   这里取 none，不影响 .front 自身在父级 3D 上下文里的定位。 */
#smHome .logo-cell .front{transform:rotateY(0deg);z-index:2;filter:none;opacity:1;}
#smHome .logo-cell .back{transform:rotateY(180deg);}
#smHome .logo-cell img{display:block;width:100%;height:100%;object-fit:contain;
    filter:grayscale(0);opacity:1;
    transition:filter .3s var(--ease),opacity .3s var(--ease);}
/* 背面即灰态：翻过去看到的就是"指到哪张、哪张变灰"（效果等价于改前的 hover 变灰） */
#smHome .logo-cell .back img{filter:grayscale(100%);opacity:.5;}
/* 说明：原「触屏设备常显彩色」的 @media (hover:none) 兜底已删除 ——
   默认态本身就是彩色，触屏下天然就是常显彩色，无需再兜底。 */
@media (max-width:900px){#smHome .logo-wall{grid-template-columns:repeat(4,1fr);gap:10px;}}
/* ≤560px：内边距已在上面统一清零（图片铺满），此处不再单独覆盖 padding */
@media (max-width:560px){#smHome .logo-wall{grid-template-columns:repeat(2,1fr);gap:8px;}}
#smHome .lb{position:fixed;inset:0;z-index:90;display:none;
    flex-direction:column;align-items:center;justify-content:center;gap:14px;
    padding:60px 24px 26px;
    background:rgba(9,20,32,.88);
    -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
#smHome .lb.on{display:flex;}
#smHome .lb-stage{display:flex;align-items:center;justify-content:center;
    max-width:min(1040px,100%);
    background:#fff;border-radius:12px;overflow:hidden;
    box-shadow:0 24px 60px rgba(0,0,0,.42);}
#smHome .lb-stage img{display:block;width:auto;height:auto;
    max-width:100%;max-height:calc(100vh - 178px);
    object-fit:contain;}
#smHome .lb-cap{max-width:min(1040px,100%);text-align:center;
    font-size:13.5px;color:rgba(255,255,255,.90);letter-spacing:.04em;}
#smHome .lb-close{position:absolute;right:20px;top:18px;
    width:44px;height:44px;border:0;border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.14);color:#fff;
    transition:background .2s, transform .2s var(--ease);}
#smHome .lb-close:hover{background:rgba(255,255,255,.28);transform:scale(1.06);}
body.lb-lock{overflow:hidden;}
@media (max-width:560px){#smHome .lb{padding:54px 12px 18px;gap:10px;}
#smHome .lb-close{right:12px;top:10px;width:40px;height:40px;}
#smHome .lb-stage img{max-height:calc(100vh - 150px);}}
.js #smHome .reveal{opacity:0;translate:0 22px;transition:opacity .7s cubic-bezier(.2,.7,.3,1), translate .7s cubic-bezier(.2,.7,.3,1);}
.js #smHome .reveal.in{opacity:1;translate:0 0;}
@keyframes cardIn{from{opacity:0;translate:0 16px;}to{opacity:1;translate:0 0;}}
.js #smHome .services.reveal.in > .svc, .js #smHome .certs.reveal.in > .cert, .js #smHome .pillars.reveal.in > .pillar, .js #smHome .multi.reveal.in > .multi-item, .js #smHome .logo-wall.reveal.in > .logo-cell{animation:cardIn .55s var(--ease) both;}
.js #smHome .reveal.in > :nth-child(2){animation-delay:.06s;}
.js #smHome .reveal.in > :nth-child(3){animation-delay:.12s;}
.js #smHome .reveal.in > :nth-child(4){animation-delay:.18s;}
.js #smHome .reveal.in > :nth-child(5){animation-delay:.24s;}
.js #smHome .reveal.in > :nth-child(n+6){animation-delay:.30s;}
@media (prefers-reduced-motion:reduce){.js #smHome .reveal, .js #smHome .reveal > *{opacity:1;transform:none;translate:none;transition:none;}
#smHome *, #smHome *::before, #smHome *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
      transition-duration:.001ms !important;transition-delay:0ms !important;}}
@media (max-width:760px){.js #smHome section, .js #smHome #cases{scroll-margin-top:78px;}}
@media (max-width:560px){#smHome .wrap{padding:0 16px;}}
@supports not (color: color-mix(in srgb, red, blue)){#smHome .sec-wm{color:rgba(48,156,72,.10);}
#smHome .svc-title em{background:rgba(48,156,72,.09);}
#smHome .domain .lead{background:linear-gradient(180deg,rgba(48,156,72,.06),transparent);}
#smHome .domain .hl{background:linear-gradient(180deg,transparent 62%,rgba(48,156,72,.18) 62%);}
#smHome .pillar:hover{border-color:rgba(48,156,72,.34);}
#smHome .svc:hover{border-color:rgba(48,156,72,.34);}
#smHome .multi-item:hover{border-color:rgba(48,156,72,.34);}}
@media print{#smHome{background:#fff;}
#smHome .sec-wm, #smHome .lb{display:none !important;}
#smHome .rule b::before{border-color:var(--accent);}
#smHome section{padding:22px 0;break-inside:avoid;}
#smHome .domain, #smHome .cases-sec{background:#fff;--line-bg:var(--line);}
#smHome .platform{background:#f2f5f9;color:var(--ink);box-shadow:none;}
#smHome .platform h3, #smHome .platform h3 span, #smHome .rule b, #smHome .chips span, #smHome .chips span.k{color:var(--ink);}
#smHome .platform p, #smHome .rule i{color:var(--body);}
#smHome .rule{background:#fff;border-color:var(--line);}
#smHome .chips span{background:#fff;border-color:var(--line);}
#smHome .reveal, .js #smHome .reveal, .js #smHome .reveal > *{opacity:1 !important;transform:none !important;translate:none !important;}
.js #smHome .reveal.in > *{animation:none !important;}}
/* --------------------------------------------------------------------------
   首页融合新增：领域区「核心业务」小标签 + 「查看该领域」入口
   （/sm/ 页把核心业务展开成 19 张描述卡；首页精简为名称标签 + 跳转入口）
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   首页融合新增：思妙简介（站点参数 sm_index_about 的正文 + /sm/ 口径的可核查数据条）
   左文右数据的双栏；≤880px 堆叠为单栏。
   -------------------------------------------------------------------------- */
#smHome .about-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:48px;align-items:stretch;}
#smHome .about-text{max-width:none;}
/* 数据条：单列 N 行，每行等分卡片高度（卡片被 stretch 拉到与正文等高），内容行内垂直居中 */
#smHome .about-stats{
  display:grid;grid-template-columns:1fr;grid-auto-rows:1fr;align-content:stretch;
  padding:6px 24px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--hairline), var(--shadow-sm);
}
#smHome .astat{display:flex;flex-direction:column;justify-content:center;padding:14px 2px;}
/* 窄屏以上：纵向排列的项之间加细分隔线 */
@media (min-width:881px){#smHome .astat + .astat{border-top:1px solid var(--line);}}
/* 「查看详情」：用 flex 容器消除行盒（line-box）带来的额外行距，按钮紧贴正文 */
#smHome .about-more{display:flex;margin-top:14px;}
#smHome .astat{padding:4px 2px;}
#smHome .astat b{
  display:flex;align-items:baseline;gap:5px;
  font-size:clamp(24px,2.6vw,32px);font-weight:700;color:var(--brand);
  line-height:1;letter-spacing:.01em;font-variant-numeric:tabular-nums lining-nums;
}
#smHome .astat b small{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.06em;}
#smHome .astat i{display:block;margin-top:9px;font-style:normal;font-size:12.5px;color:var(--muted);letter-spacing:.16em;}
@media (max-width:880px){
  #smHome .about-grid{grid-template-columns:1fr;gap:28px;align-items:start;}
  /* 窄屏改回 2 列，避免纵向多项把卡片拉得过高 */
  #smHome .about-stats{grid-template-columns:repeat(2,1fr);align-content:start;gap:16px 14px;padding:22px;}
}
@media (max-width:520px){#smHome .about-stats{gap:14px 10px;padding:18px;}}

/* --------------------------------------------------------------------------
   首页色带：**严格交替**，相邻区块必不同底色。
     A 带（浅绿 --bg）：#about / #platform / #d2 / #d4 / 新闻中心
     B 带（纯白 #fff）：#intro / #company / #d1 / #d3 / #certs / 服务客户
   为何加深浅绿：原 --bg = #f5fffa，与纯白肉眼几乎无差（ΔE≈1），等于"看不出交替"
   ——新闻中心与相邻区块看起来就是同一块。这里把 A 带加深一档。
   底色变深后，画在底色上的分隔线（--line-bg）A 带用更深的 #93d9b4，B 带用默认值。
   全部按 ID/类显式钉死：原 `.domain:nth-of-type(even)` 依赖 section 兄弟个数，
   首页增删区块会翻转奇偶（历史上已发生过一次）。
   -------------------------------------------------------------------------- */
#smHome{--bg:#eaf4ee;}
#smHome #intro{background:#fff;--line:#e3e8ef;--line-bg:#e3e8ef;}
#smHome #about, #smHome #platform{background:var(--bg);--line:#dde5ef;--line-bg:#93d9b4;}
#smHome #company{background:#fff;--line:#e3e8ef;--line-bg:#e3e8ef;}
#smHome #d1, #smHome #d3{background:#fff;--line:#e3e8ef;--line-bg:#e3e8ef;}
#smHome #d2, #smHome #d4{background:var(--bg);--line:#dde5ef;--line-bg:#93d9b4;}
#smHome #certs{background:#fff;--line:#e3e8ef;--line-bg:#e3e8ef;}
#smHome .PostBox.newsBg{background:var(--bg);--line:#dde5ef;--line-bg:#93d9b4;}
#smHome .cases-sec{background:#fff;--line:#e3e8ef;--line-bg:#e3e8ef;}

/* 证照弹层：/sm/ 页顶部导航 z-index 仅 60，故原 .lb 取 90 够用；
   融合页里 CMS 顶部导航 886 / 返回顶部 888 / 搜索层 900 都更高，90 会被压住 → 提到最上层 */
#smHome .lb{z-index:1500;}

/* 「新闻中心」标题已由 CMS 的 .postTitle 改为与其它区块一致的 .sec-head（NEWS + h2），
   h2 里仍保留指向 /news/ 的链接，这里让它继承标题色，看起来就是普通区块标题 */
#smHome .sec-head h2 a{color:inherit;text-decoration:none;}
#smHome .sec-head h2 a:hover{color:var(--brand);}

/* --------------------------------------------------------------------------
   线上平台卡（绿卡）排版修正
   原问题：① 右栏 2×2 方框 align-items:center → 左栏更高时，方框悬在中间、
             卡片右下留出一大块空绿（窄宽度下尤其明显）；
           ② 8 个能力胶囊挤在左栏，折成 5+3 / 6+2 的不齐两行。
   修法：方框列拉伸到与左栏等高、两行等分并垂直居中；胶囊移到通栏一行。
   -------------------------------------------------------------------------- */
#smHome .platform{gap:26px 34px;align-items:stretch;}
#smHome .platform .rules{height:100%;grid-template-rows:repeat(2,1fr);}
#smHome .platform .rule{display:flex;flex-direction:column;justify-content:center;}
#smHome .platform .chips{grid-column:1/-1;margin-top:0;}

/* ==========================================================================
   首页间距 / 行距统一收紧（2026-10-03）
   --------------------------------------------------------------------------
   背景：区块间距取自 /sm/ 长页（该页正文更长，节奏天然更松），搬到首页后
         整体偏"宽"。这里只覆盖间距类属性（padding / margin / gap / line-height），
         不动字号与颜色，统一压缩约 25%（64→44、40→28、84→56 等）。
   纪律：凡生成样式里带断点特例的属性（.platform 内边距、.certs / .logo-wall 间距），
         这里一律补同等断点，避免桌面值反压移动端值。
   ========================================================================== */
#smHome{line-height:1.8;}                    /* 原 1.9 */
#smHome section{padding:40px 0;}             /* 第二轮 44→40（原 64） */
#smHome .sec-head{margin-bottom:28px;}       /* 原 40 */
#smHome .sec-num{margin-bottom:10px;}        /* 原 14 */
#smHome h2{margin:0 0 12px;}                 /* 原 0 0 16 */
#smHome h2::after{margin-top:14px;}          /* 原 20 */
#smHome .prose p{margin:0 0 14px;}           /* 原 20 */
#smHome .lead{padding:16px 20px;line-height:1.8;}   /* 原 22 26 / 1.95 */
#smHome .pillars{gap:14px;margin:26px 0 0;}         /* 第二轮：去掉 12px 下外边距（#about 尾部多出的空） */
#smHome .pillar{padding:18px 16px 16px;}            /* 原 24 20 22 */
#smHome .pillar p{line-height:1.8;}                 /* 原 1.85 */
#smHome .multi{gap:12px;margin-top:22px;}           /* 原 14 / 30 */
#smHome .multi-item{padding:16px 14px 14px 18px;}   /* 原 20 18 18 22 */
#smHome .platform{padding:28px 32px;gap:22px 30px;} /* 原 38 40 / 26 34 */
#smHome .platform p{line-height:1.8;}               /* 原 1.95 */
#smHome .platform .rule{padding:12px 14px;}         /* 原 14 16 */
#smHome .svc-title{margin:24px 0 14px;}             /* 原 38 0 20 */
#smHome .d-list span{padding:5px 11px;}             /* 原 6 13 */
#smHome .d-more{margin-top:18px;padding:9px 18px;}  /* 原 24 / 11 20 */
#smHome .about-grid{gap:36px;}                      /* 原 48 */
#smHome .about-stats{padding:4px 20px;}             /* 原 6 24 */
#smHome .astat{padding:11px 2px;}                   /* 原 14 */
#smHome .about-more{margin-top:12px;}               /* 原 14 */
#smHome .certs{gap:14px;margin-top:22px;}           /* 原 18 / 30 */
#smHome .cert-body{padding:12px 15px 14px;}         /* 原 15 17 17 */
#smHome .certs-note{margin-top:12px;}               /* 原 18 */
#smHome .logo-wall{gap:10px;margin-top:14px;}       /* 原 12 / 18 */
#smHome .wall-lead{margin-top:12px;line-height:1.8;}/* 原 16 / 1.85 */
/* 新闻中心（CMS 区块）：原 .post 内边距 84px 是全页最松的一处；第二轮实测该带为
   「上 56 / 下 84」（其它带都是 44/44），下 84 里除 .post 的 56 外还有 .PostNews 的
   28px 下外边距 → 「新闻卡片 → 服务客户标题」间隔 128px，是全页最大的一处。
   故改为 上 40 / 下 24，并清掉外层下外边距。 */
#smHome .PostBox.newsBg .post{padding:40px 20px 20px;}   /* 下 20：实测卡片投影向下约 12px，20 已足 */
#smHome .PostBox.newsBg .PostNews{margin-bottom:0;}
#smHome .PostBox.newsBg .owl-carousel{margin-bottom:0;}
/* 新闻中心底部空档的另一个来源（2026-10-05 用户反馈「新闻卡片离底色结束太远」）：
   style.css:611 的 `.article{min-height:600px}` 本是给文章详情页（左正文 + 右 378px 侧栏）用的。
   首页新闻中心复用了 CMS 的 .container.Wauto > .main.w1200 > .article.w1 这套容器结构 → 被误伤：
   实测内容仅 527.6px 高，却被 min-height 撑到 600px，于是浅绿底色块内只有 32px，
   底色块之外还多出 72.4px 纯白（移动端 500px 下多出 116.4px）→ 显式清零，
   让浅绿底色块紧接下一区块（与其它色带交替区块的节奏一致）。
   ⚠ 不要动 style.css 里那条全局 .article —— 文章详情页仍在用它。 */
#smHome .container.Wauto .article{min-height:0;}
#smHome .PostBox .post{padding:40px 20px;}            /* 兜底：其它 .PostBox 将来回用时同理 */
/* 新闻卡底部内边距原 40px 偏空 */
#smHome .PostBox.newsBg .owl3 .imgText{padding:14px 16px 28px;}
#smHome .astat i{margin-top:7px;}                   /* 原 9 */
/* 断点同步（避免上面的桌面值反压移动端特例值） */
@media (max-width:880px){
  #smHome .platform{padding:22px 20px;gap:18px;}
  #smHome .about-grid{gap:24px;}
}
@media (max-width:900px){ #smHome .certs{gap:12px;} }
@media (max-width:560px){
  #smHome .certs{gap:12px;}
  #smHome .logo-wall{gap:8px;}
}

/* 新闻中心沿用 CMS 的 .container.Wauto（默认 max-width:1400px），
   收窄到与 /sm/ 区块同一内容列（1072px 内宽 = 1112 - 2×20 的 .post 内边距），避免同页两种列宽 */
#smHome .container.Wauto{max-width:1112px;}
#smHome .d-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:0;}
#smHome .d-list span{
  font-size:13px;color:var(--ink-2);line-height:1.5;
  background:var(--card);border:1px solid var(--line);border-radius:9px;
  padding:6px 13px;box-shadow:var(--shadow-sm);
}
#smHome .d-more{
  display:inline-flex;align-items:center;gap:7px;margin-top:24px;
  padding:11px 20px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:14px;font-weight:600;
  text-decoration:none;letter-spacing:.02em;
  transition:transform .22s var(--ease), box-shadow .22s, filter .22s;
}
#smHome .d-more:hover{
  color:#fff;transform:translateY(-1px);
  box-shadow:0 12px 26px -10px rgba(11,26,43,.42);
  filter:brightness(1.06);
}
#smHome .d-more::after{content:"\2192";font-size:15px;line-height:1;}
@media print{
  /* 打印一律转白：A 带浅绿与卡片阴影全部去掉，避免印出大块底色。
     注意：色带是按 ID 钉死的（特异性 2,0,0），比生成样式里 @media print 的
     `#smHome .domain{background:#fff}`（1,1,0）更高，必须在这里用同等特异性覆盖。 */
  #smHome{--bg:#fff;}
  #smHome #intro, #smHome #about, #smHome #platform, #smHome #company,
  #smHome #d1, #smHome #d2, #smHome #d3, #smHome #d4, #smHome #certs,
  #smHome .PostBox.newsBg, #smHome .cases-sec{background:#fff;--line-bg:var(--line);}
  #smHome .about-stats{box-shadow:none;}
  #smHome .d-more{background:#fff;color:var(--ink);box-shadow:none;border:1px solid var(--line);}
}

