/* ==========================================================================
   灰白云IDC 官网首页 · 腾讯云风格全新改版（v2 重大改版）
   --------------------------------------------------------------------------
   仅用于首页（body.page-home）的全新组件样式：
   新首屏 / 指标带 / 产品区 / 解决方案 / 优势 / 全球网络 / 新闻支持 / 伙伴 / CTA
   ========================================================================== */

/* ===== 首页顶部活动条（导航上方） ===== */
@media (min-width: 769px) {
    body.page-home {
        padding-top: 100px;
    }
}

.tx-promo-bar {
    position: relative;
    height: 36px;
    background: linear-gradient(90deg, #0A1633 0%, #0E2B5C 55%, #0A1633 100%);
    overflow: hidden;
}

.tx-promo-inner {
    height: 36px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 12.5px;
    color: #fff;
}

.tx-promo-tag {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 4px;
    background: linear-gradient(135deg, #FF8A00, #FF4D00);
    font-size: 11px;
    font-weight: 600;
    color: #fff;
}

.tx-promo-inner p {
    margin: 0;
    color: rgba(255, 255, 255, .7);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-promo-inner p b {
    color: #7CC0FF;
    font-weight: 600;
}

.tx-promo-links {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 0 0 auto;
}

.tx-promo-links a {
    color: rgba(255, 255, 255, .82);
    font-size: 12.5px;
    transition: color .2s ease;
}

.tx-promo-links a:hover {
    color: #7CC0FF;
}

/* ===== 通用：按钮 ===== */
.tx-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    padding: 0 22px;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    color: #1D2129;
    cursor: pointer;
    transition: all .22s ease;
    white-space: nowrap;
    text-decoration: none;
}

.tx-btn-lg {
    height: 48px;
    padding: 0 26px;
    font-size: 15px;
}

.tx-btn-primary {
    background: #006EFF;
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 110, 255, .24);
}

.tx-btn-primary:hover {
    background: #0052D9;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0, 82, 217, .3);
}

.tx-btn-ghost {
    background: #fff;
    color: #1D2129;
    border-color: #E5E6EB;
}

.tx-btn-ghost:hover {
    color: #006EFF;
    border-color: #006EFF;
    transform: translateY(-1px);
}

.tx-btn-white {
    background: #fff;
    color: #006EFF;
    box-shadow: 0 8px 20px rgba(0, 30, 80, .12);
}

.tx-btn-white:hover {
    color: #0052D9;
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(0, 30, 80, .2);
}

.tx-btn-outline {
    background: rgba(255, 255, 255, .1);
    color: #fff;
    border-color: rgba(255, 255, 255, .35);
}

.tx-btn-outline:hover {
    background: rgba(255, 255, 255, .2);
    color: #fff;
    transform: translateY(-1px);
}

.tx-btn-block {
    display: flex;
    width: 100%;
}

.tx-btn-arrow {
    display: inline-block;
    transition: transform .2s ease;
}

.tx-btn:hover .tx-btn-arrow {
    transform: translateX(3px);
}

.tx-check {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    border-radius: 50%;
    background-color: #E8F3FF;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' fill='none' stroke='%23006EFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 9px 8px;
}

/* ===== 通用：区块标题 ===== */
.tx-sec-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 46px;
}

.tx-sec-head.center {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0;
}

.tx-sec-head.center .tx-sec-desc {
    max-width: 720px;
}

.tx-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #006EFF;
}

.tx-eyebrow::before {
    content: "";
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: #006EFF;
}

.tx-sec-head.center .tx-eyebrow::before {
    display: none;
}

.tx-sec-title {
    margin-top: 12px;
    font-size: 40px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: -.5px;
    color: #0B1A33;
}

.tx-sec-desc {
    margin-top: 14px;
    max-width: 680px;
    font-size: 15px;
    line-height: 1.8;
    color: #4E5969;
}

.tx-sec-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding-bottom: 6px;
    font-size: 14px;
    font-weight: 500;
    color: #006EFF;
    white-space: nowrap;
}

.tx-sec-link span {
    transition: transform .2s ease;
}

.tx-sec-link:hover {
    color: #0052D9;
}

.tx-sec-link:hover span {
    transform: translateX(3px);
}

/* 深色区块标题 */
.tx-sec-head.light .tx-sec-title {
    color: #fff;
}

.tx-sec-head.light .tx-sec-desc {
    color: rgba(255, 255, 255, .66);
}

.tx-sec-head.light .tx-eyebrow {
    color: #6CB2FF;
}

.tx-sec-head.light .tx-eyebrow::before {
    background: #6CB2FF;
}

/* ==========================================================================
   1. 全新首屏 Hero
   ========================================================================== */
.tx-hero {
    position: relative;
    padding: 66px 0 0;
    background: linear-gradient(180deg, #F2F8FF 0%, #FFFFFF 100%);
    overflow: hidden;
}

.tx-hero-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.tx-hero-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 110, 255, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 110, 255, .045) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 78%);
    mask-image: linear-gradient(180deg, #000 0%, transparent 78%);
}

.tx-hero-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: .8;
}

.tx-hero-glow-1 {
    width: 520px;
    height: 520px;
    top: -180px;
    right: 6%;
    background: radial-gradient(circle, rgba(0, 110, 255, .22), transparent 68%);
}

.tx-hero-glow-2 {
    width: 420px;
    height: 420px;
    bottom: -160px;
    left: -80px;
    background: radial-gradient(circle, rgba(0, 163, 255, .16), transparent 70%);
}

.tx-hero-glow-3 {
    width: 260px;
    height: 260px;
    top: 40px;
    left: 38%;
    background: radial-gradient(circle, rgba(108, 178, 255, .16), transparent 70%);
}

.tx-hero-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 45% 55%;
    align-items: center;
    gap: 30px;
    padding-bottom: 76px;
}

.tx-hero-left {
    position: relative;
    z-index: 2;
}

.tx-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #D6E6FF;
    background: rgba(255, 255, 255, .8);
    font-size: 13px;
    font-weight: 500;
    color: #006EFF;
    backdrop-filter: blur(8px);
}

