:root{
  --navy:#1e3a5f; --navy-dark:#14283f; --navy-2:#2c4f7c;
  --accent:#f0832b; --accent-dark:#d96d18;
  --bg:#f5f7fa; --card:#ffffff; --line:#e6ebf1;
  --text:#2a2f36; --muted:#6b7280; --ok:#2e9e5b;
  --radius:14px; --shadow:0 6px 24px rgba(20,40,63,.08);
  --maxw:1180px;
}
*{box-sizing:border-box;}
[hidden]{display:none !important;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--text); background:var(--bg); line-height:1.65; -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 20px;}
.hide-sm{display:inline;}

/* ---------- 顶部条 ---------- */
.topbar{background:var(--navy-dark); color:#cdd9e6; font-size:13px;}
.topbar-inner{display:flex; gap:24px; height:36px; align-items:center;}
.topbar-item{white-space:nowrap;}

/* ---------- 头部 ---------- */
.header{background:var(--navy); position:sticky; top:0; z-index:50; box-shadow:0 2px 12px rgba(0,0,0,.12);}
.header-inner{display:flex; align-items:center; gap:18px; height:68px;}
.brand{display:flex; align-items:center; gap:12px; color:#fff;}
.brand-mark{width:42px; height:42px; border-radius:10px; background:var(--accent); color:#fff;
  display:grid; place-items:center; font-weight:800; font-size:22px; box-shadow:0 4px 12px rgba(240,131,43,.4);}
.brand-text{display:flex; flex-direction:column; line-height:1.15;}
.brand-text strong{font-size:19px; letter-spacing:1px;}
.brand-text em{font-style:normal; font-size:12px; color:#9fb4cc;}
.nav{display:flex; gap:6px; margin-left:auto;}
.nav a{padding:10px 16px; color:#dce6f2; border-radius:8px; font-size:15px; transition:.2s;}
.nav a:hover{background:rgba(255,255,255,.08); color:#fff;}
.nav a.active{background:var(--accent); color:#fff; font-weight:600;}
.btn-chat-top{background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff;
  padding:9px 14px; border-radius:8px; cursor:pointer; font-size:14px;}
.btn-chat-top:hover{background:rgba(255,255,255,.1);}
.nav-toggle{display:none; background:none; border:none; color:#fff; font-size:26px; cursor:pointer;}

/* ---------- 导航二级类目下拉 ---------- */
.nav-item.has-sub{position:relative;}
.nav-item.has-sub > a .caret{font-size:10px; margin-left:3px; opacity:.85; transition:transform .2s;}
.nav-item.has-sub:hover > a .caret{transform:rotate(180deg);}
.nav-item.has-sub .sub-menu{
  position:absolute; top:calc(100% + 6px); left:0; min-width:172px;
  background:var(--navy); border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.28);
  padding:6px; display:none; flex-direction:column; gap:2px; z-index:60;
}
.nav-item.has-sub:hover .sub-menu,
.nav-item.has-sub.open .sub-menu{display:flex;}
.sub-menu a{padding:10px 14px; color:#dce6f2; border-radius:7px; font-size:14px; white-space:nowrap;}
.sub-menu a:hover{background:rgba(255,255,255,.08); color:#fff;}
.sub-menu a.active{background:var(--accent); color:#fff;}

/* ---------- 语言切换 ---------- */
.lang-switch{display:flex; gap:4px; align-items:center; margin-left:14px; border:1px solid rgba(255,255,255,.28);
  border-radius:20px; padding:3px; background:rgba(255,255,255,.06);}
.lang-btn{background:transparent; border:none; color:#cdd9e6; cursor:pointer; font-size:13px; font-weight:600;
  padding:5px 12px; border-radius:16px; transition:.2s; line-height:1;}
.lang-btn:hover{color:#fff;}
.lang-btn.active{background:var(--accent); color:#fff;}

/* ---------- FAQ 常见问题 ---------- */
.faq{max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:12px;}
.faq-item{background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:.2s;}
.faq-item:hover{border-color:var(--navy-2);}
.faq-q{display:flex; justify-content:space-between; align-items:center; gap:14px; cursor:pointer;
  padding:18px 22px; font-weight:600; color:var(--navy); font-size:16px;}
.faq-q::after{content:"+"; font-size:22px; color:var(--accent); transition:transform .25s; flex:none;}
.faq-item.open .faq-q::after{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; color:var(--muted); font-size:14.5px; line-height:1.75;
  padding:0 22px; transition:max-height .3s ease, padding .3s ease;}
.faq-item.open .faq-a{max-height:400px; padding:0 22px 20px;}

/* ---------- 通用按钮/区块 ---------- */
.btn-primary{display:inline-block; background:var(--accent); color:#fff; border:none; cursor:pointer;
  padding:12px 26px; border-radius:10px; font-size:15px; font-weight:600; transition:.2s;}
.btn-primary:hover{background:var(--accent-dark); transform:translateY(-1px);}
.btn-ghost{display:inline-block; border:1px solid var(--navy); color:var(--navy); padding:11px 24px;
  border-radius:10px; font-weight:600; cursor:pointer; background:#fff;}
.btn-ghost:hover{background:var(--navy); color:#fff;}
.btn-hero-ghost{background:transparent; color:#fff; border-color:#fff;}
.btn-hero-ghost:hover{background:#fff; color:var(--navy);}
.section{padding:64px 0;}
.section-title{text-align:center; margin-bottom:38px;}
.section-title h2{font-size:30px; margin:0 0 8px; color:var(--navy);}
.section-title p{color:var(--muted); margin:0;}
.app{min-height:60vh;}

/* ---------- Hero 轮播图 ---------- */
.hero{position:relative; color:#fff; overflow:hidden; height:420px; background:var(--navy-dark);}
.hero-slide{position:absolute; inset:0; opacity:0; transition:opacity .7s ease; z-index:1;}
.hero-slide.active{opacity:1; z-index:2;}
.hero-slide img{width:100%; height:100%; object-fit:cover;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,40,63,.78) 0%, rgba(20,40,63,.35) 60%, rgba(20,40,63,.12) 100%); z-index:2;}
.hero-content{position:relative; z-index:3; height:100%; display:flex; flex-direction:column; justify-content:center; padding:0 20px; max-width:680px; margin:0 auto 0 0;}
.hero h1{font-size:44px; line-height:1.2; margin:0 0 18px; letter-spacing:1px;}
.hero .tag{display:inline-block; background:rgba(240,131,43,.18); color:#ffd9b8; border:1px solid rgba(240,131,43,.5);
  padding:5px 14px; border-radius:30px; font-size:13px; margin-bottom:18px;}
.hero p{font-size:17px; color:#cdd9e6; margin:0 0 30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:34px; margin-top:42px;}
.hero-stats div{text-align:left;}
.hero-stats b{display:block; font-size:28px; color:var(--accent);}
.hero-stats span{font-size:13px; color:#9fb4cc;}
.hero-arrow{position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:#fff; font-size:22px; cursor:pointer;
  display:grid; place-items:center; transition:.2s; backdrop-filter:blur(4px);}
.hero-arrow:hover{background:rgba(255,255,255,.28);}
.hero-arrow.prev{left:20px;}
.hero-arrow.next{right:20px;}
.hero-dots{position:absolute; bottom:20px; left:50%; transform:translateX(-50%); z-index:4; display:flex; gap:10px;}
.hero-dot{width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.35); border:none; cursor:pointer; transition:.2s;}
.hero-dot.active{background:#fff; transform:scale(1.2);}
.hero-inner{position:relative; z-index:3; height:100%; display:flex; align-items:center;}

/* ---------- 卡片网格 ---------- */
.grid{display:grid; gap:22px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow); transition:.22s;}
.card:hover{transform:translateY(-4px); box-shadow:0 14px 34px rgba(20,40,63,.14);}
.card-img{position:relative; background:#eef2f7; display:grid; place-items:center; overflow:hidden; height:260px;}
.ph{display:none; color:#9fb4cc; font-weight:700; font-size:15px; letter-spacing:2px;}
.card-img img{max-width:100%; max-height:100%; object-fit:contain;}
.card-body{padding:16px 18px;}
.card-body h3{margin:0 0 6px; font-size:17px; color:var(--navy);}
.card-body .desc{color:var(--muted); font-size:14px; min-height:40px;}
.card-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px;}
.tag-pill{background:#eef3f9; color:var(--navy-2); font-size:12px; padding:3px 10px; border-radius:20px;}

/* ---------- 优势 ---------- */
.feat{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px; text-align:center;
  box-shadow:var(--shadow);}
.feat .ico{width:54px; height:54px; margin:0 auto 14px; border-radius:14px; background:var(--navy); color:#fff;
  display:grid; place-items:center; font-size:24px;}
.feat h3{margin:0 0 6px; color:var(--navy); font-size:18px;}
.feat p{margin:0; color:var(--muted); font-size:14px;}

/* ---------- 产品分类筛选 ---------- */
.filters{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:32px;}
.filter-btn{border:1px solid var(--line); background:#fff; color:var(--navy); padding:8px 18px; border-radius:30px;
  cursor:pointer; font-size:14px; transition:.2s;}
.filter-btn:hover{border-color:var(--navy);}
.filter-btn.active{background:var(--navy); color:#fff; border-color:var(--navy);}
.price{color:var(--accent); font-weight:700; margin-top:8px;}

/* ---------- 产品详情 ---------- */
.detail-wrap{display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:start;}
.detail-gallery{display:flex; flex-direction:column; gap:14px;}
.detail-main{background:#eef2f7; border-radius:var(--radius); display:grid; place-items:center; min-height:400px; position:relative;}
.detail-main img{width:100%; height:auto; max-height:520px; object-fit:contain; border-radius:var(--radius);}
.zoom-lens{position:absolute; width:120px; height:120px; border:1px solid rgba(255,255,255,.7); background:rgba(120,160,220,.25); box-shadow:0 0 0 1px rgba(0,0,0,.15); pointer-events:none; display:none; z-index:10;}
.zoom-result{position:absolute; top:0; left:calc(100% + 14px); width:100%; height:100%; border-radius:var(--radius); border:1px solid #e2e8f0; background-color:#fff; background-repeat:no-repeat; display:none; z-index:30; box-shadow:0 12px 40px rgba(0,0,0,.18);}
.detail-thumbs{display:flex; align-items:center; gap:10px;}
.thumb-list{display:flex; gap:10px; overflow-x:auto; padding:4px 0; flex:1; scroll-behavior:smooth;}
.thumb-list::-webkit-scrollbar{height:4px;}
.thumb-list::-webkit-scrollbar-thumb{background:#cbd5e1; border-radius:2px;}
.detail-thumb{flex:0 0 92px; height:92px; border:2px solid transparent; border-radius:var(--radius); overflow:hidden; background:#eef2f7; cursor:pointer; display:grid; place-items:center; transition:border-color .2s;}
.detail-thumb.active{border-color:var(--navy);}
.detail-thumb img{width:100%; height:100%; object-fit:contain;}
.thumb-btn{width:32px; height:32px; border-radius:50%; border:1px solid var(--line); background:#fff; cursor:pointer; display:grid; place-items:center; font-size:18px; color:var(--navy); flex-shrink:0; transition:background .2s;}
.thumb-btn:hover{background:#f3f6fa;}
.detail-info h1{margin:0 0 6px; color:var(--navy); font-size:30px;}
.detail-info .cat{color:var(--muted); margin-bottom:14px;}
.detail-info .price{font-size:22px; margin:0 0 18px;}
.spec-table{width:100%; border-collapse:collapse; margin:18px 0; font-size:14px;}
.spec-table td{padding:10px 12px; border:1px solid var(--line);}
.spec-table td:first-child{background:#f3f6fa; color:var(--navy); width:42%; font-weight:600; white-space:pre-line;}
.spec-block-title{font-weight:700; color:var(--navy); margin:18px 0 8px; font-size:15px; border-left:3px solid var(--navy); padding-left:8px;}
.spec-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:4px 0 18px;}
.spec-compare{width:100%; border-collapse:collapse; font-size:13.5px; min-width:520px;}
.spec-compare th, .spec-compare td{padding:9px 10px; border:1px solid var(--line); text-align:center; vertical-align:middle;}
.spec-compare thead th{background:var(--navy); color:#fff; font-weight:600;}
.spec-compare tbody th{background:#f3f6fa; color:var(--navy); font-weight:600; text-align:left; white-space:nowrap;}
.spec-compare td{background:#fff;}
.spec-compare .spec-corner{background:#eef2f7;}
.spec-compare .spec-span{background:#fafcff; text-align:left; color:var(--muted);}
.feature-list{display:flex; flex-wrap:wrap; gap:8px; margin:14px 0;}
.video-box{margin-top:18px;}
.video-box iframe{width:100%; aspect-ratio:16/9; border:0; border-radius:var(--radius);}

/* ---------- 关于 ---------- */
.about-hero{background:linear-gradient(120deg,#1e3a5f,#2c4f7c); color:#fff; padding:56px 0;}
.about-hero h1{margin:0 0 12px; font-size:32px;}
.about-hero p{max-width:760px; color:#d6e1ee;}

/* ---------- 联系 ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start;}
.contact-list{margin-bottom:14px;}
.contact-item{display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; transition:background .15s;}
.contact-item:hover{background:#f8fafc;}
.contact-item .emoji{font-size:24px;}
.contact-item b{display:block; color:var(--navy);}
.contact-wa{display:flex; gap:16px; align-items:center; background:#25d366; color:#fff; border-radius:var(--radius); padding:16px 18px; margin-bottom:18px; text-decoration:none; transition:transform .15s, box-shadow .15s; box-shadow:0 4px 12px rgba(37,211,102,.25);}
.contact-wa:hover{transform:translateY(-2px); box-shadow:0 8px 20px rgba(37,211,102,.35);}
.contact-wa-qr{background:rgba(255,255,255,.2); border-radius:50%; width:52px; height:52px; display:grid; place-items:center; flex-shrink:0;}
.contact-wa-info{line-height:1.4;}
.contact-wa-info b{display:block; font-size:15px;}
.contact-wa-info .wa-name{font-size:14px; opacity:.95;}
.contact-wa-info .wa-handle{font-size:13px; opacity:.85; display:block;}
.form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow);}
.form-card label{display:block; font-size:14px; color:var(--navy); margin:14px 0 6px; font-weight:600;}
.form-card input,.form-card textarea{width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:9px;
  font-size:14px; font-family:inherit; resize:vertical;}
.form-card input:focus,.form-card textarea:focus{outline:none; border-color:var(--navy);}
.map-note{background:#eef3f9; border-radius:10px; padding:14px; color:var(--muted); font-size:13px; margin-top:14px;}

/* ---------- 页脚 ---------- */
.footer{background:var(--navy-dark); color:#c5d3e2; margin-top:40px;}
.footer-inner{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:30px; padding:46px 0 30px;}
.footer h4{color:#fff; margin:0 0 12px; font-size:16px;}
.footer p{margin:4px 0; font-size:14px; color:#9fb4cc;}
.footer-links{display:flex; flex-wrap:wrap; gap:8px;}
.footer-links a{color:#9fb4cc; text-decoration:none; font-size:14px; line-height:1.6; transition:color .2s;}
.footer-links a:hover{color:#fff;}
.footer-links .sep{color:rgba(255,255,255,.2); margin:0 4px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08); padding:16px 0; font-size:13px; color:#7e93ab; text-align:center;}

/* ---------- 悬浮客服 ---------- */
.chat-fab{position:fixed; right:24px; bottom:24px; width:60px; height:60px; border-radius:50%; background:var(--accent);
  color:#fff; font-size:26px; display:grid; place-items:center; cursor:pointer; z-index:80; box-shadow:0 8px 22px rgba(240,131,43,.5);}
.chat-fab:hover{background:var(--accent-dark);}
.chat-panel{position:fixed; right:24px; bottom:96px; width:360px; max-width:calc(100vw - 32px); height:520px; max-height:calc(100vh - 120px);
  background:#fff; border-radius:16px; box-shadow:0 18px 50px rgba(20,40,63,.28); z-index:90; display:flex; flex-direction:column; overflow:hidden;}
.chat-head{background:var(--navy); color:#fff; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; font-weight:600;}
.chat-close{background:none; border:none; color:#fff; font-size:22px; cursor:pointer; line-height:1;}
.chat-body{flex:1; overflow-y:auto; padding:16px; background:#f7f9fc; display:flex; flex-direction:column; gap:12px;}
.msg{max-width:82%; padding:10px 13px; border-radius:12px; font-size:14px; white-space:pre-wrap; word-break:break-word;}
.msg.user{align-self:flex-end; background:var(--navy); color:#fff; border-bottom-right-radius:4px;}
.msg.bot{align-self:flex-start; background:#fff; border:1px solid var(--line); border-bottom-left-radius:4px;}
.chat-suggest{display:flex; flex-wrap:wrap; gap:8px; padding:8px 12px; border-top:1px solid var(--line);}
.chat-suggest button{border:1px solid var(--navy); background:#fff; color:var(--navy); font-size:12px; padding:6px 10px; border-radius:20px; cursor:pointer;}
.chat-suggest button:hover{background:var(--navy); color:#fff;}
.chat-input{display:flex; border-top:1px solid var(--line);}
.chat-input input{flex:1; border:none; padding:13px; font-size:14px; outline:none;}
.chat-input button{background:var(--accent); color:#fff; border:none; padding:0 20px; cursor:pointer; font-weight:600;}
.chat-input button:hover{background:var(--accent-dark);}
.msg.typing{display:flex; gap:4px; align-items:center;}
.msg.typing i{width:6px; height:6px; border-radius:50%; background:var(--muted); animation:blink 1.2s infinite;}
.msg.typing i:nth-child(2){animation-delay:.2s;} .msg.typing i:nth-child(3){animation-delay:.4s;}
@keyframes blink{0%,60%,100%{opacity:.3;}30%{opacity:1;}}

/* ---------- 留资弹窗 ---------- */
.modal{position:fixed; inset:0; background:rgba(20,40,63,.55); display:grid; place-items:center; z-index:120; padding:16px;}
.modal-card{background:#fff; border-radius:16px; padding:28px; width:420px; max-width:100%; position:relative;}
.modal-close{position:absolute; right:14px; top:12px; background:none; border:none; font-size:24px; cursor:pointer; color:var(--muted);}
.modal-card h3{margin:0 0 18px; color:var(--navy); font-size:19px;}
.modal-card label{display:block; font-size:14px; color:var(--navy); margin:12px 0 6px; font-weight:600;}
.modal-card input,.modal-card textarea{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:9px; font-family:inherit; font-size:14px;}
.modal-card .agree{display:flex; align-items:center; gap:8px; font-weight:400; color:var(--muted); font-size:13px;}
.modal-card .agree input{width:auto;}
.modal-card .btn-primary{width:100%; margin-top:18px;}

/* ---------- 企业风貌图廊 ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.gallery-item{border-radius:var(--radius); overflow:hidden; background:#eef2f7; border:1px solid var(--line);}
.gallery-item img{width:100%; display:block; object-fit:contain;}
@media (max-width:680px){.gallery-grid{grid-template-columns:1fr;}}

/* ---------- 企业荣誉 ---------- */
.honors-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start;}
.honor-item{border-radius:var(--radius); overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:0 2px 8px rgba(0,0,0,0.05); transition:transform .2s, box-shadow .2s;}
.honor-item:hover{transform:translateY(-3px); box-shadow:0 6px 18px rgba(0,0,0,0.08);}
.honor-item img{width:100%; display:block; object-fit:contain; background:#f8fafc; cursor:pointer;}
.honor-title{padding:12px 14px; text-align:center; font-size:14px; font-weight:600; color:var(--navy); border-top:1px solid var(--line);}
@media (max-width:900px){.honors-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:680px){.honors-grid{grid-template-columns:1fr;}}

/* ---------- 加载/空态 ---------- */
.loading,.empty{text-align:center; color:var(--muted); padding:60px 0;}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}
  .detail-wrap,.contact-grid,.footer-inner{grid-template-columns:1fr;}
  .zoom-lens,.zoom-result{display:none !important;}
  .detail-main img{max-height:440px;}
  .detail-thumb{flex:0 0 80px; height:80px;}
  .hero h1{font-size:34px;}
  .hero{height:360px;}
}
@media (max-width:680px){
  .nav{position:absolute; top:68px; left:0; right:0; background:var(--navy); flex-direction:column; gap:0;
    padding:8px 0; display:none; box-shadow:0 8px 20px rgba(0,0,0,.2);}
  .nav.open{display:flex;}
  .nav a{padding:13px 20px; border-radius:0;}
  .nav-item.has-sub .sub-menu{position:static; display:none; box-shadow:none; background:rgba(0,0,0,.18); padding:4px 0 4px 14px; margin:0;}
  .nav.open .nav-item.has-sub .sub-menu{display:flex;}
  .nav-item.has-sub > a .caret{float:right;}
  .nav-toggle{display:block; margin-left:auto;}
  .btn-chat-top{display:none;}
  .hide-sm{display:none;}
  .lang-switch{margin-left:auto;}
  .nav-toggle{margin-left:10px;}
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}
  .hero-stats{gap:22px;}
  .hero{height:280px;}
  .hero-content{padding:0 16px;}
  .detail-main img{max-height:340px;}
  .detail-thumb{flex:0 0 68px; height:68px;}
  .chat-panel{right:12px; left:12px; width:auto; bottom:84px;}
}

/* ===== 资料中心 Resource Center ===== */
.res-card{display:flex; flex-direction:column; text-decoration:none; color:inherit; cursor:pointer;}
.res-card:hover{box-shadow:var(--shadow); transform:translateY(-2px);}
.res-cover-ph{height:150px; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--navy),var(--navy-2)); color:#fff;}
.res-cover-ph span{font-size:15px; font-weight:600; letter-spacing:.05em; opacity:.92;}
.res-cat{display:inline-block; font-size:12px; color:var(--accent-dark); font-weight:600;
  background:rgba(240,131,43,.1); padding:2px 10px; border-radius:20px; margin-bottom:8px;}
.res-card h3{margin:4px 0 0; font-size:17px; line-height:1.45; color:var(--text);}
.res-more{display:inline-block; margin-top:12px; color:var(--navy); font-size:14px; font-weight:600;}

/* ===== 文档下载 Downloads ===== */
.doc-list{display:flex; flex-direction:column; gap:12px;}
.doc-item{display:flex; align-items:center; gap:14px; text-decoration:none; color:inherit;
  background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 18px; transition:.2s;}
.doc-item:hover{border-color:var(--accent); box-shadow:var(--shadow);}
.doc-ico{flex:0 0 auto; width:48px; height:48px; border-radius:10px; display:grid; place-items:center;
  background:var(--navy); color:#fff; font-size:12px; font-weight:700; letter-spacing:.03em;}
.doc-meta{flex:1 1 auto; display:flex; flex-direction:column; min-width:0;}
.doc-meta b{font-size:15.5px; color:var(--text);}
.doc-meta small{color:var(--muted); font-size:13px; margin-top:2px;}
.doc-dl{flex:0 0 auto; color:var(--accent-dark); font-weight:600; font-size:14px; white-space:nowrap;}

/* ===== 文章详情 Article ===== */
.container-narrow{max-width:820px; margin:0 auto; padding:0 20px;}
.crumb{max-width:820px; margin:0 auto; padding:0 20px; color:var(--muted); font-size:13.5px;}
.crumb a{color:var(--navy); text-decoration:none;}
.crumb a:hover{text-decoration:underline;}
.crumb span:last-child{color:var(--dark); font-weight:500;}
.article-view{padding-top:20px;}
.art-title{font-size:28px; line-height:1.35; margin:10px 0 12px; color:var(--text);}
.art-summary{color:var(--muted); font-size:16px; line-height:1.7; margin:0 0 18px; padding-bottom:18px; border-bottom:1px solid var(--line);}
.art-hero{border-radius:12px; overflow:hidden; margin:0 0 20px; background:#eef2f7; display:grid; place-items:center; padding:16px; max-height:420px;}
.art-hero img{max-width:100%; max-height:360px; width:auto; height:auto; object-fit:contain;}
.art-body{font-size:15.5px; line-height:1.85; color:var(--text);}
.art-body h3{font-size:20px; margin:26px 0 10px; padding-left:12px; border-left:4px solid var(--accent);}
.art-body h4{font-size:16.5px; margin:18px 0 8px; color:var(--navy);}
.art-body p{margin:10px 0;}
.art-body ul{margin:10px 0; padding-left:22px;}
.art-body li{margin:6px 0;}
.art-body strong{color:var(--navy-dark);}
.art-body blockquote{margin:14px 0; padding:12px 16px; background:rgba(30,58,95,.05);
  border-left:4px solid var(--navy-2); border-radius:0 8px 8px 0; color:var(--muted); font-size:14.5px;}
.art-table-wrap{overflow-x:auto; margin:16px 0;}
.art-table{border-collapse:collapse; width:100%; font-size:14px;}
.art-table th,.art-table td{border:1px solid var(--line); padding:9px 12px; text-align:left;}
.art-table th{background:var(--navy); color:#fff; font-weight:600; white-space:nowrap;}
.art-table tbody tr:nth-child(even){background:#f7f9fc;}
.art-cta{margin-top:30px; padding-top:22px; border-top:1px solid var(--line); display:flex; gap:12px; flex-wrap:wrap;}
@media(max-width:640px){ .art-title{font-size:23px;} .art-hero{max-height:300px; padding:12px;} .art-hero img{max-height:260px;} }
/* 缩略图 / 主图：不再悬停放大，点击看大图（详情页/图廊/文章封面可点） */
.zoomable{position:relative; cursor:zoom-in; transition:opacity .15s;}
@media (hover:hover){
  .zoomable:hover{opacity:.88;}
}
#lightbox{position:fixed; inset:0; z-index:900; display:none; place-items:center;}
#lightbox.open{display:grid;}
.lb-mask{position:absolute; inset:0; background:rgba(8,15,28,.86); backdrop-filter:blur(2px);}
.lb-img{max-width:92vw; max-height:90vh; width:auto; height:auto; object-fit:contain;
  border-radius:10px; box-shadow:0 18px 60px rgba(0,0,0,.5); position:relative; background:#fff; cursor:zoom-out;}
.lb-close{position:absolute; top:18px; right:22px; width:48px; height:48px; border-radius:50%;
  border:2px solid rgba(255,255,255,.5); background:rgba(0,0,0,.55); color:#fff; font-size:30px; line-height:1; cursor:pointer; z-index:1;
  display:grid; place-items:center; text-shadow:0 1px 3px rgba(0,0,0,.5);}
.lb-close:hover{background:rgba(0,0,0,.8);}
.lb-hint{position:absolute; bottom:22px; left:50%; transform:translateX(-50%); color:#fff; font-size:13px;
  background:rgba(0,0,0,.45); padding:6px 14px; border-radius:20px; pointer-events:none;}

/* Google Maps embed */
.map-embed{margin-top:12px; border-radius:10px; overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,.08);}
.map-embed iframe{width:100%; height:240px; display:block;}
.comms-note{margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.6;}
.policy-body p{line-height:1.85; color:#334; margin:0 0 12px;}

/* Language smart banner */
.lang-banner{position:fixed; top:0; left:0; right:0; z-index:1200; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; font-size:14px;
  box-shadow:0 2px 10px rgba(0,0,0,.25);}
.lang-banner .lb-text b{margin-right:6px;}
.lang-banner .lb-actions{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.lang-banner button{border:none; cursor:pointer; border-radius:6px; padding:6px 12px; font-size:13px;}
.lang-banner .lb-go{background:#fff; color:var(--navy); font-weight:600;}
.lang-banner .lb-stay{background:transparent; color:#cfe; border:1px solid rgba(255,255,255,.4);}
.lang-banner .lb-close{background:transparent; color:#cfe; font-size:18px; line-height:1; padding:2px 8px;}
@media (max-width:600px){ .lang-banner{flex-direction:column; align-items:flex-start;} }
