/* ==========================================================================
   00. 全局变量 / 基础重置
   ========================================================================== */
:root{
    --tx-primary:        #2dbfc2;
    --tx-primary-dark:   #23a3a6;
    --tx-primary-light:  #f2fbfb;
    --tx-text:           #1f2a2a;
    --tx-text-light:     #5c6b6b;
    --tx-border:         #e6ebeb;
    --tx-white:          #ffffff;
    --tx-topbar-bg:      #2dbfc2;
    --tx-navbar-bg:      #ffffff;
    --tx-dark:           #12262a;
    --tx-container:      1300px;
    --tx-radius:         4px;
    --tx-transition:     .3s ease;
}

*,
*::before,
*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
    margin:0;
    font-family:Arial, Helvetica, sans-serif;
    font-size:15px;
    line-height:1.6;
    color:var(--tx-text);
    background:var(--tx-white);
    overflow-x:clip;
}

img{ border:0; max-width:100%; vertical-align:middle; }
a{ text-decoration:none; color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

/* 通用容器 */
.tx-container{
    width:100%;
    max-width:var(--tx-container);
    margin:0 auto;
    padding:0 20px;
}


/* ==========================================================================
   01. 顶部信息栏 Top Bar
   ========================================================================== */
.tx-topbar{
    background:var(--tx-topbar-bg);
    color:var(--tx-white);
    font-size:13px;
}

.tx-topbar-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:40px;
}

.tx-topbar-contact{
    display:flex;
    align-items:center;
    gap:26px;
}

.tx-topbar-contact li{
    display:flex;
    align-items:center;
    gap:7px;
    white-space:nowrap;
}

.tx-topbar-contact a{
    color:var(--tx-white);
    transition:opacity var(--tx-transition);
}

.tx-topbar-contact a:hover{ opacity:.75; }

.tx-topbar-icon{
    width:25px;
    height:25px;
    object-fit:contain;
    display:block;
}

.tx-topbar-social{
    display:flex;
    align-items:center;
    gap:14px;
}

.tx-topbar-social a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:rgba(255,255,255,.18);
    transition:background var(--tx-transition), transform var(--tx-transition);
}

.tx-topbar-social a:hover{
    background:rgba(255,255,255,.38);
    transform:translateY(-1px);
}

.tx-topbar-social img{
    width:35px;
    height:35px;
    object-fit:contain;
    display:block;
}


/* ==========================================================================
   02. 主导航栏 Navbar（sticky 吸顶）
   ========================================================================== */
.tx-navbar{
    position:sticky;
    top:0;
    z-index:1000;
    background:var(--tx-navbar-bg);
    box-shadow:0 1px 0 rgba(0,0,0,.06);
}

.tx-navbar-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:84px;
    gap:20px;
}

.tx-logo{
    display:flex;
    align-items:center;
    flex:0 0 auto;
}

.tx-logo img{
    height:46px;
    width:auto;
    display:block;
}

.tx-nav{
    display:flex;
    align-items:center;
    gap:32px;
}

.tx-nav-item{ position:relative; }

.tx-nav-link{
    display:flex;
    align-items:center;
    gap:6px;
    padding:12px 0;
    font-size:15px;
    font-weight:700;
    color:var(--tx-text);
    position:relative;
    transition:color var(--tx-transition);
}

.tx-nav-link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:6px;
    width:0;
    height:2px;
    background:var(--tx-primary);
    transition:width var(--tx-transition);
}

.tx-nav-link:hover{ color:var(--tx-primary); }
.tx-nav-link:hover::after{ width:100%; }

.tx-nav-caret{
    width:9px;
    height:9px;
    object-fit:contain;
    display:block;
    transition:transform var(--tx-transition);
}

.tx-nav-item:hover .tx-nav-caret{ transform:rotate(180deg); }

.tx-sub-menu{
    position:absolute;
    top:100%;
    left:-18px;
    min-width:230px;
    padding:8px 0;
    background:var(--tx-white);
    border-top:3px solid var(--tx-primary);
    border-radius:0 0 6px 6px;
    box-shadow:0 14px 34px rgba(0,0,0,.10);
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    transition:opacity var(--tx-transition), visibility var(--tx-transition), transform var(--tx-transition);
    z-index:60;
}

.tx-nav-item:hover .tx-sub-menu{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.tx-sub-menu a{
    display:block;
    padding:10px 22px;
    font-size:14px;
    color:var(--tx-text-light);
    transition:all var(--tx-transition);
}

.tx-sub-menu a:hover{
    background:var(--tx-primary-light);
    color:var(--tx-primary);
    padding-left:28px;
}

.tx-navbar-right{
    display:flex;
    align-items:center;
    flex:0 0 auto;
}

.tx-btn-quote{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:44px;
    padding:0 28px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    letter-spacing:.3px;
    border-radius:var(--tx-radius);
    white-space:nowrap;
    transition:background var(--tx-transition), transform var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-btn-quote:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(45,191,194,.35);
}

.tx-menu-toggle{
    display:none;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    margin-left:14px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:var(--tx-radius);
    cursor:pointer;
}

.tx-menu-toggle img{
    width:20px;
    height:20px;
    object-fit:contain;
    display:block;
}


/* ==========================================================================
   03. 语言切换
   ========================================================================== */
.tx-lang{
    position:relative;
    margin-left:20px;
    padding-left:20px;
    border-left:1px solid var(--tx-border);
}

.tx-lang-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 0;
    background:none;
    border:0;
    cursor:pointer;
    font-size:14px;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-lang-toggle:hover{ color:var(--tx-primary); }

.tx-lang-globe{
    width:18px;
    height:18px;
    object-fit:contain;
    display:block;
}

.tx-lang-caret{
    width:9px;
    height:9px;
    object-fit:contain;
    display:block;
    transition:transform var(--tx-transition);
}

.tx-lang.tx-open .tx-lang-caret{ transform:rotate(180deg); }

.tx-lang-list{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    min-width:158px;
    padding:6px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:6px;
    box-shadow:0 12px 30px rgba(0,0,0,.10);
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:opacity var(--tx-transition), visibility var(--tx-transition), transform var(--tx-transition);
    z-index:99;
}

.tx-lang.tx-open .tx-lang-list{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.tx-lang-item{
    display:flex;
    align-items:center;
    gap:9px;
    padding:9px 12px;
    font-size:14px;
    color:var(--tx-text);
    border-radius:var(--tx-radius);
    transition:all var(--tx-transition);
}

.tx-lang-item:hover{
    background:var(--tx-primary-light);
    color:var(--tx-primary);
}

.tx-lang-item img{
    width:20px;
    height:14px;
    object-fit:cover;
    border-radius:2px;
    display:block;
}


/* ==========================================================================
   04. 首页轮播 Banner
   ========================================================================== */
.tx-banner{
    position:relative;
    width:100%;
    height:640px;
    overflow:hidden;
    background:#0d1a1a;
}

.tx-banner-slide{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    opacity:0;
    visibility:hidden;
    transition:opacity .6s ease, visibility .6s ease;
}

.tx-banner-slide.tx-active{
    opacity:1;
    visibility:visible;
    z-index:2;
}

.tx-banner-img{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.tx-banner-mask{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(10,26,26,.48);
}

.tx-banner-content{
    position:relative;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    height:100%;
    padding:0 20px;
    text-align:center;
}

.tx-banner-title{
    max-width:960px;
    margin:0 0 20px;
    font-size:52px;
    line-height:1.18;
    font-weight:700;
    letter-spacing:-.5px;
    color:var(--tx-white);
    text-shadow:0 2px 14px rgba(0,0,0,.25);
}

.tx-banner-subtitle{
    max-width:760px;
    margin:0 0 36px;
    font-size:18px;
    line-height:1.75;
    color:rgba(255,255,255,.92);
}

.tx-banner-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:52px;
    padding:0 38px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:15px;
    font-weight:700;
    letter-spacing:.4px;
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition), transform var(--tx-transition);
}

.tx-banner-btn:hover{
    background:var(--tx-white);
    color:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-banner-content > *{
    opacity:0;
    transform:translateY(34px);
    transition:opacity .6s ease, transform .6s ease;
}

.tx-banner-slide.tx-active .tx-banner-content > *{
    opacity:1;
    transform:translateY(0);
}

.tx-banner-slide.tx-active .tx-banner-title{ transition-delay:.15s; }
.tx-banner-slide.tx-active .tx-banner-subtitle{ transition-delay:.28s; }
.tx-banner-slide.tx-active .tx-banner-btn{ transition-delay:.42s; }

.tx-banner-arrow{
    position:absolute;
    top:50%;
    z-index:6;
    display:flex;
    align-items:center;
    justify-content:center;
    width:56px;
    height:56px;
    padding:0;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.55);
    border-radius:50%;
    cursor:pointer;
    transform:translateY(-50%);
    transition:background var(--tx-transition), border-color var(--tx-transition);
}

.tx-banner-arrow:hover{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
}

.tx-banner-arrow img{
    width:18px;
    height:18px;
    object-fit:contain;
    display:block;
}

.tx-banner-prev{ left:40px; }
.tx-banner-next{ right:40px; }

.tx-banner-dots{
    position:absolute;
    left:50%;
    bottom:34px;
    z-index:6;
    display:flex;
    align-items:center;
    gap:12px;
    transform:translateX(-50%);
}

.tx-banner-dot{
    width:11px;
    height:11px;
    padding:0;
    background:transparent;
    border:2px solid rgba(255,255,255,.85);
    border-radius:50%;
    cursor:pointer;
    transition:all var(--tx-transition);
}

.tx-banner-dot:hover{ background:rgba(255,255,255,.6); }

.tx-banner-dot.tx-active{
    width:34px;
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    border-radius:6px;
}


/* ==========================================================================
   05. 通用区块标题
   ========================================================================== */
.tx-section-title{
    position:relative;
    margin:0 0 54px;
    font-size:38px;
    font-weight:700;
    line-height:1.25;
    letter-spacing:-.4px;
    text-align:center;
    color:var(--tx-text);
}

.tx-section-title::after{
    content:"";
    display:block;
    width:56px;
    height:3px;
    margin:18px auto 0;
    background:var(--tx-primary);
    border-radius:2px;
}


/* ==========================================================================
   06. 关于我们 About Us
   ========================================================================== */
.tx-about{
    padding:90px 0 80px;
    background:var(--tx-white);
}

.tx-about-row{
    display:grid;
    grid-template-columns:6fr 4fr;
    gap:56px;
    align-items:center;
}

.tx-about-desc{
    margin:0 0 18px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
}

.tx-about-desc:last-of-type{ margin-bottom:32px; }

.tx-about-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:46px;
    padding:0 34px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    letter-spacing:.3px;
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), transform var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-about-btn:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(45,191,194,.35);
}

.tx-about-img{
    overflow:hidden;
    border-radius:8px;
    box-shadow:0 22px 48px rgba(0,0,0,.12);
}

.tx-about-img img{
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
}

.tx-about-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    margin-top:74px;
    padding-top:52px;
    border-top:1px solid var(--tx-border);
    text-align:center;
}

.tx-stat-num{
    font-size:46px;
    font-weight:700;
    line-height:1.1;
    letter-spacing:-1px;
    color:var(--tx-primary);
}

.tx-stat-label{
    margin-top:10px;
    font-size:15px;
    color:var(--tx-text-light);
}


/* ==========================================================================
   07. 推荐产品 Featured Products
   ========================================================================== */
.tx-products{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-products-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
}

.tx-product-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-product-card:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}

.tx-product-thumb{
    display:block;
    position:relative;
    overflow:hidden;
    aspect-ratio:4 / 3;
    background:#eef4f4;
}

.tx-product-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.tx-product-card:hover .tx-product-thumb img{
    transform:scale(1.07);
}

.tx-product-info{
    display:flex;
    flex:1;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    padding:22px 22px 26px;
}

.tx-product-title{
    margin:0;
    font-size:17px;
    font-weight:700;
    line-height:1.45;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-product-title a{ color:inherit; }

.tx-product-card:hover .tx-product-title{ color:var(--tx-primary); }

.tx-product-btn{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 20px;
    font-size:13px;
    font-weight:700;
    color:var(--tx-primary);
    border:1px solid var(--tx-primary);
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition);
}

.tx-product-card:hover .tx-product-btn{
    background:var(--tx-primary);
    color:var(--tx-white);
}


