/* Original source geometry is retained. These rules replace palette and image content. */
body{color:#343a3c;background:#fff}
.nav{background:#343a3c!important}
.nav-list>li>a{color:#fff!important}
.nav-list>li.cur,.nav-list>li:hover{background:#3dbdad!important}
.chart{background:#f4f5f5!important;border-color:#f4f5f5!important}
.chart .item{color:#343a3c;background-image:none}
.chart .item em{color:#303638}
.project{background:linear-gradient(rgba(34,40,43,.24),rgba(34,40,43,.24)),url("/assets/factory-generated.webp") no-repeat center 0 / 1920px 830px!important}
.project .wrap-title h2 a,.project .wrap-title h2 b,.project .wrap-title h2 strong,.project .wrap-title p{color:#fff!important}
.project .wrap-title i{background:#3dbdad!important}
.adv{background:#f4f5f5!important}
.adv .wrap-title h2,.adv .wrap-title h2 a,.adv .wrap-title p{color:#343a3c!important}
.case{background:#fff!important}
.footer{background:#343a3c!important}
.swiper-slide>a{position:relative;display:block}
.cq-banner-image{width:100%;height:auto;aspect-ratio:1920/500;object-fit:cover;object-position:center 48%;filter:none}
.cq-banner-copy{position:absolute;left:max(calc((100% - 1200px)/2 + 65px),7%);top:22%;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.2);z-index:2}
.cq-banner-copy strong{font-size:38px;line-height:1.6;font-weight:700}
.cq-banner-copy p{font-size:18px;line-height:2}
.cq-mobile-banner-image{width:100%;aspect-ratio:750/360;object-fit:cover;filter:none}
.cq-mobile-banner-copy{position:absolute;left:5%;top:22%;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.2);z-index:2}
.cq-mobile-banner-copy strong{font-size:.32rem;line-height:1.8}
.cq-mobile-banner-copy p{font-size:.19rem;line-height:1.8}
.project .pic img,.adv-fist .pic img,.case-first .pic img,.news-group .pic img{width:100%;height:100%;object-fit:cover;filter:saturate(.45)}
.partner-list li a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#f4f5f5;color:#343a3c;font-size:16px}
.problem-list img{filter:grayscale(1)}
.ft-QRcode img{width:166px!important;height:auto!important;background:#fff}
.ft-QRcode p,.ft-QRcode a{color:#fff;line-height:25px}
.cq-view-switch{display:block;text-align:center;background:#f4f5f5;padding:8px;color:#555;font-size:12px}
body[data-device=mobile] .cq-view-switch{padding-bottom:75px}
body[data-device=mobile]{padding-bottom:1.18rem!important;padding-bottom:calc(1.18rem + env(safe-area-inset-bottom))!important}
.cq-copy-status{display:none;position:fixed;bottom:85px;left:50%;transform:translateX(-50%);z-index:10000;background:#343a3c;color:#fff;padding:12px 20px;border-radius:4px;font-size:14px;white-space:nowrap}
.cq-copy-status.visible{display:block}
.sh-home-card,.sh-home-card-wide{background:#fff!important;border-color:#e1e5e5!important}
.sh-home-mobile-banner{box-shadow:none}
.swiper-pagination-bullet-active{background:#3dbdad!important}
.header .tel{position:relative;background-image:none}
.header .tel:before{content:"";position:absolute;left:0;top:0;width:50px;height:50px;background:#40c3b1;-webkit-mask:url("/source-assets/style/pc/css/img/tel-icon.png") no-repeat left top / contain;mask:url("/source-assets/style/pc/css/img/tel-icon.png") no-repeat left top / contain}
.project-inner .item .hd strong{color:#343a3c}
.project-inner .item{background-color:#fff}
.swiper-button-next,.swiper-button-prev{color:#3dbdad}
.adv .wrap-title h2 strong{color:#343a3c!important}
.adv .wrap-title i{background:#3dbdad!important}
.m-box-title.m-box-title4{background:#f1f3f3!important}
.m-box-title4 font,.m-box-title4 a{color:#343a3c!important}
.sh-mobile-phone i{background:#40c3b1!important;-webkit-mask:url("/source-assets/style/pc/css/img/tel-icon.png") no-repeat center / contain;mask:url("/source-assets/style/pc/css/img/tel-icon.png") no-repeat center / contain}
.tabbar{background:#fff!important;border-top-color:#e1e5e5!important}
.tabbar-item,.tabbar-item .tabbar-icon,.tabbar-item .tabbar-txt{color:#343a3c!important}
.tabbar-item.tabbar-active,.tabbar-item.tabbar-active .tabbar-icon,.tabbar-item.tabbar-active .tabbar-txt{color:#268d80!important}
.m-tabbar.tabbar-fixed{background:#fff!important}
.m-tabbar.tabbar-fixed .tabbar-item,.m-tabbar.tabbar-fixed .tabbar-icon,.m-tabbar.tabbar-fixed .tabbar-txt,.m-tabbar.tabbar-fixed i{color:#343a3c!important}
.m-tabbar.tabbar-fixed .tabbar-item:first-child,.m-tabbar.tabbar-fixed .tabbar-item:first-child i{color:#268d80!important}
.m-tabbar.tabbar-fixed .tabbar-icon i{color:#343a3c!important}
.m-tabbar.tabbar-fixed .tabbar-item:first-child .tabbar-icon i{color:#268d80!important}
body[data-device=mobile] .footer,body[data-device=mobile] .footer p{background:#f4f5f5!important;color:#555!important}

.m-tabbar.tabbar-fixed a[href^="tel:"] .tabbar-icon i{color:#40c3b1!important}

.swiper-slide>a:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,40,43,.56),rgba(34,40,43,.20) 60%,rgba(34,40,43,.08));z-index:1;pointer-events:none}

.cq-banner-image[src*="people-1"]{object-position:center 18%}
.cq-banner-image[src*="people-2"],.cq-banner-image[src*="people-3"],.cq-banner-image[src*="people-4"]{object-position:center 55%}

.cq-banner-image[src*="people-3"]{object-position:center 38%}

#navBox>[data-source-services]:focus-within .dropDown{display:flex}

#navBox>[data-source-tools]:focus-within .dropDown{display:flex}

/* Four service cards: tall left/right, two stacked in the center. */
.project-inner.cq-four-cards{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:28px;height:562px}
.project-inner.cq-four-cards .item{position:relative;top:auto;left:auto;right:auto;width:auto;height:auto;min-width:0;box-sizing:border-box;padding:30px 28px}
.project-inner.cq-four-cards .item-1{grid-column:1;grid-row:1 / 3}
.project-inner.cq-four-cards .item-2{grid-column:2;grid-row:1}
.project-inner.cq-four-cards .item-3{grid-column:2;grid-row:2}
.project-inner.cq-four-cards .item-4{grid-column:3;grid-row:1 / 3}

.project-inner.cq-four-cards .item-1 .pic{display:block;position:absolute;left:28px;right:28px;bottom:28px;height:210px;margin:0}
.project-inner.cq-four-cards .item-1 .pic a{display:block;height:100%}

.problem-list .item:nth-child(4) img{filter:none;object-fit:contain;background:#fff}

/* Homepage FAQ: one image and one readable question list. */
.case.cq-faq{height:auto;padding:70px 0}
.cq-faq .case-first{float:none;display:grid;grid-template-columns:1fr 600px;width:100%;height:auto;min-height:380px}
.cq-faq .case-first:after{display:none}
.cq-faq .case-first .pic{float:none;width:auto;height:100%;min-height:380px}
.cq-faq .case-first .pic a{display:block;height:100%}
.cq-faq .case-first .pic img{width:100%;height:100%;object-fit:cover}
.cq-faq .case-first:hover .pic img{transform:none}
.cq-faq .case-first .text{float:none;width:auto;height:auto;padding:28px 36px}
.cq-faq .case-first .summary{height:auto;margin:0 0 24px}
.cq-faq .case-first .summary p{height:auto;line-height:1.7;white-space:normal;overflow:visible;border-bottom:1px solid #eceeee}
.cq-faq .case-first .summary p a{display:block;padding:15px 0;font-size:16px}
.cq-faq .case-first .btnBox{text-align:left}

.cq-faq .case-first .btnBox a{text-align:center}

.cq-faq .case-first .text{grid-column:1;grid-row:1}
.cq-faq .case-first .pic{grid-column:2;grid-row:1}

.project-inner .hd strong a{color:inherit}.project-inner .hd strong a:hover{color:#268d80}

/* Production is a disclosure heading with two child destinations. */
#navBox>[data-source-services]>.dropDown{overflow:visible}
#navBox :is(.cq-production-menu,.cq-import-menu){position:relative;align-self:stretch;display:flex!important;align-items:center}
#navBox :is(.cq-production-menu,.cq-import-menu)>summary{display:block;list-style:none;cursor:pointer;padding:0 16px 0 10px;border-left:4px solid #3dbdad;color:#111;font-size:15px;font-weight:500;line-height:18px;white-space:nowrap}
#navBox :is(.cq-production-menu,.cq-import-menu)>summary::-webkit-details-marker,.cq-production-mobile>summary::-webkit-details-marker{display:none}
#navBox :is(.cq-production-menu,.cq-import-menu)>summary:after{content:"▾";margin-left:6px;font-size:11px;color:#268d80}
#navBox :is(.cq-production-menu,.cq-import-menu)>summary:hover,#navBox :is(.cq-production-menu,.cq-import-menu)[open]>summary{color:#268d80}
#navBox :is(.cq-production-submenu,.cq-import-submenu){position:absolute;top:100%;left:0;z-index:1001;min-width:220px;box-sizing:border-box;padding:8px 0;background:#fff;border-top:2px solid #3dbdad;box-shadow:0 10px 24px rgba(40,40,40,.16)}
#navBox :is(.cq-production-menu,.cq-import-menu):not([open])>:is(.cq-production-submenu,.cq-import-submenu){display:none}
#navBox :is(.cq-production-submenu,.cq-import-submenu)>a{display:block!important;padding:11px 18px;color:#343a3c;font-size:14px;font-weight:400;line-height:1.5;text-align:left;white-space:nowrap}
#navBox :is(.cq-production-submenu,.cq-import-submenu)>a:hover,#navBox :is(.cq-production-submenu,.cq-import-submenu)>a:focus-visible{background:#edf7f5;color:#268d80}
#navBox :is(.cq-production-menu,.cq-import-menu)>summary:focus-visible{outline:2px solid #268d80;outline-offset:4px}
.fenlei .cq-production-mobile{display:block;clear:both}
.fenlei .cq-production-mobile>summary{display:block;list-style:none;cursor:pointer;color:#000}
.fenlei .cq-production-mobile>summary>span{display:block;box-sizing:border-box;min-height:.72rem;line-height:1.4;margin:.08rem;padding:.14rem .16rem;border:1px solid #eee;border-radius:5px;white-space:normal}
.fenlei .cq-production-mobile>summary>span:after{content:""!important;display:block;width:.16rem;height:.16rem;float:right;margin:.02rem .03rem 0 .12rem;border-right:.035rem solid #268d80;border-bottom:.035rem solid #268d80;transform:rotate(45deg)}
.fenlei .cq-production-mobile[open]>summary>span:after{content:""!important;transform:rotate(225deg)}
.fenlei .cq-production-mobile .cq-production-submenu>a{display:block!important;float:none!important;clear:both!important;width:auto!important;margin:0 .08rem .08rem .26rem;padding:.14rem .16rem;border-left:2px solid #3dbdad;background:#f4faf8;color:#343a3c;line-height:1.5}

/* Preserve the existing automatic dimension when intrinsic image sizes are present. */
.header .logo img{width:auto}
.m-box-contact .m-img img{height:auto}

/* 2026-09-19: 统一移动端页头，令二级/三级页面与首页一致。
   首页原本靠内联高特异性规则（body[data-device=mobile] .sh-mobile-topbar .sh-mobile-actions）实现，
   内页是裸选择器（.sh-mobile-topbar / .sh-mobile-actions），故此处以 0,2,1 特异性统一覆盖，105 页一处生效。 */
body[data-device=mobile] .sh-mobile-topbar{align-items:flex-end!important;padding-bottom:.03rem!important}
body[data-device=mobile] .sh-mobile-actions{align-self:flex-end!important;padding-bottom:.32rem!important}
body[data-device=mobile] .sh-mobile-phone{align-items:flex-end!important}
body[data-device=mobile] .sh-mobile-phone i{align-self:flex-end!important}

/* 2026-09-19: 修复视口滚动机制。105 个手机页内联有 html,body{overflow-x:hidden!important}，
   html 的 overflow 非 visible 会让 body 滚动不传播到视口（滚动容器变成 body、window.scrollY 恒 0、
   window.scrollTo() 失效）。此处以 :root（0,1,1）特异性压过内联的 html（0,0,1），
   把 html 恢复 visible；横向锁定由 body 的 overflow-x:hidden 传播到视口承担（规范标准行为）。 */
html:root{overflow-x:visible!important}

/* 2026-09-19: 移动端"微信联系"弹层（tabbar .wx-add-direct 触发，JS 动态建 DOM）。
   二维码图 /assets/wechat-qr.png 存在时显示大图长按识别；缺位时 .no-qr 降级为微信号卡片。 */
.wx-qr-modal{display:none;position:fixed;inset:0;z-index:9999}
.wx-qr-modal.open{display:block}
.wx-qr-mask{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.wx-qr-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;padding:24px 20px 20px;width:300px;max-width:86vw;box-sizing:border-box;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.wx-qr-close{position:absolute;top:4px;right:6px;border:0;background:none;font-size:24px;line-height:1;color:#999;padding:8px;cursor:pointer}
.wx-qr-card h3{margin:2px 0 12px;font-size:17px;color:#1a1a1a}
.wx-qr-img{display:block;width:230px;height:230px;max-width:100%;margin:0 auto 10px;border:1px solid #eee;border-radius:8px}
.wx-qr-tip{margin:0 0 8px;font-size:14px;color:#333}
.wx-qr-fallback{display:none;margin:0 0 8px;font-size:13px;color:#888}
.wx-qr-modal.no-qr .wx-qr-img{display:none}
.wx-qr-modal.no-qr .wx-qr-tip{display:none}
.wx-qr-modal.no-qr .wx-qr-fallback{display:block}
.wx-qr-number{margin:0 0 12px;font-size:15px;color:#1a1a1a;font-weight:600}
.wx-qr-copy{display:block;width:100%;border:0;border-radius:8px;background:#07c160;color:#fff;font-size:15px;padding:11px 0;cursor:pointer}
