/* =======================================================
   Wizconn Bilingual Website - Responsive CSS
   深圳市为致康科技有限公司双语网站 - 响应式样式表
   ======================================================= */

/* ========== Reset & Base ========== */
* { margin: 0; padding: 0; box-sizing: border-box; }
/* 防止横向溢出的根本手段：
 *  - 不要用 overflow-x:hidden 硬裁（会偷偷裁掉用户看不见的右侧内容）
 *  - 改用 overflow-x:clip (比hidden更强但不产生滚动条，同时我们下面会逐一修正真正超宽的元素)
 *  - 同时所有组件级都加上 max-width:100% + overflow-wrap/word-break 双保险
 */
html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    max-width: 100%;
    overflow-x: clip;
}
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
                 "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue",
                 Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #333;
    background: #fff;
    -webkit-font-smoothing: antialiased;
    max-width: 100%;
    overflow-x: clip;          /* 替代 hidden, 作为最后一道防线 */
    overflow-wrap: anywhere;
    word-break: break-word;
}
h1,h2,h3,h4,h5,h6 { font-weight: 600; color: #222; line-height: 1.35; margin-bottom: 0.6em; overflow-wrap:anywhere; word-break:break-word; }
h1 { font-size: 28px; } h2 { font-size: 24px; } h3 { font-size: 20px; }
h4 { font-size: 17px; } h5 { font-size: 15px; } h6 { font-size: 14px; }
@media (max-width: 575px) {
    h1 { font-size: 22px; } h2 { font-size: 19px; } h3 { font-size: 17px; }
}
a { color: #1a4a8a; text-decoration: none; transition: all 0.2s; overflow-wrap: anywhere; word-break: break-word; }
a:hover { color: #e67e22; text-decoration: none; }
img, svg, video, iframe, embed, object, canvas {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    border: 0;
    display: block;                 /* 避免底部4px白边+inline元素造成的高度溢出 */
}
figure, picture { max-width: 100%; }
ul,ol { list-style: none; max-width: 100%; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select {
    font-family: inherit;
    font-size: inherit;
    max-width: 100%;
    box-sizing: border-box;
}
textarea { resize: vertical; }
table { width: 100%; border-collapse: collapse; }
td, th { overflow-wrap: anywhere; word-break: break-word; }
p, span, li, blockquote, pre, code { overflow-wrap: anywhere; word-break: break-word; }
pre { overflow-x: auto; }
code { white-space: pre-wrap; }

/* 全局 Grid / Flex 防御：防止 min-content 计算出巨大宽度撑破容器 */
[class*="-grid"], [class*="grid-"], [class*="-row"], [class*="row-"] { max-width: 100%; }
[class*="-grid"] *, [class*="grid-"] *, [class*="-row"] *, [class*="row-"] * { min-width: 0; }
.flex, [style*="display:flex" i], [style*="display: inline-flex" i] {
    flex-wrap: wrap;
    max-width: 100%;
}

/* ========== Layout ========== */
.container {
    width: 100%;
    max-width: 1200px;
    padding: 0 15px;
    margin: 0 auto;
}
.site-main { min-height: 500px; padding: 30px 0 50px; background: #fff; }
/* 首页：header 之后立即是 .home-banner（全宽深色Hero），不需要 site-main 的顶部30px白色padding，
   否则导航栏下方会出现一条明显的白空格。其它页面 page-banner 与下方内容仍保留 30px padding。
   额外加 display:flow-root 是为了阻断 margin collapse（避免首页 .hot-search 的 margin 透传到 main 顶部）。 */
body.page-index .site-main {
    padding-top: 0;
    padding-bottom: 0;
    background: transparent;
    display: flow-root;
    /* 兜底：小屏（<1200px）时 nav-mask 在 mobile breakpoint 下强制显示后可能仍有 16px 间距，
       但上一步已把 nav-mask 移出 header，这条作为额外保险保证首页无缝衔接。 */
    margin-top: 0;
}
/* 首页主区域各 section 已自带 padding，footer 上方不缺底部间距 */
body.page-index .site-main > section.section { background: #fff; }
body.page-index .site-main > .home-banner { margin-left: 0; margin-right: 0; }

/* ========== Icons (CSS only) ========== */
[class^="icon-"], [class*=" icon-"] {
    display: inline-block;
    width: 16px; height: 16px;
    vertical-align: middle;
    background-size: contain; background-repeat: no-repeat; background-position: center;
    margin-right: 4px;
}
.icon-phone { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e67e22'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.05-.24 11.36 11.36 0 003.57.57 1 1 0 011 1V20a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.05z'/></svg>"); }
.icon-mobile { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a4a8a'><rect x='7' y='2' width='10' height='20' rx='2' fill='none' stroke='%231a4a8a' stroke-width='2'/><line x1='11' y1='18' x2='13' y2='18' stroke='%231a4a8a' stroke-width='2' stroke-linecap='round'/></svg>"); }
.icon-mail { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a4a8a' stroke-width='2'><rect x='2' y='4' width='20' height='16' rx='2'/><polyline points='22,4 12,14 2,4'/></svg>"); }
.icon-location { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c0392b'><path d='M12 2a8 8 0 00-8 8c0 5.25 8 12 8 12s8-6.75 8-12a8 8 0 00-8-8zm0 10.5a2.5 2.5 0 110-5 2.5 2.5 0 010 5z'/></svg>"); }
.icon-search { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>"); width: 20px; height: 20px; }
.icon-arrow-up { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'><polyline points='18 15 12 9 6 15' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
.caret-down {
    display: inline-block; width: 0; height: 0; margin-left: 4px;
    border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 5px solid currentColor; vertical-align: middle;
}

/* ========== Top Bar ========== */
.top-bar {
    background: #f7f8fa;
    border-bottom: 1px solid #eceef2;
    font-size: 12px;
    color: #888;
}
.top-bar-inner {
    display: flex; justify-content: space-between; align-items: center;
    height: 34px;
}
.top-right { display: flex; align-items: center; gap: 15px; }
.top-hotline strong { color: #e67e22; font-size: 14px; }
.lang-switch {
    display: inline-block;
    padding: 2px 10px;
    background: #1a4a8a;
    color: #fff !important;
    border-radius: 3px;
    font-weight: 500;
}
.lang-switch:hover { background: #e67e22; }

/* ========== Header ========== */
.site-header {
    background: #fff;
    position: sticky; top: 0; z-index: 999;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.header-inner {
    display: flex; justify-content: space-between; align-items: center;
    min-height: 90px; gap: 20px;
}
.site-logo { flex-shrink: 0; max-width: 280px; }
.site-logo h1 {
    font-size: 22px; color: #1a4a8a; margin: 0;
    font-weight: 700; line-height: 1.2;
}
.site-logo .logo-sub {
    font-size: 13px; color: #e67e22; margin: 4px 0 0;
    letter-spacing: 1px;
}
.site-logo img { max-height: 70px; }

.header-actions { flex: 1; max-width: 420px; margin-left: auto; }
.header-search {
    display: flex;
    border: 2px solid #1a4a8a;
    border-radius: 4px;
    overflow: hidden;
}
.header-search input {
    flex: 1; border: 0; padding: 8px 12px;
    outline: none; background: #fff;
}
.header-search button {
    background: #1a4a8a; color: #fff;
    padding: 0 16px; transition: background 0.2s;
}
.header-search button:hover { background: #e67e22; }

.mobile-menu-toggle {
    display: none;
    flex-direction: column; justify-content: space-around;
    width: 36px; height: 36px; padding: 6px;
    border-radius: 4px; background: #1a4a8a;
}
.mobile-menu-toggle span {
    display: block; height: 2px; background: #fff; border-radius: 2px;
    transition: 0.2s;
}

/* ========== Navigation ========== */
.main-nav {
    background: #1a4a8a;
    border-bottom: 3px solid #e67e22;
}
.nav-inner { position: relative; }
.nav-list {
    display: flex; flex-wrap: wrap;
}
.nav-list > li {
    position: relative;
}
.nav-list > li > a {
    display: block;
    color: #fff !important;
    padding: 15px 22px;
    font-size: 15px;
    font-weight: 500;
    transition: background 0.2s;
}
.nav-list > li:hover > a,
.nav-list > li.active > a {
    background: #e67e22;
}

/* 桌面端隐藏移动专用语言切换项 */
.nav-lang-switch-mobile { display: none; }

.nav-submenu {
    display: none;
    position: absolute; top: 100%; left: 0;
    min-width: 220px;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
    z-index: 998;
    padding: 8px 0;
}
.nav-has-sub:hover > .nav-submenu { display: block; }
.nav-submenu li { position: relative; }
.nav-submenu li a {
    display: block;
    padding: 10px 20px;
    color: #444 !important;
    border-bottom: 1px solid #f2f2f2;
    font-size: 14px;
}
.nav-submenu li:last-child > a { border-bottom: 0; }
.nav-submenu li:hover > a {
    background: #f5f7fa;
    color: #e67e22 !important;
    padding-left: 25px;
}
.nav-submenu-sub {
    display: none;
    position: absolute; top: 0; left: 100%;
    min-width: 220px;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0,0,0,0.12);
    padding: 8px 0;
}
.nav-submenu li.has-sub:hover > .nav-submenu-sub { display: block; }

.mobile-nav-close {
    display: none;
    position: absolute; top: 8px; right: 10px;
    font-size: 28px; color: #fff; line-height: 1; padding: 5px 12px;
}
.nav-mask {
    display: none !important;  /* 避免默认/移动端 CSS 覆盖后变成 block，占住 sticky header 尾部形成首页 Hero 顶部 16px 白空格 */
    position: fixed !important; inset: 0 !important;
    background: rgba(0,0,0,0.5); z-index: 997;
}
.nav-mask.show {
    display: block !important;
}

/* ========== Page Banner / Breadcrumb ========== */
.page-banner {
    background: linear-gradient(135deg, #1a4a8a 0%, #2a6cb8 100%);
    color: #fff;
    padding: 35px 0 30px;
}
.page-banner-title {
    font-size: 28px; color: #fff; margin: 0 0 12px;
}
.breadcrumb { font-size: 13px; color: rgba(255,255,255,0.85); }
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; }
.breadcrumb li { display: inline-block; }
.breadcrumb li + li.sep { margin: 0 8px; }
.breadcrumb a { color: rgba(255,255,255,0.85) !important; }
.breadcrumb a:hover { color: #fff !important; text-decoration: underline; }
.breadcrumb li.current { color: #fff; }

/* ========== Section 通用块 ========== */
.section { padding: 40px 0; }
.section-title-wrap {
    text-align: center; margin-bottom: 30px;
}
.section-title {
    display: inline-block;
    font-size: 26px; font-weight: 700; color: #1a4a8a;
    padding-bottom: 10px; position: relative;
}
.section-title::after {
    content: ''; position: absolute; bottom: 0; left: 50%;
    transform: translateX(-50%);
    width: 60px; height: 3px; background: #e67e22;
}
.section-subtitle { color: #888; margin-top: 8px; font-size: 14px; }

/* ========== Home Page ========== */
/* ====== Banner / Hero Area (新版科技感动效) ====== */
.home-banner {
    position: relative;
    height: 620px;
    overflow: hidden;
    background: #050d1e;
    isolation: isolate;
}
.home-banner .container { height: 100%; }

.hero-particles-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.banner-slide {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    display: flex; align-items: center;
    opacity: 0;
    transition: opacity 1.2s ease, transform 6s ease;
    transform: scale(1.04);
    z-index: 0;
    /* 图片加载失败/缺失的兜底：在背景之上叠加统一色调，保证无论 404 与否文字都可读 */
    background-color: #0a1a38;
    background-blend-mode: overlay;
}
/* 图片加载成功移除 fallback 默认 blend，保持原画质 */
.banner-slide.banner-img-ok {
    background-color: transparent;
    background-blend-mode: normal;
}
/* 图片加载失败：应用 fallback 背景(JS会把 background-image 改为渐变) + 纹理叠加 */
.banner-slide.banner-img-fallback {
    background-blend-mode: normal;
    background-size: cover;
}
.banner-slide.banner-img-fallback::after {
    content: '';
    position: absolute; inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255,154,60,0.15), transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(120,180,255,0.18), transparent 45%);
    pointer-events: none;
    z-index: 0;
}
.banner-slide.active {
    opacity: 1;
    z-index: 2;
    transform: scale(1);
}

/* 图片渐变遮罩 - 保证文字可读 */
.banner-overlay {
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(230,126,34,0.18), transparent 60%),
        linear-gradient(100deg, rgba(6,18,40,0.92) 0%, rgba(12,38,82,0.80) 45%, rgba(12,38,82,0.45) 80%, rgba(6,18,40,0.65) 100%);
    z-index: 0;
}
.banner-overlay-2 {
    background:
        radial-gradient(ellipse at 80% 50%, rgba(255,200,80,0.22), transparent 55%),
        linear-gradient(-100deg, rgba(6,24,48,0.94) 0%, rgba(20,50,100,0.78) 50%, rgba(20,50,100,0.45) 85%, rgba(6,24,48,0.6) 100%);
}
.banner-overlay-3 {
    background:
        radial-gradient(ellipse at 50% 30%, rgba(230,126,34,0.22), transparent 55%),
        linear-gradient(180deg, rgba(6,14,30,0.86) 0%, rgba(16,40,82,0.82) 60%, rgba(6,14,30,0.92) 100%);
}

/* 装饰扫描线 */
.banner-animated-lines {
    position: absolute; inset: 0;
    z-index: 1;
    background:
        repeating-linear-gradient(
            90deg,
            rgba(120, 180, 255, 0.04) 0px,
            rgba(120, 180, 255, 0.04) 1px,
            transparent 1px,
            transparent 80px
        ),
        repeating-linear-gradient(
            0deg,
            rgba(120, 180, 255, 0.04) 0px,
            rgba(120, 180, 255, 0.04) 1px,
            transparent 1px,
            transparent 80px
        );
    mask-image: linear-gradient(180deg, rgba(0,0,0,0.35), transparent 70%);
    -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.35), transparent 70%);
    animation: linesShift 24s linear infinite;
}
@keyframes linesShift {
    from { background-position: 0 0, 0 0; }
    to   { background-position: 240px 0, 0 -240px; }
}

/* Banner 内容布局 (左对齐 / 右对齐 / 居中) */
.banner-content {
    position: relative;
    z-index: 3;
    color: #fff;
    padding: 30px 20px;
    max-width: 800px;
}
.banner-content-left   { text-align: left;   max-width: 780px; margin-right: auto; }
.banner-content-right  { text-align: right;  max-width: 780px; margin-left: auto; }
.banner-content-center { text-align: center; max-width: 920px; margin: 0 auto; }
.banner-content-right .banner-stats,
.banner-content-right .banner-cta-row { justify-content: flex-end; }
.banner-content-center .banner-stats,
.banner-content-center .banner-cta-row { justify-content: center; }

/* 顶部小芯片 */
.banner-chip {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 14px;
    font-size: 12px;
    letter-spacing: 0.04em;
    background: rgba(255,255,255,0.08);
    color: #e0edff;
    border: 1px solid rgba(255,255,255,0.14);
    backdrop-filter: blur(6px);
    border-radius: 100px;
    margin-bottom: 22px;
    animation: chipFade 1s ease 0.1s both;
}
.banner-chip .dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7);
    animation: dotPulse 2.2s infinite;
}
.banner-chip-gold .dot { background: #fbbf24; box-shadow: 0 0 0 0 rgba(251,191,36,0.7); }
.banner-chip-green .dot { background: #34d399; box-shadow: 0 0 0 0 rgba(52,211,153,0.7); }
@keyframes dotPulse {
    0%   { box-shadow: 0 0 0 0   rgba(74, 222, 128, 0.65); }
    70%  { box-shadow: 0 0 0 12px rgba(74, 222, 128, 0); }
    100% { box-shadow: 0 0 0 0   rgba(74, 222, 128, 0); }
}
@keyframes chipFade {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* 大标题 渐显分词动画 */
.banner-title-lg {
    font-size: 56px;
    line-height: 1.12;
    letter-spacing: -0.01em;
    font-weight: 800;
    color: #fff;
    margin: 0 0 18px;
    text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}
.banner-title-lg .word {
    display: inline-block;
    opacity: 0;
    transform: translateY(24px);
    animation: wordIn 0.7s cubic-bezier(.2,.9,.3,1.2) forwards;
    margin-right: 0.22em;
}
.banner-title-lg .word:nth-child(1){ animation-delay: .15s; }
.banner-title-lg .word:nth-child(2){ animation-delay: .28s; }
.banner-title-lg .word:nth-child(3){ animation-delay: .41s; }
.banner-title-lg .word:nth-child(4){ animation-delay: .54s; }
.banner-title-lg .word.highlight {
    background: linear-gradient(135deg, #ffd08a 0%, #ff9a3c 40%, #e67e22 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 10px rgba(230,126,34,0.35));
}
@keyframes wordIn {
    from { opacity: 0; transform: translateY(24px) scale(0.96); filter: blur(6px); }
    to   { opacity: 1; transform: translateY(0)    scale(1);    filter: blur(0); }
}
.banner-slide.active .banner-title-lg .word { animation-play-state: running; }

.banner-subtitle {
    font-size: 17px;
    line-height: 1.75;
    margin: 0 0 32px;
    opacity: 0.94;
    color: #e8eef7;
    max-width: 100%;
    text-shadow: 0 1px 6px rgba(0,0,0,0.3);
}

/* CTA 按钮 */
.banner-cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-bottom: 40px;
}
.banner-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.28s cubic-bezier(.2,.9,.3,1.2);
    border: 1px solid transparent;
    line-height: 1.1;
    color: #fff !important;
}
.banner-btn-primary {
    background: linear-gradient(135deg, #e67e22 0%, #ff9a3c 100%);
    box-shadow: 0 8px 22px rgba(230,126,34,0.45), 0 2px 6px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.25);
}
.banner-btn-primary svg { transition: transform 0.25s; }
.banner-btn-primary:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 14px 30px rgba(230,126,34,0.55), 0 4px 10px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.3);
}
.banner-btn-primary:hover svg { transform: translateX(4px); }

.banner-btn-primary-2 {
    background: linear-gradient(135deg, #1a4a8a 0%, #3b82f6 100%);
    box-shadow: 0 8px 22px rgba(26,74,138,0.45), inset 0 1px 0 rgba(255,255,255,0.22);
}
.banner-btn-primary-2:hover { box-shadow: 0 14px 30px rgba(59,130,246,0.55), inset 0 1px 0 rgba(255,255,255,0.25); }

.banner-btn-primary-3 {
    background: linear-gradient(135deg, #10b981 0%, #22c55e 100%);
    box-shadow: 0 8px 22px rgba(16,185,129,0.45), inset 0 1px 0 rgba(255,255,255,0.22);
}
.banner-btn-primary-3:hover { box-shadow: 0 14px 30px rgba(16,185,129,0.55), inset 0 1px 0 rgba(255,255,255,0.25); }

.banner-btn-ghost {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.22);
    backdrop-filter: blur(8px);
    color: #fff !important;
}
.banner-btn-ghost:hover {
    background: rgba(255,255,255,0.16);
    border-color: rgba(255,255,255,0.45);
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(0,0,0,0.2);
}

/* 数据条 */
.banner-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
}
.banner-stats .stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 22px 12px 0;
    border-right: 1px solid rgba(255,255,255,0.14);
}
.banner-stats .stat:last-child { border-right: 0; padding-right: 0; }
.banner-stats .stat strong {
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.01em;
    background: linear-gradient(180deg, #ffffff 0%, #c7e0ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}
.banner-stats .stat span {
    font-size: 12px;
    color: rgba(224, 237, 255, 0.78);
    letter-spacing: 0.02em;
}
.banner-stats-warm .stat strong {
    background: linear-gradient(180deg, #fff5d7 0%, #ffd07a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.banner-app-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}
.banner-content-right  .banner-app-pills { justify-content: flex-end; }
.banner-content-center .banner-app-pills { justify-content: center; }
.pill {
    display: inline-block;
    padding: 7px 16px;
    font-size: 13px;
    color: #e0edff;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 100px;
    backdrop-filter: blur(6px);
    transition: all 0.22s;
}
.pill:hover {
    background: rgba(230,126,34,0.2);
    border-color: rgba(255,154,60,0.55);
    color: #fff;
    transform: translateY(-2px);
}

/* 轮播指示器 Dots */
.banner-dots {
    position: absolute;
    bottom: 26px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 5;
}
.banner-dots span {
    width: 28px;
    height: 4px;
    border-radius: 4px;
    background: rgba(255,255,255,0.28);
    cursor: pointer;
    transition: all 0.35s;
    position: relative;
    overflow: hidden;
}
.banner-dots span::after {
    content: '';
    position: absolute;
    inset: 0;
    width: 0%;
    background: linear-gradient(90deg, #ff9a3c, #e67e22);
    border-radius: 4px;
    transition: width 5s linear;
}
.banner-dots span.active {
    background: rgba(255,255,255,0.4);
    width: 42px;
}
.banner-dots span.active::after { width: 100%; }

/* 左右切屏按钮 */
.banner-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 0;
    color: #fff;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,0.16);
    cursor: pointer;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s;
    opacity: 0;
}
.home-banner:hover .banner-nav { opacity: 1; }
.banner-nav:hover {
    background: #e67e22;
    border-color: #ff9a3c;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 8px 22px rgba(230,126,34,0.45);
}
.banner-nav-prev { left: 24px; }
.banner-nav-next { right: 24px; }

/* 底部波浪装饰 */
.banner-wave {
    position: absolute;
    left: 0; right: 0; bottom: -1px;
    height: 70px;
    z-index: 4;
    pointer-events: none;
}
.banner-wave svg { display: block; filter: drop-shadow(0 -2px 3px rgba(0,0,0,0.05)); }

/* 响应式: Banner 尺寸 */
@media (max-width: 1199px) {
    .home-banner { height: 540px; }
    .banner-title-lg { font-size: 46px; }
}
@media (max-width: 991px) {
    .home-banner { height: 460px; }
    .banner-title-lg { font-size: 38px; }
    .banner-nav { opacity: 1; width: 40px; height: 40px; }
    .banner-nav-prev { left: 8px; }
    .banner-nav-next { right: 8px; }
    .banner-stats { gap: 14px; }
    .banner-stats .stat { padding: 8px 14px 8px 0; }
    .banner-stats .stat strong { font-size: 22px; }
}
@media (max-width: 767px) {
    .home-banner { height: 420px; }
    .banner-content { padding: 20px 10px; }
    .banner-chip { font-size: 11px; padding: 5px 12px; margin-bottom: 14px; }
    .banner-title-lg { font-size: 30px; line-height: 1.18; margin-bottom: 12px; }
    .banner-subtitle { font-size: 14px; line-height: 1.65; margin-bottom: 22px; }
    .banner-btn { padding: 11px 20px; font-size: 14px; border-radius: 8px; }
    .banner-cta-row { margin-bottom: 24px; gap: 10px; }
    .banner-stats { gap: 12px; }
    .banner-stats .stat { padding: 6px 10px 6px 0; }
    .banner-stats .stat strong { font-size: 18px; }
    .banner-stats .stat span { font-size: 11px; }
    .banner-dots { bottom: 18px; gap: 8px; }
    .banner-dots span { width: 22px; height: 3px; }
    .banner-dots span.active { width: 34px; }
    .banner-wave { height: 44px; }
}
@media (max-width: 480px) {
    .home-banner { height: 380px; }
    .banner-title-lg { font-size: 25px; }
    .banner-btn { padding: 10px 16px; font-size: 13px; }
}

/* 兼容旧类 (保持其他页面内联 banner-btn 仍可工作) */
.banner-btn:hover { transform: translateY(-2px); }
.banner-btn-primary:hover { background: #d35400; }

/* Hot Search */
.hot-search {
    padding: 15px 0; border-bottom: 1px solid #eee;
    background: #fafbfc;
}
.hot-search-inner {
    display: flex; flex-wrap: wrap; align-items: center; gap: 15px;
}
.hot-search-label { color: #666; font-weight: 500; }
.hot-search-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.hot-search-tags a {
    padding: 4px 14px; background: #fff;
    border: 1px solid #e0e0e0; border-radius: 20px;
    color: #555 !important; font-size: 13px;
}
.hot-search-tags a:hover { border-color: #e67e22; color: #e67e22 !important; }

/* Home Products */
.home-products { padding: 45px 0; }
.product-cats-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px; margin-bottom: 30px;
}
.product-cat-tab {
    padding: 10px 8px; text-align: center;
    background: #f7f8fa; color: #555 !important;
    border-radius: 4px; font-size: 13px;
    border: 1px solid #eaecef;
}
.product-cat-tab:hover,
.product-cat-tab.active {
    background: #1a4a8a; color: #fff !important;
    border-color: #1a4a8a;
}
.products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.product-card {
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 6px;
    overflow: hidden;
    transition: all 0.3s;
    display: flex; flex-direction: column;
}
.product-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    transform: translateY(-4px);
    border-color: #e67e22;
}
.product-card-img {
    position: relative;
    width: 100%; aspect-ratio: 1;
    background: #f7f8fa;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.product-card-img img {
    max-width: 100%; max-height: 100%;
    transition: transform 0.4s;
}
.product-card:hover .product-card-img img { transform: scale(1.06); }
.product-badge {
    position: absolute; top: 8px; left: 8px;
    padding: 2px 10px; font-size: 11px; color: #fff;
    border-radius: 12px;
}
.product-badge.hot { background: #e74c3c; }
.product-badge.new { background: #27ae60; }
.product-card-info { padding: 12px 15px 15px; flex: 1; display: flex; flex-direction: column; }
.product-card-title {
    font-size: 14px; font-weight: 500; color: #222 !important;
    line-height: 1.5; margin-bottom: 8px; min-height: 42px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.product-card-title:hover { color: #e67e22 !important; }
.product-card-model {
    font-size: 12px; color: #888; margin-bottom: 10px;
}
.product-card-action {
    margin-top: auto;
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 10px; border-top: 1px solid #f2f2f2;
}
.product-card-action a {
    font-size: 12px; color: #1a4a8a; font-weight: 500;
}
.product-card-action a:hover { color: #e67e22; }

/* Partners */
.home-partners { padding: 45px 0; background: #f7f8fa; }
.partners-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 15px;
}
.partner-item {
    background: #fff;
    height: 90px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    overflow: hidden;
    transition: all 0.2s;
    border: 1px solid #eaecef;
    padding: 15px;
}
.partner-item:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: #e67e22;
}
.partner-item img { max-height: 100%; filter: grayscale(0.4); }
.partner-item:hover img { filter: grayscale(0); }
.partner-item-name {
    color: #666; font-size: 16px; font-weight: 600;
}

/* About Section */
.home-about { padding: 50px 0; }
.about-row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 40px; align-items: center;
}
.about-img-wrap {
    border-radius: 8px; overflow: hidden;
    aspect-ratio: 4/3;
    background: linear-gradient(135deg, #1a4a8a, #2a6cb8);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 20px;
    padding: 40px; text-align: center;
}
.about-text h2 { font-size: 28px; color: #1a4a8a; }
.about-text .lead {
    font-size: 15px; color: #555; line-height: 1.9;
}
.about-sub-links {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 15px; margin-top: 20px;
}
.about-sub-links a {
    display: block; padding: 18px 10px; text-align: center;
    background: #f7f8fa; border-radius: 6px;
    color: #444 !important; font-weight: 500;
    border: 1px solid #ececf0;
}
.about-sub-links a:hover { background: #1a4a8a; color: #fff !important; border-color: #1a4a8a; }

/* News Section */
.home-news { padding: 50px 0; background: #fafbfc; }
.news-row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 30px;
}
.news-col-title {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 18px; padding-bottom: 10px; border-bottom: 2px solid #1a4a8a;
}
.news-col-title h3 { margin: 0; color: #1a4a8a; }
.news-col-title a.more { color: #888; font-size: 13px; }
.news-col-title a.more:hover { color: #e67e22; }
.news-list-item {
    display: flex; gap: 15px;
    padding: 14px 0;
    border-bottom: 1px dashed #e0e0e0;
}
.news-list-item:last-child { border-bottom: 0; }
.news-list-date {
    flex-shrink: 0; width: 70px; text-align: center;
    background: #f7f8fa; padding: 8px 5px; border-radius: 4px;
}
.news-list-date .d { font-size: 20px; color: #1a4a8a; font-weight: 700; line-height: 1; }
.news-list-date .m { font-size: 12px; color: #888; margin-top: 3px; }
.news-list-body { flex: 1; min-width: 0; }
.news-list-title {
    font-size: 14px; color: #333 !important; margin-bottom: 6px;
    display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-weight: 500;
}
.news-list-title:hover { color: #e67e22 !important; }
.news-list-summary {
    font-size: 12px; color: #888; line-height: 1.6;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.news-feature-card {
    display: flex; gap: 15px; margin-bottom: 20px;
    padding: 15px; background: #fff; border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.news-feature-card .news-feature-img {
    width: 160px; flex-shrink: 0; aspect-ratio: 4/3;
    background: linear-gradient(135deg, #eef2ff, #e0e7ff);
    border-radius: 4px;
}

/* ========== Products List Page ========== */
.products-layout {
    display: grid; grid-template-columns: 240px 1fr;
    gap: 25px;
}
.sidebar-widget {
    background: #fff;
    border: 1px solid #ececf0;
    border-radius: 6px;
    margin-bottom: 20px;
    overflow: hidden;
}
.widget-title {
    padding: 14px 18px;
    background: #1a4a8a; color: #fff;
    font-size: 16px; font-weight: 600;
    display: flex; align-items: center;
}
.widget-title::before {
    content: ''; display: inline-block;
    width: 4px; height: 16px; background: #e67e22;
    margin-right: 10px; border-radius: 2px;
}
.sidebar-menu { padding: 5px 0; }
.sidebar-menu li a {
    display: block;
    padding: 10px 18px;
    color: #444 !important;
    border-bottom: 1px solid #f3f4f6;
    font-size: 14px;
}
.sidebar-menu > li:last-child > a { border-bottom: 0; }
.sidebar-menu li a:hover,
.sidebar-menu li a.active {
    background: #f5f7fa; color: #e67e22 !important;
    padding-left: 24px;
}
.sidebar-menu li ul li a { padding-left: 36px; font-size: 13px; color: #666 !important; }
.sidebar-menu li ul li a:hover,
.sidebar-menu li ul li a.active { padding-left: 42px; }

.sidebar-contact {
    padding: 20px;
    background: linear-gradient(135deg, #1a4a8a 0%, #2a6cb8 100%);
    color: #fff;
    border-radius: 6px;
    margin-bottom: 20px;
}
.sidebar-contact h4 { color: #fff; margin-bottom: 15px; }
.sidebar-contact p { margin: 8px 0; font-size: 14px; }
.sidebar-contact a { color: #ffd166 !important; }

/* ========== Product Detail ========== */
.product-detail-layout {
    display: grid; grid-template-columns: 450px 1fr;
    gap: 35px;
}
.product-gallery-main {
    aspect-ratio: 1;
    border: 1px solid #eee;
    border-radius: 6px;
    background: #fafbfc;
    display: flex; align-items: center; justify-content: center;
    padding: 30px; margin-bottom: 15px;
}
.product-gallery-main img { max-width: 100%; max-height: 100%; }
.product-gallery-thumbs {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;
}
.product-gallery-thumbs .thumb {
    aspect-ratio: 1; background: #fafbfc;
    border: 1px solid #eaecef; border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; padding: 6px;
}
.product-gallery-thumbs .thumb.active { border-color: #e67e22; }

.product-detail-info .title {
    font-size: 22px; color: #222;
    margin-bottom: 10px; padding-bottom: 15px;
    border-bottom: 1px solid #ececf0;
}
.product-detail-info .model {
    font-size: 15px; color: #e67e22; font-weight: 600; margin-bottom: 20px;
}
.product-meta-list {
    background: #fafbfc; padding: 18px 22px;
    border-radius: 6px; margin-bottom: 22px;
}
.product-meta-list li {
    padding: 6px 0; display: flex;
    border-bottom: 1px dashed #eee;
    font-size: 14px;
}
.product-meta-list li:last-child { border-bottom: 0; }
.product-meta-list li .label {
    width: 90px; color: #666; flex-shrink: 0;
}
.product-meta-list li .value { color: #333; flex: 1; }
.product-detail-tabs {
    margin-top: 40px;
}
.tab-navs {
    display: flex; border-bottom: 2px solid #ececf0;
    margin-bottom: 20px; flex-wrap: wrap;
}
.tab-navs li {
    padding: 10px 24px; cursor: pointer;
    font-size: 15px; font-weight: 500; color: #666;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
}
.tab-navs li.active {
    color: #1a4a8a; border-bottom-color: #e67e22;
}
.tab-pane { display: none; }
.tab-pane.active { display: block; }
.tab-pane h4 { color: #1a4a8a; margin-top: 20px; }
.tab-pane ul { padding-left: 18px; margin-bottom: 15px; }
.tab-pane ul li { list-style: disc; margin-bottom: 6px; }

/* ========== News List ========== */
.news-list-layout {
    display: grid; grid-template-columns: 1fr 300px;
    gap: 30px;
}
.news-list .news-item {
    display: grid; grid-template-columns: 200px 1fr;
    gap: 20px; padding: 20px 0;
    border-bottom: 1px solid #ececf0;
}
.news-list .news-item:last-child { border-bottom: 0; }
.news-list-img {
    aspect-ratio: 16/10;
    background: linear-gradient(135deg, #eef2ff, #e0e7ff);
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.news-list-body h3 {
    font-size: 17px; margin-bottom: 8px;
}
.news-list-body h3 a { color: #222 !important; }
.news-list-body h3 a:hover { color: #e67e22 !important; }
.news-list-meta {
    font-size: 12px; color: #999; margin-bottom: 10px;
}
.news-list-meta span { margin-right: 15px; }
.news-list-summary {
    color: #666; font-size: 14px; line-height: 1.7;
    margin-bottom: 12px;
}
.news-list-more {
    color: #1a4a8a !important; font-size: 13px;
}
.news-list-more:hover { color: #e67e22 !important; }

.news-detail-content {
    max-width: 900px; margin: 0 auto;
    background: #fff; padding: 35px;
    border-radius: 8px;
}
.news-detail-header {
    text-align: center; padding-bottom: 25px;
    margin-bottom: 25px; border-bottom: 1px solid #ececf0;
}
.news-detail-header h1 {
    font-size: 26px; color: #222; margin-bottom: 15px;
}
.news-detail-header .meta { color: #888; font-size: 13px; }
.news-detail-header .meta span { margin: 0 10px; }
.news-detail-body {
    font-size: 15px; color: #333; line-height: 1.9;
}
.news-detail-body p { margin-bottom: 14px; }
.news-detail-body img { max-width: 100%; border-radius: 4px; margin: 10px auto; display: block; }

/* ========== Pagination ========== */
.pagination { margin-top: 30px; text-align: center; }
.pagination ul {
    display: inline-flex; flex-wrap: wrap; gap: 6px;
}
.pagination li a,
.pagination li span {
    display: inline-block;
    min-width: 36px; height: 36px; line-height: 36px;
    padding: 0 12px;
    border: 1px solid #e0e0e0; background: #fff;
    color: #555 !important; border-radius: 4px;
    font-size: 14px;
}
.pagination li a:hover { border-color: #1a4a8a; color: #1a4a8a !important; }
.pagination li.active span {
    background: #1a4a8a; color: #fff !important; border-color: #1a4a8a;
}

/* ========== About Page ========== */
.about-page-tabs-nav {
    display: flex; justify-content: center; gap: 10px;
    margin-bottom: 35px; flex-wrap: wrap;
}
.about-page-tabs-nav a {
    padding: 10px 28px; border: 1px solid #e0e0e0;
    border-radius: 30px; color: #555 !important; font-size: 15px;
}
.about-page-tabs-nav a.active,
.about-page-tabs-nav a:hover {
    background: #1a4a8a; color: #fff !important; border-color: #1a4a8a;
}
.about-content-block {
    background: #fff; padding: 35px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.04);
    font-size: 15px; line-height: 2; color: #444;
}
.about-content-block h2 { color: #1a4a8a; margin-bottom: 20px; }
.about-cert-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.about-cert-item {
    aspect-ratio: 3/4;
    background: #f7f8fa;
    border: 1px solid #ececf0;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    flex-direction: column; padding: 15px; text-align: center;
}
.about-cert-item .cert-icon {
    width: 70px; height: 70px; border-radius: 50%;
    background: linear-gradient(135deg, #1a4a8a, #e67e22);
    margin-bottom: 15px;
}

/* ========== About 页面响应式网格 ========== */
/* 公司介绍：左文+右侧边栏 */
.about-intro-grid {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 30px;
}
.about-intro-text {
    font-size: 15px;
    line-height: 2;
    margin-bottom: 15px;
}
/* 企业文化 */
.about-culture-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}
/* 联系方式 */
.about-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}
/* 合作伙伴 */
.about-partner-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 15px;
}
.about-partner-item {
    height: 90px;
    background: #fff;
    border: 1px solid #eaecef;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    transition: all 0.2s;
}
.about-partner-logo {
    max-height: 100%;
    max-width: 100%;
    filter: grayscale(0.4);
}
.about-partner-name {
    font-size: 16px;
    font-weight: 600;
    color: #666;
}

/* ---- 响应式断点 ---- */
@media (max-width: 991px) {
    .about-intro-grid { grid-template-columns: 1fr; gap: 20px; }
    .about-culture-grid { grid-template-columns: repeat(2, 1fr); }
    .about-partner-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 575px) {
    .about-intro-grid { grid-template-columns: 1fr; gap: 15px; }
    .about-intro-text { font-size: 14px; line-height: 1.9; }
    .about-culture-grid { grid-template-columns: 1fr; gap: 12px; }
    .about-contact-grid { grid-template-columns: 1fr; gap: 15px; }
    .about-partner-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .about-partner-item { height: 70px; padding: 10px; }
}

/* ========== Contact Page ========== */
.contact-layout {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 30px;
}
.contact-info-card {
    background: #fff; padding: 35px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.contact-info-card h3 { color: #1a4a8a; margin-bottom: 25px; }
.contact-info-list { margin-bottom: 25px; }
.contact-info-list li {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 12px 0; border-bottom: 1px dashed #eaecef;
    font-size: 15px;
}
.contact-info-list li:last-child { border-bottom: 0; }
.contact-info-list li [class^="icon-"] {
    width: 36px; height: 36px; border-radius: 50%;
    background: linear-gradient(135deg, #1a4a8a, #2a6cb8);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.contact-form-card {
    background: #fff; padding: 35px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
.form-group { margin-bottom: 18px; }
.form-group label {
    display: block; margin-bottom: 6px;
    color: #444; font-weight: 500;
}
.form-control {
    width: 100%; padding: 10px 12px;
    border: 1px solid #dcdfe6; border-radius: 4px;
    transition: border-color 0.2s;
    outline: none; background: #fff;
}
.form-control:focus {
    border-color: #1a4a8a;
    box-shadow: 0 0 0 3px rgba(26,74,138,0.1);
}
textarea.form-control { resize: vertical; min-height: 120px; }
.btn {
    display: inline-block;
    padding: 10px 28px; background: #1a4a8a;
    color: #fff !important; border-radius: 4px;
    font-size: 15px; font-weight: 500;
    transition: all 0.2s; cursor: pointer;
    border: 0;
}
.btn:hover { background: #e67e22; }
.btn-success { background: #27ae60; }
.btn-warn { background: #e67e22; }
.btn-danger { background: #e74c3c; }
.btn-sm { padding: 5px 14px; font-size: 13px; }
.btn-outline {
    background: #fff; color: #1a4a8a !important;
    border: 1px solid #1a4a8a;
}
.btn-outline:hover { background: #1a4a8a; color: #fff !important; }

.alert {
    padding: 12px 16px; border-radius: 4px; margin-bottom: 15px;
}
.alert-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.alert-error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.alert-info { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }

/* ========== Footer ========== */
.site-footer { background: #1b2a41; color: #b8c4d6; }
.footer-main { padding: 50px 0 30px; }
.footer-inner {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr 1.2fr;
    gap: 30px;
    align-items: start;
}
.footer-title {
    color: #fff; font-size: 17px; margin-bottom: 20px;
    padding-bottom: 10px;
    position: relative;
}
.footer-title::after {
    content: ''; position: absolute; bottom: 0; left: 0;
    width: 32px; height: 2px; background: #e67e22;
}
/* 左：品牌 Logo */
.footer-brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
/* 页脚左侧要求为「方形品牌标志图」：固定 130x130 白色背景方形盒，
   logo 图片按比例 contain 居中，保证不变形 + 视觉上是方形。 */
.footer-logo-img {
    display: block !important;
    width: 130px;
    height: 130px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #fff;
    border-radius: 8px;
    padding: 10px;
    opacity: 0.95;
    transition: opacity 0.2s, transform 0.2s;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    flex-shrink: 0;
}
.footer-logo-img:hover { opacity: 1; transform: translateY(-1px); }
/* 回退：当使用页眉长方形 logo 时，仍然在方形盒里比例缩放到合适 */
.footer-brand-logo img {
    /* 此规则之前是 max-*，现在被上面 .footer-logo-img 的明确尺寸覆盖，
       保留以便 footer-logo-img 之外的其它 footer brand img 场景兜底 */
    max-height: 100%; max-width: 100%;
}
.footer-brand-text h3 {
    color: #fff; font-size: 20px; margin: 0 0 4px;
    font-weight: 700; line-height: 1.2;
}
.footer-brand-sub {
    color: #e67e22; font-size: 13px;
    letter-spacing: 1px; margin: 0;
}
.footer-desc {
    font-size: 13px; line-height: 1.8;
    margin: 0 0 14px; color: #9fb0ca;
}
/* 四列链接通用样式（联系我们列同样使用 footer-links，保持完全一致） */
.footer-links { font-size: 14px; }
.footer-links li {
    margin-bottom: 10px;
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px;
}
.footer-links li::before {
    content: '›'; display: inline-block;
    margin-right: 8px; color: #e67e22;
    flex-shrink: 0;
}
.footer-links a { color: #b8c4d6 !important; }
.footer-links a:hover { color: #e67e22 !important; padding-left: 3px; }

/* 联系我们列：标签/电话/邮箱/地址结构仍按 li 行组织，统一样式，不再使用 contact-info-list */
.footer-links .fc-label {
    color: #cfd8e8; flex-shrink: 0;
}
.footer-links .fc-address {
    align-items: flex-start;
}
.footer-links .fc-address > span:last-child {
    display: inline; line-height: 1.7;
}
/* 二维码放在"联系我们" li 行内，与其他链接行保持前缀和对齐一致 */
.footer-wechat-inline-img {
    width: 88px; height: 88px;
    background: #fff; padding: 4px; border-radius: 4px;
    display: block;
    margin-top: 2px;
    border: 1px solid rgba(255,255,255,0.12);
}

/* 兼容：保留旧 contact-info-list (联系表单页等)，不再覆盖 footer-col 内 li */
.contact-info-list { margin-bottom: 25px; }
.footer-col .contact-info-list {
    font-size: 14px;
}
.footer-col .contact-info-list li {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 10px 0; border-bottom: 1px dashed #2a3d5c;
    margin-bottom: 0;
}
.footer-col .contact-info-list li:last-child { border-bottom: 0; }
.footer-col .contact-info-list a { color: #ffd166 !important; }

.footer-qr { margin-top: 18px; text-align: center; }
.footer-qr img {
    width: 110px; height: 110px;
    background: #fff; padding: 6px; border-radius: 4px;
}
.footer-qr p { font-size: 12px; margin-top: 8px; color: #8fa0ba; }

.footer-copyright {
    padding: 15px 0;
    border-top: 1px solid rgba(255,255,255,0.08);
    background: #142033;
    font-size: 13px; color: #8fa0ba;
}
.copyright-inner {
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 10px;
}
.copyright-inner a { color: #8fa0ba !important; margin-left: 15px; }
.copyright-inner a:hover { color: #e67e22 !important; }

/* ========== Back to top ========== */
.back-to-top {
    position: fixed; right: 20px; bottom: 40px;
    width: 44px; height: 44px;
    background: #1a4a8a; color: #fff !important;
    border-radius: 50%; opacity: 0; visibility: hidden;
    transition: all 0.3s;
    display: flex; align-items: center; justify-content: center;
    z-index: 99;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.back-to-top.show { opacity: 1; visibility: visible; }
.back-to-top:hover { background: #e67e22; }

/* ========== 404 ========== */
.not-found-wrap {
    text-align: center; padding: 80px 20px;
}
.not-found-wrap .code {
    font-size: 120px; color: #1a4a8a;
    font-weight: 800; line-height: 1; margin-bottom: 15px;
}
.not-found-wrap .msg { font-size: 20px; color: #666; margin-bottom: 30px; }

/* ========== Admin Panel ========== */
.admin-body { background: #f0f2f5; }
.admin-login-wrap {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #1a4a8a 0%, #2a6cb8 100%);
    padding: 20px;
}
.admin-login-card {
    width: 100%; max-width: 400px;
    background: #fff; border-radius: 8px; padding: 35px 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.admin-login-card h2 {
    text-align: center; color: #1a4a8a; margin-bottom: 25px;
}
.admin-layout { min-height: 100vh; display: flex; flex-direction: column; }
.admin-header {
    background: #1a4a8a; color: #fff; padding: 12px 20px;
    display: flex; justify-content: space-between; align-items: center;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.admin-header h1 { color: #fff; margin: 0; font-size: 20px; }
.admin-header-right a { color: #fff !important; margin-left: 20px; }
.admin-header-right a:hover { color: #ffd166 !important; }

.admin-main { display: flex; flex: 1; }
.admin-sidebar {
    width: 220px; background: #2c3e50; color: #fff;
    flex-shrink: 0;
}
.admin-sidebar-menu { padding: 15px 0; }
.admin-sidebar-menu a {
    display: block; padding: 12px 20px;
    color: #cbd5e0 !important; font-size: 14px;
    border-left: 3px solid transparent;
}
.admin-sidebar-menu a:hover,
.admin-sidebar-menu a.active {
    background: #1a2b3c; color: #fff !important;
    border-left-color: #e67e22;
}
.admin-content {
    flex: 1; padding: 25px; overflow-x: auto;
}
.admin-content-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 20px; flex-wrap: wrap; gap: 10px;
}
.admin-content-header h2 { margin: 0; }

.admin-table {
    width: 100%; background: #fff;
    border-radius: 6px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.admin-table th, .admin-table td {
    padding: 12px 15px; text-align: left;
    border-bottom: 1px solid #ececf0;
    font-size: 14px; vertical-align: middle;
}
.admin-table th {
    background: #f7f8fa; font-weight: 600; color: #444;
}
.admin-table tr:hover td { background: #fafbfc; }
.admin-table .actions { white-space: nowrap; }
.admin-table .actions a { margin-right: 6px; }

.admin-search-bar {
    display: flex; gap: 10px; margin-bottom: 15px; flex-wrap: wrap;
    align-items: center;
}
.admin-search-bar .form-control { width: 200px; }

.admin-form {
    background: #fff; padding: 25px;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.admin-form .form-group label { font-size: 14px; }

/* ========== Responsive ========== */
@media (max-width: 1199px) {
    .container { max-width: 100%; }
    .product-cats-grid { grid-template-columns: repeat(5, 1fr); }
    .products-grid { grid-template-columns: repeat(3, 1fr); }
    .partners-grid { grid-template-columns: repeat(5, 1fr); }
    .footer-inner { grid-template-columns: 1.2fr 1fr 1fr; gap: 28px; }
    .footer-col.footer-brand { grid-column: 1 / -1; }
    .product-detail-layout { grid-template-columns: 380px 1fr; }
}

@media (max-width: 991px) {
    .top-bar { display: none; }
    .header-inner { min-height: 70px; }
    .site-logo h1 { font-size: 18px; }
    .site-logo .logo-sub { font-size: 12px; }
    .header-actions { display: none; }
    .mobile-menu-toggle { display: flex; }

    .main-nav {
        position: fixed; top: 0; right: -280px; bottom: 0;
        width: 260px; overflow-y: auto;
        box-shadow: -4px 0 15px rgba(0,0,0,0.2);
        transition: right 0.3s;
        z-index: 999; border: 0;
    }
    .main-nav.open { right: 0; }
    .nav-list { flex-direction: column; padding-top: 50px; }
    .nav-list > li > a { padding: 14px 20px; border-bottom: 1px solid rgba(255,255,255,0.1); }

    /* 移动端显示语言切换项 */
    .nav-lang-switch-mobile { display: block; }
    .nav-lang-switch-mobile > a {
        display: inline-block;
        margin: 20px;
        padding: 10px 24px;
        background: #1a4a8a;
        color: #fff !important;
        border-radius: 4px;
        font-weight: 600;
        font-size: 15px;
        text-align: center;
    }
    .nav-lang-switch-mobile > a:hover { background: #e67e22; }
    .nav-submenu {
        position: static; display: none;
        background: rgba(0,0,0,0.2); box-shadow: none;
    }
    .nav-submenu li a {
        color: #fff !important; border-bottom-color: rgba(255,255,255,0.1);
        padding-left: 35px;
    }
    .nav-submenu-sub {
        position: static; display: none;
        background: rgba(0,0,0,0.3); box-shadow: none;
    }
    .nav-submenu li.has-sub:hover > .nav-submenu-sub { display: none; }
    .nav-has-sub > a::after {
        content: '+'; float: right; font-size: 18px; font-weight: 400;
    }
    .nav-has-sub.active-sub > a::after { content: '−'; }
    .nav-submenu.open { display: block; }
    .mobile-nav-close { display: block; }
    .nav-mask.show { display: block; }

    .home-banner { height: 300px; }
    .banner-title { font-size: 26px; }
    .banner-subtitle { font-size: 14px; }

    .product-cats-grid { grid-template-columns: repeat(4, 1fr); }
    .products-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
    .partners-grid { grid-template-columns: repeat(4, 1fr); }
    .about-row { grid-template-columns: 1fr; gap: 25px; }
    .news-row { grid-template-columns: 1fr; }

    .footer-inner { grid-template-columns: 1fr 1fr; gap: 28px; }
    .footer-col.footer-brand { grid-column: 1 / -1; }

    .products-layout { grid-template-columns: 1fr; }
    .product-detail-layout { grid-template-columns: 1fr; gap: 25px; }
    .news-list-layout { grid-template-columns: 1fr; }
    .contact-layout { grid-template-columns: 1fr; }

    .news-list .news-item { grid-template-columns: 140px 1fr; }

    .about-cert-grid { grid-template-columns: repeat(2, 1fr); }

    .admin-main { flex-direction: column; }
    .admin-sidebar { width: 100%; }
    .admin-sidebar-menu {
        display: flex; overflow-x: auto; padding: 0;
    }
    .admin-sidebar-menu a {
        white-space: nowrap; padding: 10px 16px;
        border-left: 0; border-top: 3px solid transparent;
    }
    .admin-sidebar-menu a.active { border-top-color: #e67e22; border-left: 0; }
}

@media (max-width: 767px) {
    body { font-size: 13px; }
    h1 { font-size: 22px; } h2 { font-size: 19px; } h3 { font-size: 17px; }
    .section { padding: 25px 0; }
    .site-main { padding: 18px 0 30px; }
    .section-title { font-size: 21px; }
    .home-products, .home-about, .home-news { padding: 25px 0; }

    .page-banner { padding: 22px 0 18px; }
    .page-banner-title { font-size: 21px; }

    .banner-title { font-size: 21px; }
    .banner-subtitle { font-size: 13px; margin-bottom: 15px; }
    .banner-btn { padding: 9px 22px; font-size: 13px; }

    .product-cats-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .product-cat-tab { font-size: 12px; padding: 8px 4px; }
    .products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .product-card-title { font-size: 13px; min-height: 38px; }

    .partners-grid { grid-template-columns: repeat(3, 1fr); }
    .partner-item { height: 70px; }

    .about-sub-links { grid-template-columns: repeat(2, 1fr); }
    .about-sub-links a { padding: 12px 6px; font-size: 13px; }

    .news-feature-card { flex-direction: column; }
    .news-feature-card .news-feature-img { width: 100%; aspect-ratio: 16/10; }
    .news-list .news-item { grid-template-columns: 1fr; gap: 12px; padding: 15px 0; }
    .news-list-img { aspect-ratio: 16/9; }

    .footer-inner { grid-template-columns: 1fr; gap: 25px; }
    .footer-main { padding: 30px 0 20px; }
    .footer-col { padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .footer-col:last-child { border: 0; padding-bottom: 0; }
    .copyright-inner { flex-direction: column; text-align: center; }

    .product-detail-layout { gap: 20px; }
    .product-gallery-thumbs { grid-template-columns: repeat(4, 1fr); }

    .about-cert-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

    .tab-navs li { padding: 8px 16px; font-size: 14px; }

    .about-content-block { padding: 20px; }
    .contact-info-card, .contact-form-card { padding: 20px; }
    .news-detail-content { padding: 20px; }
    .news-detail-header h1 { font-size: 20px; }

    .admin-table th:nth-child(n+5), .admin-table td:nth-child(n+5) { display: none; }
    .admin-content { padding: 15px; }
    .admin-form { padding: 15px; }
}

@media (max-width: 479px) {
    .product-cats-grid { grid-template-columns: repeat(2, 1fr); }
    .products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .partners-grid { grid-template-columns: repeat(2, 1fr); }
    .banner-title { font-size: 18px; }
    .product-card-info { padding: 10px; }
    .product-card-title { font-size: 12px; min-height: 34px; }
    .about-sub-links { grid-template-columns: 1fr 1fr; }
    .site-logo h1 { font-size: 16px; }
    .site-logo .logo-sub { font-size: 11px; }
    /* 小屏新闻列表日期: 横向排列更紧凑 */
    .news-list-item { flex-direction: column; gap: 8px; padding: 12px 0; }
    .news-list-date { width: 100%; display: flex; gap: 10px; align-items: center; padding: 4px 8px; justify-content: flex-start; }
    .news-list-date .d-day { font-size: 20px; }
    /* 详情页规格表: K列宽度更窄, V列可换行断词 */
    table.specs-table .spec-k { width: 32% !important; min-width: 90px; padding: 10px 12px; font-size: 13px; }
    table.specs-table .spec-v { padding: 10px 12px; font-size: 13px; }
    /* 标题字号收敛 */
    .section-title h2 { font-size: 20px; }
    .page-banner-title { font-size: 19px; }
    /* Banner内文字/按钮的容器 padding 不撑破 */
    .banner-content { padding: 18px 20px !important; }
    .banner-desc { font-size: 13px; line-height: 1.55 !important; }
}

/* ========== <=375px iPhone SE/iPhone 14 mini 专用 ========== */
@media (max-width: 375px) {
    .container { padding: 0 12px; }
    /* 首页产品分类: 2列太挤可能超宽 → 2列但字号再收 */
    .product-cats-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
    .product-cat-tab { font-size: 11.5px; padding: 7px 4px; }
    /* 产品卡片标题再收紧字号 */
    .product-card-title { font-size: 11.5px; min-height: 32px; line-height: 1.45; }
    /* 新闻: 特色卡日期更小, 特征日期盒压缩 */
    .news-col-title { flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 14px; padding-bottom: 8px; }
    .news-col-title h3 { font-size: 17px; }
    /* 页脚联系方式: 大字号收敛 */
    .footer-tel, .footer-email { font-size: 18px; }
    /* CTA按钮: 统一占满宽度(更不容易溢出) */
    .product-detail-info [style*="display:flex"].btn-row,
    .product-detail-cta-row,
    .cta-flex-row { flex-direction: column; }
    .product-detail-info [style*="display:flex"].btn-row > .btn,
    .cta-flex-row > .btn { width: 100%; text-align: center; justify-content: center; }
    /* 核心规格 K-V: 极端窄屏也不超宽 */
    .core-specs { gap: 6px 10px !important; }
}

/* ========== <=360px 小屏手机 ========== */
@media (max-width: 360px) {
    .banner-title { font-size: 17px !important; }
    /* tab导航: 横向滚动,但不撑破body宽度 */
    .tab-navs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
        margin-bottom: -4px;
    }
    .tab-navs::-webkit-scrollbar { display: none; }
    .tab-navs li { flex: 0 0 auto; padding: 8px 14px !important; font-size: 13px !important; white-space: nowrap; }
    /* 联系表: 2列网格全部退回1列 */
    .form-row-grid, .admin-form-grid { grid-template-columns: 1fr !important; gap: 10px; }
    .site-logo { max-width: 62% !important; }
}

/* ========== <=320px iPhone 5/SE 老机型 ========== */
@media (max-width: 320px) {
    body { font-size: 13px; }
    h1 { font-size: 18px; } h2 { font-size: 16px; } h3 { font-size: 15px; }
    /* 产品网格: 两列 → 单列, 不出现任何"左右被裁" */
    .products-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
    .partners-grid { grid-template-columns: repeat(2, 1fr); }
    .about-cert-grid { grid-template-columns: 1fr !important; }
    /* 详情页: 规格表K列再窄10% */
    table.specs-table .spec-k { width: 28% !important; min-width: 80px; padding: 9px 10px; font-size: 12.5px; }
    table.specs-table .spec-v { padding: 9px 10px; font-size: 12.5px; }
    /* 详情页相册 grid: 两列 */
    .photo-grid-inline { grid-template-columns: repeat(2, 1fr) !important; gap: 6px !important; }
    .apps-grid-inline { grid-template-columns: 1fr !important; }
    /* 按钮字号 */
    .btn { font-size: 13px; padding: 9px 14px; }
}

/* ========== 旧“横向溢出硬裁” 已在 html/body Reset 区域替换为 clip + 真正修超宽元素； 删除冗余重复规则 ========== */
/* (removed L1685-L1696 html, body { overflow-x:hidden ...} / *,*::before/ img 重复) */

/* ========== Application.php 应用领域响应式网格 ========== */
.app-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
@media (max-width: 1199px) {
    .app-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991px) {
    .app-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}
@media (max-width: 575px) {
    .app-grid { grid-template-columns: 1fr; gap: 12px; }
}
.app-cta-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 25px;
    align-items: center;
}
@media (max-width: 767px) {
    .app-cta-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        text-align: center;
        padding: 28px 20px !important;
    }
    .app-cta-grid > div:last-child { justify-content: center !important; }
}

/* ========== 产品规格参数表（响应式 + 小屏自适应 K-V） ========== */
.specs-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 2px;
}
table.specs-table {
    width: 100%;
    min-width: 280px;
    border-collapse: collapse;
    margin: 0;
    background: #fff;
    border: 1px solid #e5e8ed;
    border-radius: 6px;
    overflow: hidden;
    table-layout: fixed;
}
table.specs-table .spec-row.even { background: #fafbfc; }
table.specs-table .spec-k {
    width: 35%;
    min-width: 100px;
    padding: 12px 16px;
    text-align: left;
    font-weight: 600;
    color: #1a4a8a;
    background: #f7f9fc;
    border-bottom: 1px solid #eceef2;
    vertical-align: middle;
    font-size: 14px;
}
table.specs-table .spec-v {
    width: 65%;
    padding: 12px 16px;
    color: #444;
    border-bottom: 1px solid #eceef2;
    vertical-align: middle;
    font-size: 14px;
    word-break: break-word;
    overflow-wrap: break-word;
}
table.specs-table tr:last-child .spec-k,
table.specs-table tr:last-child .spec-v {
    border-bottom: 0;
}
/* 小屏：specs 堆叠 (K -> 标题行, V -> 下一行值) */
@media (max-width: 575px) {
    table.specs-table {
        border: 0;
        background: transparent;
        border-radius: 0;
    }
    table.specs-table,
    table.specs-table tbody,
    table.specs-table tr,
    table.specs-table th,
    table.specs-table td {
        display: block;
        width: 100% !important;
    }
    table.specs-table .spec-row {
        border: 1px solid #e5e8ed;
        border-radius: 6px;
        margin-bottom: 10px;
        background: #fff;
        overflow: hidden;
    }
    table.specs-table .spec-row.even { background: #fff; }
    table.specs-table .spec-k {
        width: 100% !important;
        padding: 8px 14px;
        background: #f0f4fa;
        color: #1a4a8a;
        border-bottom: 1px solid #e3e9f2;
        font-size: 13px;
    }
    table.specs-table .spec-v {
        width: 100% !important;
        padding: 10px 14px 12px;
        border-bottom: 0;
        font-size: 14px;
    }
}

/* ========== 后台 product_edit 规格编辑器响应式 ========== */
@media (max-width: 767px) {
    #specs-editor .specs-row {
        grid-template-columns: 1fr 1fr !important;
    }
    #specs-editor .specs-row::before {
        content: attr(data-label-zh) "ZH";
        display: none;
    }
    #specs-editor .specs-row .specs-k-zh { order: 1; }
    #specs-editor .specs-row .specs-v-zh { order: 2; }
    #specs-editor .specs-row .specs-k-en { order: 3; grid-column: 1 / 2; }
    #specs-editor .specs-row .specs-v-en { order: 4; }
    #specs-editor .specs-row .btn { order: 5; grid-column: 2 / 3; grid-row: 3; }
}

/* ========================================================
   Product Gallery 产品图集（主图+缩略图+Lightbox）
   ======================================================== */
.product-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 35px;
    align-items: start;
}
@media (max-width: 900px) {
    .product-detail-layout { grid-template-columns: 1fr; gap: 20px; }
}
.product-gallery-main-wrapper {
    position: relative;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 15px;
}
.product-gallery-main {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    border-radius: 6px;
    overflow: hidden;
    cursor: zoom-in;
}
.product-gallery-main img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: transform 0.3s ease;
    user-select: none;
    -webkit-user-drag: none;
}
.product-gallery-main:hover img { transform: scale(1.02); }

.gallery-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(0,0,0,0.45);
    color: #fff;
    font-size: 26px;
    line-height: 38px;
    text-align: center;
    opacity: 0;
    transition: all 0.25s;
    z-index: 5;
    cursor: pointer;
}
.product-gallery-main-wrapper:hover .gallery-arrow { opacity: 1; }
.gallery-arrow:hover { background: rgba(26,74,138,0.9); transform: translateY(-50%) scale(1.08); }
.gallery-prev { left: 10px; }
.gallery-next { right: 10px; }

.gallery-zoom-hint {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 14px;
    z-index: 4;
    pointer-events: auto;
    cursor: pointer;
    transition: all 0.2s;
}
.gallery-zoom-hint:hover { background: #1a4a8a; }

/* 缩略图 */
.product-gallery-thumbs-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 15px;
}
.product-gallery-thumbs {
    display: flex;
    gap: 10px;
    flex: 1;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 2px 8px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
}
.product-gallery-thumbs::-webkit-scrollbar { height: 5px; }
.product-gallery-thumbs::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.product-gallery-thumbs .thumb {
    flex-shrink: 0;
    width: 78px;
    height: 78px;
    border: 2px solid transparent;
    border-radius: 6px;
    padding: 3px;
    background: #fff;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.product-gallery-thumbs .thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.product-gallery-thumbs .thumb:hover {
    border-color: #93c5fd;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(26,74,138,0.12);
}
.product-gallery-thumbs .thumb.active {
    border-color: #e67e22;
    background: #fff7ed;
    box-shadow: 0 4px 10px rgba(230,126,34,0.2);
}
.thumb-scroll-btn {
    width: 28px;
    height: 78px;
    flex-shrink: 0;
    background: #f1f5f9;
    color: #475569;
    font-size: 20px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}
.thumb-scroll-btn:hover {
    background: #1a4a8a;
    color: #fff;
}
@media (max-width: 520px) {
    .product-gallery-thumbs .thumb { width: 64px; height: 64px; }
    .thumb-scroll-btn { height: 64px; }
}

/* ========== Lightbox Modal ========== */
.lightbox-modal {
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.92);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    animation: lbFadeIn 0.25s ease;
}
@keyframes lbFadeIn { from { opacity: 0; } to { opacity: 1; } }
.lightbox-content {
    position: relative;
    max-width: 92%;
    max-height: 88%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lightbox-content img {
    max-width: 100%;
    max-height: 85vh;
    object-fit: contain;
    box-shadow: 0 0 50px rgba(0,0,0,0.5);
    border-radius: 4px;
    animation: lbZoom 0.3s cubic-bezier(.2,.9,.3,1.2);
}
@keyframes lbZoom {
    from { transform: scale(0.85); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
.lightbox-close, .lightbox-nav {
    position: fixed;
    background: rgba(255,255,255,0.12);
    color: #fff;
    border: 0;
    cursor: pointer;
    transition: all 0.2s;
    z-index: 10000;
    backdrop-filter: blur(4px);
}
.lightbox-close {
    top: 20px; right: 20px;
    width: 46px; height: 46px;
    border-radius: 50%;
    font-size: 28px;
    line-height: 40px;
}
.lightbox-close:hover { background: #e74c3c; transform: rotate(90deg); }
.lightbox-nav {
    top: 50%;
    transform: translateY(-50%);
    width: 52px; height: 80px;
    font-size: 36px;
    line-height: 76px;
    border-radius: 6px;
}
.lightbox-prev { left: 20px; }
.lightbox-next { right: 20px; }
.lightbox-nav:hover {
    background: #1a4a8a;
    color: #fff;
    transform: translateY(-50%) scale(1.06);
}
.lightbox-counter {
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.85);
    font-size: 14px;
    background: rgba(0,0,0,0.5);
    padding: 6px 18px;
    border-radius: 20px;
    letter-spacing: 1px;
    z-index: 10000;
}
@media (max-width: 520px) {
    .lightbox-nav { width: 40px; height: 60px; font-size: 28px; line-height: 56px; }
    .lightbox-prev { left: 6px; }
    .lightbox-next { right: 6px; }
}

/* ========== 产品图册 Tab Photo Card ========== */
.photo-card {
    aspect-ratio: 1/1;
    background: #f8fafc;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 10px;
    cursor: zoom-in;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s cubic-bezier(.2,.9,.3,1.1);
}
.photo-card img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: transform 0.35s;
}
.photo-card:hover {
    border-color: #e67e22;
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(230,126,34,0.15);
}
.photo-card:hover img { transform: scale(1.08); }

.product-img-badge {
    position: absolute;
    top: 8px; right: 8px;
    background: rgba(230,126,34,0.95);
    color: #fff;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 10px;
    z-index: 2;
}

/* ========== 侧边浮动快捷栏 Floating Sidebar ========== */
.float-sidebar {
    position: fixed;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 800;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.12);
    overflow: hidden;
    border: 1px solid #e5e7eb;
}
.fsb-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 58px;
    padding: 9px 4px;
    font-size: 11px;
    color: #475569;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    transition: all 0.25s;
    border-bottom: 1px solid #f1f5f9;
    line-height: 1.2;
    text-align: center;
}
.fsb-item:last-child { border-bottom: 0; }
.fsb-item:hover {
    background: linear-gradient(135deg,#1a4a8a,#2a6cb8);
    color: #fff !important;
    transform: translateX(-3px);
}
.fsb-item:hover .fsb-icon { transform: scale(1.15); }
.fsb-icon {
    font-size: 22px;
    margin-bottom: 4px;
    line-height: 1;
    display: inline-block;
    transition: transform 0.25s;
}
.fsb-text { font-weight: 500; }
.fsb-phone:hover { background: linear-gradient(135deg,#10b981,#059669); }
.fsb-qq:hover    { background: linear-gradient(135deg,#12b7f5,#0ea5e9); }
.fsb-email:hover { background: linear-gradient(135deg,#f59e0b,#d97706); }
.fsb-wechat:hover{ background: linear-gradient(135deg,#22c55e,#16a34a); }
.fsb-quote:hover { background: linear-gradient(135deg,#8b5cf6,#7c3aed); }
.fsb-top:hover   { background: linear-gradient(135deg,#64748b,#475569); }

/* 微信 Popover */
.fsb-wechat-popover {
    position: absolute;
    right: calc(100% + 12px);
    top: 50%;
    transform: translateY(-50%) translateX(10px);
    background: #fff;
    border-radius: 10px;
    padding: 14px;
    width: 170px;
    text-align: center;
    box-shadow: 0 8px 30px rgba(0,0,0,0.18);
    opacity: 0;
    visibility: hidden;
    transition: all 0.28s cubic-bezier(.2,.9,.3,1);
    pointer-events: none;
    z-index: 999;
}
.fsb-wechat:hover .fsb-wechat-popover {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
}
.fsb-wechat-popover::after {
    content: "";
    position: absolute;
    right: -7px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px; height: 14px;
    background: #fff;
    box-shadow: 2px -2px 3px rgba(0,0,0,0.04);
    transform-origin: 0 0;
    transform: translateY(-50%) rotate(45deg);
}
.fsb-wechat-popover img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: contain;
    border-radius: 6px;
    background: #f8fafc;
    padding: 6px;
    border: 1px solid #eee;
}
.fsb-wechat-popover p {
    margin: 8px 0 0;
    font-size: 12px;
    color: #64748b;
}
@media (max-width: 767px) {
    .float-sidebar { right: 6px; }
    .fsb-item { width: 46px; padding: 7px 2px; font-size: 10px; }
    .fsb-icon { font-size: 18px; }
    .fsb-wechat-popover { right: calc(100% + 6px); width: 140px; padding: 10px; }
}

/* ========== 产品详情页 CTA / 布局 动画 ========== */
.product-meta-list li {
    transition: background 0.2s;
    border-radius: 4px;
}
.product-meta-list li:hover { background: #f8fafc; }

.btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.12);
}
.btn:active:not(:disabled) { transform: translateY(0); box-shadow: none; }

.product-card {
    transition: all 0.35s cubic-bezier(.2,.9,.3,1.1);
}
.product-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 28px rgba(26,74,138,0.12);
}
.product-card:hover .product-card-img img {
    transform: scale(1.07);
}
.product-card-img {
    position: relative;
    overflow: hidden;
}
.product-card-img img {
    transition: transform 0.45s cubic-bezier(.2,.9,.3,1);
}
.product-card-title {
    transition: color 0.2s;
}
.product-card:hover .product-card-title { color: #e67e22; }

.hidden { display: none !important; }

/* logo-text-wrap 默认 visible，hidden 类才隐藏 */
.logo-text-wrap { display: block; }
.logo-text-wrap.hidden { display: none; }
.site-logo-img {
    max-height: 64px;
    max-width: 280px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.footer-logo-wrap {
    margin-bottom: 10px;
}
.footer-logo-img {
    max-height: 50px;
    max-width: 220px;
    opacity: 0.92;
    transition: opacity 0.2s;
}
.footer-logo-img:hover { opacity: 1; }

/* Tab 导航 hover */
.tab-navs li {
    transition: all 0.2s;
    position: relative;
}
.tab-navs li:hover:not(.active) { color: #1a4a8a; }

/* 规格表格行 hover */
.specs-table tbody tr:hover {
    background: #fffbeb !important;
}

/* 应用领域卡片 hover */
.applications-grid > div,
[style*="grid-template-columns:repeat(auto-fill"] > div {
    transition: all 0.3s;
}
[style*="grid-template-columns:repeat(auto-fill"] > div:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

/* 响应式小屏下的顶部条/导航压缩 */
@media (max-width: 480px) {
    .site-logo-img { max-height: 44px; max-width: 200px; }
    .gallery-zoom-hint { font-size: 11px; padding: 3px 8px; }
    .gallery-arrow { width: 34px; height: 34px; font-size: 20px; line-height: 32px; }
}

/* ======================================================================
   高优先级兜底（全局最末尾）：避免任何响应式或内联样式将 fixed 组件降级
   ====================================================================== */
/* 1) 浮动联系栏：固定在屏幕右侧中部 */
.float-sidebar {
    position: fixed !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 9999 !important;
    display: flex !important;
}
@media (max-width: 767px) {
    .float-sidebar { right: 6px !important; }
}

/* 2) Back-to-top：固定在屏幕右下 */
.back-to-top {
    position: fixed !important;
    right: 20px !important;
    bottom: 40px !important;
    z-index: 9998 !important;
    display: flex !important;
}

/* 3) 移动端遮罩：固定覆盖全屏，绝对不占 header/main 流式布局 */
.nav-mask {
    position: fixed !important;
    inset: 0 !important;
    display: none !important;
    z-index: 997 !important;
}
.nav-mask.show {
    display: block !important;
}

