/* ============================================================
   XIGANG redesign sections — per 《西钢外贸网站完整构思.docx》
   Independent file: keeps 1:1 replicated theme CSS untouched.
   Accent kept at theme red #d10000 for consistency.
   ============================================================ */

/* ---------- shared buttons ---------- */
.xg-btn {
    display: inline-block;
    padding: 15px 38px;
    font-size: 15px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    border: 1px solid transparent;
    transition: all .3s ease;
    cursor: pointer;
}

.xg-btn-primary {
    background: #d10000;
    color: #fff !important;
    border-color: #d10000;
}

.xg-btn-primary:hover {
    background: #a80000;
    border-color: #a80000;
    color: #fff !important;
}

.xg-btn-ghost {
    background: transparent;
    color: #fff !important;
    border-color: rgba(255, 255, 255, .75);
}

.xg-btn-ghost:hover {
    background: #fff;
    color: #212121 !important;
    border-color: #fff;
}

.xg-btn-dark {
    background: #212121;
    color: #fff !important;
    border-color: #212121;
}

.xg-btn-dark:hover {
    background: #000;
    border-color: #000;
    color: #fff !important;
}

/* ---------- 屏2 Hero ---------- */
.xg-hero {
    position: relative;
    min-height: 640px;
    height: 82vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #101418;
}

.xg-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transform: scale(1.02);
}

/* 三张轮播：swiper 容器铺满 hero，分页圆点置底居中（红色高亮当前张） */
.xg-hero-swiper {
    position: absolute;
    inset: 0;
}

.xg-hero-swiper .swiper-slide {
    position: relative;
    overflow: hidden;
}

.xg-hero-pagination {
    position: absolute;
    left: 0 !important;
    right: 0;
    bottom: 30px !important;
    width: 100% !important;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    z-index: 3;
}

.xg-hero-pagination .swiper-pagination-bullet {
    margin: 0 !important;
    width: 10px;
    height: 10px;
    border-radius: 5px;
    background: #fff;
    opacity: .45;
    transition: all .3s ease;
}

.xg-hero-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    background: #d10000;
    width: 26px;
}

.xg-hero-mask {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(8, 10, 14, .82) 0%, rgba(8, 10, 14, .55) 45%, rgba(8, 10, 14, .25) 100%);
}

.xg-hero-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    padding-top: 90px; /* clear fixed/absolute header */
}

.xg-hero-eyebrow {
    color: #d10000;
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 22px;
    font-weight: 600;
}

.xg-hero-title {
    font-family: Georgia, "Times New Roman", "Playfair Display", serif;
    font-size: 62px;
    line-height: 1.15;
    font-weight: 600;
    color: #fff;
    margin: 0 0 24px;
    max-width: 830px;
    letter-spacing: .5px;
}

.xg-hero-sub {
    color: rgba(255, 255, 255, .82);
    font-size: 18px;
    line-height: 1.7;
    max-width: 680px;
    margin: 0 0 40px;
}

.xg-hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

/* ---------- 屏3 Core business ---------- */
.xg-biz {
    background: #f6f7f9;
    padding: 90px 0 100px;
}

.xg-biz .xwtt {
    text-align: center;
    margin-bottom: 14px;
}

.xg-biz-tip {
    text-align: center;
    color: #777;
    font-size: 15px;
    margin-bottom: 50px;
}

.xg-biz-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
    justify-content: center;
}

.xg-biz-card {
    width: calc(33.333% - 30px);
    margin: 0 15px 30px;
    background: #fff;
    border: 1px solid #e8e8e8;
    transition: box-shadow .3s ease, transform .3s ease;
    display: flex;
    flex-direction: column;
}

.xg-biz-card:hover {
    box-shadow: 0 18px 40px rgba(0, 0, 0, .12);
    transform: translateY(-6px);
}

.xg-biz-card .img {
    height: 210px;
    overflow: hidden;
    background: #eceff2;
}

.xg-biz-card .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.xg-biz-card:hover .img img {
    transform: scale(1.06);
}

