@charset "utf-8";
/* ==========================================================================
   jj.css —— 昆山九聚新材料 站点定制样式
   只放「改造新增」的样式，不改 main.css，方便后续对照原始模板排查问题。
   加载顺序：main.css 之后。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 顶部导航：一级栏目数量由后台决定，原样式按 7 项写死 padding，这里收窄留白
   -------------------------------------------------------------------------- */
.header .center .link-box { padding: 40px 22px; }
@media only screen and (max-width: 1746px) { .header .center .link-box { padding: 40px 18px; } }
@media only screen and (max-width: 1536px) { .header .center .link-box { padding: 40px 14px; font-size: 15px; } }
@media only screen and (max-width: 1366px) { .header .center .link-box { padding: 40px 10px; font-size: 14px; } }

/* 右侧咨询电话（替换掉原站的搜索 + 中英文切换） */
.header .right .phone { text-decoration: none; }
.header .right .phone b { font-size: 20px; font-weight: bold; }
@media only screen and (max-width: 1536px) { .header .right .phone b { font-size: 17px; } }
@media only screen and (max-width: 1366px) { .header .right .phone .iconfont { display: none; } .header .right .phone b { font-size: 15px; } }

/* --------------------------------------------------------------------------
   2. 内页头图：原设计把标题 h3 隐藏了，这里改成显示 h1（每页有且仅有一个 h1）
      同时给 .banner-sub 一个兜底底色，栏目引导图没上传时也不会露白
   -------------------------------------------------------------------------- */
.banner-sub {
	height: 60vh;
	min-height: 420px;
	background-color: #0b2c52;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
}
@media only screen and (max-width: 1280px) { .banner-sub { height: 420px; min-height: 0; } }
.banner-sub h1 {
	display: block;
	position: relative;
	z-index: 2;
	font-size: 56px;
	letter-spacing: 3px;
	color: #fff;
	margin: 0;
}
@media only screen and (max-width: 1536px) { .banner-sub h1 { font-size: 44px; } }
@media only screen and (max-width: 1280px) { .banner-sub h1 { font-size: 28px; } }
.banner-sub .banner-sub-desc {
	position: relative;
	z-index: 2;
	margin-top: 20px;
	max-width: 820px;
	font-size: 18px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.9);
}
@media only screen and (max-width: 1280px) { .banner-sub .banner-sub-desc { font-size: 14px; margin-top: 12px; } }
.banner-sub .breadcrumb a:hover { text-decoration: underline; }
/* 详情页头图里的栏目名（h1 让位给内容标题，见 macros 的 subBanner h1 参数），样式与 h1 完全一致 */
.banner-sub .banner-sub-title {
	display: block;
	position: relative;
	z-index: 2;
	font-size: 56px;
	font-weight: bold;
	letter-spacing: 3px;
	color: #fff;
	margin: 0;
}
@media only screen and (max-width: 1536px) { .banner-sub .banner-sub-title { font-size: 44px; } }
@media only screen and (max-width: 1280px) { .banner-sub .banner-sub-title { font-size: 28px; } }

/* --------------------------------------------------------------------------
   3. 分页条：原站是 JS 生成的（蜘蛛跟不进），改成服务端渲染的 <a>，样式对齐
   -------------------------------------------------------------------------- */