/* ==========================================================================
   08. 应用领域 Application Fields
   ========================================================================== */
.tx-apps{
    padding:90px 0;
    background:var(--tx-white);
}

.tx-apps-carousel{
    position:relative;
    width:100%;
    height:480px;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(0,0,0,.10);
    background:#0d1a1a;
}

.tx-apps-slide{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    opacity:0;
    visibility:hidden;
    transition:opacity .6s ease, visibility .6s ease;
}

.tx-apps-slide.tx-active{
    opacity:1;
    visibility:visible;
    z-index:2;
}

.tx-apps-img{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.tx-apps-mask{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(12,30,32,.55);
}

.tx-apps-content{
    position:relative;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    height:100%;
    padding:0 60px;
    text-align:center;
}

.tx-apps-title{
    margin:0 0 16px;
    font-size:34px;
    font-weight:700;
    line-height:1.25;
    color:var(--tx-white);
    text-shadow:0 2px 14px rgba(0,0,0,.25);
}

.tx-apps-desc{
    max-width:760px;
    margin:0 0 30px;
    font-size:16px;
    line-height:1.85;
    color:rgba(255,255,255,.92);
}

.tx-apps-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:46px;
    padding:0 34px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    letter-spacing:.3px;
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition), transform var(--tx-transition);
}

.tx-apps-btn:hover{
    background:var(--tx-white);
    color:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-apps-content > *{
    opacity:0;
    transform:translateY(30px);
    transition:opacity .6s ease, transform .6s ease;
}

.tx-apps-slide.tx-active .tx-apps-content > *{
    opacity:1;
    transform:translateY(0);
}

.tx-apps-slide.tx-active .tx-apps-title{ transition-delay:.15s; }
.tx-apps-slide.tx-active .tx-apps-desc{ transition-delay:.28s; }
.tx-apps-slide.tx-active .tx-apps-btn{ transition-delay:.42s; }

.tx-apps-arrow{
    position:absolute;
    top:50%;
    z-index:6;
    display:flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:50px;
    padding:0;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.55);
    border-radius:50%;
    cursor:pointer;
    transform:translateY(-50%);
    transition:background var(--tx-transition), border-color var(--tx-transition);
}

.tx-apps-arrow:hover{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
}

.tx-apps-arrow img{
    width:16px;
    height:16px;
    object-fit:contain;
    display:block;
}

.tx-apps-prev{ left:26px; }
.tx-apps-next{ right:26px; }

.tx-apps-dots{
    position:absolute;
    left:50%;
    bottom:26px;
    z-index:6;
    display:flex;
    align-items:center;
    gap:12px;
    transform:translateX(-50%);
}

.tx-apps-dot{
    width:11px;
    height:11px;
    padding:0;
    background:transparent;
    border:2px solid rgba(255,255,255,.85);
    border-radius:50%;
    cursor:pointer;
    transition:all var(--tx-transition);
}

.tx-apps-dot:hover{ background:rgba(255,255,255,.6); }

.tx-apps-dot.tx-active{
    width:34px;
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    border-radius:6px;
}


/* ==========================================================================
   09. 我们的优势 Why Choose Us
   ========================================================================== */
.tx-why{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
}

.tx-why-item{
    padding:40px 26px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    text-align:center;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-why-item:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}

.tx-why-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:78px;
    height:78px;
    margin:0 auto 22px;
    background:var(--tx-primary-light);
    border-radius:50%;
    transition:background var(--tx-transition);
}

.tx-why-item:hover .tx-why-icon{
    background:var(--tx-primary);
}

.tx-why-icon img{
    width:38px;
    height:38px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-why-item:hover .tx-why-icon img{
    filter:brightness(0) invert(1);
}

.tx-why-title{
    margin:0 0 12px;
    font-size:18px;
    font-weight:700;
    color:var(--tx-text);
}

.tx-why-desc{
    margin:0;
    font-size:14px;
    line-height:1.85;
    color:var(--tx-text-light);
}


/* ==========================================================================
   10. 通栏 CTA
   ========================================================================== */
.tx-cta{
    position:relative;
    padding:70px 0;
    background:var(--tx-primary);
    overflow:hidden;
}

.tx-cta::before,
.tx-cta::after{
    content:"";
    position:absolute;
    border-radius:50%;
    background:rgba(255,255,255,.10);
    pointer-events:none;
}

.tx-cta::before{
    width:360px;
    height:360px;
    top:-160px;
    left:-90px;
}

.tx-cta::after{
    width:280px;
    height:280px;
    bottom:-140px;
    right:-60px;
}

.tx-cta-inner{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
}

.tx-cta-title{
    margin:0 0 10px;
    font-size:32px;
    font-weight:700;
    line-height:1.3;
    color:var(--tx-white);
}

.tx-cta-desc{
    margin:0;
    max-width:720px;
    font-size:15px;
    line-height:1.8;
    color:rgba(255,255,255,.92);
}

.tx-cta-btn{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:52px;
    padding:0 42px;
    background:var(--tx-white);
    color:var(--tx-primary);
    font-size:15px;
    font-weight:700;
    letter-spacing:.4px;
    border-radius:var(--tx-radius);
    white-space:nowrap;
    transition:background var(--tx-transition), color var(--tx-transition), transform var(--tx-transition);
}

.tx-cta-btn:hover{
    background:var(--tx-dark);
    color:var(--tx-white);
    transform:translateY(-2px);
}


/* ==========================================================================
   11. 客户 Logo 墙
   ========================================================================== */
.tx-clients{
    padding:80px 0;
    background:var(--tx-white);
}

.tx-clients-row{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:20px;
}

.tx-clients-row + .tx-clients-row{
    margin-top:20px;
}

.tx-client-item{
    display:flex;
    align-items:center;
    justify-content:center;
    height:104px;
    padding:16px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition), transform var(--tx-transition);
}

.tx-client-item:hover{
    border-color:var(--tx-primary);
    box-shadow:0 12px 28px rgba(45,191,194,.18);
    transform:translateY(-4px);
}

.tx-client-item img{
    max-width:100%;
    max-height:56px;
    width:auto;
    object-fit:contain;
    display:block;
    filter:grayscale(100%);
    opacity:.72;
    transition:filter var(--tx-transition), opacity var(--tx-transition);
}

.tx-client-item:hover img{
    filter:grayscale(0%);
    opacity:1;
}


/* ==========================================================================
   12. 最新新闻 Latest News
   ========================================================================== */
.tx-news{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-news-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px;
}

.tx-news-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-news-card:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}

.tx-news-thumb{
    display:block;
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 10;
    background:#eef4f4;
}

.tx-news-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.tx-news-card:hover .tx-news-thumb img{
    transform:scale(1.07);
}

.tx-news-body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:22px 22px 26px;
}

.tx-news-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 16px;
    margin-bottom:12px;
    font-size:12px;
    color:var(--tx-text-light);
}

.tx-news-meta span{
    display:flex;
    align-items:center;
    gap:6px;
}

.tx-news-meta img{
    width:13px;
    height:13px;
    object-fit:contain;
    display:block;
    opacity:.75;
}

.tx-news-title{
    margin:0 0 12px;
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-news-title a{ color:inherit; }

.tx-news-card:hover .tx-news-title{ color:var(--tx-primary); }

.tx-news-desc{
    margin:0 0 22px;
    font-size:14px;
    line-height:1.8;
    color:var(--tx-text-light);
}

.tx-news-btn{
    margin-top:auto;
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 20px;
    font-size:13px;
    font-weight:700;
    color:var(--tx-primary);
    border:1px solid var(--tx-primary);
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition);
}

.tx-news-card:hover .tx-news-btn{
    background:var(--tx-primary);
    color:var(--tx-white);
}


/* ==========================================================================
   13. 底部 Footer
   ========================================================================== */
.tx-footer{
    background:var(--tx-dark);
    color:rgba(255,255,255,.72);
    font-size:14px;
}

.tx-footer-main{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1.2fr;
    gap:50px;
    padding:74px 0 60px;
}

.tx-footer-title{
    position:relative;
    margin:0 0 26px;
    padding-bottom:14px;
    font-size:17px;
    font-weight:700;
    color:var(--tx-white);
}

.tx-footer-title::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:36px;
    height:2px;
    background:var(--tx-primary);
    border-radius:2px;
}

.tx-footer-logo{
    display:inline-block;
    margin-bottom:20px;
}

.tx-footer-logo img{
    height:44px;
    width:auto;
    display:block;
}

.tx-footer-slogan{
    margin:0 0 24px;
    font-size:14px;
    line-height:1.85;
    color:rgba(255,255,255,.66);
}

.tx-footer-social{
    display:flex;
    align-items:center;
    gap:12px;
}

.tx-footer-social a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    background:rgba(255,255,255,.10);
    border-radius:50%;
    transition:background var(--tx-transition), transform var(--tx-transition);
}

.tx-footer-social a:hover{
    background:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-footer-social img{
    width:35px;
    height:35px;
    object-fit:contain;
    display:block;
}

.tx-footer-list li + li{ margin-top:12px; }

.tx-footer-list a{
    display:inline-block;
    color:rgba(255,255,255,.72);
    transition:color var(--tx-transition), padding-left var(--tx-transition);
}

.tx-footer-list a:hover{
    color:var(--tx-primary);
    padding-left:6px;
}

.tx-footer-contact li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:16px;
    line-height:1.7;
}

.tx-footer-contact img{
    width:25px;
    height:25px;
    margin-top:4px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
}

.tx-footer-contact a{
    color:rgba(255,255,255,.72);
    transition:color var(--tx-transition);
}

.tx-footer-contact a:hover{ color:var(--tx-primary); }

.tx-footer-qr{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:22px;
    padding:14px;
    background:rgba(255,255,255,.06);
    border-radius:8px;
}

.tx-footer-qr img{
    width:86px;
    height:86px;
    object-fit:contain;
    display:block;
    background:var(--tx-white);
    border-radius:6px;
    padding:4px;
    flex:0 0 auto;
}

.tx-footer-qr-text{
    font-size:12px;
    line-height:1.7;
    color:rgba(255,255,255,.60);
}

.tx-footer-qr-text strong{
    display:block;
    margin-bottom:4px;
    font-size:13px;
    color:var(--tx-white);
}

.tx-footer-bottom{
    border-top:1px solid rgba(255,255,255,.10);
    padding:22px 0;
    font-size:13px;
    color:rgba(255,255,255,.55);
}

.tx-footer-bottom-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}

.tx-footer-bottom a{
    color:rgba(255,255,255,.55);
    transition:color var(--tx-transition);
}

.tx-footer-bottom a:hover{ color:var(--tx-primary); }


/* ==========================================================================
   14. 回到顶部 Back to Top
   ========================================================================== */
.tx-backtop{
    position:fixed;
    right:30px;
    bottom:30px;
    z-index:1200;
    display:flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:50px;
    padding:0;
    background:var(--tx-primary);
    border:0;
    border-radius:50%;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transform:translateY(16px);
    box-shadow:0 10px 26px rgba(45,191,194,.42);
    transition:opacity var(--tx-transition), visibility var(--tx-transition),
               transform var(--tx-transition), background var(--tx-transition);
}