.xg-biz-card .body {
    padding: 26px 24px 30px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.xg-biz-card .tag {
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #d10000;
    margin-bottom: 10px;
}

.xg-biz-card h2 {
    font-size: 21px;
    font-weight: 600;
    color: #212121;
    margin: 0 0 12px;
    line-height: 1.35;
}

.xg-biz-card p {
    font-size: 14px;
    color: #666;
    line-height: 1.75;
    margin: 0 0 20px;
    flex: 1;
}

.xg-biz-card .go {
    font-size: 14px;
    color: #212121 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 2px solid #d10000;
    padding-bottom: 4px;
    align-self: flex-start;
    transition: color .3s ease;
}

.xg-biz-card .go:hover {
    color: #d10000 !important;
}

/* ---------- 屏4 About (theme .aabg shell) ---------- */
.xg-about-story {
    margin-top: 26px;
}

.xg-about-story p {
    font-size: 15px;
    line-height: 1.9;
    color: #555;
    margin: 0 0 14px;
}

.aabg .ab_22 .ab_img11 {
    margin-top: 0;
}

/* ---------- 屏5 Timeline ---------- */
.xg-timeline {
    background: #fff;
    padding: 90px 0 80px;
    border-top: 1px solid #eee;
}

.xg-timeline .xwtt {
    text-align: center;
    margin-bottom: 60px;
}

.xg-tl-track {
    position: relative;
    padding: 10px 0 0;
}

.xg-tl-line {
    position: absolute;
    left: 0;
    right: 0;
    top: 65px;
    height: 2px;
    background: #e0e0e0;
}

.xg-tl-nodes {
    display: flex;
    justify-content: space-between;
    position: relative;
}

.xg-tl-node {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
    position: relative;
    padding: 0 4px;
}

.xg-tl-node .year {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: 700;
    color: #212121;
    height: 40px;
    line-height: 40px;
    white-space: nowrap;
}

.xg-tl-node .year.unk {
    color: #999;
}

.xg-tl-node .dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #d10000;
    margin: 8px auto 18px;
    position: relative;
    z-index: 2;
    box-shadow: 0 0 0 5px rgba(209, 0, 0, .15);
}

.xg-tl-node h3 {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin: 0 0 6px;
    line-height: 1.5;
}

.xg-tl-node .tbd {
    display: inline-block;
    font-size: 12px;
    color: #999;
    border: 1px dashed #ccc;
    padding: 3px 10px;
    border-radius: 10px;
}

.xg-tl-note {
    text-align: center;
    color: #999;
    font-size: 13px;
    margin-top: 46px;
}

/* ---------- 屏6 Capabilities (dual column) ---------- */
.xg-caps {
    background: #f6f7f9;
    padding: 90px 0 100px;
}

.xg-caps .xwtt {
    text-align: center;
    margin-bottom: 55px;
}

.xg-caps-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -20px;
}

.xg-caps-col {
    width: calc(50% - 40px);
    margin: 0 20px 30px;
    background: #fff;
    border-top: 4px solid #d10000;
    padding: 44px 40px 40px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
    /* flex 纵向布局：等高拉伸下让 .metrics(margin-top:auto) 贴住卡片底部，两栏参数区对齐 */
    display: flex;
    flex-direction: column;
}

.xg-caps-col.alt {
    border-top-color: #212121;
}

.xg-caps-col h3 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 27px;
    color: #212121;
    margin: 0 0 8px;
}

.xg-caps-col .lead {
    font-size: 14px;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 24px;
}

.xg-caps-col ul.list {
    list-style: none;
    padding: 0;
    margin: 0 0 26px;
}

.xg-caps-col ul.list li {
    font-size: 15px;
    color: #444;
    line-height: 1.6;
    padding: 9px 0 9px 26px;
    position: relative;
    border-bottom: 1px dashed #e5e5e5;
}

.xg-caps-col ul.list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    width: 9px;
    height: 9px;
    background: #d10000;
}

.xg-caps-col.alt ul.list li::before {
    background: #212121;
}

.xg-caps-col .metrics {
    display: flex;
    flex-wrap: wrap;
    margin: auto -8px 10px; /* auto: 吸收剩余高度，参数区贴底与另一栏对齐 */
}

.xg-caps-col .metric {
    width: 50%;
    padding: 0 8px 16px;
    box-sizing: border-box;
}

.xg-caps-col .metric .k {
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #999;
    margin-bottom: 4px;
}

.xg-caps-col .metric .v {
    font-size: 17px;
    font-weight: 600;
    color: #212121;
}

.xg-caps-col .metric .v .todo {
    font-size: 12px;
    font-weight: 400;
    color: #d10000;
    border: 1px dashed #d10000;
    padding: 1px 7px;
    border-radius: 9px;
    margin-left: 6px;
    white-space: nowrap;
}

.xg-caps-more {
    text-align: center;
    margin-top: 24px;
}

.xg-caps-more a {
    display: inline-block;
    padding: 14px 44px;
    margin: 0 6px 10px;
    background: #212121;
    color: #fff !important;
    font-size: 14px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .3s ease;
}

.xg-caps-more a:hover {
    background: #d10000;
}

/* ---------- 关于页 资质证书 ---------- */
.xg-certs {
    background: #f6f7f9;
    border-top: 1px solid #eee;
    padding: 80px 0 70px;
    scroll-margin-top: 90px;
}