.paging ul li { padding: 0; overflow: hidden; }
.paging ul li > a,
.paging ul li > span {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	color: inherit;
}
.paging ul li:hover:not(.xl-disabled):not(.xl-active) { border-color: #146dc6; color: #146dc6; }
.paging ul li.xl-disabled { color: #ccc; }

/* --------------------------------------------------------------------------
   4. 页脚：原站页脚右上角是搜索框，改成业务咨询电话
   -------------------------------------------------------------------------- */
#footer .footer .footer-top-bg .footer-top .ft-cta { display: flex; align-items: center; color: #fff; }
#footer .footer .footer-top-bg .footer-top .ft-cta .iconfont { font-size: 34px; margin-right: 16px; color: #146dc6; }
#footer .footer .footer-top-bg .footer-top .ft-cta .ft-cta-txt p { font-size: 13px; color: #9a9a9a; line-height: 1.4; }
#footer .footer .footer-top-bg .footer-top .ft-cta .ft-cta-txt b { font-size: 24px; color: #fff; }
#footer .footer .footer-bottom .bottom-cont .left { flex-direction: column; }
#footer .footer .footer-bottom .bottom-cont .left p { line-height: 2; }
#footer .footer .footer-bottom .bottom-cont .left a { color: #8b8b8b; }
@media only screen and (max-width: 640px) {
	#footer .footer .footer-top-bg .footer-top { height: auto; padding: 20px 5vw; flex-wrap: wrap; }
	#footer .footer .footer-top-bg .footer-top .ft-cta { margin-top: 15px; }
}

/* --------------------------------------------------------------------------
   5. 通用区块标题（新写页面用）
   -------------------------------------------------------------------------- */
.jj-sec { padding: 100px calc(300 / 1920 * 100vw); }
@media only screen and (max-width: 1536px) { .jj-sec { padding: 80px calc((100vw - 1100px) / 2); } }
@media only screen and (max-width: 1280px) { .jj-sec { padding: 10vw 5vw; } }
.jj-sec.gray { background-color: #f6f8fb; }
.jj-sec-hd { text-align: center; margin-bottom: 60px; }
.jj-sec-hd h2 { font-size: 42px; font-weight: bold; color: #333; line-height: 1.3; }
.jj-sec-hd .en { font-size: 20px; font-weight: bold; color: rgba(51, 51, 51, 0.2); margin-top: 10px; text-transform: uppercase; }
.jj-sec-hd .sub { font-size: 16px; color: #666; line-height: 1.9; margin-top: 20px; max-width: 900px; margin-left: auto; margin-right: auto; }
.jj-sec-hd.left { text-align: left; }
.jj-sec-hd.left .sub { margin-left: 0; }
@media only screen and (max-width: 1280px) { .jj-sec-hd h2 { font-size: 26px; } .jj-sec-hd .en { font-size: 14px; } .jj-sec-hd .sub { font-size: 14px; } .jj-sec-hd { margin-bottom: 8vw; } }

/* --------------------------------------------------------------------------
   6. 产品栏目：产品总览卡片 / 子栏目内容网格 / 产品详情
   -------------------------------------------------------------------------- */
.jj-prod-grid { display: flex; flex-wrap: wrap; gap: 30px; }
.jj-prod-grid .item {
	width: calc((100% - 60px) / 3);
	background: #fff;
	border: 1px solid #eee;
	border-radius: 10px;
	overflow: hidden;
	transition: all 0.25s;
	display: flex; flex-direction: column;
}
.jj-prod-grid .item:hover { box-shadow: 0 14px 30px rgba(66, 79, 105, 0.16); transform: translateY(-4px); border-color: #dbe6f4; }
.jj-prod-grid .item .pic { display: block; width: 100%; aspect-ratio: 4 / 3; background: #f2f5f9 center center / cover no-repeat; }
.jj-prod-grid .item .txt { padding: 26px 28px 30px; flex: 1; display: flex; flex-direction: column; }
.jj-prod-grid .item .txt h3 { font-size: 20px; font-weight: bold; color: #333; line-height: 1.5; }
.jj-prod-grid .item .txt p { font-size: 14px; color: #777; line-height: 1.9; margin-top: 14px; flex: 1;
	overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.jj-prod-grid .item .txt .more { margin-top: 20px; font-size: 14px; color: #146dc6; display: flex; align-items: center; }
.jj-prod-grid .item .txt .more .iconfont { margin-left: 6px; font-size: 13px; }
@media only screen and (max-width: 1024px) { .jj-prod-grid .item { width: calc((100% - 30px) / 2); } }
@media only screen and (max-width: 640px) { .jj-prod-grid { gap: 5vw; } .jj-prod-grid .item { width: 100%; } }

/* 产品详情 */
.jj-detail { padding: 70px calc(300 / 1920 * 100vw) 100px; }
@media only screen and (max-width: 1536px) { .jj-detail { padding: 60px calc((100vw - 1100px) / 2) 80px; } }
@media only screen and (max-width: 1280px) { .jj-detail { padding: 8vw 5vw; } }
.jj-detail-top { display: flex; gap: 60px; align-items: flex-start; }
.jj-detail-top .pic { width: 46%; flex-shrink: 0; border-radius: 10px; overflow: hidden; background: #f2f5f9; }
.jj-detail-top .pic img { width: 100%; display: block; }
.jj-detail-top .info { flex: 1; }
.jj-detail-top .info h1 { font-size: 34px; font-weight: bold; color: #222; line-height: 1.4; }
.jj-detail-top .info .sub { font-size: 16px; color: #666; line-height: 1.9; margin-top: 24px; }
.jj-detail-top .info .meta { margin-top: 26px; font-size: 14px; color: #999; }
.jj-detail-top .info .cta { margin-top: 34px; display: flex; gap: 16px; flex-wrap: wrap; }
.jj-detail-top .info .cta a {
	height: 52px; padding: 0 34px; border-radius: 26px; display: inline-flex; align-items: center;
	font-size: 16px; background: #146dc6; color: #fff;
}
.jj-detail-top .info .cta a.ghost { background: #fff; color: #146dc6; border: 1px solid #146dc6; }
@media only screen and (max-width: 1024px) { .jj-detail-top { flex-direction: column; gap: 6vw; } .jj-detail-top .pic { width: 100%; } .jj-detail-top .info h1 { font-size: 24px; } }
.jj-article-body { margin-top: 60px; padding-top: 40px; border-top: 1px solid #eee; font-size: 16px; line-height: 2; color: #444; }
.jj-article-body img { max-width: 100%; height: auto; }
.jj-article-body table { width: 100%; border-collapse: collapse; margin: 20px 0; }
.jj-article-body table td, .jj-article-body table th { border: 1px solid #e3e8ef; padding: 12px 14px; font-size: 15px; }
.jj-article-body table th { background: #f5f8fc; font-weight: bold; }
@media only screen and (max-width: 640px) { .jj-article-body { font-size: 14px; } .jj-article-body table { display: block; overflow-x: auto; } }

/* --------------------------------------------------------------------------
   7. 技术创新：干法改性工艺四步 + 八大特性
   -------------------------------------------------------------------------- */
.jj-step { display: flex; flex-wrap: wrap; gap: 24px; counter-reset: jjstep; }
.jj-step .item {
	width: calc((100% - 72px) / 4);
	background: #fff; border-radius: 10px; padding: 40px 30px 36px;
	border: 1px solid #eee; position: relative; transition: all 0.25s;
}
.jj-step .item:hover { box-shadow: 0 14px 30px rgba(66, 79, 105, 0.16); transform: translateY(-4px); }
.jj-step .item::before {
	counter-increment: jjstep; content: "0" counter(jjstep);
	font-size: 40px; font-weight: bold; color: rgba(20, 109, 198, 0.16); line-height: 1; display: block; margin-bottom: 18px;
}
.jj-step .item h3 { font-size: 20px; font-weight: bold; color: #333; }
.jj-step .item p { font-size: 14px; color: #777; line-height: 1.9; margin-top: 14px; }
@media only screen and (max-width: 1024px) { .jj-step .item { width: calc((100% - 24px) / 2); } }
@media only screen and (max-width: 640px) { .jj-step { gap: 4vw; } .jj-step .item { width: 100%; padding: 6vw 5vw; } }

.jj-feature { display: flex; flex-wrap: wrap; gap: 20px; }
.jj-feature .item {
	width: calc((100% - 60px) / 4);
	background: #fff; border-radius: 10px; border: 1px solid #eee;
	padding: 30px 26px; transition: all 0.25s;
}
.jj-feature .item:hover { border-color: #146dc6; }
.jj-feature .item h3 { font-size: 18px; font-weight: bold; color: #146dc6; }
.jj-feature .item p { font-size: 14px; color: #777; line-height: 1.8; margin-top: 10px; }
@media only screen and (max-width: 1024px) { .jj-feature .item { width: calc((100% - 20px) / 2); } }
@media only screen and (max-width: 640px) { .jj-feature { gap: 4vw; } .jj-feature .item { width: 100%; } }

/* --------------------------------------------------------------------------
   8. 应用领域卡片
   -------------------------------------------------------------------------- */
.jj-app-grid { display: flex; flex-wrap: wrap; gap: 30px; }
.jj-app-grid .item {
	width: calc((100% - 60px) / 3); position: relative; border-radius: 10px; overflow: hidden;
	display: block; background: #123; min-height: 300px;
}
.jj-app-grid .item .pic { position: absolute; inset: 0; background: center center / cover no-repeat; transition: transform 0.4s; }
.jj-app-grid .item:hover .pic { transform: scale(1.06); }
.jj-app-grid .item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 25, 55, 0.82), rgba(0, 25, 55, 0.05) 65%); }
.jj-app-grid .item .txt { position: relative; z-index: 2; padding: 200px 30px 34px; color: #fff; }
.jj-app-grid .item .txt h3 { font-size: 22px; font-weight: bold; }
.jj-app-grid .item .txt p { font-size: 14px; line-height: 1.8; margin-top: 12px; color: rgba(255, 255, 255, 0.85);
	overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
@media only screen and (max-width: 1024px) { .jj-app-grid .item { width: calc((100% - 30px) / 2); } }
@media only screen and (max-width: 640px) { .jj-app-grid { gap: 5vw; } .jj-app-grid .item { width: 100%; min-height: 240px; } .jj-app-grid .item .txt { padding: 140px 5vw 6vw; } }

/* --------------------------------------------------------------------------
   9. 联系我们：信息卡
   -------------------------------------------------------------------------- */
.jj-contact-grid { display: flex; flex-wrap: wrap; gap: 30px; margin-bottom: 70px; }
.jj-contact-grid .item {
	width: calc((100% - 60px) / 3); background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 36px 32px;
}
.jj-contact-grid .item h3 { font-size: 18px; font-weight: bold; color: #333; }
.jj-contact-grid .item .line { font-size: 16px; color: #555; line-height: 2.2; margin-top: 12px; word-break: break-all; }
.jj-contact-grid .item .line a { color: #146dc6; }
.jj-contact-grid .item .line b { font-size: 22px; color: #146dc6; }
@media only screen and (max-width: 1024px) { .jj-contact-grid .item { width: calc((100% - 30px) / 2); } }
@media only screen and (max-width: 640px) { .jj-contact-grid { gap: 5vw; } .jj-contact-grid .item { width: 100%; padding: 6vw 5vw; } }

/* --------------------------------------------------------------------------
   10. 资质证书网格（品质保障页）
   -------------------------------------------------------------------------- */
.jj-cert-grid { display: flex; flex-wrap: wrap; gap: 30px; }
.jj-cert-grid .item { width: calc((100% - 90px) / 4); text-align: center; }
.jj-cert-grid .item .pic {
	border: 1px solid #eee; border-radius: 10px; overflow: hidden; background: #fff;
	display: flex; align-items: center; justify-content: center; padding: 18px; transition: all 0.25s;
}
.jj-cert-grid .item:hover .pic { box-shadow: 0 14px 30px rgba(66, 79, 105, 0.16); }
.jj-cert-grid .item .pic img { width: 100%; display: block; }
.jj-cert-grid .item p { font-size: 16px; color: #333; margin-top: 18px; line-height: 1.6; }
@media only screen and (max-width: 1024px) { .jj-cert-grid .item { width: calc((100% - 30px) / 2); } }
@media only screen and (max-width: 640px) { .jj-cert-grid { gap: 5vw; } .jj-cert-grid .item { width: calc((100% - 5vw) / 2); } }

/* --------------------------------------------------------------------------
   11. 关于我们：总裁介绍 / 寄语 tab；文章详情页的发布时间恢复显示
   -------------------------------------------------------------------------- */
.news-particulars .title-day { display: block; color: #999; }
.news-particulars .cont .txt { font-size: 16px; line-height: 2; color: #444; }
.news-particulars .cont .txt img { max-width: 100%; height: auto; }
.news-particulars .cont .txt table { width: 100%; border-collapse: collapse; margin: 20px 0; }
.news-particulars .cont .txt table td, .news-particulars .cont .txt table th { border: 1px solid #e3e8ef; padding: 12px 14px; }
@media only screen and (max-width: 640px) { .news-particulars .cont .txt table { display: block; overflow-x: auto; } }

/* 空列表占位 */
.jj-empty { text-align: center; padding: 90px 0; color: #999; font-size: 16px; }
.jj-empty img { width: 180px; display: block; margin: 0 auto 20px; opacity: 0.6; }

/* 首页产品轮播里的「查看详情」 */
.home-page .product .fw-box .center .content .box .da .left .icon a { display: inline-flex; align-items: center; color: #146dc6; font-weight: bold; }
.home-page .product .fw-box .center .content .box .da .left .icon a .iconfont { margin-left: 6px; font-size: 13px; }

/* 产品详情页上/下一篇（原样式挂在 .news-particulars 下，这里给 .jj-detail 补一份） */
.jj-detail .change-page { margin-top: 60px; padding-top: 30px; border-top: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.jj-detail .change-page a { display: flex; align-items: center; max-width: 48%; }
.jj-detail .change-page p { margin: 0 16px; font-size: 16px; font-weight: bold; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jj-detail .change-page a:hover p { color: #146dc6; }
.jj-detail .change-page .right img { transform: rotateZ(180deg); }
@media only screen and (max-width: 640px) { .jj-detail .change-page { flex-direction: column; align-items: flex-start; gap: 12px; } .jj-detail .change-page a { max-width: 100%; } }

/* .innovation 版式里原站用了两个重复的 id="title"（HTML 非法），这里改用 .sec-title，样式与 #title 对齐 */
.innovation .sec-title { font-size: 36px; font-weight: bold; color: #333; }
.innovation .xtcx .sec-title { text-align: center; }
@media only screen and (max-width: 1536px) { .innovation .sec-title { font-size: 30px; } }
@media only screen and (max-width: 1280px) { .innovation .sec-title { font-size: 24px; } }
@media only screen and (max-width: 640px)  { .innovation .sec-title { font-size: 18px; } }

/* 文章详情页灰色条里的面包屑（.news-particulars .nav 内） */
.news-particulars .nav .crumb { display: flex; align-items: center; font-size: 14px; color: #333; flex-wrap: wrap; }
.news-particulars .nav .crumb a { color: #333; }
.news-particulars .nav .crumb a:hover { color: #146dc6; text-decoration: underline; }
.news-particulars .nav .crumb .iconfont { margin: 0 8px; font-size: 13px; color: #999; }
.news-particulars .nav .crumb > p:last-child { color: #999; max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media only screen and (max-width: 640px) {
	.news-particulars .nav { height: auto; padding: 12px 5vw; flex-direction: column; align-items: flex-start; gap: 8px; }
	.news-particulars .nav .crumb { font-size: 12px; }
	.news-particulars .nav .crumb > p:last-child { max-width: 60vw; }
}

/* 在招岗位列表 */
.jj-job-list { border-top: 1px solid #eee; }
.jj-job-list li { border-bottom: 1px solid #eee; }
.jj-job-list li a { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 4px; transition: all 0.25s; }
.jj-job-list li a:hover { padding-left: 16px; background: #f7f9fc; }
.jj-job-list li .n { font-size: 18px; font-weight: bold; color: #333; flex: 1; }
.jj-job-list li .d { font-size: 14px; color: #888; flex: 1; }
.jj-job-list li .m { font-size: 14px; color: #146dc6; white-space: nowrap; }
.jj-job-list li .m .iconfont { font-size: 12px; margin-left: 4px; }
@media only screen and (max-width: 640px) {
	.jj-job-list li a { flex-direction: column; align-items: flex-start; gap: 8px; padding: 5vw 0; }
	.jj-job-list li .n { font-size: 16px; }
}

/* 联系我们的位置示意图 */
.jj-map { border-radius: 10px; overflow: hidden; border: 1px solid #eee; }
.jj-map img { width: 100%; display: block; }

/* 应用领域卡片里的标题用 h2，重置默认字重字号 */
.jj-app-grid .item .txt h2 { font-size: 22px; font-weight: bold; color: #fff; margin: 0; }

/* --------------------------------------------------------------------------
   首页「了解九聚」/「观看宣传片」两个按钮统一规格
   .p-video-btn 的基础样式是给「浮在图片上的小播放按钮」写的：绝对定位、8px 圆角、
   自带 padding 和灰边框，跟旁边 220x58 / 10px 圆角的 .btn 完全不是一个形状。
   这里把它拉回文档流、清掉自带的尺寸相关声明，让 .btn 那一套样式统一接管，
   两个按钮就同宽同高同圆角同 hover 了。
   -------------------------------------------------------------------------- */
.home-page .about .cx-box > .title .btns .p-video-btn {
	position: static;
	top: auto;
	left: auto;
	padding: 0;
	border-radius: 10px;
	border: 1px solid #e9f3fb;
	background-color: #fff;
	backdrop-filter: none;
	color: inherit;
}
/* 两个按钮的图标统一成品牌蓝（默认继承的是正文 #333，偏灰、不出彩） */
.home-page .about .cx-box > .title .btns .btn .iconfont,
.home-page .about .cx-box > .title .btns .btn .jj-play { color: #146dc6; }
/* 播放图标：尺寸与「了解九聚」的 .iconfont 对齐（30px / 移动端 18px），hover 跟着变白 */
.home-page .about .cx-box > .title .btns .btn .jj-play {
	width: 30px;
	height: 30px;
	margin-right: 20px;
	flex-shrink: 0;
	display: block;
	transition: all 0.5s;
}
.home-page .about .cx-box > .title .btns .btn:hover > .jj-play { color: #fff; }
.home-page .about .cx-box > .title .btns .btn:hover > .jj-play path { fill: #146dc6; }
@media only screen and (max-width: 768px) {
	.home-page .about .cx-box > .title .btns .btn .jj-play { width: 18px; height: 18px; margin-right: 10px; }
}

/* --------------------------------------------------------------------------
   12. 大图上的白色文字可读性遮罩
   原主题的 banner 素材本身偏暗，九聚用的是产线实拍（整体偏亮），
   不加遮罩白色标题会糊在背景里。遮罩写在 CSS 而不是烧进图片：
   后台换栏目引导图、换首页轮播图时不用重新处理素材。
   文字层 .text / h1 / .banner-sub-desc / .breadcrumb 都是 z-index:2，不受影响。
   -------------------------------------------------------------------------- */
.home-page .home-banner .swiper-slide { position: relative; }
.home-page .home-banner .swiper-slide::after {
	content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
	z-index: 1; pointer-events: none;
	background: linear-gradient(100deg, rgba(3, 14, 32, 0.80) 0%, rgba(3, 14, 32, 0.58) 40%, rgba(3, 14, 32, 0.20) 76%, rgba(3, 14, 32, 0.10) 100%);
}
/* 内页头图：原样式只有一层 #0153a7/0.3 的蓝，栏目引导图偏亮时标题仍然发虚，
   这里再叠一层由下至上的深色渐变，同时把底部的面包屑压出来 */
.banner-sub::after {
	content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%;
	z-index: 1; pointer-events: none;
	background: linear-gradient(to top, rgba(2, 12, 28, 0.72) 0%, rgba(2, 12, 28, 0.34) 45%, rgba(2, 12, 28, 0.18) 100%);
}
/* 面包屑在 main.css 里是 position:absolute，这里只补 z-index，不要改定位方式 */
.banner-sub h1, .banner-sub .banner-sub-desc { position: relative; z-index: 2; }
.banner-sub .breadcrumb { z-index: 2; }

/* --------------------------------------------------------------------------
   13. 自定义表单：单选 / 多选组
   main.css 的 .form-item 只考虑了 input / textarea，radio 和 checkbox 要自己排版
   -------------------------------------------------------------------------- */
.jj-form .jj-opts { display: flex; flex-wrap: wrap; gap: 10px 26px; padding: 10px 0; }
.jj-form .jj-opt { display: inline-flex; align-items: center; cursor: pointer; font-size: 15px; color: #555; }
.jj-form .jj-opt input { width: 16px; height: 16px; margin: 0 8px 0 0; flex-shrink: 0; accent-color: #146dc6; }
.jj-form .jj-opt span { line-height: 1.5; }
.jj-form .jj-opt:hover span { color: #146dc6; }
.jj-form button[disabled] { opacity: 0.6; cursor: not-allowed; }
@media only screen and (max-width: 640px) { .jj-form .jj-opts { gap: 8px 16px; } .jj-form .jj-opt { font-size: 14px; } }

/* --------------------------------------------------------------------------
   14. LOGO 比例
   main.css 里页脚 LOGO 被写死成 122x32，而实际 LOGO 是 944x256（3.6875:1），
   宽高比对不上会把标志横向压扁 3%。这里放开高度，由宽度按原比例算。
   -------------------------------------------------------------------------- */
#footer .footer .footer-top-bg .footer-top > a img { width: 118px; height: auto; }
@media only screen and (max-width: 1280px) { #footer .footer .footer-top-bg .footer-top > a img { width: 90px; height: auto; } }
@media only screen and (max-width: 640px)  { #footer .footer .footer-top-bg .footer-top a img { width: 70px; height: auto; } }
#header .header .header-cot .left img { height: auto; }

/* --------------------------------------------------------------------------
   15. 区块背景统一换成九聚自己的素材
   原 assets/img 里几张背景图带着第三方品牌标识，而这几条 CSS 规则在本站是**真的会命中**的
   （body class 与区块 class 都一样），必须覆盖掉。这里改指向九聚自己的产线照
   （淡出到浅色，与首页产品轮播底纹同一手法）。
   原图未删除，已移出发布目录（见交付文档 6.4）。
   -------------------------------------------------------------------------- */
.home-page .about      { background-image: url(../../images/theme-bg/home-about.jpg) !important; }
.home-page .join       { background-image: url(../../images/theme-bg/home-app.jpg) !important; }
.home-page .innovation { background-image: url(../../images/theme-bg/home-tech.jpg) !important; }
.innovation .bg2       { background-image: url(../../images/theme-bg/tech-intro.jpg) !important; }
.about .content4       { background-image: url(../../images/theme-bg/about-team.jpg) !important; }

/* 首页产品轮播卡片的兜底底色：
   卡片背景图是模板按栏目别名内联写的 images/product/bg-{别名}.jpg，
   内联样式优先级高于样式表，图片 404 时 CSS 里的 background-image 兜底不会生效，
   所以改用 background-color 兜底（属性不同，不会被内联的 background-image 覆盖）。
   新增产品栏目却忘了放 bg-{别名}.jpg 时，卡片是干净的浅灰蓝底而不是穿帮的空白。 */
.home-page .product .fw-box .center .content .box { background-color: #eef2f8; }

/* --------------------------------------------------------------------------
   16. 内联 SVG 图标（about 页「研发 / 改性 / 制造 / 服务」）
   原来这四个位子是 <img>，其中一张带第三方品牌标识，改成内联 SVG 手绘。
   main.css 里的尺寸规则挂在 .tb img 上，SVG 匹配不到，这里补一份。
   颜色走 currentColor，跟着 .jj-icon 的 color 走，改主题色不用重画图标。
   -------------------------------------------------------------------------- */
.jj-icon {
	color: #146dc6;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
	display: block;
	overflow: visible;
}
.about .content1 .box .left .but .tb svg { width: 55px; height: 55px; margin-bottom: 16px; transition: all 0.25s; }
.about .content1 .box .left .but .tb:hover > svg { transform: scale(1.1); }
.about .content1 .box .left .but .tb:hover > p { color: #146dc6; }
@media only screen and (max-width: 1536px) { .about .content1 .box .left .but .tb svg { width: 45px; height: 45px; } }
@media screen and (max-width: 750px) { .about .content1 .box .left .but .tb svg { width: 40px; height: 40px; margin-bottom: 10px; } }

/* 页脚「技术支持」：跟版权号同一行，宽屏靠右排，窄屏自然换行 */
#footer .footer .footer-bottom .bottom-cont .left p .ft-tech { margin-left: 24px; }
#footer .footer .footer-bottom .bottom-cont .left p .ft-tech a { color: #8b8b8b; }
#footer .footer .footer-bottom .bottom-cont .left p .ft-tech a:hover { color: #146dc6; text-decoration: underline; }
@media only screen and (max-width: 640px) {
	#footer .footer .footer-bottom .bottom-cont .left p .ft-tech { display: block; margin-left: 0; }
}

/* --------------------------------------------------------------------------
   17. 移动端修正
   -------------------------------------------------------------------------- */

/* ① 关于我们「企业风采」轮播：原设计把左右箭头用 margin -70px 顶到容器外面，
   桌面端容器两侧有富余所以看不出问题；窄屏容器占满宽度，按钮就把页面撑出
   横向滚动条（实测 390px 视口下文档宽 441px）。这里把箭头收回容器内叠在图上。 */
@media only screen and (max-width: 1280px) {
	.about .content4 .box .last .controller { top: 50%; padding: 0 8px; box-sizing: border-box; }
	.about .content4 .box .last .controller .btn { margin-left: 0; }
	.about .content4 .box .last .controller .btn.swiper-next { margin-left: 0; margin-right: 0; }
}

/* ② 浅色区块上的白底按钮：原主题这几个按钮是 #fff 底 + 近白描边（#E9F3FB / #EEE），
   配原来那批深色背景图没问题；换成九聚的高调浅色背景后几乎看不见。加深描边和文字。 */
.home-page .about .cx-box > .title .btns .btn,
.home-page .gyTitle .button {
	border-color: #c9dcf0;
	color: #1b3a5c;
	box-shadow: 0 2px 10px rgba(20, 109, 198, 0.08);
}
.home-page .gyTitle .button { color: #146dc6; }

/* ③ 首页产品轮播里的产品图是白底实拍，直接压在浅色卡片底纹上会看到一圈生硬的白边，
   加个圆角和淡阴影，让它像一张摆在底纹上的照片。
   不用 mix-blend-mode:multiply —— 灌封胶、绝缘片那两张是深色底，正片叠底会糊成一团。 */
.home-page .product .fw-box .center .content .box .da .right .right-img {
	border-radius: 10px;
	box-shadow: 0 6px 22px rgba(40, 60, 90, 0.10);
}

/* ④ 文章详情页正文区：原样式把宽度写死成 .cont=1323px / .img=.txt=1132px，
   而流式的移动端覆盖要到 750px 断点才生效。结果 751~1322px 之间（平板、小笔记本、
   分屏窗口）整页横向溢出——实测 768px 视口下文档宽度 1323px，溢出 555px。
   ≤750px 时因为 body{overflow-x:hidden} 看不出来，但正文其实被裁掉了。
   这里从一开始就改成流式，桌面端仍用 max-width 保持原来的版心。 */
.news-particulars .cont {
	width: 100%;
	max-width: 1323px;
	box-sizing: border-box;
}
@media only screen and (max-width: 1400px) {
	.news-particulars .cont { padding-left: 5vw; padding-right: 5vw; }
}
.news-particulars .cont .img,
.news-particulars .cont .txt { width: 100%; max-width: 1132px; }
/* 首图不再强制裁成 1132x638，按原图比例自适应，移动端也不会被压变形 */
.news-particulars .cont .img { height: auto; }
.news-particulars .cont .img > img { width: 100%; height: auto; display: block; }
/* 100vw 会把滚动条宽度也算进去，是另一个横向溢出源 */
.news-particulars .change-page { width: 100%; box-sizing: border-box; }

/* ⑤ 【致命】页脚底栏被 nowrap 撑出整站横向溢出，导致移动端汉堡菜单点不到
   main.css 在 ≤1024px 给 .bottom-cont .left 加了 white-space:nowrap，原主题那里只有一行
   短版权号所以看不出问题。本站三行文案（版权+备案+技术支持 / 三个邮箱 / 地址）长得多，
   一行排不下又不许换行 —— 实测 390px 视口下这一行 477px 宽，把整份文档撑到 502px。
   连锁反应（这才是真正致命的地方）：
     · body{overflow-x:hidden} 会把横向溢出裁掉，页面**滚不动**，只是右边内容消失；
     · position:fixed 的 #header 按 width:100% 拿到的是被撑大的 502px，
       右上角汉堡菜单落在 x=447~477，而视口只有 390 —— 手机上导航菜单永远点不到。
   所有 375/390/412/430 宽的主流机型都中招。这里放开换行。 */
@media only screen and (max-width: 1024px) {
	#footer .footer .footer-bottom .bottom-cont .left,
	#footer .footer .footer-bottom .bottom-cont .left p { white-space: normal; }
}

/* ⑥ 头部宽度兜底：万一以后又有别的元素撑出横向溢出，
   固定定位的头部也不该跟着变宽把汉堡菜单顶出屏幕。
   100vw 始终等于视口宽度，不受文档溢出影响；桌面端 width:100% 本来就 ≤ 100vw，不受影响。 */
#header { max-width: 100vw; }

/* ⑦ 内页二级导航条（栏目子导航）在窄屏挤成竖排单字
   .sub-menu 是 flex + justify-content:center，条目多时每个 <a> 被压到一两个字宽，
   「导热垫片」竖成四行，「无人机」竖成三行，首尾条目还被切掉（实测 390px 下产品中心页
   7 个条目全部竖排）。改成移动端常见的横向滚动条：不换行、不收缩、可左右滑。
   断点取 1200px 与头部切汉堡菜单的断点对齐，避免 751~1200px 之间又出现夹缝。 */
@media only screen and (max-width: 1200px) {
	.sub-menu {
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 0 5vw !important;
	}
	.sub-menu::-webkit-scrollbar { display: none; }
	.sub-menu a {
		white-space: nowrap;
		flex-shrink: 0;
		line-height: 50px;
	}
	.sub-menu a + a { margin-left: 28px; }
	/* main.css 里 .about .sub-menu 用 space-between + padding:0 5% 强行摊开，
	   条目多时同样会被压竖排，这里一并接管。 */
	.about .sub-menu { justify-content: flex-start; }
	.about .sub-menu a + a { margin-left: 28px !important; }
}

/* ⑧ 首页产品区 tab 条在 751~1200px 之间溢出
   main.css 只在 ≤750px 给 .tab .bt 加了 overflow-x:auto，而 751~1200px 之间
   仍是一行 flex + margin-left:3vw，7 个产品栏目排不下 —— 实测 768px 视口文档宽 805px。
   把同一套横向滚动处理提前到 1200px（与头部断点对齐）。 */
@media only screen and (max-width: 1200px) {
	.home-page .product .fw-box .center .tab {
		flex-direction: column;
		padding-right: 0;
		width: 100%;
	}
	.home-page .product .fw-box .center .tab .bt {
		width: 100%;
		justify-content: flex-start;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.home-page .product .fw-box .center .tab .bt::-webkit-scrollbar { display: none; }
	.home-page .product .fw-box .center .tab .bt .swiper-pagination-bullet {
		margin-left: 0 !important;
		margin-top: 15px;
		white-space: nowrap;
		flex-shrink: 0;
	}
	.home-page .product .fw-box .center .tab .bt .swiper-pagination-bullet + .swiper-pagination-bullet {
		margin-left: 24px !important;
	}
}

/* ⑨ 100vw 含滚动条宽度，桌面端会让这些整宽区块比 body 宽出一条滚动条
   （被 body{overflow-x:hidden} 裁掉，表现为右侧内容缺一小条）。改成 100%。
   移动端是覆盖式滚动条，本来就没差，属于顺手收掉的隐患。 */
body,
#footer .footer,
#footer .footer .center,
#footer .footer .footer-bottom { width: 100%; }

/* ⑩ 汉堡菜单按钮的点按区域太小
   main.css 在 ≤750px 把按钮缩到 30×34，低于 iOS/Android 44px 的最小点按目标，
   而它是移动端唯一的导航入口。这里把点按区扩到 44×44，三根横杠仍保持 30px 宽的视觉，
   只是重新居中，外观不变。 */
@media only screen and (max-width: 750px) {
	#header .header .header-cot .mobile-menu { width: 44px; height: 44px; }
	#header .header .header-cot .mobile-menu span { width: 30px; left: 7px; top: 21px; }
	#header .header .header-cot .mobile-menu span:nth-child(1) { top: 11px; }
	#header .header .header-cot .mobile-menu span:nth-child(3) { top: 31px; }
	#header.open .header .header-cot .mobile-menu span:nth-child(1),
	#header.open .header .header-cot .mobile-menu span:nth-child(3) { top: 21px; }
}

/* ⑪ iOS Safari 聚焦表单会把整页放大
   main.css 在 ≤640px 把 input / select / textarea 的字号降到 14px。
   iOS Safari 的规则是：聚焦时字号 < 16px 就自动放大页面，而且失焦后不会自己缩回去，
   用户填完「在线留言」会发现整站变成横向滚动的放大状态。
   字号回到 16px 即可，视觉上和 14px 差别很小，换来的是不再跳缩放。 */
@media only screen and (max-width: 640px) {
	.about .contact-us .box .form form .form-item input,
	.about .contact-us .box .form form .form-item select,
	.about .contact-us .box .form form .form-item textarea { font-size: 16px; }
}

/* ⑫ 富文本里的宽表格：滚动处理原来只在 ≤640px 生效
   正文容器在桌面端是 1132px，641~1132px 之间（平板竖屏、分屏窗口）超宽表格照样撑破版心。
   断点提到 1200px，与其他移动端处理对齐。桌面端不受影响。 */
@media only screen and (max-width: 1200px) {
	.jj-article-body table,
	.news-particulars .cont .txt table { display: block; overflow-x: auto; max-width: 100%; }
}

/* ⑬ 品质保障页顶部三张卡片的配图在窄屏被从顶部硬裁
   .img-box 在移动端是固定 350px 高 + overflow:hidden，而里面的 img 只有 width:100%，
   高度按原比例撑到 690px，等于只露出图片最上面一半。改成等比裁切并居中取景。
   断点跟 main.css 里设 height:350px 的那条（≤1280px）保持一致。 */
@media only screen and (max-width: 1280px) {
	.Product_service #cont2 .top-img .tou .item .img-box img {
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

/* ⑭ 「查看该系列产品 ›」「查看详情 ›」的箭头在窄屏被甩到下一行
   .test .icon 是主题给「多个图标 + 文字」的三栏列表设计的（column-count:3，移动端 2），
   本站每个 .icon 里只放一条入口链接，被分栏挤成半栏宽后文字和箭头就断行了。
   这两处用法在本套模板里都只有一个子元素，直接取消分栏并禁止链接断行。 */
.Product_service #cont1 .test .icon { column-count: 1; }
.Product_service #cont1 .test .icon div p a,
.home-page .product .fw-box .center .content .box .da .left .icon div a { white-space: nowrap; }

/* ⑮ 关于我们「总裁致辞 / 总裁寄语」切换按钮在 320px 机型撑出横向溢出
   两个按钮 min-width:160px + 中间 5vw 间距，320px 视口下合计 336px（实测文档宽 328px）。
   改成允许收缩：336px 以上的屏幕仍是原来的 160px，再窄就等比缩一点，外观基本无变化。 */
@media only screen and (max-width: 640px) {
	.about .content4 .box .names .tab .item { min-width: 0; flex: 0 1 160px; }
}

/* ⑯ 常用导航链接的点按区域偏小（触摸屏建议 ≥44px）
   头部/页脚 LOGO（回首页）在移动端只有 70×22，面包屑「首页」只有 24×17。
   用「加 padding + 等量负 margin」把可点区域撑到 44px 高：
   元素的外框尺寸不变，页面一个像素都不动，只是手指更容易点中。 */
@media only screen and (max-width: 1200px) {
	#header .header .header-cot > a.left,
	#footer .footer .footer-top-bg .footer-top > a {
		padding: 11px 0;
		margin: -11px 0;
	}
	.banner-sub .breadcrumb a,
	.news-particulars .nav .crumb a,
	.news-particulars .nav > a {
		padding: 10px 0;
		margin: -10px 0;
	}
}

/* --------------------------------------------------------------------------
   18. 首页新闻中心：桌面端缩略图不显示
   .list 是 display:flex + align-items:center，而 .img 是个空 div（图走 background-image）。
   main.css 只在 ≤1200px 的分支里给了 .img 高度（210×150），
   桌面端那条基础规则（main.css:1794）只写了 width:290px 没写 height——
   align-items:center 下 flex item 按内容高度收缩，空 div 的内容高度是 0，
   于是整块缩略图在桌面端塌成 0 高、完全不显示，移动端反而正常。
   高度按素材比例（imageSize 取的是 580×380 ≈ 1.526）配桌面两档宽度算：
     290px 宽 → 190px 高（.list 高 220px，上下各留 15px）
     220px 宽 → 144px 高（矮屏档 .list 高 160px，上下各留 8px）
   ⚠ 必须包在 min-width 里：jj.css 在 main.css 之后加载，
   写成无条件规则会反过来盖掉 main.css 里 ≤1200px 的 150px。
   顺带补 flex-shrink:0——桌面端基础规则也漏了，标题长时图片会被压窄。
   -------------------------------------------------------------------------- */
@media screen and (min-width: 1201px) {
	.home-page .home-news .xw-box .center .content .right .news-lists .list .img {
		height: 190px;
		flex-shrink: 0;
	}
}
/* 矮屏笔记本档，对应 main.css 里把 .list 压到 160px、.img 压到 220px 的那条 */
@media screen and (min-width: 1366px) and (max-height: 900px) {
	.home-page .home-news .xw-box .center .content .right .news-lists .list .img {
		height: 144px;
	}
}

/* --------------------------------------------------------------------------
   19. 主行动按钮 .jj-btn-primary（实心品牌蓝）
   用在「查看该系列产品」（产品总览页）和「查看详情」（首页产品轮播）这两个
   进入产品列表的主入口上。原来是裸链接 + 内联 color，跟正文没有层次区分。
   站内次级按钮（.gyTitle .button / .btns .btn）是「白底 + 描边 + hover 转蓝」，
   这里用实心蓝拉开主次，不跟它们撞。
   inline-flex 而不是 block：这两处外层都是 <p>，按钮要跟着文字流走、宽度包内容。
   -------------------------------------------------------------------------- */
.jj-btn-primary {
	display: inline-flex;
	align-items: center;
	padding: 13px 30px;
	border-radius: 8px;
	background: #146dc6;
	color: #fff !important;          /* 盖掉 .icon a 那条继承来的 color */
	font-size: 16px;
	font-weight: bold;
	line-height: 1;
	white-space: nowrap;
	box-shadow: 0 4px 14px rgba(20, 109, 198, 0.28);
	transition: background-color 0.25s, box-shadow 0.25s, transform 0.25s;
}
.jj-btn-primary .iconfont {
	margin-left: 8px;
	font-size: 13px;
	transition: transform 0.25s;
}
.jj-btn-primary:hover {
	background: #0f57a0;
	box-shadow: 0 8px 22px rgba(20, 109, 198, 0.38);
	transform: translateY(-2px);
}
.jj-btn-primary:hover .iconfont { transform: translateX(4px); }
.jj-btn-primary:active {
	transform: translateY(0);
	box-shadow: 0 3px 10px rgba(20, 109, 198, 0.30);
}
/* 触摸屏没有 hover，位移动画只会让点击有延迟感；同时收窄到更适合拇指的尺寸 */
@media only screen and (max-width: 1200px) {
	.jj-btn-primary { padding: 12px 24px; font-size: 15px; }
	.jj-btn-primary:hover { transform: none; }
}

/* --------------------------------------------------------------------------
   20. 产品总览页入口按钮所在的 .icon 容器
   ⚠ 这里同时修正上面第 ⑭ 条：那条写的是 `.Product_service #cont1 .test .icon`
   （ID 1 + class 3），而 main.css:3310 是
   `.Product_service #cont1 .content .cp1 .test .icon`（ID 1 + class 5），
   特异性更高，所以 column-count:3 一直没被盖掉，入口链接始终被挤在 1/3 栏宽里断行。
   下面用与 main.css 完全相同的选择器重写（jj.css 后加载，同特异性后者胜）。

   .icon div 原本是 align-items:center + text-align:center，
   那是给「图标在上、文字在下」的三栏图标列表设计的；本站这里只放一个入口按钮，
   居中会跟左对齐的标题、正文错位，桌面端改成左对齐。
   移动端（≤750px）main.css 已经是 flex-direction:initial + justify-content:left，
   本来就是左对齐，不用动，所以下面限定 min-width:751px。
   -------------------------------------------------------------------------- */
.Product_service #cont1 .content .cp1 .test .icon,
.Product_service #cont1 .content2-2 .cp1 .test .icon,
.Product_service #cont1 .content3 .cp1 .test .icon {
	column-count: 1;
}
/* text-align 不分端：移动端 main.css 没重置它，会继承桌面基础规则的 center，
   于是按钮在手机上居中、跟左对齐的标题正文错位。 */
.Product_service #cont1 .content .cp1 .test .icon div,
.Product_service #cont1 .content2-2 .cp1 .test .icon div,
.Product_service #cont1 .content3 .cp1 .test .icon div {
	text-align: left;
}
@media screen and (min-width: 751px) {
	.Product_service #cont1 .content .cp1 .test .icon div,
	.Product_service #cont1 .content2-2 .cp1 .test .icon div,
	.Product_service #cont1 .content3 .cp1 .test .icon div {
		align-items: flex-start;
		padding-top: 40px;      /* 原 56px 是给图标列表留的，按钮不需要那么空 */
	}
}