.tx-hero-eyebrow-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #00C853;
    box-shadow: 0 0 0 4px rgba(0, 200, 83, .14);
}

.tx-hero-texts {
    position: relative;
    margin-top: 26px;
    min-height: 236px;
}

.tx-hero-text {
    display: none;
}

.tx-hero-text.active {
    display: block;
    animation: txFadeUp .55s ease both;
}

.tx-hero-title {
    font-size: 58px;
    line-height: 1.16;
    font-weight: 700;
    letter-spacing: -1px;
    color: #0B1A33;
}

.tx-hero-desc {
    margin-top: 20px;
    max-width: 500px;
    font-size: 17px;
    line-height: 1.85;
    color: #4E5969;
}

.tx-hero-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 34px;
}

.tx-hero-trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px dashed #DCE7F5;
    font-size: 13px;
    color: #4E5969;
}

.tx-hero-trust span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

/* 右侧视觉 */
.tx-hero-right {
    position: relative;
    padding-left: 20px;
}

.tx-hero-media {
    position: relative;
    height: 440px;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .8);
    background: #EAF3FF;
    box-shadow:
        0 40px 80px rgba(0, 82, 217, .16),
        0 2px 0 rgba(255, 255, 255, .9) inset;
    isolation: isolate;
}

.tx-hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .7s ease;
    z-index: 1;
}

.tx-hero-slide.active {
    opacity: 1;
    z-index: 2;
}

.tx-hero-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 82% center;
    display: block;
}

.tx-hero-media-shine {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background:
        linear-gradient(115deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, 0) 32%),
        linear-gradient(0deg, rgba(7, 18, 40, .28) 0%, transparent 36%);
}

.tx-hero-chip {
    position: absolute;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .7);
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 12px 30px rgba(16, 49, 102, .14);
    backdrop-filter: blur(12px);
    animation: txFloat 6s ease-in-out infinite;
}

.tx-hero-chip b {
    font-size: 19px;
    font-weight: 700;
    color: #006EFF;
    line-height: 1.2;
}

.tx-hero-chip span {
    font-size: 11px;
    color: #4E5969;
}

.tx-hero-chip-1 {
    top: 22px;
    left: 22px;
}

.tx-hero-chip-2 {
    top: 22px;
    right: 22px;
    animation-delay: -2s;
}

.tx-hero-chip-3 {
    left: 22px;
    bottom: 58px;
    flex-direction: row;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    color: #1D2129;
    animation-delay: -4s;
}

.tx-live-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #00C853;
    box-shadow: 0 0 0 4px rgba(0, 200, 83, .16);
    animation: txPulse 2s ease-in-out infinite;
}

.tx-hero-dots {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(11, 26, 51, .28);
    backdrop-filter: blur(8px);
}

.tx-hero-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    cursor: pointer;
    transition: all .25s ease;
}

.tx-hero-dots button.active {
    width: 22px;
    background: #fff;
}

.tx-hero-promo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding: 12px 18px;
    border-radius: 14px;
    border: 1px solid #E5E6EB;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16, 49, 102, .07);
}

.tx-hero-promo-icon {
    font-size: 20px;
    line-height: 1;
}

.tx-hero-promo-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tx-hero-promo-text b {
    font-size: 14px;
    font-weight: 600;
    color: #1D2129;
}

.tx-hero-promo-text em {
    font-style: normal;
    font-size: 12px;
    color: #86909C;
}

.tx-hero-promo > a {
    margin-left: auto;
    font-size: 13px;
    font-weight: 500;
    color: #006EFF;
    white-space: nowrap;
}

.tx-hero-promo > a:hover {
    color: #0052D9;
}

/* ==========================================================================
   2. 能力快捷条（原 banner 下方 4 个入口）
   ========================================================================== */
.tx-cap {
    position: relative;
    z-index: 5;
    margin-top: -46px;
    padding-bottom: 0;
}

.tx-cap-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border: 1px solid #E9EDF3;
    border-radius: 18px;
    box-shadow: 0 22px 50px rgba(16, 49, 102, .09);
    overflow: hidden;
}

.tx-cap-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 24px;
    position: relative;
    transition: background .2s ease;
}

.tx-cap-item::after {
    content: "";
    position: absolute;
    right: 0;
    top: 24%;
    bottom: 24%;
    width: 1px;
    background: #F0F3F7;
}

.tx-cap-item:last-child::after {
    display: none;
}

.tx-cap-item:hover {
    background: #F7FAFF;
}

.tx-cap-icon {
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, #E8F3FF, #D3E8FF);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #006EFF;
    font-size: 18px;
}

.tx-cap-icon svg {
    width: 27px;
    height: 27px;
    color: #006EFF;
}

.tx-cap-icon i {
    display: block;
    width: 34px;
    height: 34px;
    background-position: 0 0;
    background-repeat: no-repeat;
    background-size: 34px auto;
    transition: transform .25s ease;
}

.tx-cap-item:hover .tx-cap-icon i {
    transform: scale(1.08);
}