.xg-certs .xwtt {
    text-align: center;
    margin-bottom: 46px;
}

.xg-certs-groups {
    display: flex;
    flex-direction: column;
    gap: 34px;
}

.xg-certs-group h3 {
    font-size: 16px;
    font-weight: 700;
    color: #212121;
    margin: 0 0 14px;
    padding-left: 10px;
    border-left: 3px solid #d10000;
}

.xg-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
}

.xg-cert-card {
    background: #fff;
    border: 1px solid #ececec;
    overflow: hidden;
    transition: box-shadow .2s ease;
}

.xg-cert-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}

.xg-cert-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f0f0f0;
}

.xg-cert-card .body {
    padding: 14px 16px 16px;
}

.xg-cert-card h4 {
    font-size: 14px;
    font-weight: 700;
    color: #212121;
    margin: 0 0 6px;
}

.xg-cert-card p {
    font-size: 12.5px;
    color: #666;
    line-height: 1.7;
    margin: 0 0 8px;
}

.xg-cert-card .num {
    color: #999;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
}

.xg-cert-card.hrow {
    grid-column: 1 / -1;
    display: flex;
}

.xg-cert-card.hrow img {
    width: 260px;
    flex-shrink: 0;
}

.xg-cert-card.hrow .body {
    flex: 1;
    padding: 18px 22px;
}

/* ---------- 选型与安装指南页 ---------- */
.xg-guide {
    margin-bottom: 50px;
}

.xg-guide-sec {
    margin-bottom: 36px;
}

.xg-guide-sec h3 {
    font-size: 17px;
    font-weight: 700;
    color: #212121;
    margin: 0 0 14px;
    padding-left: 10px;
    border-left: 3px solid #d10000;
}

.xg-guide-sec p {
    font-size: 14px;
    color: #555;
    line-height: 1.9;
    margin: 0 0 14px;
}

.xg-guide-table {
    overflow-x: auto;
    margin-bottom: 10px;
}

.xg-guide-table table {
    width: 100%;
    border-collapse: collapse;
}

.xg-guide-table td {
    font-size: 13px;
    color: #444;
    vertical-align: middle;
}

.xg-guide-code {
    background: #f6f7f9;
    border: 1px solid #ececec;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.8;
    color: #333;
    overflow-x: auto;
    white-space: pre;
    margin: 0;
}

.xg-guide-list {
    padding-left: 22px;
    margin: 0;
}

.xg-guide-list li {
    font-size: 14px;
    color: #555;
    line-height: 1.9;
    margin-bottom: 8px;
}

.xg-guide-fig {
    margin: 6px auto 26px;
    max-width: 760px;
    text-align: center;
}

.xg-guide-fig img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #f0f0f0;
    border: 1px solid #ececec;
}

.xg-guide-fig figcaption {
    font-size: 12px;
    color: #999;
    line-height: 1.6;
    margin-top: 8px;
}

/* ---------- 工程案例页 ---------- */
.xg-more-link {
    margin-top: 14px;
}

.xg-more-link a {
    color: #d10000;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.xg-more-link a:hover {
    text-decoration: underline;
}

.xg-cases-intro {
    text-align: center;
    margin-bottom: 36px;
}

.xg-cases-intro p {
    color: #666;
    font-size: 14px;
    line-height: 1.8;
}

.xg-cases-intro .total {
    color: #d10000;
    font-weight: 600;
    margin-top: 6px;
}

.xg-cases {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 10px 18px;
    margin-bottom: 60px;
}

.xg-case-head {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 26px;
    padding-bottom: 8px;
    border-bottom: 2px solid #d10000;
}

.xg-case-head:first-child {
    margin-top: 0;
}

.xg-case-head h3 {
    font-size: 17px;
    font-weight: 600;
    color: #212121;
    margin: 0;
}

.xg-case-head .thumb {
    width: 160px;
    height: 90px;
    object-fit: cover;
    flex-shrink: 0;
    background: #f0f0f0;
    border: 1px solid #ececec;
}

.xg-case-head .num {
    font-size: 12px;
    color: #999;
    border: 1px solid #e5e5e5;
    border-radius: 10px;
    padding: 1px 8px;
}

.xg-case-item {
    font-size: 13px;
    color: #444;
    background: #f7f7f7;
    padding: 10px 12px;
    line-height: 1.5;
    transition: background .2s ease, color .2s ease;
}

.xg-case-item:hover {
    background: #fff;
    color: #d10000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

/* ---------- 屏7 application area — 5 cards ---------- */
/* 主题原样式 img{max-width:inherit} 会让图片按原始尺寸渲染再被硬裁，
   卡片变窄(5卡)后只剩一条竖切片；统一为固定高度 + cover 填充 */
.solutions-list li .img {
    height: 600px;
    overflow: hidden;
}

.solutions-list li .img img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    display: block;
}

