/* =========================================================
   S.R.P 数睿谱 · Industrial Physics-AI
   Design system v0.2 — light business style (keyso-like structure)
   ========================================================= */

:root {
  --bg:        #ffffff;
  --bg-soft:   #f5f7fa;
  --bg-alt:    #eef2f7;
  --card:      #ffffff;
  --line:      #e3e9f0;
  --line-2:    #cfd9e5;
  --text:      #16202e;
  --text-2:    #5a6b80;
  --text-3:    #90a0b3;
  --brand:     #1668dc;      /* 主蓝 */
  --brand-2:   #0a4fb0;      /* 深蓝 */
  --accent:    #00b8d9;      /* 科技青 */
  --grad:      linear-gradient(100deg, #0a4fb0 0%, #1668dc 55%, #00b8d9 100%);
  --shadow:    0 6px 24px rgba(22,40,70,.07);
  --shadow-lg: 0 16px 48px rgba(22,40,70,.13);
  --radius:    12px;
  --header-h:  72px;
  --topbar-h:  46px;
  --font-sans: "PingFang SC","Microsoft YaHei","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono: "JetBrains Mono","SF Mono",Consolas,"Courier New",monospace;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 10px); }
body {
  background:var(--bg); color:var(--text);
  font-family:var(--font-sans); font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; }
.container { width:min(1280px, 92vw); margin:0 auto; }

/* ---------- 通用 ---------- */
.eyebrow {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.24em;
  color:var(--brand); text-transform:uppercase; margin-bottom:14px; font-weight:600;
}
.grad-text { background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.btn {
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  padding:13px 28px; border-radius:8px; font-size:15px; font-weight:600;
  transition:transform .2s, box-shadow .25s, background .25s, color .25s, border-color .25s;
  cursor:pointer; border:1px solid transparent; white-space:nowrap;
}
.btn-primary { background:var(--brand); color:#fff; box-shadow:0 6px 20px -6px rgba(22,104,220,.5); }
.btn-primary:hover { background:var(--brand-2); transform:translateY(-2px); box-shadow:0 12px 30px -8px rgba(22,104,220,.6); }
.btn-ghost { border-color:var(--line-2); color:var(--text); background:#fff; }
.btn-ghost:hover { border-color:var(--brand); color:var(--brand); }
.btn-sm { padding:8px 18px; font-size:14px; border-radius:6px; }
/* 资料尚未提供的占位按钮（如 Datasheet Coming Soon） */
.btn-disabled {
  pointer-events:none; opacity:.55; cursor:not-allowed;
  border-style:dashed; background:transparent;
}
.btn svg { flex:none; }

/* ---------- 顶部工具条 ---------- */
.topbar {
  background:var(--brand-2); color:#fff; font-size:14.5px;
  height:var(--topbar-h); display:flex; align-items:center;
}
.topbar .container { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar-left { display:flex; align-items:center; gap:28px; }
.topbar-item { display:flex; align-items:center; gap:9px; color:#fff; font-weight:500; white-space:nowrap; }
.topbar-item svg { color:#9fc3f5; flex:none; }
.topbar-item:hover { color:#fff; }
.topbar-item:hover svg { color:#cfe4ff; }
.topbar-item strong { font-weight:700; letter-spacing:.01em; }
.topbar-right { display:flex; align-items:center; gap:18px; }
/* ---------- 语言切换：地球图标 + 下拉 ---------- */
.lang-menu { position:relative; }
.lang-trigger {
  display:flex; align-items:center; gap:7px;
  background:none; border:0; cursor:pointer;
  color:#cfe0f7; font-size:13.5px; font-weight:600; letter-spacing:.04em;
  padding:6px 10px; border-radius:6px; transition:color .2s, background .2s;
}
.lang-trigger:hover, .lang-menu:hover .lang-trigger, .lang-menu.open .lang-trigger {
  color:#fff; background:rgba(255,255,255,.14);
}
.lang-globe { color:#9fc3f5; flex:none; transition:color .2s; }
.lang-trigger:hover .lang-globe, .lang-menu:hover .lang-globe, .lang-menu.open .lang-globe { color:#cfe4ff; }
.lang-caret { transition:transform .2s; opacity:.8; }
.lang-menu:hover .lang-caret, .lang-menu.open .lang-caret { transform:rotate(180deg); }

.lang-dropdown {
  position:absolute; top:calc(100% + 10px); right:0; z-index:200;
  min-width:168px; padding:6px; margin:0;
  background:#fff; border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity .18s, transform .18s, visibility .18s;
}
/* 桥接触发按钮与菜单之间的间隙，hover 移动时菜单不收起 */
.lang-dropdown::before { content:""; position:absolute; top:-10px; right:0; left:0; height:10px; }
.lang-menu:hover .lang-dropdown, .lang-menu.open .lang-dropdown {
  opacity:1; visibility:visible; transform:translateY(0);
}
.lang-dropdown a {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:9px 12px; border-radius:7px;
  color:var(--text); font-size:14.5px; white-space:nowrap;
  transition:background .15s, color .15s;
}
.lang-dropdown a:hover, .lang-dropdown a:focus-visible { background:var(--bg-soft); color:var(--brand); }
.lang-check { color:var(--brand); flex:none; visibility:hidden; }
.lang-dropdown a.is-current { color:var(--brand); font-weight:600; }
.lang-dropdown a.is-current .lang-check { visibility:visible; }

@media (hover: none) {
  /* 触屏设备无 hover：菜单只能由 .open 类展开（JS 点击切换） */
  .lang-menu:hover .lang-dropdown { opacity:0; visibility:hidden; transform:translateY(-4px); }
  .lang-menu:hover .lang-trigger { color:#cfe0f7; background:transparent; }
  .lang-menu:hover .lang-caret { transform:none; }
  .lang-menu.open .lang-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
  .lang-menu.open .lang-trigger { color:#fff; background:rgba(255,255,255,.14); }
  .lang-menu.open .lang-caret { transform:rotate(180deg); }
}

/* ---------- 头部导航 ---------- */
.site-header {
  position:sticky; top:0; z-index:110; height:var(--header-h);
  background:#fff; border-bottom:1px solid var(--line);
  transition:box-shadow .25s;
}
.site-header.scrolled { box-shadow:0 4px 20px rgba(22,40,70,.08); }
.nav { height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--brand); flex:none; }
.brand-mark { display:flex; }
.brand-text { font-size:19px; font-weight:800; letter-spacing:.02em; color:var(--text); line-height:1.2; }
.brand-text em { display:block; font-style:normal; font-family:var(--font-mono); font-size:10px; font-weight:500; color:var(--text-3); letter-spacing:.16em; }

.nav-links { display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav-links > li { position:relative; }
.nav-links a, .nav-links .nav-label {
  display:flex; align-items:center; gap:5px;
  padding:10px 14px; font-size:15px; color:var(--text); border-radius:6px;
  cursor:pointer; transition:color .2s, background .2s; white-space:nowrap;
}
.nav-links a:hover, .nav-links li:hover > .nav-label { color:var(--brand); background:var(--bg-soft); }
.nav-links .has-drop > .nav-label::after {
  content:""; width:7px; height:7px; margin-top:-4px;
  border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor;
  transform:rotate(45deg); opacity:.6; transition:transform .25s;
}
.nav-links .has-drop:hover > .nav-label::after { transform:rotate(225deg); }
.nav-links > li.has-drop > .nav-label { display:flex; }

/* 下拉菜单 */
.dropdown {
  position:absolute; top:calc(100% + 12px); left:0; min-width:250px;
  background:#fff; border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow-lg); padding:10px 8px; z-index:97;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .22s, transform .22s, visibility .22s;
}
.has-drop:hover > .dropdown { opacity:1; visibility:visible; transform:none; }
.dropdown a { display:block; padding:9px 14px; border-radius:6px; color:var(--text-2); font-size:14px; }
.dropdown a:hover { background:var(--bg-soft); color:var(--brand); }
.dropdown .dd-title {
  padding:10px 14px 8px; font-size:12px; font-family:var(--font-mono);
  letter-spacing:.12em; color:var(--text-3); text-transform:uppercase;
  border-bottom:1px solid var(--line); margin-bottom:6px; border-radius:0;
}
.dropdown .dd-title:hover { background:none; color:var(--text-3); }

.nav-actions { display:flex; align-items:center; gap:10px; flex:none; margin-left:10px; }
.nav-search-btn {
  width:38px; height:38px; border-radius:8px; border:1px solid var(--line);
  background:#fff; color:var(--text-2); cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:.2s;
}
.nav-search-btn:hover { border-color:var(--brand); color:var(--brand); }
.nav-toggle { display:none; background:none; border:0; flex-direction:column; gap:5px; cursor:pointer; padding:6px; }
.nav-toggle span { width:24px; height:2px; background:var(--text); transition:.3s; }

/* 移动端面板内的搜索入口：底部圆角搜索框（桌面端隐藏） */
.nav-search-item { display:none; }
.nav-search-item button {
  width:100%; display:flex; align-items:center; gap:10px;
  padding:13px 16px; font-size:15px; font-family:inherit; text-align:left;
  background:#fff; border:1px solid var(--line-2); border-radius:26px;
  color:var(--text-3); cursor:pointer;
}
.nav-search-item button span { flex:1; }
.nav-search-item button svg { color:var(--brand); flex:none; }
.nav-search-item button:active { background:#f5f8fc; }

/* 面板顶部行：品牌 + 关闭按钮（桌面端隐藏） */
.nav-panel-head { display:none; }

/* 搜索面板 */
.search-panel {
  position:absolute; top:100%; left:0; right:0; z-index:96;
  background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow-lg);
  padding:26px 0; display:none;
}
.search-panel.open { display:block; }
.search-form { display:flex; gap:12px; }
.search-form input {
  flex:1; padding:13px 18px; font-size:15px; font-family:inherit;
  border:1px solid var(--line-2); border-radius:8px; outline:none; transition:border-color .2s;
}
.search-form input:focus { border-color:var(--brand); }
.search-hint { margin-top:12px; font-size:13px; color:var(--text-3); }
.search-hint b { color:var(--text-2); font-weight:600; }
.search-results { margin-top:16px; display:none; }
.search-results.show { display:block; }
.search-item {
  display:flex; align-items:center; gap:12px; padding:11px 14px;
  border-radius:8px; cursor:pointer; transition:background .15s;
}
.search-item:hover { background:var(--bg-soft); }
.search-item .si-tag {
  font-size:11px; font-family:var(--font-mono); color:var(--brand);
  border:1px solid #cfe0f7; background:#f2f7ff; padding:2px 8px; border-radius:20px; flex:none;
}
.search-item .si-text { font-size:14px; }
.search-item .si-text mark { background:#fff3c4; color:inherit; padding:0 2px; border-radius:2px; }
.search-empty { padding:16px 14px; color:var(--text-3); font-size:14px; }

/* ---------- 首屏轮播 ---------- */
.hero-carousel {
  position:relative; height:min(680px, 86vh); min-height:520px;
  background:#fff; overflow:hidden;
}
.carousel-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease, visibility 0s linear .9s; }
.carousel-slide.is-active { opacity:1; visibility:visible; transition:opacity .9s ease; }
.slide-bg { position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.04); }

/* 占位背景：真实图片到位后，改为 background-image:url(...) */
.hero-bg-1 {
  background:
    radial-gradient(900px 600px at 78% 25%, rgba(0,184,217,.30), transparent 62%),
    radial-gradient(800px 560px at 15% 85%, rgba(22,104,220,.42), transparent 60%),
    linear-gradient(130deg, #0a2c58 0%, #0d3f7d 48%, #0a1f3d 100%);
}
.hero-bg-2 {
  background:
    radial-gradient(850px 600px at 72% 30%, rgba(22,104,220,.40), transparent 60%),
    radial-gradient(750px 520px at 18% 82%, rgba(0,184,217,.26), transparent 60%),
    linear-gradient(130deg, #0b2a52 0%, #10467f 50%, #081c38 100%);
}
.hero-bg-3 {
  background:
    radial-gradient(950px 620px at 75% 22%, rgba(0,184,217,.28), transparent 62%),
    radial-gradient(800px 540px at 20% 80%, rgba(22,104,220,.36), transparent 60%),
    linear-gradient(130deg, #0a2f5c 0%, #0b4680 46%, #0a1c38 100%);
}
.carousel-slide.is-active .slide-bg { animation:kb 8s ease-out forwards; }
@keyframes kb { from { transform:scale(1.08); } to { transform:scale(1); } }
.slide-shade {
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,25,50,.86) 0%, rgba(10,25,50,.55) 45%, rgba(10,25,50,.12) 100%);
}
.slide-inner {
  position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; justify-content:center;
  padding:var(--header-h) 0 60px;
}
.slide-inner > * { opacity:0; transform:translateY(22px); }
.carousel-slide.is-active .slide-inner > * { animation:up .75s cubic-bezier(.22,.8,.3,1) forwards; }
.carousel-slide.is-active .slide-inner > *:nth-child(1) { animation-delay:.12s; }
.carousel-slide.is-active .slide-inner > *:nth-child(2) { animation-delay:.24s; }
.carousel-slide.is-active .slide-inner > *:nth-child(3) { animation-delay:.36s; }
.carousel-slide.is-active .slide-inner > *:nth-child(4) { animation-delay:.48s; }
@keyframes up { to { opacity:1; transform:none; } }
.slide-inner .eyebrow { color:#7fc8ff; }
.hero-title { font-size:clamp(30px,4.4vw,52px); line-height:1.22; font-weight:800; margin-bottom:20px; color:#fff; }
.hero-sub { font-size:clamp(15px,1.4vw,17px); color:#d3e2f5; max-width:640px; margin-bottom:34px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.hero-actions .btn-ghost { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.4); color:#fff; backdrop-filter:blur(4px); }
.hero-actions .btn-ghost:hover { background:#fff; color:var(--brand-2); border-color:#fff; }

.carousel-dots { position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:5; display:flex; gap:8px; }
.carousel-dots button {
  width:34px; height:4px; border:0; border-radius:2px; cursor:pointer; padding:0;
  background:rgba(255,255,255,.4); overflow:hidden; position:relative;
}
.carousel-dots button .dot-fill { position:absolute; inset:0; right:auto; width:0; background:var(--accent); }
.carousel-dots button.is-active .dot-fill { animation:fill var(--carousel-duration,6000ms) linear forwards; }
@keyframes fill { to { width:100%; } }

/* ---------- 区块通用 ---------- */
.section { padding:92px 0; }
/* 极简分区：全站纯白，不使用灰底色块，也不用分隔线，纯靠留白分区 */
.section-alt { background:#fff; }
.section-head { text-align:center; max-width:760px; margin:0 auto 54px; }
.section-head h2 { font-size:clamp(25px,3vw,36px); font-weight:800; line-height:1.3; margin-bottom:14px; }
.section-head p { color:var(--text-2); font-size:16px; }
.section-head.left { text-align:left; margin-left:0; }

/* ---------- 产品矩阵卡 ---------- */
.prod-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
/* 产品数量少时按实际列数排布，避免卡片被拉伸 */
.prod-grid[data-cols="1"] { grid-template-columns:repeat(1,1fr); max-width:520px; }
.prod-grid[data-cols="2"] { grid-template-columns:repeat(2,1fr); }
.prod-card {
  background:#fff; border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
}
.prod-media {
  aspect-ratio:4/3; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:#fff;
}
.prod-media img { transition:transform .35s ease; }
.prod-card:hover .prod-media img,
.prod-card:hover .prod-media.has-media img { transform:scale(1.06) translateY(-3px); }
.prod-body { padding:22px 24px 26px; flex:1; display:flex; flex-direction:column; }
.prod-body h3 { font-size:18px; margin-bottom:10px; }
.prod-body p { font-size:14px; color:var(--text-2); flex:1; margin-bottom:18px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.prod-more { font-size:14px; color:var(--brand); font-weight:600; display:inline-flex; align-items:center; gap:6px; }
.prod-more::after { content:"→"; }

/* ---------- 联系我们（无卡片底色/阴影，纯白排版） ---------- */
.contact-card {
  display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:start;
  background:#fff; padding:0;
}
.contact-info h2 { font-size:clamp(21px,2.3vw,28px); line-height:1.35; margin-bottom:14px; }
.contact-info > p:not(.eyebrow) { color:var(--text-2); font-size:15px; margin-bottom:24px; }
.contact-list { display:grid; gap:18px; }
.contact-list dt {
  font-size:15px; color:var(--text-2); margin-bottom:4px;
}
.contact-list dd { font-size:16px; color:var(--text); line-height:1.6; }
.contact-list dd a { color:var(--brand); }
.contact-list dd a:hover { color:var(--brand-2); }
.contact-map { display:flex; flex-direction:column; }
.contact-map-frame {
  position:relative; height:320px; border-radius:10px; overflow:hidden;
  background:var(--bg-soft);
}
.contact-map-frame iframe {
  position:absolute; inset:0; width:100%; height:100%; border:0;
  display:block; background:#fff;
}
/* Google 地图在中国网络下可能加载失败，加载成功前显示占位 */
.contact-map-fallback {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  padding:20px; text-align:center; font-size:13.5px; color:var(--text-3);
  transition:opacity .3s;
}
.contact-map-frame.is-loaded .contact-map-fallback { opacity:0; pointer-events:none; }
.contact-map-link { margin-top:10px; font-size:13.5px; color:var(--brand); }
.contact-map-link::after { content:"↗"; margin-left:4px; }

/* ---------- 关于我们 ---------- */
.about-grid { display:grid; grid-template-columns:380px 1fr; gap:56px; align-items:start; }
.about-media { position:sticky; top:calc(var(--header-h) + 24px); }
.about-img {
  position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:274/361;
  background:linear-gradient(150deg,#0a4fb0,#00b8d9);
}
.about-img img { width:100%; height:100%; object-fit:cover; }
.about-img .ph-txt {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.85); font-family:var(--font-mono); font-size:13px; letter-spacing:.3em;
}
.about-img.has-media .ph-txt { display:none; }
.about-img-cap { margin-top:12px; text-align:center; font-size:13px; color:var(--text-3); }
.about-text h2 { margin-bottom:20px; }
.about-lead { font-size:17px; line-height:1.85; color:var(--text); font-weight:500; margin-bottom:18px; }
.about-text > p:not(.about-lead):not(.eyebrow) { color:var(--text-2); font-size:15px; margin-bottom:16px; }

@media (max-width:1100px) {
  .about-grid { grid-template-columns:320px 1fr; gap:40px; }
  .about-media { position:static; }
}

/* ---------- CTA / 联系区（纯白） ---------- */
.cta-band { background:#fff; padding:92px 0; }

/* ---------- 页脚 ---------- */
.site-footer { background:#0e1a2b; color:#9db0c7; padding:64px 0 0; font-size:14px; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:44px; padding-bottom:48px; }
.footer-brand .brand-text { color:#fff; }
.footer-brand p { margin-top:16px; line-height:1.9; }
.footer-brand .footer-addr { margin-top:14px; font-size:13px; color:#9db0c7; line-height:1.8; }
.footer-col h4 { color:#fff; font-size:15px; margin-bottom:18px; }
.footer-col li { margin-bottom:11px; }
.footer-col a { color:#9db0c7; transition:color .2s; }
.footer-col a:hover { color:#fff; }
.footer-contact li { margin-bottom:10px; }
.footer-contact .footer-hours-li { display:flex; justify-content:space-between; gap:14px; max-width:220px; }
.footer-contact .footer-hours-li b { color:#fff; font-weight:600; }
.footer-bottom {
  border-top:1px solid #1e2b3d; padding:20px 0 26px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:13px; color:#6d829c;
}

/* ---------- 真实素材接入（assets/media 下的文件到位后自动生效） ---------- */
.slide-bg.has-media { background-size:cover; background-position:center; }
.prod-media.has-media { background-size:cover; background-position:center; }
/* 产品实拍图用 contain，避免裁掉设备细节 */
.prod-media.has-media img { display:block; width:100%; height:100%; object-fit:contain; padding:16px; }
.cat-card.has-media { background-size:cover; background-position:center; }
.brand-mark.has-media img, .brand-mark > img { display:block; width:60px; height:auto; }

/* ---------- 滚动入场 ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
}

/* ---------- 移动端导航遮罩（JS 在 body 下插入） ---------- */
.nav-backdrop {
  position:fixed; inset:0 0 0 0; z-index:105;
  background:rgba(10,25,50,.45);
  opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s;
}
body.nav-open .nav-backdrop { opacity:1; visibility:visible; }
body.nav-open { overflow:hidden; }
.nav-toggle span { transition:transform .3s, opacity .3s; }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ---------- 响应式 ---------- */
/* 平板及以下：顶部向下滑出的全宽菜单面板（ABB 式） */
@media (max-width: 1024px) {
  .nav-links {
    position:fixed; top:0; left:0; right:0; z-index:110;
    flex-direction:column; align-items:stretch; gap:0; margin-left:0;
    background:#fff; width:100%;
    max-height:calc(100vh - var(--header-h));
    padding:0 20px calc(20px + env(safe-area-inset-bottom));
    overflow-y:auto; overscroll-behavior:contain;
    box-shadow:0 12px 30px rgba(10,25,50,.14);
    transform:translateY(-100%); transition:transform .3s ease;
  }
  .nav-links.open { transform:none; }
  .nav-links > li { width:100%; }

  /* 面板顶部：仅一个关闭按钮（滚动时钉住，X 始终可点）
     选择器需高过 .nav-links > li{position:relative}（媒体查询不提升特异性） */
  #navLinks > .nav-panel-head {
    display:flex; align-items:center; justify-content:flex-end;
    position:sticky; top:0; z-index:2; background:#fff;
    padding:14px 0 10px;
  }
  .nav-panel-close {
    width:44px; height:44px; flex:none; margin:-6px -6px 0 0;
    border:0; background:none; color:var(--text); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }

  /* 菜单项：大字号 + 右侧箭头，无分隔线，靠留白区隔 */
  .nav-links a, .nav-links .nav-label {
    width:100%; min-height:56px; padding:15px 4px;
    font-size:17px; font-weight:600; justify-content:space-between;
    border-radius:10px;
  }
  .nav-links a:active { background:var(--bg-soft); }
  /* 有下拉的项右侧显示箭头，展开时旋转
     需一并覆盖桌面端 :hover 规则（触屏点击后 hover 残留会把箭头转成 225°） */
  .nav-links .has-drop > .nav-label::after,
  .nav-links .has-drop:hover > .nav-label::after {
    content:""; width:9px; height:9px; margin:0;
    border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(-45deg); opacity:.55; transition:transform .25s;
  }
  .nav-links .has-drop.open > .nav-label::after,
  .nav-links .has-drop.open:hover > .nav-label::after { transform:rotate(45deg); }

  .dropdown {
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; background:#f7f9fc;
    border-radius:10px; margin:0 0 4px; padding:6px 0; min-width:0; display:none;
  }
  .has-drop.open > .dropdown { display:block; }
  .dropdown .dd-title { display:none; }
  .dropdown a { min-height:46px; padding:12px 16px; font-size:15px; font-weight:400; color:var(--text-2); }

  /* 搜索框：与菜单项纯靠留白区隔，无分隔线 */
  .nav-search-item {
    display:block; margin-top:20px;
  }

  .nav-toggle { display:flex; }
  /* 平板起隐藏顶栏地址，保留邮箱 */
  .topbar-left .hide-addr { display:none; }
  .topbar-left { gap:20px; }

  .prod-grid { grid-template-columns:repeat(2,1fr); }
  .contact-card { grid-template-columns:1fr; gap:32px; }
  .about-grid { grid-template-columns:1fr; gap:36px; }
  .about-media { max-width:340px; margin:0 auto; width:100%; }
  .footer-top { grid-template-columns:1fr 1fr; }
}
@media (max-width: 768px) {
  .section { padding:56px 0; }
  .prod-grid { grid-template-columns:1fr; }
  .contact-map-frame { height:260px; }
  .footer-top { grid-template-columns:1fr; gap:32px; }
  .hero-carousel { height:auto; min-height:520px; }
  .slide-inner { padding:calc(var(--header-h) + 30px) 0 84px; }
  /* 手机端渐变压暗改为纵向，保证白色标题可读 */
  .slide-shade { background:linear-gradient(180deg, rgba(10,25,50,.85) 0%, rgba(10,25,50,.62) 55%, rgba(10,25,50,.5) 100%); }
  .hero-actions .btn { flex:1; min-width:150px; }
  .search-form input { font-size:16px; } /* ≥16px 防止 iOS 聚焦自动放大 */
  .pd-hero-actions .btn { flex:1; }
}
@media (max-width: 640px) {
  .topbar-left { gap:0; }
  .topbar { font-size:13.5px; }
  .topbar-item svg { width:15px; height:15px; }
}
@media (max-width: 560px) {
  .hero-carousel { min-height:480px; }
  .section-head { margin-bottom:38px; }
  .contact-card { gap:26px; }
  .pd-breadcrumb { font-size:13px; }
  .footer-bottom { flex-direction:column; gap:6px; }
}
@media (max-width: 380px) {
  .hero-actions .btn { min-width:100%; }
  .brand-text { font-size:17px; }
}

/* ---------- Cookie 同意提示 ---------- */
.cookie-bar {
  position:fixed; left:50%; bottom:22px; transform:translateX(-50%);
  z-index:100; max-width:760px; width:calc(100% - 40px);
  display:flex; align-items:center; gap:20px;
  background:#16202e; color:#d7e0ec;
  padding:16px 20px; border-radius:12px;
  box-shadow:0 12px 40px rgba(8,20,40,.28);
  transition:opacity .3s, transform .3s;
}
.cookie-bar.is-hidden { opacity:0; transform:translateX(-50%) translateY(12px); pointer-events:none; }
.cookie-bar .cookie-text { font-size:13.5px; line-height:1.7; margin:0; }
.cookie-actions { flex:none; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cookie-bar .cookie-btn { padding:9px 18px; }
.cookie-bar .btn-ghost {
  background:transparent; color:#d7e0ec; border:1px solid rgba(255,255,255,.35);
}
.cookie-bar .btn-ghost:hover { background:rgba(255,255,255,.1); color:#fff; border-color:#fff; }
.cookie-more {
  background:none; border:0; cursor:pointer; padding:9px 4px;
  color:#8fb4ea; font-size:13.5px; text-decoration:underline;
}
.cookie-more:hover { color:#fff; }
@media (max-width:600px) {
  .cookie-bar { flex-direction:column; align-items:stretch; gap:14px; text-align:left; }
  .cookie-actions { justify-content:flex-start; }
}

/* ---------- 法务页 ---------- */
.legal { padding:64px 0 80px; }
.legal-inner { max-width:820px; }
.legal-inner h1 { font-size:clamp(24px,3vw,34px); line-height:1.3; margin:8px 0 10px; }
.legal-updated { font-size:13px; color:var(--text-3); margin-bottom:28px; }
.legal-inner h2 { font-size:17px; margin:32px 0 10px; }
.legal-inner p { font-size:15px; color:var(--text-2); line-height:1.9; margin-bottom:10px; }
.legal-inner p:first-of-type { color:var(--text); }
.legal-back { margin-top:44px; }
.legal-back a { color:var(--brand); font-weight:600; }
.legal-back a:hover { text-decoration:underline; }
.site-footer-sm { padding:0; }