.tx-cap-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.tx-cap-text b {
    font-size: 15px;
    font-weight: 600;
    color: #1D2129;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-cap-text em {
    font-style: normal;
    font-size: 12.5px;
    color: #86909C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ==========================================================================
   3. 数据指标带
   ========================================================================== */
.tx-stats {
    position: relative;
    margin-top: 56px;
    padding: 46px 0;
    background: linear-gradient(120deg, #0A1633 0%, #0E2450 55%, #0A1B3C 100%);
    overflow: hidden;
}

.tx-stats-deco {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(600px 240px at 12% 0%, rgba(0, 110, 255, .3), transparent 70%),
        radial-gradient(500px 240px at 88% 100%, rgba(0, 163, 255, .22), transparent 70%);
}

.tx-stats-row {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.tx-stat {
    text-align: center;
    padding: 6px 20px;
    position: relative;
}

.tx-stat::after {
    content: "";
    position: absolute;
    right: 0;
    top: 20%;
    bottom: 20%;
    width: 1px;
    background: rgba(255, 255, 255, .12);
}

.tx-stat:last-child::after {
    display: none;
}

.tx-stat b {
    display: block;
    font-size: 38px;
    line-height: 1.15;
    font-weight: 700;
    color: #fff;
    letter-spacing: -1px;
}

.tx-stat b span {
    font-size: 22px;
    font-weight: 600;
    color: #6CB2FF;
    margin-left: 2px;
}

.tx-stat p {
    margin-top: 8px;
    font-size: 13px;
    color: rgba(255, 255, 255, .58);
}

/* ==========================================================================
   4. 产品区
   ========================================================================== */
.tx-products {
    padding: 96px 0 90px;
    background: #fff;
}

.tx-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 30px;
}

.tx-tab {
    height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #E5E6EB;
    background: #fff;
    font-size: 13px;
    color: #4E5969;
    cursor: pointer;
    transition: all .2s ease;
    white-space: nowrap;
}

.tx-tab:hover {
    color: #006EFF;
    border-color: #006EFF;
}

.tx-tab.active {
    color: #fff;
    background: #006EFF;
    border-color: #006EFF;
    box-shadow: 0 8px 18px rgba(0, 110, 255, .22);
}

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

.tx-prod-panel.active {
    display: block;
    animation: txFadeUp .45s ease both;
}

.tx-prod-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.tx-prod-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.tx-prod-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 262px;
    padding: 26px 24px 20px;
    border-radius: 16px;
    border: 1px solid #E5E6EB;
    background: #fff;
    transition: all .28s ease;
    overflow: hidden;
}

.tx-prod-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #006EFF, #00A3FF);
    opacity: 0;
    transition: opacity .28s ease;
}

.tx-prod-card:hover {
    transform: translateY(-6px);
    border-color: rgba(0, 110, 255, .45);
    box-shadow: 0 22px 44px rgba(0, 82, 217, .13);
}

.tx-prod-card:hover::before {
    opacity: 1;
}

.tx-prod-hot {
    position: absolute;
    top: 18px;
    right: 18px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #FFF1EC;
    color: #FF5A2C;
    font-size: 11px;
    font-weight: 500;
}

.tx-prod-top {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 74px;
}

.tx-prod-icon {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: linear-gradient(135deg, #E8F3FF, #D3E8FF);
    color: #006EFF;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tx-prod-card:nth-child(4n+2) .tx-prod-icon {
    background: linear-gradient(135deg, #E6FBFF, #C9F1FF);
    color: #00A6C2;
}

.tx-prod-card:nth-child(4n+3) .tx-prod-icon {
    background: linear-gradient(135deg, #F1EDFF, #E0D8FF);
    color: #6C4DFF;
}

.tx-prod-card:nth-child(4n+4) .tx-prod-icon {
    background: linear-gradient(135deg, #EAFBF1, #D2F5E1);
    color: #00A35C;
}

.tx-prod-icon svg {
    width: 25px;
    height: 25px;
}

.tx-prod-title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.tx-prod-title h3 {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.4;
    color: #1D2129;
}

.tx-prod-title em {
    font-style: normal;
    font-size: 11px;
    font-weight: 500;
    color: #FF5A2C;
    background: #FFF1EC;
    padding: 2px 7px;
    border-radius: 5px;
    line-height: 1.5;
}

.tx-prod-main > p {
    margin-top: 0;
    font-size: 13px;
    line-height: 1.75;
    color: #86909C;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 45px;
}

.tx-prod-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.tx-prod-tags span {
    font-size: 12px;
    line-height: 20px;
    padding: 0 8px;
    border-radius: 5px;
    background: #F2F3F5;
    color: #4E5969;
}

.tx-prod-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px dashed #EEF1F5;
}

.tx-prod-more {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 500;
    color: #006EFF;
}

.tx-prod-more i {
    font-style: normal;
    transition: transform .2s ease;
}

.tx-prod-card:hover .tx-prod-more i {
    transform: translateX(3px);
}

.tx-prod-btn {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 14px;
    border-radius: 8px;
    background: #E8F3FF;
    color: #006EFF;
    font-size: 12.5px;
    font-weight: 500;
}

.tx-prod-card:has(.tx-prod-btn) .tx-prod-more {
    display: none;
}

.tx-prod-card:hover .tx-prod-btn {
    background: #006EFF;
    color: #fff;
}

/* 产品促销横幅 */
.tx-prod-banner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 34px;
    padding: 30px 38px;
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(115deg, #0052D9 0%, #006EFF 52%, #00A3FF 100%);
    box-shadow: 0 20px 46px rgba(0, 82, 217, .22);
}

.tx-prod-banner::before,
.tx-prod-banner::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .18);
    pointer-events: none;
}

.tx-prod-banner::before {
    width: 260px;
    height: 260px;
    right: 12%;
    top: -120px;
}

.tx-prod-banner::after {
    width: 180px;
    height: 180px;
    right: 6%;
    bottom: -110px;
}

.tx-prod-banner-text {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tx-prod-banner-text b {
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    letter-spacing: .3px;
}

.tx-prod-banner-text span {
    font-size: 14px;
    color: rgba(255, 255, 255, .8);
}

.tx-prod-banner-actions {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 12px;
    flex: 0 0 auto;
}

/* ==========================================================================
   5. 解决方案
   ========================================================================== */
.tx-solutions {
    padding: 96px 0;
    background: #F7F8FA;
}

.tx-sol-wrap {
    display: grid;
    grid-template-columns: 336px 1fr;
    gap: 26px;
    align-items: stretch;
}

.tx-sol-tabs {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid #E9EDF3;
    background: #fff;
    box-shadow: 0 12px 30px rgba(16, 49, 102, .05);
}

.tx-sol-tab {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 2px 10px;
    padding: 15px 18px 15px 22px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .2s ease;
}

.tx-sol-tab-line {
    position: absolute;
    left: 0;
    top: 18px;
    bottom: 18px;
    width: 3px;
    border-radius: 3px;
    background: transparent;
    transition: background .2s ease;
}

.tx-sol-tab-name {
    grid-column: 1;
    font-size: 15px;
    font-weight: 600;
    color: #1D2129;
    transition: color .2s ease;
}

.tx-sol-tab-desc {
    grid-column: 1;
    font-size: 12px;
    color: #86909C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-sol-tab-arrow {
    grid-column: 2;
    grid-row: 1 / span 2;
    font-size: 16px;
    color: #C9CDD4;
    opacity: 0;
    transform: translateX(-4px);
    transition: all .2s ease;
}

.tx-sol-tab:hover {
    background: #F7FAFF;
}

.tx-sol-tab.active {
    background: #F0F7FF;
}

.tx-sol-tab.active .tx-sol-tab-line {
    background: #006EFF;
}

.tx-sol-tab.active .tx-sol-tab-name {
    color: #006EFF;
}

.tx-sol-tab.active .tx-sol-tab-arrow {
    opacity: 1;
    transform: translateX(0);
    color: #006EFF;
}

.tx-sol-panels {
    position: relative;
    min-height: 520px;
}

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

.tx-sol-panel.active {
    display: grid;
    grid-template-columns: 1.02fr 1fr;
    min-height: 520px;
    overflow: hidden;
    border-radius: 18px;
    border: 1px solid #E9EDF3;
    background: #fff;
    box-shadow: 0 20px 44px rgba(16, 49, 102, .07);
    animation: txFadeUp .45s ease both;
}

.tx-sol-media {
    position: relative;
    overflow: hidden;
    background: #DCE9FB;
}

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

.tx-sol-panel:hover .tx-sol-media img {
    transform: scale(1.04);
}

.tx-sol-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(200deg, rgba(7, 18, 40, .05) 0%, rgba(7, 18, 40, .42) 100%);
}

.tx-sol-media-tag {
    position: absolute;
    z-index: 2;
    left: 22px;
    bottom: 22px;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .35);
    backdrop-filter: blur(10px);
    font-size: 12.5px;
    color: #fff;
}

