@charset "utf-8";
/* ==========================================================================
   富源晟科技 · 「亮堂清爽」改版样式 v1
   用途：亮色首屏 Banner + 解决方案 / 成功案例板块升级
   加载顺序：必须放在 home-v5.css（首页）或 pages.css / widgets.css（内页）之后
   ========================================================================== */

/* ---------------- 设计令牌 ---------------- */
:root {
    --lt-ink: #0B1524;
    --lt-ink-2: #55637A;
    --lt-ink-3: #94A1B4;
    --lt-line: #E9F0F9;
    --lt-soft: #F5F9FF;
    --lt-brand: #1667FF;
    --lt-brand-2: #35A2FF;
    --lt-brand-soft: #EAF3FF;
    --lt-white: #FFFFFF;
    --lt-r: 18px;
    --lt-r-sm: 14px;
    --lt-shadow: 0 24px 54px -32px rgba(11, 21, 36, .38);
    --lt-shadow-sm: 0 12px 28px -20px rgba(11, 21, 36, .32);
}

/* ==========================================================================
   一、亮色首屏 Banner
   图片整体提亮后，文字改为深色 + 左侧柔光玻璃底板，保证可读
   ========================================================================== */
.fx-hero {
    height: 720px;
    background: #EAF1FA;
}

/* 真实照片作底：左侧压白保证深色文字可读，右侧留白露出实景 */
.fx-hero .fx-veil {
    background: linear-gradient(100deg,
            rgba(255, 255, 255, .97) 0%,
            rgba(255, 255, 255, .94) 16%,
            rgba(255, 255, 255, .86) 30%,
            rgba(255, 255, 255, .62) 44%,
            rgba(255, 255, 255, .30) 60%,
            rgba(255, 255, 255, .08) 78%,
            rgba(255, 255, 255, 0) 92%);
}

/* 照片统一轻微提亮 + 降饱和，整体更"亮堂清爽" */
.fx-hero .fx-media {
    filter: brightness(1.06) saturate(.92);
}

.fx-hero .fx-slide[data-slide="2"] .fx-media {
    filter: brightness(1.12) saturate(.88);
}

/* 底部一条极淡的白色过渡，让 Banner 自然融进页面（层级低于文字与控件） */
.fx-hero::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 96px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .7));
    z-index: 1;
    pointer-events: none;
}

/* 文字改为深色 */
.fx-hero-copy {
    max-width: 640px;
}

.fx-hero .fx-kicker {
    background: rgba(22, 103, 255, .09);
    border: 1px solid rgba(22, 103, 255, .22);
    color: var(--lt-brand);
    font-weight: 500;
}

.fx-hero .fx-kicker i {
    color: var(--lt-brand);
}

