/* 行业详情页的内容区与展示台均以 PSD 的 1920 设计画布为基准。 */
.zbt-solution-detail {
    min-inline-size: 0;
    overflow: clip;
    color: #1a1a1a;
    font-family: "HarmonyOS Sans SC", "Microsoft YaHei", sans-serif;
}

.zbt-solution-detail__canvas {
    box-sizing: border-box;
    inline-size: min(63.5416667vw, 1220px);
    margin-inline: auto;
}

/* Reason: 排版和响应式规格由公共 zbt-page-hero 承担；详情页仅保留原图裁切后的回退底色。 */
.zbt-page-hero--solution-detail.zbt-solution-detail__hero {
    background-color: #0b2d7c;
}

.zbt-solution-detail__need {
    box-sizing: border-box;
    min-block-size: min(24.7916667vw, 476px);
    overflow: clip;
    background: #fff;
}

.zbt-solution-detail__need-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(33.5416667vw, 644px);
    gap: min(3.3333333vw, 64px);
    align-items: center;
    inline-size: min(calc(100% - (var(--zbt-layout-gutter) * 2)), var(--zbt-layout-wide-max));
    margin-inline: auto;
    max-inline-size: var(--zbt-layout-wide-max);
    min-block-size: min(24.7916667vw, 476px);
}

.zbt-solution-detail__need-copy {
    min-inline-size: 0;
}