.tx-sol-content {
    display: flex;
    flex-direction: column;
    padding: 40px 38px 34px;
}

.tx-sol-content h3 {
    font-size: 26px;
    font-weight: 600;
    color: #0B1A33;
    letter-spacing: -.3px;
}

.tx-sol-content > p {
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.9;
    color: #4E5969;
}

.tx-sol-features {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 22px;
    padding: 0;
}

.tx-sol-features li {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14px;
    color: #1D2129;
}

.tx-sol-actions {
    display: flex;
    gap: 12px;
    margin-top: auto;
    padding-top: 28px;
}

/* ==========================================================================
   6. 为什么选择我们
   ========================================================================== */
.tx-choose {
    padding: 96px 0;
    background: #fff;
}

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

.tx-choose-card {
    position: relative;
    padding: 28px 24px 26px;
    border-radius: 18px;
    border: 1px solid #E5E6EB;
    background: #fff;
    overflow: hidden;
    transition: all .28s ease;
}

.tx-choose-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #006EFF, #00A3FF);
    opacity: 0;
    transition: opacity .28s ease;
}

.tx-choose-card:hover {
    transform: translateY(-6px);
    border-color: rgba(0, 110, 255, .45);
    box-shadow: 0 22px 44px rgba(0, 82, 217, .12);
}

.tx-choose-card:hover::before {
    opacity: 1;
}

.tx-choose-index {
    position: absolute;
    top: 16px;
    right: 20px;
    font-size: 36px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1.5px;
    color: #F3F7FF;
    user-select: none;
}

.tx-choose-icon {
    position: relative;
    z-index: 1;
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: linear-gradient(135deg, #E8F3FF, #CFE6FF);
    display: flex;
    align-items: center;
    justify-content: center;
}

.tx-choose-icon svg {
    width: 27px;
    height: 27px;
    color: #006EFF;
}

.tx-choose-icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.tx-choose-card h3 {
    position: relative;
    z-index: 1;
    margin-top: 20px;
    font-size: 18px;
    font-weight: 600;
    color: #1D2129;
}

.tx-choose-card > p {
    position: relative;
    z-index: 1;
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.8;
    color: #86909C;
    min-height: 70px;
}

.tx-choose-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}

.tx-choose-tags span {
    font-size: 12px;
    line-height: 22px;
    padding: 0 9px;
    border-radius: 5px;
    background: #F7F8FA;
    color: #4E5969;
}

/* ==========================================================================
   7. 全球网络（深色）
   ========================================================================== */
.tx-network {
    position: relative;
    padding: 100px 0 84px;
    overflow: hidden;
    background:
        radial-gradient(1000px 520px at 72% 8%, rgba(0, 110, 255, .28), transparent 62%),
        radial-gradient(800px 480px at 12% 88%, rgba(0, 163, 255, .16), transparent 68%),
        linear-gradient(180deg, #071228 0%, #0A1633 55%, #0D2147 100%);
}

.tx-network-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.tx-network-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
    mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
}

.tx-network-glow {
    position: absolute;
    width: 700px;
    height: 700px;
    top: -320px;
    right: -120px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 110, 255, .35), transparent 65%);
    filter: blur(60px);
}

.tx-network-inner {
    position: relative;
    z-index: 2;
}

.tx-net-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
    margin-top: 8px;
}

.tx-net-stat {
    position: relative;
    padding: 24px 28px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(10px);
    transition: all .25s ease;
}

.tx-net-stat:hover {
    border-color: rgba(108, 178, 255, .55);
    background: rgba(255, 255, 255, .08);
    transform: translateY(-3px);
}

.tx-net-stat::before {
    content: "";
    position: absolute;
    left: 28px;
    top: 24px;
    width: 28px;
    height: 3px;
    border-radius: 3px;
    background: #338BFF;
}

.tx-net-stat-title {
    display: block;
    padding-top: 16px;
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    line-height: 1.5;
}

.tx-net-stat p {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.8;
    color: rgba(255, 255, 255, .56);
}