.tx-backtop.tx-show{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.tx-backtop:hover{ background:var(--tx-primary-dark); }

.tx-backtop img{
    width:20px;
    height:20px;
    object-fit:contain;
    display:block;
}


/* ==========================================================================
   15. 滚动显现动画（仅作用于每个大板块整体）
   —— 时长 1200ms，缓缓淡入 + 轻微上移
   ========================================================================== */
.tx-reveal{
    opacity:0;
    transform:translateY(48px);
    transition:opacity 1200ms ease, transform 1200ms ease;
    will-change:opacity, transform;
}

.tx-reveal.tx-revealed{
    opacity:1;
    transform:translateY(0);
}

/* 用户开启“减弱动画”时直接显示，不做动画 */
@media (prefers-reduced-motion: reduce){
    .tx-reveal{
        opacity:1;
        transform:none;
        transition:none;
    }
}


/* ==========================================================================
   16. 响应式 Responsive
   ========================================================================== */

/* --- 1200px 以下 --- */
@media (max-width:1200px){
    .tx-nav{ gap:22px; }
    .tx-nav-link{ font-size:14px; }
    .tx-banner-title{ font-size:44px; }
    .tx-banner{ height:560px; }

    .tx-products-grid{ gap:22px; }
    .tx-product-title{ font-size:16px; }

    .tx-news-grid{ gap:22px; }
    .tx-why-grid{ gap:22px; }
    .tx-footer-main{ gap:36px; }
}

/* --- 1100px 以下：导航切换为侧滑菜单 --- */
@media (max-width:1100px){
    .tx-menu-toggle{ display:flex; }

    .tx-nav{
        position:fixed;
        top:0;
        right:-330px;
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:0;
        width:310px;
        height:100%;
        padding:100px 26px 40px;
        background:var(--tx-white);
        box-shadow:-12px 0 36px rgba(0,0,0,.12);
        overflow-y:auto;
        transition:right .35s ease;
        z-index:900;
    }

    .tx-nav.tx-nav-open{ right:0; }

    .tx-nav-item{
        width:100%;
        border-bottom:1px solid var(--tx-border);
    }

    .tx-nav-link{
        justify-content:space-between;
        padding:5px 0;
    }

    .tx-nav-link::after{ display:none; }

    .tx-sub-menu{
        position:static;
        min-width:0;
        padding:0 0 12px 14px;
        border-top:0;
        border-radius:0;
        box-shadow:none;
        opacity:1;
        visibility:visible;
        transform:none;
        display:none;
    }

    .tx-nav-item.tx-has-sub .tx-sub-menu{ display:block; }
}

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-banner{ height:520px; }
    .tx-banner-title{ font-size:38px; }
    .tx-banner-subtitle{ font-size:16px; }
    .tx-banner-prev{ left:18px; }
    .tx-banner-next{ right:18px; }
    .tx-banner-arrow{ width:46px; height:46px; }

    .tx-about{ padding:70px 0 64px; }
    .tx-section-title{ font-size:32px; margin-bottom:44px; }

    .tx-about-row{
        grid-template-columns:1fr;
        gap:34px;
    }
    .tx-about-img{ order:-1; }
    .tx-about-img img{ aspect-ratio:16 / 10; }

    .tx-about-stats{
        margin-top:54px;
        padding-top:42px;
    }
    .tx-stat-num{ font-size:40px; }

    .tx-products{ padding:70px 0; }
    .tx-products-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .tx-apps{ padding:70px 0; }
    .tx-apps-carousel{ height:420px; }
    .tx-apps-title{ font-size:28px; }
    .tx-apps-desc{ font-size:15px; }

    .tx-why{ padding:70px 0; }
    .tx-why-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .tx-cta{ padding:56px 0; }
    .tx-cta-inner{
        flex-direction:column;
        align-items:flex-start;
        gap:26px;
    }
    .tx-cta-title{ font-size:26px; }

    .tx-clients{ padding:64px 0; }
    .tx-clients-row{ grid-template-columns:repeat(4,1fr); }
    .tx-client-item{ height:92px; }

    .tx-news{ padding:70px 0; }
    .tx-news-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .tx-footer-main{
        grid-template-columns:repeat(2,1fr);
        gap:44px 32px;
        padding:60px 0 50px;
    }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-topbar{ display:none; }

    .tx-navbar-inner{ height:70px; }
    .tx-logo img{ height:36px; }

    .tx-lang{ margin-left:12px; padding-left:12px; }
    .tx-lang-text{ display:none; }

    /* ★ 修改：移动端隐藏 Get a Quote 按钮 */
    .tx-btn-quote{
        display:none;
    }

    .tx-banner{ height:460px; }
    .tx-banner-title{ font-size:28px; margin-bottom:14px; }
    .tx-banner-subtitle{ font-size:15px; margin-bottom:26px; }
    .tx-banner-btn{ height:46px; padding:0 28px; font-size:14px; }
    .tx-banner-arrow{ width:40px; height:40px; }
    .tx-banner-arrow img{ width:14px; height:14px; }
    .tx-banner-dots{ bottom:22px; }

    .tx-section-title{ font-size:26px; margin-bottom:36px; }

    .tx-about-stats{
        grid-template-columns:repeat(2,1fr);
        gap:34px 16px;
        margin-top:44px;
        padding-top:36px;
    }
    .tx-stat-num{ font-size:34px; }
    .tx-stat-label{ font-size:14px; }

    .tx-product-info{ padding:16px 16px 20px; }
    .tx-product-title{ font-size:15px; }
    .tx-product-btn{ height:34px; padding:0 16px; font-size:12px; }

    .tx-apps-carousel{ height:380px; }
    .tx-apps-content{ padding:0 30px; }
    .tx-apps-title{ font-size:23px; margin-bottom:12px; }
    .tx-apps-desc{ font-size:14px; margin-bottom:22px; }
    .tx-apps-btn{ height:42px; padding:0 26px; font-size:13px; }
    .tx-apps-arrow{ width:40px; height:40px; }
    .tx-apps-arrow img{ width:13px; height:13px; }
    .tx-apps-prev{ left:12px; }
    .tx-apps-next{ right:12px; }

    .tx-why-item{ padding:30px 18px; }
    .tx-why-icon{ width:64px; height:64px; margin-bottom:18px; }
    .tx-why-icon img{ width:30px; height:30px; }
    .tx-why-title{ font-size:16px; }

    .tx-cta-title{ font-size:22px; }
    .tx-cta-desc{ font-size:14px; }
    .tx-cta-btn{ height:46px; padding:0 32px; font-size:14px; }

    .tx-clients-row{ grid-template-columns:repeat(3,1fr); gap:14px; }
    .tx-clients-row + .tx-clients-row{ margin-top:14px; }
    .tx-client-item{ height:80px; padding:12px; }
    .tx-client-item img{ max-height:42px; }

    .tx-news-body{ padding:18px 16px 22px; }
    .tx-news-title{ font-size:15px; }
    .tx-news-desc{ font-size:13px; }

    .tx-footer-main{
        grid-template-columns:1fr;
        gap:40px;
        padding:50px 0 40px;
    }
    .tx-footer-bottom-inner{
        flex-direction:column;
        text-align:center;
    }

    .tx-backtop{
        right:18px;
        bottom:18px;
        width:44px;
        height:44px;
    }
    .tx-backtop img{ width:17px; height:17px; }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-banner{ height:420px; }
    .tx-banner-title{ font-size:23px; }
    .tx-banner-subtitle{ font-size:14px; }
    .tx-btn-quote{ padding:0 14px; }

    .tx-about{ padding:54px 0 50px; }
    .tx-products{ padding:54px 0; }
    .tx-apps{ padding:54px 0; }
    .tx-why{ padding:54px 0; }
    .tx-news{ padding:54px 0; }

    .tx-stat-num{ font-size:28px; }

    .tx-products-grid{ gap:14px; }
    .tx-product-info{ padding:14px 12px 16px; gap:10px; }
    .tx-product-title{ font-size:14px; }
    .tx-product-btn{ height:32px; padding:0 12px; font-size:11px; }

    .tx-apps-carousel{ height:340px; }
    .tx-apps-content{ padding:0 20px; }
    .tx-apps-title{ font-size:20px; }
    .tx-apps-desc{ font-size:13px; }
    .tx-apps-arrow{ width:34px; height:34px; }

    .tx-why-grid{ grid-template-columns:1fr; }

    .tx-news-grid{ gap:14px; }
    .tx-news-body{ padding:14px 12px 18px; }
    .tx-news-title{ font-size:14px; }
    .tx-news-desc{ display:none; }

    .tx-footer-qr{
        flex-direction:column;
        align-items:flex-start;
    }
}

/* ==========================================================================
   17. 内页 Banner（产品页 / 新闻页等通用）
   ========================================================================== */
.tx-page-banner{
    position:relative;
    width:100%;
    height:340px;
    overflow:hidden;
    background:#0d1a1a;
}

.tx-page-banner-img{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.tx-page-banner-mask{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(12,30,32,.55);
}

.tx-page-banner-content{
    position:relative;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    height:100%;
    padding:0 20px;
    text-align:center;
}

.tx-page-banner-title{
    margin:0 0 18px;
    font-size:44px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:-.5px;
    color:var(--tx-white);
    text-shadow:0 2px 14px rgba(0,0,0,.28);
}

/* 面包屑 */
.tx-breadcrumb{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    font-size:14px;
    color:rgba(255,255,255,.88);
}

.tx-breadcrumb a{
    color:rgba(255,255,255,.88);
    transition:color var(--tx-transition);
}

.tx-breadcrumb a:hover{ color:var(--tx-primary); }

.tx-breadcrumb-sep{
    color:rgba(255,255,255,.55);
}

.tx-breadcrumb-current{
    color:var(--tx-primary);
    font-weight:700;
}


/* ==========================================================================
   18. 产品列表页主体
   ========================================================================== */
.tx-products-page{
    padding:80px 0 90px;
    background:#f7fbfb;
}

.tx-products-layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:40px;
    align-items:start;
    min-width:0;                       /* ★ 新增：防止 Grid 撑破容器 */
}

/* ★ 新增：给 Grid 直接子项加 min-width: 0，避免内容溢出 */
.tx-products-layout > *{ min-width:0; }


/* ---------- 左侧边栏 ---------- */
.tx-products-sidebar{
    position:sticky;
    top:104px;                       /* navbar 高度 + 20px 间距 */
}

.tx-sidebar-block{
    overflow:hidden;
    margin-bottom:24px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
}

.tx-sidebar-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0;
    padding:20px 24px;
    font-size:16px;
    font-weight:700;
    color:var(--tx-white);
    background:var(--tx-primary);
    cursor:pointer;                  /* ★ 新增：可点击 */
    user-select:none;                /* ★ 新增 */
    -webkit-tap-highlight-color:transparent; /* ★ 新增 */
}

/* 折叠箭头（图片，默认隐藏，仅移动端显示） */
.tx-sidebar-arrow{
    width:12px;
    height:12px;
    object-fit:contain;
    display:none;
    transition:transform var(--tx-transition);
}

.tx-sidebar-block.tx-open .tx-sidebar-arrow{
    transform:rotate(180deg);
}

.tx-category-list{
    padding:8px 0;
}

.tx-category-list li a{
    position:relative;
    display:block;
    padding:12px 24px;
    font-size:14px;
    color:var(--tx-text-light);
    transition:all var(--tx-transition);
}

.tx-category-list li a::before{
    content:"";
    position:absolute;
    left:14px;
    top:50%;
    width:4px;
    height:4px;
    margin-top:-2px;
    background:var(--tx-primary);
    border-radius:50%;
    opacity:0;
    transition:opacity var(--tx-transition);
}

.tx-category-list li a:hover,
.tx-category-list li a.tx-active{
    color:var(--tx-primary);
    background:var(--tx-primary-light);
    padding-left:30px;
}

.tx-category-list li a:hover::before,
.tx-category-list li a.tx-active::before{
    opacity:1;
}


/* ---------- 联系卡片 ---------- */
.tx-contact-card{
    padding:28px 24px;
    background:var(--tx-dark);
    border-radius:8px;
}

.tx-contact-card-title{
    margin:0 0 20px;
    font-size:18px;
    font-weight:700;
    color:var(--tx-white);
}

.tx-contact-card-list li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:5px;
    font-size:14px;
    line-height:1.6;
    color:rgba(255,255,255,.82);
}

.tx-contact-card-list img{
    width:15px;
    height:15px;
    margin-top:3px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
}

.tx-contact-card-list a{
    color:rgba(255,255,255,.82);
    transition:color var(--tx-transition);
}

.tx-contact-card-list a:hover{ color:var(--tx-primary); }

.tx-contact-card-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    height:44px;
    margin-top:10px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), transform var(--tx-transition);
}

.tx-contact-card-btn:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
}


/* ---------- 右侧产品网格（2 行 × 3 列）---------- */
.tx-product-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    min-width:0;                      /* ★ 新增 */
}


/* ---------- 分页导航 ---------- */
.tx-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:50px;
}

.tx-page-prev,
.tx-page-next,
.tx-page-num{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 14px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:var(--tx-radius);
    font-size:14px;
    font-weight:700;
    color:var(--tx-text);
    transition:all var(--tx-transition);
}

.tx-page-prev:hover,
.tx-page-next:hover,
.tx-page-num:hover{
    color:var(--tx-primary);
    border-color:var(--tx-primary);
}