.zbt-solution-detail__need-copy h2 {
    margin: 0;
    color: #0032c8;
    font-size: min(3.0729167vw, 59px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.zbt-solution-detail__need-copy p {
    max-inline-size: 650px;
    margin: min(2.1875vw, 42px) 0 0;
    color: #1a1a1a;
    font-size: min(1.2635417vw, 24.26px);
    font-weight: 300;
    line-height: 1.91;
    letter-spacing: 0;
}

.zbt-solution-detail__need-media {
    box-sizing: border-box;
    inline-size: min(33.5416667vw, 644px);
    block-size: 237px;
    margin: 0;
    overflow: hidden;
    border-radius: 10px;
}

.zbt-solution-detail__need-media img {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: center;
}

.zbt-solution-detail__stage {
    position: relative;
    /* Reason: 卡片可由后台文案撑高；展示台保留 PSD 最小高度，并随内容扩展，不能截断内容卡底边。 */
    block-size: auto;
    min-block-size: min(calc(100vw * var(--zbt-solution-detail-stage-ratio, .8682292)), var(--zbt-solution-detail-stage-height, 1667px));
    overflow: clip;
    background-color: #06143f;
}

.zbt-solution-detail__stage::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background-image: var(--zbt-solution-detail-stage-image, none);
    /* Reason: 区块高于 PSD 原图时，等比例放大后以中心为裁切窗口，避免纵向拉伸背景。 */
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    opacity: var(--zbt-solution-detail-background-opacity, 1);
    transition: opacity 240ms ease;
}

.zbt-solution-detail__stage-canvas {
    position: relative;
    z-index: 1;
}

.zbt-solution-detail__stage-canvas {
    padding-top: min(5.7291667vw, 110px);
    padding-bottom: min(6.4583333vw, 124px);
}

.zbt-solution-detail-card {
    box-sizing: border-box;
    border: 1px solid rgb(160 191 255 / 0.8);
    border-radius: 8px;
    background: rgb(0 50 200 / 0.6);
    color: #fff;
    opacity: 1;
    transition: opacity 240ms ease;
}

.zbt-solution-detail__stage.is-reveal-ready [data-zbt-solution-detail-reveal] {
    opacity: 0;
}

.zbt-solution-detail__stage.is-reveal-ready [data-zbt-solution-detail-reveal].is-revealed {
    opacity: 1;
}

.zbt-solution-detail-card h2,
.zbt-solution-detail-card h3,
.zbt-solution-detail-card p {
    margin: 0;
}

.zbt-solution-detail-card--summary {
    block-size: min(calc(100vw * 472 / 1920), 472px);
    min-block-size: 0;
    padding: min(4.5833333vw, 88px) min(3.125vw, 60px) min(3.4375vw, 66px);
    background: rgb(0 50 200 / 0.5);
}

.zbt-solution-detail-card--summary h2,
.zbt-solution-detail-card--value h2,
.zbt-solution-detail-card--application h2 {
    color: #fff;
    font-size: min(3.0729167vw, 59px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.zbt-solution-detail-card--summary p {
    max-inline-size: 1060px;
    margin-top: min(3.75vw, 72px);
    color: #fff;
    font-size: min(1.2635417vw, 24.26px);
    font-weight: 400;
    line-height: 1.91;
    white-space: normal;
}

.zbt-solution-detail__cards-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: min(4.375vw, 84px);
    align-items: stretch;
    margin-top: min(3.4895833vw, 67px);
}

.zbt-solution-detail-card--value,
.zbt-solution-detail-card--application {
    /* Reason: 后台可维护的价值说明长度不同，卡片以 PSD 高度为下限并由最长内容确定同一行高度，避免文字溢出卡片。 */
    block-size: auto;
    min-block-size: min(calc(100vw * 894 / 1920), 894px);
    padding: min(4.5833333vw, 88px) min(3.125vw, 60px);
    background: rgb(0 50 200 / 0.61);
}

.zbt-solution-detail-card--value {
    display: flex;
    flex-direction: column;
}

.zbt-solution-detail__value-list,
.zbt-solution-detail__application-list {
    padding: 0;
    margin: min(4.7916667vw, 92px) 0 0;
    list-style: none;
}

.zbt-solution-detail__value-list li {
    display: grid;
    grid-template-columns: clamp(22px, 1.5625vw, 30px) minmax(0, 1fr);
    gap: min(.78125vw, 15px);
    align-items: start;
    margin-top: 0;
}

.zbt-solution-detail__value-list li > span,
.zbt-solution-detail__application-list li > span {
    position: relative;
    display: block;
    inline-size: clamp(22px, 1.5625vw, 30px);
    block-size: clamp(22px, 1.5625vw, 30px);
    margin-top: min(.2604167vw, 5px);
    margin-inline-start: clamp(6px, .46875vw, 9px);
    border: 2px solid #fff;
    border-radius: 50%;
}

.zbt-solution-detail__value-list li > span::after,
.zbt-solution-detail__application-list li > span::after {
    position: absolute;
    top: clamp(6.5px, .46875vw, 9px);
    left: clamp(5.8px, .4166667vw, 8px);
    display: block;
    inline-size: clamp(7.3px, .5208333vw, 10px);
    block-size: clamp(4.4px, .3125vw, 6px);
    border-bottom: 2px solid #fff;
    border-left: 2px solid #fff;
    content: "";
    transform: rotate(-45deg);
}

.zbt-solution-detail__value-list h3,
.zbt-solution-detail__application-list p {
    color: #fff;
    font-size: min(1.8375vw, 35.28px);
    font-weight: 700;
    line-height: 1.35;
}

.zbt-solution-detail__value-list p {
    margin-top: min(.7291667vw, 14px);
    color: #fff;
    font-size: min(1.2635417vw, 24.26px);
    font-weight: 400;
    line-height: 1.9;
}

.zbt-solution-detail__application-list li {
    position: relative;
    display: grid;
    grid-template-columns: clamp(22px, 1.5625vw, 30px) minmax(0, 1fr);
    gap: min(3.1770833vw, 61px);
    align-items: start;
    padding-block: min(1.5625vw, 30px);
    border-bottom: 0;
}

.zbt-solution-detail__application-list li:not(:last-child)::after {
    position: absolute;
    right: clamp(-8px, -.4166667vw, -4px);
    bottom: 0;
    left: clamp(-6px, -.3125vw, -3px);
    block-size: 2px;
    background: repeating-linear-gradient(90deg, rgb(255 255 255 / .88) 0 4px, transparent 4px 8px);
    content: "";
}

.zbt-solution-detail__application-list {
    margin-top: min(3.3333333vw, 64px);
}

.zbt-solution-detail__application-list li:first-child {
    padding-top: 0;
}

@media (max-width: 92rem) {
    .zbt-solution-detail__need-layout {
        grid-template-columns: minmax(0, 1fr) min(33.5416667vw, 644px);
        gap: min(3.3333333vw, 64px);
        inline-size: min(calc(100% - (var(--zbt-layout-gutter) * 2)), var(--zbt-layout-wide-max));
        margin-inline: auto;
    }

    .zbt-solution-detail__need-media {
        inline-size: 100%;
        block-size: auto;
        aspect-ratio: 644 / 237;
    }

    .zbt-solution-detail__stage-canvas {
        padding-top: 120px;
        padding-bottom: min(3.90625vw, 75px);
    }

    .zbt-solution-detail__stage {
        min-block-size: min(calc(100vw * var(--zbt-solution-detail-stage-ratio, .8682292)), var(--zbt-solution-detail-stage-height, 1667px));
    }

    .zbt-solution-detail-card--summary,
    .zbt-solution-detail-card--value,
    .zbt-solution-detail-card--application {
        padding: 56px 44px;
    }
}

@media (max-width: 48rem) {
    .zbt-solution-detail__canvas {
        inline-size: calc(100% - 48px);
    }

    .zbt-solution-detail__need-layout {
        display: block;
        inline-size: calc(100% - 48px);
        padding-block: 64px;
    }

    .zbt-solution-detail__need-copy h2 {
        font-size: 42px;
    }

    .zbt-solution-detail__need-copy p {
        margin-top: 28px;
        font-size: 18px;
        line-height: 1.8;
    }

    .zbt-solution-detail__need-media {
        inline-size: 100%;
        margin-top: 32px;
    }

    .zbt-solution-detail__stage {
        block-size: auto;
        min-block-size: 0;
        padding-block: 64px;
    }

    .zbt-solution-detail__stage::before {
        background-position: center;
        background-size: cover;
    }

    .zbt-solution-detail__stage-canvas {
        padding-top: 0;
    }

    .zbt-solution-detail-card--summary,
    .zbt-solution-detail-card--value,
    .zbt-solution-detail-card--application {
        block-size: auto;
        min-block-size: 0;
        padding: 40px 28px;
    }

    .zbt-solution-detail-card--summary h2,
    .zbt-solution-detail-card--value h2,
    .zbt-solution-detail-card--application h2 {
        font-size: 34px;
    }

    .zbt-solution-detail-card--summary p {
        margin-top: 36px;
        font-size: 18px;
        line-height: 1.8;
    }

    .zbt-solution-detail__cards-row {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-top: 24px;
    }

    .zbt-solution-detail__value-list,
    .zbt-solution-detail__application-list {
        margin-top: 42px;
    }

    .zbt-solution-detail__application-list li {
        gap: 24px;
    }

    .zbt-solution-detail__value-list li {
        gap: 15px;
    }

    .zbt-solution-detail__value-list h3,
    .zbt-solution-detail__application-list p {
        font-size: 24px;
    }

    .zbt-solution-detail__value-list p {
        font-size: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zbt-solution-detail__stage::before,
    .zbt-solution-detail-card {
        transition: none;
    }

    .zbt-solution-detail__stage.is-reveal-ready [data-zbt-solution-detail-reveal] {
        opacity: 1;
    }
}