.tx-net-visual {
    position: relative;
    height: 360px;
    margin: 32px auto 6px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tx-globe {
    position: relative;
    width: 330px;
    height: 330px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 34% 28%, rgba(108, 178, 255, .55), transparent 46%),
        radial-gradient(circle at 62% 72%, rgba(0, 110, 255, .35), transparent 52%),
        linear-gradient(160deg, rgba(17, 48, 96, .9), rgba(6, 16, 36, .95));
    box-shadow:
        0 0 80px rgba(0, 110, 255, .35),
        0 0 0 1px rgba(92, 160, 255, .25) inset;
    overflow: hidden;
}

.tx-globe-dots {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(108, 178, 255, .6) 1.1px, transparent 1.6px);
    background-size: 13px 13px;
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 54%, transparent 72%);
    mask-image: radial-gradient(circle at 50% 50%, #000 54%, transparent 72%);
    opacity: .8;
}

.tx-globe-halo {
    position: absolute;
    inset: -46px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 110, 255, .2), transparent 60%);
    filter: blur(20px);
}

.tx-globe-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    border: 1px solid rgba(108, 178, 255, .28);
    border-radius: 50%;
    transform: translate(-50%, -50%) rotate(-18deg);
}

.tx-globe-ring-1 {
    width: 560px;
    height: 210px;
}

.tx-globe-ring-2 {
    width: 460px;
    height: 460px;
    transform: translate(-50%, -50%) rotate(62deg);
    border-color: rgba(108, 178, 255, .16);
}

.tx-globe-ring-3 {
    width: 620px;
    height: 620px;
    border-color: rgba(108, 178, 255, .09);
}

.tx-node {
    position: absolute;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #4DA3FF;
    box-shadow: 0 0 0 5px rgba(77, 163, 255, .15), 0 0 16px rgba(77, 163, 255, .9);
    animation: txPulse 2.4s ease-in-out infinite;
}

.tx-node-1 { top: 22%; left: 62%; }
.tx-node-2 { top: 46%; left: 30%; animation-delay: -.6s; }
.tx-node-3 { top: 68%; left: 56%; animation-delay: -1.2s; }
.tx-node-4 { top: 34%; left: 74%; animation-delay: -1.8s; }
.tx-node-5 { top: 58%; left: 44%; animation-delay: -.3s; }

.tx-net-pill {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 16px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .07);
    backdrop-filter: blur(12px);
    animation: txFloat 7s ease-in-out infinite;
}

.tx-net-pill b {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
}

.tx-net-pill span {
    font-size: 11px;
    color: rgba(255, 255, 255, .55);
}

.tx-net-pill-1 { left: 4%; top: 24%; }
.tx-net-pill-2 { right: 4%; top: 34%; animation-delay: -2.4s; }
.tx-net-pill-3 { right: 12%; bottom: 8%; animation-delay: -4.6s; }

.tx-cert {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 34px;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, .09);
}

.tx-cert-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .1);
    background: rgba(255, 255, 255, .05);
    transition: all .2s ease;
}

.tx-cert-item:hover {
    border-color: rgba(108, 178, 255, .5);
    background: rgba(255, 255, 255, .08);
}

.tx-cert-icon {
    width: 42px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
    padding: 2px 4px;
}

.tx-cert-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.tx-cert-name {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .68);
    white-space: nowrap;
}

/* ==========================================================================
   8. 新闻 + 支持
   ========================================================================== */
.tx-news {
    padding: 96px 0;
    background: #fff;
}

.tx-news-wrap {
    display: grid;
    grid-template-columns: 1.55fr 1fr;
    gap: 22px;
    align-items: stretch;
}

.tx-news-main {
    padding: 28px 30px;
    border-radius: 18px;
    border: 1px solid #E9EDF3;
    background: #fff;
    box-shadow: 0 14px 34px rgba(16, 49, 102, .05);
}

.tx-news-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding-bottom: 16px;
    border-bottom: 1px solid #F2F3F5;
}

.tx-news-head b {
    font-size: 18px;
    font-weight: 600;
    color: #1D2129;
}

.tx-news-head span {
    font-size: 12px;
    color: #86909C;
}

.tx-news-list {
    display: flex;
    flex-direction: column;
}

.tx-news-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 4px;
    border-bottom: 1px solid #F5F7FA;
    transition: background .2s ease;
}

.tx-news-item:hover {
    background: #F9FBFF;
}

.tx-news-date {
    flex: 0 0 54px;
    height: 54px;
    border-radius: 12px;
    background: #F5F8FF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    color: #006EFF;
}

.tx-news-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.tx-news-info b {
    font-size: 15px;
    font-weight: 500;
    color: #1D2129;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-news-info em {
    font-style: normal;
    font-size: 12.5px;
    color: #86909C;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-news-arrow {
    margin-left: auto;
    color: #C9CDD4;
    transition: all .2s ease;
    flex: 0 0 auto;
}

.tx-news-item:hover .tx-news-arrow {
    color: #006EFF;
    transform: translateX(3px);
}

.tx-news-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 52px 20px 44px;
}

.tx-news-empty-icon {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #E8F3FF;
    color: #006EFF;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.tx-news-empty-icon svg {
    width: 28px;
    height: 28px;
}

.tx-news-empty b {
    font-size: 15px;
    font-weight: 600;
    color: #1D2129;
}

.tx-news-empty p {
    margin-top: 8px;
    font-size: 13px;
    color: #86909C;
    line-height: 1.8;
    max-width: 360px;
}

.tx-news-empty-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin-top: 20px;
}

.tx-news-empty-links a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #006EFF;
}

.tx-news-empty-links a span {
    transition: transform .2s ease;
}

.tx-news-empty-links a:hover span {
    transform: translateX(3px);
}

.tx-help-card {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 32px 30px 28px;
    border-radius: 18px;
    overflow: hidden;
    background:
        radial-gradient(420px 220px at 88% 0%, rgba(0, 110, 255, .4), transparent 64%),
        linear-gradient(160deg, #0B1B3A 0%, #10294F 100%);
    color: #fff;
}

.tx-help-card::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -80px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .12);
}

.tx-help-badge {
    position: absolute;
    top: 24px;
    right: 24px;
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .1);
    font-size: 11.5px;
    color: rgba(255, 255, 255, .8);
}