.xg-app-note {
    font-size: 13px;
    color: #aaa;
    text-align: center;
    margin-top: 18px;
}

/* ---------- 应用领域栏目页 — 头部 + 图文交替编排 ---------- */
.xg-apps-head {
    text-align: center;
    margin: 10px 0 52px;
}

.xg-apps-head .xwtt {
    display: inline-block;
    position: relative;
    padding-bottom: 18px;
}

.xg-apps-head .xwtt::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 56px;
    height: 3px;
    background: #d10000;
}

/* banner 副标题：句子较长，收窄行宽成两行居中，白字带阴影（阴影见 .nbanner .shao2）
   字号交给 main.css .shao2 的响应式断点（45/40/30/25/20px），此处不覆盖 */
.nbanner .shao2.xg-banner-sub {
    max-width: 880px;
    line-height: 1.8;
    margin-top: 1.6vw;
    font-weight: 400;
    letter-spacing: .3px;
}

.xg-apps {
    margin-bottom: 60px;
}

.xg-app-row {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 60px;
    align-items: center;
    padding: 46px 0;
}

.xg-app-row + .xg-app-row {
    border-top: 1px solid #eee;
}

/* 偶数行：图文左右互换（图 5fr 在右，文案 7fr 在左） */
.xg-app-row:nth-child(even) {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}

.xg-app-row:nth-child(even) .xg-app-media {
    order: 2;
}

.xg-app-media {
    position: relative;
}

/* 图片外框：细线偏移相框（奇数行右下、偶数行左下） */
.xg-app-img {
    display: block;
    position: relative;
    height: 430px;
    overflow: hidden;
}

.xg-app-img::before {
    content: "";
    position: absolute;
    top: 16px;
    left: 16px;
    right: -16px;
    bottom: -16px;
    border: 1px solid #dcdcdc;
    z-index: 0;
}

.xg-app-row:nth-child(even) .xg-app-img::before {
    left: -16px;
    right: 16px;
}

.xg-app-img img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.xg-app-img:hover img {
    transform: scale(1.04);
}

/* 悬停：偏移相框随图片一起微移，形成层次感 */
.xg-app-img::before {
    transition: transform .4s ease;
}

.xg-app-img:hover::before {
    transform: translate(6px, 6px);
}

.xg-app-info {
    position: relative;
}

.xg-app-info .num {
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 72px;
    font-weight: 600;
    line-height: 1;
    color: #f2f2f2;
    margin-bottom: -26px;
    user-select: none;
    transition: color .4s ease;
}

/* 悬停整行时序号点亮为主题红 */
.xg-app-row:hover .num {
    color: #fbe9e9;
}

.xg-app-info h3 {
    position: relative;
    z-index: 1;
    font-size: 27px;
    font-weight: 600;
    color: #212121;
    margin: 0;
}

.xg-app-info h3::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    background: #d10000;
    margin-top: 16px;
    transition: width .4s ease;
}

/* 悬停整行时红色下划线延展 */
.xg-app-row:hover h3::after {
    width: 88px;
}

.xg-app-info p {
    font-size: 14px;
    color: #666;
    line-height: 1.9;
    margin: 20px 0 22px;
}

.xg-app-info .more {
    display: inline-block;
    font-size: 14px;
    color: #d10000;
    font-weight: 600;
    text-decoration: none;
    transition: letter-spacing .2s ease;
}

.xg-app-info .more i {
    display: inline-block;
    transition: transform .25s ease;
}

.xg-app-info .more:hover {
    letter-spacing: .5px;
    text-decoration: underline;
}

.xg-app-info .more:hover i {
    transform: translateX(5px);
}

@media (max-width: 991px) {
    .xg-apps-head {
        margin-bottom: 34px;
    }

    .xg-app-row,
    .xg-app-row:nth-child(even) {
        grid-template-columns: 1fr;
        gap: 26px;
        padding: 34px 0;
    }

    .xg-app-row:nth-child(even) .xg-app-media {
        order: 0;
    }

    .xg-app-img {
        height: 300px;
    }

    .xg-app-info .num {
        font-size: 54px;
        margin-bottom: -18px;
    }

    .xg-app-info h3 {
        font-size: 21px;
    }
}

@media (max-width: 767px) {
    .xg-app-img::before {
        display: none;
    }
}

/* ---------- 屏8 bottom CTA ---------- */
.xg-cta {
    background: #17191d;
    padding: 74px 0;
}

.xg-cta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.xg-cta-inner h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 38px;
    color: #fff;
    margin: 0 0 12px;
    font-weight: 600;
}

