@property --conic-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

:root {
    /* 单张下拉 banner 图高度；面板高度 = 该值 × 2（单张 banner 铺满面板） */
    --banner-height: 200px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Muli', 'Helvetica Neue', Arial, sans-serif !important;
    font-weight: 400;
    color: #333;
    background-color: #fff;
    line-height: 1.6;
    width: 100%;
    overflow-x: hidden;
}

/* 全站链接默认无下划线（含首页各区块按钮、卡片标题、logo 链接等） */
a {
    text-decoration: none !important;
}
a:hover,
a:focus,
a:visited {
    text-decoration: none !important;
}

/* 网站字体：标题统一用 Muli Bold(700) */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Muli', 'Helvetica Neue', Arial, sans-serif !important;
    font-weight: 800;
}

main {
    width: 100%;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

header {
    background: #fff;
	border-radius: 50px;
    position: sticky;
    top: 0;
    z-index: 1000;
    max-width: 1200px;
    margin: 0 auto;
    transition: top 0.3s ease, transform 0.3s ease;
    overflow: visible;
}
.logo a{
	display:flex;align-items:center;text-decoration:none;color:inherit;
}
.logo img{
	width:100%;max-height:35px;
}
/* 下滑隐藏 / 上滑悬浮显示（额外 40px 是抵消 scrolled 状态的 top:20px，确保完全移出视口） */
header.nav-hidden {
    transform: translateY(calc(-100% - 40px));
}

header.scrolled {
    top: 20px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
}

.logo span {
    font-size: 24px;
    font-weight: 700;
    color: #68c4d4;
}

.nav-links {
    display: flex;
    list-style: none;
    gap: 28px;
}

.nav-links .dropdown {
    padding: 0 10px;
    position: relative;
}

.nav-links .dropdown::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 20px;
    pointer-events: none;
}

.nav-links a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    font-size: 15px;
    transition: color 0.3s;
}