.tx-help-card > b {
    font-size: 22px;
    font-weight: 600;
    margin-top: 10px;
}

.tx-help-card > p {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.9;
    color: rgba(255, 255, 255, .6);
    max-width: 320px;
}

.tx-help-links {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
}

.tx-help-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 2px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    font-size: 13.5px;
    color: rgba(255, 255, 255, .82);
    transition: all .2s ease;
}

.tx-help-links a i {
    font-style: normal;
    color: rgba(255, 255, 255, .4);
    transition: all .2s ease;
}

.tx-help-links a:hover {
    color: #fff;
}

.tx-help-links a:hover i {
    color: #fff;
    transform: translateX(3px);
}

.tx-help-card .tx-btn {
    margin-top: auto;
    background: #fff;
    color: #006EFF;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
    position: relative;
    z-index: 2;
    margin-top: 26px;
}

.tx-help-card .tx-btn:hover {
    background: #F0F7FF;
    color: #0052D9;
}

/* ==========================================================================
   9. 合作伙伴
   ========================================================================== */
.tx-partners {
    padding: 92px 0;
    background: #F7F8FA;
}

.tx-partner-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}

.tx-partner-item {
    height: 86px;
    border-radius: 12px;
    border: 1px solid #EAEDF2;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 20px;
    transition: all .25s ease;
}

.tx-partner-item img {
    max-width: 120px;
    max-height: 36px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .62;
    transition: all .25s ease;
}

.tx-partner-item:hover {
    border-color: rgba(0, 110, 255, .45);
    box-shadow: 0 14px 30px rgba(0, 82, 217, .1);
    transform: translateY(-3px);
}

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

/* ==========================================================================
   10. CTA 通栏
   ========================================================================== */
.tx-cta {
    position: relative;
    padding: 62px 0;
    overflow: hidden;
    background: linear-gradient(110deg, #0052D9 0%, #006EFF 55%, #0A84FF 100%);
}

.tx-cta-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.tx-cta-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: radial-gradient(circle at 70% 30%, #000 0%, transparent 72%);
    mask-image: radial-gradient(circle at 70% 30%, #000 0%, transparent 72%);
}

.tx-cta-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .16);
}

.tx-cta-ring-1 {
    width: 380px;
    height: 380px;
    right: 8%;
    top: -220px;
}

.tx-cta-ring-2 {
    width: 260px;
    height: 260px;
    right: 18%;
    bottom: -170px;
    border-color: rgba(255, 255, 255, .1);
}

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

.tx-cta-copy h2 {
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -.5px;
    color: #fff;
}

.tx-cta-copy p {
    margin-top: 12px;
    font-size: 15px;
    color: rgba(255, 255, 255, .75);
}

.tx-cta-actions {
    display: flex;
    gap: 14px;
    flex: 0 0 auto;
}

/* ==========================================================================
   11. 动效
   ========================================================================== */
@keyframes txFadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes txFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

@keyframes txPulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: .6;
        transform: scale(.86);
    }
}

/* 首页页脚微调 */
body.page-home .sky-footer-container {
    background: linear-gradient(180deg, #091530 0%, #071126 100%) !important;
}

body.page-home .sky-footer-container .sky-footer-top {
    border-bottom: 1px solid rgba(255, 255, 255, .07) !important;
}

body.page-home .sky-footer-container .sky-footer-top .sky-footer-block .sky-footer-icon {
    width: 30px !important;
    height: 30px !important;
    opacity: .85;
}

body.page-home .sky-footer-container .sky-footer-main .sky-footer-right .sky-footer-nav-row .sky-footer-nav-heading {
    position: relative;
    padding-bottom: 12px;
}

body.page-home .sky-footer-container .sky-footer-main .sky-footer-right .sky-footer-nav-row .sky-footer-nav-heading::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background: #338BFF;
    opacity: .8;
}

/* ==========================================================================
   12. 响应式
   ========================================================================== */
@media (max-width: 1440px) {
    .tx-hero-title {
        font-size: 50px;
    }

    .tx-hero-media {
        height: 400px;
    }

    .tx-sol-wrap {
        grid-template-columns: 300px 1fr;
    }
}

