/* ==========================================================================
 * building 主题 · 建筑/工程企业站风格（参考 Billdins 模板）
 * 仅作用于 body.bd-theme，不改动 default / alt / alt2 主题与其它页面
 * ========================================================================== */

/* ---------- 主题变量：主色改为工程黄，保留原有 tp-* 结构类 ---------- */
body.bd-theme {
    /* Billdins 配色：主色工程橙 #ff5e14 · 深色 #0e121d · 白底 */
    --tp-primary: #ff5e14;
    --tp-primary-dark: #e04a00;
    --bd-dark: #0e121d;
    --bd-dark-2: #1b202c;
    --bd-line: #e6eaf1;
    --bd-text: #33405c;
    --bd-muted: #7a8699;
    --bd-radius: 3px;
}

body.bd-theme {
    color: var(--bd-text);
    background: #fff;
}

body.bd-theme .tp-container { max-width: 1400px; }

/* ---------- 顶栏：左 营业时间/电话/地址 · 右 社交/语言/登录 ---------- */
body.bd-theme .tp-topbar {
    background: var(--bd-dark);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    color: #cbd5e1;
    font-size: .82rem;
}
body.bd-theme .tp-topbar__inner { min-height: 36px; gap: 14px; }
body.bd-theme .tp-topbar__meta {
    display: flex;
    align-items: center;
    gap: 28px;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
}
body.bd-theme .tp-topbar__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #cbd5e1;
    min-width: 0;
}
body.bd-theme .tp-topbar__meta-item i { color: var(--tp-primary); font-size: .8rem; }
body.bd-theme .tp-topbar__meta-link { color: #cbd5e1; text-decoration: none; transition: color .2s; }
body.bd-theme .tp-topbar__meta-link:hover { color: var(--tp-primary); }
body.bd-theme .tp-topbar__meta-item--addr { overflow: hidden; text-overflow: ellipsis; }
body.bd-theme .tp-topbar__social { display: inline-flex; align-items: center; gap: 2px; }
body.bd-theme .tp-topbar__social a {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #cbd5e1;
    font-size: .76rem;
    text-decoration: none;
    transition: all .2s;
}
body.bd-theme .tp-topbar__social a:hover { background: var(--tp-primary); color: #0f172a; }
body.bd-theme .tp-topbar__lang-btn { color: #cbd5e1; }
body.bd-theme .tp-topbar__user a { color: #cbd5e1; }
body.bd-theme .tp-topbar__user a:hover { color: var(--tp-primary); }
body.bd-theme .tp-topbar__user-sep { background: rgba(255, 255, 255, .22); }
@media (max-width: 1199.98px) {
    body.bd-theme .tp-topbar__meta { gap: 18px; }
    body.bd-theme .tp-topbar__meta-item--addr { display: none; }
}

/* ---------- 头部：白条 · 左侧橙色斜角 Logo 块 + 居中导航 + 右侧工具 ---------- */
body.bd-theme .tp-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: #fff;
    box-shadow: 0 8px 24px rgba(14, 18, 29, .08);
    padding: 0;
}
body.bd-theme .tp-header__inner { min-height: 64px; }
/* 橙色斜块 Logo 区（参考 Billdins）：从容器左缘开始，仅包住 Logo，右缘斜切 */
body.bd-theme .tp-header__brand {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-width: 200px;
    min-height: 64px;
    margin-right: 1rem;
    padding: 0 38px 0 20px;
    background: var(--tp-primary);
    clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
}
body.bd-theme .tp-header__logo {
    height: 34px;
    width: auto;
    filter: brightness(0) invert(1);
}
body.bd-theme .tp-header__title {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: .5px;
    color: var(--bd-dark);
    line-height: 1.2;
}
body.bd-theme .tp-header__slogan {
    font-size: .68rem;
    letter-spacing: .22em;
    color: var(--bd-muted);
    text-transform: uppercase;
}

/* 导航：嵌入白色头部，深色大写文字 + 橙色高亮 */
body.bd-theme .tp-header__nav {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    padding: 0;
}
body.bd-theme .tp-header__tools {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}
body.bd-theme .tp-header__tool {
    position: relative;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    border-radius: 50%;
    color: var(--bd-dark);
    font-size: 1.02rem;
    text-decoration: none;
    transition: all .2s;
}
body.bd-theme .tp-header__tool:hover {
    background: rgba(255, 94, 20, .12);
    color: var(--tp-primary);
}
body.bd-theme .tp-header__tool-badge {
    position: absolute;
    top: 1px;
    right: -1px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--tp-primary);
    color: #fff;
    font-size: .66rem;
    font-weight: 800;
    font-style: normal;
    line-height: 17px;
    text-align: center;
}
body.bd-theme .tp-header__quote {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-left: 12px;
    padding: .68rem 1.5rem;
    background: var(--tp-primary);
    color: #fff;
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 4px;
    transition: all .2s;
    white-space: nowrap;
}
body.bd-theme .tp-header__quote:hover { background: var(--tp-primary-dark); color: #fff; }
body.bd-theme .tp-header__quote i { font-size: .8rem; }
@media (max-width: 1399.98px) { body.bd-theme .tp-header__quote { padding: .8rem 1.25rem; } }
@media (max-width: 1199.98px) {
    body.bd-theme .tp-header__quote { display: none; }
    body.bd-theme .tp-header .tp-navbar .nav-link { padding: 1.35rem .62rem; }
}

/* 搜索面板：点击放大镜展开（浮层，不推挤页面内容） */
body.bd-theme .tp-header__searchbar {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1040;
    background: #fff;
    border-top: 1px solid var(--bd-line);
    box-shadow: 0 22px 34px rgba(15, 23, 42, .12);
}
body.bd-theme .tp-header__searchbar.is-open { display: block; }
body.bd-theme .tp-header__searchbar .tp-container { padding-top: 20px; padding-bottom: 20px; }
body.bd-theme .tp-header__search { max-width: 680px; }
body.bd-theme .tp-header__search .form-control {
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius) 0 0 var(--bd-radius);
    height: 56px;
    font-size: 1.02rem;
    padding-left: 1.5rem;
    padding-right: 4.75rem;
}
body.bd-theme .tp-header__search .form-control::placeholder { font-size: .95rem; }
body.bd-theme .tp-header__search-btn {
    background: var(--tp-primary);
    color: #fff;
    border: 0;
    right: 6px;
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
    border-radius: 50%;
}

/* ---------- 导航：白色头部内嵌，深色文字 + 黄色高亮（动态菜单结构不变） ---------- */
body.bd-theme .tp-navbar {
    background: transparent;
    box-shadow: none;
    padding: 0;
    --bs-navbar-padding-x: 0;
    --bs-navbar-padding-y: 0;
    flex-wrap: nowrap;
}
/* 兜底：清掉导航上任何残留的内联阴影（如旧版模板 style 属性） */
body.bd-theme .tp-header__nav,
body.bd-theme nav.tp-navbar { box-shadow: none !important; }
body.bd-theme .tp-navbar .navbar-collapse { justify-content: center; flex-wrap: nowrap; }
body.bd-theme .tp-navbar .navbar-nav {
    width: auto;
    justify-content: flex-start;
    flex-wrap: nowrap;
}
body.bd-theme .tp-navbar .nav-item { position: relative; }
/* 覆盖 common.css：.tp-navbar .navbar-nav .nav-link 的 flex:1 / min-height / active 橙底 */
body.bd-theme .tp-navbar .navbar-nav .nav-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    min-width: 0;
    text-align: left;
    background: transparent;
    color: var(--bd-dark);
    font-weight: 700;
    font-size: .82rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 1.35rem .85rem;
    position: relative;
    transition: color .2s;
    white-space: nowrap;
}
body.bd-theme .tp-navbar .navbar-nav .nav-link:hover,
body.bd-theme .tp-navbar .navbar-nav .nav-link:focus,
body.bd-theme .tp-navbar .navbar-nav .nav-link.active,
body.bd-theme .tp-navbar .nav-item.show > .nav-link {
    background: transparent;
    color: var(--tp-primary);
}
body.bd-theme .tp-navbar .nav-link::after {
    content: "";
    position: absolute;
    left: .9rem;
    right: .9rem;
    bottom: 1.1rem;
    height: 2px;
    background: var(--tp-primary);
    transform: scaleX(0);
    transition: transform .22s ease;
}
body.bd-theme .tp-navbar .nav-link:hover::after,
body.bd-theme .tp-navbar .nav-item.show > .nav-link::after,
body.bd-theme .tp-navbar .navbar-nav .nav-link.active::after { transform: scaleX(1); }
body.bd-theme .tp-navbar .nav-link.disabled { background: transparent; color: var(--bd-muted); }
body.bd-theme .tp-navbar .navbar-toggler {
    border-color: var(--bd-line);
    margin: .6rem 0;
    color: var(--bd-dark);
}
body.bd-theme .tp-navbar .dropdown-menu {
    background: #fff;
    border: 0;
    border-top: 3px solid var(--tp-primary);
    border-radius: 0 0 var(--bd-radius) var(--bd-radius);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .16);
    padding: 6px 0;
    min-width: 200px;
}
body.bd-theme .tp-navbar .dropdown-item {
    color: var(--bd-text);
    font-size: .92rem;
    padding: .55rem 1.15rem;
}
body.bd-theme .tp-navbar .dropdown-item:hover,
body.bd-theme .tp-navbar .dropdown-item:focus {
    background: rgba(255, 94, 20, .10);
    color: var(--tp-primary);
}
body.bd-theme .tp-navbar .dropdown-toggle::before { display: none; }
/* 平板：报价按钮隐藏后导航更宽松 */
@media (max-width: 991.98px) {
    body.bd-theme .tp-navbar .nav-link { padding: .85rem 1rem; }
    body.bd-theme .tp-navbar .nav-link::after { display: none; }
}