.xg-cta-inner p {
    color: rgba(255, 255, 255, .65);
    font-size: 16px;
    margin: 0;
    line-height: 1.7;
}

.xg-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.xg-cta-actions .wa {
    background: #179d1a;
    border-color: #179d1a;
}

.xg-cta-actions .wa:hover {
    background: #128014;
    border-color: #128014;
    color: #fff !important;
}

/* ---------- footer social icons ---------- */
.footer-social {
    display: flex;
    gap: 12px;
}

.footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .3);
    color: rgba(255, 255, 255, .75) !important;
    font-size: 17px;
    text-decoration: none;
    transition: all .3s ease;
}

.footer-social a:hover {
    background: #d10000;
    border-color: #d10000;
    color: #fff !important;
}

/* ---------- 产品中心：网格卡片统一尺寸（固定图片区 + cover 裁切） ---------- */
/* 原图宽高比不一导致卡片高矮不齐（94~354px），统一图片区高度后整卡等高 */
.product-list:not(.show-detail) .content .list .img {
    height: 220px;
    overflow: hidden;
}

.product-list:not(.show-detail) .content .list .img img {
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 767px) {
    .product-list:not(.show-detail) .content .list .img {
        height: 160px;
    }
}

/* ---------- product sidebar: dual-line group headers ---------- */
.cate-list .category.xg-cate-group {
    margin-top: 14px;
    border-top: 1px solid #e5e5e5;
    padding-top: 12px;
}

.cate-list .category.xg-cate-group .list-title {
    color: #d10000;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 13px;
    cursor: default;
    /* 重置 .cate-list .category span 的箭头图标/绝对定位，避免分组标题被压成右侧小块 */
    position: static;
    width: auto;
    height: auto;
    margin-top: 0;
    background: none;
    display: block;
    line-height: 40px;
    padding: 0 0 0 15px;
    border-top: 0;
    border-bottom: 1px solid #f0f0f0;
}

.xypg-left-nav li.xg-cate-group {
    margin-top: 12px;
    border-top: 1px solid #e5e5e5;
    padding-top: 12px;
}

.xypg-left-nav li.xg-cate-group span {
    color: #d10000;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 13px;
    display: block;
    padding: 6px 0;
}

/* ---------- product list empty state (Coming Soon) ---------- */
.xg-coming-soon {
    border: 1px dashed #d0d0d0;
    background: #fafafa;
    text-align: center;
    padding: 60px 30px;
    margin-top: 10px;
}

.xg-coming-soon h3 {
    font-size: 26px;
    color: #212121;
    margin: 0 0 10px;
    font-weight: 600;
}

.xg-coming-soon .desc {
    color: #777;
    font-size: 15px;
    margin: 0 0 18px;
}

.xg-coming-soon .badge {
    display: inline-block;
    background: #d10000;
    color: #fff;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 18px;
    border-radius: 3px;
    margin-bottom: 16px;
}

.xg-coming-soon .tip {
    color: #888;
    font-size: 14px;
    margin: 0 auto 26px;
    max-width: 480px;
    line-height: 1.7;
}

/* ---------- Capabilities / Contact inner page helpers ---------- */
.xg-page-banner-note {
    color: rgba(255, 255, 255, .85);
    font-size: 15px;
    max-width: 640px;
}

/* contact page social links (icons only — no phone number shown) */
.xg-contact-social {
    list-style: none;
    padding: 0;
    margin: 26px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.xg-contact-social a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border: 1px solid #ddd;
    color: #333 !important;
    text-decoration: none;
    font-size: 14px;
    transition: all .3s ease;
}

.xg-contact-social a:hover {
    background: #d10000;
    border-color: #d10000;
    color: #fff !important;
}

.xg-contact-social i {
    font-size: 17px;
}

/* contact page: info column + inquiry form side by side */
.nylx .xg-inquiry-form {
    width: 48%;
    box-sizing: border-box;
}

/* contact page layout: left column = info card + map stacked, right column = form */
.xg-contact-wrap {
    align-items: stretch;
    padding-bottom: 70px;
}

.xg-contact-left {
    width: 48%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.xg-contact-left .lx_nn33 {
    width: auto;
}

.xg-contact-left .map_22 {
    width: 100%;
    flex: 1;
    margin-top: 30px;
    border: 1px solid #e5e5e5;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .06);
    box-sizing: border-box;
    background: #fff;
    overflow: hidden;
    display: flex;
}

.xg-contact-left .map_22 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.xg-inquiry-form {
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 34px 30px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .06);
}

.xg-inquiry-form h3 {
    font-size: 20px;
    color: #212121;
    margin: 0 0 20px;
    font-weight: 600;
}