.nav-links a:hover {
    color: #19284c;
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.search-icon {
    font-size: 20px;
    cursor: pointer;
    color: #666;
}

.nav-lang {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.login-btn {
    padding: 8px 12px;
    border: 1px solid #68c4d4;
    background: transparent;
    color: #68c4d4;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.login-btn i {
    font-size: 16px;
}

.login-btn:hover {
    background: #68c4d4;
    color: #fff;
}

/* ---------- 已登录：导航账户入口 + 悬停下拉 ----------
   不依赖 JS：靠 :hover 与 :focus-within 展开，键盘 Tab 也能打开；
   触屏用户点父级链接直接进 /account/（页内也有 Sign out），不会卡在无法展开的下拉里。 */
.nav-account { position: relative; display: inline-flex; }
.login-btn--me { gap: 6px; }
.nav-account-name {
    max-width: 108px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13.5px;
}
.nav-account-caret { font-size: 10px; opacity: .7; }
.nav-account-menu {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 8px;
    min-width: 236px;
    padding: 8px;
    background: #fff;
    border: 1px solid #e6ebf0;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(20, 40, 90, .16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .22s, transform .22s, visibility .22s;
    z-index: 1200;
}
.nav-account:hover .nav-account-menu,
.nav-account:focus-within .nav-account-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-account-menu a {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    border-radius: 7px;
    color: #3f4a56;
    font-size: 13.8px;
    text-decoration: none;
}
.nav-account-menu a:hover { background: #f1f7f9; color: #0097a7; }
.nav-account-menu a i { width: 16px; text-align: center; color: #8a94a6; }
.nav-account-menu a:hover i { color: #0097a7; }
.nav-account-head {
    padding: 6px 11px 10px;
    border-bottom: 1px solid #eef2f5;
    margin-bottom: 4px;
}
.nav-account-mail { display: block; font-size: 12.6px; color: #8a94a6; word-break: break-all; }
.nav-account-tag {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
}
.nav-account-tag--pending  { background: #fdf3dc; color: #8a5a08; }
.nav-account-tag--rejected { background: #fbe6e6; color: #a32020; }
.nav-account-out { color: #a32020; }

.store-btn {
    padding: 8px 12px;
    background: #68c4d4;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.store-btn i {
    font-size: 16px;
}

.store-btn:hover {
    background: #0097a7;
}

.burger-menu {
    display: none;
    font-size: 24px;
    cursor: pointer;
}

.mobile-nav {
    display: none;
    padding: 15px 60px;
    background: #fff;
    border-top: 1px solid #eee;
}

.mobile-nav ul {
    list-style: none;
}

.mobile-nav ul li {
    margin-bottom: 10px;
}

.mobile-nav ul li a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
}

.hero {
    background: linear-gradient(181deg, #f8fcfd00 0%, rgb(244 252 253) 50%, rgb(0 188 212 / 5%) 100%);
    padding: 50px 60px;
    position: relative;
    overflow: hidden;
    /* 固定首屏高度：占满「视口 − 吸顶头部(约90px)」，让第一屏刚好显示整个 Hero 板块 */
    min-height: calc(100vh - 90px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hero::before {
    content: '';
    position: absolute;
    top: 60%;
    left: -280px;
    pointer-events: none;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle,#68c4d416 33%, transparent 70%);
    border-radius: 50%;
    z-index: 1;
    opacity: 0;             /* 默认隐藏；满足「白底 + 高度 ≥ 1/2 屏」时由 JS 加 .diffuse-active */
}

/* 首页 Hero 背景图：绝对定位铺满整块，彻底脱离文档流，绝不撑高/挤压内容 */
.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(181deg, rgba(248,252,253,0.15) 0%, rgba(244,252,253,0.72) 55%, rgba(0,188,212,0.08) 100%), var(--hero-bg, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    pointer-events: none;
}

.hero-decoration {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 300px;
    z-index: 1;
    pointer-events: none;
}

.hero-decoration svg {
    width: 100%;
    height: 100%;
    /* 轻微模糊，让三角网格更扩散、通透，避免生硬线条感 */
    filter: blur(0.6px);
    opacity: 0.92;
}

.hero-content {
    text-align: center;
    position: relative;
    z-index: 1;
    margin: 0 auto;
    max-width: 900px;
    width: 90%;
}

.hero-content h1 {
    font-size: 46px;
    font-weight: 700;
	width:86%;
	margin:auto;
    margin-bottom: 20px;
    color: #19284c;
    border-bottom: 2px solid #68c4d4;
}

.hero-content h1 span {
    background: #19284c;
    color: #2eafbf;
    font-size: 36px;
	line-height:58px;
}

.word-carousel {
    display: inline-block;
    width: 200px;
    height: 56px;
    overflow: hidden;
    vertical-align: middle;
    line-height: 56px;
	border-radius:8px;
	margin-bottom:12px;
}

.word-carousel-inner {
    display: flex;
    flex-direction: column;
    animation: wordScroll 9s infinite;
    line-height: 56px;
}

@keyframes wordScroll {
    0%, 28% { transform: translateY(0); }
    33%, 61% { transform: translateY(-58px); }
    66%, 94% { transform: translateY(-116px); }
    100% { transform: translateY(0); }
}

.hero-content p {
    font-size: 18px;
    color: #666;
    margin-bottom: 40px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
	letter-spacing:2px;
}

.brand-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.brand-carousel {
    height: 260px;          /* 固定高度：容纳最高的图片 item，切换时不再改变总高 */
    overflow: hidden;
    position: relative;
}

.brand-item {
    display: none;
    position: absolute;     /* 脱离文档流，active 切换不改变容器高度 */
    inset: 0;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.brand-item.brand-item-image {
    padding: 4px 0;
}

.brand-item.brand-item-image img {
    max-height: 260px;
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

.brand-item.active {
    display: flex;
}

.brand-badge span,
.brand-item span {
    font-size: 16px;
    font-weight: 600;
    color: #333;
}

.brand-badge .sub-text,
.brand-item .sub-text {
    font-size: 12px;
    color: #999;
    font-weight: 400;
}

.brand-badge .minew,
.brand-item .minew {
    color: #ff9800;
}

.hero-product-card-wrapper {
    margin-top: 80px;
    max-width: 900px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 1;
}

.hero-product-card {
    background: rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(4px);
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 3;
    width: 100%;
    position: relative;
}

.hero-product-card::before {
    content: '';
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    bottom: -3px;
    border-radius: 23px;
    padding: 3px;
    background: conic-gradient(from var(--conic-angle), #d4f4fa, #80deea, #13dcf5, #68c4d4, #55dbec, #52f74f66);
    animation: flowRotate 6s linear infinite;
    -webkit-mask: 
        linear-gradient(#fff 0 0) content-box, 
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: -1;
    pointer-events: none;
}

@keyframes flowRotate {
    to { --conic-angle: 360deg; }
}

.product-badge {
    position: absolute;
    top: -18px;
    left: 35px;
    background: #68c4d4;
    color: #fff;
    padding: 6px 16px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
}

.hero-product-card img {
    width: 168px;
    height: auto;
    object-fit: contain;
	margin:6px;
}

.product-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    margin-right: 20px;
	padding: 25px 35px;
}

.product-name {
    font-size: 20px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 5px;
}

.product-desc {
    font-size: 14px;
    color: #666;
}
.ble-hero-left .btn-primary {
	/*background:#12a8f2;*/
	width:35%;
    color: #19284c;
    padding: 6px 18px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 12px;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
}
.btn-primary {
    border:1px solid #68c4d4;
	background:#fff;
    color: #19284c;
    padding: 6px 18px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
	margin-right:10px;
}

.btn-primary:hover {
    border:1px solid #68c4d4;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,188,212,0.4);
}

.product-section {
    padding: 60px 0;
    background: linear-gradient(135deg, #e0f7fa8a 0%, #ffffff 100%);
    position: relative;
    overflow: hidden;
}

/* 扩散动态效果（一阵阵）：快速由内向外放大淡出，之后停顿一段时间再来下一阵。
   55%~100% 保持透明即为「阵与阵之间的停顿」。 */
@keyframes minewsemi-spread {
    0% {
        transform: translateY(-50%) scale(0.16);
        opacity: 0;
    }
    12% {
        opacity: 1;
    }
    55% {
        transform: translateY(-50%) scale(2.2);
        opacity: 0.8;
    }
    100% {
        transform: translateY(-50%) scale(2.2);
        opacity: 0;
    }
}

.product-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -200px;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, #68c4d4b6 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;   /* 扩散层不拦截点击/滑块 */
    z-index: 0;             /* 永远在内容之下 */
    opacity: 0;             /* 默认隐藏；满足「白底 + 高度 ≥ 1/2 屏」时由 JS 加 .diffuse-active */
}

.product-section::after {
    content: '';
    position: absolute;
    top: 60%;
    right: -280px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle,  #68c4d4b6 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;             /* 默认隐藏；满足「白底 + 高度 ≥ 1/2 屏」时由 JS 加 .diffuse-active */
}

/* 让 product-section 内部内容始终在扩散层之上（扩散层 z-index:0，内容 z-index:1） */
.product-section > *,
.products-page > *,
.ble-series-section > *,
.pd-hero > * {
    position: relative;
    z-index: 1;
}

/* 复用首页 product-section 的「阵阵扩散」效果到其它产品内容板块 */
.products-page,
.ble-series-section {
    position: relative;
    overflow: hidden;
}
.products-page::before,
.ble-series-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -200px;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, #68c4d4b6 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
}
.products-page::after,
.ble-series-section::after {
    content: '';
    position: absolute;
    top: 60%;
    right: -280px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, #68c4d4b6 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
}

/* 扩散效果仅在「白底 + 高度 ≥ 1/2 屏」的最外层板块上、由 JS 加 .diffuse-active 后启用 */
.product-section.diffuse-active::before,
.products-page.diffuse-active::before,
.ble-series-section.diffuse-active::before,
.pd-hero.diffuse-active::before,
.hero.diffuse-active::before,
.news-section.diffuse-active::before,
.ble-contact-section.diffuse-active::before,
.pd-compare.diffuse-active::before,
.pd-related.diffuse-active::before {
    opacity: 1;
    animation: minewsemi-spread 6s ease-out infinite;
}
.product-section.diffuse-active::after,
.products-page.diffuse-active::after,
.ble-series-section.diffuse-active::after,
.pd-hero.diffuse-active::after {
    opacity: 1;
    animation: minewsemi-spread 6s ease-out infinite 3s;
}

/* 系统开启「减少动态效果」时停止动画（.diffuse-active 只加在符合条件的板块上） */
@media (prefers-reduced-motion: reduce) {
    .diffuse-active::before,
    .diffuse-active::after {
        animation: none !important;
    }
}

.product-section h2 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 30px;
    text-align: center;
    color: #19284c;
}

.product-tabs {
    display: flex;
    flex-wrap: wrap;               /* 放不下时换行，而不是把首尾 tab 挤出容器被 .product-section 的 overflow:hidden 裁掉 */
    justify-content: space-between;
    gap: 0 8px;
    margin-bottom: 40px;
    border-bottom: 1px solid #cfd8dc;
    position: relative;
    z-index: 2;                    /* 高于扩散层(z0)与同级内容(z1)，确保首尾 tab 不被任何绝对层遮挡 */
}

.product-tabs .tab {
    padding: 10px 12px;            /* 改为左右对称，首尾不再贴边，命中区更稳 */
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #90a4ae;
    transition: all 0.3s;
    border-bottom: 3px solid transparent;
    white-space: nowrap;           /* 防 tab 文字换行撑破行高/溢出 */
    flex: 0 0 auto;                /* 不压缩；宽度不够就换行而不是被挤压裁切 */
}

.product-tabs .tab.active {
    color: #68c4d4;
    border-bottom-color: #68c4d4;
}

.product-tabs .tab:hover {
    color: #68c4d4;
}

.product-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    position: relative;
}

/* 流光连接线已移至 .product-title::before（随各系列图标宽度自适应） */

@keyframes flowLineHoriz {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.product-content::after {
    content: '';
    position: absolute;
    top: 80px;
    left: calc(50% + 6px);
    width: 8px;
    height: 8px;
    background: #68c4d4;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(0, 188, 212, 0.3);
	z-index:2;
}

.product-left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.product-header {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
	padding: 46px 0;
}

/* 系列图标：固定高度、按原始比例缩放、左对齐紧贴标题；不裁切、不撑出右边空白 */
.bluetooth-icon {
    width: auto;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
}

.bluetooth-icon i {
    font-size: 28px;
    color: #68c4d4;
}

/* 标题盒：撑满左列剩余宽度，作为流光线的定位基准（随图标实际宽度自适应） */
.product-title {
    position: relative;
    flex: 1;
    min-width: 0;
}

/* 流光连接线：从标题左缘延伸到分界圆点，各系列 tab 自动对齐 */
.product-title::before {
    content: '';
    position: absolute;
    top: 39px;
    left: 0;
    width: calc(100% + 30px);
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(
        90deg,
        transparent,
        #68c4d4,
        #13dcf5,
        #80deea,
        #68c4d4,
        transparent
    );
    background-size: 200% 100%;
    animation: flowLineHoriz 3s linear infinite;
    pointer-events: none;
}

/* 分类图标 jpg/svg：保持比例完整显示，避免左右被裁 */
.bluetooth-icon img {
    width: auto;
    max-width: 180px;
    height: 100%;
    object-fit: contain;
}

.product-title h3 {
    font-size: 22px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 15px;
}

.product-title p {
    font-size: 13px;
    color: #888;
    line-height: 1.5;
}

.product-left img {
    width: 100%;
    /*height: 80px;*/
    object-fit: contain;
    /*margin-bottom: 20px;*/
}

.btn-secondary {
    background: #68c4d4;
    border: none;
    color: #fff;
    padding: 12px 30px;
    border-radius: 25px;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.3s;
    align-self: flex-start;
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-secondary:hover {
    background: #68c4d4;
}

.product-right {
    display: flex;
    flex-direction: column;
}

.product-card-container {
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    position: relative;
    border-radius: 20px;
    overflow: visible;
	z-index:1;
}

/* 圆角顺滑流动边框（与新品区 hero-product-card 一致） */
.product-card-container::before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: 24px;
    padding: 2px;
    background: conic-gradient(from var(--conic-angle), #d4f4fa, #80deea, #13dcf5, #68c4d4, #55dbec, #52f74f66);
    animation: flowRotate 6s linear infinite;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: 2;
    pointer-events: none;
}


.product-card-horizontal {
    display: flex;
    padding: 60px;
    gap: 15px;
}

.product-card-horizontal:hover {
    background: #fafafa;
}

.product-card-text {
    flex: 1;
}

.product-card-text h4 {
    font-size: 15px;
    font-weight: 600;
    color: #19284c;
    margin-bottom: 12px;
}

.product-card-text ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.product-card-text ul li {
    font-size: 12px;
    color: #666;
    margin-bottom: 6px;
    line-height: 1.4;
    padding-left: 12px;
    position: relative;
}

.product-card-text ul li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: #68c4d4;
}

.product-card-horizontal img {
    width: 46%;
    object-fit: contain;
}

.card-divider {
    height: 2px;
    background: linear-gradient(90deg, transparent, #cfd8dc, transparent);
    margin: 0 20px;
}

.btn-primary-sm {
    background: #68c4d4;
    border: none;
    color: #fff;
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    font-size: 13px;
    transition: all 0.3s;
    margin-top: 15px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.btn-primary-sm:hover {
    background: #68c4d4;
}

.application-section {
    background: #ffffff;
    padding: 0;
    position: relative;
    overflow: hidden;
}

.application-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -250px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(0, 188, 212, 0.1) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;   /* 装饰圆不拦截首尾导航项点击 */
    z-index: 0;             /* 压在内容之下 */
}

.application-section::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -250px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(156, 39, 176, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;   /* 装饰圆不拦截首尾导航项点击 */
    z-index: 0;
}

.app-industry-nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 46px 60px 10px;
    width: 100%;
    height: auto;
    position: relative;      /* 配合 z-index 把导航内容抬到装饰圆之上，双保险防遮挡 */
    z-index: 1;
}

.app-nav-label {
    width: 100%;
    padding: 0 0 22px;
    margin: 0;
}
.app-nav-label span {
    font-size: 30px;
    font-weight: 700;
    color: #17325c;
    letter-spacing: .5px;
}

/* ============================================================
   通用「电路走线」板块标题装饰（可复用）
   用法：给任意标题元素加 class="sec-deco"，文字直接作为其内容即可。
   ::before 画左侧走线，::after 画右侧（旋转180°镜像）。
   ============================================================ */
.sec-deco,
.section-title,
.co-title,
.aa-title,
.sh-title,
.ct-heading,
.pd-section-title,
.section-center h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.sec-deco::before,
.sec-deco::after,
.section-title::before,
.section-title::after,
.co-title::before,
.co-title::after,
.aa-title::before,
.aa-title::after,
.sh-title::before,
.sh-title::after,
.ct-heading::before,
.ct-heading::after,
.pd-section-title::before,
.pd-section-title::after,
.section-center h2::before,
.section-center h2::after {
    content: '';
    flex: 0 0 auto;
    position: relative;
    width: 130px;
    max-width: 11vw;
    height: 32px;
    opacity: .38;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='64' viewBox='0 0 260 64' fill='none'%3E%3Ccircle cx='70' cy='14' r='6' stroke='%232aa9c4' stroke-width='2.5' fill='%23ffffff'/%3E%3Cpath d='M78 14H165L183 30H238' stroke='%232aa9c4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='243' cy='30' r='3.5' fill='%232aa9c4'/%3E%3Cpath d='M6 38H130L148 54H186' stroke='%23c9d4d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='194' cy='54' r='6' stroke='%23c9d4d8' stroke-width='2.5' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center / contain;
}
.sec-deco::before,
.section-title::before,
.co-title::before,
.aa-title::before,
.sh-title::before,
.ct-heading::before,
.pd-section-title::before,
.section-center h2::before {
    top: -9px;
}
.sec-deco::after,
.section-title::after,
.co-title::after,
.aa-title::after,
.sh-title::after,
.ct-heading::after,
.pd-section-title::after,
.section-center h2::after {
    transform: rotate(180deg);
    top: 9px;
}

.industry-items {
    display: flex;
    gap: 15px;
    flex: 1;
    align-items: center;
    justify-content: space-around;
}

.app-industry-nav .industry-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    color: #666;
    transition: all 0.3s;
    border-radius: 8px;
}

.industry-icon {
    width: 66px;
    height: 66px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.industry-icon i {
    font-size: 35px;
    color: #999;
    transition: all 0.3s;
}

.app-industry-nav .industry-item.active {
    /*background: #b2ebf2;*/
}

.app-industry-nav .industry-item.active .industry-icon {
    /*background: #fff;*/
}

.app-industry-nav .industry-item.active .industry-icon i {
    color: #19284c;
}

.app-industry-nav .industry-item.active span {
    color: #19284c;
}

.app-industry-nav .industry-item:hover {
    background: rgba(0,188,212,0.1);
}

/* 鼠标悬停：图标放大（.industry-icon i 本身已有 transition: all .3s，缩放是平滑的） */
.app-industry-nav .industry-item:hover .industry-icon i {
    transform: scale(1.25);
}

.app-content {
    display: flex;
    padding: 28px 60px 20px;
    background: #1ba0b1b6;
}

.app-main-container {
    display: flex;
    background: #e0f7fa;
    border-radius: 12px;
    overflow: hidden;
    width: 100%;
    min-height: 500px;
}

.app-vertical-nav {
    display: flex;
    flex-direction: column;
    width: 220px;
    background: #fff;
    padding: 15px;
    height: 100%;
    position: relative;
    z-index: 10;
    gap: 8px;
}

.app-vertical-nav .nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 26px;
    cursor: pointer;
    transition: all 0.3s;
    color: #666;
    font-size: 13px;
    border-radius: 8px;
    min-height: 48px;
    flex: 0 0 auto;
}

.app-vertical-nav .nav-item i {
    font-size: 20px;
    color: #19284c;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #19284c;
    border-radius: 8px;
    flex-shrink: 0;
}

.app-vertical-nav .nav-item-overview {
    background: #19284c;
    color: #fff;
    padding: 24px 18px;
    font-size: 16px;
    font-weight: 700;
    min-height: 90px;
    border-radius: 12px;
    margin-bottom: 10px;
}

.app-vertical-nav .nav-item-overview i {
    width: 56px;
    height: 56px;
    font-size: 26px;
    color: #fff;
    border-color: #fff;
    background: transparent;
}

.app-vertical-nav .nav-item.active {
    background: #e8f4f5;
    color: #19284c;
}

.app-vertical-nav .nav-item.active i {
    color: #19284c;
    border-color: #19284c;
    background: #fff;
}

.app-vertical-nav .nav-item:hover {
    background: #f5f5f5;
}

.app-vertical-nav .nav-item-overview:hover,
.app-vertical-nav .nav-item-overview.active:hover {
    background: #1a237e;
    color: #fff;
}

.app-vertical-nav .nav-item-overview.active {
    background: #19284c;
    color: #fff;
}

.app-vertical-nav .nav-item.active:hover {
    background: #19284c;
    color: #fff;
}

.app-vertical-nav .nav-item.active:hover i {
    color: #fff;
    border-color: #fff;
    background: #19284c;
}

.app-main {
    flex: 1;
    display: flex;
    padding: 25px;
    gap: 25px;
    height: 100%;
    position: relative;
}

.app-sub-content {
    position: absolute;
    top: 25px;
    left: 25px;
    right: 25px;
    bottom: 25px;
    display: flex;
    gap: 25px;
}

.app-content-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.app-title-icon {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #19284c;
    font-weight: 600;
    margin-bottom: 15px;
}

.app-title-icon i {
    font-size: 24px;
}

.app-content-left h3 {
    font-size: 26px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 15px;
}

.app-content-left p {
    font-size: 13px;
    color: #555;
    line-height: 1.8;
    margin-bottom: 25px;
    flex: 1;
}

.app-content-left .btn-primary {
    background: #68c4d4;
    border: none;
    color: #fff;
    padding: 10px 30px;
    border-radius: 25px;
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
}

.app-content-left .btn-primary:hover {
    background: #0097a7;
}

.recommended-modules {
    margin-top: auto;
}

.module-title {
    font-size: 14px;
    font-weight: 600;
    color: #68c4d4;
    margin-bottom: 15px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.module-item {
    background: #fff;
    padding: 2px;
    border-radius: 8px;
    text-align: center;
}

.module-item img {
    width: 100%;
    height: 70px;
    object-fit: contain;
    margin-bottom: 8px;
}

.module-item span:first-of-type {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    display: block;
}

/*.module-desc {
    font-size: 11px;
    color: #999;
    margin-top: 5px;
}*/

.app-content-right {
    flex: 1.5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-content-right img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 12px;
}

.app-left {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.app-header {
    color: #fff;
}

.app-header h3 {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 15px;
}

.app-header p {
    font-size: 16px;
    color: rgba(255,255,255,0.8);
    margin-bottom: 20px;
    max-width: 500px;
}

.recommended-modules {
    margin-top: 10px;
}

.module-title {
    font-size: 14px;
    font-weight: 600;
    color: #19284c;
    margin-bottom: 15px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.module-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    /*gap: 8px;*/
}

.module-item img {
    width: 100%;
    height: 100px;
    object-fit: contain;
    background: rgba(255,255,255,0.1);
    border-radius: 6px;
    /*padding: 10px;*/
}

.module-item span {
    font-size: 11px;
    color:#68c4d4;
    text-align: center;
}

.app-right {
    display: flex;
    flex-direction: column;
}

.app-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
    min-height: 400px;
}

.partners-distributors-section {
    padding: 0;
    background: #ffffff;
    position: relative;
    overflow: hidden;
}

.partners-distributors-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -200px;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(0, 188, 212, 0.08) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.partners-distributors-section::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -200px;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(156, 39, 176, 0.05) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.pd-content {
    display: flex;
    position: relative;
    overflow: hidden;
    padding: 0;
    margin-top: 60px;
}

.pd-card {
    flex: 1;
    padding: 50px 0;
    position: relative;
    min-height: 350px;
}

.pd-card-partners {
    background: #e0f7fa;
    clip-path:polygon(0 0, 90% 0, 100% 100%, 0% 100%);
	margin-right:-20px;
	padding: 26px 80px 80px 80px;
}

.pd-card-partners::before {
    content: "PARTNERS";
    position: absolute;
    bottom: -26px;
    left: 30%;
    font-size: 90px;
    font-weight: 800;
    background: linear-gradient(181deg, #ffffff0a 26%, rgb(255 255 255) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: 8px;
    pointer-events: none;
}

.pd-card-distributors {
    background: #f5f5f5;
    clip-path:polygon(0 0, 100% 0, 100% 100%, 10% 100%);
    margin-left: -80px;
	padding: 80px 80px 35px 80px;
}

.pd-card-distributors::before {
    content: "DISTRIBUTORS";
    position: absolute;
    top: -26px;
    font-size: 90px;
    font-weight: 800;
    background: linear-gradient(180deg, #fff 0%, rgba(0, 0, 0, 0.02) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: 8px;
    pointer-events: none;
}

.pd-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 10px auto;
	width:80%;
}

.pd-card-partners .pd-header {
    position: relative;
    top: 0;
    left: 0;
    right: 0;
}

.pd-card-distributors .pd-header {
    position: absolute;
    bottom: 40px;
    left: 100px;
    right: 40px;
    margin-bottom: 0;
}

.pd-header h3 {
    font-size: 28px;
    font-weight: 700;
    color: #68c4d4;
}

.pd-header .btn-primary {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    border: none;
    color: #fff;
    padding: 10px 25px;
    border-radius: 25px;
    cursor: pointer;
    font-weight: 500;
    font-size: 13px;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.pd-header .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,188,212,0.3);
}

.pd-header .btn-primary i {
    font-size: 12px;
}

.pd-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.pd-logo {
    width: 100%;
    height: 40px;
    object-fit: contain;
    transition: all 0.3s;
    position: relative;
    z-index: 5;      /* 高于绝对定位的标题栏 .pd-header，确保鼠标命中的是图片本身 */
    opacity: 0.75;   /* 黑白/单色 logo 变彩色看不出差别，靠透明度保证 hover 一定有反馈 */
	filter: grayscale(60%);
}

.pd-logo:hover {
    transform: scale(1.06);
    filter: brightness(1.1);
    opacity: 1;
}

/* ===== Partners / Distributors：保留原 4 列网格排列，整组在框内横向循环滚动 ===== */
.pd-logo-wall {
    position: relative;
    z-index: 5;
}
.pd-marquee {
    overflow: hidden;
    width: 100%;
}
.pd-marquee-track {
    display: flex;
    width: 200%;                 /* 两份面板，便于 -50% 无缝循环 */
    animation: pd-marquee-scroll 30s linear infinite;
}
.pd-marquee:hover .pd-marquee-track {
    animation-play-state: paused;
}
/* 供应商框与合作伙伴框反向滚动（不同向） */
.pd-card-distributors .pd-marquee-track {
    animation-direction: reverse;
}
.pd-marquee-panel {
    flex: 0 0 50%;
    width: 50%;
    padding-right: 25px;         /* 与 .pd-grid 的 gap 对齐，衔接处间距一致 */
    box-sizing: border-box;
}
/* 原 .pd-grid / .pd-logo 样式保持不变（4 列网格、灰度、固定高度） */
@keyframes pd-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .pd-marquee-track { animation: none; }
}

.pd-empty {
    color: #90a4ae;
    font-size: 15px;
    padding: 10px 0;
    margin: 0;
}

.news-section {
    padding: 60px 0;
    background: #fafafa56;
    position: relative;
    overflow: hidden;
}

.news-section::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -350px;
    pointer-events: none;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background:radial-gradient(circle,#68c4d416 40%, transparent 70%);
    border-radius: 50%;
    opacity: 0;             /* 默认隐藏；满足「白底 + 高度 ≥ 1/2 屏」时由 JS 加 .diffuse-active */
}

.news-section::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -200px;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(0, 0, 0, 0.06) 0%, transparent 70%);
    border-radius: 50%;
}

.news-section h2 {
    font-size: 28px;
    font-weight: 700;
    text-align: center;
    margin-bottom: 35px;
    color: #19284c;
}

.news-main {
    display: flex;
    gap: 25px;
    margin-bottom: 35px;
    align-items: stretch;
    max-height: 300px;   /* 原 200px，按需求加高主文章区 */
}

.news-main-left {
    flex: 1.8;
}

.news-main-left img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}

.news-main-right {
    flex: 0.8;
    background: linear-gradient(269deg, #b2ebf2 0%, #f5fcfd 100%);
    padding: 30px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.news-meta {
    display: flex;
    gap: 15px;
    margin-bottom: 10px;
}

.news-author {
    font-size: 12px;
    color: #68c4d4;
    font-weight: 500;
}

.news-read {
    font-size: 12px;
    color: #999;
}

.news-main-right h3 {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #68c4d4;
}

.news-main-right h3 a,
.news-main-right h3 a:visited,
.news-main-right h3 a:hover {
    color: #19284c;
    text-decoration: none;
}

.news-main-right p {
    font-size: 14px;
    color: #666;
    line-height: 1.8;
}

.news-main-btn {
    flex-shrink: 0;
    margin: auto;
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* 新闻板块底部的 Read More（由主文章区移到此处，居中显示） */
.news-section-btn {
    display: flex;
    justify-content: center;
    margin-top: 35px;
}

.news-card {
    display: flex;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s;
}

.news-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

.news-card img {
    /*width: 120px;
    height: 120px;*/
    object-fit: cover;
}

.news-card-content {
    padding: 15px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(269deg, #b2ebf2 0%, #f5fcfd 100%);
}

.news-card-content .news-meta {
    margin-bottom: 8px;
}

.news-card-content h4,
.news-card-content h4 a,
.news-card-content h4 a:visited,
.news-card-content h4 a:hover {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #19284c;
    text-decoration: none;
}

.news-card-content p {
    font-size: 12px;
    color: #666;
    line-height: 1.5;
}

.btn-secondary-sm {
    background: transparent;
    border: 1px solid #68c4d4;
    color: #68c4d4;
    padding: 6px 15px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
    font-size: 12px;
    transition: all 0.3s;
}

.btn-secondary-sm:hover {
    background: #68c4d4;
    color: #fff;
}

footer {
    background: linear-gradient(357deg, #e8f8fa52 0%, #d0f4f83d 50%, #b2ebf275 100%);
    color: #333;
    padding: 40px 0 0;
}

.footer-top {
    padding-bottom: 30px;
    margin-bottom: 20px;
}

.footer-brand-row {
    /* 与下方 .footer-nav 用同一套列模板 + 同一 gap，保证 Email/Tel/地址 与
       WiFi Modules / LoRa Modules / Adopter Membership 三列左边缘竖向对齐 */
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 2fr;
    gap: 20px;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #cfd8dc;
    margin-bottom: 20px;
}

.footer-left {
    grid-column: 1 / 3; /* logo + 社交图标占前 2 列宽度（容器 1200 下约 380px） */
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: nowrap; /* 不允许把社交图标挤到第二行 */
    min-width: 0;
}

/* logo 可收缩（空间不够时缩小而不是换行），object-fit 保证收缩时不变形；社交图标组不收缩 */
.footer-left img {
    max-height: 40px;
    max-width: 100%;
    width: auto;
    flex: 0 1 auto;
    min-width: 0;
    object-fit: contain;
}

.footer-left .social-links {
    flex: 0 0 auto;
}

.footer-left span {
    font-size: 32px;
    font-weight: 700;
    color: #68c4d4;
}

.footer-left span::after {
    content: '';
    display: inline-block;
    width: 3px;
    height: 32px;
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    margin-left: 8px;
    vertical-align: middle;
}

.social-links {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* 统一把链接盒子锁定为 26×26 的 flex 容器：不论里面是图片还是字体图标，都在同一基线居中 */
.social-links a {
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.social-links i {
    width: 26px;
    height: 26px;
    flex: 0 0 auto;
    font-size: 16px;
    cursor: pointer;
    color: #666;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.social-links i:hover {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    color: #fff;
}

/* 上传的彩色图标图片：填满 26×26（不加内边距/白底，否则圆比字体图标小一圈），
   display:block 去掉 inline 基线间隙，保证与字体图标齐平 */
.social-links .social-ico-img {
    width: 26px;
    height: 26px;
    box-sizing: border-box;
    padding: 0;
    object-fit: contain;
    border-radius: 50%;
    display: block;
    cursor: pointer;
    transition: transform 0.3s;
}
.social-links .social-ico-img:hover {
    transform: translateY(-2px);
}

.footer-right {
    /* 跨第 3~5 列，内部再按 1fr 1fr 2fr 分，列宽与外层第 3/4/5 列完全一致 */
    grid-column: 3 / 6;
    display: grid;
    grid-template-columns: 1fr 1fr 2fr;
    gap: 20px;
    align-items: center;
}

.footer-right span {
    font-size: 13px;
    color: #666;
    white-space: nowrap;
}

/* 地址较长：列宽已自然限制，允许内部折行 */
.footer-right .footer-addr {
    white-space: normal;
}

/* 窄屏回到上下堆叠（responsive.css 里的 flex-direction:column 依赖 display:flex） */
@media (max-width: 767px) {
    .footer-brand-row {
        display: flex;
    }

    .footer-right {
        display: flex;
    }
}

.footer-nav {
    display: grid;
    /*grid-template-columns: repeat(5, 1fr);*/
	grid-template-columns: 1fr 1fr 1fr 1fr 2fr;
    gap: 20px;
}

.footer-column {
    display: flex;
    flex-direction: column;
}

.footer-column h4 {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 15px;
    color: #19284c;
}

.footer-column ul {
    list-style: none;
}

.footer-column ul li {
    margin-bottom: 8px;
}

.footer-column ul li a {
    text-decoration: none;
    color: #666;
    font-size: 13px;
    transition: color 0.3s;
}

.footer-column ul li a:hover {
    color: #68c4d4;
}

.footer-logos {
    display: flex;
    gap: 10px;
    margin-bottom: 15px;
}

.footer-logos img {
    width: 100px;
    height: 60px;
    object-fit: contain;
    filter: grayscale(0%);
    opacity: 0.7;
}
.footer-logos img:hover {filter: grayscale(100%); }
.footer-subscribe {
    display: flex;
    margin-top: auto;
}

.footer-subscribe input {
    flex: 1;
    padding: 10px 12px;
    border-radius: 20px 0 0 20px;
    border: 1px solid #ddd;
    background: #fff;
    color: #333;
    font-size: 12px;
    border-right: none;
}

.footer-subscribe input::placeholder {
    color: #999;
}

.footer-subscribe .btn-primary {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    border: none;
    color: #fff;
    padding: 10px 20px;
    border-radius: 0 20px 20px 0;
    cursor: pointer;
    font-weight: 500;
    font-size: 12px;
    transition: all 0.3s;
}

.footer-subscribe .btn-primary:hover {
    opacity: 0.9;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    padding: 15px 0;
}

.footer-bottom .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-bottom p {
    font-size: 12px;
    color: #fff;
}

.footer-bottom .footer-links {
    display: flex;
    gap: 20px;
}

.footer-bottom .footer-links a {
    text-decoration: none;
    color: rgba(255,255,255,0.9);
    font-size: 12px;
    transition: color 0.3s;
}

.footer-bottom .footer-links a:hover {
    color: #fff;
}

.footer-links {
    display: flex;
    gap: 20px;
}

.footer-links a {
    text-decoration: none;
    color: rgba(255,255,255,0.5);
    font-size: 13px;
    transition: color 0.3s;
}

.footer-links a:hover {
    color: #fff;
}

.breadcrumb {
    background: #f8f9fa;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

.breadcrumb .container {
    display: flex;
    align-items: center;
    gap: 5px;
}

.breadcrumb a {
    text-decoration: none;
    color: #68c4d4;
    font-size: 13px;
}

.breadcrumb span {
    color: #999;
    font-size: 13px;
}

.products-page {
    padding: 40px 0;
    background: linear-gradient(135deg, #e8f8fa 0%, #f5fcfd 50%, #ffffff 100%);
    min-height: calc(100vh - 200px);
}

.products-header {
    margin-bottom: 30px;
}

.products-header h1 {
    font-size: 28px;
    font-weight: 700;
    color: #68c4d4;
}

.products-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 25px;
}

.products-tab {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #fff;
    border-radius: 25px;
    border: 1.5px solid #e0e0e0;
    font-size: 13px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s;
}

.products-tab i {
    font-size: 14px;
}

.products-tab.active {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    border-color: #68c4d4;
    color: #fff;
}

.products-tab:hover {
    border-color: #68c4d4;
    color: #68c4d4;
}

.search-bar {
    position: relative;
    margin-bottom: 25px;
}

.search-bar input {
    width: 100%;
    padding: 15px 50px 15px 20px;
    border: 1.5px solid #e0e0e0;
    border-radius: 30px;
    font-size: 15px;
    background: #fff;
    transition: all 0.3s;
}

.search-bar input:focus {
    outline: none;
    border-color: #68c4d4;
    box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.1);
}

.search-bar i {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #999;
}

.filters-row {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    margin-bottom: 25px;
}

.filter-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 15px;
    background: #68c4d4;
    color: #fff;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.filter-chip i {
    font-size: 12px;
}

.filter-dropdown {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 15px;
    background: #fff;
    border: 1.5px solid #e0e0e0;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s;
}

.filter-dropdown:hover {
    border-color: #68c4d4;
    color: #19284c;
}

.filter-dropdown i {
    font-size: 12px;
    transition: transform 0.3s;
}

.filter-dropdown:hover i {
    transform: rotate(180deg);
}

.filter-select-wrapper {
    position: relative;
}

.filter-select-wrapper select {
    padding: 10px 40px 10px 15px;
    border: 1.5px solid #e0e0e0;
    border-radius: 6px;
    font-size: 14px;
    color: #333;
    background: #fff;
    cursor: pointer;
    appearance: none;
    transition: all 0.3s;
}

.filter-select-wrapper select:focus {
    outline: none;
    border-color: #68c4d4;
}

.filter-select-wrapper i {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #999;
    pointer-events: none;
}

.clear-filters button {
    padding: 10px 20px;
    border: 1.5px solid #cfd8dc;
    background: transparent;
    color: #666;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s;
}

.clear-filters button:hover {
    border-color: #68c4d4;
    color: #68c4d4;
}

.products-info {
    margin-bottom: 15px;
}

.products-count {
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
}

/* 产品表格（.products-table / .products-headers / .product-row / .product-cell）
   原本在此处有一套早期 grid 版定义，现已全部合并到后面的统一区块（约 .products-table 处）。
   请勿在此重复定义——同名规则会被后面的定义覆盖而不生效。 */

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-top: 30px;
}

.pagination a, .pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 500;
    color: #666;
    text-decoration: none;
    transition: all 0.3s;
    cursor: pointer;
}

.pagination a:hover {
    background: #e0f7fa;
    color: #68c4d4;
}

.pagination a.active {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    color: #fff;
}

.pagination span {
    color: #999;
    cursor: default;
}

/* 右下角浮动操作按钮组：在线交谈 / 发邮件 / 返回顶部 */
.float-icons {
    position: fixed;
    right: 20px;
    bottom: 30px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 1000;
}

.float-icon {
    width: 48px;
    height: 48px;
    background: #68c4d4;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #fff;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    text-decoration: none;
}

.float-icon:hover {
    background: #4AA9AE;
    border: none;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(74,169,174,0.4);
}

/* 返回顶部按钮：默认隐藏，页面滚动超过 300px 后显示 */
.float-icon--top {
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
}
.float-icon--top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.float-icon--top.is-visible:hover {
    transform: translateY(-3px);
}

.error-message {
    color: #f44336;
    font-size: 12px;
    margin-top: 5px;
}

.nav-links .dropdown {
    position: relative;
}

.nav-links .dropdown-trigger {
    display: flex;
    align-items: center;
    gap: 5px;
}

.nav-links .dropdown-trigger i {
    font-size: 12px;
}

.dropdown-menu-wrapper {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    background: #f0f0f0;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    display: none;
    z-index: 9999;
    padding: 0;
    border-top: 1px solid #f0f0f0;
    /*
     * 面板高度固定 = 两张 banner 图高度之和。
     * 左侧分类数量会随顶部导航切换而不同，若高度跟随内容，
     * 右侧 banner 就会出现填不满或溢出，因此高度必须以 banner 为准。
     */
    height: calc(var(--banner-height, 200px) * 2);
    /* 不能用 overflow-y:auto —— 会连带裁剪水平方向，导致右列图片无法延伸到视口最右 */
    overflow: visible;
    opacity: 0;
    /*
     * 只能向下偏移：面板 z-index(9999) 高于 header(1000)，
     * 若用负值上移，满高的 banner 会盖住顶部导航，切换导航时出现闪烁。
     */
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.dropdown-menu-wrapper.show {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

.dropdown-menu {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    /*gap: 20px;*/
    padding: 0 20px;
    position: relative;
    height: 100%;           /* 撑满 wrapper 的固定高度 */
}

/* 分类/子栏目数量不定，超出固定高度时在列内滚动，不影响面板整体高度 */
.dropdown-left,
.dropdown-center {
    overflow-y: auto;
    overflow-x: hidden;
    max-height: 100%;
}

.dropdown-menu-arrow {
    position: absolute;
    top: -16px;
    left: 250px;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 12px solid #fff;
    transition: left 0.2s ease;
    z-index: 10000;
}

.dropdown-left {
    width: 260px;
    /*border-right: 1px solid #e0e0e0;*/
    /*
     * 间距收紧：Applications 最多 8 个分类，单行 8×44 + 上下 padding 32 = 384px，
     * 小于面板固定高度 400px，列内不再出现滚动条。
     */
    padding: 16px 0 16px 0;
}

.dropdown-category {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.3s;
    margin-bottom: 2px;
    text-decoration: none;   /* 左侧分类已改为 <a>，去掉链接下划线 */
    color: inherit;
}

/* 鼠标滑过：淡青背景块，左下角为弧形（其余三角保持 6px） */
.dropdown-category:hover {
    background: rgba(0, 188, 212, 0.1);
    border-radius: 6px 6px 6px 22px;
}

.dropdown-category:hover i,
.dropdown-category:hover span {
    color: #19284c;
}

.dropdown-category span {
    position: relative;
    padding-bottom: 3px;
}

/* 选中项：白色块压在青色块上方，底部只露出一条青色。
   用 inset 内阴影，不额外占高度，不会把其它项挤动，且会跟随左下角弧形。 */
.dropdown-category.active {
    background: #fff;
    box-shadow: inset 0 -4px 0 rgba(0, 188, 212, 0.35);
    border-radius: 6px 0 0 18px;
}

.dropdown-category.active i {
    color: #19284c;
}

.dropdown-category.active span {
    color: #19284c;
    font-weight: 600;
}

/* 原选中态的「下划线 + 右侧箭头」已按需求移除，改由上面的弧形背景块表示选中。
   需要恢复时：下划线 = .dropdown-category.active span::after（2px 青色横线）；
               箭头   = .dropdown-category.active::after（content: '\f105'，margin-left:auto） */

.dropdown-category i {
    font-size: 18px;
    color: #19284c;
    width: 26px;
    height: 26px;
    display: flex;
    align-items:flex-start;
    justify-content: center;
    border-radius: 6px;
}

.dropdown-category span {
    font-size: 15px;
    color: #19284c;
	font-weight:normal;
    white-space: nowrap;     /* 分类名不换行 */
}

.dropdown-center {
    flex: 0.76;
    /* 顶部留一段距离，视觉更透气 */
	background:#fff;
    padding: 26px 20px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

/*
 * 图标与大标题同一行；图标左边缘 = 下方小标题/描述/列表的左边缘（同一条左边界）。
 */
.dropdown-product-section {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.dropdown-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 8px;
}

/* 图标在上，标题与描述在下方成一列并左对齐 */
.dropdown-section-head h4,
.dropdown-section-head p {
    text-align: left;
    margin-left: 0;
}

.dropdown-product-section .dropdown-section-head h4 {
    margin-bottom: 0;
}

.dropdown-section-head > i {
    font-size: 20px;
    color: #68c4d4;
    line-height: 1;         /* 与 h4 首行视觉居中对齐 */
    flex-shrink: 0;
}

/* 分类图标换成 jpg 时：与图标同尺寸，contain 保持完整不变形 */
.dropdown-section-head > img {
    /*width: 20px;*/
    height: auto;
    object-fit: contain;
    line-height: 1;
    flex-shrink: 0;
}

.dropdown-product-section h4 {
    font-size: 15px;
    font-weight: 600;
    color: #19284c;
    margin: 0 0 10px;
}

/* 设计稿：标题下方一行青色副标题（品牌标语，统一展示） */
.dropdown-product-section h4 + p {
    font-size: 12px;
    color: #19284c;
    font-weight: 400;
    margin-top: 3px;
    margin-bottom: 8px;
}

.dropdown-product-section h4 sup {
    font-size: 10px;
    color: #999;
}

.dropdown-product-section p {
    font-size: 12px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 15px;
}

.dropdown-product-grid {
    display: grid;
    /* minmax(0,1fr)：禁止网格轨道被子项 max-content 撑宽，避免长标题顶爆列后被中栏横向裁切 */
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px 24px;
}
/* Blog 面板：真实文章标题较长，用 2 列更易读，避免 4 列下标题堆叠错乱 */
.dropdown-product-section[id^="blog-"] .dropdown-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dropdown-product-grid a{font-weight:normal;}
.dropdown-product-grid a:hover{font-weight:600;}
.dropdown-product-item {
    position: relative;
    padding: 6px 0;
    font-size: 13px;
    color: #333;
    text-decoration: none;
    transition: color 0.2s ease, background-size 0.25s ease;
    display: inline-block;
    /* fit-content：短标题仍紧贴文字（与原 max-content 观感一致），长标题则收缩到栏宽内换行，不再撑破网格 */
    width: fit-content;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
    /* 下划线用背景渐变实现，hover 时从左展开 */
    background-image: linear-gradient(#68c4d4, #68c4d4);
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: left bottom;
}

.dropdown-product-item:hover {
    color: #68c4d4;
    background-size: 100% 1px;
}

/* 尾部箭头：hover 时淡入（设计稿 nRF54H20 →） */
.dropdown-product-item::after {
    content: '\f061';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 9px;
    color: #68c4d4;
    margin-left: 5px;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.dropdown-product-item:hover::after {
    opacity: 1;
}

.dropdown-right {
    width: 320px;
    flex-shrink: 0;
    display: flex;
	background:#fff;
    flex-direction: column;
    height: 100%;           /* 填满面板固定高度，两张 banner 正好铺满不溢出 */
    /* 抵消 menu 右 padding，让图片贴到容器最右 */
    margin-right: -20px;
}

/*
 * 所有桌面宽度统一：banner 绝对定位、右缘贴视口右边（窄屏贴面板右缘），
 * 宽度由图片自身比例决定（height 100% + width auto），完整显示不裁切、不留大片空白。
 * 中列用 --banner-w（JS 按图片真实比例实测，CSS 兜底 480px，对应 1000×850 图）限宽，
 * 避免与右侧 banner 重叠。
 */
@media (min-width: 992px) {
    .dropdown-right {
        position: absolute;
        top: 0;
        bottom: 0;
        left: auto;
        /* banner 右缘贴视口右边：宽屏下推到视口最右，图片不被裁切、右边不留空白。
           其右缘（菜单局部坐标）= max(1200px, 600px + 50vw)。 */
        right: min(0px, calc((1200px - 100vw) / 2));
        width: auto;
        margin-right: 0;
        z-index: 1;
    }
    .dropdown-center {
        /*
         * 中列宽度由 JS 在面板展开时实测写入（见 main.js initDropdownBannerOffset）：
         *   width = banner 左缘 - 左列右缘
         * banner 贴视口右缘（位置稳定，不受菜单居中影响），左列右缘固定，
         * 故中列右缘精确贴 banner 左缘，全宽度无缝、不重叠、不遮挡内容。
         * flex:0 0 auto 关闭弹性分配，让 JS 写入的像素宽度严格生效。
         */
        flex: 0 0 auto;
        padding-right: 16px;
    }
}

/* banner 完整显示：高度撑满面板（= --banner-height × 2），宽度按图片比例自适应。
   提高特异性(.dropdown-right 前缀) + !important，用于压制 WooCommerce
   全局规则 .woocommerce img{height:auto} 对下拉 banner 的覆盖 */
.dropdown-right .dropdown-banner-img {
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    max-height: 100% !important;
    border-radius: 26px;
    padding: 6px;
    object-fit: contain !important;
    object-position: center;
    cursor: pointer;
    transition: opacity 0.3s;
    display: block;
}

.dropdown-banner-img:hover {
    opacity: 0.9;
}

/* Partners / Distributors logo 无缝横向滚动 */
.partner-logo-marquee {
    overflow: hidden;
    width: 100%;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.partner-logo-track {
    display: flex;
    align-items: center;
    gap: 48px;
    width: max-content;
    padding: 10px 0;
    animation: pdLogoScroll 32s linear infinite;
}
.partner-logo-marquee:hover .partner-logo-track {
    animation-play-state: paused;
}
@keyframes pdLogoScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
.partner-logo-item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 96px;
    padding: 0 30px;
    background: #fff;
    border: 1px solid #eef0f3;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(20, 40, 80, .05);
}
.partner-logo-item img {
    max-height: 58px;
    width: auto;
    object-fit: contain;
}



.dropdown-simple-menu {
    display: flex;
    gap: 60px;
    padding: 20px 0;
}

.dropdown-simple-column {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dropdown-simple-column h4 {
    font-size: 14px;
    font-weight: 600;
    color: #68c4d4;
    margin-bottom: 5px;
}

.dropdown-simple-column a {
    font-size: 13px;
    color: #666;
    text-decoration: none;
    transition: color 0.3s;
}

.dropdown-simple-column a:hover {
    color: #68c4d4;
}

.ble-hero {
    position: relative;
    height: 600px;
    /*display: flex;*/
    align-items: flex-start;
    padding-top: 100px;
    overflow: hidden;
}

.ble-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.ble-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ble-hero-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    justify-content: flex-start;
}

.ble-hero-left {
    max-width: 800px;
    text-align: left;
}

.ble-hero-left h1 {
    font-size: 42px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 5px;
    line-height: 1.2;
}

.ble-hero-left h2 {
    font-size: 38px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 20px;
    line-height: 1.2;
}
.ble-hero-left p {
	width:80%;
    font-size: 16px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 8px;
}

.ble-hero-stats {
	width:100%;
    display: flex;
    /*gap: 25px;*/
    margin: 35px 0;
}

.stat-card {
	padding-right:35px;
    /*background: rgba(255,255,255,0.9);
    padding: 20px 25px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);*/
}

.stat-number {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 5px;
}

.stat-label {
    display: block;
    font-size: 12px;
    color: #666;
}

.ble-list-header {
    padding: 60px 0 40px;
    background: linear-gradient(180deg, #e6f7ff 0%, #ffffff 100%);
    text-align: center;
}

.ble-list-header-inner h1 {
    font-size: 36px;
    font-weight: 700;
    color: #68c4d4;
    margin-bottom: 15px;
    line-height: 1.2;
}

.ble-list-header-inner p {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
}

.products-page {
    padding: 40px 0 60px;
    background: #fff;
    min-height: 600px;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.products-page.loaded {
    opacity: 1;
}

.products-header {
    margin-bottom: 20px;
}

.products-header h1 {
    font-size: 28px;
    font-weight: 700;
    color: #19284c;
    margin: 0;
}

.products-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}

.products-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 30px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid #e0e0e0;
    transition: all 0.2s ease;
    cursor: pointer;
}

.products-tab:hover {
    border-color: #19284c;
    color: #68c4d4;
}

.products-tab.active {
    background: #19284c;
    color: #fff;
    border-color: #68c4d4;
}

.products-tab i {
    font-size: 15px;
	font-weight:bolder;
}

.search-bar {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.search-bar input {
    width: 100%;
    padding: 14px 45px 14px 18px;
    border: 1px solid #e0e0e0;
    border-radius: 30px;
    font-size: 14px;
    background: #fff;
    transition: border-color 0.2s ease;
}

.search-bar input:focus {
    outline: none;
    border-color: #19284c;
    box-shadow: 0 0 0 3px rgba(19, 25, 86, 0.1);
}

.search-bar i {
    position: absolute;
    right: 18px;
    color: #999;
    font-size: 14px;
}

.products-count {
    font-size: 14px;
    color: #666;
    font-weight: 500;
    margin-bottom: 15px;
}

.products-count span {
    color: #68c4d4;
    font-weight: 700;
}

.filters-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 20px;
    background: #e6f4ff;
    color: #68c4d4;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.filter-chip:hover {
    background: #d4eaff;
}

.filter-chip i {
    font-size: 12px;
    cursor: pointer;
}

.filter-chip.active {
    background: #68c4d4;
    color: #fff;
}

.filter-chip.active i {
    color: #fff;
}

.filter-dropdown {
    position: relative;
    padding: 6px 12px;
    border: 1px solid #d0d0d0;
    border-radius: 20px;
    background: #fff;
    color: #333;
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.2s ease;
    min-width: 100px;
    z-index: 1;
}

.filter-dropdown.open {
    z-index: 500;
}

.filter-dropdown:hover {
    border-color: #68c4d4;
}

.filter-dropdown span {
    font-weight: 500;
}

.filter-dropdown i {
    font-size: 10px;
    color: #999;
}

.filter-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 5px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    min-width: 220px;
    padding: 12px 0;
    display: none;
    z-index: 100;
    max-height: 320px;
    overflow: hidden;
    flex-direction: column;
}

.filter-dropdown.open .filter-dropdown-menu {
    display: flex;
}

.filter-dropdown-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 15px 8px;
    border-bottom: 1px solid #f0f0f0;
    margin-bottom: 6px;
}

.filter-dropdown-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.filter-dropdown-close {
    font-size: 12px;
    color: #999;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

.filter-dropdown-close:hover {
    color: #333;
}

.filter-dropdown-list {
    flex: 1;
    overflow-y: auto;
    padding: 0 8px;
}

.filter-dropdown-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    font-size: 13px;
    color: #333;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.15s ease;
}

.filter-dropdown-item:hover {
    background: #f0f4ff;
}

.filter-dropdown-item input[type="checkbox"] {
    margin: 0;
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: #68c4d4;
}

.filter-dropdown-item.active {
    background: #e6f4ff;
    color: #68c4d4;
}

.filter-dropdown-footer {
    display: flex;
    gap: 8px;
    padding: 10px 15px 0;
    border-top: 1px solid #f0f0f0;
    margin-top: 6px;
}

.filter-dropdown-footer button {
    flex: 1;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

.filter-btn-show {
    background: #68c4d4;
    color: #fff;
}

.filter-btn-show:hover {
    background: #1a2375;
}

.filter-btn-reset {
    background: #f5f5f5;
    color: #666;
}

.filter-btn-reset:hover {
    background: #e8e8e8;
}

.filter-dropdown .selected-count {
    font-size: 11px;
    color: #999;
    margin-left: 4px;
}

.products-table-wrapper {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    overflow-x: auto;
    transition: opacity 0.2s ease;
}

.filters-row {
    transition: opacity 0.2s ease;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.selected-chips-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    min-height: 0;
}

.selected-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 16px;
    background: #68c4d4;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.selected-filter-chip:hover {
    background: #1a2375;
}

.selected-filter-chip i {
    font-size: 10px;
    cursor: pointer;
    opacity: 0.8;
}

.selected-filter-chip i:hover {
    opacity: 1;
}

.filter-dropdown[data-filter="clear_all"] {
    border-color: #ddd;
    background: #fff;
    color: #666;
}

.filter-dropdown[data-filter="clear_all"]:hover {
    border-color: #e74c3c;
    color: #e74c3c;
}

.filter-dropdown[data-filter="clear_all"] i {
    color: #999;
}

.filter-dropdown[data-filter="clear_all"]:hover i {
    color: #e74c3c;
}

/* 产品表格：列数与列宽现在由 PHP 的 minewsemi_product_list_columns() 按系列算好，
   通过 --pt-cols / --pt-minw 两个变量下发到 .products-table（模板首屏与 custom.js 重画都走同一份）。
   下面花括号里的默认值 = '*' 那一组（蓝牙/全站）的旧数值，只在变量缺失时兜底。
   窄屏不靠砍列适配（那是以前“手机上筛选结果只剩一张图”的根源），而是撑到 min-width
   让外层 .products-table-wrapper 横向滑动；表头与数据行必须读同一个变量，否则逐列错位。 */
.products-table {
    width: 100%;
    min-width: var(--pt-minw, 1150px);
}

.products-headers {
    display: grid;
    grid-template-columns: var(--pt-cols, 1fr 1fr 0.9fr 1fr 0.9fr 0.7fr 0.7fr 0.8fr 0.9fr 0.6fr);
    align-items: center;
    gap: 6px;
    padding: 12px 20px;
    background: #f5f7fa;
    border-radius: 8px 8px 0 0;
    border-bottom: 2px solid #e8e8e8;
	justify-content:center;
}

.products-headers span {
    padding: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    text-align: left;
    line-height: 1.3;
    white-space: normal;
    /* 不要用 word-break: break-word：它会把英文单词从中间断开，
       手机上表头 RX Sensitivity 就裂成了 “RX Sensitivit / y”。
       normal + overflow-wrap：先按词换行，实在装不下才拆字。 */
    word-break: normal;
    overflow-wrap: break-word;
    overflow: visible;
	text-align:center;
}

.product-row {
    display: grid;
    grid-template-columns: var(--pt-cols, 1fr 1fr 0.9fr 1fr 0.9fr 0.7fr 0.7fr 0.8fr 0.9fr 0.6fr);
    gap: 6px;
    padding: 0 20px;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.15s ease;
}

.product-row:hover {
    background: #fafbff;
}

.product-row:last-child {
    border-bottom: none;
}

.product-cell {
    padding: 12px 6px;
    font-size: 13px;
    color: #555;
    line-height: 1.4;
    white-space: normal;
    /* 同上：按词换行，不要把 “On-board”、“Sensitivity” 这类词拆断 */
    word-break: normal;
    overflow-wrap: break-word;
    overflow: visible;
    display: flex;
    align-items: center;
	justify-content:center;
}

.product-cell.module-cell {
    gap: 12px;
    font-weight: 600;
    color: #68c4d4;
}

/* Module 列：图片 + 名称作为一个整体链接 */
.product-cell.module-cell a.product-link {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    min-width: 0;
}

.product-cell.module-cell a.product-link span {
    font-weight: 600;
    color: #19284c;
}

.product-cell.module-cell a.product-link:hover span {
    text-decoration: underline;
}

/* Model NO. 等单元格里的文字链接 */
.product-cell > a.product-link {
    color: #19284c;
    text-decoration: none;
    font-weight: 600;
}

.product-cell > a.product-link:hover {
    text-decoration: underline;
}

.product-cell.module-cell img {
  /*width: 48px;
	background: #f0f0f0;*/
    height: 80%;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
}

.product-cell.action-cell {
    gap: 12px;
    cursor: pointer;
}

.product-cell.action-cell i {
    color: #999;
    text-decoration: none;
    transition: color 0.2s ease;
    cursor: pointer;
    font-size: 14px;
}

.product-cell.action-cell i[data-action="view"]:hover {
    color:#68c4d4;
}

.product-cell.action-cell i[data-action="cart"] {
    color: #68c4d4;
}

.product-cell.action-cell i[data-action="cart"]:hover {
    color: #00838f;
}

/* 无 data-action 的图标：hover 兜底色 */
.product-cell.action-cell i:hover {
    color: #68c4d4;
}

.badge-new {
    position: absolute;
    top: 6px;
    left: -2px;
    display: inline-block;
    background: #68c4d4;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    padding: 2px 5px;
    border-radius: 3px;
    text-transform: uppercase;
    line-height: 1.2;
    z-index: 2;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.product-row.is-new .module-cell {
    position: relative;
}

.product-empty-row {
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px;
    color: #999;
}

/* ---------- 列表内购物车图标 ---------- */
.pd-cart-link {
    color: #2e7d32 !important;
}



.ble-series-section {
    padding: 80px 0;
    background: linear-gradient(180deg, #f0f8ff 0%, #e6f7ff 100%);
}

.ble-series-section .section-header {
    text-align: center;
    margin-bottom: 50px;
}

.ble-series-section .section-header h2 {
    font-size: 36px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 15px;
}

.ble-series-section .section-header p {
    font-size: 16px;
    color: #666;
    line-height: 1.8;
    margin-bottom: 8px;
    max-width: none;
}

.series-features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.series-feature-card {
    background: linear-gradient(135deg, #19284c 0%, #0f1442 100%);
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    color: #fff;
    transition: transform 0.3s, box-shadow 0.3s;
}

.series-feature-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(19,25,86,0.4);
}

.feature-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature-icon i {
    font-size: 35px;
    color: #fff;
}

.series-feature-card h4 {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

.series-feature-card p {
    font-size: 12px;
    color: rgba(255,255,255,0.7);
    line-height: 1.6;
}

.ble-chipset-section {
    padding: 60px 0;
}
/* 介绍卡 + 对比表共用的浅色背景块：宽度与这两块一致，不再全屏铺色 */
.chipset-panel {
    background: #68c4d4;
    border-radius: 12px;
}

.chipset-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
    gap: 15px;
}

.chipset-header h2 {
    font-size: 28px;
    margin:auto;
    color: #19284c;
}

/* ===== 芯片系列介绍卡（内容来自「产品分类」后台字段：Logo / 系列 / 标题 / 要点） ===== */
.chipset-intro-card {
    background: #fff;
    border-radius: 12px;
    padding: 28px 32px;
    margin-bottom: 30px;
    box-shadow: 0 4px 20px rgba(19, 25, 86, 0.06);
}

.chip-vendor-logo {
    max-height: 34px;
    width: auto;
    display: block;
    margin-bottom: 16px;
}

.chip-series-tags {
    display: flex;
    flex-wrap: wrap;
	justify-content:center;
    gap: 10px;
    margin-bottom: 18px;
}

.chip-series-tag {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #fff;
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
}

.chip-series-tags .chip-series-tag:nth-child(2) {
    background: linear-gradient(135deg, #131956 0%, #1a237e 100%);
}

.chip-series-tags .chip-series-tag:nth-child(3) {
    background: linear-gradient(135deg, #7e57c2 0%, #5e35b1 100%);
}

/* 系列标签填图片地址时：显示为图片徽章（白底、无渐变、图片自适应高度） */
.chip-series-tag--img{padding:4px 10px !important;background:#fff !important;/*border:1px solid #e8eef2;*/line-height:1}
.chip-series-tag--img img{max-height:35px;width:auto;display:block;object-fit:contain}

.chip-intro-title {
    font-size: 22px;
    font-weight: 700;
    color: #131956;
    margin: 0 0 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e8eef3;
}

.chip-intro-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.chip-intro-features li {
    position: relative;
    padding-left: 16px;
    font-size: 14px;
    line-height: 1.7;
    color: #555;
}

.chip-intro-features li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #68c4d4;
}

.chipset-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.chipset-tab {
    padding: 8px 20px;
    background: #fff;
    border: 1.5px solid #e0e0e0;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s;
}

.chipset-tab.active {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    border-color: #68c4d4;
    color: #fff;
}

.chipset-tab:hover {
    border-color: #68c4d4;
    color: #68c4d4;
}

.chipset-table-wrapper {   
    border-radius: 12px 12px 0 0;
    overflow-x: auto;
    overflow-y: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.chipset-table {
    overflow-x: auto;
	width:98%;
	border-radius:12px;
	margin:auto;
	background:#fff;
}

.chipset-table-header {
    display: grid;
    grid-template-columns: var(--cs-cols, 1fr 1fr 2.6fr 1.2fr 0.6fr 1fr 0.6fr 0.6fr 0.6fr 0.8fr);
    padding: 15px 20px;
    background: #f8f9fa;
    border-bottom: 2px solid #68c4d4;
    min-width: var(--cs-minw, 900px);
	text-align:center;
}

.chipset-th {
    font-size: 13px;
    font-weight: 600;
    color: #666;
    white-space: nowrap;
}

.chipset-table-body {
    min-width: var(--cs-minw, 900px);
}

.chipset-tr {
    display: grid;
    grid-template-columns: var(--cs-cols, 1fr 1fr 2.6fr 1.2fr 0.6fr 1fr 0.6fr 0.6fr 0.6fr 0.8fr);
    padding: 20px;
    border-bottom: 1px solid #f0f0f0;
    align-items: center;
	text-align:center;
    transition: background 0.3s;
}
.chipset-tr:hover {
    background: #fafafa;
}

.chipset-tr:last-child {
    border-bottom: none;
}

.chipset-td {
    font-size: 14px;
    color: #333;
    white-space: normal;
    word-break: break-word;
}

.chipset-td br {
    display: block;
    content: "";
    margin: 5px 0;
    line-height: 1.5;
}

/* Description 列（原 Characteristic 特点列表）：整句描述按左对齐阅读更自然，
   并锁定最多 3 行，防止某个产品描述过长把整行顶高、破坏与表头的列对齐 */
.chipset-table-header .chipset-th:nth-child(3) {
    text-align: left;
}

.chipset-td.char-cell {
    font-size: 12px;
    line-height: 1.5;
    color: #666;
    text-align: left;
    padding-right: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.chipset-td.product-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.chipset-td.product-cell a.chipset-prod-link {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.chipset-td.product-cell a.chipset-prod-link:hover span {
    text-decoration: underline;
}

/* Model NO. 等单元格里的文字链接 */
.chipset-td > a.chipset-prod-link {
    color: #19284c;
    font-weight: 600;
}

.chipset-td > a.chipset-prod-link:hover {
    text-decoration: underline;
}

.chipset-td.product-cell img {
   /* width: 50px;
   background: #f5f5f5;*/
    height: 60%;	
    object-fit: contain;
    border-radius: 6px;    
}

.chipset-td.product-cell span {
    font-weight: 600;
    color: #68c4d4;
}

.chipset-td.action-cell {
    display: flex;
    justify-content: center;
    gap: 15px;
}

.chipset-td.action-cell i {
    color: #68c4d4;
    font-size: 16px;
    cursor: pointer;
    transition: color 0.3s;
}

.chipset-td.action-cell i:hover {
    color: #0097a7;
}

.chipset-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    padding: 25px;
    border-top: 1px solid #f0f0f0;
}

.chipset-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 500;
    color: #666;
    text-decoration: none;
    transition: all 0.3s;
    cursor: pointer;
}

.chipset-pagination a:hover {
    background: #e0f7fa;
    color: #68c4d4;
}

.chipset-pagination a.active {
    background: linear-gradient(135deg, #68c4d4 0%, #0097a7 100%);
    color: #fff;
}

.chipset-pagination span {
    color: #999;
    cursor: default;
}

.chipset-view-all {
    display: flex;
    justify-content: center;
    padding: 12px;
    /*border-top: 1px solid #f0f0f0;
    background: #fff;*/
    border-radius: 0 0 12px 12px;
}

.chipset-view-all a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 28px;
    background: #19284c;
    color: #fff;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s;
}

.chipset-view-all a:hover {
    background: #68c4d4;
    color: #fff;
}

.chipset-view-all a i {
    font-size: 12px;
}

.ble-applications-section {
    padding: 80px 0;
    background: linear-gradient(180deg, #e6f7ff 0%, #fff 100%);
}

.applications-top {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px;
}

.applications-left {
    flex: 1;
}

.applications-left h2,
.applications-left h3,
.applications-left h4 {
    font-size: 36px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 5px;
    line-height: 1.2;
}

.applications-desc {
    margin-top: 20px;
}

.applications-desc p {
    font-size: 15px;
    color: #666;
    line-height: 1.7;
}

.applications-right {
    flex: 1;
    min-width: 0;            /* 防止内部长文字撑宽整列 */
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.applications-feature {
    display: flex;
    gap: 20px;
    min-width: 0;
}

.feature-icon-sm {
    width: 40px;
    height: 40px;
    background: rgba(0,188,212,0.1);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.feature-icon-sm i {
    font-size: 18px;
    color: #19284c;
}

.feature-content {
    flex: 1;
    min-width: 0;            /* 关键：允许收缩，长文字才能换行 */
}

.feature-content h4 {
    font-size: 16px;
    font-weight: 600;
    color: #19284c;
    margin-bottom: 5px;
}

.feature-content p {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    overflow-wrap: break-word;
    word-break: break-word;
}

.applications-grid {
    display: flex;
    gap: 20px;
}

.application-card {
    position: relative;
    flex: 1;
    border-radius: 20px;
    height: 360px;
    transition: all 0.4s ease;
    cursor: pointer;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    display: block;
}

.application-card:hover {
    flex: 1.4;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
}

.application-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.application-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

.application-card:hover .application-image img {
    transform: scale(1.1);
}

.application-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 30px 20px 66px;
    text-align: center;
    background: linear-gradient(to top, rgba(19,25,86,0.95) 0%, rgba(19,25,86,0.6) 70%, transparent 100%);
    transition: all 0.4s;
}

.application-icon-box {
    width: 50px;
    height: 50px;
    background: rgba(255,255,255,0);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px;
    transition: all 0.3s;
}

.application-card:hover .application-icon-box {
    transform: scale(1.08);
    background: rgba(255,255,255,0.1);
}

.application-icon-box i {
    font-size: 35px;
    color: #fff;
}

.application-content h4 {
    font-size: 12px;
    color: #fff;
    margin-bottom: 10px;
	height:60px;
}

.application-content p {
    font-size: 12px;
    color: rgba(255,255,255,0.7);
    line-height: 1.5;
}

.application-card:hover .application-arrow i {
    transform: translateX(5px);
}

.ble-services-section {
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

.services-bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.services-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.services-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /*background: linear-gradient(135deg, rgba(19,25,86,0.9) 0%, rgba(0,188,212,0.7) 100%);*/
}

.services-content {
    position: relative;
    z-index: 2;
    padding: 30px 0;
}

.ble-services-section .section-header {
    text-align: center;
    margin-bottom: 50px;
}

.ble-services-section .section-header h2 {
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 15px;
}

.ble-services-section .section-header p {
    font-size: 15px;
    color: rgba(255,255,255,0.8);
    line-height: 1.8;
    margin-bottom: 8px;
    max-width: none;
}

.services-row {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 40px 56px;
    padding: 0 20px;
}

.service-item {
    text-align: center;
    max-width: 130px;
    margin: 0;
}

.service-item .service-icon-box {
    width: 48px;
    height: 48px;
    background: rgba(255,255,255,0);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 10px;
    transition: all 0.3s;
}

.service-item:hover .service-icon-box {
    background: rgba(255,255,255,0.15);
    transform: scale(1.05);
}

.service-item .service-icon-box i {
    font-size: 35px;
    color: #fff;
}

.service-item h4 {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 6px;
}

.service-item p {
    font-size: 11px;
    color: rgba(255,255,255,0.7);
    line-height: 1.5;
}

.ble-faq-section {
    padding: 60px 0;
    background: linear-gradient(135deg, #e8f8fa 0%, #f5fcfd 100%);
}

.ble-faq-section h2 {
    font-size: 28px;
    font-weight: 700;	
    color: #19284c;
    text-align: center;
    margin-bottom: 40px;
}

.faq-page-section {
    padding: 50px 0 80px;
    background: #f7f9fc;
}

.faq-controls {
    max-width: 860px;
    margin: 0 auto 40px;
}

.faq-search-bar {
    margin-bottom: 20px;
}

.faq-search-form {
    display: flex;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    border: 1px solid #e8edf3;
}

.faq-search-form input[type="search"] {
    flex: 1;
    padding: 14px 20px;
    border: none;
    outline: none;
    font-size: 15px;
    color: #333;
    background: transparent;
}

.faq-search-form button {
    background: #68c4d4;
    color: #fff;
    border: none;
    padding: 0 28px;
    cursor: pointer;
    transition: background 0.3s;
    font-size: 16px;
}

.faq-search-form button:hover {
    background: #1a237e;
}

.faq-category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.faq-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    background: #fff;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    color: #555;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.3s;
}

.faq-tab:hover {
    border-color: #68c4d4;
    color: #68c4d4;
}

.faq-tab.active {
    background: #68c4d4;
    color: #fff;
    border-color: #68c4d4;
}

.faq-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: rgba(0,0,0,0.08);
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
}

.faq-tab.active .faq-tab-count {
    background: rgba(255,255,255,0.25);
}

.faq-list {
    max-width: 860px;
    margin: 0 auto;
}

.faq-item {
    background: #fff;
    border: 1px solid #eef1f6;
    border-radius: 10px;
    margin-bottom: 12px;
    overflow: hidden;
    transition: box-shadow 0.3s, border-color 0.3s;
}

.faq-item:hover {
    border-color: #d0d8e4;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

.faq-item.active {
    border-color: #c5d0e0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    cursor: pointer;
    transition: background 0.3s;
}

.faq-question:hover {
    background: #f9fafb;
}

.faq-question span {
    font-size: 15px;
    font-weight: 600;
    color: #1a1a2e;
    flex: 1;
    line-height: 1.5;
}

.faq-question i {
    font-size: 14px;
    color: #68c4d4;
    transition: transform 0.3s;
    margin-left: 15px;
    flex-shrink: 0;
}

.faq-item.active .faq-question i {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
    background: #fafcfc;
}

.faq-answer p {
    padding: 0 24px 22px;
    color: #555;
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
}

.faq-answer-inner {
    padding: 0 24px 22px;
    color: #555;
    font-size: 14px;
    line-height: 1.75;
}

.faq-answer-inner p {
    font-size: 14px;
    color: #555;
    line-height: 1.7;
    margin: 0;
}

.faq-empty {
    text-align: center;
    padding: 60px 20px;
    background: #fff;
    border-radius: 10px;
}

.faq-empty p {
    font-size: 16px;
    color: #666;
    margin-bottom: 20px;
}

.faq-contact-cta {
    max-width: 860px;
    margin: 40px auto 0;
}

.faq-contact-inner {
    background: linear-gradient(135deg, #68c4d4 0%, #1a237e 100%);
    border-radius: 12px;
    padding: 40px;
    text-align: center;
    color: #fff;
}

.faq-contact-inner h3 {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 10px;
}

.faq-contact-inner p {
    font-size: 15px;
    opacity: 0.85;
    margin-bottom: 25px;
}

.faq-contact-buttons {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.faq-contact-inner .btn-primary {
    background: #fff;
    color: #68c4d4;
    padding: 12px 28px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s;
}

.faq-contact-inner .btn-primary:hover {
    background: #f0f0f0;
}

.faq-contact-inner .btn-secondary {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.5);
    padding: 10px 26px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s;
}

.faq-contact-inner .btn-secondary:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
}

@media (max-width: 768px) {
    .faq-page-section {
        padding: 35px 0 50px;
    }
    .faq-controls {
        margin-bottom: 30px;
    }
    .faq-category-tabs {
        gap: 6px;
    }
    .faq-tab {
        padding: 6px 12px;
        font-size: 12px;
    }
    .faq-question {
        padding: 16px 18px;
    }
    .faq-question span {
        font-size: 14px;
    }
    .faq-item.active .faq-answer {
        padding: 0 18px 18px;
    }
    .faq-contact-inner {
        padding: 30px 20px;
    }
}

.ble-video-section {
    padding: 60px 0;
    background: #fff;
}

/* ===== Services Page ===== */
.services-page-section {
    padding: 60px 0 80px;
    background: #f7f9fc;
}

.services-intro {
    max-width: 800px;
    margin: 0 auto 50px;
    text-align: center;
}

.services-intro h2 {
    font-size: 28px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 15px;
}

.services-intro p {
    font-size: 16px;
    color: #555;
    line-height: 1.7;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 25px;
}

.service-card {
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: box-shadow 0.3s, transform 0.3s;
    display: flex;
    flex-direction: column;
}

.service-card:hover {
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
    transform: translateY(-3px);
}

.service-icon-box {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: linear-gradient(135deg, #68c4d4 0%, #1a237e 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.service-icon-box i {
    font-size: 22px;
    color: #fff;
}

.service-card h3 {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 10px;
}

.service-card > p {
    font-size: 14px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 15px;
}

.service-features {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

.service-features li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #444;
    margin-bottom: 8px;
}

.service-features li i {
    color: #68c4d4;
    font-size: 12px;
    flex-shrink: 0;
}

.service-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #68c4d4;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    margin-top: auto;
    transition: gap 0.3s;
}

.service-link:hover {
    gap: 10px;
}

/* ===== Document Library (archive-document / single-document) ===== */
.document-library-page {
    padding: 40px 0 70px;
    background: #f7f9fc;
    min-height: 60vh;
}
.doc-header { text-align: center; margin-bottom: 30px; }
.doc-header h1 { font-size: 32px; color: #68c4d4; margin-bottom: 8px; }
.doc-header p { color: #666; font-size: 15px; }

.doc-folder-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 30px;
}
.doc-folder-filter a {
    display: inline-block;
    padding: 8px 18px;
    border-radius: 20px;
    background: #fff;
    color: #444;
    font-size: 14px;
    border: 1px solid #e2e6ee;
    transition: all 0.25s;
}
.doc-folder-filter a:hover,
.doc-folder-filter a.active {
    background: #68c4d4;
    color: #fff;
    border-color: #68c4d4;
}

.doc-list { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.05); }
.doc-table { width: 100%; border-collapse: collapse; }
.doc-table thead th {
    background: #68c4d4;
    color: #fff;
    text-align: left;
    padding: 14px 18px;
    font-size: 13px;
    letter-spacing: 0.3px;
}
.doc-table tbody td {
    padding: 14px 18px;
    border-bottom: 1px solid #f0f2f6;
    font-size: 14px;
    color: #333;
    vertical-align: middle;
}
.doc-table tbody tr:hover { background: #fafbfe; }
.doc-name { font-weight: 600; color: #68c4d4; }
.doc-actions { text-align: right; width: 140px; }
.doc-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #68c4d4;
    color: #fff !important;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    transition: background 0.25s;
}
.doc-download-btn:hover { background: #0097a7; }
.doc-no-file { color: #bbb; }
.doc-empty { text-align: center; color: #888; padding: 50px 0; }

@media (max-width: 768px) {
    .doc-table thead { display: none; }
    .doc-table, .doc-table tbody, .doc-table tr, .doc-table td { display: block; width: 100%; }
    .doc-table tbody tr { margin-bottom: 14px; border: 1px solid #eee; border-radius: 8px; padding: 6px 0; }
    .doc-table tbody td { border: none; padding: 8px 16px; }
    .doc-actions { text-align: left; }
}

/* ============================================================
 * WooCommerce 产品购买页（wc-single.php / ?purchase=1）美化
 * 设计语言：#68c4d4 主色，#68c4d4 强调色，圆角卡片，轻阴影，与全站一致
 * ============================================================ */
.wc-main {
    background: #f5f7fb;
    padding: 36px 0 70px;
    min-height: 60vh;
}
.wc-breadcrumb {
    font-size: 13px;
    color: #888;
    margin-bottom: 22px;
}
.wc-breadcrumb a { color: #68c4d4; }
.wc-breadcrumb .sep { margin: 0 8px; color: #bbb; }

/* 整体卡片容器 */
.wc-product-layout {/* max-width: 1080px;*/ margin: 0 auto; }
/* 只作用于主商品（不污染 related.products 里的 li.product） */
.wc-product-layout > .product {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 6px 28px rgba(19, 25, 86, 0.06);
}
.wc-main .woocommerce-product-gallery {
    flex: 1 1 420px;
    min-width: 320px;
    max-width: 480px;
}
.wc-main .summary {
    flex: 1 1 380px;
    min-width: 300px;
}

/* 标题 */
.wc-main .product_title.entry-title {
    font-size: 30px;
    color: #19284c;
    font-weight: 700;
    margin: 0 0 26px;
    line-height: 1.2;
}

/* 价格 */
.wc-main .summary .price {
    font-size: 28px;
    color: #e53935;
    font-weight: 700;
    margin: 0 0 18px;
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.wc-main .summary .price del {
    font-size: 18px;
    color: #aaa;
    font-weight: 400;
}
.wc-main .summary .price ins {
    text-decoration: none;
    color: #e53935;
}
/* 默认显示的价格范围（未选芯片时展示在价格区，由 JS 从标题下方搬入） */
.wc-main .summary .variation-price-range {
    font-size: 26px;
    color: #e53935;
    font-weight: 700;
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0;
}
.wc-main .summary .variation-price-range del {
    font-size: 18px;
    color: #aaa;
    font-weight: 400;
}
.wc-main .summary .variation-price-range ins {
    text-decoration: none;
    color: #e53935;
}

/* 短描述 */
.wc-main .summary .woocommerce-product-details__short-description {
    color: #555;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid #eef1f6;
}
/* 购买页：标题下方的「特性列表」(product_features) 替换默认短描述 */
.wc-main .summary .wc-features {
    list-style: none;
    margin: 0 0 22px;
    padding: 0 0 22px;
    border-bottom: 1px solid #eef1f6;
}
.wc-main .summary .wc-features li {
    position: relative;
    padding-left: 26px;
    margin-bottom: 10px;
    color: #555;
    font-size: 15px;
    line-height: 1.6;
}
.wc-main .summary .wc-features li .fas {
    position: absolute;
    left: 0;
    top: 4px;
    color: #68c4d4;
    font-size: 14px;
}

/* 产品元信息（SKU / 分类） */
.wc-main .product_meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: 22px !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    font-size: 13px;
    color: #888;
    line-height: 1.5;
}
.wc-main .product_meta > span,
.wc-main .product_meta .sku_wrapper,
.wc-main .product_meta .posted_in,
.wc-main .product_meta .tagged_as {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
    padding: 8px 14px !important;
    background: #f5f7fb !important;
    border: 1px solid #e8ecf3 !important;
    border-radius: 20px !important;
    color: #888;
    box-shadow: none !important;
}
.wc-main .product_meta > span .sku,
.wc-main .product_meta > span a,
.wc-main .product_meta .sku_wrapper .sku,
.wc-main .product_meta .posted_in a,
.wc-main .product_meta .tagged_as a {
    display: inline !important;
    font-weight: 600;
    color: #19284c;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.wc-main .product_meta a:hover {
    color: #19284c;
}

/* 促销标签（活动） */
.wc-main .summary .onsale,
.wc-main .onsale {
    display: inline-block;
    background: #e53935;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 12px;
    border-radius: 20px;
    margin-bottom: 10px;
    text-transform: uppercase;
}

/* 库存状态 */
.wc-main .summary .stock {
    font-size: 13px;
    font-weight: 600;
    margin: 6px 0 0;
}
.wc-main .summary .stock.in-stock, .wc-main .summary .stock.out-of-stock {
    display: block;
    color: #2e7d32;
    font-size: 14px;
    margin: 6px 0 0;
}
.wc-main .summary .stock.out-of-stock { color: #e53935; }

/* 加入购物车 / 数量 */
/* 注意：form.cart 包含属性表格和 single_variation_wrap，需要上下堆叠而非 flex 并排 */
.wc-main .summary form.cart,
.wc-main .summary form.variations_form {
    display: block;
    margin-top: 20px;
}
/* 数量与按钮区域使用 flex 并排 */
/* single_variation_wrap 内部包含价格和 add-to-cart 区域，需要上下堆叠 */
.wc-main .summary .single_variation_wrap {
    display: block;
    margin-top: 24px;
}
/* 变体价格/优惠区：始终显示并预留固定高度，避免选择变体后价格出现把下方内容挤动 */
/* !important 覆盖 WooCommerce JS 的 hide()，让价格区从加载起就占住位置 */
.wc-main .summary .woocommerce-variation.single_variation {
    display: block !important;
    min-height: 92px;
    margin: 0 0 12px;
    line-height: 1.6;
}
/* 未选择变体时显示提示文字，占住价格区域 */
.wc-main .summary .woocommerce-variation.single_variation:empty::before {
    content: "请选择芯片型号";
    display: block;
    font-size: 14px;
    color: #bbb;
    line-height: 92px;
}
/* 变体价格去掉默认下边距，避免与按钮区间距过大 */
.wc-main .summary .woocommerce-variation-price .price {
    margin: 0;
}
.wc-main .summary .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}
/* 让加购按钮与立即购买按钮并排、等高对齐 */
.wc-main .summary form.cart .button,
.wc-main .summary .woocommerce-variation-add-to-cart .button {
    height: 50px;
    margin: 0;
}
.wc-main .summary .quantity {
    display: inline-flex;
    align-items: center;
}
.wc-main .summary .quantity .qty {
    width: 64px;
    height: 46px;
    border: 1px solid #d8dee9;
    border-radius: 8px;
    text-align: center;
    font-size: 16px;
    color: #68c4d4;
    margin: 0 8px;
}
.wc-main .summary .quantity .minus,
.wc-main .summary .quantity .plus {
    width: 38px; height: 38px; border: 1px solid #d8dee9;
    border-radius: 8px; background: #f5f7fb; color: #68c4d4; cursor: pointer; font-size: 18px;
}

/* 主按钮：Add to Cart / 购买 */
.wc-main .summary button.single_add_to_cart_button,
.wc-main .summary .button.single_add_to_cart_button,
.wc-main a.button.single_add_to_cart_button {
    background: #68c4d4;
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 0 36px;
    height: 50px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.25s, transform 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.wc-main .summary button.single_add_to_cart_button:hover {
    background: #68c4d4;
    transform: translateY(-1px);
}

/* 立即购买按钮 */
.wc-main .summary .wc-buy-now-btn {
    background: #68c4d4;
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 0 32px;
    height: 50px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.25s, transform 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.wc-main .summary .wc-buy-now-btn:hover {
    background: #0097a7;
    transform: translateY(-1px);
}

/* Request a Quote（无价格产品） */
.wc-main .summary a.wc-quote-btn {
    background: #68c4d4 !important;
    color: #fff !important;
    border-radius: 8px;
    padding: 0 36px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
}

/* 选项卡（描述 / 附加信息等）
   关键：必须设 width:100% + display:block，否则容器会随内容收缩变窄 */
.wc-main .woocommerce-tabs {
    width: 100%;
    max-width: 1080px;
    display: block;
    margin: 36px auto 0;
    background: #fff;
    border-radius: 16px;
    padding: 34px 40px;
    box-shadow: 0 6px 28px rgba(19, 25, 86, 0.06);
}
/* 标题栏与内容面板都铺满 1080px 容器，与上方产品主信息板块同宽，
   无论内容多少都保持对齐，不再中间收窄 */
.wc-main .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    border-bottom: 1px solid #eef1f6;
}
.wc-main .woocommerce-tabs ul.tabs li {
    padding: 12px 20px;
    font-weight: 600;
    color: #666;
    border-bottom: 2px solid transparent;
}
.wc-main .woocommerce-tabs ul.tabs li.active {
    color: #68c4d4;
    border-bottom-color: #68c4d4;
}
.wc-main .woocommerce-tabs .woocommerce-Tabs-panel {
    color: #555;
    font-size: 15px;
    line-height: 1.8;
    width: 100% !important;
    max-width: 100% !important;
}
/* 面板内所有直接子元素都铺满，不因内容少而收窄 */
.wc-main .woocommerce-tabs .woocommerce-Tabs-panel > * {
    width: 100%;
}

/* 响应式：小屏时 tab 内容区字体略小，宽度随容器自适应 */
@media (max-width: 768px) {
    .wc-main .woocommerce-tabs {
        padding: 20px 16px;
        border-radius: 12px;
    }
    .wc-main .woocommerce-tabs .woocommerce-Tabs-panel {
        font-size: 14px;
    }
}
/* 其他信息：属性表格铺满宽度并统一样式，避免切换 tab 后显得窄 */
.wc-main .woocommerce-product-attributes {
    width: 100% !important;
    border: none !important;
    border-collapse: collapse;
    margin: 0;
    background: #fafbfe;
    border-radius: 10px;
    overflow: hidden;
}
.wc-main .woocommerce-product-attributes tr {
    border-bottom: 1px solid #eef1f6;
}
.wc-main .woocommerce-product-attributes tr:last-child {
    border-bottom: none;
}
.wc-main .woocommerce-product-attributes th {
    width: 150px;
    background: #f3f5fb;
    color: #68c4d4;
    font-weight: 600;
    padding: 14px 20px !important;
    border: none !important;
    text-align: left;
    white-space: nowrap;
}
.wc-main .woocommerce-product-attributes td {
    padding: 14px 20px !important;
    border: none !important;
    font-style: normal;
    color: #333;
}
.wc-main .woocommerce-product-attributes td p {
    margin: 0;
    padding: 0 !important;
}
/* 购买页"参数" tab 内的参数表复用 pd-specs 结构，并做面板内适配 */
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-inner {
    padding: 0;
}
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-sub {
    text-align: left;
    font-size: 18px;
    margin: 24px 0 16px;
}
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-sub.pd-specs-mid {
    margin-top: 32px;
}
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-table {
    grid-template-columns: 1fr;
    border: 1px solid #e6e9f2;
}
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-row {
    display: grid;
    grid-template-columns: 180px 1fr 180px 1fr;
    border-bottom: 1px solid #eef1f6;
}
.wc-main .woocommerce-Tabs-panel--specifications .pd-specs-table-3col .pd-specs-row {
    grid-template-columns: 200px 1fr 1fr;
}
@media (max-width: 768px) {
    .wc-main .woocommerce-Tabs-panel--specifications .pd-specs-row,
    .wc-main .woocommerce-Tabs-panel--specifications .pd-specs-table-3col .pd-specs-row {
        grid-template-columns: 1fr 1fr;
    }
}

/* 相关产品 */
.wc-main .related.products {
    max-width: 1080px;
    margin: 40px auto 0;
}
.wc-main .related.products h2 {
    color: #68c4d4;
    font-size: 24px;
    margin-bottom: 20px;
}
/* 相关产品卡片：整齐的网格卡片（强制覆盖主商品 .wc-main .product 的 flex 样式） */
.wc-main .related.products {
    width: 100%;
}
.wc-main .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100%;
}
/* 强制重置 li.product：撤销从 .wc-main .product 继承的 flex / padding / shadow 等 */
.wc-main .related.products li.product {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: unset !important;
    gap: 0 !important;
    background: #fff !important;
    border: 1px solid #eef1f6 !important;
    border-radius: 12px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: 0 4px 16px rgba(19, 25, 86, 0.05) !important;
    width: auto !important;
    min-width: 0 !important;
}
.wc-main .related.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(19, 25, 86, 0.10);
}
.wc-main .related.products li.product .woocommerce-loop-product__link {
    display: block;
    text-decoration: none;
}
.wc-main .related.products li.product img {
    width: 100%;
    height: 200px;
    object-fit: contain;
    padding: 18px;
    box-sizing: border-box;
}
.wc-main .related.products li.product .woocommerce-loop-product__title {
    font-size: 15px;
    padding: 0 16px;
    margin: 0 0 8px;
    color: #19284c;
}
.wc-main .related.products li.product .price {
    padding: 0 16px 14px;
    color: #e53935;
    font-weight: 700;
    font-size: 15px;
}
.wc-main .related.products li.product .button {
    margin: 0 16px 18px;
    align-self: flex-start;
}

/* 画廊 */
.wc-main .woocommerce-product-gallery .flex-viewport,
.wc-main .woocommerce-product-gallery .woocommerce-product-gallery__image {
    border-radius: 12px;
    overflow: hidden;
}
.wc-main .woocommerce-product-gallery__image img {
    border-radius: 12px;
}
.wc-main .flex-control-thumbs li img {
    border-radius: 8px;
    border: 2px solid transparent;
}
.wc-main .flex-control-thumbs li img.flex-active {
    border-color: #68c4d4;
}

/* 通知 / 消息 */
.wc-main .woocommerce-message,
.wc-main .woocommerce-info,
.wc-main .woocommerce-error {
    border-radius: 10px;
    border-left: 4px solid #68c4d4;
    background: #fff;
    padding: 14px 18px;
    margin-bottom: 20px;
}

/* 变量产品属性：把下拉框改成平铺按钮 */
.wc-main .variations_form table.variations {
    width: 100%;
    border: none;
    margin-bottom: 6px;
}
.wc-main .variations_form table.variations tr {
    border: none;
}
.wc-main .variations_form table.variations th.label {
    width: auto;
    min-width: 60px;
    padding: 0 16px 0 0;
    text-align: left;
    vertical-align: middle;
    font-weight: 600;
    color: #333;
}
.wc-main .variations_form table.variations td.value {
    padding: 0;
    vertical-align: middle;
}
.wc-main .variations_form table.variations select[name^="attribute_"] {
    display: none !important;
}
.wc-main .variation-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 0;
    align-items: center;
}
.wc-main .variation-swatch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 38px;
    padding: 0 18px;
    border: 1px solid #d0d5df;
    border-radius: 20px;
    background: #fff;
    color: #333;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s;
}
.wc-main .variation-swatch:hover {
    border-color: #68c4d4;
    color: #68c4d4;
}
.wc-main .variation-swatch.active {
    background: #68c4d4;
    border-color: #68c4d4;
    color: #fff;
}
/* 隐藏"清除"链接，选择后无需重置（去掉会占一行） */
.wc-main .variations_form .reset_variations {
    display: none !important;
}

/* 移动端 */
@media (max-width: 768px) {
    .wc-product-layout > .product { padding: 22px; flex-direction: column; gap: 24px; }
    .wc-main .product_title.entry-title { font-size: 24px; }
    .wc-main .summary .price { font-size: 24px; }
    .wc-main .woocommerce-tabs { padding: 24px 20px; }
}

.service-link i {
    font-size: 12px;
}

.services-process-section {
    padding: 70px 0;
    background: #fff;
}

.services-process-section .section-center {
    text-align: center;
    margin-bottom: 50px;
}

.services-process-section .section-tag {
    display: inline-block;
    color: #68c4d4;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.services-process-section .section-center h2 {
    font-size: 28px;
    font-weight: 700;
    color: #19284c;
    margin-bottom: 10px;
}

.services-process-section .section-center p {
    font-size: 15px;
    color: #666;
}

.process-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
}

.process-step {
    text-align: center;
    padding: 25px 20px;
    border-radius: 10px;
    background: #f7f9fc;
    transition: background 0.3s;
}

.process-step:hover {
    background: #eef2f8;
}

.process-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #68c4d4;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px;
}

.process-step h4 {
    font-size: 16px;
    font-weight: 600;
    color: #1a1a2e;
    margin-bottom: 8px;
}

.process-step p {
    font-size: 13px;
    color: #666;
    line-height: 1.6;
}

.services-cta-section {
    padding: 60px 0;
    background: #f7f9fc;
}

.services-cta-inner {
    background: linear-gradient(135deg, #68c4d4 0%, #1a237e 100%);
    border-radius: 16px;
    padding: 50px 40px;
    text-align: center;
    color: #fff;
}

.services-cta-inner h2 {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 12px;
}

.services-cta-inner p {
    font-size: 15px;
    opacity: 0.85;
    max-width: 600px;
    margin: 0 auto 25px;
}

.services-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.services-cta-inner .btn-primary {
    background: #fff;
    color: #68c4d4;
    padding: 12px 28px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s;
}

.services-cta-inner .btn-primary:hover {
    background: #f0f0f0;
}

.services-cta-inner .btn-secondary {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.5);
    padding: 10px 26px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s;
}

.services-cta-inner .btn-secondary:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
}

@media (max-width: 768px) {
    .services-grid {
        grid-template-columns: 1fr;
    }
    .services-intro h2 {
        font-size: 22px;
    }
    .process-steps {
        grid-template-columns: 1fr;
    }
    .services-cta-inner {
        padding: 35px 20px;
    }
}

.ble-video-section h2 {
    font-size: 28px;
    font-weight: 700;
    color: #19284c;
    text-align: center;
    margin-bottom: 40px;
}

.video-card {
    background: #f8f9fa;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    max-width: 800px;
    margin: 0 auto;
}

.video-thumbnail {
    position: relative;
    flex: 1.5;
    cursor: pointer;
}

.video-thumbnail img {
    width: 100%;
    height: 350px;
    object-fit: cover;
}

.video-play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(0, 188, 212, 0.9);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.video-play-button i {
    font-size: 24px;
    color: #fff;
    margin-left: 3px;
}

.video-thumbnail:hover .video-play-button {
    transform: translate(-50%, -50%) scale(1.1);
    box-shadow: 0 0 20px rgba(0, 188, 212, 0.5);
}

.video-info {
    flex: 1;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.video-info h4 {
    font-size: 18px;
    font-weight: 600;
    color: #68c4d4;
    margin-bottom: 10px;
}

.video-info p {
    font-size: 14px;
    color: #666;
}

.ble-get-to-know-section {
    padding: 60px 0;
    background: #68c4d40a;
}

.ble-get-to-know-section h2 {
    font-size: 28px;
    font-weight: 700;
    color: #19284c;
    text-align: center;
    margin-bottom: 40px;
}

.get-to-know-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.get-to-know-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: all 0.3s;
    cursor: pointer;
}

.get-to-know-card:hover {
    box-shadow: 0 8px 24px rgba(0,188,212,0.15);
    transform: translateY(-3px);
}

.get-to-know-card img {
    width: 100%;
    height: 150px;
    object-fit: cover;
}

.get-to-know-card h4 {
    font-size: 16px;
    font-weight: 600;
    color: #19284c;
    padding: 15px 15px 5px;
}

.get-to-know-card p {
    font-size: 13px;
    color: #666;
    padding: 0 15px 15px;
}

.ble-contact-section {
    padding: 80px 0;
    background: #fff;
    position: relative;
}

.ble-contact-section::before {
    content: '';
    position: absolute;
    bottom: 0;
    right: -260px;
    pointer-events: none;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, #68c4d4b6 6%, transparent 70%);
    border-radius: 50% 0 0 50%;
    z-index: 0;             /* 永远在内容之下 */
    opacity: 0;             /* 默认隐藏；满足「白底 + 高度 ≥ 1/2 屏」时由 JS 加 .diffuse-active */
}

.ble-contact-section .section-header {
    text-align: center;
    margin-bottom: 40px;
}

.ble-contact-section .section-header h2 {
    font-size: 32px;
    font-weight: 700;
    color: #19284c;
}

.contact-form-wrapper {
    max-width: 700px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.contact-form {
    background: #fff;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 15px;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group input,
.form-group textarea {
    padding: 15px 20px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    font-size: 14px;
    color: #333;
    transition: all 0.3s;
    font-family: inherit;
    background: #f9fafb;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: #9ca3af;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #d1d5db;
    background: #fff;
}

.form-group textarea {
    min-height: 150px;
    resize: vertical;
}

.code-row {
    display: flex;
    gap: 15px;
    align-items: center;
}

.code-group {
    width: 120px;
}

.code-group input {
    padding: 12px 15px;
    font-size: 13px;
}

.code-display {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 12px 25px;
    width: 100px;
}

.code-text {
    font-size: 16px;
    font-weight: 600;
    color: #6b7280;
    letter-spacing: 3px;
}

.form-submit {
    text-align: center;
    margin: 25px 0;
}

.btn-submit {
    padding: 12px 40px;
    background: linear-gradient(135deg, #68c4d4 0%, #0f1442 100%);
    color: #fff;
    border: none;
    border-radius: 25px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(19,25,86,0.3);
}

.form-footer {
    text-align: center;
}

.form-footer p {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.6;
}

/* ===== Product Detail Page ===== */
.pd-breadcrumb-bar{background:#f5f7fa;border-bottom:1px solid #e8e8e8}
.pd-breadcrumb-bar > .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0!important}
.pd-top-bar{display:flex;justify-content:space-between;align-items:center;padding:20px 0;flex-wrap:wrap;gap:15px}
.pd-breadcrumb{font-size:12px;color:#666;flex:1 1 300px;min-width:0;white-space:nowrap}
.pd-breadcrumb a{color:#666;text-decoration:none}
.pd-breadcrumb a:hover{color:#68c4d4}
.pd-breadcrumb .sep{margin:0 6px;color:#ccc}
.pd-breadcrumb .current{color:#333}
.pd-tab-nav{display:flex;gap:0;border-bottom:1px solid #e0e0e0;flex:0 0 auto}
.pd-tab-nav-item{padding:8px 13px;font-size:12px;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .3s;white-space:nowrap}
.pd-tab-nav-item:hover{color:#68c4d4}
.pd-tab-nav-item.active{color:#68c4d4;border-bottom-color:#68c4d4;font-weight:600}

/* 下滑后出现的左侧竖排板块定位导航 */
.pd-side-nav {
    position: fixed;
    top: 50%;
    left: 16px;
    transform: translateY(-50%) translateX(-130%);
    z-index: 800;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 10px 6px;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
    border: 1px solid #e8e8e8;
    border-left: none;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
    opacity: 0;
    pointer-events: none;
    transition: transform .35s ease, opacity .35s ease;
}
.pd-side-nav.visible {
    transform: translateY(-50%) translateX(0);
    opacity: 1;
    pointer-events: auto;
}
.pd-side-nav-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    gap: 8px;
    border: none;
    background: none;
    cursor: pointer;
    padding: 9px 14px 9px 12px;
    font-size: 12px;
    color: #666;
    border-radius: 8px;
    white-space: nowrap;
    transition: all .25s;
}
.pd-side-nav-item::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cfd8dc;
    flex: 0 0 auto;
    transition: all .25s;
}
.pd-side-nav-item:hover { color: #68c4d4; background: rgba(0, 188, 212, 0.06); }
.pd-side-nav-item.active { color: #68c4d4; font-weight: 600; background: rgb(0 188 212 / 18%); }
.pd-side-nav-item.active::before { background: #68c4d4; box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.18); }
@media (max-width: 1499px) { .pd-side-nav { display: none; } }
.pd-hero{padding:30px 0 60px;overflow:hidden;position:relative}
.pd-hero::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -350px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background:radial-gradient(circle, rgb(0 188 212 / 46%) 16%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
}
.pd-hero::after {
    content: '';
    position: absolute;
    top: 60%;
    right: -380px;
    transform: translateY(-50%);
    width: 600px;
    height: 600px;
    background:radial-gradient(circle, rgb(0 188 212 / 46%) 16%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
}
.pd-hero-grid{display:grid;grid-template-columns:2.6fr minmax(0,1fr);gap:60px;align-items:stretch}
.pd-hero-left{display:flex;flex-direction:column;height:100%}
.pd-hero-title{font-size:32px;font-weight:700;color:#19284c;margin-bottom:8px}
.pd-hero-subtitle{font-size:18px;color:#555;margin-bottom:26px;font-weight:500}
.pd-share-row{display:flex;align-items:center;gap:12px;margin-bottom:25px}
.pd-share-label{font-size:13px;color:#666}
.pd-share-icons{display:flex;gap:10px}
/* 分享按钮：a 与 button 统一成 32px 圆盒，内部 <i> 只负责图标本身（否则会出现双层圆底） */
.pd-share-icons .pd-share-btn{width:32px;height:32px;border-radius:50%;background:#f5f7fa;display:flex;align-items:center;justify-content:center;color:#555;font-size:13px;cursor:pointer;transition:all .3s;border:0;padding:0;text-decoration:none;-webkit-appearance:none;appearance:none}
.pd-share-icons .pd-share-btn:hover{background:#68c4d4;color:#fff;transform:translateY(-2px)}
.pd-share-icons .pd-share-btn i{font-size:13px;line-height:1}
/* 复制链接 / 微信分享的轻提示条 */
.pd-share-toast{position:fixed;left:50%;bottom:48px;transform:translateX(-50%) translateY(12px);background:#19284c;color:#fff;font-size:13px;padding:9px 18px;border-radius:22px;box-shadow:0 6px 20px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:99999}
.pd-share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.pd-hero-desc{font-size:16px;color:#666;line-height:1.8;margin-bottom:25px}
.pd-features{list-style:none;margin:0;flex:1;display:flex;flex-direction:column}
.pd-features li{display:flex;align-items:flex-start;gap:12px;padding:6px 0;font-size:16px;color:#333;}
.pd-features li i{color:#68c4d4;margin-top:4px;flex-shrink:0}
.pd-hero-actions{display:flex;gap:15px;margin-top:auto}
.pd-hero-actions a{text-decoration:none;}
.pd-btn-contact{background:#68c4d4;color:#fff;border:none;padding:12px 16px;border-radius:25px;font-weight:600;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s}
.pd-btn-contact:hover{background:#00a6bb;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,188,212,0.4)}
.pd-btn-docs{background:#fff;color:#68c4d4;border:1px solid #68c4d4;padding:12px 16px;border-radius:25px;font-weight:600;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s}
.pd-btn-docs:hover{background:#68c4d4;color:#fff}
/* ===== 产品页 Contact Us 弹窗 ===== */
.pd-contact-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:20px}
.pd-contact-modal.is-open{display:flex}
.pd-contact-modal__mask{position:absolute;inset:0;background:rgba(15,20,66,.55)}
.pd-contact-modal__dialog{position:relative;background:#fff;border-radius:14px;padding:32px;width:100%;max-width:560px;max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.pd-contact-modal__close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:26px;line-height:1;color:#999;cursor:pointer}
.pd-contact-modal__close:hover{color:#333}
.pd-contact-modal__dialog h3{margin:0 0 6px;font-size:20px;color:#19284c}
.pd-contact-modal__sub{margin:0 0 18px;font-size:13px;color:#888}
.pd-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.pd-contact-form input,.pd-contact-form textarea{width:100%;padding:11px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;background:#fafbfc;box-sizing:border-box}
.pd-contact-form textarea{min-height:120px;resize:vertical;margin-bottom:12px}
.pd-contact-form input:focus,.pd-contact-form textarea:focus{outline:none;border-color:#68c4d4;background:#fff}
.pd-contact-msg{display:none;margin-bottom:12px;padding:10px 14px;border-radius:8px;background:#e8f6f8;color:#0a7c8a;font-size:13px}
.pd-contact-submit{width:100%;padding:13px;border:none;border-radius:8px;background:linear-gradient(135deg,#68c4d4,#0097a7);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s}
.pd-contact-submit:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,188,212,.3)}
.pd-contact-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:640px){.pd-contact-row{grid-template-columns:1fr}}
.pd-hero-right{display:flex;flex-direction:column;gap:20px;min-width:0}
.pd-product-images{display:flex;flex-direction:column;gap:12px;flex:0 0 auto}
/* Hero 产品图框：高度写死，不跟着图片尺寸走。
   后台传的图比例各不相同（方图、细长横幅都有），原来用 aspect-ratio 从列宽反算高度，
   换一张比例不同的图右侧总高就变，下面 Certification、下载这些板块会被顶得上下跳。
   也不要改成 aspect-ratio 配 max-height 混用——高度会被重新反算回宽度（已踩过这个坑）。 */
.pd-product-img{/*background:#f5f7fa;*/position:relative;width:100%;height:256px;flex:0 0 auto;border-radius:12px;padding:15px;display:flex;align-items:center;justify-content:center;overflow:hidden;/*box-shadow:0 4px 16px rgba(0,0,0,0.05)*/}
/* 用 max-* 而不是原来的 85%/85%：小图不会被强拉到 85% 宽而模糊，
   大图也被锁在固定高度内，contain 居中，容器高度始终不变 */
.pd-product-img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity .25s ease}
/* 手动切换控件：全部叠在图框内部（绝对定位），不给右侧板块增加任何高度，
   也不占左右列宽（右侧只有 300px 宽，箭头放列外侧会负偏移压到左边内容，所以往内挨着放）。
   hover 不要加 transform，否则会覆盖掉 translateY(-50%) 导致箭头跳位。 */
.pd-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:rgba(255,255,255,.88);color:#19284c;font-size:13px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.12);transition:background .25s,color .25s;-webkit-appearance:none;appearance:none}
.pd-gallery-nav:hover{background:#68c4d4;color:#fff}
.pd-gallery-prev{left:10px}
.pd-gallery-next{right:10px}
.pd-gallery-dots{position:absolute;left:0;right:0;bottom:10px;z-index:2;display:flex;justify-content:center;gap:7px}
.pd-gallery-dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:rgba(25,40,76,.28);cursor:pointer;transition:background .25s,transform .25s;-webkit-appearance:none;appearance:none}
.pd-gallery-dot.active{background:#68c4d4;transform:scale(1.35)}
.pd-gallery-nav:focus-visible,.pd-gallery-dot:focus-visible{outline:2px solid #68c4d4;outline-offset:2px}
/* 缩略图条已从模板移除（改成图框内的箭头 + 圆点手动切换），下面这几条样式保留备用，
   万一要恢复“下方一排缩略图”只要把 single-product.php 的 .pd-gallery-thumbs 块加回来即可 */
.pd-gallery-thumbs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.pd-gallery-thumb{width:64px;height:52px;flex:0 0 auto;padding:4px;background:#fff;border:1.5px solid #e6ebf0;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0;transition:border-color .25s,box-shadow .25s,transform .25s;-webkit-appearance:none;appearance:none}
.pd-gallery-thumb img{max-width:100%;max-height:100%;object-fit:contain}
.pd-gallery-thumb:hover{border-color:#68c4d4;transform:translateY(-2px)}
.pd-gallery-thumb.active{border-color:#68c4d4;box-shadow:0 3px 12px rgba(104,196,212,.35)}
.pd-gallery-thumb:focus-visible{outline:2px solid #68c4d4;outline-offset:2px}
.pd-cert-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,0.05)}
.pd-cert-title{font-size:14px;font-weight:600;color:#19284c;margin-bottom:15px}
.pd-cert-image{width:100%;border-radius:8px;overflow:hidden}
.pd-cert-image img{width:100%;display:block}
/* 认证小图标（后台勾选即显示） */
.pd-cert-badges{display:flex;flex-wrap:wrap;gap:8px}
.pd-cert-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;background:#f5f7fa;border:1px solid #e8eef2;border-radius:20px;font-size:12px;font-weight:600;color:#456;transition:all .25s}
.pd-cert-badge i{color:#68c4d4;font-size:13px}
.pd-cert-badge em{font-style:normal}
.pd-cert-badge:hover{background:#e8f6f8;border-color:#68c4d4;transform:translateY(-1px)}
.pd-downloads{background:#fff;border-radius:12px;padding:0px 20px;box-shadow:0 4px 16px rgba(0,0,0,0.05)}
.pd-download-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f0f0}
.pd-download-row:last-child{border-bottom:none}
.pd-download-name{font-size:13px;color:#333;font-weight:500}
.pd-download-row i{color:#68c4d4;cursor:pointer;font-size:14px;padding:6px}
.pd-download-row i:hover{background:#e8f4f5;border-radius:50%}
.pd-devkits{padding:50px 0;background:#f5f7fa}
.pd-devkits-inner{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:center}
.pd-devkits-text h3{font-size:28px;font-weight:700;color:#19284c;margin-bottom:15px}
.pd-devkits-text p{font-size:14px;color:#555;line-height:1.7}
.pd-devkits-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pd-devkit-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,0.05);transition:all .3s;display:flex!important;flex-direction:row!important;gap:15px;align-items:center;justify-content:space-between;overflow:hidden;text-decoration:none;color:inherit}
.pd-devkit-card:hover,.pd-devkit-card:focus{text-decoration:none;transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.08)}
.pd-devkit-card *{text-decoration:none}
.page-banner .breadcrumb a:hover{color:#fff;text-decoration:none}
.pd-devkit-img{background:#e8eaed;border-radius:8px;width:45%!important;min-width:110px;max-width:160px;height:100px!important;display:flex!important;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.pd-devkit-img img{max-width:90%;max-height:90%;object-fit:contain}
.pd-devkit-info{flex:1!important;min-width:0!important}
.pd-devkit-title{font-size:15px;font-weight:600;color:#19284c;margin-bottom:6px}
.pd-devkit-desc{font-size:12px;color:#666;line-height:1.5}
.pd-section-banner{background: linear-gradient(135deg, #68c4d4 0%, #68c4d4 100%);border-radius:12px;padding:20px 40px;text-align:center;margin:40px 0 25px}
.pd-section-banner h2{color:#fff;font-size:28px;font-weight:700;margin:0}
.pd-section-title{font-size:28px;font-weight:700;color:#19284c;text-align:center;margin-bottom:26px}
.pd-specs-inner{padding:0}
.pd-specs-sub{font-size:20px;font-weight:600;color:#19284c;margin-bottom:20px;text-align:center}
.pd-specs-table{width:100%;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.04);margin-bottom:0}
.pd-rel-card a{text-decoration:none}
.pd-rel-card a:hover{text-decoration:none}
.pd-know-card{text-decoration:none}
.pd-know-card:hover{text-decoration:none}
.pd-apps.ble-applications-section{padding:80px 0}
.pd-specs-row{display:grid;grid-template-columns:220px 280px 220px 1fr;border-bottom:1px solid #f0f0f0}
.pd-specs-row:last-child{border-bottom:none}
.pd-specs-cell{padding:14px 20px;font-size:14px;color:#333;white-space:normal!important;word-break:break-word}
.pd-specs-cell span{font-weight:600;color:#19284c}
/* 字段名列（含 <span> 的参数名）加浅背景；值列(.val)、备注列(.note)不加 */
.pd-specs-cell:has(span){background:#68c4d416}
.pd-specs-cell.val{color:#555;white-space:normal!important;word-break:break-word}
.pd-specs-cell.val br,.pd-specs-cell.note br{display:block;content:"";margin:5px 0;line-height:1.5}
.pd-specs-cell.note{color:#666;font-size:12px;line-height:1.5;white-space:normal!important;word-break:break-word}
.pd-specs-table-3col .pd-specs-row{grid-template-columns:220px 280px 1fr}
.pd-specs-header{background:#f5f7fa;font-weight:600}
.pd-specs-header .pd-specs-cell{color:#19284c;font-weight:600}
.pd-specs-mid{margin-top:40px}
/* ===== Chip Comparison 对比表 ===== */
.pd-compare{position:relative;padding:50px 0;overflow:hidden}
.pd-compare::before{content:'';position:absolute;top:50%;left:-350px;transform:translateY(-50%);width:600px;height:600px;background:radial-gradient(circle, #68c4d486 10%, transparent 70%);border-radius:50%;z-index:0;pointer-events:none;opacity:0;}
/*.pd-compare,.pd-related{background:#e8f5f6}*/
.pd-compare>.container{position:relative;z-index:1}
.pd-compare-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:24px}
.pd-compare-table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.04);font-size:13px}
.pd-compare-table th,.pd-compare-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;vertical-align:middle;white-space:normal!important;word-break:break-word}
.pd-compare-table thead th{background:#f5f7fa;color:#19284c;font-weight:600}
.pd-compare-table thead th a{color:#19284c;text-decoration:none}
.pd-compare-table thead th a:hover{text-decoration:underline}
.pd-compare-table th:last-child,.pd-compare-table td:last-child{border-right:none}
.pd-compare-table tr:last-child td{border-bottom:none}
.pd-compare-param{background:#f5f7fa;color:#19284c;font-weight:600;min-width:170px;position:sticky;left:0;z-index:1}
.pd-compare-chip-model{font-weight:600;color:#19284c;}
.pd-compare-chip-soc{color:#888;font-size:12px;margin-top:2px;font-weight:400}
.pd-compare-table td.pd-compare-diff{background:#68c4d212;color:#19284c;font-weight:600}
.pd-compare-diff-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#68c4d4;margin-left:6px;vertical-align:middle}
.pd-compare-note{font-size:12px;color:#888;margin-top:12px}
/* Chip Comparison：有差异的参数列做成「整列连续色块」
   —— 行分隔线改画在单元格上，差异列边线用同色，色块从上到下不断开 */
.pd-compare .pd-related-row{border-bottom:none}
.pd-compare .pd-related-row > div{border-bottom:1px solid #f0f0f0}
.pd-compare .pd-related-row:last-child > div{border-bottom:none}
.pd-compare .pd-related-head > div.pd-compare-diff,
.pd-compare .pd-related-row > div.pd-compare-diff{background:#68c4d212;color:#19284c;font-weight:600;/*border-bottom-color:#fff8e6;*/border-right:1px solid #f0f0f0}
.pd-compare .pd-related-head > div.pd-compare-diff .pd-compare-diff-dot{margin-left:6px}
/* 表格随容器宽度自适应：列可收缩、文本换行，尽量不出现横向滚动条 */
.pd-compare .pd-related-table{min-width:0}
.pd-compare .pd-related-head>div,
.pd-compare .pd-related-row>div{min-width:0;overflow-wrap:break-word;word-break:break-word}
.pd-related{position:relative;padding:50px 0;overflow:hidden}
.pd-related::before{content:'';position:absolute;top:50%;right:-350px;transform:translateY(-50%);width:600px;height:600px;background:radial-gradient(circle,rgb(0 188 212 / 20%) 0%,transparent 70%);border-radius:50%;z-index:0;pointer-events:none;opacity:0;}
.pd-related>.container{position:relative;z-index:1}
.pd-related-inner{padding:0}
.pd-related-table{width:100%;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.04);text-align:center;}
/* 列布局统一走 CSS 变量 --cmp-cols：
   - Chip Comparison 在 PHP 里把动态列宽写到容器的 --cmp-cols；
   - Related Products 没设该变量，回退到下方默认 11 列静态布局。 */
.pd-related-head{display:grid;grid-template-columns:var(--cmp-cols, 1.2fr 1.2fr 0.6fr 0.6fr 1fr 0.6fr 1fr 1fr 0.8fr 0.6fr 1fr);background:#f5f7fa;padding:14px 10px;font-size:13px;font-weight:600;color:#19284c;border-bottom:1px solid #e0e0e0}
.pd-related-row{display:grid;grid-template-columns:var(--cmp-cols, 1.2fr 1.2fr 0.6fr 0.6fr 1fr 0.6fr 1fr 1fr 0.8fr 0.6fr 1fr);/*padding:12px 10px;*/height:auto;line-height:60px;align-items:center;border-bottom:1px solid #f0f0f0;font-size:13px;color:#555}
.pd-related-row:last-child{border-bottom:none}
.pd-rel-module img{width:50px;height:50px;vertical-align:middle;object-fit:contain}
.pd-rel-model{color:#19284c;font-weight:600}
.pd-rel-icon{color:#68c4d4;font-size:16px;cursor:pointer}
.pd-rel-icon:hover{color:#00a6bb}
/* Related Products 列表：列宽更均衡、图标/图片列居中、单元格对齐整齐（仅作用于 .pd-related，不影响 Chip Comparison） */


.pd-related .pd-related-table{text-align:left}
.pd-related .pd-related-head,
.pd-related .pd-related-row{
  grid-template-columns:90px minmax(120px,1.4fr) 76px 76px minmax(90px,1fr) minmax(90px,1fr) minmax(110px,1.2fr) minmax(80px,1fr) minmax(80px,0.9fr) minmax(80px,1fr) minmax(90px,1fr);
}
.pd-related .pd-related-head>div,
.pd-related .pd-related-row>div{padding:14px 12px;line-height:1.45;display:flex;align-items:center}
/* 第 1 列(图片) / 第 3 列(Datasheet) / 第 4 列(Buy) 居中 */
.pd-related .pd-related-head>div:nth-child(1),
.pd-related .pd-related-head>div:nth-child(3),
.pd-related .pd-related-head>div:nth-child(4),
.pd-related .pd-related-row>div:nth-child(1),
.pd-related .pd-related-row>div:nth-child(3),
.pd-related .pd-related-row>div:nth-child(4){justify-content:center;text-align:center}
.pd-related .pd-rel-module img{width:48px;height:48px;display:block;margin:0 auto}
.pd-related .pd-rel-model{font-weight:600;color:#19284c}
.pd-related .pd-rel-icon{font-size:16px;color:#68c4d4}
.pd-related-more{text-align:center;margin-top:30px}
.pd-btn-more{background:linear-gradient(135deg,#19284c 0%,#19284c 100%);color:#fff;border:none;padding:14px 32px;margin-bottom:10px;border-radius:30px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:all .3s}
.pd-btn-more:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(19,25,86,0.3)}
.pd-drawings{padding:40px 0;background:#f5f7fa}
.pd-drawings-grid{display:grid;grid-template-columns:3fr 1fr 1fr;/*grid-template-rows:1fr 1fr;*/gap:20px;align-items:stretch;min-height:520px}
.pd-drawings-grid .pd-drawing-item:nth-child(1){grid-column:1/2;grid-row:1/3}
.pd-drawings-grid .pd-drawing-item:nth-child(2){grid-column:2/4;grid-row:1/2}
.pd-drawings-grid .pd-drawing-item:nth-child(3){grid-column:2/3;grid-row:2/3}
.pd-drawings-grid .pd-drawing-item:nth-child(4){grid-column:3/4;grid-row:2/3}
.pd-drawing-item{background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 16px rgba(0,0,0,0.04);margin:0;display:flex;flex-direction:column;gap:12px;overflow:hidden}
.pd-drawing-item .pd-drawing-tag{align-self:flex-start;background:#68c4d4;color:#19284c;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px}
.pd-drawing-img{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#f9f9fb;border-radius:8px;overflow:hidden}
.pd-drawing-img img{max-width:100%;max-height:100%;object-fit:contain;display:block;cursor:zoom-in;transition:transform .35s ease}
.pd-drawing-img:hover img{transform:scale(1.06)}

/* Related Drawings 图片点击放大灯箱 */
.pd-lightbox{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(10,15,30,.82);padding:40px;cursor:zoom-out}
.pd-lightbox.open{display:flex}
.pd-lightbox img{max-width:92vw;max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#fff}
.pd-lightbox .pd-lightbox-close{position:absolute;top:20px;right:28px;width:42px;height:42px;line-height:40px;text-align:center;font-size:26px;color:#fff;border:1px solid rgba(255,255,255,.6);border-radius:50%;cursor:pointer;background:rgba(255,255,255,.08)}
.pd-lightbox .pd-lightbox-close:hover{background:rgba(255,255,255,.2)}
.pd-drawing-item figcaption{font-size:13px;font-weight:600;color:#68c4d4;text-align:center;margin-top:4px}
.pd-drawings-notice{text-align:center;color:#666;font-size:13px;margin:25px 0 15px}
.pd-download-link{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#68c4d4;text-decoration:none;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,0.06);transition:all .3s}
.pd-download-link:hover{background:#68c4d4;color:#fff}
.pd-download-link i{color:#68c4d4}
.pd-download-link:hover i{color:#fff}
.pd-faq{padding:50px 0}
/* 与站内其它 FAQ 区域（.faq-item / .faq-q / .faq-a）保持一致的卡片式样式 */
.pd-faq-list{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.pd-faq-item{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,0.04);border:1px solid #f0f0f0;transition:border-color .3s, box-shadow .3s}
.pd-faq-item:hover{box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.pd-faq-item.active{border-color:#cdecef}
.pd-faq-q{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;cursor:pointer;font-size:15px;color:#333;font-weight:600;transition:color .3s;user-select:none}
.pd-faq-q:hover{color:#68c4d4}
.pd-faq-q span{flex:1}
.pd-faq-q i{color:#bbb;font-size:14px;transition:transform .3s, color .3s}
.pd-faq-item.active .pd-faq-q i{transform:rotate(45deg);color:#68c4d4}
.pd-faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;background:#fafcfc}
.pd-faq-a-inner{padding:0 24px 20px;color:#555;font-size:14px;line-height:1.75}
.pd-faq-a-inner p{font-size:14px;color:#555;line-height:1.7;margin-bottom:10px}
.pd-faq-a ul{padding-left:20px;margin:10px 0}
.pd-faq-a li{font-size:14px;color:#555;line-height:1.7}
.pd-know{padding:50px 0;background:#f5f7fa}
.pd-know-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}
.pd-know-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,0.05);transition:all .3s;cursor:pointer}
.pd-know-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.08)}
.pd-know-img{aspect-ratio:2;overflow:hidden}
.pd-know-img img{width:100%;/*height:100%;*/object-fit:cover;transition:transform .4s}
.pd-know-card:hover .pd-know-img img{transform:scale(1.05)}
.pd-know-body{padding:20px}
.pd-know-body h4{font-size:16px;font-weight:normal;color:#19284c;margin-bottom:8px;line-height:1.4}
.pd-know-body p{font-size:13px;color:#666;line-height:1.5}
.page-banner{background:linear-gradient(135deg,#68c4d4 0%,#1a237e 100%);padding:80px 0 60px;color:#fff;position:relative;overflow:hidden}
.page-banner::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 50%,rgba(0,188,212,0.3) 0%,transparent 60%);pointer-events:none}
.page-banner h1{font-size:36px;font-weight:700;margin-bottom:12px;position:relative;z-index:1}
.page-banner p{font-size:16px;opacity:0.85;position:relative;z-index:1;max-width:600px}
.page-banner .breadcrumb{display:flex;align-items:center;gap:5px;background:transparent;border:none;padding:0;margin-bottom:18px;font-size:13px;position:relative;z-index:1}
.page-banner .breadcrumb a{color:rgba(255,255,255,0.8);text-decoration:none}
.page-banner .breadcrumb a:hover{color:#fff;text-decoration:underline}
.page-banner .breadcrumb span{color:rgba(255,255,255,0.6)}
.page-banner .breadcrumb .breadcrumb-sep{margin:0 2px}
.inner-section{padding:60px 0}
.inner-section-alt{padding:60px 0;background:#f8f9fb}
.inner-section-dark{padding:60px 0;background:#68c4d4;color:#fff}
.inner-container{max-width:1200px;margin:0 auto;padding:0 20px}
.inner-title{font-size:28px;font-weight:700;color:#68c4d4;margin-bottom:16px;text-align:center}
.inner-subtitle{font-size:15px;color:#666;text-align:center;max-width:700px;margin:0 auto 40px;line-height:1.7}
.apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.app-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.05);transition:all .35s;cursor:pointer;border:1px solid #f0f0f0}
.app-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(19,25,86,0.12);border-color:#68c4d4}
.app-card-img{aspect-ratio:16/10;overflow:hidden;position:relative;overflow:hidden}
.app-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.app-card:hover .app-card-img img{transform:scale(1.08)}
.app-card-body{padding:24px}
.app-card-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#68c4d4,#0097a7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;margin-bottom:16px}
.app-card-body h3{font-size:18px;font-weight:700;color:#19284c;margin-bottom:10px}
.app-card-body p{font-size:14px;color:#666;line-height:1.6;margin-bottom:14px}
.app-card-link{display:inline-flex;align-items:center;gap:6px;color:#68c4d4;font-size:13px;font-weight:600;text-decoration:none}
.app-card-link:hover{gap:10px}
.application-archive-page{padding:50px 0;background:#f8f9fb;min-height:calc(100vh - 200px)}
.application-archive-page .doc-header{text-align:center;margin-bottom:50px}
.application-archive-page .doc-header h1{font-size:34px;font-weight:700;color:#19284c;margin-bottom:14px}
.application-archive-page .doc-header p{font-size:15px;color:#666;max-width:720px;margin:0 auto;line-height:1.7}
.app-industry-group{margin-bottom:56px}
.app-industry-heading{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid #e8f4f5}
.app-industry-heading i{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#68c4d4,#0097a7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}
.app-industry-heading h2{font-size:22px;font-weight:700;color:#19284c;margin:0}
.doc-empty{text-align:center;color:#999;font-size:15px;padding:60px 0}
.ad-hero{padding:60px 0;background:linear-gradient(135deg,#e8f8fa 0%,#f5fcfd 50%,#ffffff 100%)}
.ad-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ad-hero-img{border-radius:16px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.1)}
.ad-hero-img img{width:100%;display:block}
.ad-hero h1{font-size:34px;font-weight:700;color:#68c4d4;margin-bottom:16px}
.ad-hero p{font-size:16px;color:#555;line-height:1.7;margin-bottom:24px}
.ad-features{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ad-features li{display:flex;align-items:center;gap:10px;font-size:14px;color:#333;padding:8px 0}
.ad-features li i{color:#68c4d4;font-size:16px}
.ad-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;padding-top:30px;border-top:1px solid #e0e0e0}
.ad-stat{text-align:center}
.ad-stat-num{font-size:36px;font-weight:700;color:#68c4d4;line-height:1}
.ad-stat-label{font-size:13px;color:#666;margin-top:6px}
/* section-tag 通用 */
.section-tag{display:inline-block;background:linear-gradient(135deg,#e8f4f5,#e0f2f1);color:#0097a7;font-size:12px;font-weight:700;padding:5px 16px;border-radius:20px;margin-bottom:14px;text-transform:uppercase;letter-spacing:.8px}

/* ad-hero */
.ad-hero{padding:80px 0;background:linear-gradient(135deg,#e8f8fa 0%,#f5fcfd 50%,#ffffff 100%)}
.ad-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.ad-hero-img{border-radius:18px;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,0.1);background:#f5f7fa;display:flex;align-items:center;justify-content:center;min-height:300px}
.ad-hero-img img{width:100%;display:block;object-fit:contain}
.ad-hero h1{font-size:36px;font-weight:800;color:#68c4d4;margin-bottom:18px;line-height:1.25}
.ad-hero p{font-size:16px;color:#555;line-height:1.75;margin-bottom:28px}
.ad-features{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
.ad-features li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:#333;padding:7px 0;line-height:1.5}
.ad-features li i{color:#68c4d4;font-size:15px;margin-top:2px;flex-shrink:0}
.ad-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px;padding-top:28px;border-top:1px solid #e8f4f5}
.ad-stat{text-align:center}
.ad-stat-num{font-size:34px;font-weight:800;color:#68c4d4;line-height:1.1}
.ad-stat-label{font-size:12px;color:#777;margin-top:5px}

/* solutions grid - 自适应列 */
.ad-solutions{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px}
.ad-sol-card{background:#fff;border-radius:14px;padding:32px 26px;box-shadow:0 4px 18px rgba(0,0,0,0.05);border:1px solid #f0f0f0;transition:all .35s;text-align:center}
.ad-sol-card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(19,25,86,0.1);border-color:#cdecef}
.ad-sol-icon{width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,#e8f8fa,#b2ebf2);display:flex;align-items:center;justify-content:center;color:#00838f;font-size:24px;margin:0 auto 20px}
.ad-sol-card h4{font-size:17px;font-weight:700;color:#68c4d4;margin-bottom:10px}
.ad-sol-card p{font-size:13px;color:#666;line-height:1.65}

/* challenges */
.challenges-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1100px){.challenges-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.challenges-grid{grid-template-columns:1fr}}
.challenge-card{background:#fff;border-radius:14px;padding:30px;box-shadow:0 4px 16px rgba(0,0,0,0.04);border:1px solid #f0f0f0;transition:all .3s}
.challenge-card:hover{box-shadow:0 8px 24px rgba(0,0,0,0.08)}
.challenge-icon{width:50px;height:50px;border-radius:13px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);display:flex;align-items:center;justify-content:center;color:#e65100;font-size:22px;margin-bottom:18px}
.challenge-card h4{font-size:16px;font-weight:700;color:#68c4d4;margin-bottom:8px}
.challenge-card p{font-size:13px;color:#666;line-height:1.65}

/* solution summary */
.solution-sum-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center}
.solution-sum-text .inner-title{text-align:left}
.solution-sum-body{font-size:15px;color:#444;line-height:1.8;margin-top:16px}
.solution-sum-img{border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#e8f4f5,#f0f9fb);padding:40px;display:flex;align-items:center;justify-content:center;min-height:280px}
.solution-sum-img img{max-width:100%;height:auto}

/* case study */
.case-body{background:#fff;border-radius:14px;padding:36px;box-shadow:0 4px 16px rgba(0,0,0,0.04);margin-top:24px}
.case-text{font-size:15px;color:#444;line-height:1.85}
.case-results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:28px}
@media(max-width:1100px){.case-results-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.case-results-grid{grid-template-columns:1fr}}
.case-result-card{background:#fff;border-radius:12px;padding:28px 20px;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,0.05)}
.case-result-num{font-size:32px;font-weight:800;color:#68c4d4;line-height:1}
.case-result-label{font-size:13px;color:#666;margin-top:6px}

/* app faq */
.app-faq-section .faq-list{max-width:820px;margin:0 auto}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-item{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,0.04);border:1px solid #f0f0f0;transition:border-color .3s, box-shadow .3s}
.faq-item:hover{box-shadow:0 4px 16px rgba(0,0,0,0.08)}
.faq-item.active{border-color:#cdecef}
.faq-q{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;cursor:pointer;font-size:15px;color:#333;font-weight:600;transition:color .3s;user-select:none}
.faq-q:hover{color:#68c4d4}
.faq-q span{flex:1}
.faq-q i{color:#bbb;font-size:14px;transition:transform .3s}
.faq-item.active .faq-q i{transform:rotate(45deg);color:#68c4d4}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;background:#fafcfc}
.faq-a-inner{padding:0 24px 20px;color:#555;font-size:14px;line-height:1.75}
.faq-a-inner p{font-size:14px;color:#555;line-height:1.75;margin:0}

/* inner section 覆盖优化 */
.inner-section{padding:70px 0;position:relative}
.inner-section-alt{padding:70px 0;background:#f8f9fb;position:relative}
.inner-title{font-size:28px;font-weight:800;color:#19284c;margin-bottom:12px;text-align:center;letter-spacing:-.3px}
.inner-subtitle{font-size:14.5px;color:#777;text-align:center;max-width:680px;margin:0 auto 42px;line-height:1.7}
.news-page{padding:50px 0;background:#f8f9fb;min-height:calc(100vh - 200px)}
.news-layout{display:grid;grid-template-columns:280px 1fr;gap:40px}
.news-sidebar{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 16px rgba(0,0,0,0.04);height:fit-content;position:sticky;top:100px}
.news-sidebar h3{font-size:18px;font-weight:700;color:#19284c;margin-bottom:16px}
.news-cats{list-style:none;padding:0;margin:0}
.news-cats li{padding:10px 0;border-bottom:1px solid #f0f0f0}
.news-cats li:last-child{border-bottom:none}
.news-cats li a{text-decoration:none;color:#555;font-size:14px;display:flex;justify-content:space-between;transition:color .2s}
.news-cats li a:hover,.news-cats li a.active{color:#19284c;font-weight:600}
.news-cats li a span{background:#e8f4f5;color:#19284c;font-size:11px;padding:2px 8px;border-radius:10px}
.news-featured{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.06);margin-bottom:30px;display:grid;grid-template-columns:1fr 1fr;gap:0}
.news-featured-img{aspect-ratio:16/10;overflow:hidden}
.news-featured-img img{width:100%;height:100%;object-fit:cover}
.news-featured-body{padding:30px;display:flex;flex-direction:column;justify-content:center}
.news-featured-tag{display:inline-block;background:#e8f4f5;color:#68c4d4;font-size:12px;font-weight:600;padding:4px 12px;border-radius:6px;margin-bottom:14px;width:fit-content}
.news-featured h2{font-size:22px;font-weight:700;color:#19284c;margin-bottom:12px;line-height:1.4}
.news-featured p{font-size:14px;color:#666;line-height:1.6;margin-bottom:14px}
.news-featured-meta{font-size:12px;color:#999}
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.news-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,0.05);transition:all .3s}
.news-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.1)}
.news-card-img{aspect-ratio:16/10;overflow:hidden}
.news-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.news-card:hover .news-card-img img{transform:scale(1.05)}
.news-card-body{padding:20px}
.news-card-tag{display:inline-block;background:#e8f4f5;color:#19284c;font-size:11px;font-weight:600;padding:3px 10px;border-radius:5px;margin-bottom:10px}
.news-card-body h3{font-size:16px;font-weight:700;color:#19284c;margin-bottom:8px;line-height:1.4}
.news-card-body p{font-size:13px;color:#666;line-height:1.5;margin-bottom:10px}
.news-card-meta{font-size:12px;color:#999}
.news-detail{padding:50px 0;background:#f8f9fb}
.news-detail-layout{display:grid;grid-template-columns:1fr 300px;gap:50px}
.news-article{background:#fff;border-radius:14px;padding:40px;box-shadow:0 4px 20px rgba(0,0,0,0.05)}
.news-article h1{font-size:30px;font-weight:700;color:#19284c;margin-bottom:16px;line-height:1.3}
.news-article-meta{display:flex;gap:20px;font-size:13px;color:#999;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}
.news-article-meta span{display:flex;align-items:center;gap:5px}
.news-article-img{border-radius:12px;overflow:hidden;margin-bottom:28px}
.news-article-img img{width:100%;display:block}
.news-article-body{font-size:15px;color:#444;line-height:1.8}
.news-article-body p{margin-bottom:18px}
.news-article-body h2{font-size:22px;font-weight:700;color:#19284c;margin:32px 0 16px}
.news-article-body blockquote{border-left:4px solid #68c4d4;padding:16px 24px;margin:24px 0;background:#f5fcfd;border-radius:0 8px 8px 0;font-style:italic;color:#555}
.news-article-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid #f0f0f0}
.news-article-tags span{background:#f0f2f5;color:#666;font-size:12px;padding:5px 14px;border-radius:15px}
.news-aside{display:flex;flex-direction:column;gap:24px}
.news-aside-box{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 16px rgba(0,0,0,0.04)}
.news-aside-box h4{font-size:17px;font-weight:700;color:#19284c;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #68c4d4}
.news-aside-list{list-style:none;padding:0;margin:0}
.news-aside-list li{padding:12px 0;border-bottom:1px solid #f0f0f0;display:flex;gap:12px}
.news-aside-list li:last-child{border-bottom:none}
.news-aside-list img{width:80px;height:60px;object-fit:cover;border-radius:6px;flex-shrink:0}
.news-aside-list a{font-size:13px;color:#333;text-decoration:none;line-height:1.4;font-weight:500}
.news-aside-list a:hover{color:#68c4d4}
.contact-page{padding:50px 0;background:#f8f9fb}
.contact-hero{text-align:center;margin-bottom:50px}
.contact-hero h1{font-size:32px;font-weight:700;color:#19284c;margin-bottom:12px}
.contact-hero p{font-size:15px;color:#666;max-width:600px;margin:0 auto}
.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:50px}
.contact-card{background:#fff;border-radius:14px;padding:30px 24px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,0.05);transition:all .3s;border-top:3px solid transparent}
.contact-card:hover{transform:translateY(-4px);border-top-color:#68c4d4;box-shadow:0 12px 32px rgba(0,0,0,0.08)}
.contact-card-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#e8f4f5,#d0ecf0);display:flex;align-items:center;justify-content:center;color:#68c4d4;font-size:22px;margin:0 auto 16px}
.contact-card h4{font-size:16px;font-weight:700;color:#68c4d4;margin-bottom:8px}
.contact-card p{font-size:13px;color:#666;line-height:1.5}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact-info{background:#fff;border-radius:14px;padding:36px;box-shadow:0 4px 20px rgba(0,0,0,0.05)}
.contact-info h2{font-size:24px;font-weight:700;color:#68c4d4;margin-bottom:20px}
.contact-info-item{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid #f0f0f0}
.contact-info-item:last-child{border-bottom:none}
.contact-info-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#68c4d4,#0097a7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0}
.contact-info-item h5{font-size:14px;font-weight:700;color:#68c4d4;margin-bottom:4px}
.contact-info-item p{font-size:13px;color:#666;line-height:1.5}
.contact-form-wrap{background:#fff;border-radius:14px;padding:36px;box-shadow:0 4px 20px rgba(0,0,0,0.05)}
.contact-form-wrap h2{font-size:24px;font-weight:700;color:#68c4d4;margin-bottom:24px}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:12px 14px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:all .25s;background:#fafbfc}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:#68c4d4;background:#fff;box-shadow:0 0 0 3px rgba(0,188,212,0.1)}
.contact-form textarea{resize:vertical;min-height:140px}
.contact-form button{background:linear-gradient(135deg,#68c4d4,#0097a7);color:#fff;border:none;padding:14px 36px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s}
.contact-form button:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,188,212,0.3)}
.contact-map{border-radius:14px;overflow:hidden;margin-top:40px;box-shadow:0 4px 20px rgba(0,0,0,0.08)}
.contact-map iframe{width:100%;height:350px;border:none}
.about-hero{padding:80px 0 60px;background:linear-gradient(135deg,#19284c 0%,#1a237e 60%,#283593 100%);color:#fff;position:relative;overflow:hidden}
.about-hero::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(0,188,212,0.25) 0%,transparent 70%);border-radius:50%}
.about-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-hero h1{font-size:40px;font-weight:700;margin-bottom:16px;line-height:1.2}
.about-hero p{font-size:16px;opacity:0.9;line-height:1.7;margin-bottom:20px}
.about-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.about-stat{text-align:center}
.about-stat-num{font-size:32px;font-weight:700;color:#68c4d4;line-height:1}
.about-stat-label{font-size:13px;opacity:0.8;margin-top:5px}
.about-hero-img{border-radius:16px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,0.3)}
.about-hero-img img{width:100%;display:block}
.about-mission{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-mission-img{border-radius:14px;overflow:hidden}
.about-mission-img img{width:100%;display:block}
.about-mission-text h2{font-size:30px;font-weight:700;color:#19284c;margin-bottom:18px}
.about-mission-text p{font-size:15px;color:#555;line-height:1.7;margin-bottom:16px}
.about-values{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.about-value-card{background:#fff;border-radius:14px;padding:28px 22px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,0.05);transition:all .3s}
.about-value-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.08)}
.about-value-icon{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#68c4d4,#0097a7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;margin:0 auto 16px}
.about-value-card h4{font-size:16px;font-weight:700;color:#19284c;margin-bottom:8px}
.about-value-card p{font-size:13px;color:#666;line-height:1.5}
.about-team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.about-team-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.05);text-align:center;transition:all .3s}
.about-team-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.08)}
.about-team-img{aspect-ratio:3/4;overflow:hidden;background:#f0f2f5}
.about-team-img img{width:100%;height:100%;object-fit:cover}
.about-team-info{padding:20px}
.about-team-info h4{font-size:16px;font-weight:700;color:#19284c;margin-bottom:4px}
.about-team-info p{font-size:13px;color:#68c4d4;font-weight:500;margin-bottom:10px}
.about-team-social{display:flex;justify-content:center;gap:12px}
.about-team-social a{width:32px;height:32px;border-radius:50%;background:#f5f7fa;display:flex;align-items:center;justify-content:center;color:#666;font-size:13px;text-decoration:none;transition:all .2s}
.about-team-social a:hover{background:#68c4d4;color:#fff}
.about-timeline{max-width:800px;margin:0 auto}
.about-timeline-item{display:flex;gap:30px;padding-bottom:40px;position:relative}
.about-timeline-item:last-child{padding-bottom:0}
.about-timeline-item::before{content:'';position:absolute;left:22px;top:48px;bottom:0;width:2px;background:#e0e0e0}
.about-timeline-item:last-child::before{display:none}
.about-timeline-date{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#68c4d4,#0097a7);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;z-index:1;position:relative}
.about-timeline-content{flex:1}
.about-timeline-content h4{font-size:16px;font-weight:700;color:#19284c;margin-bottom:6px}
.about-timeline-content span{font-size:13px;color:#68c4d4;font-weight:600}
.about-timeline-content p{font-size:14px;color:#666;line-height:1.6;margin-top:8px}
.about-section{padding:80px 0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-text .section-tag{display:inline-block;background:#e8f4f5;color:#68c4d4;font-size:13px;font-weight:600;padding:6px 16px;border-radius:20px;margin-bottom:16px}
.about-text h2{font-size:32px;font-weight:700;color:#19284c;margin-bottom:18px;line-height:1.3}
.about-text p{font-size:15px;color:#555;line-height:1.7;margin-bottom:14px}
.about-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px;padding-top:30px;border-top:1px solid #f0f0f0}
.stat-item{text-align:center}
.stat-num{display:block;font-size:32px;font-weight:700;color:#68c4d4;line-height:1.1}
.stat-label{font-size:10px;color:#666;margin-top:4px}
.about-img img{width:100%;border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,0.12)}
.mission-section{padding:70px 0;background:#f8f9fb}
.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.mission-card{background:#fff;border-radius:14px;padding:36px 28px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,0.05);transition:all .35s}
.mission-card:hover{transform:translateY(-6px);box-shadow:0 16px 44px rgba(19,25,86,0.1)}
.mission-icon{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#68c4d4,#0097a7);display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;margin:0 auto 20px}
.mission-card h3{font-size:20px;font-weight:700;color:#19284c;margin-bottom:12px}
.mission-card p{font-size:14px;color:#666;line-height:1.6}
.timeline-section{padding:80px 0}
.section-center{text-align:center;margin-bottom:50px}
.section-center .section-tag{display:inline-block;background:#e8f4f5;color:#19284c;font-size:13px;font-weight:600;padding:6px 16px;border-radius:20px;margin-bottom:14px}
.section-center h2{font-size:32px;font-weight:700;color:#19284c;margin-bottom:14px}
.section-center p{font-size:15px;color:#666;max-width:600px;margin:0 auto}
.timeline{position:relative;max-width:900px;margin:0 auto;padding:20px 0}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#68c4d4,#e0e0e0);transform:translateX(-50%);border-radius:2px}
.timeline-item{display:flex;gap:30px;margin-bottom:40px;position:relative}
.timeline-item:nth-child(odd){flex-direction:row}
.timeline-item:nth-child(even){flex-direction:row-reverse}
.timeline-year{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,#68c4d4,#0097a7);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex-shrink:0;z-index:2;box-shadow:0 6px 20px rgba(0,188,212,0.4);position:absolute;left:50%;transform:translateX(-50%)}
.timeline-content{background:#fff;border-radius:14px;padding:24px 28px;box-shadow:0 4px 20px rgba(0,0,0,0.06);flex:1;max-width:44%}
.timeline-content h4{font-size:17px;font-weight:700;color:#19284c;margin-bottom:6px}
.timeline-content p{font-size:14px;color:#666;line-height:1.6}
.timeline-item:nth-child(odd) .timeline-content{margin-right:auto;margin-left:0}
.timeline-item:nth-child(even) .timeline-content{margin-left:auto;margin-right:0}
.team-section{padding:70px 0;background:#f8f9fb}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.team-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.05);text-align:center;transition:all .35s}
.team-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(0,0,0,0.1)}
.team-img{aspect-ratio:3/4;overflow:hidden;background:#f0f2f5}
.team-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.team-card:hover .team-img img{transform:scale(1.05)}
.team-card h4{font-size:17px;font-weight:700;color:#68c4d4;margin:18px 0 4px}
.team-card span{display:block;font-size:13px;color:#68c4d4;font-weight:500;margin-bottom:16px}
.cta-section{padding:70px 0}
.cta-inner{background:linear-gradient(135deg,#68c4d4 0%,#1a237e 60%,#68c4d4 100%);border-radius:20px;padding:60px;text-align:center;color:#fff;position:relative;overflow:hidden}
.cta-inner::before{content:'';position:absolute;top:-50%;right:-20%;width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,0.15) 0%,transparent 70%);border-radius:50%}
.cta-inner h2{font-size:30px;font-weight:700;margin-bottom:12px;position:relative;z-index:1}
.cta-inner p{font-size:15px;opacity:0.9;margin-bottom:28px;position:relative;z-index:1}
.cta-buttons{display:flex;justify-content:center;gap:16px;position:relative;z-index:1}
.cta-buttons .btn-primary{background:#fff;color:#68c4d4}
.cta-buttons .btn-primary:hover{background:#f0f0f0}
.cta-buttons .btn-secondary{background:transparent;color:#fff;border:2px solid rgba(255,255,255,0.5)}
.cta-buttons .btn-secondary:hover{background:rgba(255,255,255,0.15)}

/* ---------- 导航里的语言切换：收起 = 一颗球 + 一个下拉符号；展开 = 插件原生面板 ----------
   视觉基准是改版最初的 .lang-selector（备份 themes - 副本 (完工2)）：裸图标、平时不显边框、
   hover 才浮现浅底描边；点开后一块白底圆角面板，里面把语言全列出来并高亮当前项
   （原来就是 .lang-option.active）—— 所以「展开的面板必须看得见 2 种语言」。

   【为什么展开时要让 header 变成面板首行】
   插件 partial 是 array_slice($list, 1)（partials/shortcode-switcher.php:129）：当前语言被有意
   渲染在面板【外面】的 header 里，面板只列其余语言。双语站点收起时我又把 header 藏成裸球，
   展开就只剩 1 行（实测「面板可选项数 = 1」）。修法不是改插件 HTML，而是让 header 在展开态
   恢复原生显示，并和面板连成同一块白底盒子 —— 当前语言就天然排在第一行。

   【只用 CSS 就够，不改一行插件 JS（已读码确认）】
   结构：wrapper > anchor(visibility:hidden，纯占位) + overlay(absolute，唯一可交互层)；
   overlay 内 = .trp-language-item__current[role=button]（触发器，插件自己 pointer-events:none）
   + .trp-switcher-dropdown-list。JS 把 click 绑在「overlay 上除面板以外任意位置」，
   setExpanded() 把 aria-expanded 写在触发器上、把 .is-open 写在 overlay 上
   （assets/js/trp-frontend-language-switcher.js:80-85）—— 这两个状态属性就是收起/展开的钩子。
   anchor 与 overlay 必须套同一套规则，占位尺寸才会和可见的球严丝合缝。

   【特异度】后台 <link> 实测顺序：主题 style.css / responsive.css 在前，插件
   trp-language-switcher-v2.css 在后，同特异度会被插件【静默】盖掉。插件那条
   .trp-current-language-item__wrapper:not(.trp-hide-arrow) 是 (0,3,0)，
   所以中间一律多插一层 .trp-shortcode-switcher 抬到 (0,4,0) 以上，靠权重而不是靠顺序赢。 */
.nav-lang{flex:0 0 auto}

/* ① 【对齐】wrapper 是块级、anchor 是 inline-block、wrapper 继承 body 的 line-height:25.6
   → 生成基线 strut，实测多出的 6.9271px 全部落在 anchor 下方（overlay 计算值 bottom:6.92708px 直接印证），
   而 overlay 是 absolute;top:0 贴容器顶，于是球整体偏上 3.4688px
   （浏览器实测 search/login/store 的 vCenter=34.1979，球只有 30.7292）。
   flex 容器不生成行盒、没有 strut，wrapper 高度 == anchor 高度，居中即对齐。 */
.nav-lang .trp-shortcode-switcher__wrapper{display:flex;align-items:center;line-height:1}
.nav-lang .trp-shortcode-anchor{display:block}

/* ② 插件把白底/描边/padding 写在 .trp-shortcode-switcher 上，而这个类同时挂在 anchor 和
   overlay（同一个盒子）→ 导航里永远顶着一个白底胶囊（就是上一版「不好看」的根源）。
   这里全部中和，面板外观改由「展开态的 overlay」整体承担（见 ⑥）。 */
.nav-lang .trp-shortcode-switcher{padding:0;border:none;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
/* overlay 右对齐、向左下展开（入口在导航最右边，才不会顶出视口） */
.nav-lang .trp-shortcode-overlay{left:auto;right:0;top:0}

/* ③ 触发器外壳：收起时是「球 + 下拉符号」的隐形胶囊（描边透明不显形），
   hover / 展开才浮现浅底描边 —— 与最初的 .lang-selector{border:1px solid transparent} 一致。 */
.nav-lang .trp-shortcode-switcher .trp-current-language-item__wrapper:not(.trp-hide-arrow){
    padding:6px 10px;gap:5px;border:1px solid transparent;border-radius:6px;
    transition:background .25s,border-color .25s;
}
.nav-lang .trp-shortcode-overlay:not(.is-open):hover .trp-current-language-item__wrapper{
    border-color:#e0e7ef;background:#f8fafc;
}

/* ④ 收起态把 header 里的国旗 + 语言名藏掉（留给展开态当面板首行），展开态原样放回。
   anchor 那份是 <a>、没有 aria-expanded，所以必须单独列选择器，否则占位宽度不等于球宽，
   导航右侧会出现一段「没东西但一点就开」的空白。
   插件 .trp-flag-image 用的是 display:inline-block !important → 只能用 !important 对抗，
   放回时用更高一级的 (0,4,0) !important 取胜。 */
.nav-lang .trp-shortcode-anchor .trp-language-item__current>*,
.nav-lang .trp-shortcode-overlay .trp-language-item__current[aria-expanded="false"]>*{display:none !important}
.nav-lang .trp-shortcode-overlay .trp-language-item__current[aria-expanded="true"]>*{display:inline-block !important}

/* ⑤ 球：Font Awesome 6 Free 的 globe（\f0ac）+ 插件自带 chevron，就是最初那个「一个球、一个下拉符号」；
   字号 14px 也跟最初 .lang-selector 一致。默认（含 anchor 占位）画球，展开时 content:none 让位给国旗+语言名。 */
.nav-lang .trp-language-item{padding:10px 16px;font-size:14px;font-weight:400;line-height:1.2;color:#555;white-space:nowrap}
/* 触发器不撑固定尺寸（交给上面 wrapper 的 padding），宽度只跟「球 + 箭头」有关，
   跟当前语言叫什么名字全无关 → 切换语言或改语言名都不会把导航顶歪 */
.nav-lang .trp-language-item__current{width:auto;height:auto;padding:0;gap:0;box-sizing:content-box}
.nav-lang .trp-language-item__current::before{
    content:"\f0ac";
    font-family:"Font Awesome 6 Free";font-weight:900;font-style:normal;
    font-size:14px;line-height:1;color:#666;transition:color .25s;
}
.nav-lang .trp-language-item__current[aria-expanded="true"]::before{content:none}
.nav-lang .trp-shortcode-arrow{width:12px;height:12px}
.nav-lang .trp-shortcode-overlay:not(.is-open):hover .trp-language-item__current::before{color:#68c4d4}

/* ⑥ 展开态：overlay 自己就是那块面板（首行 = 当前语言，下面 = 其余语言），
   所以白底/描边/圆角/阴影挂在 overlay 上，而不是挂在退出文档流的面板上。
   width:max-content 让面板跟着语言名长；min-width:150px 只是下限（对齐最初
   .lang-dropdown-menu{min-width:140px}，留 10px 余量给更长的母语名）。 */
.nav-lang .trp-shortcode-switcher.trp-shortcode-overlay.is-open{
    width:max-content;min-width:150px;max-width:calc(100vw - 24px);overflow:hidden;
    background:var(--bg,#fff);border:1px solid var(--border-color,#eef1f5);
    border-radius:10px;box-shadow:0 10px 30px rgba(19,25,86,.12);
}
/* 首行不再带自己那圈隐形胶囊：这里必须写 border:none 而不是 border-color:transparent ——
   实测留着那 1px（DPR 1.5 下渲染成 0.8px）透明描边，会把首行左右各内缩 0.8px、
   并在两行之间垫出 0.8px 分隔线，语言名也会比次行多缩 0.8px（两行对不齐）。
   内边距/描边全部交给整块面板（(0,5,0) 才压得过 responsive.css 的 (0,4,0)）。
   开 position:relative 是为了把箭头改成绝对定位（见下面两条）：否则箭头作为 flex 兄弟会占掉 12px+gap，
   首行只能撑到 103/114px，hover 高亮条比面板短一截。 */
.nav-lang .trp-shortcode-overlay.is-open .trp-current-language-item__wrapper:not(.trp-hide-arrow){
    position:relative;padding:0;border:none;background:#f5fbfc;border-radius:0;
}
/* 首行拉满面板宽度，和下面其它行完全对齐；箭头挂在右端不占位。
   transform 里必须同时写 rotate(180deg)：插件自己那条
   .trp-shortcode-switcher.is-open .trp-shortcode-arrow{transform:rotate(180deg)}（(0,3,0)）
   会被本条（(0,5,0)）整值覆盖，只写 translateY 会把展开态的箭头翻转弄丢。 */
.nav-lang .trp-shortcode-overlay.is-open .trp-language-item__current{flex:1 1 auto;padding:10px 16px;gap:8px}
.nav-lang .trp-shortcode-overlay.is-open .trp-shortcode-arrow{
    position:absolute;top:50%;right:14px;left:auto;transform:translateY(-50%) rotate(180deg);
}
.nav-lang .trp-shortcode-overlay.is-open .trp-language-item__current .trp-language-item-name{
    color:var(--text-hover,#68c4d4);font-weight:600;
}

/* ⑦ 下拉面板本身：始终留在文档流里（这样展开时能和首行连成一块连续面板，
   max-height 动画照旧）。收起时用 width:0 退出宽度计算 —— 否则面板会被最宽的一项撑开，
   overlay 跟着变宽，导航右侧又出现一段「没东西但一点就开」的空白。 */
.nav-lang .trp-switcher-dropdown-list{width:0}
.nav-lang .trp-shortcode-overlay.is-open .trp-switcher-dropdown-list{width:auto}
.nav-lang .trp-switcher-dropdown-list .trp-language-item:hover{background:var(--bg-hover,#f8fafc)}
.nav-lang .trp-switcher-dropdown-list .trp-language-item:hover .trp-language-item-name{color:var(--text-hover,#68c4d4)}

.search-icon:hover{color:#68c4d4;transform:scale(1.08)}
.search-icon{transition:all .25s}

.selected-chips-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 4px}
.selected-filter-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#e8f6f7;color:#0097a7;border-radius:20px;font-size:13px;border:1px solid #cdecef;cursor:pointer;transition:all .2s}
.selected-filter-chip:hover{background:#d7f1f3;border-color:#68c4d4}
.selected-filter-chip i{font-size:11px;color:#0097a7;opacity:.8}
.selected-filter-chip:hover i{opacity:1}

/* 产品筛选页（archive-product.php）的分类范围条：只在带 ?product_filter=<slug> 时输出。
   两个作用：告诉访客现在表里只列本类产品，并给一条回到「全部产品」的出口——
   Tab 只能在分类之间互切、没有「全部」，没这条链接就只能手改 URL 才能退回全量。 */
.ps-scope-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;padding:10px 14px;background:#f5f8fb;border:1px solid #e6ecf3;border-radius:10px;font-size:13px;color:#5b6b82}
.ps-scope-label{color:#8493a8}
.ps-scope-term{font-weight:700;color:#19284c}
.ps-scope-top{color:#8493a8;font-size:12px}
.ps-scope-top::before{content:'/';margin-right:6px;color:#c3ccd8}
.ps-scope-actions{margin-left:auto;display:flex;gap:14px}
.ps-scope-actions a{color:#0097a7;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s}
.ps-scope-actions a:hover{color:#68c4d4;border-bottom-color:#68c4d4}
@media (max-width:600px){.ps-scope-actions{margin-left:0}}

.ble-contact-section .contact-form-wrapper{max-width:700px;margin-left:auto !important;margin-right:auto !important;margin-top:0;margin-bottom:0;display:block;position:relative}
.ble-contact-section .contact-msg-box{margin:14px 0 10px;padding:12px 16px;border-radius:10px;font-size:13px;display:none}
.ble-contact-section .contact-msg-box.success{display:block;background:#e9f8ee;color:#21794e;border:1px solid #b8e5c8}
.ble-contact-section .contact-msg-box.error{display:block;background:#fdecec;color:#b42318;border:1px solid #f6c0c0}

.ble-contact-section .contact-form{display:block !important;background:transparent !important;padding:0 !important;border-radius:0 !important;box-shadow:none !important;margin:0 !important;width:100% !important;max-width:none !important;float:none !important;clear:both !important;flex-direction:row !important;gap:0 !important;overflow:visible !important}
.ble-contact-section .contact-form .form-row{display:grid !important;grid-template-columns:repeat(2,1fr) !important;grid-template-rows:auto !important;grid-auto-flow:row !important;direction:ltr !important;gap:15px !important;margin-bottom:15px !important;row-gap:15px !important;column-gap:15px !important;width:100% !important;float:none !important;flex-direction:row !important;flex-wrap:nowrap !important;align-items:stretch !important;justify-items:stretch !important}
.ble-contact-section .contact-form .form-row > *{box-sizing:border-box !important;order:initial !important}
.ble-contact-section .contact-form .form-row > .form-group:first-child{grid-column:1 !important;grid-row:1 !important}
.ble-contact-section .contact-form .form-row > .form-group:nth-child(2){grid-column:2 !important;grid-row:1 !important}
.ble-contact-section .contact-form .form-group{display:flex !important;flex-direction:column !important;align-items:stretch !important;justify-content:flex-start !important;width:100% !important;box-sizing:border-box !important;margin:0 0 15px !important;padding:0 !important;float:none !important;position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important}
.ble-contact-section .contact-form .form-row > .form-group{margin:0 !important;display:flex !important;flex-direction:column !important}
.ble-contact-section .contact-form .form-group input,
.ble-contact-section .contact-form .form-group textarea{width:100% !important;max-width:100% !important;box-sizing:border-box !important;padding:15px 20px !important;border:1px solid #e5e7eb !important;border-radius:10px !important;background:#f9fafb !important;font-size:14px !important;color:#333 !important;box-shadow:none !important;margin:0 !important;font-family:inherit !important;display:block !important;float:none !important;position:static !important;left:auto !important;right:auto !important}
.ble-contact-section .contact-form .form-group input::placeholder,
.ble-contact-section .contact-form .form-group textarea::placeholder{color:#9ca3af !important}
.ble-contact-section .contact-form .form-group input:focus,
.ble-contact-section .contact-form .form-group textarea:focus{outline:none !important;border-color:#d1d5db !important;background:#fff !important;box-shadow:none !important}
.ble-contact-section .contact-form .form-group textarea{min-height:150px !important;resize:vertical !important;width:100% !important;display:block !important}
/* 验证码那一行：窄、紧凑、左对齐（对齐设计稿，不占满整行） */
.ble-contact-section .contact-form .form-row.code-row{display:flex !important;flex-wrap:nowrap !important;grid-template-columns:none !important;gap:15px !important;align-items:stretch !important;justify-content:flex-start !important;align-content:flex-start !important;direction:ltr !important;width:100% !important;max-width:100% !important;padding:0 !important;margin:0 0 15px 0 !important;box-sizing:border-box !important}
.ble-contact-section .contact-form .form-row.code-row > .code-group{width:130px !important;flex:0 0 130px !important;display:flex !important;align-items:stretch !important;min-height:36px !important;margin:0 !important;box-sizing:border-box !important}
.ble-contact-section .contact-form .form-row.code-row > .code-display{width:110px !important;flex:0 0 110px !important;background:linear-gradient(135deg,#f3f4f6,#e5e7eb) !important;border:1px solid #d1d5db !important;border-radius:10px !important;display:flex !important;align-items:center !important;justify-content:center !important;min-height:36px !important;margin:0 !important;box-sizing:border-box !important;user-select:none !important}
.ble-contact-section .contact-form .form-row.code-row > .code-group input{width:100% !important;height:36px !important;min-height:36px !important;padding:6px 10px !important;box-sizing:border-box !important}
.ble-contact-section .contact-form .form-row.code-row > .code-display .code-text{font-family:'Muli',sans-serif !important;font-size:15px !important;font-weight:700 !important;letter-spacing:3px !important;color:#68c4d4 !important;transform:skewX(-6deg) !important;text-shadow:1px 1px 0 rgba(255,255,255,.6) !important;display:inline-block !important}
.ble-contact-section .contact-form .form-submit{text-align:center !important;margin:15px 0 10px !important;width:100% !important;display:block !important;float:none !important;position:static !important;left:auto !important;right:auto !important}
.ble-contact-section .contact-form .btn-submit{display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:8px !important;padding:12px 28px !important;border-radius:8px !important;background:linear-gradient(135deg,#19284c,#19284c) !important;color:#fff !important;border:none !important;font-size:14px !important;font-weight:600 !important;cursor:pointer !important;transition:all .3s !important;box-shadow:none !important;transform:none !important;width:auto !important;font-family:inherit !important;position:static !important;float:none !important}
.ble-contact-section .contact-form .btn-submit:hover{transform:translateY(-2px) !important;box-shadow:0 8px 24px rgba(0,188,212,.3) !important}
.ble-contact-section .contact-form .btn-submit:disabled{opacity:.6 !important;cursor:not-allowed !important;transform:none !important;box-shadow:none !important}
.ble-contact-section .contact-form .form-footer{text-align:center !important;margin-top:10px !important;width:100% !important;display:block !important;float:none !important;position:static !important;left:auto !important;right:auto !important}
.ble-contact-section .contact-form .form-footer p{font-size:12px !important;color:#9ca3af !important;margin:0 !important}

#page-transition-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#68c4d4 0%,#1a237e 60%,#68c4d4 100%);z-index:999999;display:flex;flex-direction:column;gap:24px;align-items:center;justify-content:center;color:#fff;opacity:0;pointer-events:none;transition:opacity .25s ease}
#page-transition-overlay.is-active{opacity:1;pointer-events:auto}
#page-transition-overlay .pto-spinner{width:56px;height:56px;border-radius:50%;border:4px solid rgba(255,255,255,.25);border-top-color:#fff;animation:pto-spin 0.9s linear infinite}
#page-transition-overlay .pto-label{font-size:15px;letter-spacing:1px;opacity:.9}
@keyframes pto-spin{to{transform:rotate(360deg)}}

/* ===================================================================
 * 按钮统一规范（尺寸 / 圆角 / 字重 / 间距 / hover 动效 / 右侧箭头）
 * 范围：btn-primary / btn-secondary / btn-primary-sm / btn-secondary-sm /
 *       btn-submit（导航 Login/Store、WooCommerce 按钮不在内）
 * 配色保留 primary / secondary 的区分，这里只统一外形与交互。
 * 箭头：Font Awesome 6 Free 的 fa-long-arrow-right (\f178)，由 ::after 统一渲染。
 * 注意：模板里手写的 <i class="fas fa-arrow-right"> 已移除，避免出现两个箭头。
 * =================================================================== */
.btn-primary,
.btn-secondary,
.btn-primary-sm,
.btn-secondary-sm,
.btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 28px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    border-radius: 8px;
    transition: all 0.3s;
}

.btn-primary-sm,
.btn-secondary-sm {
    padding: 7px 16px;
    font-size: 13px;
    gap: 6px;
    border-radius: 6px;
}

/* 统一右侧细长箭头 */
.btn-primary::after,
.btn-secondary::after,
.btn-primary-sm::after,
.btn-secondary-sm::after,
.btn-submit::after {
    content: "\f178";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 0.9em;
    line-height: 1;
    transition: transform 0.3s;
}

/* 统一 hover 动效：上浮 + 阴影 + 箭头前移 */
.btn-primary:hover,
.btn-secondary:hover,
.btn-primary-sm:hover,
.btn-secondary-sm:hover,
.btn-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(19, 25, 86, 0.25);
}

.btn-primary:hover::after,
.btn-secondary:hover::after,
.btn-primary-sm:hover::after,
.btn-secondary-sm:hover::after,
.btn-submit:hover::after {
    transform: translateX(3px);
}