/* ---------- 通用：按钮 / 区块标题 ---------- */
.bd-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1.9rem;
    font-weight: 700;
    font-size: .95rem;
    border: 1px solid transparent;
    border-radius: var(--bd-radius);
    text-decoration: none;
    transition: all .22s ease;
}
.bd-btn--primary { background: var(--tp-primary); color: #fff; }
.bd-btn--primary:hover { background: var(--tp-primary-dark); color: #fff; }
.bd-btn--ghost { border-color: rgba(255, 255, 255, .45); color: #fff; }
.bd-btn--ghost:hover { background: #fff; color: var(--bd-dark); border-color: #fff; }
.bd-btn--dark { background: var(--bd-dark); color: #fff; }
.bd-btn--dark:hover { background: var(--bd-dark-2); color: #fff; }

.bd-shead { margin-bottom: 46px; text-align: center; }
.bd-shead--row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
}
.bd-shead__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--tp-primary);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.bd-shead__eyebrow::before { content: ""; width: 38px; height: 3px; background: var(--tp-primary); }
.bd-shead__title {
    margin: 0;
    font-size: 2.1rem;
    font-weight: 800;
    color: var(--bd-dark);
    letter-spacing: -.4px;
    line-height: 1.25;
}
.bd-shead__sub { color: var(--bd-muted); font-size: .95rem; margin: 6px 0 0; }
.bd-shead__more {
    color: var(--bd-dark);
    font-weight: 700;
    font-size: .9rem;
    text-decoration: none;
    border-bottom: 2px solid var(--tp-primary);
    padding-bottom: 3px;
    white-space: nowrap;
}
.bd-shead__more:hover { color: var(--tp-primary); }
@media (max-width: 767.98px) {
    .bd-shead__title { font-size: 1.6rem; }
    .bd-shead--row { flex-direction: column; align-items: flex-start; }
}

/* ---------- Hero：全屏大图 + 左侧强标题 ---------- */
.bd-hero { position: relative; background: var(--bd-dark); }
.bd-hero .carousel-inner,
.bd-hero .carousel-item { min-height: 620px; }
.bd-hero .carousel-item {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.bd-hero__mask {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 23, 42, .94) 0%, rgba(15, 23, 42, .74) 46%, rgba(15, 23, 42, .32) 100%);
}
.bd-hero__body {
    position: relative;
    z-index: 2;
    padding: 128px 0 96px;
}
.bd-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--tp-primary);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .24em;
    text-transform: uppercase;
    margin-bottom: 18px;
}
.bd-hero__eyebrow::before { content: ""; width: 46px; height: 3px; background: var(--tp-primary); }
.bd-hero__title {
    margin: 0 0 18px;
    font-size: 3.3rem;
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -.6px;
    color: #fff;
    white-space: normal;
}
.bd-hero__title em { font-style: normal; color: var(--tp-primary); }
.bd-hero__desc {
    max-width: 640px;
    color: #c9d3e2;
    font-size: 1.05rem;
    line-height: 1.9;
    margin-bottom: 32px;
}
.bd-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.bd-hero__list {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
    margin-top: 40px;
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}
.bd-hero__list-item { display: flex; align-items: center; gap: 10px; color: #e2e8f0; font-weight: 600; }
.bd-hero__list-item i { color: var(--tp-primary); }
.bd-hero__badge {
    position: absolute;
    right: 0;
    bottom: 64px;
    z-index: 3;
    width: 148px;
    height: 148px;
    border-radius: 50%;
    background: var(--tp-primary);
    color: #0f172a;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .35);
}
.bd-hero__badge b { font-size: 2.4rem; font-weight: 800; line-height: 1; }
.bd-hero__badge span { font-size: .78rem; font-weight: 700; letter-spacing: .06em; margin-top: 6px; }
.bd-hero .carousel-indicators { justify-content: flex-start; margin: 0 0 42px; padding-left: 12px; }
.bd-hero .carousel-indicators [data-bs-target] {
    width: 34px;
    height: 4px;
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, .35);
    opacity: 1;
}
.bd-hero .carousel-indicators .active { background: var(--tp-primary); }
.bd-hero .carousel-control-prev,
.bd-hero .carousel-control-next { width: 8%; opacity: .55; }
.bd-hero .carousel-control-prev:hover,
.bd-hero .carousel-control-next:hover { opacity: 1; }
@media (max-width: 991.98px) {
    .bd-hero .carousel-item { min-height: 520px; }
    .bd-hero__body { padding: 76px 0 64px; }
    .bd-hero__title { font-size: 2.1rem; }
    .bd-hero__badge { display: none; }
}

/* ---------- 服务亮点条（四宫格，位于幻灯片下方，不与其重叠） ---------- */
.bd-features { background: #fff; padding: 46px 0 0; }
.bd-features__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 0;
    position: relative;
    z-index: 1;
    border-radius: var(--bd-radius);
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .1);
    background: #fff;
}
.bd-feature {
    padding: 30px 26px;
    border-right: 1px solid var(--bd-line);
    display: flex;
    gap: 16px;
    align-items: flex-start;
    transition: background .2s;
}
.bd-feature:last-child { border-right: 0; }
.bd-feature:hover { background: #fbfcfe; }
.bd-feature__icon {
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bd-dark);
    color: var(--tp-primary);
    font-size: 1.3rem;
    border-radius: var(--bd-radius);
}
.bd-feature:hover .bd-feature__icon { background: var(--tp-primary); color: #0f172a; }
.bd-feature__title { margin: 0 0 6px; font-size: 1.02rem; font-weight: 800; color: var(--bd-dark); }
.bd-feature__desc { margin: 0; font-size: .86rem; color: var(--bd-muted); line-height: 1.7; }
@media (max-width: 991.98px) {
    .bd-features__grid { grid-template-columns: repeat(2, 1fr); margin-top: 0; }
    .bd-feature:nth-child(2n) { border-right: 0; }
    .bd-feature:nth-child(-n+2) { border-bottom: 1px solid var(--bd-line); }
}
@media (max-width: 575.98px) {
    .bd-features { padding-top: 28px; }
    .bd-features__grid { grid-template-columns: 1fr; }
    .bd-feature { border-right: 0; border-bottom: 1px solid var(--bd-line); }
}

/* ---------- 关于我们（左图 + 右文 + 数字） ---------- */
.bd-about { padding: 96px 0; background: #fff; }
.bd-about__media { position: relative; padding: 0 0 26px 0; }
.bd-about__media img {
    width: 100%;
    display: block;
    border-radius: var(--bd-radius);
    box-shadow: 0 22px 50px rgba(15, 23, 42, .16);
}
.bd-about__media::after {
    content: "";
    position: absolute;
    left: -18px;
    bottom: 0;
    width: 62%;
    height: 12px;
    background: var(--tp-primary);
}
.bd-about__body { padding-left: 12px; }
.bd-about__title { font-size: 1.9rem; font-weight: 800; color: var(--bd-dark); margin: 0 0 14px; }
.bd-about__text { color: var(--bd-muted); line-height: 1.95; font-size: .96rem; }
/* 正文段落：无空格长串（数字/英文/链接）强制折行，避免撑破容器导致排版变形 */
body.bd-theme .tp-prose,
body.bd-theme .tp-lead,
.bd-about__text {
    overflow-wrap: break-word;
    word-break: break-word;
}
.bd-about__list { list-style: none; padding: 0; margin: 22px 0 26px; }
.bd-about__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--bd-text);
    font-size: .94rem;
    padding: 5px 0;
}
.bd-about__list li i { color: var(--tp-primary); margin-top: 4px; }
/* 数据统计：数字与单位同行，标签独占一行，多列自动均分不错位 */
.bd-about__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 14px;
    padding-top: 22px;
    border-top: 1px solid var(--bd-line);
}
.bd-about__stats .tp-about__stats-item {
    flex: 1 1 88px;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 2px;
    row-gap: 0;
    min-width: 0;
}
.bd-about__stats .tp-about__stats-num {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--bd-dark);
    line-height: 1.1;
}
.bd-about__stats .tp-about__stats-unit {
    color: var(--tp-primary-dark);
    font-weight: 700;
    font-size: .8rem;
    line-height: 1.4;
    white-space: nowrap;
}
.bd-about__stats .tp-about__stats-label {
    flex: 0 0 100%;
    width: auto;
    color: var(--bd-muted);
    font-size: .78rem;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 991.98px) {
    .bd-about { padding: 62px 0; }
    .bd-about__body { padding-left: 0; margin-top: 30px; }
    .bd-about__media::after { display: none; }
}