.xg-inquiry-form .form-group {
    margin-bottom: 16px;
}

.xg-inquiry-form label {
    font-size: 13px;
    color: #555;
    display: block;
    margin-bottom: 6px;
}

.xg-inquiry-form input[type="text"],
.xg-inquiry-form input[type="email"],
.xg-inquiry-form textarea {
    width: 100%;
    border: 1px solid #ddd;
    padding: 11px 12px;
    font-size: 14px;
    color: #333;
    box-sizing: border-box;
    outline: none;
    transition: border-color .25s ease;
}

.xg-inquiry-form input:focus,
.xg-inquiry-form textarea:focus {
    border-color: #d10000;
}

.xg-inquiry-form textarea {
    min-height: 130px;
    resize: vertical;
}

.xg-inquiry-form .captcha-row {
    display: flex;
    gap: 10px;
    align-items: center;
}

.xg-inquiry-form .captcha-row img {
    height: 44px;
    border: 1px solid #ddd;
    cursor: pointer;
}

.xg-inquiry-form .btn-submit {
    width: 100%;
    background: #d10000;
    color: #fff;
    border: none;
    padding: 14px;
    font-size: 15px;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .3s ease;
}

.xg-inquiry-form .btn-submit:hover {
    background: #a80000;
}

.xg-form-msg {
    margin-top: 12px;
    font-size: 14px;
}

.xg-form-msg.ok {
    color: #179d1a;
}

.xg-form-msg.err {
    color: #d10000;
}

/* ---------- responsive ---------- */
/* 右侧悬浮客服条(62px宽, right:15px)在视口 ≤1770px 时会盖住 .wh 右缘内容。
   左右对称让位（各 80px）：内容区在页面内严格居中（修复“banner 以下板块偏左”），
   同时右缘止于 vw-80，悬浮条起于 vw-77，不产生遮挡；<768px 客服条隐藏，无需让位 */
@media (min-width: 768px) and (max-width: 1770px) {
    .wh {
        padding-left: 80px;
        padding-right: 80px;
    }
}

@media (max-width: 1440px) {
    .xg-hero-title {
        font-size: 52px;
    }
}

@media (max-width: 1200px) {
    .xg-hero-title {
        font-size: 44px;
    }

    .xg-biz-card {
        width: calc(50% - 30px);
    }

    .xg-tl-node .year {
        font-size: 17px;
    }
}

@media (max-width: 992px) {
    .xg-hero {
        min-height: 520px;
        height: auto;
        padding: 130px 0 90px;
    }

    /* 移动端取消负边距，避免网格超出视口产生横向滚动 */
    .xg-caps-grid {
        margin: 0;
    }

    .xg-hero-inner {
        padding-top: 0;
    }

    .xg-hero-title {
        font-size: 36px;
    }

    .xg-hero-sub {
        font-size: 16px;
    }

    .xg-caps-col {
        width: calc(100% - 40px);
    }

    .xg-cta-inner h2 {
        font-size: 30px;
    }

    .xg-tl-node .year {
        font-size: 15px;
        height: 34px;
        line-height: 34px;
    }

    .xg-tl-line {
        top: 59px;
    }

    .xg-tl-node h3 {
        font-size: 12px;
    }
}

@media (max-width: 768px) {
    .xg-biz {
        padding: 60px 0;
    }

    /* 移动端取消负边距，避免网格超出视口产生横向滚动 */
    .xg-biz-grid {
        margin: 0;
    }

    .xg-biz-card {
        width: calc(100% - 30px);
    }

    .xg-biz-card .img {
        height: 190px;
    }

    .xg-timeline {
        padding: 60px 0;
    }

    .xg-tl-line {
        display: none;
    }

    .xg-tl-nodes {
        display: block;
    }

    .xg-tl-node {
        width: 100%;
        display: flex;
        align-items: center;
        text-align: left;
        gap: 18px;
        padding: 14px 0;
        border-bottom: 1px dashed #e5e5e5;
    }

    .xg-tl-node .year {
        width: 84px;
        height: auto;
        line-height: 1.2;
        font-size: 22px;
        flex-shrink: 0;
    }

    .xg-tl-node .dot {
        display: none;
    }

    .xg-tl-node .info {
        flex: 1;
    }

    .xg-tl-node h3 {
        font-size: 13px;
        margin-bottom: 4px;
    }

    .xg-cases {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 8px 10px;
    }

    .xg-case-head .thumb {
        width: 110px;
        height: 62px;
    }

    .xg-certs {
        padding: 60px 0;
    }

    .xg-cards {
        gap: 12px;
    }

    .xg-cert-card.hrow {
        display: block;
    }

    .xg-cert-card.hrow img {
        width: 100%;
    }

    .xg-caps {
        padding: 60px 0;
    }

    .xg-caps-col {
        padding: 30px 24px;
    }

    .xg-cta {
        padding: 54px 0;
    }

    .xg-cta-inner {
        display: block;
        text-align: center;
    }

    .xg-cta-actions {
        justify-content: center;
        margin-top: 26px;
    }

    .xg-cta-actions .xg-btn {
        width: 100%;
        box-sizing: border-box;
    }

    .nylx .xg-inquiry-form {
        width: 100%;
        margin-top: 30px;
    }

    .xg-contact-left {
        width: 100%;
    }

    .xg-contact-left .map_22 {
        margin-top: 26px;
        min-height: 260px;
    }

    .xg-contact-wrap {
        padding-bottom: 50px;
    }

    .xg-contact-social {
        gap: 8px;
    }
}