.tx-page-num.tx-active{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    color:var(--tx-white);
}

.tx-page-dots{
    padding:0 4px;
    font-size:14px;
    color:var(--tx-text-light);
}


/* ==========================================================================
   19. 产品列表页响应式
   ========================================================================== */

/* --- 1200px 以下 --- */
@media (max-width:1200px){
    .tx-products-layout{ gap:30px; }
    .tx-product-list{ gap:22px; }
}

/* --- 992px 以下：产品页切单列，产品目录折叠启用 --- */
@media (max-width:992px){
    .tx-page-banner{ height:300px; }
    .tx-page-banner-title{ font-size:36px; }

    .tx-products-page{ padding:60px 0 70px; }

    /* ★ 修改：单列布局，侧边栏移到顶部 */
    .tx-products-layout{
        grid-template-columns:1fr;
        gap:24px;
    }

    /* ★ 修改：侧边栏不再吸顶 */
    .tx-products-sidebar{
        position:static;
    }

    /* ★ 修改：产品目录折叠提前到 992px 启用 */
    .tx-sidebar-arrow{ display:block; }

    .tx-category-list{ display:none; }

    .tx-sidebar-block.tx-open .tx-category-list{ display:block; }

    /* 产品网格 2 列 */
    .tx-product-list{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-page-banner{ height:260px; }
    .tx-page-banner-title{ font-size:28px; margin-bottom:14px; }
    .tx-breadcrumb{ font-size:13px; }

    .tx-products-page{ padding:50px 0 60px; }

    /* ★ 修改：产品页在 768px 下只需调整间距和字号 */
    .tx-sidebar-title{ padding:16px 20px; font-size:15px; }
    .tx-category-list li a{ padding:11px 20px; font-size:13px; }

    /* 产品网格 gap 更紧凑（2 列已在 992px 设置） */
    .tx-product-list{ gap:14px; }

    .tx-contact-card{ padding:22px 20px; }
    .tx-contact-card-title{ font-size:16px; margin-bottom:16px; }

    .tx-pagination{ margin-top:36px; gap:6px; }
    .tx-page-prev,
    .tx-page-next,
    .tx-page-num{
        min-width:38px;
        height:38px;
        padding:0 12px;
        font-size:13px;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-page-banner{ height:220px; }
    .tx-page-banner-title{ font-size:24px; }

    .tx-product-list{ gap:12px; }
    .tx-pagination{ margin-top:30px; }
}

/* ==========================================================================
   20. 产品详情页
   ========================================================================== */

/* ---------- 产品主视觉：图 + 标题居中 ---------- */
.tx-product-detail-hero{
    padding:80px 0 40px;
    background:#f7fbfb;
}

.tx-product-hero{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:50px 40px 44px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    box-shadow:0 18px 48px rgba(0,0,0,.06);
}

.tx-product-hero-img{
    display:block;
    width:100%;
    max-width:620px;
    aspect-ratio:4 / 3;
    object-fit:contain;
    background:#f5fafa;
    border-radius:8px;
    margin:0 0 30px;
}

.tx-product-hero-title{
    margin:0;
    font-size:38px;
    font-weight:700;
    line-height:1.25;
    letter-spacing:-.4px;
    color:var(--tx-text);
}


/* ---------- 产品详情正文 ---------- */
.tx-product-body{
    padding:40px 0 90px;
    background:#f7fbfb;
}

.tx-product-section{
    padding:44px 46px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    transition:box-shadow .35s ease;
}

.tx-product-section + .tx-product-section{
    margin-top:30px;
}

.tx-product-section:hover{
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.tx-product-section-title{
    position:relative;
    margin:0 0 26px;
    padding-left:18px;
    font-size:24px;
    font-weight:700;
    line-height:1.3;
    color:var(--tx-text);
}

.tx-product-section-title::before{
    content:"";
    position:absolute;
    left:0;
    top:5px;
    width:5px;
    height:24px;
    background:var(--tx-primary);
    border-radius:3px;
}


/* ---------- 产品简介文字 ---------- */
.tx-product-text{
    font-size:15px;
    line-height:1.95;
    color:var(--tx-text-light);
}

.tx-product-text p{
    margin:0 0 16px;
}

.tx-product-text p:last-child{
    margin-bottom:0;
}


/* ---------- 特点 / 应用 列表（2 列）---------- */
.tx-feature-list,
.tx-app-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px 32px;
}

.tx-feature-item{
    display:flex;
    align-items:flex-start;
    gap:12px;
    font-size:15px;
    line-height:1.7;
    color:var(--tx-text-light);
}

.tx-feature-item img{
    width:18px;
    height:18px;
    margin-top:5px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
}


/* ---------- 参数表格 ---------- */
.tx-param-table{
    width:100%;
    border-collapse:collapse;
    font-size:15px;
    border:1px solid var(--tx-border);
    border-radius:8px;
    overflow:hidden;
}

.tx-param-table th,
.tx-param-table td{
    padding:15px 22px;
    text-align:left;
    vertical-align:top;
    line-height:1.7;
    border-bottom:1px solid var(--tx-border);
}

.tx-param-table tr:last-child th,
.tx-param-table tr:last-child td{
    border-bottom:0;
}

.tx-param-table th{
    width:240px;
    font-weight:700;
    color:var(--tx-text);
    background:#fafcfc;
}

.tx-param-table td{
    color:var(--tx-text-light);
}


/* ---------- FAQ 折叠 ---------- */
.tx-faq-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.tx-faq-item{
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-faq-item.tx-open{
    border-color:var(--tx-primary);
    box-shadow:0 8px 22px rgba(45,191,194,.12);
}

.tx-faq-question{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0;
    padding:18px 22px;
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    color:var(--tx-text);
    background:var(--tx-white);
    cursor:pointer;
    user-select:none;
    -webkit-tap-highlight-color:transparent;
    transition:color var(--tx-transition), background var(--tx-transition);
}

.tx-faq-question:hover{ color:var(--tx-primary); }

.tx-faq-item.tx-open .tx-faq-question{
    color:var(--tx-primary);
    background:var(--tx-primary-light);
}

.tx-faq-icon{
    width:13px;
    height:13px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
    transition:transform var(--tx-transition);
}

.tx-faq-item.tx-open .tx-faq-icon{
    transform:rotate(180deg);
}

.tx-faq-answer{
    display:none;
    padding:18px 22px 22px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
    background:var(--tx-white);
    border-top:1px solid var(--tx-border);
}

.tx-faq-item.tx-open .tx-faq-answer{
    display:block;
}


/* ---------- 上一个 / 下一个产品导航 ---------- */
.tx-product-nav{
    display:flex;
    align-items:stretch;
    gap:20px;
    margin:30px 0;
}

.tx-product-nav-prev,
.tx-product-nav-next{
    flex:1 1 50%;
    display:flex;
    align-items:center;
    gap:16px;
    min-width:0;
    padding:22px 26px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:10px;
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition), transform var(--tx-transition);
}

.tx-product-nav-prev:hover,
.tx-product-nav-next:hover{
    border-color:var(--tx-primary);
    box-shadow:0 12px 28px rgba(45,191,194,.15);
    transform:translateY(-2px);
}

.tx-product-nav-next{
    justify-content:flex-end;
    text-align:right;
}

.tx-product-nav-icon{
    width:20px;
    height:20px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
    transition:transform var(--tx-transition);
}

.tx-product-nav-prev:hover .tx-product-nav-icon{
    transform:translateX(-4px);
}

.tx-product-nav-next:hover .tx-product-nav-icon{
    transform:translateX(4px);
}

.tx-product-nav-info{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}

.tx-product-nav-label{
    font-size:12px;
    font-weight:700;
    letter-spacing:.4px;
    text-transform:uppercase;
    color:var(--tx-text-light);
    transition:color var(--tx-transition);
}

.tx-product-nav-prev:hover .tx-product-nav-label,
.tx-product-nav-next:hover .tx-product-nav-label{
    color:var(--tx-primary);
}

.tx-product-nav-name{
    font-size:16px;
    font-weight:700;
    line-height:1.4;
    color:var(--tx-text);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}


/* ---------- 联系表单 ---------- */
.tx-contact-form{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px 24px;
}

.tx-form-field{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.tx-form-field.tx-full{
    grid-column:1 / -1;
}

.tx-form-label{
    font-size:14px;
    font-weight:700;
    color:var(--tx-text);
}

.tx-form-label .tx-required{
    color:#e74c3c;
    margin-left:2px;
}

.tx-form-input,
.tx-form-textarea{
    width:100%;
    padding:12px 16px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:var(--tx-radius);
    font-family:inherit;
    font-size:15px;
    line-height:1.5;
    color:var(--tx-text);
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-form-input::placeholder,
.tx-form-textarea::placeholder{
    color:#9aa8a8;
}

.tx-form-input:focus,
.tx-form-textarea:focus{
    outline:none;
    border-color:var(--tx-primary);
    box-shadow:0 0 0 3px rgba(45,191,194,.15);
}

.tx-form-textarea{
    min-height:150px;
    resize:vertical;
}

.tx-form-submit{
    grid-column:1 / -1;
    justify-self:start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:50px;
    padding:0 46px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:15px;
    font-weight:700;
    letter-spacing:.3px;
    border:0;
    border-radius:var(--tx-radius);
    cursor:pointer;
    transition:background var(--tx-transition), transform var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-form-submit:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(45,191,194,.35);
}


/* ==========================================================================
   21. 产品详情页响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-product-detail-hero{ padding:60px 0 30px; }

    .tx-product-hero{
        padding:40px 30px 36px;
    }
    .tx-product-hero-title{ font-size:30px; }

    .tx-product-section{ padding:34px 30px; }
    .tx-product-section-title{ font-size:21px; }

    .tx-param-table th{ width:180px; padding:13px 18px; }
    .tx-param-table td{ padding:13px 18px; }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-product-detail-hero{ padding:50px 0 26px; }

    .tx-product-hero{
        padding:30px 20px 28px;
        border-radius:10px;
    }
    .tx-product-hero-img{ margin-bottom:22px; }
    .tx-product-hero-title{ font-size:24px; }

    .tx-product-body{ padding:26px 0 60px; }

    .tx-product-section{
        padding:26px 20px;
        border-radius:10px;
    }
    .tx-product-section + .tx-product-section{ margin-top:20px; }

    .tx-product-section-title{
        font-size:19px;
        margin-bottom:20px;
        padding-left:14px;
    }
    .tx-product-section-title::before{
        width:4px;
        height:20px;
        top:3px;
    }

    /* 特点 / 应用 单列 */
    .tx-feature-list,
    .tx-app-list{
        grid-template-columns:1fr;
        gap:12px;
    }
    .tx-feature-item{ font-size:14px; }

    /* 参数表格：移动端每行堆叠 */
    .tx-param-table{ border-radius:8px; }
    .tx-param-table tr{
        display:block;
        padding:14px 18px;
        border-bottom:1px solid var(--tx-border);
    }
    .tx-param-table tr:last-child{
        border-bottom:0;
    }
    .tx-param-table th,
    .tx-param-table td{
        display:block;
        width:100%;
        padding:0;
        border-bottom:0;
        text-align:left;
        background:transparent;
    }
    .tx-param-table th{
        margin-bottom:4px;
        font-size:14px;
    }
    .tx-param-table td{
        font-size:14px;
    }

    /* FAQ */
    .tx-faq-question{
        padding:15px 18px;
        font-size:15px;
    }
    .tx-faq-answer{
        padding:16px 18px 20px;
        font-size:14px;
    }

    /* ★ 上一个 / 下一个产品：上下两行 */
    .tx-product-nav{
        flex-direction:column;
        gap:12px;
        margin:22px 0;
    }
    .tx-product-nav-prev,
    .tx-product-nav-next{
        flex:1 1 auto;
        width:100%;
        padding:16px 20px;
    }
    .tx-product-nav-next{
        text-align:right;
    }
    .tx-product-nav-name{ font-size:15px; }

    /* 表单：单列 */
    .tx-contact-form{
        grid-template-columns:1fr;
        gap:16px;
    }
    .tx-form-submit{
        width:100%;
        justify-self:stretch;
        padding:0;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-product-detail-hero{ padding:40px 0 22px; }

    .tx-product-hero{ padding:24px 16px 22px; }
    .tx-product-hero-title{ font-size:21px; }

    .tx-product-section{ padding:22px 16px; }
    .tx-product-section-title{ font-size:17px; }

    .tx-param-table tr{ padding:12px 14px; }
    .tx-faq-question{ padding:14px 16px; font-size:14px; }
    .tx-faq-answer{ padding:14px 16px 18px; }

    /* 产品导航更紧凑 */
    .tx-product-nav-prev,
    .tx-product-nav-next{
        padding:14px 16px;
        gap:12px;
    }
    .tx-product-nav-icon{ width:16px; height:16px; }
    .tx-product-nav-name{ font-size:14px; }
    .tx-product-nav-label{ font-size:11px; }
}


/* ==========================================================================
   22. 解决方案列表页
   ========================================================================== */
.tx-solutions-page{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-solution-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}


/* ---------- 单个场景卡片 ---------- */
.tx-solution-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-solution-card:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}


/* ---------- 产品图 + 悬停遮罩 ---------- */
.tx-solution-thumb{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:4 / 3;
    background:#eef4f4;
}

.tx-solution-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s ease;
}

.tx-solution-card:hover .tx-solution-thumb img{
    transform:scale(1.08);
}

/* 遮罩层：默认隐藏，悬停显示 */
.tx-solution-overlay{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px 26px;
    background:rgba(12,30,32,.72);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
}

.tx-solution-card:hover .tx-solution-overlay{
    opacity:1;
    visibility:visible;
}

.tx-solution-desc{
    margin:0;
    font-size:14px;
    line-height:1.85;
    color:rgba(255,255,255,.95);
    text-align:center;
    transform:translateY(14px);
    transition:transform .45s ease .05s;
}

.tx-solution-card:hover .tx-solution-desc{
    transform:translateY(0);
}


/* ---------- 卡片信息区 ---------- */
.tx-solution-info{
    display:flex;
    flex:1;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    padding:24px 24px 28px;
}

.tx-solution-title{
    margin:0;
    font-size:17px;
    font-weight:700;
    line-height:1.45;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-solution-title a{ color:inherit; }

.tx-solution-card:hover .tx-solution-title{ color:var(--tx-primary); }

.tx-solution-btn{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:38px;
    padding:0 22px;
    font-size:13px;
    font-weight:700;
    color:var(--tx-primary);
    border:1px solid var(--tx-primary);
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition);
}

.tx-solution-card:hover .tx-solution-btn{
    background:var(--tx-primary);
    color:var(--tx-white);
}


/* ==========================================================================
   23. 解决方案列表页响应式
   ========================================================================== */

/* --- 1200px 以下 --- */
@media (max-width:1200px){
    .tx-solution-grid{ gap:22px; }
    .tx-solution-title{ font-size:16px; }
}

/* --- 992px 以下：2 列 --- */
@media (max-width:992px){
    .tx-solutions-page{ padding:70px 0; }

    .tx-solution-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .tx-solution-info{ padding:20px 20px 24px; }
    .tx-solution-title{ font-size:15px; }
    .tx-solution-btn{ height:36px; padding:0 18px; font-size:12px; }

    /* 平板开始隐藏悬停遮罩，改为直接展示简介 */
    .tx-solution-desc{ font-size:13px; }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-solutions-page{ padding:50px 0 60px; }

    .tx-solution-grid{ gap:14px; }

    .tx-solution-info{
        padding:16px 16px 20px;
        gap:10px;
    }
    .tx-solution-title{ font-size:14px; }
    .tx-solution-btn{ height:32px; padding:0 14px; font-size:11px; }

    /* 移动端悬停无效，遮罩层改为常驻半透明显示 */
    .tx-solution-overlay{
        opacity:1;
        visibility:visible;
        align-items:flex-end;
        padding:14px 14px 16px;
        background:linear-gradient(to top, rgba(12,30,32,.85) 0%, rgba(12,30,32,0) 60%);
    }
    .tx-solution-desc{
        font-size:12px;
        line-height:1.7;
        text-align:left;
        transform:none;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-solutions-page{ padding:40px 0 50px; }

    .tx-solution-grid{ gap:12px; }

    .tx-solution-info{ padding:14px 12px 16px; }
    .tx-solution-title{ font-size:13px; }
    .tx-solution-btn{ height:30px; padding:0 12px; font-size:11px; }

    /* 极小屏隐藏简介，保持卡片高度一致 */
    .tx-solution-overlay{ display:none; }
}


/* ==========================================================================
   24. 新闻列表页（3 行 × 3 列）
   ========================================================================== */
.tx-news-list-page{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-news-grid-9{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}


/* ---------- 单个新闻卡片 ---------- */
.tx-news-card-9{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-news-card-9:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}


/* ---------- 新闻图 ---------- */
.tx-news-thumb-9{
    display:block;
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 10;
    background:#eef4f4;
}

.tx-news-thumb-9 img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.tx-news-card-9:hover .tx-news-thumb-9 img{
    transform:scale(1.07);
}


/* ---------- 卡片内容 ---------- */
.tx-news-body-9{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:22px 22px 26px;
}

.tx-news-meta-9{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 16px;
    margin-bottom:12px;
    font-size:12px;
    color:var(--tx-text-light);
}

.tx-news-meta-9 span{
    display:flex;
    align-items:center;
    gap:6px;
}

.tx-news-meta-9 img{
    width:13px;
    height:13px;
    object-fit:contain;
    display:block;
    opacity:.75;
}

.tx-news-title-9{
    margin:0 0 12px;
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-news-title-9 a{ color:inherit; }

.tx-news-card-9:hover .tx-news-title-9{ color:var(--tx-primary); }

/* 简介：3 行截断，超出用省略号 */
.tx-news-desc-9{
    margin:0 0 22px;
    font-size:14px;
    line-height:1.8;
    color:var(--tx-text-light);
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    text-overflow:ellipsis;
}

.tx-news-btn-9{
    margin-top:auto;
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 20px;
    font-size:13px;
    font-weight:700;
    color:var(--tx-primary);
    border:1px solid var(--tx-primary);
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition);
}

.tx-news-card-9:hover .tx-news-btn-9{
    background:var(--tx-primary);
    color:var(--tx-white);
}


/* ==========================================================================
   25. 新闻列表页响应式
   ========================================================================== */

/* --- 1200px 以下 --- */
@media (max-width:1200px){
    .tx-news-grid-9{ gap:22px; }
    .tx-news-title-9{ font-size:15px; }
}

/* --- 992px 以下：2 列 --- */
@media (max-width:992px){
    .tx-news-list-page{ padding:70px 0; }

    .tx-news-grid-9{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }

    .tx-news-body-9{ padding:18px 18px 22px; }
    .tx-news-title-9{ font-size:15px; }
    .tx-news-desc-9{ font-size:13px; }
    .tx-news-btn-9{ height:34px; padding:0 16px; font-size:12px; }
}

/* --- 768px 以下：1 列 --- */
@media (max-width:768px){
    .tx-news-list-page{ padding:50px 0 60px; }

    .tx-news-grid-9{
        grid-template-columns:1fr;
        gap:16px;
    }

    .tx-news-body-9{ padding:16px 16px 20px; }
    .tx-news-title-9{ font-size:15px; }
    .tx-news-desc-9{ font-size:13px; margin-bottom:16px; }
    .tx-news-btn-9{ height:34px; padding:0 16px; font-size:12px; }

    .tx-pagination{ margin-top:36px; gap:6px; }
    .tx-page-prev,
    .tx-page-next,
    .tx-page-num{
        min-width:38px;
        height:38px;
        padding:0 12px;
        font-size:13px;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-news-list-page{ padding:40px 0 50px; }

    .tx-news-body-9{ padding:14px 12px 18px; }
    .tx-news-title-9{ font-size:14px; }
    .tx-news-desc-9{ font-size:12px; line-height:1.7; margin-bottom:14px; }
    .tx-news-btn-9{ height:30px; padding:0 12px; font-size:11px; }

    .tx-pagination{ margin-top:30px; }
}


/* ==========================================================================
   26. 联系我们页
   ========================================================================== */

/* ---------- 三等分联系信息 ---------- */
.tx-contact-info{
    padding:90px 0;
    background:var(--tx-white);
}

.tx-contact-info-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.tx-contact-info-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:44px 30px;
    background:#f7fbfb;
    border:1px solid var(--tx-border);
    border-radius:12px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-contact-info-item:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.tx-contact-info-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:78px;
    height:78px;
    margin-bottom:24px;
    background:var(--tx-primary-light);
    border-radius:50%;
    transition:background var(--tx-transition);
}

.tx-contact-info-item:hover .tx-contact-info-icon{
    background:var(--tx-primary);
}

.tx-contact-info-icon img{
    width:34px;
    height:34px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-contact-info-item:hover .tx-contact-info-icon img{
    filter:brightness(0) invert(1);
}

.tx-contact-info-title{
    margin:0 0 10px;
    font-size:18px;
    font-weight:700;
    color:var(--tx-text);
}

.tx-contact-info-text{
    margin:0;
    font-size:15px;
    line-height:1.8;
    color:var(--tx-text-light);
}

.tx-contact-info-text a{
    color:var(--tx-text-light);
    transition:color var(--tx-transition);
}

.tx-contact-info-text a:hover{ color:var(--tx-primary); }


/* ---------- 三位业务经理 ---------- */
.tx-managers{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-manager-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.tx-manager-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:40px 30px 34px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-manager-card:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}

.tx-manager-avatar{
    width:130px;
    height:130px;
    margin-bottom:22px;
    overflow:hidden;
    border-radius:50%;
    border:4px solid var(--tx-primary-light);
    transition:border-color var(--tx-transition);
}

.tx-manager-card:hover .tx-manager-avatar{
    border-color:var(--tx-primary);
}

.tx-manager-avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.tx-manager-name{
    margin:0 0 6px;
    font-size:19px;
    font-weight:700;
    color:var(--tx-text);
}

.tx-manager-role{
    margin:0 0 22px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.4px;
    text-transform:uppercase;
    color:var(--tx-primary);
}

.tx-manager-contact{
    width:100%;
    margin-bottom:22px;
}

.tx-manager-contact li{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    margin-bottom:10px;
    font-size:14px;
    line-height:1.6;
    color:var(--tx-text-light);
}

.tx-manager-contact li:last-child{
    margin-bottom:0;
}

.tx-manager-contact img{
    width:14px;
    height:14px;
    object-fit:contain;
    display:block;
    flex:0 0 auto;
    opacity:.75;
}

.tx-manager-contact a{
    color:var(--tx-text-light);
    transition:color var(--tx-transition);
}

.tx-manager-contact a:hover{ color:var(--tx-primary); }

.tx-manager-social{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding-top:22px;
    margin-bottom:22px;
    border-top:1px solid var(--tx-border);
    width:100%;
}

.tx-manager-social a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    background:var(--tx-primary-light);
    border-radius:50%;
    transition:background var(--tx-transition), transform var(--tx-transition);
}

.tx-manager-social a:hover{
    background:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-manager-social img{
    width:15px;
    height:15px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-manager-social a:hover img{
    filter:brightness(0) invert(1);
}

/* WhatsApp 二维码 */
.tx-manager-qr{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding-top:22px;
    border-top:1px solid var(--tx-border);
    width:100%;
}

.tx-manager-qr img{
    width:110px;
    height:110px;
    object-fit:contain;
    display:block;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:8px;
    padding:6px;
}

.tx-manager-qr span{
    font-size:12px;
    line-height:1.6;
    color:var(--tx-text-light);
}


/* ---------- 联系表单 ---------- */
.tx-contact-form-section{
    padding:90px 0;
    background:var(--tx-white);
}

.tx-contact-form-page{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px 24px;
    max-width:900px;
    margin:0 auto;
    padding:50px;
    background:#f7fbfb;
    border:1px solid var(--tx-border);
    border-radius:12px;
}


/* ==========================================================================
   27. 联系我们页响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-contact-info{ padding:70px 0; }
    .tx-contact-info-item{ padding:36px 22px; }
    .tx-contact-info-icon{ width:68px; height:68px; margin-bottom:20px; }
    .tx-contact-info-icon img{ width:30px; height:30px; }
    .tx-contact-info-title{ font-size:17px; }

    .tx-managers{ padding:70px 0; }
    .tx-manager-grid{ gap:20px; }
    .tx-manager-card{ padding:32px 22px 28px; }
    .tx-manager-avatar{ width:110px; height:110px; margin-bottom:18px; }
    .tx-manager-name{ font-size:17px; }
    .tx-manager-contact li{ font-size:13px; }

    .tx-contact-form-section{ padding:70px 0; }
    .tx-contact-form-page{ padding:40px 34px; }
}

/* --- 768px 以下：单列 + 居中 ---------- */
@media (max-width:768px){
    .tx-contact-info{ padding:50px 0 60px; }

    /* ★ 三等分变三行，居中 */
    .tx-contact-info-grid{
        grid-template-columns:1fr;
        gap:16px;
    }
    .tx-contact-info-item{
        padding:30px 22px;
        border-radius:10px;
    }
    .tx-contact-info-icon{ width:60px; height:60px; margin-bottom:16px; }
    .tx-contact-info-icon img{ width:26px; height:26px; }
    .tx-contact-info-title{ font-size:16px; margin-bottom:8px; }
    .tx-contact-info-text{ font-size:14px; }

    /* 经理卡片：单列 */
    .tx-managers{ padding:50px 0 60px; }
    .tx-manager-grid{
        grid-template-columns:1fr;
        gap:20px;
        max-width:420px;
        margin:0 auto;
    }
    .tx-manager-card{ padding:30px 24px 26px; }

    /* 表单：单列 */
    .tx-contact-form-section{ padding:50px 0 60px; }
    .tx-contact-form-page{
        grid-template-columns:1fr;
        gap:16px;
        padding:30px 22px;
        border-radius:10px;
    }
    .tx-form-submit{
        width:100%;
        justify-self:stretch;
        padding:0;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-contact-info{ padding:40px 0 50px; }
    .tx-contact-info-item{ padding:26px 18px; }
    .tx-contact-info-icon{ width:54px; height:54px; margin-bottom:14px; }
    .tx-contact-info-icon img{ width:22px; height:22px; }
    .tx-contact-info-title{ font-size:15px; }

    .tx-managers{ padding:40px 0 50px; }
    .tx-manager-card{ padding:26px 20px 22px; }
    .tx-manager-avatar{ width:96px; height:96px; margin-bottom:16px; }
    .tx-manager-name{ font-size:16px; }
    .tx-manager-role{ margin-bottom:18px; }
    .tx-manager-contact li{ font-size:12px; }
    .tx-manager-qr img{ width:96px; height:96px; }

    .tx-contact-form-section{ padding:40px 0 50px; }
    .tx-contact-form-page{ padding:24px 18px; }
}

/* ==========================================================================
   28. 表单图形验证码
   ========================================================================== */
.tx-form-captcha{
    display:flex;
    align-items:stretch;
    gap:14px;
}

/* 输入框占满剩余空间 */
.tx-captcha-input{
    flex:1 1 auto;
    min-width:0;
    height:50px;
}

/* 验证码图片 */
.tx-captcha-img{
    flex:0 0 auto;
    width:130px;
    height:50px;
    object-fit:cover;
    display:block;
    background:#eef4f4;
    border:1px solid var(--tx-border);
    border-radius:var(--tx-radius);
    cursor:pointer;
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-captcha-img:hover{
    border-color:var(--tx-primary);
    box-shadow:0 0 0 3px rgba(45,191,194,.15);
}

/* 图片下方小提示 */
.tx-form-hint{
    margin:6px 0 0;
    font-size:12px;
    line-height:1.6;
    color:var(--tx-text-light);
}

/* 覆盖 .tx-form-input 默认的宽度约束，让验证码输入框能弹性伸缩 */
.tx-contact-form-page .tx-captcha-input,
.tx-contact-form .tx-captcha-input{
    width:auto;
}


/* ==========================================================================
   29. 验证码响应式
   ========================================================================== */
@media (max-width:480px){
    .tx-form-captcha{ gap:10px; }

    .tx-captcha-img{
        width:110px;
        height:46px;
    }
    .tx-captcha-input{ height:46px; }
}

/* ==========================================================================
   30. 关于我们页 —— 发展历程（横向时间轴）
   ========================================================================== */
.tx-history{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-timeline{
    position:relative;
}


/* ---------- 顶部横向时间轴：年份节点 ---------- */
.tx-timeline-track{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:0 60px 50px;
}

/* 横线 */
.tx-timeline-track::before{
    content:"";
    position:absolute;
    top:50%;
    left:0;
    right:0;
    height:2px;
    background:var(--tx-border);
    transform:translateY(-50%);
    z-index:0;
}

/* 年份节点 */
.tx-timeline-year{
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:76px;
    height:44px;
    padding:0 18px;
    background:var(--tx-white);
    border:2px solid var(--tx-border);
    border-radius:30px;
    font-family:inherit;
    font-size:14px;
    font-weight:700;
    color:var(--tx-text-light);
    cursor:pointer;
    transition:background var(--tx-transition), color var(--tx-transition),
               border-color var(--tx-transition), transform var(--tx-transition),
               box-shadow var(--tx-transition);
}

.tx-timeline-year:hover{
    border-color:var(--tx-primary);
    color:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-timeline-year.tx-active{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    color:var(--tx-white);
    box-shadow:0 8px 18px rgba(45,191,194,.30);
}


/* ---------- 内容区 ---------- */
.tx-timeline-body{
    position:relative;
    padding:0 76px;
}

/* 左右切换按钮 */
.tx-timeline-arrow{
    position:absolute;
    top:50%;
    z-index:6;
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    padding:0;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:50%;
    cursor:pointer;
    transform:translateY(-50%);
    transition:background var(--tx-transition), border-color var(--tx-transition),
               box-shadow var(--tx-transition);
}

.tx-timeline-arrow:hover{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    box-shadow:0 10px 24px rgba(45,191,194,.35);
}

.tx-timeline-arrow img{
    width:18px;
    height:18px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-timeline-arrow:hover img{
    filter:brightness(0) invert(1);
}

.tx-timeline-prev{ left:0; }
.tx-timeline-next{ right:0; }


/* ---------- 内容滑动区 ---------- */
.tx-timeline-slides{
    position:relative;
    min-height:460px;
}

.tx-timeline-slide{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    display:grid;
    grid-template-columns:5fr 5fr;
    gap:44px;
    align-items:center;
    padding:40px 44px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    box-shadow:0 14px 36px rgba(0,0,0,.05);
    opacity:0;
    visibility:hidden;
    transform:translateY(20px);
    transition:opacity .55s ease, visibility .55s ease, transform .55s ease;
}

.tx-timeline-slide.tx-active{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    z-index:2;
}


/* ---------- 图片 ---------- */
.tx-timeline-img{
    overflow:hidden;
    border-radius:10px;
    background:#eef4f4;
}

.tx-timeline-img img{
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    transition:transform .55s ease;
}

.tx-timeline-slide:hover .tx-timeline-img img{
    transform:scale(1.05);
}


/* ---------- 文字内容 ---------- */
.tx-timeline-content{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.tx-timeline-year-label{
    display:inline-block;
    padding:5px 16px;
    margin-bottom:16px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:13px;
    font-weight:700;
    letter-spacing:.6px;
    border-radius:30px;
}

.tx-timeline-title{
    margin:0 0 14px;
    font-size:26px;
    font-weight:700;
    line-height:1.3;
    color:var(--tx-text);
}

.tx-timeline-desc{
    margin:0 0 20px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
}

.tx-timeline-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.tx-timeline-list li{
    position:relative;
    padding-left:22px;
    font-size:14px;
    line-height:1.7;
    color:var(--tx-text-light);
}

.tx-timeline-list li::before{
    content:"";
    position:absolute;
    left:0;
    top:8px;
    width:8px;
    height:8px;
    background:var(--tx-primary);
    border-radius:50%;
}


/* ==========================================================================
   31. 工厂实拍 / 证书矩阵（2 行 × 3 列）
   ========================================================================== */
.tx-factory{
    padding:90px 0;
    background:var(--tx-white);
}

.tx-certificates{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.tx-gallery-item{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:10px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-gallery-item:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}

.tx-gallery-img{
    overflow:hidden;
    aspect-ratio:4 / 3;
    background:#eef4f4;
}

.tx-gallery-img img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.tx-gallery-item:hover .tx-gallery-img img{
    transform:scale(1.07);
}

.tx-gallery-title{
    margin:0;
    padding:20px 22px;
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    color:var(--tx-text);
    text-align:center;
    transition:color var(--tx-transition);
}

.tx-gallery-item:hover .tx-gallery-title{
    color:var(--tx-primary);
}


/* ==========================================================================
   32. 关于我们页响应式
   ========================================================================== */

/* --- 1200px 以下 --- */
@media (max-width:1200px){
    .tx-timeline-track{ margin:0 40px 44px; }
    .tx-timeline-body{ padding:0 60px; }

    .tx-timeline-slide{
        gap:34px;
        padding:34px 34px;
    }
    .tx-timeline-title{ font-size:23px; }

    .tx-gallery-grid{ gap:22px; }
    .tx-gallery-title{ font-size:15px; }
}

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-history{ padding:70px 0; }
    .tx-factory,
    .tx-certificates{ padding:70px 0; }

    /* 时间轴：年份节点换行 */
    .tx-timeline-track{
        flex-wrap:wrap;
        justify-content:center;
        gap:12px;
        margin:0 0 40px;
    }
    /* 992px 以下隐藏横线，年份改为纯按钮组 */
    .tx-timeline-track::before{ display:none; }

    .tx-timeline-year{
        min-width:68px;
        height:40px;
        padding:0 14px;
        font-size:13px;
    }

    .tx-timeline-body{ padding:0 60px; }

    .tx-timeline-slides{ min-height:520px; }

    .tx-timeline-slide{
        grid-template-columns:1fr;
        gap:24px;
        padding:28px 28px;
    }
    .tx-timeline-img img{ aspect-ratio:16 / 9; }
    .tx-timeline-title{ font-size:21px; }
    .tx-timeline-desc{ font-size:14px; margin-bottom:16px; }

    .tx-gallery-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-history{ padding:50px 0 60px; }
    .tx-factory,
    .tx-certificates{ padding:50px 0 60px; }

    /* 时间轴箭头缩小 */
    .tx-timeline-body{ padding:0 0 70px; }

    .tx-timeline-arrow{
        top:auto;
        bottom:0;
        width:46px;
        height:46px;
        transform:none;
    }
    .tx-timeline-prev{ left:calc(50% - 56px); }
    .tx-timeline-next{ right:calc(50% - 56px); }

    .tx-timeline-slides{ min-height:auto; }

    .tx-timeline-slide{
        position:absolute;
        padding:22px 20px;
        border-radius:10px;
    }
    /* 移动端仍要占位，用 min-height 撑开 */
    .tx-timeline-slides{
        position:relative;
        min-height:620px;
    }

    .tx-timeline-title{ font-size:19px; }
    .tx-timeline-desc{ font-size:14px; }
    .tx-timeline-list li{ font-size:13px; }

    .tx-gallery-grid{ gap:14px; }
    .tx-gallery-title{ padding:14px 14px; font-size:14px; }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-timeline-track{ gap:8px; margin-bottom:30px; }

    .tx-timeline-year{
        min-width:60px;
        height:36px;
        padding:0 10px;
        font-size:12px;
        border-width:1.5px;
    }

    .tx-timeline-slides{ min-height:660px; }
    .tx-timeline-slide{ padding:18px 16px; }

    .tx-timeline-year-label{ font-size:12px; padding:4px 12px; margin-bottom:12px; }
    .tx-timeline-title{ font-size:17px; margin-bottom:10px; }
    .tx-timeline-desc{ font-size:13px; line-height:1.8; margin-bottom:14px; }
    .tx-timeline-list{ gap:8px; }
    .tx-timeline-list li{ font-size:12px; padding-left:18px; }
    .tx-timeline-list li::before{ width:6px; height:6px; top:7px; }

    .tx-timeline-arrow{ width:42px; height:42px; }
    .tx-timeline-prev{ left:calc(50% - 48px); }
    .tx-timeline-next{ right:calc(50% - 48px); }

    /* 工厂/证书：480px 以下也保持 2 列，但更紧凑 */
    .tx-gallery-grid{ gap:10px; }
    .tx-gallery-title{ padding:12px 10px; font-size:13px; }
}

/* ==========================================================================
   33. 404 页面
   ========================================================================== */
.tx-404-page{
    padding:90px 0 100px;
    background:#f7fbfb;
}


/* ---------- 404 主内容卡片 ---------- */
.tx-404-box{
    max-width:760px;
    margin:0 auto 70px;
    padding:60px 50px 56px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:16px;
    box-shadow:0 18px 48px rgba(0,0,0,.06);
    text-align:center;
}

.tx-404-number{
    font-size:140px;
    font-weight:700;
    line-height:1;
    letter-spacing:-6px;
    color:var(--tx-primary);
    margin-bottom:16px;
    text-shadow:0 10px 30px rgba(45,191,194,.18);
}

.tx-404-title{
    margin:0 0 18px;
    font-size:32px;
    font-weight:700;
    line-height:1.3;
    color:var(--tx-text);
}

.tx-404-desc{
    max-width:560px;
    margin:0 auto 34px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
}


/* ---------- 操作按钮 ---------- */
.tx-404-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:42px;
}

.tx-404-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:48px;
    padding:0 34px;
    font-size:15px;
    font-weight:700;
    letter-spacing:.3px;
    border-radius:var(--tx-radius);
    transition:background var(--tx-transition), color var(--tx-transition),
               transform var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-404-btn-primary{
    background:var(--tx-primary);
    color:var(--tx-white);
}

.tx-404-btn-primary:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(45,191,194,.35);
}

.tx-404-btn-outline{
    background:transparent;
    color:var(--tx-primary);
    border:1px solid var(--tx-primary);
}

.tx-404-btn-outline:hover{
    background:var(--tx-primary);
    color:var(--tx-white);
    transform:translateY(-2px);
}


/* ---------- 搜索框 ---------- */
.tx-404-search{
    display:flex;
    align-items:stretch;
    gap:0;
    max-width:540px;
    margin:0 auto;
}

.tx-404-search-input{
    flex:1 1 auto;
    min-width:0;
    height:52px;
    padding:0 20px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-right:0;
    border-radius:var(--tx-radius) 0 0 var(--tx-radius);
    font-family:inherit;
    font-size:15px;
    color:var(--tx-text);
    transition:border-color var(--tx-transition), box-shadow var(--tx-transition);
}

.tx-404-search-input::placeholder{
    color:#9aa8a8;
}

.tx-404-search-input:focus{
    outline:none;
    border-color:var(--tx-primary);
    box-shadow:0 0 0 3px rgba(45,191,194,.15);
}

.tx-404-search-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    height:52px;
    padding:0 28px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    border:1px solid var(--tx-primary);
    border-radius:0 var(--tx-radius) var(--tx-radius) 0;
    cursor:pointer;
    white-space:nowrap;
    transition:background var(--tx-transition), border-color var(--tx-transition);
}

.tx-404-search-btn:hover{
    background:var(--tx-primary-dark);
    border-color:var(--tx-primary-dark);
}

.tx-404-search-btn img{
    width:15px;
    height:15px;
    object-fit:contain;
    display:block;
    filter:brightness(0) invert(1);
}


/* ---------- 推荐链接 ---------- */
.tx-404-links-title{
    margin:0 0 34px;
    font-size:24px;
    font-weight:700;
    text-align:center;
    color:var(--tx-text);
}

.tx-404-links-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
}

.tx-404-link-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:36px 24px 32px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-404-link-card:hover{
    transform:translateY(-6px);
    border-color:transparent;
    box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.tx-404-link-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:68px;
    height:68px;
    margin-bottom:20px;
    background:var(--tx-primary-light);
    border-radius:50%;
    transition:background var(--tx-transition);
}

.tx-404-link-card:hover .tx-404-link-icon{
    background:var(--tx-primary);
}

.tx-404-link-icon img{
    width:30px;
    height:30px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-404-link-card:hover .tx-404-link-icon img{
    filter:brightness(0) invert(1);
}

.tx-404-link-title{
    margin:0 0 10px;
    font-size:17px;
    font-weight:700;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-404-link-card:hover .tx-404-link-title{
    color:var(--tx-primary);
}

.tx-404-link-desc{
    margin:0;
    font-size:13px;
    line-height:1.75;
    color:var(--tx-text-light);
}


/* ==========================================================================
   34. 404 页面响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-404-page{ padding:70px 0 80px; }

    .tx-404-box{ padding:50px 36px 46px; }
    .tx-404-number{ font-size:120px; }
    .tx-404-title{ font-size:28px; }

    .tx-404-links-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px;
    }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-404-page{ padding:50px 0 60px; }

    .tx-404-box{
        padding:40px 24px 36px;
        margin-bottom:50px;
        border-radius:12px;
    }
    .tx-404-number{
        font-size:96px;
        letter-spacing:-4px;
        margin-bottom:12px;
    }
    .tx-404-title{ font-size:24px; margin-bottom:14px; }
    .tx-404-desc{ font-size:14px; margin-bottom:26px; }

    .tx-404-actions{ gap:10px; margin-bottom:32px; }
    .tx-404-btn{ height:44px; padding:0 26px; font-size:14px; }

    /* 搜索框：移动端上下堆叠 */
    .tx-404-search{
        flex-direction:column;
        gap:10px;
        max-width:100%;
    }
    .tx-404-search-input{
        height:48px;
        border-right:1px solid var(--tx-border);
        border-radius:var(--tx-radius);
    }
    .tx-404-search-btn{
        height:48px;
        border-radius:var(--tx-radius);
        justify-content:center;
    }

    .tx-404-links-title{ font-size:20px; margin-bottom:26px; }
    .tx-404-links-grid{ gap:14px; }
    .tx-404-link-card{ padding:28px 18px 24px; border-radius:10px; }
    .tx-404-link-icon{ width:58px; height:58px; margin-bottom:16px; }
    .tx-404-link-icon img{ width:24px; height:24px; }
    .tx-404-link-title{ font-size:15px; }
    .tx-404-link-desc{ font-size:12px; }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-404-page{ padding:40px 0 50px; }

    .tx-404-box{ padding:32px 18px 30px; }
    .tx-404-number{
        font-size:76px;
        letter-spacing:-3px;
    }
    .tx-404-title{ font-size:20px; }
    .tx-404-desc{ font-size:13px; line-height:1.8; }

    .tx-404-btn{ height:42px; padding:0 22px; font-size:13px; }

    .tx-404-search-input,
    .tx-404-search-btn{ height:44px; }

    .tx-404-links-title{ font-size:18px; }
    .tx-404-link-card{ padding:24px 14px 22px; }
    .tx-404-link-icon{ width:52px; height:52px; margin-bottom:14px; }
    .tx-404-link-icon img{ width:22px; height:22px; }
    .tx-404-link-title{ font-size:14px; }
    .tx-404-link-desc{ font-size:12px; line-height:1.7; }
}

/* ==========================================================================
   35. FAQ 独立页
   ========================================================================== */
.tx-faq-page{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-faq-page-intro{
    max-width:820px;
    margin:-30px auto 50px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
    text-align:center;
}


/* ---------- 分类锚点导航 ---------- */
.tx-faq-nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:60px;
}

.tx-faq-nav-item{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 22px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:30px;
    font-size:14px;
    font-weight:700;
    color:var(--tx-text-light);
    transition:all var(--tx-transition);
}

.tx-faq-nav-item:hover{
    color:var(--tx-primary);
    border-color:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-faq-nav-item.tx-active{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    color:var(--tx-white);
    box-shadow:0 8px 20px rgba(45,191,194,.30);
}


/* ---------- 分类分组 ---------- */
.tx-faq-group{
    margin-bottom:60px;
    scroll-margin-top:120px;         /* 锚点跳转时避开吸顶导航 */
}

.tx-faq-group:last-child{
    margin-bottom:0;
}

.tx-faq-group-title{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 26px;
    font-size:24px;
    font-weight:700;
    line-height:1.3;
    color:var(--tx-text);
}

.tx-faq-group-bar{
    display:inline-block;
    width:6px;
    height:26px;
    background:var(--tx-primary);
    border-radius:3px;
    flex:0 0 auto;
}

/* 分组内复用之前定义的 .tx-faq-list / .tx-faq-item / .tx-faq-question / .tx-faq-answer / .tx-faq-icon */


/* ==========================================================================
   36. FAQ 页响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-faq-page{ padding:70px 0; }
    .tx-faq-page-intro{ margin-bottom:40px; }
    .tx-faq-nav{ margin-bottom:46px; }

    .tx-faq-nav-item{
        padding:10px 18px;
        font-size:13px;
    }

    .tx-faq-group{ margin-bottom:46px; }
    .tx-faq-group-title{ font-size:21px; margin-bottom:22px; }
    .tx-faq-group-bar{ width:5px; height:22px; }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-faq-page{ padding:50px 0 60px; }
    .tx-faq-page-intro{ font-size:14px; margin-bottom:34px; }

    /* 分类导航：横向可滚动 */
    .tx-faq-nav{
        flex-wrap:nowrap;
        justify-content:flex-start;
        gap:8px;
        margin-bottom:38px;
        overflow-x:auto;
        padding-bottom:6px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .tx-faq-nav::-webkit-scrollbar{ display:none; }

    .tx-faq-nav-item{
        flex:0 0 auto;
        padding:9px 16px;
        font-size:12px;
    }

    .tx-faq-group{ margin-bottom:38px; }
    .tx-faq-group-title{ font-size:19px; margin-bottom:18px; gap:12px; }
    .tx-faq-group-bar{ width:4px; height:20px; }

    /* 复用 FAQ 折叠条目的移动端字号 */
    .tx-faq-question{
        padding:15px 18px;
        font-size:15px;
    }
    .tx-faq-answer{
        padding:16px 18px 20px;
        font-size:14px;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-faq-page{ padding:40px 0 50px; }
    .tx-faq-page-intro{ font-size:13px; line-height:1.8; }

    .tx-faq-nav{ margin-bottom:30px; }
    .tx-faq-nav-item{ padding:8px 14px; font-size:11px; }

    .tx-faq-group{ margin-bottom:30px; }
    .tx-faq-group-title{ font-size:17px; margin-bottom:16px; }
    .tx-faq-group-bar{ width:3px; height:18px; }

    .tx-faq-question{ padding:14px 16px; font-size:14px; }
    .tx-faq-answer{ padding:14px 16px 18px; font-size:13px; }
}
/* ==========================================================================
   37. 隐私政策 / 服务条款页
   ========================================================================== */
.tx-legal-page{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-legal-updated{
    margin:-30px 0 44px;
    font-size:13px;
    color:var(--tx-text-light);
    text-align:center;
    letter-spacing:.3px;
}


/* ---------- Tab 切换导航 ---------- */
.tx-legal-tabs{
    display:flex;
    justify-content:center;
    gap:0;
    max-width:600px;
    margin:0 auto 46px;
    padding:6px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:50px;
}

.tx-legal-tab{
    flex:1 1 50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:46px;
    padding:0 20px;
    background:transparent;
    border:0;
    border-radius:40px;
    font-family:inherit;
    font-size:15px;
    font-weight:700;
    color:var(--tx-text-light);
    cursor:pointer;
    transition:background var(--tx-transition), color var(--tx-transition),
               box-shadow var(--tx-transition);
}

.tx-legal-tab:hover{ color:var(--tx-primary); }

.tx-legal-tab.tx-active{
    background:var(--tx-primary);
    color:var(--tx-white);
    box-shadow:0 8px 20px rgba(45,191,194,.30);
}


/* ---------- 内容面板 ---------- */
.tx-legal-content{
    max-width:900px;
    margin:0 auto;
    padding:56px 56px 60px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:12px;
    box-shadow:0 14px 36px rgba(0,0,0,.05);
}

.tx-legal-panel{
    display:none;
}

.tx-legal-panel.tx-active{
    display:block;
    animation:txLegalFadeIn .35s ease;
}

@keyframes txLegalFadeIn{
    from{ opacity:0; transform:translateY(10px); }
    to{ opacity:1; transform:translateY(0); }
}


/* ---------- 每个小节 ---------- */
.tx-legal-section + .tx-legal-section{
    margin-top:34px;
}

.tx-legal-title{
    position:relative;
    margin:0 0 14px;
    padding-left:16px;
    font-size:19px;
    font-weight:700;
    line-height:1.4;
    color:var(--tx-text);
}

.tx-legal-title::before{
    content:"";
    position:absolute;
    left:0;
    top:5px;
    width:4px;
    height:20px;
    background:var(--tx-primary);
    border-radius:2px;
}

.tx-legal-panel p{
    margin:0 0 14px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
}

.tx-legal-panel p:last-child{
    margin-bottom:0;
}

.tx-legal-panel a{
    color:var(--tx-primary);
    transition:color var(--tx-transition);
}

.tx-legal-panel a:hover{
    color:var(--tx-primary-dark);
    text-decoration:underline;
}


/* ---------- 列表 ---------- */
.tx-legal-list{
    margin:0 0 14px;
    padding-left:0;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.tx-legal-list li{
    position:relative;
    padding-left:24px;
    font-size:15px;
    line-height:1.85;
    color:var(--tx-text-light);
}

.tx-legal-list li::before{
    content:"";
    position:absolute;
    left:6px;
    top:11px;
    width:6px;
    height:6px;
    background:var(--tx-primary);
    border-radius:50%;
}

.tx-legal-list strong{
    color:var(--tx-text);
    font-weight:700;
}


/* ---------- 联系方式列表 ---------- */
.tx-legal-contact{
    margin:16px 0 0;
    padding:20px 24px;
    background:var(--tx-primary-light);
    border-radius:8px;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.tx-legal-contact li{
    font-size:14px;
    line-height:1.7;
    color:var(--tx-text-light);
}

.tx-legal-contact strong{
    display:inline-block;
    min-width:78px;
    color:var(--tx-text);
    font-weight:700;
}

.tx-legal-contact a{
    color:var(--tx-primary);
}

.tx-legal-contact a:hover{
    text-decoration:underline;
}


/* ==========================================================================
   38. 隐私政策 / 服务条款页响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-legal-page{ padding:70px 0; }
    .tx-legal-updated{ margin-bottom:34px; }
    .tx-legal-tabs{ margin-bottom:36px; }

    .tx-legal-content{
        padding:44px 40px 48px;
    }

    .tx-legal-title{ font-size:18px; }
    .tx-legal-panel p,
    .tx-legal-list li{ font-size:14px; }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-legal-page{ padding:50px 0 60px; }

    .tx-legal-updated{ font-size:12px; margin-bottom:26px; }

    .tx-legal-tabs{
        max-width:100%;
        margin-bottom:30px;
        padding:5px;
    }
    .tx-legal-tab{
        height:42px;
        padding:0 14px;
        font-size:14px;
    }

    .tx-legal-content{
        padding:32px 24px 36px;
        border-radius:10px;
    }

    .tx-legal-section + .tx-legal-section{ margin-top:26px; }

    .tx-legal-title{
        font-size:16px;
        padding-left:14px;
        margin-bottom:12px;
    }
    .tx-legal-title::before{
        width:3px;
        height:18px;
        top:4px;
    }

    .tx-legal-panel p,
    .tx-legal-list li{ font-size:14px; line-height:1.8; }

    .tx-legal-list li{ padding-left:20px; }
    .tx-legal-list li::before{
        left:5px;
        top:10px;
        width:5px;
        height:5px;
    }

    .tx-legal-contact{
        padding:16px 18px;
    }
    .tx-legal-contact li{ font-size:13px; }
    .tx-legal-contact strong{ min-width:70px; }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-legal-page{ padding:40px 0 50px; }

    .tx-legal-tabs{
        flex-direction:column;
        border-radius:12px;
        gap:4px;
    }
    .tx-legal-tab{
        height:40px;
        border-radius:8px;
        font-size:13px;
    }

    .tx-legal-content{ padding:24px 18px 28px; }

    .tx-legal-section + .tx-legal-section{ margin-top:22px; }
    .tx-legal-title{ font-size:15px; margin-bottom:10px; }
    .tx-legal-panel p,
    .tx-legal-list li{ font-size:13px; line-height:1.8; }

    .tx-legal-contact{ padding:14px 16px; }
    .tx-legal-contact li{ font-size:12px; }
    .tx-legal-contact strong{ display:block; margin-bottom:2px; }
}

/* ==========================================================================
   39. 资源下载页
   ========================================================================== */
.tx-download-page{
    padding:90px 0;
    background:#f7fbfb;
}

.tx-download-intro{
    max-width:820px;
    margin:-30px auto 40px;
    font-size:15px;
    line-height:1.9;
    color:var(--tx-text-light);
    text-align:center;
}


/* ---------- 分类筛选 ---------- */
.tx-download-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:44px;
}

.tx-download-filter-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 22px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:30px;
    font-family:inherit;
    font-size:14px;
    font-weight:700;
    color:var(--tx-text-light);
    cursor:pointer;
    transition:all var(--tx-transition);
}

.tx-download-filter-btn:hover{
    color:var(--tx-primary);
    border-color:var(--tx-primary);
    transform:translateY(-2px);
}

.tx-download-filter-btn.tx-active{
    background:var(--tx-primary);
    border-color:var(--tx-primary);
    color:var(--tx-white);
    box-shadow:0 8px 20px rgba(45,191,194,.30);
}


/* ---------- 资源列表 ---------- */
.tx-download-list{
    display:flex;
    flex-direction:column;
    gap:14px;
}


/* ---------- 单个资源条目 ---------- */
.tx-download-item{
    display:flex;
    align-items:center;
    gap:22px;
    padding:22px 28px;
    background:var(--tx-white);
    border:1px solid var(--tx-border);
    border-radius:10px;
    transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.tx-download-item:hover{
    transform:translateY(-3px);
    border-color:var(--tx-primary);
    box-shadow:0 14px 32px rgba(45,191,194,.15);
}

.tx-download-item.tx-hidden{
    display:none;
}


/* ---------- PDF 图标 ---------- */
.tx-download-icon{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:56px;
    height:56px;
    background:var(--tx-primary-light);
    border-radius:10px;
    transition:background var(--tx-transition);
}

.tx-download-item:hover .tx-download-icon{
    background:var(--tx-primary);
}

.tx-download-icon img{
    width:28px;
    height:28px;
    object-fit:contain;
    display:block;
    transition:filter var(--tx-transition);
}

.tx-download-item:hover .tx-download-icon img{
    filter:brightness(0) invert(1);
}


/* ---------- 文档信息 ---------- */
.tx-download-info{
    flex:1 1 auto;
    min-width:0;
}

.tx-download-title{
    margin:0 0 8px;
    font-size:16px;
    font-weight:700;
    line-height:1.5;
    color:var(--tx-text);
    transition:color var(--tx-transition);
}

.tx-download-title a{ color:inherit; }

.tx-download-item:hover .tx-download-title{ color:var(--tx-primary); }

.tx-download-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    font-size:12px;
    color:var(--tx-text-light);
}

.tx-download-tag{
    display:inline-flex;
    align-items:center;
    padding:3px 10px;
    background:var(--tx-primary-light);
    color:var(--tx-primary);
    font-size:11px;
    font-weight:700;
    letter-spacing:.4px;
    text-transform:uppercase;
    border-radius:20px;
}

.tx-download-size{
    color:var(--tx-text-light);
}


/* ---------- 下载按钮 ---------- */
.tx-download-btn{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    height:42px;
    padding:0 24px;
    background:var(--tx-primary);
    color:var(--tx-white);
    font-size:14px;
    font-weight:700;
    border-radius:var(--tx-radius);
    white-space:nowrap;
    transition:background var(--tx-transition), transform var(--tx-transition),
               box-shadow var(--tx-transition);
}

.tx-download-btn:hover{
    background:var(--tx-primary-dark);
    transform:translateY(-2px);
    box-shadow:0 10px 22px rgba(45,191,194,.35);
}

.tx-download-btn img{
    width:15px;
    height:15px;
    object-fit:contain;
    display:block;
    filter:brightness(0) invert(1);
}


/* ---------- 无结果提示 ---------- */
.tx-download-empty{
    display:none;
    padding:40px 20px;
    text-align:center;
    font-size:15px;
    color:var(--tx-text-light);
}

.tx-download-empty.tx-show{
    display:block;
}


/* ---------- 定制需求引导卡片 ---------- */
.tx-download-note{
    display:flex;
    align-items:center;
    gap:20px;
    margin-top:50px;
    padding:26px 30px;
    background:var(--tx-white);
    border:1px dashed var(--tx-primary);
    border-radius:10px;
}

.tx-download-note-icon{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    background:var(--tx-primary-light);
    border-radius:50%;
}

.tx-download-note-icon img{
    width:22px;
    height:22px;
    object-fit:contain;
    display:block;
}

.tx-download-note-text{
    flex:1 1 auto;
    min-width:0;
    font-size:14px;
    line-height:1.8;
    color:var(--tx-text-light);
}

.tx-download-note-text strong{
    display:block;
    margin-bottom:4px;
    font-size:15px;
    color:var(--tx-text);
}

.tx-download-note-btn{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:42px;
    padding:0 24px;
    background:var(--tx-white);
    color:var(--tx-primary);
    font-size:14px;
    font-weight:700;
    border:1px solid var(--tx-primary);
    border-radius:var(--tx-radius);
    white-space:nowrap;
    transition:background var(--tx-transition), color var(--tx-transition);
}

.tx-download-note-btn:hover{
    background:var(--tx-primary);
    color:var(--tx-white);
}


/* ==========================================================================
   40. 资源下载页响应式
   ========================================================================== */

/* --- 992px 以下 --- */
@media (max-width:992px){
    .tx-download-page{ padding:70px 0; }
    .tx-download-intro{ margin-bottom:34px; }
    .tx-download-filter{ margin-bottom:36px; }

    .tx-download-item{ padding:20px 22px; gap:18px; }
    .tx-download-icon{ width:50px; height:50px; }
    .tx-download-icon img{ width:24px; height:24px; }
    .tx-download-title{ font-size:15px; }
    .tx-download-btn{ height:40px; padding:0 20px; font-size:13px; }
}

/* --- 768px 以下 --- */
@media (max-width:768px){
    .tx-download-page{ padding:50px 0 60px; }
    .tx-download-intro{ font-size:14px; margin-bottom:28px; }

    /* 筛选按钮：横向可滚动 */
    .tx-download-filter{
        flex-wrap:nowrap;
        justify-content:flex-start;
        gap:8px;
        margin-bottom:30px;
        overflow-x:auto;
        padding-bottom:6px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .tx-download-filter::-webkit-scrollbar{ display:none; }

    .tx-download-filter-btn{
        flex:0 0 auto;
        padding:9px 18px;
        font-size:13px;
    }

    .tx-download-list{ gap:12px; }

    /* 条目改为上下布局 */
    .tx-download-item{
        flex-wrap:wrap;
        padding:20px 18px;
        gap:16px;
    }

    .tx-download-info{ flex:1 1 calc(100% - 70px); }

    /* 按钮撑满整行 */
    .tx-download-btn{
        flex:1 1 100%;
        height:44px;
        margin-top:4px;
    }

    .tx-download-note{
        flex-direction:column;
        align-items:flex-start;
        gap:16px;
        padding:24px 22px;
        margin-top:36px;
    }
    .tx-download-note-btn{
        width:100%;
        height:44px;
    }
}

/* --- 480px 以下 --- */
@media (max-width:480px){
    .tx-download-page{ padding:40px 0 50px; }
    .tx-download-intro{ font-size:13px; line-height:1.8; }

    .tx-download-filter{ margin-bottom:24px; }
    .tx-download-filter-btn{ padding:8px 14px; font-size:12px; }

    .tx-download-item{ padding:16px 14px; gap:12px; }
    .tx-download-icon{ width:44px; height:44px; }
    .tx-download-icon img{ width:20px; height:20px; }

    .tx-download-title{ font-size:14px; margin-bottom:6px; }
    .tx-download-meta{ font-size:11px; gap:8px; }
    .tx-download-tag{ padding:2px 8px; font-size:10px; }

    .tx-download-btn{ height:42px; font-size:13px; }

    .tx-download-note{ padding:20px 16px; }
    .tx-download-note-icon{ width:44px; height:44px; }
    .tx-download-note-icon img{ width:18px; height:18px; }
    .tx-download-note-text{ font-size:13px; }
    .tx-download-note-text strong{ font-size:14px; }
    .tx-download-note-btn{ height:42px; font-size:13px; }
}