/* ---------- 通用板块 ---------- */
.bd-section { padding: 96px 0; }
.bd-section--gray { background: #f6f8fb; }
.bd-section--dark { background: var(--bd-dark); color: #cbd5e1; }
.bd-section--dark .bd-shead__title { color: #fff; }
.bd-section--dark .bd-shead__sub { color: #94a3b8; }
@media (max-width: 991.98px) { .bd-section { padding: 60px 0; } }

/* ---------- 服务项目卡片 ---------- */
.bd-service-card {
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    overflow: hidden;
    height: 100%;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
.bd-service-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 184, 0, .6);
    box-shadow: 0 20px 40px rgba(15, 23, 42, .12);
}
.bd-service-card__media { position: relative; overflow: hidden; }
.bd-service-card__media img { width: 100%; height: 208px; object-fit: cover; display: block; transition: transform .5s ease; }
.bd-service-card:hover .bd-service-card__media img { transform: scale(1.06); }
.bd-service-card__body { padding: 20px 22px 24px; }
.bd-service-card__title { margin: 0 0 8px; font-size: 1.05rem; font-weight: 800; color: var(--bd-dark); }
.bd-service-card__desc {
    margin: 0 0 16px;
    color: var(--bd-muted);
    font-size: .88rem;
    line-height: 1.75;
    min-height: 46px;
}
.bd-service-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--tp-primary-dark);
    font-weight: 700;
    font-size: .88rem;
    text-decoration: none;
}
.bd-service-card__link:hover { gap: 12px; }
.bd-service-card__tags { margin-bottom: 8px; }

/* ---------- 案例卡片 ---------- */
.bd-case-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--bd-radius);
    text-decoration: none;
    background: var(--bd-dark);
}
.bd-case-card__media img { width: 100%; height: 240px; object-fit: cover; display: block; transition: transform .5s ease; }
.bd-case-card:hover .bd-case-card__media img { transform: scale(1.08); }
.bd-case-card__overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 20px;
    background: linear-gradient(0deg, rgba(15, 23, 42, .92) 0%, rgba(15, 23, 42, .1) 100%);
    color: #fff;
}
.bd-case-card__title { margin: 0; font-size: 1rem; font-weight: 700; }
.bd-case-card__meta { font-size: .78rem; color: #cbd5e1; margin-top: 4px; }
.bd-case-card__plus {
    position: absolute;
    right: 16px;
    top: 16px;
    width: 38px;
    height: 38px;
    background: var(--tp-primary);
    color: #0f172a;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(-6px);
    transition: all .25s ease;
}
.bd-case-card:hover .bd-case-card__plus { opacity: 1; transform: translateY(0); }

/* ---------- 数据条 ---------- */
.bd-stats { background: var(--tp-primary); color: #0f172a; padding: 54px 0; }
.bd-stats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px; }
.bd-stat { text-align: center; }
.bd-stat__num { font-size: 2.4rem; font-weight: 800; line-height: 1.1; white-space: nowrap; }
.bd-stat__unit { font-weight: 700; font-size: .95rem; }
.bd-stat__label { font-size: .86rem; font-weight: 600; opacity: .82; margin-top: 4px; }
@media (max-width: 767.98px) { .bd-stats__grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 流程 / 优势 ---------- */
.bd-step { position: relative; padding-left: 62px; padding-bottom: 26px; }
.bd-step__no {
    position: absolute;
    left: 0;
    top: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: var(--tp-primary);
    border: 2px solid rgba(255, 184, 0, .55);
    border-radius: 50%;
}
.bd-step__title { font-weight: 800; color: #fff; margin: 0 0 6px; font-size: 1.02rem; }
.bd-step__desc { color: #94a3b8; font-size: .88rem; line-height: 1.75; margin: 0; }

/* ---------- 新闻 ---------- */
.bd-news-card {
    display: flex;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    padding: 14px;
    height: 100%;
    text-decoration: none;
    transition: box-shadow .22s ease, transform .22s ease;
}
.bd-news-card:hover { box-shadow: 0 16px 32px rgba(15, 23, 42, .1); transform: translateY(-4px); }
.bd-news-card__media { flex: 0 0 118px; }
.bd-news-card__media img { width: 118px; height: 92px; object-fit: cover; border-radius: var(--bd-radius); display: block; }
.bd-news-card__body { min-width: 0; }
.bd-news-card__title {
    margin: 0 0 6px;
    font-size: .98rem;
    font-weight: 700;
    color: var(--bd-dark);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bd-news-card__meta { font-size: .76rem; color: var(--bd-muted); }
.bd-news-card__desc {
    margin: 8px 0 0;
    font-size: .84rem;
    color: var(--bd-muted);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bd-news-side { background: #fff; border: 1px solid var(--bd-line); border-radius: var(--bd-radius); padding: 20px 22px; }
.bd-news-side__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.bd-news-side__title { font-weight: 800; color: var(--bd-dark); font-size: 1rem; }
.bd-news-side__more { color: var(--tp-primary-dark); font-size: .84rem; font-weight: 700; text-decoration: none; }
.bd-news-side__list { list-style: none; margin: 0; padding: 0; }
.bd-news-side__item { border-bottom: 1px dashed var(--bd-line); }
.bd-news-side__item:last-child { border-bottom: 0; }
.bd-news-side__link { display: flex; gap: 12px; align-items: center; padding: 12px 0; text-decoration: none; }
.bd-news-side__num { font-size: 1.15rem; font-weight: 800; color: rgba(15, 23, 42, .18); }
.bd-news-side__info { min-width: 0; }
.bd-news-side__info-title {
    margin: 0;
    font-size: .9rem;
    font-weight: 600;
    color: var(--bd-text);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bd-news-side__info-date { font-size: .74rem; color: var(--bd-muted); }

/* ---------- 团队 / 荣誉 ---------- */
.bd-team-card, .bd-honor-card {
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    overflow: hidden;
    height: 100%;
    display: block;
    text-decoration: none;
    transition: transform .22s ease, box-shadow .22s ease;
}
.bd-team-card:hover, .bd-honor-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(15, 23, 42, .12); }
.bd-team-card img, .bd-honor-card img { width: 100%; height: 220px; object-fit: cover; display: block; }
.bd-team-card__body, .bd-honor-card__body { padding: 16px 18px 20px; text-align: center; }
.bd-team-card__name, .bd-honor-card__title { margin: 0; font-size: .98rem; font-weight: 700; color: var(--bd-dark); }
.bd-team-card__role { color: var(--tp-primary-dark); font-size: .82rem; margin-top: 4px; font-weight: 600; }
.bd-team-card__desc { color: var(--bd-muted); font-size: .82rem; margin: 6px 0 0; line-height: 1.7; }

/* ---------- CTA ---------- */
.bd-cta {
    position: relative;
    padding: 72px 0;
    background: var(--bd-dark);
    color: #fff;
    overflow: hidden;
}
.bd-cta::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 320px;
    height: 320px;
    border: 60px solid rgba(255, 184, 0, .12);
    border-radius: 50%;
}
.bd-cta__inner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.bd-cta__title { margin: 0 0 8px; font-size: 1.9rem; font-weight: 800; }
.bd-cta__desc { margin: 0; color: #94a3b8; font-size: .95rem; }
.bd-cta__phone { font-size: 1.9rem; font-weight: 800; color: var(--tp-primary); letter-spacing: .5px; }

/* H5：底部 CTA 区域不显示（桌面端仍展示） */
@media (max-width: 991.98px) {
    .bd-cta { display: none !important; }
}

/* ---------- 页脚 ---------- */
body.bd-theme .tp-footer { background: #0b1220; color: #94a3b8; }
body.bd-theme .tp-footer__title {
    color: #fff;
    font-size: 1.02rem;
    font-weight: 800;
    position: relative;
    padding-bottom: 12px;
    margin-bottom: 18px;
}
body.bd-theme .tp-footer__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 34px;
    height: 3px;
    background: var(--tp-primary);
}
body.bd-theme .tp-footer__desc { color: #94a3b8; font-size: .88rem; line-height: 1.85; }
body.bd-theme .tp-footer__links a { color: #94a3b8; font-size: .88rem; text-decoration: none; }
body.bd-theme .tp-footer__links a:hover { color: var(--tp-primary); }
body.bd-theme .tp-footer__contact em { color: #e2e8f0; font-style: normal; }
body.bd-theme .tp-footer__qrcode { background: #fff; padding: 5px; border-radius: var(--bd-radius); }
body.bd-theme .tp-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); color: #7d8798; }
body.bd-theme .tp-footer__legal a { color: #94a3b8; }
body.bd-theme .tp-footer__legal a:hover { color: var(--tp-primary); }

/* ---------- 友情链接 ---------- */
.bd-theme .tp-partners { margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--bd-line); }
.bd-theme .tp-partners__title { font-size: 1.05rem; font-weight: 800; color: var(--bd-dark); margin: 0 0 14px; }
/* 友情链接：默认显示彩色 LOGO（默认模板为灰度 + 半透明，仅鼠标悬停才恢复彩色） */
.bd-theme .tp-partners__body .tp-flink__logo { background-color: #fff; }
.bd-theme .tp-partners__body .tp-flink__logo img { filter: none; opacity: 1; }
.bd-theme .tp-partners__body .tp-flink__item:hover .tp-flink__logo { background-color: #fff; }
.bd-theme .tp-partners__body .tp-flink__item:hover .tp-flink__logo img { filter: none; opacity: 1; }

/* ---------- 移动端首页宫格：沿用工程风配色 ---------- */
body.bd-theme .tp-mhome__grid a i { border-radius: var(--bd-radius); }
body.bd-theme .tp-searchbar { background: #f6f8fb; border-bottom: 1px solid var(--bd-line); }
body.bd-theme .tp-searchbar__tag {
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    background: #fff;
    color: var(--bd-text);
}
body.bd-theme .tp-searchbar__tag:hover { background: var(--tp-primary); border-color: var(--tp-primary); color: #0f172a; }

/* ---------- 热门服务：头部搜索输入框下方，单行不换行、超出隐藏 ---------- */
body.bd-theme .tp-header__hot {
    display: none;
    max-width: 600px;
    margin-top: 6px;
    line-height: 1.6;
    white-space: nowrap;
    overflow: hidden;
}
body.bd-theme .tp-header__hot.is-show { display: block; }
body.bd-theme .tp-header__hot-label { font-size: .72rem; color: var(--bd-muted); margin-right: 4px; }
body.bd-theme .tp-header__hot-tags { white-space: nowrap; }
body.bd-theme .tp-header__hot .tp-searchbar__tag {
    display: inline-block;
    font-size: .72rem;
    padding: .05rem .45rem;
    margin-right: .3rem;
    vertical-align: middle;
}

/* ---------- 返回顶部 / 浮动条 ---------- */
body.bd-theme .tp-backtop { background: var(--tp-primary); color: #0f172a; }
body.bd-theme .tp-floatbar__item.active { color: var(--tp-primary); }

/* ==========================================================================
 * bd-theme 下：现有 tp-* 板块/卡片统一工程风
 * （脚本渲染的类名保持不变，避免改动任何接口与 JS 逻辑）
 * ========================================================================== */
body.bd-theme .tp-section { padding: 88px 0; }
body.bd-theme .tp-section--light { background: #f6f8fb; }
body.bd-theme .tp-section__head { text-align: center; margin-bottom: 42px; }
body.bd-theme .tp-section__head--row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    text-align: left;
}
body.bd-theme .tp-section__title {
    margin: 0;
    font-size: 2rem;
    font-weight: 800;
    color: var(--bd-dark);
    letter-spacing: -.4px;
}
body.bd-theme .tp-section__subtitle {
    margin: 6px 0 0;
    color: var(--bd-muted);
    font-size: .88rem;
    letter-spacing: .16em;
    text-transform: uppercase;
}
body.bd-theme .tp-section__eyebrow { color: var(--tp-primary); font-weight: 800; letter-spacing: .2em; }
body.bd-theme .tp-section__more {
    color: var(--bd-dark);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid var(--tp-primary);
    padding-bottom: 3px;
}
body.bd-theme .tp-section__more:hover { color: var(--tp-primary-dark); }
body.bd-theme .tp-section__more--white { color: #fff; border-color: #fff; }
@media (max-width: 767.98px) {
    body.bd-theme .tp-section { padding: 56px 0; }
    body.bd-theme .tp-section__title { font-size: 1.55rem; }
    body.bd-theme .tp-section__head--row { flex-direction: column; align-items: flex-start; }
}

/* Hero 遮罩与动态标题（幻灯片由 JS 渲染，类名保持 tp-hero__slogan） */
body.bd-theme .bd-hero .tp-hero__overlay {
    background: linear-gradient(90deg, rgba(15, 23, 42, .94) 0%, rgba(15, 23, 42, .74) 46%, rgba(15, 23, 42, .32) 100%);
}
body.bd-theme .bd-hero .tp-hero__slogan {
    margin: 0;
    font-size: 3.3rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.14;
    white-space: normal !important;
}
@media (max-width: 991.98px) {
    body.bd-theme .bd-hero .tp-hero__slogan { font-size: 2.1rem; }
}

/* 服务 / 商品卡片 */
body.bd-theme .tp-service-card,
body.bd-theme .tp-product-card {
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    overflow: hidden;
    height: 100%;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s;
}
body.bd-theme .tp-service-card:hover,
body.bd-theme .tp-product-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 184, 0, .6);
    box-shadow: 0 20px 40px rgba(15, 23, 42, .12);
}
body.bd-theme .tp-service-card__media { overflow: hidden; }
body.bd-theme .tp-service-card__media img {
    width: 100%;
    height: 208px;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
body.bd-theme .tp-service-card:hover .tp-service-card__media img { transform: scale(1.06); }
body.bd-theme .tp-service-card__body { padding: 18px 22px 22px; }
body.bd-theme .tp-service-card__title { margin: 0 0 8px; font-size: 1.02rem; font-weight: 800; color: var(--bd-dark); }
body.bd-theme .tp-service-card__desc { color: var(--bd-muted); font-size: .86rem; line-height: 1.75; min-height: 44px; }
body.bd-theme .tp-service-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body.bd-theme .tp-price-now { color: #e0453b; font-weight: 800; font-size: 1.08rem; }
body.bd-theme .tp-price-old { color: var(--bd-muted); text-decoration: line-through; font-size: .82rem; margin-left: 6px; }
body.bd-theme .tp-service-card__btn {
    background: var(--tp-primary);
    color: #0f172a;
    font-weight: 700;
    font-size: .84rem;
    padding: 6px 16px;
    border-radius: var(--bd-radius);
    text-decoration: none;
}
body.bd-theme .tp-service-card__btn:hover { background: var(--tp-primary-dark); color: #0f172a; }
body.bd-theme .tp-service-card__tag {
    background: var(--tp-primary);
    color: #0f172a;
    font-size: .7rem;
    padding: 2px 8px;
    border-radius: 2px;
    font-weight: 700;
}
body.bd-theme .tp-service-card__tag--hot { background: #e0453b; color: #fff; }
body.bd-theme .tp-service-card__tag--rec { background: var(--bd-dark); color: #fff; }

/* 案例 / 团队 / 荣誉 */
body.bd-theme .tp-case-card {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--bd-radius);
    background: var(--bd-dark);
    text-decoration: none;
}
body.bd-theme .tp-case-card__media img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}
body.bd-theme .tp-case-card:hover .tp-case-card__media img { transform: scale(1.08); }
body.bd-theme .tp-case-card__body {
    position: absolute;
    inset: auto 0 0 0;
    padding: 18px 20px;
    background: linear-gradient(0deg, rgba(15, 23, 42, .92), rgba(15, 23, 42, .05));
}
body.bd-theme .tp-case-card__title { margin: 0; color: #fff; font-size: .98rem; font-weight: 700; }
body.bd-theme .tp-case-card__meta { color: #cbd5e1; font-size: .76rem; margin-top: 4px; }
body.bd-theme .tp-team-card,
body.bd-theme .tp-honor-card {
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    overflow: hidden;
    height: 100%;
    display: block;
    text-decoration: none;
    transition: transform .22s ease, box-shadow .22s ease;
}
body.bd-theme .tp-team-card:hover,
body.bd-theme .tp-honor-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(15, 23, 42, .12); }
body.bd-theme .tp-team-card__avatar img,
body.bd-theme .tp-honor-card__media img { width: 100%; height: 220px; object-fit: cover; display: block; }
body.bd-theme .tp-team-card__body,
body.bd-theme .tp-honor-card__body { padding: 16px 18px 20px; text-align: center; }
body.bd-theme .tp-team-card__name,
body.bd-theme .tp-honor-card__title { margin: 0; font-size: .98rem; font-weight: 700; color: var(--bd-dark); }
body.bd-theme .tp-team-card__role { color: var(--tp-primary-dark); font-size: .82rem; font-weight: 600; margin-top: 4px; }
body.bd-theme .tp-team-card__desc { color: var(--bd-muted); font-size: .82rem; line-height: 1.7; margin: 6px 0 0; }

/* 新闻卡片 / 热门列表 */
body.bd-theme .tp-news-card {
    display: flex;
    gap: 14px;
    background: #fff;
    border: 1px solid var(--bd-line);
    border-radius: var(--bd-radius);
    padding: 12px;
    height: 100%;
    text-decoration: none;
    transition: box-shadow .22s ease, transform .22s ease;
}
body.bd-theme .tp-news-card:hover { box-shadow: 0 16px 32px rgba(15, 23, 42, .1); transform: translateY(-4px); }
body.bd-theme .tp-news-card__media { flex: 0 0 118px; }
body.bd-theme .tp-news-card__media img { width: 118px; height: 92px; object-fit: cover; border-radius: var(--bd-radius); display: block; }
body.bd-theme .tp-news-card__title { margin: 0 0 6px; font-size: .96rem; font-weight: 700; color: var(--bd-dark); line-height: 1.5; }
body.bd-theme .tp-news-card__meta { font-size: .76rem; color: var(--bd-muted); }
body.bd-theme .tp-news-card__desc { margin: 6px 0 0; font-size: .84rem; color: var(--bd-muted); line-height: 1.7; }
body.bd-theme .tp-news-side { background: #fff; border: 1px solid var(--bd-line); border-radius: var(--bd-radius); padding: 18px 20px; }
body.bd-theme .tp-news-side__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
body.bd-theme .tp-news-side__title { font-weight: 800; color: var(--bd-dark); }
body.bd-theme .tp-news-side__more { color: var(--tp-primary-dark); font-size: .84rem; font-weight: 700; text-decoration: none; }
body.bd-theme .tp-news-side__list { list-style: none; margin: 0; padding: 0; }
body.bd-theme .tp-news-side__item { border-bottom: 1px dashed var(--bd-line); }
body.bd-theme .tp-news-side__item:last-child { border-bottom: 0; }
body.bd-theme .tp-news-side__link { display: flex; gap: 12px; align-items: center; padding: 10px 0; text-decoration: none; }
body.bd-theme .tp-news-side__num { font-size: 1.1rem; font-weight: 800; color: rgba(15, 23, 42, .2); }
body.bd-theme .tp-news-side__info-title { margin: 0; font-size: .9rem; font-weight: 600; color: var(--bd-text); line-height: 1.5; }
body.bd-theme .tp-news-side__info-date { font-size: .74rem; color: var(--bd-muted); }

/* 多行截断：补全标准属性 line-clamp */
body.bd-theme .bd-news-card__title,
body.bd-theme .bd-news-card__desc,
body.bd-theme .bd-news-side__info-title {
    line-clamp: 2;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