@media (max-width: 1280px) {
    .tx-hero-inner {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .tx-hero-title {
        font-size: 44px;
    }

    .tx-hero-texts {
        min-height: 250px;
    }

    .tx-hero-media {
        height: 360px;
    }

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

    .tx-partner-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 1080px) {
    .tx-cap-row {
        grid-template-columns: repeat(2, 1fr);
    }

    .tx-cap-item:nth-child(2)::after {
        display: none;
    }

    .tx-stats-row {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 0;
    }

    .tx-stat:nth-child(2)::after {
        display: none;
    }

    .tx-prod-grid {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    }

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

    .tx-sol-tabs {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .tx-sol-panel.active {
        grid-template-columns: 1fr;
    }

    .tx-sol-media {
        height: 300px;
    }

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

    .tx-cta-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 860px) {
    .tx-hero-inner {
        grid-template-columns: 1fr;
    }

    .tx-hero-media {
        height: 300px;
    }

    .tx-hero-right {
        padding-left: 0;
    }

    .tx-sec-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .tx-sec-head.center {
        align-items: center;
    }

    .tx-sec-title {
        font-size: 30px;
    }

    .tx-cta-copy h2 {
        font-size: 26px;
    }

    .tx-partner-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .tx-promo-bar {
        height: 34px;
    }

    .tx-promo-inner {
        height: 34px;
    }

    .tx-promo-inner p {
        display: none;
    }

    .tx-promo-links {
        gap: 16px;
    }

    body.page-home {
        padding-top: 98px;
    }

    .tx-hero {
        padding-top: 34px;
    }

    .tx-hero-inner {
        padding-bottom: 52px;
    }

    .tx-hero-title {
        font-size: 30px;
        letter-spacing: -.5px;
    }

    .tx-hero-desc {
        margin-top: 12px;
        font-size: 14px;
        line-height: 1.8;
    }

    .tx-hero-texts {
        min-height: 0;
        margin-top: 18px;
    }

    .tx-hero-actions {
        margin-top: 20px;
        gap: 10px;
    }

    .tx-hero-actions .tx-btn-lg {
        height: 42px;
        padding: 0 18px;
        font-size: 14px;
    }

    .tx-hero-trust {
        margin-top: 22px;
        padding-top: 16px;
        gap: 10px 16px;
        font-size: 12px;
    }

    .tx-hero-media {
        height: 236px;
        border-radius: 18px;
    }

    .tx-hero-chip {
        padding: 8px 10px;
        border-radius: 10px;
    }

    .tx-hero-chip b {
        font-size: 15px;
    }

    .tx-hero-chip span {
        font-size: 10px;
    }

    .tx-hero-chip-1 {
        top: 14px;
        left: 14px;
    }

    .tx-hero-chip-2 {
        top: 14px;
        right: 14px;
    }

    .tx-hero-chip-3 {
        left: 14px;
        bottom: 46px;
        font-size: 11px;
    }

    .tx-hero-promo {
        padding: 10px 14px;
        gap: 10px;
    }

    .tx-hero-promo-text em {
        display: none;
    }

    .tx-cap {
        margin-top: -24px;
    }

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

    .tx-cap-item {
        padding: 15px 18px;
    }

    .tx-cap-item::after {
        display: none;
    }

    .tx-stat {
        padding: 4px 8px;
    }

    .tx-stat b {
        font-size: 27px;
    }

    .tx-stat p {
        font-size: 12px;
    }

    .tx-sec-title {
        font-size: 24px;
    }

    .tx-sec-desc {
        font-size: 14px;
    }

    .tx-sec-head {
        margin-bottom: 28px;
    }

    .tx-products,
    .tx-solutions,
    .tx-choose,
    .tx-network,
    .tx-news,
    .tx-partners {
        padding: 56px 0;
    }

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

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

    .tx-sol-panel.active {
        grid-template-columns: 1fr;
    }

    .tx-sol-media {
        height: 220px;
    }

    .tx-sol-content {
        padding: 24px 20px;
    }

    .tx-sol-content h3 {
        font-size: 21px;
    }

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

    .tx-net-visual {
        height: 280px;
    }

    .tx-globe {
        width: 220px;
        height: 220px;
    }

    .tx-globe-ring-1 {
        width: 320px;
        height: 130px;
    }

    .tx-globe-ring-2 {
        width: 280px;
        height: 280px;
    }

    .tx-globe-ring-3 {
        width: 360px;
        height: 360px;
    }

    .tx-net-pill {
        display: none;
    }

    .tx-cert {
        gap: 8px;
    }

    .tx-cert-item {
        padding: 8px 10px;
    }

    .tx-cert-name {
        font-size: 11px;
    }

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

    .tx-news-main {
        padding: 20px;
    }

    .tx-help-card {
        min-height: 330px;
    }

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

    .tx-partner-item {
        height: 72px;
    }

    .tx-cta-inner {
        gap: 22px;
    }

    .tx-cta-copy h2 {
        font-size: 22px;
    }

    .tx-cta-actions {
        flex-wrap: wrap;
    }

    .tx-cta-actions .tx-btn-lg {
        height: 42px;
        padding: 0 18px;
        font-size: 14px;
    }
}

/* ==========================================================================
   首页补充区块（不改变现有风格，仅做信息与素材增强）
   ========================================================================== */

/* ---------- 资质信任条 ---------- */
.tx-trust {
    background: #fff;
    border-bottom: 1px solid #F0F3F8;
    padding: 22px 0;
}

.tx-trust-inner {
    display: flex;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap;
}

.tx-trust-label {
    flex: 0 0 auto;
    font-size: 12.5px;
    font-weight: 600;
    color: #86909C;
    letter-spacing: 1px;
}

.tx-trust-certs {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
}

.tx-trust-cert {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.tx-trust-cert img {
    height: 24px;
    max-width: 80px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .62;
    transition: all .2s ease;
}

.tx-trust-cert span {
    font-size: 11.5px;
    color: #9AA3AE;
    white-space: nowrap;
}

.tx-trust-cert:hover img {
    filter: none;
    opacity: 1;
}

.tx-trust-divider {
    width: 1px;
    height: 22px;
    background: #EDF0F5;
}

.tx-trust-claims {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-left: auto;
}

.tx-trust-claims span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: #4E5969;
    white-space: nowrap;
}

/* ---------- 一站式上云架构 ---------- */
.tx-arch {
    padding: 82px 0;
    background: #F7FAFF;
}

.tx-arch-flow {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 1180px;
    margin: 0 auto;
}

.tx-arch-layer {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #fff;
    border: 1px solid #EDF2FA;
    border-radius: 16px;
    padding: 14px 18px;
    box-shadow: 0 8px 24px rgba(16, 49, 102, .04);
    transition: all .22s ease;
}

.tx-arch-layer:hover {
    box-shadow: 0 14px 34px rgba(0, 110, 255, .09);
    border-color: #D6E6FF;
}

.tx-arch-layer-label {
    flex: 0 0 72px;
    font-size: 12.5px;
    font-weight: 600;
    color: #86909C;
    letter-spacing: .5px;
}

.tx-arch-nodes {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.tx-arch-node {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #F7F9FD;
    border: 1px solid #F0F4FB;
    transition: all .2s ease;
}

.tx-arch-node:hover {
    background: #F0F7FF;
    border-color: #CFE2FF;
    transform: translateY(-1px);
}

.tx-arch-node.hot {
    background: linear-gradient(110deg, #0B4BD8, #2F86FF);
    border-color: transparent;
    box-shadow: 0 10px 22px rgba(11, 92, 255, .22);
}

.tx-arch-node.hot b,
.tx-arch-node.hot em,
.tx-arch-node.hot .tx-arch-node-icon {
    color: #fff;
}

.tx-arch-node-icon {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #EEF5FF;
    color: #006EFF;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tx-arch-node.hot .tx-arch-node-icon {
    background: rgba(255, 255, 255, .18);
}

.tx-arch-node-icon svg {
    width: 16px;
    height: 16px;
}

.tx-arch-node div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tx-arch-node b {
    font-size: 13px;
    font-weight: 600;
    color: #1D2129;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-arch-node em {
    font-style: normal;
    font-size: 11px;
    color: #9AA3AE;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tx-arch-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 46px;
    max-width: 420px;
    margin: 26px auto 0;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #D6E6FF;
    color: #006EFF;
    font-size: 13.5px;
    transition: all .2s ease;
}

.tx-arch-cta span {
    transition: transform .2s ease;
}

.tx-arch-cta:hover {
    background: #F0F7FF;
    border-color: #006EFF;
    box-shadow: 0 10px 24px rgba(0, 110, 255, .12);
}

.tx-arch-cta:hover span {
    transform: translateX(3px);
}

/* ---------- FAQ ---------- */
.tx-faq {
    padding: 82px 0;
    background: #fff;
}

.tx-faq-list {
    max-width: 1000px;
    margin: 0 auto;
    border-top: 1px solid #F0F3F8;
}

.tx-faq-item {
    border-bottom: 1px solid #F0F3F8;
    transition: background .2s ease;
}

.tx-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 6px;
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 500;
    color: #1D2129;
    transition: color .2s ease;
}

.tx-faq-item summary::-webkit-details-marker {
    display: none;
}

.tx-faq-item summary:hover {
    color: #006EFF;
}

.tx-faq-arrow {
    position: relative;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid #E5E6EB;
    transition: all .25s ease;
}

.tx-faq-arrow::before,
.tx-faq-arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 1.5px;
    background: #86909C;
    border-radius: 1px;
    transform: translate(-50%, -50%);
    transition: all .25s ease;
}

.tx-faq-arrow::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.tx-faq-item[open] .tx-faq-arrow {
    background: #EEF5FF;
    border-color: #CFE2FF;
}

.tx-faq-item[open] .tx-faq-arrow::before,
.tx-faq-item[open] .tx-faq-arrow::after {
    background: #006EFF;
}

.tx-faq-item[open] .tx-faq-arrow::after {
    transform: translate(-50%, -50%) rotate(0deg);
    opacity: 0;
}

.tx-faq-body {
    padding: 0 56px 22px 6px;
    font-size: 13.5px;
    line-height: 1.9;
    color: #6B7280;
    animation: txFaqIn .25s ease both;
}

@keyframes txFaqIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.tx-faq-item[open] summary {
    color: #006EFF;
}

/* ---------- 全球网络地图（替代旧 CSS 地球） ---------- */
.tx-net-map {
    position: relative;
    max-width: 1080px;
    margin: 30px auto 8px;
}

.tx-net-map > svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.tx-net-node {
    transform-box: fill-box;
    transform-origin: center;
    animation: txNetPulse 3.2s ease-in-out infinite;
}

.tx-net-node > circle:nth-child(3) {
    animation: txNetRing 3.2s ease-out infinite;
    transform-box: fill-box;
    transform-origin: center;
}

@keyframes txNetPulse {
    0%, 100% { opacity: .85; }
    50% { opacity: 1; }
}

@keyframes txNetRing {
    0% { transform: scale(.7); opacity: .8; }
    100% { transform: scale(1.8); opacity: 0; }
}

.tx-net-arc {
    stroke-dasharray: 5 8;
    animation: txNetDash 2.6s linear infinite;
}

@keyframes txNetDash {
    to { stroke-dashoffset: -120; }
}

.tx-net-map .tx-net-pill {
    position: absolute;
    z-index: 3;
}

.tx-net-map .tx-net-pill-1 { left: 4%; top: 18%; }
.tx-net-map .tx-net-pill-2 { right: 6%; top: 12%; }
.tx-net-map .tx-net-pill-3 { left: 32%; bottom: 6%; }

/* 首屏光效轻微呼吸 */
.tx-hero-glow {
    animation: txHeroGlow 12s ease-in-out infinite alternate;
}

.tx-hero-glow-2 {
    animation-duration: 16s;
    animation-delay: -4s;
}

.tx-hero-glow-3 {
    animation-duration: 14s;
    animation-delay: -7s;
}

@keyframes txHeroGlow {
    from { transform: translate3d(0, 0, 0) scale(1); opacity: .65; }
    to { transform: translate3d(-24px, 18px, 0) scale(1.12); opacity: .9; }
}

@media (prefers-reduced-motion: reduce) {
    .tx-hero-glow,
    .tx-net-node,
    .tx-net-node > circle:nth-child(3),
    .tx-net-arc {
        animation: none !important;
    }
}

/* ---------- 首页补充区块响应式 ---------- */
@media (max-width: 1200px) {
    .tx-trust-claims {
        margin-left: 0;
        width: 100%;
        padding-top: 12px;
        border-top: 1px dashed #F0F3F8;
    }

    .tx-trust-divider {
        display: none;
    }

    .tx-arch-layer {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .tx-arch-nodes {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .tx-trust {
        padding: 18px 0;
    }

    .tx-trust-inner {
        gap: 12px;
    }

    .tx-trust-certs {
        gap: 14px;
    }

    .tx-trust-cert img {
        height: 20px;
    }

    .tx-arch,
    .tx-faq {
        padding: 52px 0;
    }

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

    .tx-arch-node {
        padding: 9px 10px;
    }

    .tx-faq-item summary {
        padding: 16px 2px;
        font-size: 14px;
    }

    .tx-faq-body {
        padding: 0 2px 18px;
        font-size: 12.5px;
    }

    .tx-net-map .tx-net-pill {
        display: none;
    }
}

/* 网络地图浮标位置微调 */
.tx-net-map .tx-net-pill-1 { left: 1%; top: 2%; }
.tx-net-map .tx-net-pill-2 { right: 1%; top: 2%; }
.tx-net-map .tx-net-pill-3 { left: 1%; bottom: 2%; }

/* 网络地图浮标：改用地图内标签即可，隐藏旧浮标 */
.tx-net-map .tx-net-pill { display: none !important; }