.fx-hero-copy h1,
h1.fx-captions {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.fx-hero .fx-caption-title {
    color: var(--lt-ink);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.2;
    font-size: clamp(30px, 3.6vw, 50px);
}

.fx-hero .fx-caption-sub {
    margin-top: 14px;
    font-size: clamp(15px, 1.5vw, 20px);
    line-height: 1.6;
    color: var(--lt-ink-2);
    font-weight: 400;
}

.fx-hero .fx-captions {
    min-height: 168px;
    margin-top: 26px;
}

/* 亮点标签：亮底深字 */
.fx-hero .fx-hero-tags {
    margin-top: 30px;
}

.fx-hero .fx-hero-tags li {
    color: var(--lt-ink-2);
    background: rgba(255, 255, 255, .8);
    border: 1px solid rgba(22, 103, 255, .18);
    font-weight: 500;
}

/* 首屏按钮组 */
.fx-hero .fx-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

/* ---- 首屏右侧实物图：浅色矢量底 + 真实产品照 ----
   既有工业实拍的说服力，又保证整体"亮堂清爽" */
/* 实物卡片方案已弃用（与照片底图风格割裂），保留样式但不再显示 */
.fx-hero .fx-shot {
    display: none;
    position: absolute;
    right: 4.6%;
    top: 50%;
    transform: translateY(-50%);
    width: 38%;
    max-width: 720px;
    height: 430px;
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 42px 72px -40px rgba(11, 21, 36, .45),
        0 0 0 1px rgba(11, 21, 36, .06);
    z-index: 3;
}

.fx-hero .fx-shot img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fx-hero .fx-shot-tag {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 15px;
    border-radius: 999px;
    background: rgba(11, 21, 36, .62);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: #fff;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .3px;
}

.fx-hero .fx-shot-tag i {
    color: #7FB6FF;
    font-size: 12px;
}

/* 按钮：主蓝 + 描边 */
.fx-hero .fx-btn-primary {
    background: var(--lt-brand);
    color: #fff;
    box-shadow: 0 14px 26px -14px rgba(22, 103, 255, .65);
}

.fx-hero .fx-btn-primary:hover {
    background: #0A4FD1;
    transform: translateY(-2px);
}

.fx-hero .fx-btn-line {
    border: 1px solid rgba(11, 21, 36, .18);
    color: var(--lt-ink);
    background: rgba(255, 255, 255, .6);
}

.fx-hero .fx-btn-line:hover {
    border-color: var(--lt-brand);
    color: var(--lt-brand);
    transform: translateY(-2px);
}

/* 控件颜色转深 */
.fx-hero .fx-counter,
.fx-hero .fx-counter b {
    color: var(--lt-ink-2);
}

.fx-hero .fx-counter b {
    color: var(--lt-ink);
}

.fx-hero .fx-prog span {
    background: rgba(11, 21, 36, .16);
}

.fx-hero .fx-prog.is-active span {
    background: var(--lt-brand);
}

.fx-hero .fx-prog:hover span {
    background: rgba(22, 103, 255, .45);
}

.fx-hero .fx-arrow {
    border-color: rgba(11, 21, 36, .18);
    color: var(--lt-ink);
    background: rgba(255, 255, 255, .6);
}

.fx-hero .fx-arrow:hover {
    background: var(--lt-brand);
    border-color: var(--lt-brand);
    color: #fff;
}

/* 数据条：更亮更轻 */
.fx-strip {
    margin-top: -64px;
    border-radius: 22px;
    box-shadow: 0 26px 60px -34px rgba(11, 21, 36, .35);
    padding: 30px 8px;
}

.fx-strip-item {
    border-left: 1px solid var(--lt-line);
}

.fx-strip-item span {
    color: var(--lt-ink-3);
}

.fx-strip-item strong {
    color: var(--lt-brand);
}

/* ==========================================================================
   二、通用区块：留白更足（清爽）
   ========================================================================== */
.fys-sec {
    padding: 88px 0;
}

.fys-sec--tight {
    padding: 78px 0;
}

.fys-sec--alt {
    background: linear-gradient(180deg, #F4F8FF 0%, #FBFCFF 100%);
}

.fys-head {
    margin-bottom: 52px;
}

.fys-head h2,
.fys-partners-title h2 {
    font-size: clamp(27px, 3vw, 40px);
}

.fys-head p,
.fys-partners-title p {
    font-size: 15.5px;
    color: var(--lt-ink-2);
}

/* ==========================================================================
   三、解决方案 · 场景图文卡
   ========================================================================== */
.sc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.sc-card {
    position: relative;
    display: block;
    min-height: 300px;
    border-radius: var(--lt-r);
    overflow: hidden;
    background: #dfe7f1;
    isolation: isolate;
}

.sc-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
            rgba(6, 18, 38, 0) 22%,
            rgba(6, 18, 38, .30) 52%,
            rgba(6, 18, 38, .82) 100%);
    z-index: 1;
}

.sc-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.22, 1, .36, 1);
}

.sc-card:hover .sc-img {
    transform: scale(1.07);
}

.sc-icon {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    color: #fff;
    background: rgba(22, 103, 255, .92);
    box-shadow: 0 10px 22px -10px rgba(22, 103, 255, .9);
    backdrop-filter: blur(4px);
}

.sc-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 22px 22px 24px;
    color: #fff;
}

.sc-body em {
    display: block;
    font-style: normal;
    font-size: 11.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .72);
}

.sc-body h3 {
    margin-top: 7px;
    font-size: 19px;
    color: #fff;
}

.sc-body p {
    margin-top: 8px;
    font-size: 13.5px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .82);
}

.sc-meta {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, .22);
    font-size: 12.5px;
    color: rgba(255, 255, 255, .9);
}

.sc-meta i {
    font-size: 11px;
    color: rgba(255, 255, 255, .75);
}

.sc-meta b {
    font-weight: 500;
}

/* 「查看方案」不继承上方英文小标题的样式 */
.sc-meta em {
    display: inline-block;
    margin-left: auto;
    font-style: normal;
    font-size: 12.5px;
    text-transform: none;
    letter-spacing: normal;
    color: #7FC0FF;
    transition: transform .25s ease;
}