/* ===== 右下角固定按钮组：WhatsApp / Facebook / 回到顶部（构思文档：点图标直达，不展示号码）===== */
.service-view {
    display: none !important;
}

.xg-float-contact {
    position: fixed;
    right: 20px;
    /* 整组贴底：回到顶部按钮已移入本组最下方（Facebook 之下） */
    bottom: 24px;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Cookie 弹条（z-index:999）显示时整组上移，避免回到顶部被压在弹条下不可点 */
body:has(.privacyPopup:not([style*="none"])) .xg-float-contact {
    bottom: 104px;
}

.xg-float-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    color: #fff;
    font-size: 24px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .28);
    transition: transform .2s, box-shadow .2s;
}

.xg-float-btn:hover,
.xg-float-btn:focus {
    color: #fff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
}

.xg-float-btn.xg-float-wa {
    background: #25d366;
}

.xg-float-btn.xg-float-fb {
    background: #1877f2;
}

/* 回到顶部按钮：并入本组，压过 index.css 里 .scroll_to_top2 的独立 fixed 定位 */
.xg-float-contact .scroll_to_top2 {
    position: static;
    top: auto;
    right: auto;
    z-index: auto;
    padding: 0;
    border: 0;
    line-height: normal;
    -webkit-appearance: none;
    appearance: none;
}

.xg-float-btn.xg-float-top {
    background: var(--sub-theme-color);
    font-size: 22px;
}

.xg-float-btn.xg-float-top:hover,
.xg-float-btn.xg-float-top:focus {
    background: var(--main-theme-color);
}

@media (max-width: 767px) {
    .xg-float-contact {
        right: 12px;
        bottom: calc(16px + env(safe-area-inset-bottom, 0px));
        gap: 8px;
    }

    .xg-float-btn {
        width: 44px;
        height: 44px;
        font-size: 22px;
    }

    .xg-float-btn.xg-float-top {
        font-size: 20px;
    }
}

/* 旧工具栏的移动端形态一并隐藏（其 Message 入口依赖已隐藏的 service-view，保留会成坏按钮） */
.mobile-service {
    display: none !important;
}

/* 移动/平板端：内页右侧工具条（菜单+返回顶部）原位于 right:15px bottom:100px，会与右下角按钮组重叠 */
@media (max-width: 991.98px) {
    .page-mob-tool {
        bottom: 200px;
    }

    /* 其返回顶部与本组的回到顶部重复，隐藏避免两个上箭头 */
    .page-mob-tool li.xymob-page-backtop {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .page-mob-tool {
        bottom: calc(176px + env(safe-area-inset-bottom, 0px));
    }

    /* 移动端 Cookie 弹条约 177px 高（top 约在 420px），整组上移到弹条之上：256+148=404 < 420 */
    body:has(.privacyPopup:not([style*="none"])) .xg-float-contact {
        bottom: calc(256px + env(safe-area-inset-bottom, 0px));
    }
}

/* 内页banner标题压在明亮楼体上，加阴影保证可读（2026-09-30 换新banner图后补充） */
.nbanner .shao1,
.nbanner .shao2 {
    text-shadow: 0 2px 14px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .5);
}

/* 关于页实拍图集竖拍对：厂门品牌照 + 抗震构件质检（2026-09-30 客户新图，两列等宽 3:4 封闭裁切） */
.ab_xx.ab_vv {
    margin-top: 20px;
}

.ab_xx.ab_vv li,
.ab_xx.ab_vv li:nth-child(2n) {
    width: 49.3%;
}

.ab_xx.ab_vv li a.img {
    display: block;
    overflow: hidden;
    aspect-ratio: 3 / 4;
}

.ab_xx.ab_vv li a.img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 768px) {
    .ab_xx.ab_vv li,
    .ab_xx.ab_vv li:nth-child(2n) {
        width: 100%;
    }
}