.sc-card:hover .sc-meta em {
    transform: translateX(4px);
}

/* 次级场景：浅色胶囊 */
.sc-more {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    padding-top: 22px;
    border-top: 1px dashed var(--lt-line);
}

.sc-more-label {
    font-size: 13px;
    color: var(--lt-ink-3);
    margin-right: 2px;
}

.sc-more a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--lt-line);
    font-size: 13.5px;
    color: var(--lt-ink-2);
    transition: color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.sc-more a i {
    font-size: 11px;
    color: var(--lt-brand);
}

.sc-more a:hover {
    color: var(--lt-brand);
    border-color: rgba(22, 103, 255, .35);
    box-shadow: var(--lt-shadow-sm);
    transform: translateY(-2px);
}

/* ==========================================================================
   四、成功案例 · 拼接式案例墙
   ========================================================================== */
.cs-wall {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 234px;
    gap: 20px;
}

.cs2 {
    position: relative;
    display: block;
    border-radius: var(--lt-r);
    overflow: hidden;
    background: #dfe7f1;
    isolation: isolate;
}

.cs2::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
            rgba(6, 18, 38, 0) 18%,
            rgba(6, 18, 38, .26) 48%,
            rgba(6, 18, 38, .84) 100%);
    z-index: 1;
}

.cs2 img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.22, 1, .36, 1);
}

/* 让点击穿透到图片（内页图片可点开灯箱） */
.cs2::before,
.cs2-body,
.cs2-tag {
    pointer-events: none;
}

.cs2:hover img {
    transform: scale(1.07);
}

.cs2-tag {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    padding: 5px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: var(--lt-brand);
    font-size: 12px;
    font-weight: 500;
    backdrop-filter: blur(6px);
}

.cs2-body {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 20px 22px 22px;
    color: #fff;
}

.cs2-body h3,
.cs2-body h4 {
    font-size: 17px;
    color: #fff;
}

.cs2-body p {
    margin-top: 7px;
    font-size: 13.5px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .8);
}

/* 主推案例：占 2 列 2 行 */
.cs2--lead {
    grid-column: span 2;
    grid-row: span 2;
}

.cs2--lead .cs2-body {
    padding: 28px 30px 30px;
}

.cs2--lead .cs2-body h3 {
    font-size: 24px;
}

.cs2--lead .cs2-body p {
    max-width: 520px;
    font-size: 14.5px;
}

/* 成果数据 */
.cs2-kpi {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.cs2-kpi div {
    min-width: 104px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .2);
    backdrop-filter: blur(6px);
}

.cs2-kpi b {
    display: block;
    font-size: 21px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}

.cs2-kpi b em {
    font-style: normal;
    font-size: 13px;
    font-weight: 500;
    margin-left: 2px;
    color: rgba(255, 255, 255, .8);
}

.cs2-kpi span {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    color: rgba(255, 255, 255, .78);
}

.cs2--sm .cs2-kpi {
    margin-top: 12px;
}

.cs2--sm .cs2-kpi div {
    min-width: 0;
    padding: 6px 11px;
}

.cs2--sm .cs2-kpi b {
    font-size: 16px;
}

.cs2-arrow {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 2;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--lt-ink);
    background: rgba(255, 255, 255, .92);
    font-size: 13px;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .25s ease, transform .25s ease, background .25s ease, color .25s ease;
}

.cs2:hover .cs2-arrow {
    opacity: 1;
    transform: none;
}

.cs2-arrow:hover {
    background: var(--lt-brand);
    color: #fff;
}

/* 成果条 */
.cs-bar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-top: 20px;
}

.cs-bar-item {
    padding: 22px 24px;
    border-radius: var(--lt-r-sm);
    background: #fff;
    border: 1px solid var(--lt-line);
    box-shadow: var(--lt-shadow-sm);
}

.cs-bar-item b {
    display: block;
    font-size: 28px;
    font-weight: 700;
    color: var(--lt-brand);
    line-height: 1.15;
    letter-spacing: -.02em;
}

.cs-bar-item b em {
    font-style: normal;
    font-size: 15px;
    font-weight: 600;
    margin-left: 2px;
}

.cs-bar-item span {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: var(--lt-ink-3);
}

/* ==========================================================================
   五、亮色 CTA
   ========================================================================== */