/* 关于页实拍图跑马灯（2026-09-30）：纯CSS无缝匀速滚动（双份轨道取半平移）+ Fancybox 点击放大，卡片等高按原比例宽窄交替 */
.xg-abmq {
    overflow: hidden;
    padding: 8px 0 12px;
}

.xg-abmq-track {
    display: flex;
    align-items: stretch;
    width: max-content;
    animation: xg-abmq-scroll 40s linear infinite;
}

/* 悬停暂停（纯CSS，续播位置精确衔接） */
.xg-abmq-wrap:hover .xg-abmq-track {
    animation-play-state: paused;
}

.xg-abmq-card {
    display: block;
    height: clamp(200px, 24vw, 300px);
    margin-right: 16px;
    overflow: hidden;
    border-radius: 4px;
    flex-shrink: 0;
}

.xg-abmq-card img {
    height: 100%;
    width: auto;
    display: block;
    transition: transform .5s;
    -webkit-transition: transform .5s;
}

.xg-abmq-card:hover img {
    transform: scale(1.06);
}

/* 轨道两份内容完全一致且卡片间距统一，位移-50%即无缝循环 */
@keyframes xg-abmq-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

/* 两端白色渐隐遮罩，图片滚入滚出更柔和 */
.xg-abmq-wrap {
    position: relative;
}

.xg-abmq-wrap::before,
.xg-abmq-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 70px;
    z-index: 2;
    pointer-events: none;
}

.xg-abmq-wrap::before {
    left: 0;
    background: linear-gradient(90deg, #fff 15%, rgba(255, 255, 255, 0));
}

.xg-abmq-wrap::after {
    right: 0;
    background: linear-gradient(270deg, #fff 15%, rgba(255, 255, 255, 0));
}

@media (max-width: 768px) {
    .xg-abmq-card {
        height: clamp(160px, 45vw, 220px);
    }

    .xg-abmq-wrap::before,
    .xg-abmq-wrap::after {
        width: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .xg-abmq-track {
        animation: none;
    }
}

/* 全球营销板块（2026-09-30 由旧 dfab 改版）：左列公司数据 + 右列昆山辐射全球营销地图 */
.xg-globe {
    background: #f7f7f7;
    padding: 80px 0 86px;
    margin-top: 3.5vw;
}

.xg-globe .xwtt {
    margin-bottom: 40px;
}

.xg-globe-grid {
    display: grid;
    grid-template-columns: 44% 1fr;
    gap: 56px;
    align-items: center;
}

.xg-globe-lead {
    font-size: 17px;
    line-height: 1.95;
    color: #757575;
    margin-bottom: 26px;
}

.xg-globe-stats {
    display: flex;
    gap: 48px;
    padding: 24px 0;
    border-top: 1px solid #e6e6e6;
    border-bottom: 1px solid #e6e6e6;
    margin-bottom: 26px;
}

.xg-globe-stat .counter {
    display: block;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.15;
    color: #d10000;
}

.xg-globe-stat em {
    display: block;
    font-style: normal;
    font-size: 13px;
    color: #999;
    letter-spacing: .04em;
    margin-top: 4px;
    text-transform: uppercase;
}

.xg-globe-block h4 {
    font-size: 15px;
    color: #333;
    font-weight: 600;
    margin: 22px 0 12px;
}

.xg-globe-chip {
    display: inline-block;
    padding: 6px 15px;
    margin: 0 8px 8px 0;
    background: #fff;
    border: 1px solid #e2e2e2;
    border-radius: 3px;
    font-size: 13px;
    color: #666;
    white-space: nowrap;
}

.xg-globe-chip-hq {
    background: #d10000;
    border-color: #d10000;
    color: #fff;
    font-weight: 600;
}

.xg-globe-chip-mkt {
    background: #fff5f5;
    border-color: #f0b5b5;
    color: #d10000;
}

.xg-globe-cta {
    margin-top: 30px;
}

.xg-globe-cta .xg-btn {
    margin-right: 14px;
    margin-bottom: 8px;
}

.xg-globe-map img {
    width: 100%;
    display: block;
}

.xg-globe-map-cap {
    font-size: 12px;
    color: #999;
    text-align: center;
    margin-top: 12px;
}

@media (max-width: 992px) {
    .xg-globe {
        padding: 48px 0 52px;
        margin-top: 30px;
    }

    .xg-globe-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .xg-globe-stats {
        gap: 28px;
    }

    .xg-globe-stat .counter {
        font-size: 32px;
    }
}

@media (max-width: 480px) {
    .xg-globe-stats {
        flex-wrap: wrap;
        gap: 18px 32px;
    }
}