.lt-cta {
    position: relative;
    overflow: hidden;
    padding: 76px 0;
    background: linear-gradient(120deg, #EEF5FF 0%, #FFFFFF 55%, #F3F8FF 100%);
}

.lt-cta::before {
    content: '';
    position: absolute;
    right: -120px;
    top: -140px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(22, 103, 255, .16), transparent 68%);
    pointer-events: none;
}

.lt-cta-in {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 44px;
    flex-wrap: wrap;
}

.lt-cta h2 {
    font-size: clamp(24px, 2.8vw, 34px);
    color: var(--lt-ink);
    margin-bottom: 12px;
}

.lt-cta p {
    font-size: 15px;
    color: var(--lt-ink-2);
    max-width: 560px;
}

.lt-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.lt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    padding: 0 26px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
}

.lt-btn i {
    font-size: 12px;
}

.lt-btn-primary {
    background: var(--lt-brand);
    color: #fff;
    box-shadow: 0 16px 30px -16px rgba(22, 103, 255, .7);
}

.lt-btn-primary:hover {
    background: #0A4FD1;
    transform: translateY(-2px);
}

.lt-btn-line {
    border: 1px solid rgba(11, 21, 36, .16);
    color: var(--lt-ink);
    background: #fff;
}

.lt-btn-line:hover {
    border-color: var(--lt-brand);
    color: var(--lt-brand);
    transform: translateY(-2px);
}

/* ==========================================================================
   五·补 产品区与能力区：提亮底色、弱化边框（整体更清爽）
   ========================================================================== */
.fys-product {
    border-color: var(--lt-line);
}

.fys-product-media {
    background: linear-gradient(160deg, #F1F6FC 0%, #F8FAFE 100%);
}

.fys-product-chips li {
    background: var(--lt-soft);
    border: 1px solid #EDF3FB;
    color: var(--lt-ink-2);
}

.fys-cap {
    border-color: var(--lt-line);
    background: linear-gradient(180deg, #FFFFFF 0%, #FCFDFF 100%);
}

.fys-cap-top i {
    background: linear-gradient(135deg, var(--lt-brand-soft) 0%, #FFFFFF 100%);
}

.fys-partners .fys-marquee-group li {
    border-color: var(--lt-line);
}

/* ==========================================================================
   六、响应式
   ========================================================================== */
@media (max-width: 1080px) {
    .sc-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .cs-wall {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 220px;
    }

    .cs2--lead {
        grid-column: span 2;
        grid-row: span 1;
        min-height: 320px;
    }

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

@media (max-width: 1180px) {
    .fx-hero .fx-shot {
        width: 33%;
        height: 340px;
    }
}

@media (max-width: 960px) {
    .fx-hero {
        height: 620px;
    }

    /* 窄屏让文字独占首屏，实物图收起 */
    .fx-hero .fx-shot {
        display: none;
    }

    .fx-hero .fx-veil {
        background: linear-gradient(100deg,
                rgba(255, 255, 255, .96) 0%,
                rgba(255, 255, 255, .88) 52%,
                rgba(255, 255, 255, .55) 78%,
                rgba(255, 255, 255, .18) 100%);
    }

    .fys-sec {
        padding: 68px 0;
    }
}

@media (max-width: 640px) {
    .fx-hero {
        height: 520px;
    }

    .fx-hero .fx-veil {
        background: linear-gradient(180deg,
                rgba(255, 255, 255, .96) 0%,
                rgba(255, 255, 255, .90) 46%,
                rgba(255, 255, 255, .62) 76%,
                rgba(255, 255, 255, .26) 100%);
    }

    .fx-hero .fx-captions {
        min-height: 150px;
    }

    .fx-hero .fx-caption-title {
        font-size: 26px;
    }

    .fx-hero .fx-caption-sub {
        font-size: 14px;
    }

    .sc-grid,
    .cs-wall {
        grid-template-columns: 1fr;
    }

    .cs-wall {
        grid-auto-rows: auto;
    }

    .cs2 {
        min-height: 260px;
    }

    .cs2--lead {
        grid-column: span 1;
        grid-row: span 1;
        min-height: 340px;
    }

    .cs2--lead .cs2-body h3 {
        font-size: 20px;
    }

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

    .cs-bar-item {
        padding: 16px 18px;
    }

    .cs-bar-item b {
        font-size: 22px;
    }

    .lt-cta {
        padding: 56px 0;
    }

    .lt-cta-actions {
        width: 100%;
    }

    .lt-cta-actions .lt-btn {
        flex: 1 1 auto;
    }
}
