﻿/* 思默·显汇通 - 前台门户 */
*, *::before, *::after { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

.home-page {
    overflow-x: hidden;
    /* 小熊门户风：亮蓝主色 + 扁平白底 */
    --brand: #00a0e9;
    --brand-dark: #0088cc;
    --brand-deep: #006ba3;
    --brand-light: #e8f6fc;
    --brand-bright: #33b5ef;
    --brand-glow: #5cc8f5;
    --accent: #ff4d4f;
    --accent-dark: #e03b3d;
    --accent-light: #fff1f0;
    --dark: #1a2332;
    --dark-soft: #243044;
    --text: #222;
    --text-muted: #666;
    --border: #e8e8e8;
    --border-muted: #bbb;
    --bg: #f5f7fa;
    --bg-warm: #f5f7fa;
    --white: #fff;
    --success: #00a0e9;
    --warning: #ff8a00;
    --danger: #ff4d4f;
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius: 8px;
    --radius-lg: 10px;
    --radius-pill: 999px;
    --shadow: 0 1px 4px rgba(0, 0, 0, .06);
    --shadow-lg: 0 4px 16px rgba(0, 0, 0, .08);
    --transition: .2s ease;
    --content: 1200px;
    --content-narrow: 860px;
    --pad-x: 24px;
    --pad-x-sm: 16px;
    --section-y: 64px;
    --subhero-pad: 112px 0 48px;
    /* 统一断点：1100 / 900 / 768 / 480（与 home-mall 对齐） */
    --bp-lg: 1100px;
    --bp-md: 900px;
    --bp-sm: 768px;
    --bp-xs: 480px;
    --font-sans: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    --font-display: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    font-family: var(--font-sans);
    color: var(--text);
    background: var(--bg);
    line-height: 1.6;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

.home-page a { color: inherit; text-decoration: none; transition: color var(--transition), opacity var(--transition), transform var(--transition); }
.home-page img { max-width: 100%; display: block; }
.home-page button { font-family: inherit; }
body.nav-open { overflow: hidden; }

/* ---- 导航 ---- */
.home-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 1000;
    background: rgba(20, 26, 31, .82);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255,255,255,.06);
    transition: background var(--transition), box-shadow var(--transition);
}
.home-nav.is-scrolled {
    background: rgba(20, 26, 31, .96);
    box-shadow: 0 4px 24px rgba(0,0,0,.2);
}
.home-nav__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.home-nav--solid {
    background: rgba(20, 26, 31, .96);
    box-shadow: 0 4px 24px rgba(0,0,0,.18);
}
.home-nav__brand-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    min-width: 0;
}
.home-page .home-nav__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}
.home-page .home-nav__brand:hover { color: #fff; opacity: .9; }
.home-nav__brand-logo {
    display: block;
    width: 38px;
    height: 38px;
    object-fit: contain;
    flex-shrink: 0;
    border: 1.5px solid rgba(18, 160, 138, .45);
    border-radius: var(--radius-sm);
    box-sizing: border-box;
}
.home-nav__region {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 120px;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: var(--radius-sm);
    background: rgba(255,255,255,.06);
    color: rgba(255,255,255,.92);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition);
}
.home-nav__region:hover {
    background: rgba(18, 160, 138, .22);
    border-color: rgba(18, 160, 138, .55);
}
.home-nav__region .fa-map-marker { color: var(--brand-glow); }
.home-nav__region #homeRegionLabel {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-nav__region-caret { font-size: 12px; opacity: .7; }
.home-nav__mobile-region {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-bottom: 4px;
    padding: 12px 16px;
    border: 0;
    border-radius: var(--radius-sm);
    background: rgba(18, 160, 138, .18);
    color: #fff;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}
.home-nav__mobile-region .fa-map-marker { color: var(--brand-glow); }

/* 区域弹窗 */
body.region-modal-open { overflow: hidden; }
.region-modal[hidden] { display: none !important; }
.region-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.region-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 16, 20, .55);
    backdrop-filter: blur(4px);
}
.region-modal__panel {
    position: relative;
    width: min(720px, 100%);
    max-height: min(80vh, 640px);
    display: flex;
    flex-direction: column;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 24px 64px rgba(0,0,0,.28);
    overflow: hidden;
}
.region-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px 10px;
    border-bottom: 1px solid var(--border);
}
.region-modal__head h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
}
.region-modal__close {
    width: 36px; height: 36px;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--bg);
    color: var(--text-muted);
    cursor: pointer;
}
.region-modal__close:hover { background: var(--border-muted); }
.region-modal__search {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 22px 0;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg);
}
.region-modal__search .fa-search { color: var(--text-muted); }
.region-modal__search input {
    flex: 1;
    border: 0;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: var(--text);
}
.region-modal__body {
    flex: 1;
    overflow: auto;
    padding: 16px 22px 22px;
}
.region-modal__loading,
.region-modal__empty {
    padding: 40px 16px;
    text-align: center;
    color: var(--text-muted);
    font-size: 14px;
}
.region-section { margin-bottom: 20px; }
.region-section h3 {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: .02em;
}
.region-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.region-chip {
    padding: 7px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--white);
    color: var(--text);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--transition);
}
.region-chip:hover {
    border-color: var(--brand);
    color: var(--brand);
    background: rgba(18, 160, 138, .06);
}
.region-chip.is-active {
    border-color: var(--brand);
    background: var(--brand);
    color: #fff;
}
.region-province-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}
.region-province-tab {
    padding: 6px 12px;
    border: 0;
    border-radius: var(--radius-xs);
    background: var(--bg);
    color: var(--text-muted);
    font-size: 13px;
    cursor: pointer;
}
.region-province-tab.is-active {
    background: rgba(18, 160, 138, .14);
    color: var(--brand);
    font-weight: 600;
}
.home-filters__region-tip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
}
.home-filters__region-tip .fa-map-marker { color: var(--brand, #12a08a); }
.home-filters__region-switch {
    margin-left: auto;
    border: 0;
    background: transparent;
    color: var(--brand, #12a08a);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.home-nav__links {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: nowrap;
    list-style: none;
    margin: 0; padding: 0;
}
.home-nav__links a {
    color: rgba(255,255,255,.7);
    font-size: 14px;
    font-weight: 500;
    position: relative;
    padding: 4px 0;
}
.home-nav__links a::after {
    content: '';
    position: absolute;
    bottom: -2px; left: 0; right: 0;
    height: 2px;
    background: var(--brand);
    transform: scaleX(0);
    transition: transform var(--transition);
    border-radius: 1px;
}
.home-nav__links a:hover,
.home-nav__links a.is-active { color: var(--white); }
.home-nav__links a:hover::after,
.home-nav__links a.is-active::after { transform: scaleX(1); }
.home-nav__links a.is-active { font-weight: 600; }
.home-nav__actions { display: flex; gap: 10px; align-items: center; }
.home-nav__actions .home-btn--ghost {
    color: #fff;
    border-color: rgba(255,255,255,.45);
    font-weight: 600;
}
.home-nav__actions .home-btn--ghost:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.7);
}
.home-nav__actions .home-btn--primary {
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(18, 160, 138, .4);
}
.home-nav__toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px; height: 40px;
    padding: 8px;
    background: transparent;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--radius-sm);
    cursor: pointer;
}
.home-nav__toggle span {
    display: block;
    height: 2px;
    background: #fff;
    border-radius: 1px;
    transition: transform var(--transition), opacity var(--transition);
}
.home-nav__toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.home-nav__toggle.is-open span:nth-child(2) { opacity: 0; }
.home-nav__toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.home-nav__mobile {
    display: none;
    flex-direction: column;
    padding: 0 24px 20px;
    gap: 4px;
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition), padding var(--transition);
}
.home-nav__mobile.is-open {
    max-height: 400px;
    padding-bottom: 20px;
}
.home-nav__mobile a {
    display: block;
    padding: 12px 16px;
    color: rgba(255,255,255,.85);
    font-size: 15px;
    border-radius: var(--radius-sm);
    transition: background var(--transition);
}
.home-nav__mobile a:hover { background: rgba(255,255,255,.08); }
.home-nav__mobile a.is-active {
    color: #fff;
    font-weight: 600;
    background: rgba(14, 124, 107, .28);
}
.home-nav__mobile-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
    padding: 0 16px;
}
.home-nav__mobile-actions .home-btn { flex: 1; justify-content: center; }
.home-nav__mobile-actions .home-btn--ghost {
    color: #fff;
    border-color: rgba(255,255,255,.45);
    font-weight: 600;
}

.home-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 9px 20px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: all var(--transition);
    white-space: nowrap;
}
/* 提高优先级，避免被 .home-page a { color: inherit } 盖掉导致白底白字 */
.home-page a.home-btn--ghost,
.home-page button.home-btn--ghost,
.home-btn--ghost {
    background: transparent;
    color: rgba(255,255,255,.92);
    border: 1px solid rgba(255,255,255,.35);
}
.home-page a.home-btn--ghost:hover,
.home-page button.home-btn--ghost:hover,
.home-btn--ghost:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
    border-color: rgba(255,255,255,.55);
}
/* 浅色内容区误用 ghost 时改为品牌色描边，避免白字透明底看不见 */
.home-page .home-error a.home-btn--ghost,
.home-page .home-news-detail a.home-btn--ghost,
.home-page .home-section--gray a.home-btn--ghost,
.home-page .home-cta-row a.home-btn--ghost,
.home-page .home-error button.home-btn--ghost,
.home-page .home-news-detail button.home-btn--ghost,
.home-page .home-section--gray button.home-btn--ghost,
.home-page .home-cta-row button.home-btn--ghost {
    color: var(--brand);
    border-color: var(--brand);
    background: #fff;
}
.home-page .home-error a.home-btn--ghost:hover,
.home-page .home-news-detail a.home-btn--ghost:hover,
.home-page .home-section--gray a.home-btn--ghost:hover,
.home-page .home-cta-row a.home-btn--ghost:hover,
.home-page .home-error button.home-btn--ghost:hover,
.home-page .home-news-detail button.home-btn--ghost:hover,
.home-page .home-section--gray button.home-btn--ghost:hover,
.home-page .home-cta-row button.home-btn--ghost:hover {
    color: #fff;
    border-color: var(--brand-dark);
    background: var(--brand);
}
/* 深绿 CTA 内的 cta-row 仍保持白字 ghost */
.home-page .home-cta .home-cta-row a.home-btn--ghost,
.home-page .home-cta .home-cta-row button.home-btn--ghost {
    color: rgba(255,255,255,.92);
    border-color: rgba(255,255,255,.35);
    background: rgba(255,255,255,.06);
}
.home-page .home-cta .home-cta-row a.home-btn--ghost:hover,
.home-page .home-cta .home-cta-row button.home-btn--ghost:hover {
    color: #fff;
    border-color: rgba(255,255,255,.55);
    background: rgba(255,255,255,.12);
}
.home-page a.home-btn--primary,
.home-page button.home-btn--primary,
.home-btn--primary {
    background: var(--brand);
    color: #fff;
    box-shadow: 0 4px 14px rgba(14, 124, 107, .28);
}
.home-page a.home-btn--primary:hover,
.home-page button.home-btn--primary:hover,
.home-btn--primary:hover {
    background: var(--brand-dark);
    color: #fff;
    box-shadow: 0 6px 20px rgba(14, 124, 107, .36);
    transform: translateY(-1px);
}
.home-btn--lg { padding: 13px 28px; font-size: 15px; border-radius: var(--radius-sm); }
.home-page a.home-btn--white,
.home-page button.home-btn--white,
.home-btn--white {
    background: #fff;
    color: var(--brand-dark);
    font-weight: 600;
}
.home-page a.home-btn--white:hover,
.home-page button.home-btn--white:hover,
.home-btn--white:hover {
    background: var(--brand-light);
    color: var(--brand-dark);
    transform: translateY(-1px);
}
.home-page a.home-btn--outline,
.home-page button.home-btn--outline,
.home-btn--outline {
    background: #fff;
    color: var(--brand-dark);
    border: 1.5px solid var(--brand);
}
.home-page a.home-btn--outline:hover,
.home-page button.home-btn--outline:hover,
.home-btn--outline:hover {
    border-color: var(--brand-dark);
    color: #fff;
    background: var(--brand);
}
.home-page a.home-btn--reset,
.home-btn--reset {
    background: #fff;
    color: var(--text);
    border: 1.5px solid var(--brand);
}
.home-btn:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
}

/* ---- Hero ---- */
.home-hero {
    position: relative;
    padding: 128px 24px 88px;
    background: var(--dark);
    overflow: hidden;
    color: #fff;
}
.home-hero--v2 {
    min-height: 88vh;
    display: flex;
    align-items: center;
    padding: 112px 24px 72px;
}
.home-hero__stage {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(105deg, rgba(20,26,31,.94) 0%, rgba(20,26,31,.72) 42%, rgba(20,26,31,.28) 72%, rgba(20,26,31,.18) 100%),
        radial-gradient(ellipse 55% 70% at 78% 40%, rgba(14,124,107,.28) 0%, transparent 58%),
        radial-gradient(ellipse 40% 50% at 20% 80%, rgba(201,133,42,.1) 0%, transparent 50%),
        url('https://images.unsplash.com/photo-1540575467063-178a50c2df87?auto=format&fit=crop&w=1400&q=80') center/cover no-repeat;
    animation: home-stage-pan 28s ease-in-out infinite alternate;
}
.home-hero__glow {
    position: absolute;
    width: 55%;
    height: 70%;
    right: 5%;
    top: 10%;
    background: radial-gradient(ellipse at center, rgba(18,160,138,.22) 0%, transparent 68%);
    animation: home-glow-breathe 5.5s ease-in-out infinite;
    pointer-events: none;
}
.home-hero__scan {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        105deg,
        transparent 0%,
        transparent 38%,
        rgba(255,255,255,.04) 46%,
        rgba(18,160,138,.12) 50%,
        rgba(255,255,255,.04) 54%,
        transparent 62%,
        transparent 100%
    );
    background-size: 220% 100%;
    animation: home-scan-sweep 7s ease-in-out infinite;
    pointer-events: none;
    z-index: 2;
}
.home-hero__grid {
    position: absolute;
    inset: 0;
    opacity: .14;
    background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(105deg, transparent 0%, transparent 36%, #000 68%, transparent 100%);
    -webkit-mask-image: linear-gradient(105deg, transparent 0%, transparent 36%, #000 68%, transparent 100%);
    animation: home-grid-drift 18s linear infinite;
    pointer-events: none;
    z-index: 2;
}

/* LED 氛围背景（无边框、铺满舞台） */
.home-led {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}
.home-led__wash {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(160deg, rgba(14,124,107,.38) 0%, transparent 42%, rgba(201,133,42,.18) 100%),
        radial-gradient(ellipse 60% 50% at 72% 42%, rgba(18,160,138,.35) 0%, transparent 65%);
    animation: home-led-palette 10s ease-in-out infinite;
    mask-image: linear-gradient(105deg, transparent 0%, transparent 28%, #000 55%, #000 100%);
    -webkit-mask-image: linear-gradient(105deg, transparent 0%, transparent 28%, #000 55%, #000 100%);
}
.home-led__modules {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
    background-size: 120px 90px;
    opacity: .5;
    mask-image: linear-gradient(105deg, transparent 0%, transparent 32%, #000 62%, #000 100%);
    -webkit-mask-image: linear-gradient(105deg, transparent 0%, transparent 32%, #000 62%, #000 100%);
}
.home-led__pixels {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at center, rgba(18,160,138,.5) 0 1px, transparent 1.5px),
        radial-gradient(circle at center, rgba(255,255,255,.12) 0 .7px, transparent 1.1px);
    background-size: 7px 7px, 7px 7px;
    background-position: 0 0, 3.5px 3.5px;
    opacity: .28;
    animation: home-led-pixel 3.2s steps(8) infinite;
    mix-blend-mode: screen;
    mask-image: linear-gradient(105deg, transparent 0%, transparent 30%, #000 58%, #000 100%);
    -webkit-mask-image: linear-gradient(105deg, transparent 0%, transparent 30%, #000 58%, #000 100%);
}
.home-led__refresh {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(255,255,255,.08) 48%,
        rgba(18,160,138,.14) 50%,
        transparent 54%
    );
    background-size: 100% 220%;
    animation: home-led-refresh 4.8s linear infinite;
    mask-image: linear-gradient(105deg, transparent 0%, transparent 28%, #000 50%, #000 100%);
    -webkit-mask-image: linear-gradient(105deg, transparent 0%, transparent 28%, #000 50%, #000 100%);
}

/* ---- 3D LED 舞台视觉 ---- */
.home-led-rig {
    position: absolute;
    right: -2%;
    top: 46%;
    width: min(58vw, 720px);
    height: min(58vw, 520px);
    transform: translate3d(0, -50%, 0);
    perspective: 1400px;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    pointer-events: none;
    z-index: 3;
    mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 100%);
    animation: home-led-rig-in 1.1s cubic-bezier(.22, 1, .36, 1) both;
}
@keyframes home-led-rig-in {
    from { opacity: 0; transform: translate3d(0, -46%, 0) scale(.92); }
    to { opacity: 1; transform: translate3d(0, -50%, 0) scale(1); }
}
.home-led-rig__pivot {
    position: absolute;
    inset: 0;
    transform: translateZ(0);
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: transform;
}
.home-led-rig__cluster {
    position: absolute;
    inset: 8% 6% 14% 10%;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    transform: rotateX(18deg) rotateY(-28deg) rotateZ(2deg) translate3d(0, 0, 0);
    animation: home-led-rig-float 9s ease-in-out infinite;
}
.home-led-rig__halo {
    position: absolute;
    left: 18%;
    top: 22%;
    width: 70%;
    height: 58%;
    background: radial-gradient(ellipse at center, rgba(18,160,138,.28) 0%, rgba(18,160,138,.08) 42%, transparent 70%);
    filter: blur(8px);
    animation: home-led-halo 5s ease-in-out infinite;
}
.home-led-rig__orbit {
    position: absolute;
    left: 12%;
    top: 10%;
    width: 76%;
    height: 72%;
    border: 1px solid rgba(18,160,138,.22);
    border-radius: 50%;
    transform: rotateX(68deg) rotateZ(-12deg);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}
.home-led-rig__orbit--a {
    animation: home-led-orbit 14s linear infinite;
}
.home-led-rig__orbit--a::before,
.home-led-rig__orbit--b::before {
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--brand-bright);
    box-shadow: 0 0 12px rgba(18,160,138,.65);
    top: 8%;
    left: 50%;
    margin-left: -3px;
}
.home-led-rig__orbit--b {
    left: 18%;
    top: 18%;
    width: 64%;
    height: 58%;
    border-color: rgba(201,133,42,.2);
    animation: home-led-orbit 19s linear infinite reverse;
}
.home-led-rig__orbit--b::before {
    background: var(--accent);
    box-shadow: 0 0 10px rgba(201,133,42,.55);
    top: 72%;
}
.home-led-rig__floor {
    position: absolute;
    left: 8%;
    right: 4%;
    bottom: 6%;
    height: 42%;
    background:
        linear-gradient(180deg, transparent 0%, rgba(18,160,138,.1) 100%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.07) 0 1px, transparent 1px 36px),
        repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 28px);
    transform: rotateX(74deg) translateZ(-40px);
    transform-origin: center bottom;
    mask-image: linear-gradient(180deg, #000 0%, transparent 88%);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 88%);
    opacity: .55;
}
.home-led-rig__beam {
    position: absolute;
    left: 34%;
    top: 8%;
    width: 42%;
    height: 70%;
    background: linear-gradient(180deg, rgba(18,160,138,.18) 0%, rgba(18,160,138,.04) 45%, transparent 100%);
    clip-path: polygon(28% 0, 72% 0, 100% 100%, 0 100%);
    opacity: .55;
    animation: home-led-beam 6s ease-in-out infinite;
    transform: translateZ(-20px);
}

.home-led-wall {
    position: absolute;
    transform-style: preserve-3d;
}
.home-led-wall--main {
    left: 18%;
    top: 8%;
    width: 62%;
    height: 58%;
    transform: translateZ(40px);
    animation: home-led-main-pulse 7s ease-in-out infinite;
    backface-visibility: hidden;
}
.home-led-wall--wing {
    left: 0;
    top: 16%;
    width: 22%;
    height: 48%;
    transform: rotateY(58deg) translateZ(-10px);
    opacity: .85;
}
.home-led-wall--deck {
    left: 24%;
    top: 62%;
    width: 52%;
    height: 28%;
    transform: rotateX(78deg) translateZ(-8px);
    opacity: .55;
    filter: blur(.2px);
}
.home-led-wall__bezel {
    width: 100%;
    height: 100%;
    padding: 8px;
    background: linear-gradient(145deg, #2a333c 0%, #151b21 55%, #0f1418 100%);
    border: 1px solid rgba(255,255,255,.1);
    box-shadow:
        0 28px 60px rgba(0,0,0,.45),
        0 0 0 1px rgba(18,160,138,.12),
        inset 0 1px 0 rgba(255,255,255,.08);
    transform: translateZ(1px);
}
.home-led-wall__bezel::before {
    content: "";
    position: absolute;
    inset: -18% -8% auto;
    height: 40%;
    background: radial-gradient(ellipse at 50% 100%, rgba(18,160,138,.35), transparent 70%);
    pointer-events: none;
    z-index: 0;
}
.home-led-wall--main .home-led-wall__bezel { position: relative; }
.home-led-wall--wing .home-led-wall__screen,
.home-led-wall--deck .home-led-wall__screen {
    width: 100%;
    height: 100%;
}
.home-led-wall__screen {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background:
        linear-gradient(135deg, #0a3d36 0%, #0e7c6b 35%, #0a5a4e 70%, #0b2a28 100%);
    box-shadow: inset 0 0 40px rgba(0,0,0,.35);
}
.home-led-wall--wing .home-led-wall__screen {
    background: linear-gradient(160deg, #0f2a26 0%, #0e7c6b 55%, #1f5a48 100%);
    border: 1px solid rgba(255,255,255,.08);
}
.home-led-wall--deck .home-led-wall__screen {
    background: linear-gradient(180deg, rgba(18,160,138,.55), rgba(14,80,70,.35));
    border: 1px solid rgba(255,255,255,.06);
}
.home-led-wall__mesh {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at center, rgba(255,255,255,.55) 0 .55px, transparent 1px);
    background-size: 5px 5px;
    opacity: .28;
    mix-blend-mode: soft-light;
    animation: home-led-mesh 2.4s steps(6) infinite;
}
.home-led-wall__wave {
    position: absolute;
    inset: -20%;
    background:
        conic-gradient(from 210deg at 40% 50%, rgba(18,160,138,.15), rgba(80,200,180,.55), rgba(201,133,42,.35), rgba(40,120,180,.4), rgba(18,160,138,.15));
    animation: home-led-wave 8s linear infinite;
    opacity: .75;
    mix-blend-mode: screen;
}
.home-led-wall__wave--slow { animation-duration: 14s; opacity: .45; }
.home-led-wall__signal {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        180deg,
        transparent 14%,
        rgba(255,255,255,.18) 15%,
        transparent 16%
    );
    background-size: 100% 140%;
    animation: home-led-refresh 3.6s linear infinite;
    opacity: .5;
}
.home-led-wall__scanline {
    position: absolute;
    left: 0; right: 0;
    top: 0;
    height: 28%;
    background: linear-gradient(180deg, transparent, rgba(255,255,255,.16), transparent);
    animation: home-led-scanline 3.8s ease-in-out infinite;
    pointer-events: none;
    will-change: transform, opacity;
}
.home-led-wall__live {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}
.home-led__slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Noto Sans SC", sans-serif;
    font-size: clamp(18px, 2.2vw, 28px);
    font-weight: 700;
    letter-spacing: .18em;
    color: rgba(255,255,255,.92);
    text-shadow: 0 2px 18px rgba(0,0,0,.35);
    white-space: nowrap;
    opacity: 0;
    transform: translateY(10px) scale(.98);
    transition: opacity .65s ease, transform .65s ease;
}
.home-led__slide.is-on {
    opacity: 1;
    transform: none;
}
.home-led-wall__hud {
    position: absolute;
    left: 12px;
    bottom: 10px;
    z-index: 3;
    font-size: 10px;
    letter-spacing: .08em;
    color: rgba(255,255,255,.55);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    border-left: 2px solid rgba(18,160,138,.7);
    padding-left: 8px;
}

.home-led-tile {
    position: absolute;
    width: 48px;
    height: 36px;
    background:
        linear-gradient(135deg, rgba(18,160,138,.75), rgba(14,80,70,.9)),
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.35), transparent 55%);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 8px 18px rgba(0,0,0,.3);
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: transform;
}
.home-led-tile::after {
    content: "";
    position: absolute;
    inset: 3px;
    background-image: radial-gradient(circle, rgba(255,255,255,.45) 0 .4px, transparent .8px);
    background-size: 4px 4px;
    opacity: .5;
}
.home-led-tile--1 {
    left: 78%;
    top: 6%;
    --tile-t: translateZ(90px) rotateY(-18deg);
    transform: var(--tile-t);
    animation: home-led-tile-float 5.5s ease-in-out infinite;
}
.home-led-tile--2 {
    left: 86%;
    top: 38%;
    width: 40px;
    height: 30px;
    --tile-t: translateZ(70px) rotateY(-22deg) rotateX(8deg);
    transform: var(--tile-t);
    animation: home-led-tile-float 6.2s ease-in-out .4s infinite;
}
.home-led-tile--3 {
    left: 8%;
    top: 58%;
    width: 36px;
    height: 28px;
    --tile-t: translateZ(55px) rotateY(24deg);
    transform: var(--tile-t);
    animation: home-led-tile-float 7s ease-in-out .8s infinite;
}
.home-led-tile--4 {
    left: 72%;
    top: 68%;
    width: 34px;
    height: 26px;
    --tile-t: translateZ(100px) rotateX(-12deg);
    transform: var(--tile-t);
    animation: home-led-tile-float 5.8s ease-in-out 1.1s infinite;
}

@keyframes home-led-pixel {
    0% { background-position: 0 0, 3.5px 3.5px; opacity: .2; }
    50% { background-position: 7px 3.5px, 10.5px 7px; opacity: .38; }
    100% { background-position: 14px 7px, 17.5px 10.5px; opacity: .2; }
}
@keyframes home-led-refresh {
    from { background-position: 0 -40%; }
    to { background-position: 0 140%; }
}
@keyframes home-led-palette {
    0%, 100% {
        background:
            linear-gradient(160deg, rgba(14,124,107,.38) 0%, transparent 42%, rgba(201,133,42,.18) 100%),
            radial-gradient(ellipse 60% 50% at 72% 42%, rgba(18,160,138,.35) 0%, transparent 65%);
    }
    33% {
        background:
            linear-gradient(160deg, rgba(18,160,138,.4) 0%, transparent 40%, rgba(45,110,180,.22) 100%),
            radial-gradient(ellipse 55% 48% at 78% 36%, rgba(80,180,220,.28) 0%, transparent 65%);
    }
    66% {
        background:
            linear-gradient(160deg, rgba(201,133,42,.28) 0%, transparent 42%, rgba(14,124,107,.3) 100%),
            radial-gradient(ellipse 58% 50% at 68% 50%, rgba(201,133,42,.28) 0%, transparent 65%);
    }
}
@keyframes home-led-rig-float {
    0%, 100% { transform: rotateX(18deg) rotateY(-28deg) rotateZ(2deg) translate3d(0, 0, 0); }
    50% { transform: rotateX(16deg) rotateY(-24deg) rotateZ(1deg) translate3d(0, -10px, 0); }
}
@keyframes home-led-orbit {
    from { transform: rotateX(68deg) rotateZ(-12deg) rotate(0deg); }
    to { transform: rotateX(68deg) rotateZ(-12deg) rotate(360deg); }
}
@keyframes home-led-halo {
    0%, 100% { opacity: .55; transform: scale(1); }
    50% { opacity: .9; transform: scale(1.06); }
}
@keyframes home-led-beam {
    0%, 100% { opacity: .35; }
    50% { opacity: .7; }
}
@keyframes home-led-main-pulse {
    0%, 100% { transform: translateZ(40px); }
    50% { transform: translateZ(52px); }
}
@keyframes home-led-mesh {
    0% { background-position: 0 0; opacity: .22; }
    50% { background-position: 2.5px 2.5px; opacity: .38; }
    100% { background-position: 5px 5px; opacity: .22; }
}
@keyframes home-led-wave {
    from { transform: rotate(0deg) scale(1.1); }
    to { transform: rotate(360deg) scale(1.1); }
}
@keyframes home-led-scanline {
    0% { transform: translate3d(0, -36%, 0); opacity: 0; }
    15% { opacity: .8; }
    85% { opacity: .8; }
    100% { transform: translate3d(0, 321%, 0); opacity: 0; }
}
@keyframes home-led-tile-float {
    0%, 100% { transform: var(--tile-t) translate3d(0, 0, 0); }
    50% { transform: var(--tile-t) translate3d(0, -12px, 0); }
}
@keyframes home-stage-pan {
    from { background-position: center, center, center, 50% 40%; }
    to { background-position: center, center, center, 54% 46%; }
}
@keyframes home-glow-breathe {
    0%, 100% { opacity: .55; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.08); }
}
@keyframes home-scan-sweep {
    0%, 12% { background-position: 120% 0; opacity: 0; }
    18% { opacity: 1; }
    55% { background-position: -20% 0; opacity: 1; }
    62%, 100% { background-position: -40% 0; opacity: 0; }
}
@keyframes home-grid-drift {
    from { background-position: 0 0, 0 0; }
    to { background-position: 48px 24px, 48px 24px; }
}
@keyframes home-hero-in {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes home-brand-shimmer {
    0%, 100% { text-shadow: 0 0 0 transparent; }
    50% { text-shadow: 0 0 28px rgba(18,160,138,.35); }
}
.home-hero__inner {
    position: relative;
    max-width: var(--content);
    margin: 0 auto;
    width: 100%;
    z-index: 2;
}
.home-hero__inner--v2 {
    display: block;
    max-width: var(--content-narrow);
}
.home-hero--v2 .home-hero__content > * {
    animation: home-hero-in .65s ease both;
}
.home-hero--v2 .home-hero__content > *:nth-child(2) { animation-delay: .07s; }
.home-hero--v2 .home-hero__content > *:nth-child(3) { animation-delay: .14s; }
.home-hero--v2 .home-hero__content > *:nth-child(4) { animation-delay: .22s; }
.home-hero--v2 .home-hero__content > *:nth-child(5) { animation-delay: .3s; }
.home-hero__title {
    font-family: "Noto Serif SC", "Songti SC", "STSong", serif;
    font-size: clamp(28px, 4.5vw, 48px);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 14px;
    letter-spacing: .02em;
    color: #fff;
}
.home-hero--v2 .home-hero__title {
    animation: home-hero-in .65s ease both, home-brand-shimmer 4.5s ease-in-out 1.1s infinite;
}
.home-hero__desc {
    font-size: 16px;
    color: rgba(255,255,255,.58);
    margin: 0 0 28px;
    max-width: 520px;
    line-height: 1.65;
}
.home-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.home-hero__actions--secondary {
    margin-top: 18px;
    align-items: center;
    gap: 14px;
}
.home-hero__text-link {
    font-size: 14px;
    color: rgba(255,255,255,.62);
    font-weight: 500;
}
.home-hero__text-link:hover { color: #fff; }
.home-hero__sep {
    width: 1px;
    height: 14px;
    background: rgba(255,255,255,.22);
}

/* Hero 搜索条（核心交互） */
.home-hero-search {
    background: rgba(255,255,255,.96);
    border-radius: var(--radius);
    padding: 10px;
    box-shadow: 0 16px 48px rgba(0,0,0,.28);
    color: var(--text);
}
.home-hero-search__fields {
    display: flex;
    align-items: stretch;
    gap: 4px;
}
.home-hero-search__field {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 8px 14px;
    min-width: 0;
    border-right: 1px solid var(--border);
}
.home-hero-search__field--grow { flex: 1.4; }
.home-hero-search__field:last-of-type { border-right: none; }
.home-hero-search__label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 2px;
    letter-spacing: .02em;
}
.home-hero-search__field input,
.home-hero-search__field select {
    width: 100%;
    border: none;
    background: transparent;
    font-size: 14px;
    font-family: inherit;
    color: var(--text);
    outline: none;
    padding: 0;
    height: 26px;
}
.home-hero-search__field select { cursor: pointer; }
.home-hero-search__field input::placeholder { color: #5c6770; }
.home-hero-search__btn {
    flex-shrink: 0;
    align-self: center;
    margin-left: 4px;
    min-width: 118px;
}

/* ---- 统计条 ---- */
.home-stats {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow);
    position: relative;
    z-index: 2;
    margin-top: -1px;
}
.home-stats__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.home-stats__item {
    padding: 32px 20px;
    text-align: center;
    border-right: 1px solid var(--border);
    transition: background var(--transition);
}
.home-stats__item:hover { background: var(--brand-light); }
.home-stats__item:last-child { border-right: none; }
.home-stats__icon {
    width: 44px; height: 44px;
    margin: 0 auto 12px;
    background: var(--brand-light);
    color: var(--brand);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: transform var(--transition);
}
.home-stats__item:hover .home-stats__icon { transform: scale(1.08); }
.home-stats__value {
    font-size: 34px;
    font-weight: 800;
    color: var(--brand);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.home-stats__label {
    font-size: 13px;
    color: var(--text-muted);
    margin-top: 8px;
    font-weight: 500;
}

/* ---- 通用区块 ---- */
.home-section {
    max-width: var(--content);
    margin: 0 auto;
    padding: var(--section-y) var(--pad-x);
}
.home-section--gray,
.home-section--muted {
    background: var(--bg-warm);
    max-width: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.home-section__container {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.home-section--cta { padding-top: 40px; padding-bottom: 64px; }

/* 同色带相邻：去掉叠加上 padding（有灰底/色带切换时保留完整节奏） */
.home-section:not(.home-section--gray):not(.home-section--muted)
    + .home-section:not(.home-section--gray):not(.home-section--muted),
.home-section--gray + .home-section--gray,
.home-section--muted + .home-section--muted,
.home-section--gray + .home-section--muted,
.home-section--muted + .home-section--gray,
.home-discover + .home-section--cta {
    padding-top: 0;
}
.home-section__tag {
    display: inline-block;
    padding: 4px 12px;
    background: var(--brand-light);
    color: var(--brand);
    font-size: 12px;
    font-weight: 600;
    border-radius: var(--radius-lg);
    margin-bottom: 12px;
    letter-spacing: .02em;
}
.home-section__tag--orange { background: #f8ecd8; color: #8a5a12; }
.home-section__head {
    text-align: center;
    margin-bottom: 48px;
}
.home-section__head--compact {
    margin-bottom: 36px;
}
.home-section__head h2 {
    font-size: 30px;
    font-weight: 700;
    margin: 0 0 12px;
    color: var(--text);
    letter-spacing: -.02em;
}
.home-section__head p {
    font-size: 15px;
    color: var(--text-muted);
    margin: 0;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.home-section__head-left {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 28px;
    flex-wrap: wrap;
    gap: 16px;
}
.home-section__title-group h2 {
    font-size: 26px;
    font-weight: 700;
    margin: 0;
    letter-spacing: -.02em;
}
.home-section__title-group p {
    font-size: 14px;
    color: var(--text-muted);
    margin: 6px 0 0;
}
.home-link-more {
    color: var(--brand);
    font-size: 14px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 0;
    white-space: nowrap;
}
.home-link-more:hover { color: var(--brand-dark); gap: 8px; }

/* ---- 设备筛选 ---- */
.home-filter-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.home-filter-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    transition: all var(--transition);
}
.home-filter-tab:hover {
    border-color: var(--brand);
    color: var(--brand);
}
.home-filter-tab.is-active {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
    box-shadow: 0 4px 12px rgba(14, 124, 107, .28);
}
.home-filter-tab i { font-size: 13px; }

/* ---- 设备卡片 ---- */
.home-device-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
.home-device-card {
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: transform var(--transition), box-shadow var(--transition);
    border: 1px solid var(--border);
    display: flex;
    flex-direction: column;
}
.home-device-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(0, 160, 233, .35);
}
/* 列表缩略图 / 封面统一正方形 */
.home-device-card__img {
    aspect-ratio: 1;
    height: auto;
    background: linear-gradient(135deg, #1e262e, #2a343e);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.home-device-card__img img {
    width: 100%; height: 100%;
    object-fit: contain;
    object-position: center;
}
.home-device-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%; height: 100%;
}
.home-device-card__placeholder .fa {
    font-size: 48px;
    color: rgba(0, 160, 233, .45);
}
.home-device-card__tag {
    position: absolute;
    top: 12px; left: 12px;
    padding: 4px 10px;
    background: var(--brand);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    border-radius: var(--radius-xs);
    box-shadow: 0 2px 8px rgba(0, 160, 233, .35);
    max-width: calc(100% - 88px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.home-device-card__offer {
    position: absolute;
    top: 12px; right: 12px;
    padding: 4px 8px;
    background: rgba(15, 23, 42, .72);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    border-radius: var(--radius-xs);
    letter-spacing: .02em;
}
.home-device-card__body {
    padding: 18px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.home-device-card__name {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.home-device-card__spec {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0 0 14px;
    height: 36px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.5;
    flex: 1;
}
.home-device-card__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}
.home-device-card__price {
    font-size: 20px;
    font-weight: 700;
    color: var(--danger);
}
.home-device-card__price small {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-muted);
}
.home-device-card__city {
    font-size: 12px;
    color: var(--text-muted);
}
.home-device-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 10px;
    background: var(--brand-light);
    color: var(--brand);
    font-size: 13px;
    font-weight: 600;
    border-radius: var(--radius-sm);
    margin-top: auto;
    transition: all var(--transition);
}
.home-device-card:hover .home-device-card__cta {
    background: var(--brand);
    color: #fff;
}

/* ---- 需求卡片 ---- */
.home-demand-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.home-demand-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: 22px;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    transition: all var(--transition);
    display: block;
}
.home-demand-card:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
}
.home-demand-card__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
}
.home-demand-card__title {
    font-size: 15px;
    font-weight: 600;
    margin: 0;
    flex: 1;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-demand-card__status {
    padding: 3px 10px;
    border-radius: var(--radius-xs);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}
.home-demand-card__status--bidding { background: #fef3c7; color: #b45309; }
.home-demand-card__status--published { background: var(--brand-light); color: var(--brand-dark); }
.home-demand-card__info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 16px;
}
.home-demand-card__info span {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.home-demand-card__info .home-demand-card__date {
    grid-column: 1 / -1;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-all;
}
.home-demand-card__info i { color: var(--brand); font-size: 12px; width: 14px; text-align: center; flex-shrink: 0; }
.home-demand-card__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}
.home-demand-card__budget {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    color: var(--danger);
}
.home-demand-budget-prefix {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-muted);
    line-height: 1.2;
}
.home-demand-budget-amount {
    font-size: 17px;
    font-weight: 700;
    color: var(--danger);
}
.home-demand-budget-quote {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-muted);
}
.home-demand-card__bids {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.home-demand-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--text-muted);
    font-size: 13px;
}
.home-demand-card__views {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.home-demand-countdown {
    margin: 12px 0 0;
    padding: 10px 14px;
    border-radius: 8px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 14px;
    font-weight: 600;
}
.home-demand-countdown.is-expired {
    background: #f1f5f9;
    color: #64748b;
}
.home-demand-side__countdown {
    margin: 0 0 16px;
    padding: 12px;
    border-radius: 8px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
}
.home-demand-side__countdown-label {
    font-size: 12px;
    color: #9a3412;
    margin-bottom: 4px;
}
.home-demand-side__countdown-value {
    font-size: 18px;
    font-weight: 700;
    color: #c2410c;
    font-variant-numeric: tabular-nums;
}
.home-demand-card__bids {
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ---- 流程 ---- */
.home-flow {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    position: relative;
}
.home-flow::before {
    content: '';
    position: absolute;
    top: 36px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: linear-gradient(90deg, var(--brand-light), var(--brand), var(--brand-light));
    z-index: 0;
}
.home-flow__item {
    text-align: center;
    position: relative;
    z-index: 1;
    padding: 0 8px;
}
.home-flow__num-wrap {
    position: relative;
    width: 72px;
    height: 72px;
    margin: 0 auto 20px;
}
.home-flow__num {
    width: 72px; height: 72px;
    background: var(--white);
    color: var(--brand);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    border: 2px solid var(--brand);
    box-shadow: 0 4px 16px rgba(14, 124, 107, .18);
    transition: transform var(--transition);
}
.home-flow__item:hover .home-flow__num { transform: scale(1.08); }
.home-flow__step {
    position: absolute;
    top: -6px; right: -6px;
    width: 22px; height: 22px;
    background: var(--brand);
    color: #fff;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--white);
}
.home-flow__item h4 { font-size: 16px; margin: 0 0 10px; font-weight: 600; }
.home-flow__item p { font-size: 13px; color: var(--text-muted); margin: 0; line-height: 1.6; }

/* ---- 角色入口 ---- */
.home-roles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
.home-role-card {
    background: var(--white);
    border-radius: var(--radius);
    padding: 32px 22px;
    text-align: center;
    border: 1px solid var(--border);
    transition: all var(--transition);
    cursor: pointer;
    display: block;
}
.home-role-card:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}
.home-role-card__icon {
    width: 60px; height: 60px;
    margin: 0 auto 18px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #fff;
    transition: transform var(--transition);
}
.home-role-card:hover .home-role-card__icon { transform: scale(1.06); }
.home-role-card__icon--merchant { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); }
.home-role-card__icon--channel { background: linear-gradient(135deg, var(--dark-soft), var(--dark)); }
.home-role-card__icon--customer { background: linear-gradient(135deg, var(--accent), var(--accent-dark)); }
.home-role-card__icon--installer { background: linear-gradient(135deg, var(--text-muted), #3d454d); }
.home-role-card h4 { font-size: 17px; margin: 0 0 10px; font-weight: 600; }
.home-role-card p { font-size: 13px; color: var(--text-muted); margin: 0 0 18px; line-height: 1.6; }
.home-role-card__link {
    font-size: 13px;
    color: var(--brand);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap var(--transition);
}
.home-role-card:hover .home-role-card__link { gap: 8px; }

/* ---- 优势 ---- */
.home-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.home-feature {
    background: var(--white);
    border-radius: var(--radius);
    padding: 30px;
    border: 1px solid var(--border);
    transition: all var(--transition);
}
.home-feature:hover {
    border-color: rgba(14, 124, 107, .3);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}
.home-feature__icon {
    width: 50px; height: 50px;
    background: var(--brand-light);
    color: var(--brand);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-bottom: 18px;
    transition: transform var(--transition);
}
.home-feature:hover .home-feature__icon { transform: scale(1.06); }
.home-feature h4 { font-size: 16px; margin: 0 0 10px; font-weight: 600; }
.home-feature p { font-size: 14px; color: var(--text-muted); margin: 0; line-height: 1.65; }

/* ---- 公告 ---- */
.home-announce-block { margin-bottom: 40px; }
.home-announce-block__head { margin-bottom: 20px !important; }
.home-announce {
    background: var(--white);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.home-announce__item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border);
    transition: background var(--transition);
    cursor: default;
}
.home-announce__item:last-child { border-bottom: none; }
.home-announce__item:hover { background: var(--brand-light); }
.home-announce__date {
    font-size: 12px;
    color: var(--brand);
    white-space: nowrap;
    min-width: 72px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}
.home-announce__title {
    flex: 1;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-announce__arrow {
    color: var(--text-muted);
    font-size: 14px;
    opacity: 0;
    transition: opacity var(--transition), transform var(--transition);
}
.home-announce__item:hover .home-announce__arrow {
    opacity: 1;
    transform: translateX(4px);
}

/* ---- 空状态 ---- */
.home-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 56px 32px;
    background: var(--white);
    border-radius: var(--radius);
    border: 2px dashed var(--border);
}
.home-empty__icon {
    width: 72px; height: 72px;
    margin: 0 auto 16px;
    background: var(--bg);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-empty__icon .fa { font-size: 32px; color: #cbd5e1; }
.home-empty h4 { font-size: 17px; margin: 0 0 8px; color: var(--text); }
.home-empty p { color: var(--text-muted); margin: 0 0 20px; font-size: 14px; }

/* ---- CTA ---- */
.home-cta {
    background:
        radial-gradient(ellipse 42% 70% at 92% 18%, rgba(201,133,42,.22) 0%, transparent 58%),
        radial-gradient(ellipse 48% 60% at 8% 88%, rgba(18,160,138,.28) 0%, transparent 55%),
        linear-gradient(135deg, #0e7c6b 0%, #0a5a4e 52%, #122820 100%);
    border-radius: var(--radius-lg);
    padding: 56px 52px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    position: relative;
    overflow: hidden;
    box-shadow:
        0 16px 48px rgba(14, 124, 107, .32),
        inset 0 1px 0 rgba(255,255,255,.12);
}
.home-cta__mesh,
.home-cta__scan {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.home-cta__mesh {
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 28px 28px;
    opacity: .45;
    mask-image: linear-gradient(90deg, transparent, #000 18%, #000 72%, transparent);
}
.home-cta__scan {
    background: linear-gradient(
        105deg,
        transparent 40%,
        rgba(255,255,255,.07) 48%,
        rgba(255,255,255,.12) 50%,
        rgba(255,255,255,.07) 52%,
        transparent 60%
    );
    background-size: 220% 100%;
    animation: home-cta-scan 7s ease-in-out infinite;
}
@keyframes home-cta-scan {
    0%, 100% { background-position: 120% 0; }
    50% { background-position: -20% 0; }
}
.home-cta__content { position: relative; z-index: 1; flex: 1; max-width: 640px; }
.home-cta__brand {
    display: inline-block;
    margin: 0 0 14px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
}
.home-cta h3 {
    font-family: "Noto Serif SC", "Songti SC", serif;
    font-size: clamp(26px, 3.2vw, 34px);
    margin: 0 0 14px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.25;
}
.home-cta__desc {
    font-size: 15px;
    color: rgba(255,255,255,.84);
    margin: 0 0 28px;
    max-width: 520px;
    line-height: 1.65;
}
.home-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.home-cta__actions .home-btn--lg { min-width: 148px; }
.home-cta__actions .home-btn--white {
    box-shadow: 0 8px 24px rgba(10, 40, 34, .28);
}
.home-cta__actions .home-btn--ghost {
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(255,255,255,.06);
}
.home-cta__roles {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 18px;
    flex-shrink: 0;
    min-width: 200px;
}
.home-cta__roles span {
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,.78);
    letter-spacing: .04em;
    padding-left: 14px;
    position: relative;
}
.home-cta__roles span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-radius: 1px;
    background: rgba(201,133,42,.9);
    box-shadow: 0 0 0 3px rgba(201,133,42,.18);
}

/* ---- 页脚 ---- */
.home-footer {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, #10161b 0%, var(--dark) 42%, #0d1216 100%);
    color: rgba(255,255,255,.62);
    padding: 64px 0 0;
    border-top: 1px solid rgba(61,214,184,.12);
}
.home-footer__glow {
    position: absolute;
    inset: auto auto -40% 50%;
    width: min(720px, 90vw);
    height: 420px;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at center, rgba(14,124,107,.22), transparent 68%);
    pointer-events: none;
}
.home-footer__inner {
    position: relative;
    z-index: 1;
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x) 48px;
    display: grid;
    grid-template-columns: 1.35fr 1.55fr 1fr;
    gap: 48px 40px;
    align-items: start;
}
.home-footer__brand-col { min-width: 0; }
.home-page .home-footer__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    margin-bottom: 16px;
}
.home-page .home-footer__brand:hover { color: #fff; opacity: .92; }
.home-footer__brand-logo {
    flex-shrink: 0;
    display: block;
    width: 40px;
    height: 40px;
    padding: 4px;
    object-fit: contain;
    background: #000;
    border: 1.5px solid rgba(18, 160, 138, .45);
    border-radius: var(--radius-sm);
    box-sizing: border-box;
}
.home-footer__brand-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.home-footer__brand-text strong {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.2;
}
.home-footer__brand-text span {
    font-size: 12px;
    font-weight: 500;
    color: rgba(255,255,255,.48);
    line-height: 1.4;
}
.home-footer__desc {
    margin: 0 0 22px;
    font-size: 13px;
    line-height: 1.8;
    max-width: 300px;
    color: rgba(255,255,255,.55);
}
.home-footer__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.home-footer__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 16px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.04);
    color: rgba(255,255,255,.88) !important;
    font-size: 13px;
    font-weight: 600;
    transition: background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);
}
.home-footer__cta-btn:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.28);
    color: #fff !important;
    transform: translateY(-1px);
}
.home-footer__cta-btn--primary {
    border-color: transparent;
    background: linear-gradient(145deg, var(--brand-bright), var(--brand));
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(14,124,107,.28);
}
.home-footer__cta-btn--primary:hover {
    background: linear-gradient(145deg, var(--brand-glow), var(--brand-bright));
    border-color: transparent;
    color: #fff !important;
}
.home-footer__nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 24px;
}
.home-footer h5 {
    position: relative;
    color: #fff;
    font-size: 13px;
    margin: 0 0 18px;
    padding-bottom: 10px;
    font-weight: 600;
    letter-spacing: .04em;
}
.home-footer h5::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 18px;
    height: 2px;
    border-radius: 1px;
    background: linear-gradient(90deg, var(--brand-glow), transparent);
}
.home-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.home-footer li { margin-bottom: 11px; }
.home-footer li:last-child { margin-bottom: 0; }
.home-footer__col a,
.home-footer__legal a {
    font-size: 13px;
    color: rgba(255,255,255,.52);
    transition: color var(--transition), padding-left var(--transition);
}
.home-footer__col a:hover,
.home-footer__legal a:hover {
    color: var(--brand-glow);
}
.home-footer__col a:hover {
    padding-left: 4px;
}
.home-footer__contact {
    min-width: 0;
    padding: 20px 18px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: var(--radius);
    background:
        linear-gradient(160deg, rgba(255,255,255,.04), transparent 55%),
        rgba(255,255,255,.02);
}
.home-footer__contact h5 { margin-bottom: 16px; }
.home-footer__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
    color: rgba(255,255,255,.62);
    font-size: 13px;
    line-height: 1.45;
}
.home-footer__contact-item:last-child { margin-bottom: 0; }
.home-page a.home-footer__contact-item:hover { color: var(--brand-glow); }
.home-page a.home-footer__contact-item:hover .home-footer__contact-icon {
    border-color: rgba(61,214,184,.35);
    color: var(--brand-glow);
}
.home-footer__contact-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-xs);
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.04);
    color: rgba(255,255,255,.72);
    font-size: 13px;
    transition: border-color var(--transition), color var(--transition);
}
.home-footer__contact-item span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    word-break: break-all;
}
.home-footer__contact-item em {
    font-style: normal;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    color: rgba(255,255,255,.38);
}
.home-footer__bottom {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(255,255,255,.07);
    background: rgba(0,0,0,.18);
}
.home-footer__bottom-inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 18px var(--pad-x);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    flex-wrap: wrap;
}
.home-footer__copy {
    margin: 0;
    font-size: 12px;
    color: rgba(255,255,255,.38);
}
.home-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
}
.home-footer__legal a {
    font-size: 12px;
    color: rgba(255,255,255,.42);
}

/* ---- 右侧悬浮栏（委托租用 / 扫码 / 客服 / 顶部） ---- */
.home-floatbar {
    position: fixed;
    right: 16px;
    bottom: 48px;
    z-index: 999;
    width: 56px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .12);
    overflow: visible;
    font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.home-floatbar__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 72px;
    padding: 14px 0;
    background: linear-gradient(180deg, #0067a7 0%, #008fd6 100%);
    color: #fff !important;
    text-decoration: none !important;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .04em;
    border-radius: 10px 10px 0 0;
    transition: filter .2s ease, opacity .2s ease;
}
.home-floatbar__cta:hover {
    background: linear-gradient(180deg, #005582 0%, #0077b8 100%);
    color: #fff !important;
}
.home-floatbar__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 64px;
    padding: 10px 6px;
    color: #8a8f98 !important;
    text-decoration: none !important;
    background: #fff;
    border: none;
    border-top: 1px solid #ececec;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    transition: color .2s ease, background .2s ease;
}
.home-floatbar__item:first-of-type,
.home-floatbar > .home-floatbar__item:nth-child(2) {
    border-top: none;
}
.home-floatbar__item:last-child {
    border-radius: 0 0 10px 10px;
}
.home-floatbar__item > i,
.home-floatbar__btn > i {
    font-size: 20px;
    line-height: 1;
}
.home-floatbar__item:hover,
.home-floatbar__item.is-open {
    color: #006ba3 !important;
    background: #eef6fb;
}
.home-floatbar__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 44px;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.home-floatbar__item--qr {
    min-height: 56px;
    padding: 8px 6px;
}
.home-floatbar__panel {
    position: absolute;
    right: calc(100% + 12px);
    top: 50%;
    transform: translateY(-50%);
    width: 168px;
    padding: 14px 12px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .14);
    text-align: center;
    z-index: 2;
}
.home-floatbar__panel::after {
    content: "";
    position: absolute;
    right: -6px;
    top: 50%;
    width: 12px;
    height: 12px;
    background: #fff;
    transform: translateY(-50%) rotate(45deg);
    box-shadow: 2px -2px 4px rgba(0, 0, 0, .04);
}
.home-floatbar__qr-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin: 0 auto 8px;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    color: #8a8f98;
    font-size: 36px;
    background: #fafafa;
}
.home-floatbar__panel p {
    margin: 0 0 6px;
    font-size: 12px;
    color: #999;
    line-height: 1.3;
}
.home-floatbar__panel > a {
    display: block;
    font-size: 12px;
    color: #006ba3 !important;
    text-decoration: none !important;
    word-break: break-all;
    line-height: 1.4;
}
.home-floatbar__panel-link {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #f0f0f0;
    font-weight: 600 !important;
}
.home-floatbar__item--qr:not(.is-open) .home-floatbar__panel[hidden] {
    display: none;
}

/* ---- 快捷入口 ---- */
.home-quick {
    background: var(--white);
    border-bottom: 1px solid var(--border);
    position: relative;
    z-index: 2;
}
.home-quick__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 28px 24px;
    display: grid;
    gap: 22px;
}
.home-quick__group {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.home-quick__label {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    white-space: nowrap;
    min-width: 52px;
}
.home-quick__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 1;
}
.home-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--bg);
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    font-size: 13px;
    font-weight: 500;
    color: var(--text);
    transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.home-chip i { color: var(--brand); font-size: 14px; }
.home-chip em {
    font-style: normal;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
}
.home-chip:hover {
    background: var(--brand-light);
    border-color: rgba(14, 124, 107, .25);
    transform: translateY(-1px);
}
.home-chip--type { border-radius: var(--radius-sm); }

/* ---- 匹配大版块：流程 + 最新需求 ---- */
.home-match {
    position: relative;
    overflow: hidden;
    padding: var(--section-y) 0 calc(var(--section-y) + 16px);
    background:
        linear-gradient(180deg, rgba(14, 124, 107, .04) 0%, transparent 42%),
        var(--bg-warm);
}
.home-match__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 55% 40% at 8% 20%, rgba(14, 124, 107, .08), transparent 60%),
        radial-gradient(ellipse 40% 35% at 92% 70%, rgba(201, 133, 42, .07), transparent 55%);
}
.home-match__inner {
    position: relative;
    z-index: 1;
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 24px;
}
.home-match__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 36px;
}
.home-match__floors {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.home-match__title-group h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--text);
}
.home-match__title-group p {
    margin: 8px 0 0;
    font-size: 15px;
    color: var(--text-muted);
    max-width: 520px;
    line-height: 1.55;
}
.home-match__actions {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
}
.home-match-steps {
    list-style: none;
    margin: 0 0 40px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
}
.home-match-steps::before {
    content: "";
    position: absolute;
    top: 22px;
    left: 8%;
    right: 8%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(14, 124, 107, .28) 12%, rgba(14, 124, 107, .28) 88%, transparent);
    pointer-events: none;
}
.home-match-steps__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 16px;
}
.home-match-steps__num {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: var(--white);
    border: 1.5px solid rgba(14, 124, 107, .22);
    box-shadow: 0 4px 14px rgba(14, 124, 107, .1);
    font-family: "Noto Serif SC", "Songti SC", Georgia, serif;
    font-size: 15px;
    font-weight: 700;
    color: var(--brand);
    letter-spacing: .04em;
    transition: border-color var(--transition), background var(--transition), color var(--transition), transform var(--transition);
}
.home-match-steps__item:hover .home-match-steps__num {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
    transform: scale(1.06);
}
.home-match-steps__body h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
}
.home-match-steps__body p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
}
.home-match__board {
    background: var(--white);
    border: 1px solid rgba(20, 26, 31, .06);
    border-radius: var(--radius-lg);
    padding: 28px 28px 30px;
    box-shadow: 0 8px 32px rgba(20, 26, 31, .06);
}
.home-match__board-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border);
}
.home-match__board-title {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}
.home-match__board-title .mall-floor__badge {
    flex-shrink: 0;
}
.home-match__board-head h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.01em;
}
.home-match__board-head p {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--text-muted);
}
.home-demand-grid--match {
    gap: 16px;
}
.home-demand-grid--match .home-demand-card {
    background: var(--bg-warm);
    border-color: transparent;
    box-shadow: none;
}
.home-demand-grid--match .home-demand-card:hover {
    background: var(--white);
    border-color: var(--brand);
    box-shadow: var(--shadow-lg);
}
.home-empty--compact {
    padding: 40px 24px;
    border-style: dashed;
    background: var(--bg-warm);
    border-color: rgba(20, 26, 31, .1);
}

/* ---- 服务保障 ---- */
.home-assurance {
    position: relative;
    background: var(--dark);
    color: rgba(255,255,255,.78);
    padding: var(--section-y) 0;
    overflow: hidden;
}
.home-assurance__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 50% 55% at 12% 20%, rgba(14, 124, 107, .28), transparent 58%),
        radial-gradient(ellipse 42% 48% at 88% 80%, rgba(201, 133, 42, .14), transparent 55%);
}
.home-assurance__inner {
    position: relative;
    z-index: 1;
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.home-assurance__head {
    text-align: center;
    margin-bottom: 40px;
}
.home-assurance__head h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #fff;
}
.home-assurance__head p {
    margin: 10px auto 0;
    max-width: 560px;
    font-size: 15px;
    color: rgba(255,255,255,.62);
    line-height: 1.6;
}
.home-assurance__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 36px;
}
.home-assurance__item {
    padding: 28px 22px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--radius);
    background: rgba(255,255,255,.04);
    transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.home-assurance__item:hover {
    border-color: rgba(14, 124, 107, .45);
    background: rgba(255,255,255,.07);
    transform: translateY(-2px);
}
.home-assurance__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 16px;
    border-radius: var(--radius-sm);
    background: rgba(14, 124, 107, .22);
    color: var(--brand-bright);
    font-size: 18px;
}
.home-assurance__item h3 {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}
.home-assurance__item p {
    margin: 0;
    font-size: 13px;
    color: rgba(255,255,255,.55);
    line-height: 1.65;
}
.home-assurance__link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: rgba(255,255,255,.7);
}
.home-assurance__link:hover { color: #fff; }
.home-assurance__link i { transition: transform var(--transition); }
.home-assurance__link:hover i { transform: translateX(3px); }

/* ---- 新发现（首页主编排） ---- */
.home-discover {
    position: relative;
    padding: var(--section-y) 0;
    background:
        linear-gradient(180deg, rgba(14, 124, 107, .03) 0%, transparent 40%),
        var(--white);
}
.home-discover__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.home-discover__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 32px;
}
.home-discover__title-group h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--text);
}
.home-discover__title-group p {
    margin: 8px 0 0;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.55;
}
.home-discover__layout {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 28px;
    align-items: stretch;
}
.home-discover__layout--solo {
    grid-template-columns: 1fr;
}
.home-discover__layout--solo .home-discover__feature {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    align-items: stretch;
}
.home-discover__layout--solo .home-discover__feature-cover {
    aspect-ratio: auto;
    min-height: 280px;
    height: 100%;
}
.home-discover__feature {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background: var(--bg-warm);
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid rgba(20, 26, 31, .06);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.home-discover__feature:hover {
    border-color: rgba(14, 124, 107, .28);
    box-shadow: 0 14px 40px rgba(20, 26, 31, .08);
    transform: translateY(-2px);
}
.home-discover__feature-cover {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background:
        radial-gradient(ellipse 70% 60% at 30% 40%, rgba(14, 124, 107, .22), transparent 55%),
        linear-gradient(145deg, #1e262e, #2a343e);
    overflow: hidden;
}
.home-discover__feature-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s cubic-bezier(.4, 0, .2, 1);
}
.home-discover__feature:hover .home-discover__feature-cover img {
    transform: scale(1.04);
}
.home-discover__feature-shade {
    position: absolute;
    inset: auto 0 0;
    height: 42%;
    background: linear-gradient(180deg, transparent, rgba(20, 26, 31, .35));
    pointer-events: none;
}
.home-discover__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 160px;
    color: var(--brand-glow);
    font-size: 42px;
    opacity: .55;
}
.home-discover__placeholder--sm {
    min-height: 0;
    font-size: 22px;
}
.home-discover__feature-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 24px 26px 28px;
}
.home-discover__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--text-muted);
}
.home-discover__cat {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--radius-xs);
    background: var(--brand-light);
    color: var(--brand-dark);
    font-weight: 600;
    letter-spacing: .02em;
}
.home-discover__feature-body h3 {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -.02em;
}
.home-discover__feature-body h3 a,
.home-discover__item-body h3 a {
    color: var(--text);
    text-decoration: none;
    transition: color var(--transition);
}
.home-discover__feature-body h3 a:hover,
.home-discover__item-body h3 a:hover {
    color: var(--brand);
}
.home-discover__feature-body p {
    margin: 0 0 20px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-discover__read {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
    width: fit-content;
    transition: gap var(--transition), color var(--transition);
}
.home-discover__read:hover {
    color: var(--brand-dark);
    gap: 10px;
}
.home-discover__rail {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
}
.home-discover__item {
    display: grid;
    grid-template-columns: 112px 1fr;
    gap: 16px;
    align-items: center;
    flex: 1;
    padding: 14px;
    background: var(--bg-warm);
    border: 1px solid rgba(20, 26, 31, .06);
    border-radius: var(--radius);
    transition: border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition);
}
.home-discover__item:hover {
    background: var(--white);
    border-color: rgba(14, 124, 107, .28);
    box-shadow: 0 8px 24px rgba(20, 26, 31, .06);
    transform: translateY(-1px);
}
.home-discover__thumb {
    display: block;
    border-radius: var(--radius-sm);
    overflow: hidden;
    aspect-ratio: 1;
    background:
        radial-gradient(ellipse 80% 70% at 40% 40%, rgba(14, 124, 107, .18), transparent 60%),
        linear-gradient(145deg, #1e262e, #2a343e);
}
.home-discover__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .45s cubic-bezier(.4, 0, .2, 1);
}
.home-discover__item:hover .home-discover__thumb img {
    transform: scale(1.05);
}
.home-discover__item-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 2px 4px 2px 0;
}
.home-discover__item-body .home-discover__meta {
    margin-bottom: 8px;
}
.home-discover__item-body h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-discover__item-body p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---- 公告 ticker ---- */
.home-ticker {
    background: var(--white);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.home-ticker__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 12px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.home-ticker__label {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--brand);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.home-ticker__viewport {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 22px;
    overflow: hidden;
}
.home-ticker__track {
    position: relative;
    height: 100%;
}
.home-ticker__item {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-muted);
    white-space: nowrap;
    text-decoration: none;
    opacity: 0;
    transform: translateY(100%);
    transition: transform .4s ease, opacity .4s ease;
    pointer-events: none;
}
.home-ticker__item:hover { color: var(--brand); }
.home-ticker__item.is-active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.home-ticker__item.is-leave {
    opacity: 0;
    transform: translateY(-100%);
}
.home-ticker__text {
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}
.home-ticker__item time {
    flex-shrink: 0;
    font-size: 12px;
    color: #5c6770;
}
/* ---- 滚动渐入 ---- */
[data-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .7s cubic-bezier(.22, 1, .36, 1), transform .7s cubic-bezier(.22, 1, .36, 1);
}
[data-reveal].is-in {
    opacity: 1;
    transform: none;
}
[data-reveal-stagger] > * {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1);
}
[data-reveal-stagger].is-in > *:nth-child(1) { transition-delay: .04s; }
[data-reveal-stagger].is-in > *:nth-child(2) { transition-delay: .1s; }
[data-reveal-stagger].is-in > *:nth-child(3) { transition-delay: .16s; }
[data-reveal-stagger].is-in > *:nth-child(4) { transition-delay: .22s; }
[data-reveal-stagger].is-in > *:nth-child(5) { transition-delay: .28s; }
[data-reveal-stagger].is-in > *:nth-child(6) { transition-delay: .34s; }
[data-reveal-stagger].is-in > *:nth-child(7) { transition-delay: .4s; }
[data-reveal-stagger].is-in > *:nth-child(8) { transition-delay: .46s; }
[data-reveal-stagger].is-in > * {
    opacity: 1;
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    .home-ticker__item { transition: none; }
    .home-hero__stage,
    .home-hero__glow,
    .home-hero__scan,
    .home-hero__grid,
    .home-hero__title,
    .home-hero--v2 .home-hero__content > *,
    .home-led__wash,
    .home-led__pixels,
    .home-led__refresh,
    .home-led-rig,
    .home-led-rig__cluster,
    .home-led-rig__halo,
    .home-led-rig__orbit--a,
    .home-led-rig__orbit--b,
    .home-led-rig__beam,
    .home-led-wall--main,
    .home-led-wall__mesh,
    .home-led-wall__wave,
    .home-led-wall__signal,
    .home-led-wall__scanline,
    .home-led-tile,
    .home-cta__scan {
        animation: none !important;
    }
    .home-led-rig { opacity: 1; transform: translateY(-50%); }
    .home-led__slide { transition: none; }
    [data-reveal],
    [data-reveal-stagger] > * {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ---- 响应式 ---- */
@media (max-width: 1100px) {
    .home-hero-search__fields { flex-wrap: wrap; }
    .home-hero-search__field {
        border-right: none;
        border-bottom: 1px solid var(--border);
        flex: 1 1 40%;
    }
    .home-hero-search__field--grow { flex: 1 1 100%; }
    .home-hero-search__btn { width: 100%; margin: 8px 0 0; }
    .home-led-rig {
        width: min(52vw, 520px);
        height: min(52vw, 420px);
        right: -6%;
        opacity: .92;
    }
    .home-led__slide { font-size: clamp(16px, 2.4vw, 22px); letter-spacing: .12em; }
    .home-led-wall__hud { display: none; }
    .home-match-steps { grid-template-columns: repeat(2, 1fr); gap: 24px 12px; }
    .home-match-steps::before { display: none; }
    .home-assurance__grid { grid-template-columns: repeat(2, 1fr); }
    .home-discover__layout { grid-template-columns: 1fr; gap: 20px; }
    .home-discover__layout--solo .home-discover__feature {
        display: flex;
        flex-direction: column;
    }
    .home-discover__layout--solo .home-discover__feature-cover {
        aspect-ratio: 16 / 10;
        min-height: 0;
        height: auto;
    }
    .home-discover__feature-body h3 { font-size: 20px; }
    .home-discover__rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
    .home-discover__item { grid-template-columns: 1fr; padding: 12px; }
    .home-discover__thumb { aspect-ratio: 16 / 10; }
    .home-device-grid { grid-template-columns: repeat(2, 1fr); }
    .home-demand-grid { grid-template-columns: repeat(2, 1fr); }
    .home-match__board { padding: 24px; }
    .home-roles { grid-template-columns: repeat(2, 1fr); }
    .home-flow { grid-template-columns: repeat(2, 1fr); gap: 32px; }
    .home-flow::before { display: none; }
    .home-features { grid-template-columns: repeat(2, 1fr); }
    .home-footer:not(.mall-footer) .home-footer__inner {
        grid-template-columns: 1fr 1fr;
        gap: 36px 28px;
    }
    .home-footer:not(.mall-footer) .home-footer__brand-col { grid-column: 1 / -1; }
    .home-footer:not(.mall-footer) .home-footer__nav { grid-column: 1 / -1; }
    .home-footer:not(.mall-footer) .home-footer__contact { grid-column: 1 / -1; }
    .home-cta { flex-direction: column; text-align: center; }
    .home-cta__desc { margin-left: auto; margin-right: auto; }
    .home-cta__actions { justify-content: center; }
    .home-cta__roles { justify-items: center; min-width: 0; }
}
@media (max-width: 768px) {
    .home-nav__links,
    .home-nav__actions { display: none; }
    .home-nav__toggle { display: flex; }
    .home-nav__mobile { display: flex; }
    .home-nav__brand { font-size: 15px; }
    .home-nav__brand-logo { width: 32px; height: 32px; }
    .home-nav__region { max-width: 88px; padding: 5px 8px; font-size: 12px; }
    .home-nav__region-caret { display: none; }
    .region-modal { padding: 12px; align-items: flex-end; }
    .region-modal__panel { max-height: 85vh; border-radius: var(--radius-lg) 16px 0 0; }
    .home-hero--v2 { min-height: auto; padding: 108px 16px 56px; }
    .home-led-rig {
        width: 120%;
        height: 280px;
        right: -18%;
        top: 18%;
        transform: none;
        opacity: .45;
        mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
        -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
    }
    .home-led-rig__orbit,
    .home-led-rig__beam,
    .home-led-tile,
    .home-led-wall--deck { display: none; }
    .home-led-wall--main { width: 70%; height: 62%; left: 12%; }
    .home-hero__title { font-size: 22px; }
    .home-hero__desc { font-size: 15px; margin-bottom: 22px; }
    .home-hero__actions--secondary { flex-direction: column; align-items: flex-start; gap: 8px; }
    .home-hero__sep { display: none; }
    .home-quick__inner { padding: 22px 16px; }
    .home-quick__group { align-items: flex-start; flex-direction: column; gap: 10px; }
    .home-stats__inner { grid-template-columns: repeat(2, 1fr); }
    .home-stats__item:nth-child(2) { border-right: none; }
    .home-stats__item { border-bottom: 1px solid var(--border); padding: 24px 16px; }
    .home-stats__item:nth-child(3),
    .home-stats__item:nth-child(4) { border-bottom: none; }
    .home-section { padding: 48px 16px; }
    .home-section:not(.home-section--gray):not(.home-section--muted)
        + .home-section:not(.home-section--gray):not(.home-section--muted),
    .home-section--gray + .home-section--gray,
    .home-section--muted + .home-section--muted,
    .home-section--gray + .home-section--muted,
    .home-section--muted + .home-section--gray,
    .home-discover + .home-section--cta {
        padding-top: 0;
    }
    .home-section--gray .home-section__container,
    .home-section--muted .home-section__container { padding: 0 16px; }
    .home-section__head h2 { font-size: 24px; }
    .home-section__title-group h2 { font-size: 22px; }
    .home-match { padding: 52px 0 56px; }
    .home-match__inner { padding: 0 16px; }
    .home-match__head { margin-bottom: 28px; align-items: flex-start; }
    .home-match__title-group h2 { font-size: 22px; }
    .home-match__title-group p { font-size: 14px; }
    .home-match__actions { width: 100%; justify-content: flex-start; }
    .home-match-steps {
        grid-template-columns: 1fr 1fr;
        gap: 20px 8px;
        margin-bottom: 28px;
    }
    .home-match-steps__item { padding: 0 6px; }
    .home-match-steps__num { width: 40px; height: 40px; font-size: 13px; margin-bottom: 12px; }
    .home-match-steps__body h3 { font-size: 14px; }
    .home-match__board { padding: 20px 16px 22px; border-radius: var(--radius-lg); }
    .home-match__board-head { margin-bottom: 16px; padding-bottom: 14px; }
    .home-match__board-head h3 { font-size: 16px; }
    .home-assurance { padding: 52px 0 48px; }
    .home-assurance__inner { padding: 0 var(--pad-x-sm); }
    .home-assurance__head { margin-bottom: 28px; }
    .home-assurance__head h2 { font-size: 22px; }
    .home-assurance__grid { grid-template-columns: 1fr; gap: 12px; margin-bottom: 28px; }
    .home-assurance__item { padding: 22px 18px; }
    .home-discover { padding: 52px 0 48px; }
    .home-discover__inner { padding: 0 var(--pad-x-sm); }
    .home-discover__head { margin-bottom: 24px; }
    .home-discover__title-group h2 { font-size: 22px; }
    .home-discover__feature-body { padding: 18px 18px 22px; }
    .home-discover__feature-body h3 { font-size: 18px; }
    .home-discover__rail { grid-template-columns: 1fr; }
    .home-discover__item { grid-template-columns: 88px 1fr; padding: 10px; }
    .home-device-grid,
    .home-demand-grid,
    .home-features,
    .home-roles,
    .home-flow { grid-template-columns: 1fr; }
    .home-filter-tabs { gap: 8px; }
    .home-filter-tab { padding: 7px 14px; font-size: 12px; }
    .home-footer:not(.mall-footer) {
        padding-top: 48px;
    }
    .home-footer:not(.mall-footer) .home-footer__inner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 0 var(--pad-x-sm) 36px;
    }
    .home-footer:not(.mall-footer) .home-footer__brand-col,
    .home-footer:not(.mall-footer) .home-footer__nav,
    .home-footer:not(.mall-footer) .home-footer__contact { grid-column: auto; }
    .home-footer:not(.mall-footer) .home-footer__desc { max-width: none; }
    .home-footer:not(.mall-footer) .home-footer__nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 20px;
    }
    .home-footer:not(.mall-footer) .home-footer__nav .home-footer__col:last-child {
        grid-column: 1 / -1;
    }
    .home-footer:not(.mall-footer) .home-footer__bottom-inner {
        padding: 16px var(--pad-x-sm);
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .home-cta { padding: 40px 24px; gap: 28px; }
    .home-cta h3 { font-size: 22px; }
    .home-cta__roles { display: none; }
    .home-ticker__inner { padding: 10px 16px; }
    .home-floatbar { right: 10px; bottom: 20px; width: 50px; }
    .home-floatbar__cta { min-height: 64px; font-size: 14px; padding: 12px 0; }
    .home-floatbar__item { min-height: 56px; font-size: 11px; }
    .home-floatbar__panel { right: calc(100% + 8px); width: 150px; padding: 12px 10px; }
}
@media (max-width: 480px) {
    .home-hero-search__field { flex: 1 1 100%; }
    .home-nav__mobile-actions { flex-direction: column; }
}

/* ---- 场景 / 品类入口 ---- */
.home-scene-grid,
.home-category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.home-scene-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    min-height: 180px;
    display: block;
    color: #fff;
    box-shadow: var(--shadow);
    transition: transform var(--transition), box-shadow var(--transition);
}
.home-scene-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}
.home-scene-card__img {
    position: absolute; inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform .5s ease;
}
.home-scene-card:hover .home-scene-card__img { transform: scale(1.06); }
.home-scene-card__mask {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 20%, rgba(11,31,51,.88) 100%);
}
.home-scene-card__body {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 20px;
}
.home-scene-card__body h3 { margin: 0 0 4px; font-size: 18px; font-weight: 700; }
.home-scene-card__body p { margin: 0; font-size: 13px; color: rgba(255,255,255,.7); }

.home-category-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: all var(--transition);
}
.home-category-card:hover {
    border-color: var(--brand);
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}
.home-category-card__icon {
    width: 56px; height: 56px;
    border-radius: var(--radius-lg);
    background: var(--brand-light);
    color: var(--brand);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; flex-shrink: 0;
}
.home-category-card__icon img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: var(--radius-lg);
}
.home-category-card h3 { margin: 0 0 4px; font-size: 16px; font-weight: 600; }
.home-category-card p { margin: 0; font-size: 13px; color: var(--text-muted); }

/* ---- 信任帯 ---- */
.home-trust {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.home-trust__item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 28px 22px;
    text-align: center;
}
.home-trust__item i {
    font-size: 28px;
    color: var(--accent);
    margin-bottom: 12px;
    display: block;
}
.home-trust__item h4 { margin: 0 0 8px; font-size: 16px; }
.home-trust__item p { margin: 0; font-size: 13px; color: var(--text-muted); line-height: 1.6; }

.home-device-card__merchant {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.home-device-card__merchant .verified {
    color: var(--success);
    font-size: 11px;
}

/* ---- 子页：面包屑 / 列表布局 ---- */
.home-subhero {
    background: linear-gradient(160deg, var(--dark) 0%, var(--dark-soft) 55%, #163029 100%);
    color: #fff;
    padding: var(--subhero-pad);
}
.home-subhero__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
    width: 100%;
    box-sizing: border-box;
}
.home-breadcrumb {
    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
    font-size: 13px; color: rgba(255,255,255,.55); margin-bottom: 16px;
}
.home-breadcrumb a { color: rgba(255,255,255,.75); }
.home-breadcrumb a:hover { color: #fff; }
.home-breadcrumb span { color: rgba(255,255,255,.35); }
.home-subhero h1 { margin: 0 0 8px; font-size: 32px; font-weight: 700; font-family: var(--font-display); letter-spacing: .02em; }
.home-subhero p { margin: 0; color: rgba(255,255,255,.65); font-size: 15px; max-width: 560px; }

/* 增强版子页头（目录列表舞台层） */
.home-subhero--enhanced {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: var(--subhero-pad);
    background:
        radial-gradient(ellipse 70% 80% at 88% 20%, rgba(18, 160, 138, .28), transparent 55%),
        radial-gradient(ellipse 50% 60% at 12% 80%, rgba(201, 133, 42, .12), transparent 50%),
        linear-gradient(155deg, #0f1419 0%, #172028 48%, #12332c 100%);
}
.home-subhero--enhanced .home-subhero__stage {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.home-subhero--enhanced .home-subhero__glow {
    position: absolute;
    width: 52%;
    height: 90%;
    right: -8%;
    top: -10%;
    background: radial-gradient(ellipse at center, rgba(18, 160, 138, .35), transparent 68%);
    animation: home-subhero-glow 6s ease-in-out infinite;
}
.home-subhero--enhanced .home-subhero__scan {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        105deg,
        transparent 0%,
        transparent 42%,
        rgba(255, 255, 255, .045) 50%,
        transparent 58%,
        transparent 100%
    );
    background-size: 220% 100%;
    animation: home-subhero-scan 7.5s ease-in-out infinite;
}
.home-subhero--enhanced .home-subhero__mesh {
    position: absolute;
    inset: 0;
    opacity: .22;
    background-image:
        linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 35%, #000 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 35%, #000 100%);
    animation: home-subhero-mesh 22s linear infinite;
}
.home-subhero--enhanced .home-subhero__panels {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(420px, 42vw);
    height: 220px;
    transform: translateY(-46%);
    perspective: 900px;
}
.home-subhero--enhanced .home-subhero__panel {
    position: absolute;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow:
        0 20px 48px rgba(0, 0, 0, .35),
        inset 0 0 0 1px rgba(255, 255, 255, .06);
    overflow: hidden;
}
.home-subhero--enhanced .home-subhero__panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 3px,
            rgba(0, 0, 0, .12) 3px,
            rgba(0, 0, 0, .12) 4px
        ),
        linear-gradient(135deg, rgba(18, 160, 138, .55), rgba(14, 124, 107, .15) 55%, rgba(201, 133, 42, .25));
    opacity: .85;
}
.home-subhero--enhanced .home-subhero__panel--a {
    width: 58%;
    height: 72%;
    left: 0;
    top: 8%;
    transform: rotateY(-18deg) rotateX(6deg);
    animation: home-subhero-panel-a 8s ease-in-out infinite;
}
.home-subhero--enhanced .home-subhero__panel--b {
    width: 48%;
    height: 58%;
    right: 4%;
    top: 0;
    transform: rotateY(-12deg) rotateX(4deg);
    animation: home-subhero-panel-b 9s ease-in-out infinite;
}
.home-subhero--enhanced .home-subhero__panel--b::after {
    background:
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 3px,
            rgba(0, 0, 0, .12) 3px,
            rgba(0, 0, 0, .12) 4px
        ),
        linear-gradient(145deg, rgba(201, 133, 42, .45), rgba(18, 160, 138, .35));
}
.home-subhero--enhanced .home-subhero__panel--c {
    width: 42%;
    height: 48%;
    right: 18%;
    bottom: 0;
    transform: rotateY(-8deg) rotateX(8deg);
    animation: home-subhero-panel-c 7.5s ease-in-out infinite;
}
.home-subhero--enhanced .home-subhero__inner {
    position: relative;
    z-index: 1;
}
.home-subhero--enhanced .home-breadcrumb { margin-bottom: 20px; }
.home-subhero--enhanced .home-subhero__eyebrow {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--brand-bright);
    max-width: none;
    animation: home-subhero-in .55s ease both;
}
.home-subhero--enhanced h1 {
    font-family: "Noto Serif SC", "Songti SC", "STSong", serif;
    font-size: clamp(34px, 5vw, 48px);
    letter-spacing: .04em;
    margin: 0 0 12px;
    animation: home-subhero-in .6s ease .06s both;
}
.home-subhero--enhanced .home-subhero__lead {
    margin: 0 0 22px;
    font-size: 16px;
    color: rgba(255, 255, 255, .68);
    max-width: 520px;
    line-height: 1.65;
    animation: home-subhero-in .6s ease .12s both;
}
.home-subhero--enhanced .home-subhero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
    max-width: 720px;
    animation: home-subhero-in .65s ease .18s both;
}
.home-subhero--enhanced .home-subhero__chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, .78);
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    transition: background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);
}
.home-subhero--enhanced .home-subhero__chip:hover {
    color: #fff;
    background: rgba(18, 160, 138, .22);
    border-color: rgba(18, 160, 138, .45);
    transform: translateY(-1px);
}
.home-subhero--enhanced .home-subhero__chip.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-bright), var(--brand-dark));
    border-color: transparent;
    box-shadow: 0 6px 18px rgba(14, 124, 107, .35);
}
.home-subhero--enhanced .home-subhero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    font-size: 13px;
    color: rgba(255, 255, 255, .55);
    animation: home-subhero-in .65s ease .24s both;
}
.home-subhero--enhanced .home-subhero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.home-subhero--enhanced .home-subhero__meta .fa {
    color: var(--brand-bright);
    opacity: .9;
}
@keyframes home-subhero-in {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes home-subhero-glow {
    0%, 100% { opacity: .7; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.06); }
}
@keyframes home-subhero-scan {
    0%, 100% { background-position: 120% 0; }
    50% { background-position: -20% 0; }
}
@keyframes home-subhero-mesh {
    from { background-position: 0 0, 0 0; }
    to { background-position: 36px 18px, 36px 18px; }
}
@keyframes home-subhero-panel-a {
    0%, 100% { transform: rotateY(-18deg) rotateX(6deg) translateY(0); }
    50% { transform: rotateY(-14deg) rotateX(4deg) translateY(-8px); }
}
@keyframes home-subhero-panel-b {
    0%, 100% { transform: rotateY(-12deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-16deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-panel-c {
    0%, 100% { transform: rotateY(-8deg) rotateX(8deg) translateY(0); }
    50% { transform: rotateY(-4deg) rotateX(5deg) translateY(-5px); }
}

/* 显示屏租售：LED 屏体 / 模组堆叠（纯图形动画） */
.home-subhero--devices .home-subhero__panels { display: none; }
.home-subhero--devices .home-subhero__dev-stage {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(460px, 46vw);
    height: 260px;
    transform: translateY(-46%);
    perspective: 1100px;
}
.home-subhero--devices .home-subhero__dev {
    position: absolute;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .4),
        inset 0 1px 0 rgba(255, 255, 255, .1);
    overflow: hidden;
    background: #0c1418;
}
.home-subhero--devices .home-subhero__dev--main {
    width: 58%;
    height: 72%;
    left: 0;
    top: 6%;
    transform: rotateY(-18deg) rotateX(6deg);
    animation: home-subhero-dev-main 8s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev-bezel {
    position: absolute;
    inset: 0;
    border: 5px solid #1a242c;
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
    pointer-events: none;
    z-index: 3;
}
.home-subhero--devices .home-subhero__dev-grid {
    position: absolute;
    inset: 6px;
    background:
        radial-gradient(circle at 30% 28%, rgba(18, 160, 138, .45), transparent 42%),
        radial-gradient(circle at 72% 68%, rgba(201, 133, 42, .28), transparent 45%),
        repeating-linear-gradient(
            0deg,
            rgba(0, 0, 0, .22) 0 2px,
            transparent 2px 5px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(0, 0, 0, .18) 0 2px,
            transparent 2px 5px
        ),
        linear-gradient(145deg, rgba(18, 160, 138, .55), rgba(10, 90, 78, .25) 55%, rgba(201, 133, 42, .3));
    border-radius: 4px;
    animation: home-subhero-dev-glow 3.5s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev-raster {
    position: absolute;
    left: 6px;
    right: 6px;
    top: -30%;
    height: 28%;
    background: linear-gradient(
        180deg,
        transparent,
        rgba(255, 255, 255, .14),
        transparent
    );
    z-index: 2;
    animation: home-subhero-dev-raster 3.2s linear infinite;
    pointer-events: none;
}
.home-subhero--devices .home-subhero__dev-raster--alt {
    animation-duration: 2.6s;
    animation-delay: .4s;
    background: linear-gradient(
        180deg,
        transparent,
        rgba(201, 162, 74, .18),
        transparent
    );
}
.home-subhero--devices .home-subhero__dev-glowbar {
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 14%;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, rgba(18, 160, 138, .85), rgba(201, 133, 42, .7), transparent);
    box-shadow: 0 0 14px rgba(18, 160, 138, .45);
    z-index: 2;
    animation: home-subhero-dev-bar 2.4s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev-corner {
    position: absolute;
    right: 12px;
    top: 12px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #12a08a;
    box-shadow: 0 0 10px rgba(18, 160, 138, .8);
    z-index: 4;
    animation: home-subhero-dev-blink 1.4s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev--side {
    width: 48%;
    height: 58%;
    right: 2%;
    top: 0;
    transform: rotateY(-12deg) rotateX(4deg);
    animation: home-subhero-dev-side 9s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev--side .home-subhero__dev-grid {
    background:
        radial-gradient(circle at 60% 35%, rgba(201, 133, 42, .4), transparent 48%),
        radial-gradient(circle at 28% 70%, rgba(18, 160, 138, .35), transparent 50%),
        repeating-linear-gradient(0deg, rgba(0, 0, 0, .22) 0 2px, transparent 2px 5px),
        repeating-linear-gradient(90deg, rgba(0, 0, 0, .18) 0 2px, transparent 2px 5px),
        linear-gradient(145deg, rgba(201, 133, 42, .5), rgba(18, 160, 138, .35));
}
.home-subhero--devices .home-subhero__dev-pixel {
    position: absolute;
    left: 18%;
    top: 22%;
    width: 8px;
    height: 8px;
    border-radius: 1px;
    background: #fff;
    box-shadow:
        14px 0 0 rgba(18, 160, 138, .85),
        28px 0 0 rgba(201, 133, 42, .75),
        0 14px 0 rgba(201, 133, 42, .65),
        14px 14px 0 rgba(255, 255, 255, .55),
        28px 14px 0 rgba(18, 160, 138, .7);
    z-index: 2;
    animation: home-subhero-dev-pixel 1.8s steps(3) infinite;
    opacity: .85;
}
.home-subhero--devices .home-subhero__dev--stack {
    width: 42%;
    height: 48%;
    right: 16%;
    bottom: 0;
    transform: rotateY(-8deg) rotateX(8deg);
    animation: home-subhero-dev-stack 7.5s ease-in-out infinite;
    background: linear-gradient(145deg, rgba(18, 160, 138, .22), rgba(14, 28, 32, .96) 55%, rgba(201, 133, 42, .18));
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 14%;
    box-sizing: border-box;
}
.home-subhero--devices .home-subhero__dev-module {
    flex: 1;
    height: 48%;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, .14);
    background:
        repeating-linear-gradient(0deg, rgba(0, 0, 0, .25) 0 2px, transparent 2px 4px),
        linear-gradient(160deg, rgba(18, 160, 138, .55), rgba(10, 70, 60, .85));
    box-shadow: 0 6px 14px rgba(0, 0, 0, .3);
    animation: home-subhero-dev-module 2.2s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev-module:nth-child(2) {
    height: 58%;
    background:
        repeating-linear-gradient(0deg, rgba(0, 0, 0, .25) 0 2px, transparent 2px 4px),
        linear-gradient(160deg, rgba(201, 133, 42, .55), rgba(90, 60, 20, .85));
    animation-delay: .2s;
}
.home-subhero--devices .home-subhero__dev-module:nth-child(3) {
    animation-delay: .4s;
}
.home-subhero--devices .home-subhero__dev-signal {
    position: absolute;
    left: 50%;
    bottom: 14%;
    width: 8px;
    height: 8px;
    margin-left: -4px;
    border-radius: 50%;
    background: #12a08a;
    box-shadow: 0 0 10px rgba(18, 160, 138, .75);
    animation: home-subhero-dev-blink 1.2s ease-in-out infinite;
}
.home-subhero--devices .home-subhero__dev-signal::before,
.home-subhero--devices .home-subhero__dev-signal::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 1px solid rgba(18, 160, 138, .55);
    transform: translate(-50%, -50%);
    animation: home-subhero-dev-ring 2s ease-out infinite;
}
.home-subhero--devices .home-subhero__dev-signal::after {
    animation-delay: 1s;
}
@keyframes home-subhero-dev-main {
    0%, 100% { transform: rotateY(-18deg) rotateX(6deg) translateY(0); }
    50% { transform: rotateY(-13deg) rotateX(4deg) translateY(-8px); }
}
@keyframes home-subhero-dev-side {
    0%, 100% { transform: rotateY(-12deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-16deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-dev-stack {
    0%, 100% { transform: rotateY(-8deg) rotateX(8deg) translateY(0); }
    50% { transform: rotateY(-3deg) rotateX(5deg) translateY(-6px); }
}
@keyframes home-subhero-dev-raster {
    0% { top: -30%; opacity: 0; }
    15% { opacity: .9; }
    85% { opacity: .7; }
    100% { top: 95%; opacity: 0; }
}
@keyframes home-subhero-dev-glow {
    0%, 100% { filter: brightness(.92) saturate(.95); }
    50% { filter: brightness(1.12) saturate(1.15); }
}
@keyframes home-subhero-dev-bar {
    0%, 100% { opacity: .45; transform: scaleX(.85); }
    50% { opacity: 1; transform: scaleX(1); }
}
@keyframes home-subhero-dev-blink {
    0%, 100% { opacity: .4; transform: scale(.9); }
    50% { opacity: 1; transform: scale(1.15); }
}
@keyframes home-subhero-dev-pixel {
    0% { opacity: .35; }
    33% { opacity: .95; }
    66% { opacity: .55; }
    100% { opacity: .85; }
}
@keyframes home-subhero-dev-module {
    0%, 100% { transform: translateY(0); filter: brightness(.9); }
    50% { transform: translateY(-4px); filter: brightness(1.15); }
}
@keyframes home-subhero-dev-ring {
    0% { transform: translate(-50%, -50%) scale(1); opacity: .7; }
    100% { transform: translate(-50%, -50%) scale(3.2); opacity: 0; }
}

/* 配件商城：接收卡 / 开关电源 / 线缆（纯图形，无文字） */
.home-subhero--parts .home-subhero__panels { display: none; }
.home-subhero--parts .home-subhero__parts-stage {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(460px, 46vw);
    height: 260px;
    transform: translateY(-46%);
    perspective: 1100px;
}
.home-subhero--parts .home-subhero__part {
    position: absolute;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .4),
        inset 0 1px 0 rgba(255, 255, 255, .1);
    overflow: hidden;
}
.home-subhero--parts .home-subhero__part--card {
    width: 58%;
    height: 56%;
    left: 0;
    top: 4%;
    background:
        radial-gradient(circle at 78% 30%, rgba(18, 160, 138, .2), transparent 40%),
        linear-gradient(160deg, #1c423a 0%, #0e2620 55%, #153028 100%);
    transform: rotateY(-16deg) rotateX(5deg);
    animation: home-subhero-part-card 8s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-pins {
    position: absolute;
    left: 0;
    top: 16%;
    bottom: 16%;
    width: 11px;
    background:
        repeating-linear-gradient(
            180deg,
            #d4b05a 0 2.5px,
            transparent 2.5px 6px
        );
    opacity: .9;
    filter: drop-shadow(0 0 4px rgba(201, 162, 74, .35));
}
.home-subhero--parts .home-subhero__part-trace {
    position: absolute;
    inset: 18% 18% 22% 16%;
    background:
        linear-gradient(90deg, transparent 20%, rgba(18, 160, 138, .35) 20% 22%, transparent 22%),
        linear-gradient(180deg, transparent 40%, rgba(201, 162, 74, .3) 40% 42%, transparent 42%),
        linear-gradient(90deg, transparent 55%, rgba(18, 160, 138, .25) 55% 57%, transparent 57%);
    opacity: .7;
    animation: home-subhero-part-trace 3.2s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-chip {
    position: absolute;
    left: 22%;
    top: 24%;
    width: 32%;
    height: 36%;
    border-radius: 5px;
    background: linear-gradient(145deg, rgba(22, 170, 145, .7), rgba(6, 55, 48, .95));
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow:
        inset 0 0 0 2px rgba(0, 0, 0, .2),
        0 0 18px rgba(18, 160, 138, .25);
}
.home-subhero--parts .home-subhero__part-chip::before,
.home-subhero--parts .home-subhero__part-chip::after {
    content: '';
    position: absolute;
    background: rgba(201, 162, 74, .6);
}
.home-subhero--parts .home-subhero__part-chip::before {
    left: -9px;
    right: -9px;
    top: 30%;
    height: 2px;
    box-shadow: 0 9px 0 rgba(201, 162, 74, .42), 0 18px 0 rgba(201, 162, 74, .28);
}
.home-subhero--parts .home-subhero__part-chip::after {
    top: -7px;
    bottom: -7px;
    left: 28%;
    width: 2px;
    box-shadow: 11px 0 0 rgba(201, 162, 74, .38), 22px 0 0 rgba(201, 162, 74, .28);
}
.home-subhero--parts .home-subhero__part-chip i {
    position: absolute;
    border-radius: 1px;
    background: rgba(255, 255, 255, .18);
}
.home-subhero--parts .home-subhero__part-chip i:first-child {
    left: 18%;
    top: 22%;
    width: 28%;
    height: 18%;
}
.home-subhero--parts .home-subhero__part-chip i:last-child {
    right: 16%;
    bottom: 20%;
    width: 36%;
    height: 22%;
    background: rgba(0, 0, 0, .25);
}
.home-subhero--parts .home-subhero__part-ports {
    position: absolute;
    right: 10%;
    top: 22%;
    width: 24%;
    height: 44%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 6px;
}
.home-subhero--parts .home-subhero__part-ports i {
    flex: 1;
    border-radius: 3px;
    background:
        linear-gradient(90deg, #1a2228 0 30%, #3a4450 30% 100%);
    border: 1px solid rgba(255, 255, 255, .12);
    box-shadow: inset 0 0 0 2px rgba(0, 0, 0, .25);
    position: relative;
}
.home-subhero--parts .home-subhero__part-ports i::after {
    content: '';
    position: absolute;
    right: 6px;
    top: 50%;
    width: 5px;
    height: 5px;
    margin-top: -2.5px;
    border-radius: 50%;
    background: #12a08a;
    box-shadow: 0 0 6px #12a08a;
    animation: home-subhero-part-blink 1.6s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-ports i:last-child::after {
    background: #c9852a;
    box-shadow: 0 0 6px #c9852a;
    animation-delay: .4s;
}
.home-subhero--parts .home-subhero__part-led {
    position: absolute;
    left: 58%;
    top: 14%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #12a08a;
    box-shadow: 0 0 10px rgba(18, 160, 138, .8);
    animation: home-subhero-part-blink 1.2s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part--psu {
    width: 42%;
    height: 48%;
    right: 1%;
    top: 0;
    background:
        linear-gradient(150deg, #313940 0%, #1a2026 58%, #283038 100%);
    transform: rotateY(-10deg) rotateX(4deg);
    animation: home-subhero-part-psu 9s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-fan {
    position: absolute;
    left: 14%;
    top: 16%;
    width: 34%;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .16);
    background:
        radial-gradient(circle at center, #1a2228 22%, transparent 24%),
        conic-gradient(from 0deg, #4a5560 0 20%, transparent 20% 50%, #4a5560 50% 70%, transparent 70% 100%);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .35);
    animation: home-subhero-part-fan 2.4s linear infinite;
}
.home-subhero--parts .home-subhero__part-vents {
    position: absolute;
    left: 52%;
    right: 10%;
    top: 16%;
    height: 38%;
    background:
        repeating-linear-gradient(
            90deg,
            transparent 0 4px,
            rgba(255, 255, 255, .12) 4px 6px
        );
    border-radius: 2px;
    opacity: .85;
}
.home-subhero--parts .home-subhero__part-terminal {
    position: absolute;
    right: 12%;
    bottom: 16%;
    width: 36%;
    height: 22%;
    border-radius: 3px;
    background: linear-gradient(90deg, #7a6548, #d0a84e 45%, #7a6548);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .28);
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    padding: 0 4px;
}
.home-subhero--parts .home-subhero__part-terminal i {
    width: 28%;
    height: 55%;
    border-radius: 2px;
    background: #2c3340;
    border: 1px solid rgba(255, 255, 255, .1);
}
.home-subhero--parts .home-subhero__part-terminal::before {
    content: '';
    position: absolute;
    left: -38%;
    top: 28%;
    width: 32%;
    height: 44%;
    border-radius: 2px;
    background: linear-gradient(180deg, #5a6270, #3a4250);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .08);
}
.home-subhero--parts .home-subhero__part--cable {
    width: 48%;
    height: 42%;
    right: 14%;
    bottom: 0;
    background:
        linear-gradient(145deg, rgba(18, 160, 138, .32), rgba(18, 34, 38, .96) 52%, rgba(201, 133, 42, .24));
    transform: rotateY(-6deg) rotateX(7deg);
    animation: home-subhero-part-cable 7.5s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-coil {
    position: absolute;
    left: 12%;
    top: 16%;
    width: 48%;
    height: 58%;
    border-radius: 50%;
    border: 8px solid rgba(18, 160, 138, .58);
    box-shadow:
        inset 0 0 0 6px rgba(201, 133, 42, .38),
        0 0 0 3px rgba(255, 255, 255, .06),
        0 0 16px rgba(18, 160, 138, .2);
    animation: home-subhero-part-coil 4s ease-in-out infinite;
}
.home-subhero--parts .home-subhero__part-wire {
    position: absolute;
    left: 48%;
    top: 42%;
    width: 22%;
    height: 5px;
    border-radius: 3px;
    background: linear-gradient(90deg, #12a08a, #c9852a);
    box-shadow: 0 0 8px rgba(18, 160, 138, .4);
}
.home-subhero--parts .home-subhero__part-plug {
    position: absolute;
    right: 10%;
    top: 26%;
    width: 24%;
    height: 36%;
    border-radius: 4px 8px 8px 4px;
    background: linear-gradient(135deg, #e4e8ed, #8e98a4);
    box-shadow:
        inset -3px 0 0 rgba(0, 0, 0, .14),
        0 4px 12px rgba(0, 0, 0, .25);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding-left: 18%;
}
.home-subhero--parts .home-subhero__part-plug::before {
    content: '';
    position: absolute;
    left: -26%;
    top: 26%;
    width: 32%;
    height: 48%;
    border-radius: 2px;
    background: #5c6572;
}
.home-subhero--parts .home-subhero__part-plug i {
    width: 42%;
    height: 12%;
    border-radius: 1px;
    background: #3a4250;
}
@keyframes home-subhero-part-card {
    0%, 100% { transform: rotateY(-16deg) rotateX(5deg) translateY(0); }
    50% { transform: rotateY(-11deg) rotateX(3deg) translateY(-8px); }
}
@keyframes home-subhero-part-psu {
    0%, 100% { transform: rotateY(-10deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-14deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-part-cable {
    0%, 100% { transform: rotateY(-6deg) rotateX(7deg) translateY(0); }
    50% { transform: rotateY(-2deg) rotateX(4deg) translateY(-6px); }
}
@keyframes home-subhero-part-fan {
    to { transform: rotate(360deg); }
}
@keyframes home-subhero-part-blink {
    0%, 100% { opacity: .4; transform: scale(.9); }
    50% { opacity: 1; transform: scale(1.15); }
}
@keyframes home-subhero-part-trace {
    0%, 100% { opacity: .35; }
    50% { opacity: .85; }
}
@keyframes home-subhero-part-coil {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.04); }
}

/* 素材资源：软件窗口 / 授权钥匙 / 安装包（纯图形，无文字） */
.home-subhero--software .home-subhero__panels { display: none; }
.home-subhero--software .home-subhero__soft-stage {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(460px, 46vw);
    height: 260px;
    transform: translateY(-46%);
    perspective: 1100px;
}
.home-subhero--software .home-subhero__soft {
    position: absolute;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .4),
        inset 0 1px 0 rgba(255, 255, 255, .1);
    overflow: hidden;
}
.home-subhero--software .home-subhero__soft--app {
    width: 60%;
    height: 58%;
    left: 0;
    top: 2%;
    background: linear-gradient(165deg, #1e2c36 0%, #101820 100%);
    transform: rotateY(-14deg) rotateX(5deg);
    animation: home-subhero-soft-app 8s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-titlebar {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 16%;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 0 10px;
    background: rgba(255, 255, 255, .07);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.home-subhero--software .home-subhero__soft-titlebar i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .28);
}
.home-subhero--software .home-subhero__soft-titlebar i:first-child { background: #e07a5f; }
.home-subhero--software .home-subhero__soft-titlebar i:nth-child(2) { background: #c9a24a; }
.home-subhero--software .home-subhero__soft-titlebar i:nth-child(3) { background: #12a08a; }
.home-subhero--software .home-subhero__soft-sidebar {
    position: absolute;
    left: 0;
    top: 16%;
    bottom: 0;
    width: 20%;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 8px;
    background: rgba(0, 0, 0, .28);
    border-right: 1px solid rgba(255, 255, 255, .06);
    box-sizing: border-box;
}
.home-subhero--software .home-subhero__soft-sidebar i {
    display: block;
    height: 8px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .12);
}
.home-subhero--software .home-subhero__soft-sidebar i:first-child {
    background: rgba(18, 160, 138, .55);
    box-shadow: 0 0 8px rgba(18, 160, 138, .35);
}
.home-subhero--software .home-subhero__soft-canvas {
    position: absolute;
    left: 26%;
    right: 7%;
    top: 26%;
    bottom: 14%;
    border-radius: 6px;
    background:
        linear-gradient(135deg, rgba(18, 160, 138, .38), rgba(201, 133, 42, .16)),
        repeating-linear-gradient(90deg, transparent 0 16px, rgba(255, 255, 255, .05) 16px 17px);
    border: 1px solid rgba(255, 255, 255, .1);
    overflow: hidden;
}
.home-subhero--software .home-subhero__soft-play {
    position: absolute;
    left: 50%;
    top: 42%;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 9px 0 9px 15px;
    border-color: transparent transparent transparent rgba(255, 255, 255, .88);
    transform: translate(-30%, -50%);
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, .35));
    animation: home-subhero-soft-play 2s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-wave {
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 14%;
    display: block;
    height: 18%;
    border-radius: 2px;
    background:
        linear-gradient(90deg,
            rgba(255, 255, 255, .15) 0%,
            rgba(18, 160, 138, .7) 35%,
            rgba(201, 133, 42, .65) 62%,
            rgba(255, 255, 255, .15) 100%);
    clip-path: polygon(0 60%, 12% 40%, 24% 70%, 38% 30%, 52% 65%, 68% 25%, 82% 55%, 100% 35%, 100% 100%, 0 100%);
    animation: home-subhero-soft-wave 2.4s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft--license {
    width: 40%;
    height: 48%;
    right: 1%;
    top: 0;
    background: linear-gradient(150deg, #263038 0%, #141c22 68%, #1c2c28 100%);
    transform: rotateY(-10deg) rotateX(4deg);
    animation: home-subhero-soft-license 9s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-key {
    position: absolute;
    left: 16%;
    top: 16%;
    width: 26%;
    height: 26%;
    border-radius: 50%;
    background: linear-gradient(145deg, #e0b85a, #8b7355);
    box-shadow:
        inset 0 -2px 0 rgba(0, 0, 0, .22),
        0 0 14px rgba(201, 162, 74, .35);
    animation: home-subhero-soft-key 3s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-key::before {
    content: '';
    position: absolute;
    left: 28%;
    top: 28%;
    width: 44%;
    height: 44%;
    border-radius: 50%;
    border: 2px solid rgba(20, 28, 32, .55);
}
.home-subhero--software .home-subhero__soft-key::after {
    content: '';
    position: absolute;
    left: 72%;
    top: 34%;
    width: 130%;
    height: 32%;
    border-radius: 2px;
    background: linear-gradient(90deg, #d4a84a, #a88a4a);
    box-shadow:
        0 5px 0 -1px #7a6548,
        0 10px 0 -2px #8b7355;
}
.home-subhero--software .home-subhero__soft-code {
    position: absolute;
    left: 12%;
    right: 12%;
    top: 56%;
    height: 22%;
    border-radius: 5px;
    background: rgba(0, 0, 0, .32);
    border: 1px dashed rgba(18, 160, 138, .5);
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    padding: 0 6px;
    box-sizing: border-box;
}
.home-subhero--software .home-subhero__soft-code i {
    width: 14%;
    height: 28%;
    border-radius: 1px;
    background: rgba(255, 255, 255, .55);
    animation: home-subhero-soft-code 1.8s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-code i:nth-child(2) { animation-delay: .15s; opacity: .7; }
.home-subhero--software .home-subhero__soft-code i:nth-child(3) { animation-delay: .3s; opacity: .5; height: 18%; }
.home-subhero--software .home-subhero__soft-code i:nth-child(4) { animation-delay: .45s; opacity: .4; height: 18%; }
.home-subhero--software .home-subhero__soft-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 30%, rgba(201, 162, 74, .18), transparent 55%);
    pointer-events: none;
    animation: home-subhero-soft-glow 3.5s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft--pack {
    width: 44%;
    height: 42%;
    right: 14%;
    bottom: 0;
    background: linear-gradient(145deg, rgba(18, 160, 138, .32), rgba(16, 30, 34, .96) 55%, rgba(201, 133, 42, .22));
    transform: rotateY(-6deg) rotateX(7deg);
    animation: home-subhero-soft-pack 7.5s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-box {
    position: absolute;
    left: 14%;
    top: 18%;
    width: 36%;
    height: 48%;
    border-radius: 5px;
    background: linear-gradient(160deg, #31424c, #182228);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        inset 0 0 0 3px rgba(18, 160, 138, .28),
        0 6px 14px rgba(0, 0, 0, .3);
    transform-style: preserve-3d;
}
.home-subhero--software .home-subhero__soft-box::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 28%;
    background: linear-gradient(180deg, rgba(18, 160, 138, .45), transparent);
    border-radius: 4px 4px 0 0;
}
.home-subhero--software .home-subhero__soft-box i {
    position: absolute;
    left: 28%;
    right: 28%;
    top: 38%;
    bottom: 28%;
    border-radius: 2px;
    background: rgba(18, 160, 138, .55);
    box-shadow: 0 0 10px rgba(18, 160, 138, .35);
}
.home-subhero--software .home-subhero__soft-arrow {
    position: absolute;
    right: 16%;
    top: 18%;
    width: 24%;
    height: 42%;
    animation: home-subhero-soft-arrow 1.6s ease-in-out infinite;
}
.home-subhero--software .home-subhero__soft-arrow::before {
    content: '';
    position: absolute;
    left: 36%;
    top: 0;
    width: 28%;
    height: 52%;
    background: rgba(255, 255, 255, .82);
    border-radius: 2px 2px 0 0;
    box-shadow: 0 0 10px rgba(255, 255, 255, .25);
}
.home-subhero--software .home-subhero__soft-arrow::after {
    content: '';
    position: absolute;
    left: 6%;
    top: 40%;
    width: 88%;
    height: 0;
    border-left: 11px solid transparent;
    border-right: 11px solid transparent;
    border-top: 15px solid rgba(255, 255, 255, .82);
    box-sizing: border-box;
}
.home-subhero--software .home-subhero__soft-orbit {
    position: absolute;
    right: 10%;
    bottom: 12%;
    width: 18%;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px dashed rgba(201, 133, 42, .45);
    animation: home-subhero-soft-orbit 4s linear infinite;
}
.home-subhero--software .home-subhero__soft-orbit::after {
    content: '';
    position: absolute;
    left: 50%;
    top: -3px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #c9852a;
    box-shadow: 0 0 8px rgba(201, 133, 42, .7);
    transform: translateX(-50%);
}
@keyframes home-subhero-soft-app {
    0%, 100% { transform: rotateY(-14deg) rotateX(5deg) translateY(0); }
    50% { transform: rotateY(-10deg) rotateX(3deg) translateY(-8px); }
}
@keyframes home-subhero-soft-license {
    0%, 100% { transform: rotateY(-10deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-14deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-soft-pack {
    0%, 100% { transform: rotateY(-6deg) rotateX(7deg) translateY(0); }
    50% { transform: rotateY(-2deg) rotateX(4deg) translateY(-6px); }
}
@keyframes home-subhero-soft-play {
    0%, 100% { opacity: .7; transform: translate(-30%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-30%, -50%) scale(1.12); }
}
@keyframes home-subhero-soft-wave {
    0%, 100% { transform: translateX(0); opacity: .7; }
    50% { transform: translateX(4%); opacity: 1; }
}
@keyframes home-subhero-soft-key {
    0%, 100% { transform: rotate(-4deg); }
    50% { transform: rotate(4deg); }
}
@keyframes home-subhero-soft-code {
    0%, 100% { opacity: .35; }
    50% { opacity: .9; }
}
@keyframes home-subhero-soft-glow {
    0%, 100% { opacity: .4; }
    50% { opacity: 1; }
}
@keyframes home-subhero-soft-arrow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(7px); }
}
@keyframes home-subhero-soft-orbit {
    to { transform: rotate(360deg); }
}

/* 需求大厅：需求列表 / 报价柱 / 对接链路（纯图形，无文字） */
.home-subhero--demand .home-subhero__panels { display: none; }
.home-subhero--demand .home-subhero__demand-stage {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(460px, 46vw);
    height: 260px;
    transform: translateY(-46%);
    perspective: 1100px;
}
.home-subhero--demand .home-subhero__dmd {
    position: absolute;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .4),
        inset 0 1px 0 rgba(255, 255, 255, .1);
    overflow: hidden;
}
.home-subhero--demand .home-subhero__dmd--board {
    width: 58%;
    height: 56%;
    left: 0;
    top: 2%;
    background: linear-gradient(165deg, #1e2c36 0%, #101820 100%);
    transform: rotateY(-14deg) rotateX(5deg);
    animation: home-subhero-dmd-board 8s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-row {
    position: absolute;
    left: 10%;
    right: 10%;
    height: 18%;
    border-radius: 5px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 8px;
    box-sizing: border-box;
}
.home-subhero--demand .home-subhero__dmd-row:first-child { top: 16%; }
.home-subhero--demand .home-subhero__dmd-row--mid {
    top: 40%;
    background: linear-gradient(90deg, rgba(18, 160, 138, .32), rgba(255, 255, 255, .06));
    border-color: rgba(18, 160, 138, .4);
    box-shadow: 0 0 12px rgba(18, 160, 138, .15);
}
.home-subhero--demand .home-subhero__dmd-row:nth-child(3) { top: 64%; }
.home-subhero--demand .home-subhero__dmd-row i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    background: linear-gradient(145deg, #12a08a, #0e7c6b);
    box-shadow: 0 0 6px rgba(18, 160, 138, .4);
}
.home-subhero--demand .home-subhero__dmd-row b {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .22);
    position: relative;
}
.home-subhero--demand .home-subhero__dmd-row b::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    width: 22%;
    height: 100%;
    border-radius: 2px;
    background: rgba(201, 133, 42, .55);
    transform: translateY(-50%);
}
.home-subhero--demand .home-subhero__dmd-row--mid i {
    animation: home-subhero-dmd-dot 1.5s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-badge {
    position: absolute;
    right: 10%;
    top: 8%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-bright), var(--brand-dark));
    box-shadow: 0 0 10px rgba(18, 160, 138, .65);
    z-index: 2;
    animation: home-subhero-dmd-dot 1.4s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-pulse {
    position: absolute;
    right: 8%;
    top: 6%;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1px solid rgba(18, 160, 138, .5);
    animation: home-subhero-dmd-pulse 2s ease-out infinite;
}
.home-subhero--demand .home-subhero__dmd--quote {
    width: 40%;
    height: 48%;
    right: 1%;
    top: 0;
    background: linear-gradient(150deg, #263038 0%, #141c22 68%, #1c2c28 100%);
    transform: rotateY(-10deg) rotateX(4deg);
    animation: home-subhero-dmd-quote 9s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-bars {
    position: absolute;
    left: 14%;
    right: 14%;
    top: 16%;
    height: 52%;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px;
}
.home-subhero--demand .home-subhero__dmd-bars i {
    flex: 1;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, rgba(18, 160, 138, .8), rgba(18, 160, 138, .18));
    display: block;
    transform-origin: bottom;
    animation: home-subhero-dmd-bar 2.2s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-bars i:nth-child(1) { height: 48%; animation-delay: 0s; }
.home-subhero--demand .home-subhero__dmd-bars i:nth-child(2) {
    height: 86%;
    background: linear-gradient(180deg, rgba(201, 133, 42, .85), rgba(201, 133, 42, .2));
    animation-delay: .15s;
}
.home-subhero--demand .home-subhero__dmd-bars i:nth-child(3) { height: 64%; animation-delay: .3s; }
.home-subhero--demand .home-subhero__dmd-bars i:nth-child(4) { height: 72%; animation-delay: .45s; }
.home-subhero--demand .home-subhero__dmd-axis {
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 18%;
    height: 2px;
    border-radius: 1px;
    background: rgba(255, 255, 255, .16);
}
.home-subhero--demand .home-subhero__dmd--match {
    width: 44%;
    height: 42%;
    right: 14%;
    bottom: 0;
    background: linear-gradient(145deg, rgba(18, 160, 138, .32), rgba(16, 30, 34, .96) 55%, rgba(201, 133, 42, .22));
    transform: rotateY(-6deg) rotateX(7deg);
    animation: home-subhero-dmd-match 7.5s ease-in-out infinite;
}
.home-subhero--demand .home-subhero__dmd-nodes {
    position: absolute;
    left: 12%;
    right: 12%;
    top: 24%;
    height: 40%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.home-subhero--demand .home-subhero__dmd-nodes i {
    width: 30%;
    aspect-ratio: 1;
    border-radius: 50%;
    display: block;
    background:
        radial-gradient(circle at 35% 28%, rgba(255, 255, 255, .4), transparent 42%),
        linear-gradient(145deg, #12a08a, #0e7c6b);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
    position: relative;
}
.home-subhero--demand .home-subhero__dmd-nodes i::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 22%;
    width: 36%;
    height: 36%;
    border-radius: 50%;
    background: rgba(255, 255, 255, .55);
    transform: translateX(-50%);
    box-shadow: 0 10px 0 -1px rgba(255, 255, 255, .35);
}
.home-subhero--demand .home-subhero__dmd-nodes i:last-child {
    background:
        radial-gradient(circle at 35% 28%, rgba(255, 255, 255, .35), transparent 42%),
        linear-gradient(145deg, #c9852a, #a56a1c);
}
.home-subhero--demand .home-subhero__dmd-link {
    position: absolute;
    left: 28%;
    right: 28%;
    top: 40%;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(18, 160, 138, .85), rgba(201, 133, 42, .85));
    box-shadow: 0 0 12px rgba(18, 160, 138, .4);
    overflow: visible;
}
.home-subhero--demand .home-subhero__dmd-link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%);
    animation: home-subhero-dmd-travel 2.2s ease-in-out infinite;
    box-shadow: 0 0 8px rgba(255, 255, 255, .6);
}
.home-subhero--demand .home-subhero__dmd-spark {
    position: absolute;
    left: 50%;
    top: 34%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fff;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 14px rgba(255, 255, 255, .7);
    animation: home-subhero-dmd-dot 1.6s ease-in-out infinite;
}
@keyframes home-subhero-dmd-board {
    0%, 100% { transform: rotateY(-14deg) rotateX(5deg) translateY(0); }
    50% { transform: rotateY(-10deg) rotateX(3deg) translateY(-8px); }
}
@keyframes home-subhero-dmd-quote {
    0%, 100% { transform: rotateY(-10deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-14deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-dmd-match {
    0%, 100% { transform: rotateY(-6deg) rotateX(7deg) translateY(0); }
    50% { transform: rotateY(-2deg) rotateX(4deg) translateY(-6px); }
}
@keyframes home-subhero-dmd-bar {
    0%, 100% { transform: scaleY(.82); opacity: .75; }
    50% { transform: scaleY(1); opacity: 1; }
}
@keyframes home-subhero-dmd-dot {
    0%, 100% { opacity: .55; transform: scale(.92); }
    50% { opacity: 1; transform: scale(1.12); }
}
@keyframes home-subhero-dmd-pulse {
    0% { transform: scale(.6); opacity: .8; }
    100% { transform: scale(2.2); opacity: 0; }
}
@keyframes home-subhero-dmd-travel {
    0% { left: 0; opacity: .4; }
    50% { left: calc(100% - 8px); opacity: 1; }
    100% { left: 0; opacity: .4; }
}

/* 安装师傅：LED 屏搭建 / 紧固调试 / 区域派单（纯图形，无文字） */
.home-subhero--installer .home-subhero__panels { display: none; }
.home-subhero--installer .home-subhero__inst-stage {
    position: absolute;
    right: max(2%, calc(50% - 580px));
    top: 50%;
    width: min(460px, 46vw);
    height: 260px;
    transform: translateY(-46%);
    perspective: 1100px;
}
.home-subhero--installer .home-subhero__inst {
    position: absolute;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow:
        0 20px 44px rgba(0, 0, 0, .4),
        inset 0 1px 0 rgba(255, 255, 255, .1);
    overflow: hidden;
}
/* 主卡：LED 屏模块逐格点亮 */
.home-subhero--installer .home-subhero__inst--wall {
    width: 58%;
    height: 56%;
    left: 0;
    top: 2%;
    background: linear-gradient(165deg, #1a242c 0%, #0c1218 100%);
    transform: rotateY(-14deg) rotateX(5deg);
    animation: home-subhero-inst-wall 8s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-frame {
    position: absolute;
    inset: 12% 10% 14%;
    border-radius: 4px;
    border: 2px solid rgba(255, 255, 255, .18);
    box-shadow:
        inset 0 0 0 1px rgba(18, 160, 138, .2),
        0 0 24px rgba(18, 160, 138, .12);
    background: rgba(0, 0, 0, .35);
}
.home-subhero--installer .home-subhero__inst-tiles {
    position: absolute;
    inset: 16% 13% 18%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(3, 1fr);
    gap: 3px;
    z-index: 1;
}
.home-subhero--installer .home-subhero__inst-tiles i {
    display: block;
    border-radius: 2px;
    background: linear-gradient(145deg, rgba(18, 160, 138, .15), rgba(255, 255, 255, .04));
    border: 1px solid rgba(255, 255, 255, .06);
    animation: home-subhero-inst-tile 3.6s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(1) { animation-delay: 0s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(2) { animation-delay: .12s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(3) { animation-delay: .24s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(4) { animation-delay: .36s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(5) { animation-delay: .18s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(6) { animation-delay: .3s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(7) { animation-delay: .42s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(8) { animation-delay: .54s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(9) { animation-delay: .36s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(10) { animation-delay: .48s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(11) { animation-delay: .6s; }
.home-subhero--installer .home-subhero__inst-tiles i:nth-child(12) { animation-delay: .72s; }
.home-subhero--installer .home-subhero__inst-beam {
    position: absolute;
    left: 12%;
    top: 18%;
    width: 3px;
    height: 58%;
    border-radius: 2px;
    background: linear-gradient(180deg, transparent, rgba(201, 133, 42, .9), transparent);
    box-shadow: 0 0 10px rgba(201, 133, 42, .55);
    z-index: 2;
    animation: home-subhero-inst-beam 3.2s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-level {
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: 8%;
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .12);
    overflow: hidden;
}
.home-subhero--installer .home-subhero__inst-level::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 62%;
    border-radius: 2px;
    background: linear-gradient(90deg, #12a08a, #c9852a);
    animation: home-subhero-inst-level 2.8s ease-in-out infinite;
}
/* 副卡：紧固件 / 调试进度 */
.home-subhero--installer .home-subhero__inst--kit {
    width: 40%;
    height: 48%;
    right: 1%;
    top: 0;
    background: linear-gradient(150deg, #263038 0%, #141c22 70%, #1e2818 100%);
    transform: rotateY(-10deg) rotateX(4deg);
    animation: home-subhero-inst-kit 9s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-bolt {
    position: absolute;
    left: 18%;
    top: 18%;
    width: 34%;
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .35), transparent 42%),
        linear-gradient(145deg, #d4b06a, #8a6a32);
    box-shadow:
        0 4px 14px rgba(0, 0, 0, .35),
        inset 0 0 0 2px rgba(255, 255, 255, .15);
    animation: home-subhero-inst-spin 6s linear infinite;
}
.home-subhero--installer .home-subhero__inst-bolt::before {
    content: '';
    position: absolute;
    inset: 28%;
    border-radius: 50%;
    background: #1a2228;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);
}
.home-subhero--installer .home-subhero__inst-bolt::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 42%;
    height: 8%;
    background: #c9a24a;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .2);
    clip-path: polygon(0 20%, 18% 0, 82% 0, 100% 20%, 100% 80%, 82% 100%, 18% 100%, 0 80%);
}
.home-subhero--installer .home-subhero__inst-hex {
    position: absolute;
    right: 14%;
    top: 22%;
    width: 28%;
    aspect-ratio: 1;
    background: linear-gradient(145deg, rgba(18, 160, 138, .85), rgba(14, 100, 88, .55));
    clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
    box-shadow: 0 0 16px rgba(18, 160, 138, .35);
    animation: home-subhero-inst-hex 4.5s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-hex::after {
    content: '';
    position: absolute;
    inset: 28%;
    background: #121a1e;
    clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}
.home-subhero--installer .home-subhero__inst-bar {
    position: absolute;
    left: 14%;
    right: 14%;
    bottom: 28%;
    height: 6px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .1);
    overflow: hidden;
}
.home-subhero--installer .home-subhero__inst-bar i {
    display: block;
    height: 100%;
    width: 68%;
    border-radius: 3px;
    background: linear-gradient(90deg, #12a08a, #2ec4a8);
    box-shadow: 0 0 8px rgba(18, 160, 138, .45);
    animation: home-subhero-inst-barfill 2.6s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-dots {
    position: absolute;
    left: 16%;
    right: 16%;
    bottom: 12%;
    display: flex;
    justify-content: space-between;
    gap: 6px;
}
.home-subhero--installer .home-subhero__inst-dots i {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: rgba(255, 255, 255, .18);
    animation: home-subhero-inst-dot 1.8s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-dots i:nth-child(1) {
    background: linear-gradient(90deg, #12a08a, #0e7c6b);
    animation-delay: 0s;
}
.home-subhero--installer .home-subhero__inst-dots i:nth-child(2) {
    background: linear-gradient(90deg, #12a08a, #0e7c6b);
    animation-delay: .2s;
}
.home-subhero--installer .home-subhero__inst-dots i:nth-child(3) {
    animation-delay: .4s;
}
/* 底卡：区域派单路线 */
.home-subhero--installer .home-subhero__inst--route {
    width: 44%;
    height: 42%;
    right: 14%;
    bottom: 0;
    background: linear-gradient(145deg, rgba(18, 160, 138, .28), rgba(14, 26, 30, .96) 55%, rgba(201, 133, 42, .18));
    transform: rotateY(-6deg) rotateX(7deg);
    animation: home-subhero-inst-route 7.5s ease-in-out infinite;
}
.home-subhero--installer .home-subhero__inst-grid {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 18% 22%;
    opacity: .7;
    mask-image: radial-gradient(ellipse at 50% 55%, #000 30%, transparent 78%);
}
.home-subhero--installer .home-subhero__inst-path {
    position: absolute;
    left: 18%;
    right: 18%;
    top: 42%;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(18, 160, 138, .9), rgba(201, 133, 42, .85));
    box-shadow: 0 0 10px rgba(18, 160, 138, .35);
}
.home-subhero--installer .home-subhero__inst-path::before {
    content: '';
    position: absolute;
    left: 32%;
    top: -18px;
    width: 2px;
    height: 18px;
    background: linear-gradient(180deg, rgba(18, 160, 138, .15), rgba(18, 160, 138, .85));
}
.home-subhero--installer .home-subhero__inst-path::after {
    content: '';
    position: absolute;
    right: 22%;
    top: 0;
    width: 2px;
    height: 16px;
    background: linear-gradient(180deg, rgba(201, 133, 42, .85), rgba(201, 133, 42, .15));
}
.home-subhero--installer .home-subhero__inst-node {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(145deg, #12a08a, #0e7c6b);
    box-shadow: 0 0 0 3px rgba(18, 160, 138, .22), 0 2px 8px rgba(0, 0, 0, .3);
    z-index: 2;
}
.home-subhero--installer .home-subhero__inst-node--a {
    left: 16%;
    top: 22%;
}
.home-subhero--installer .home-subhero__inst-node--b {
    left: 46%;
    top: 38%;
    background: linear-gradient(145deg, #fff, #c8d0d6);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .18), 0 2px 8px rgba(0, 0, 0, .3);
}
.home-subhero--installer .home-subhero__inst-node--c {
    right: 16%;
    bottom: 18%;
    background: linear-gradient(145deg, #c9852a, #a56a1c);
    box-shadow: 0 0 0 3px rgba(201, 133, 42, .25), 0 2px 8px rgba(0, 0, 0, .3);
}
.home-subhero--installer .home-subhero__inst-courier {
    position: absolute;
    left: 18%;
    top: 42%;
    width: 8px;
    height: 8px;
    margin: -3px 0 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 10px rgba(255, 255, 255, .7);
    z-index: 3;
    animation: home-subhero-inst-courier 2.8s ease-in-out infinite;
}
@keyframes home-subhero-inst-wall {
    0%, 100% { transform: rotateY(-14deg) rotateX(5deg) translateY(0); }
    50% { transform: rotateY(-10deg) rotateX(3deg) translateY(-8px); }
}
@keyframes home-subhero-inst-kit {
    0%, 100% { transform: rotateY(-10deg) rotateX(4deg) translateY(0); }
    50% { transform: rotateY(-14deg) rotateX(6deg) translateY(6px); }
}
@keyframes home-subhero-inst-route {
    0%, 100% { transform: rotateY(-6deg) rotateX(7deg) translateY(0); }
    50% { transform: rotateY(-2deg) rotateX(4deg) translateY(-6px); }
}
@keyframes home-subhero-inst-tile {
    0%, 100% {
        background: linear-gradient(145deg, rgba(18, 160, 138, .12), rgba(255, 255, 255, .04));
        box-shadow: none;
    }
    40%, 60% {
        background: linear-gradient(145deg, rgba(46, 196, 168, .85), rgba(18, 160, 138, .45));
        box-shadow: 0 0 8px rgba(18, 160, 138, .35);
    }
}
@keyframes home-subhero-inst-beam {
    0%, 100% { left: 14%; opacity: .35; }
    50% { left: 78%; opacity: 1; }
}
@keyframes home-subhero-inst-level {
    0%, 100% { width: 48%; opacity: .75; }
    50% { width: 86%; opacity: 1; }
}
@keyframes home-subhero-inst-spin {
    to { transform: rotate(360deg); }
}
@keyframes home-subhero-inst-hex {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-4px) rotate(12deg); }
}
@keyframes home-subhero-inst-barfill {
    0%, 100% { width: 42%; opacity: .8; }
    50% { width: 88%; opacity: 1; }
}
@keyframes home-subhero-inst-dot {
    0%, 100% { opacity: .35; transform: scaleX(.9); }
    50% { opacity: 1; transform: scaleX(1); }
}
@keyframes home-subhero-inst-courier {
    0% { left: 18%; opacity: .5; }
    50% { left: calc(82% - 8px); opacity: 1; }
    100% { left: 18%; opacity: .5; }
}

/* 设备库列表：固定四列（不影响首页/详情页设备网格） */
.home-catalog .home-device-grid--catalog {
    grid-template-columns: repeat(4, 1fr);
}

.home-catalog {
    max-width: var(--content);
    margin: 0 auto;
    padding: 40px 24px 72px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 32px;
    align-items: start;
}
.home-section--gray > .home-catalog {
    padding-top: 8px;
}
.home-catalog--devices {
    grid-template-columns: 1fr;
    gap: 20px;
}

/* ---- 设备库横向胶囊筛选 ---- */
.home-filterbar {
    background: var(--white);
    border: 1px solid #e8ecf0;
    border-radius: var(--radius);
    padding: 8px 20px 4px;
    box-shadow: 0 1px 2px rgba(20, 26, 31, .03);
}
.home-filterbar__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0 8px;
    border-bottom: 1px solid #f0f2f5;
    margin-bottom: 2px;
}
.home-filterbar__head h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
}
.home-filterbar__clear {
    font-size: 13px;
    color: var(--brand);
    font-weight: 500;
}
.home-filterbar__clear:hover { color: var(--brand-dark); }
.home-filterbar__form { margin: 0; }
.home-filterbar__row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #f0f2f5;
}
.home-filterbar__row:last-child { border-bottom: 0; }
.home-filterbar__label {
    flex: 0 0 72px;
    width: 72px;
    padding-top: 5px;
    font-size: 13px;
    font-weight: 500;
    color: #8a939e;
    line-height: 1.4;
    white-space: nowrap;
}
.home-filterbar__opts {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: center;
}
.home-filterbar__row--collapsible:not(.is-expanded) .home-filterbar__opts {
    max-height: 34px;
    overflow: hidden;
}
.home-filterbar__more {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 5px;
    border: 0;
    background: transparent;
    color: var(--brand);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    padding: 0 2px;
    white-space: nowrap;
    font-family: inherit;
    line-height: 1.4;
}
.home-filterbar__more:hover { color: var(--brand-dark); }
.home-filterbar__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 30px;
    padding: 0 14px;
    border-radius: var(--radius-pill);
    background: #f3f5f7;
    color: #4b5563;
    font-size: 13px;
    line-height: 1;
    text-decoration: none;
    border: 0;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s ease, color .15s ease;
    white-space: nowrap;
}
.home-filterbar__pill:hover {
    background: #e8ecf0;
    color: var(--text);
}
.home-filterbar__pill.is-active {
    background: var(--brand);
    color: #fff;
    font-weight: 500;
}
.home-filterbar__pill.is-active:hover {
    background: var(--brand-dark);
    color: #fff;
}
button.home-filterbar__pill {
    appearance: none;
    -webkit-appearance: none;
}
.home-filterbar__opts--input,
.home-filterbar__opts--price {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.home-filterbar__opts--input input[type="text"],
.home-filterbar__opts--input input[type="number"],
.home-filterbar__opts--price input[type="number"] {
    height: 34px;
    border: 1px solid #e2e8f0;
    border-radius: var(--radius-sm);
    padding: 0 12px;
    font-size: 13px;
    background: #fff;
    outline: none;
    color: var(--text);
    font-family: inherit;
}
.home-filterbar__opts--input input[type="text"] {
    flex: 1;
    min-width: 180px;
    max-width: 420px;
}
.home-filterbar__opts--input input[type="number"] {
    width: 200px;
    max-width: 100%;
}
.home-filterbar__opts--price input[type="number"] {
    width: 110px;
}
.home-filterbar__opts--input input:focus,
.home-filterbar__opts--price input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(14, 124, 107, .12);
}
.home-filterbar__dash {
    color: #94a3b8;
    font-size: 13px;
}
.home-filterbar__unit {
    font-size: 13px;
    color: #8a939e;
}
.home-filterbar__search {
    height: 34px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--brand);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
}
.home-filterbar__search:hover { background: var(--brand-dark); }
.home-filterbar__opts--city {
    gap: 12px;
}
.home-filterbar__city {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border-radius: var(--radius-pill);
    background: var(--brand-light);
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
}
.home-filterbar__city .fa-map-marker { color: var(--brand); }
.home-filterbar__link {
    border: 0;
    background: transparent;
    color: var(--brand);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    padding: 0;
    font-family: inherit;
}
.home-filterbar__link:hover { color: var(--brand-dark); }

.home-filters {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px;
    position: sticky;
    top: 88px;
}
.home-filters h3 {
    margin: 0 0 16px;
    font-size: 15px;
    font-weight: 700;
}
.home-filters__group { margin-bottom: 20px; }
.home-filters__group label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.home-filters input,
.home-filters select {
    width: 100%;
    height: 40px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 0 12px;
    font-size: 13px;
    background: #fff;
    outline: none;
}
.home-filters input:focus,
.home-filters select:focus { border-color: var(--brand); }
.home-filters__price {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
    align-items: center;
}
.home-filters__price span { color: var(--text-muted); font-size: 12px; }
.home-filters__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}
.home-filters__actions .home-btn { width: 100%; }
.home-filters .home-btn--reset {
    background: var(--bg);
    color: var(--text-muted);
    border: 1px solid var(--border);
}
.home-catalog__toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.home-catalog__count { font-size: 14px; color: var(--text-muted); }
.home-catalog__count strong { color: var(--text); }
.home-catalog__sorts {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.home-catalog__sort {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 14px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--white);
    font-size: 13px;
    color: var(--text-muted);
    text-decoration: none;
    transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.home-catalog__sort:hover {
    border-color: var(--brand);
    color: var(--brand);
}
.home-catalog__sort.is-active {
    border-color: var(--brand);
    background: rgba(14, 124, 107, .08);
    color: var(--brand);
    font-weight: 600;
}
button.home-catalog__sort {
    cursor: pointer;
    font-family: inherit;
    line-height: 1;
    appearance: none;
    -webkit-appearance: none;
}
.home-catalog__offer {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 10px 0 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--white);
    font-size: 13px;
    color: var(--text-muted);
    margin: 0;
    cursor: pointer;
}
.home-catalog__offer:focus-within {
    border-color: var(--brand);
    color: var(--brand);
}
.home-catalog__offer-label { white-space: nowrap; }
.home-catalog__offer select {
    height: 28px;
    border: 0;
    background: transparent;
    font-size: 13px;
    color: var(--text);
    outline: none;
    cursor: pointer;
    padding: 0 2px;
    max-width: 88px;
}
.home-catalog__price-sort {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 10px 0 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--white);
    font-size: 13px;
    color: var(--text-muted);
}
.home-catalog__price-sort.is-active {
    border-color: var(--brand);
    color: var(--brand);
    background: rgba(14, 124, 107, .08);
}
.home-catalog__price-label { white-space: nowrap; }
.home-catalog__price-icons {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-left: 2px;
}
.home-catalog__price-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 11px;
    color: #c0c6cc;
    text-decoration: none;
    transition: color var(--transition);
}
.home-catalog__price-btn .fa { font-size: 12px; line-height: 1; }
.home-catalog__price-btn:hover,
.home-catalog__price-btn.is-active { color: var(--brand); }
.home-catalog__price-reset {
    margin-left: 2px;
    font-size: 12px;
    color: var(--text-muted);
    text-decoration: none;
}
.home-catalog__price-reset:hover { color: var(--brand); }
.home-device-card__stock {
    margin-left: auto;
    font-size: 12px;
    color: var(--text-muted);
}
.home-device-card__stock.is-empty { color: #c2410c; }
.home-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 32px;
    flex-wrap: wrap;
}
.home-pagination ul {
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
    justify-content: center;
}
.home-pagination li { display: inline-flex; }
.home-pagination a,
.home-pagination span {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--text);
}
.home-pagination a:hover { border-color: var(--brand); color: var(--brand); }
.home-pagination .active a,
.home-pagination .active span {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}
.home-pagination .disabled span { opacity: .4; cursor: default; }

/* ---- 设备详情（规格优先） ---- */
.home-subhero--detail .home-subhero__inner--detail {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}
.home-subhero--detail .home-subhero__detail-main {
    min-width: 0;
    flex: 1;
}
.home-subhero--detail .home-breadcrumb {
    margin-bottom: 10px;
}
.home-subhero--detail .home-subhero__summary {
    margin: 0;
    font-size: 14px;
    color: rgba(255, 255, 255, .62);
    letter-spacing: .02em;
    max-width: none;
}
.home-subhero__shop-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 38px;
    padding: 0 16px;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .08);
    color: #fff !important;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: background var(--transition), border-color var(--transition);
}
.home-subhero__shop-btn:hover {
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .55);
}
.home-subhero__shop-btn i { opacity: .9; }

.home-detail {
    max-width: var(--content);
    margin: 0 auto;
    padding: 28px var(--pad-x) 72px;
}
.home-detail--commerce {
    padding-bottom: 96px;
}
.home-detail__main {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 28px;
    align-items: stretch;
    margin-bottom: 32px;
}
.home-detail__media {
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.home-gallery {
    flex: 1;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #1e262e;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    outline: none;
    box-shadow: var(--shadow);
}
.home-gallery:focus-visible {
    box-shadow: 0 0 0 2px var(--brand-light), 0 0 0 4px rgba(14, 124, 107, .35);
}
.home-gallery__stage {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
}
.home-gallery__badges {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    pointer-events: none;
}
.home-gallery__badge {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 5px 10px;
    border-radius: var(--radius-xs);
    color: #fff;
    background: rgba(20, 26, 31, .72);
    backdrop-filter: blur(6px);
}
.home-gallery__badge--rent {
    background: rgba(14, 124, 107, .92);
}
.home-gallery__badge--sale {
    background: rgba(201, 133, 42, .92);
}
.home-gallery__badge--cond {
    background: rgba(255, 255, 255, .9);
    color: var(--text);
}
.home-gallery__main {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 50% at 50% 40%, rgba(18, 160, 138, .12), transparent 60%),
        #1e262e;
    display: flex;
    align-items: center;
    justify-content: center;
}
.home-gallery__main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    opacity: 1;
    transition: opacity var(--transition);
}
.home-gallery__main img.is-fading {
    opacity: .35;
}
.home-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(20, 26, 31, .55);
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transition), opacity var(--transition);
    opacity: .85;
    z-index: 2;
}
.home-gallery__nav:hover {
    background: rgba(14, 124, 107, .9);
    opacity: 1;
}
.home-gallery__nav--prev { left: 12px; }
.home-gallery__nav--next { right: 12px; }
.home-gallery__counter {
    position: absolute;
    right: 12px;
    bottom: 12px;
    z-index: 2;
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    background: rgba(20, 26, 31, .72);
    color: rgba(255, 255, 255, .92);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    backdrop-filter: blur(6px);
}
.home-gallery__thumbs {
    display: flex;
    gap: 8px;
    padding: 12px;
    overflow-x: auto;
    background: var(--bg);
    border-top: 1px solid rgba(255, 255, 255, .08);
    flex-shrink: 0;
}
.home-gallery__thumbs button {
    width: 64px;
    height: 64px;
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    background: #1e262e;
    flex-shrink: 0;
    transition: border-color var(--transition), opacity var(--transition);
    opacity: .72;
}
.home-gallery__thumbs button:hover { opacity: 1; }
.home-gallery__thumbs button.is-active {
    border-color: var(--brand);
    opacity: 1;
}
.home-gallery__thumbs img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.home-buybox {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 24px 26px 26px;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    gap: 0;
    height: 100%;
    min-height: 0;
}
.home-buybox--commerce {
    background: var(--white);
}
.home-buybox__eyebrow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}
.home-buybox__type {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    color: var(--brand);
    background: var(--brand-light);
    padding: 4px 10px;
    border-radius: var(--radius-xs);
}
.home-buybox__avail {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--brand-dark);
}
.home-buybox__avail .fa {
    font-size: 8px;
    color: var(--brand-bright);
}
.home-buybox__avail.is-empty {
    color: var(--danger);
}
.home-buybox__avail.is-empty .fa {
    color: var(--danger);
}
.home-buybox h1 {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -.01em;
}
.home-buybox__lead {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-muted);
    font-weight: 500;
    letter-spacing: .01em;
}
.home-buybox__social {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 16px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
}
.home-buybox__social .fa {
    margin-right: 3px;
    opacity: .85;
}
.home-buybox__social .verified { color: var(--success); }
.home-buybox__highlights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}
.home-buybox__hl {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 10px 11px;
    min-width: 0;
    text-align: center;
}
.home-buybox__hl span {
    display: block;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.home-buybox__hl strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-buybox__scenes {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 4px;
}
.home-buybox__scenes-label {
    flex-shrink: 0;
    margin-top: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
}
.home-buybox__scenes ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.home-buybox__scenes li {
    font-size: 12px;
    font-weight: 500;
    color: var(--text);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-xs);
    padding: 4px 10px;
    line-height: 1.4;
}
.home-buybox__prices {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
    padding: 16px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    margin: 14px 0 18px;
}
.home-buybox__price-block {
    min-width: 0;
    flex: 1 1 140px;
}
.home-buybox__price-block--sale {
    padding-left: 20px;
    border-left: 1px dashed var(--border);
}
.home-buybox__price-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.home-buybox__price {
    font-size: 28px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.15;
    letter-spacing: -.02em;
}
.home-buybox__price small {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 2px;
}
.home-buybox__price--secondary {
    font-size: 22px;
}
.home-buybox__price-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 6px;
    font-size: 12px;
    color: var(--text-muted);
}
.home-buybox__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 10px;
}
.home-buybox__actions .home-btn {
    flex: 1;
    min-width: 0;
    width: auto;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    padding-left: 10px;
    padding-right: 10px;
}
.home-buybox__actions--secondary {
    margin-top: 8px;
    flex-wrap: wrap;
}
.home-buybox__actions--secondary .home-btn {
    flex: 1;
    min-width: 140px;
    font-size: 13px;
    padding-top: 10px;
    padding-bottom: 10px;
}
.home-buybox__note {
    margin: 16px 0 0;
    margin-top: auto;
    padding-top: 16px;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.55;
}

.home-detail-sticky[hidden] { display: none !important; }
.home-detail-sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .96);
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 28px rgba(20, 26, 31, .1);
    backdrop-filter: blur(10px);
}
.home-detail-sticky__inner {
    max-width: var(--content);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.home-detail-sticky__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.home-detail-sticky__info strong {
    font-size: 13px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-detail-sticky__info span {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
}
.home-detail-sticky__actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}
.home-detail-sticky__actions .home-btn {
    padding-left: 14px;
    padding-right: 14px;
    white-space: nowrap;
}
body.has-device-sticky .home-detail--commerce {
    padding-bottom: 112px;
}

.home-tabs { margin-bottom: 48px; }
.home-tabs__nav {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.home-tabs__nav button {
    padding: 12px 20px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    transition: color var(--transition), border-color var(--transition);
}
.home-tabs__nav button:hover { color: var(--text); }
.home-tabs__nav button.is-active {
    color: var(--brand);
    border-bottom-color: var(--brand);
}
.home-tabs__panel { display: none; }
.home-tabs__panel.is-active { display: block; animation: home-detail-panel-in .28s ease; }

.home-spec-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--border);
}
.home-spec-table th,
.home-spec-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
    text-align: left;
}
.home-spec-table th {
    width: 160px;
    background: var(--bg);
    color: var(--text-muted);
    font-weight: 600;
}
.home-spec-table tbody:last-child tr:last-child th,
.home-spec-table tbody:last-child tr:last-child td { border-bottom: none; }
.home-spec-table__group th {
    background: var(--brand-light);
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 11px 18px;
}

.home-prose {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.8;
}
.home-prose h4 { margin: 0 0 10px; color: var(--text); font-size: 15px; }
.home-prose ul { margin: 0; padding-left: 18px; }
.home-prose li { margin-bottom: 6px; }

@keyframes home-detail-panel-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ---- 需求详情 ---- */
.home-demand-detail {
    max-width: var(--content);
    margin: 0 auto;
    padding: 8px 24px 72px;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 32px;
    align-items: start;
}
.home-section--gray > .home-demand-detail {
    padding-top: 0;
}
.home-alert {
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    line-height: 1.5;
}
.home-alert--error {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fecaca;
}
.home-demand-article {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 32px;
}
.home-demand-article h1 {
    margin: 0 0 16px;
    font-size: 26px;
    font-weight: 700;
}
.home-demand-meta {
    display: flex; flex-wrap: wrap; gap: 16px;
    font-size: 13px; color: var(--text-muted);
    margin-bottom: 24px;
}
.home-demand-meta i { color: var(--brand); margin-right: 4px; }
.home-demand-grid-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 24px;
}
.home-demand-grid-info dl {
    margin: 0;
    background: var(--bg);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
}
.home-demand-grid-info dt {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.home-demand-grid-info dd {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
}
.home-timeline {
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
    border-left: 2px solid var(--border);
}
.home-timeline li {
    position: relative;
    padding: 0 0 20px 20px;
    font-size: 13px;
    color: var(--text-muted);
}
.home-timeline li:last-child {
    padding-bottom: 0;
}
.home-timeline li::before {
    content: '';
    position: absolute;
    left: -6px; top: 4px;
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--border-muted);
}
.home-timeline li.is-done::before { background: var(--brand); }
.home-timeline li.is-done { color: var(--text); font-weight: 500; }
.home-demand-side {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    position: sticky;
    top: 88px;
}
.home-demand-side__budget {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 4px;
    color: var(--danger);
}
.home-demand-side__budget .home-demand-budget-prefix {
    font-size: 13px;
    font-weight: 400;
    color: var(--text-muted);
}
.home-demand-side__budget .home-demand-budget-amount {
    font-size: 28px;
    font-weight: 800;
}
.home-demand-side__budget .home-demand-budget-quote {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-muted);
}
.home-demand-side__label { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.home-demand-side__stat {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}
.home-demand-side__actions { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.home-privacy-note {
    margin-top: 16px;
    padding: 12px;
    background: #fffbeb;
    border-radius: var(--radius-sm);
    font-size: 12px;
    color: #92400e;
    line-height: 1.55;
}

.home-service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.home-service-card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 28px;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.home-service-card:hover {
    border-color: rgba(0, 160, 233, .35);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}
.home-service-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 16px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand);
    font-size: 18px;
}
.home-service-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.home-service-card__top .home-service-card__icon {
    margin-bottom: 0;
}
.home-service-card__tag {
    flex-shrink: 0;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand-deep);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}
.home-service-card h3 { margin: 0 0 10px; font-size: 18px; }
.home-service-card p { margin: 0; font-size: 14px; color: var(--text-muted); line-height: 1.7; }

.home-service-flow {
    padding: 36px 28px 28px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background-image:
        linear-gradient(180deg, var(--brand-light) 0%, transparent 42%),
        linear-gradient(180deg, #fff, #fff);
}
.home-service-flow .home-flow__item h4 { margin-bottom: 8px; }
.home-service-flow .home-flow__item p { max-width: 220px; margin-left: auto; margin-right: auto; }

/* ---- 安装师傅 ---- */
.home-installer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}
.home-installer-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 22px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
a.home-installer-card:hover {
    border-color: rgba(14, 124, 107, .28);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
    color: inherit;
    text-decoration: none;
}
.home-installer-card:hover {
    border-color: rgba(14, 124, 107, .28);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}
.home-installer-card__avatar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius);
    background: var(--brand-light);
    color: var(--brand);
    font-size: 18px;
}
.home-installer-card__body {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.home-installer-card h3 {
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-installer-card__meta {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.home-installer-card__meta i { color: var(--brand); }
.home-installer-card__badge {
    display: inline-block;
    padding: 1px 8px;
    border-radius: var(--radius-pill);
    background: rgba(14, 124, 107, .12);
    color: var(--brand);
    font-size: 11px;
    font-weight: 600;
}
.home-installer-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 28px;
}
.home-installer-card__tags span {
    padding: 3px 8px;
    border-radius: var(--radius-xs);
    background: var(--gray-50, #f5f7f7);
    border: 1px solid var(--border);
    font-size: 12px;
    color: var(--text-muted);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-installer-card__hint {
    margin: 0;
    min-height: 28px;
    font-size: 13px;
    color: var(--text-muted);
}
.home-installer-card__cta {
    margin-top: auto;
    padding-top: 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--brand);
}
.home-installer-card__cta i { margin-left: 2px; }

/* ---- 目录详情统一深色顶栏（配件 / 素材等） ---- */
.catalog-detail { margin-bottom: 8px; }
.catalog-detail__band {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: #fff;
    padding: var(--subhero-pad);
    background:
        radial-gradient(ellipse 70% 80% at 88% 20%, rgba(18, 160, 138, .28), transparent 55%),
        radial-gradient(ellipse 50% 60% at 12% 80%, rgba(201, 133, 42, .12), transparent 50%),
        linear-gradient(155deg, #0f1419 0%, #172028 48%, #12332c 100%);
}
.catalog-detail__band-stage {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.catalog-detail__glow {
    position: absolute;
    right: -8%;
    top: -40%;
    width: 52%;
    height: 140%;
    background: radial-gradient(ellipse at center, rgba(18, 160, 138, .22), transparent 68%);
}
.catalog-detail__mesh {
    position: absolute;
    inset: 0;
    opacity: .35;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%);
}
.catalog-detail__band-inner {
    position: relative;
    z-index: 1;
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.catalog-detail__band .home-breadcrumb { margin-bottom: 22px; }
.catalog-detail__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
}
.catalog-detail__identity {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}
.catalog-detail__avatar {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    color: #fff;
    background: linear-gradient(145deg, var(--brand-bright), var(--brand-dark));
    box-shadow: 0 10px 28px rgba(14,124,107,.35);
    border: 2px solid rgba(255,255,255,.12);
    overflow: hidden;
    padding: 0;
}
.catalog-detail__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.catalog-detail__avatar .fa { line-height: 1; font-size: 28px; }
.catalog-detail__loc-link {
    color: inherit;
    text-decoration: underline;
}
.catalog-detail__inline-form { display: inline; }
.catalog-detail__actions .home-btn.is-disabled,
.catalog-detail__actions .is-disabled {
    opacity: .6;
    cursor: not-allowed;
    pointer-events: none;
}
.catalog-detail__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.catalog-detail__eyebrow {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(61, 214, 184, .9);
}
.catalog-detail__who h1 {
    margin: 0 0 8px;
    font-size: 32px;
    font-weight: 750;
    letter-spacing: .01em;
    line-height: 1.2;
}
.catalog-detail__loc {
    margin: 0;
    font-size: 14px;
    color: rgba(255,255,255,.68);
    line-height: 1.55;
}
.catalog-detail__loc .catalog-detail__price {
    color: #fff;
    font-weight: 700;
    font-size: 18px;
}
.catalog-detail__loc .catalog-detail__price small {
    font-size: 13px;
    font-weight: 500;
    opacity: .75;
    margin-left: 2px;
}
.catalog-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.catalog-detail__actions .home-btn--ghost,
.catalog-detail__actions .home-btn--outline {
    border-color: rgba(255,255,255,.28);
    color: #fff;
    background: transparent;
}
.catalog-detail__actions .home-btn--ghost:hover,
.catalog-detail__actions .home-btn--outline:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.45);
    color: #fff;
}
.catalog-detail__body {
    max-width: var(--content);
    margin: -28px auto 0;
    padding: 0 var(--pad-x) 56px;
    position: relative;
    z-index: 2;
}
.catalog-detail__note {
    margin: 12px 0 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.6;
}
.catalog-detail__alert {
    margin: 0 0 16px;
}
.part-sheet--embedded,
.mat-folio--embedded {
    max-width: none;
    margin: 0;
    padding: 0;
}
.part-sheet--embedded .part-sheet__hero {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--shadow);
}
.part-sheet--embedded .part-sheet__summary h1,
.mat-folio--embedded .mat-folio__head h1 { display: none; }
.part-sheet--embedded .part-sheet__actions { display: none; }
.mat-folio--embedded .mat-folio__rail-actions { display: none; }
.mat-folio--embedded .mat-folio__cover {
    margin-bottom: 20px;
    border-radius: var(--radius);
}
.mat-folio--embedded .mat-folio__rail {
    margin-bottom: 24px;
    box-shadow: var(--shadow);
}
@media (max-width: 768px) {
    .catalog-detail__band { padding: calc(var(--mall-header-h, 160px) + 12px) var(--pad-x-sm) 32px; }
    .catalog-detail__who h1 { font-size: 24px; }
    .catalog-detail__avatar { width: 72px; height: 72px; font-size: 28px; }
    .catalog-detail__identity { align-items: flex-start; flex-wrap: wrap; }
    .catalog-detail__actions { width: 100%; }
    .catalog-detail__actions .home-btn { flex: 1; text-align: center; justify-content: center; min-height: 44px; }
    .catalog-detail__body { margin-top: -16px; padding: 0 var(--pad-x-sm) 48px; }
}

/* ---- 安装师傅详情（档案式，统一页头） ---- */
.ins-profile { margin-bottom: 8px; }
.ins-profile__band {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: #fff;
    padding: var(--subhero-pad);
    background:
        radial-gradient(ellipse 70% 80% at 88% 20%, rgba(18, 160, 138, .28), transparent 55%),
        radial-gradient(ellipse 50% 60% at 12% 80%, rgba(201, 133, 42, .12), transparent 50%),
        linear-gradient(155deg, #0f1419 0%, #172028 48%, #12332c 100%);
}
.ins-profile__band-stage {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.ins-profile__glow {
    position: absolute;
    right: -8%;
    top: -40%;
    width: 52%;
    height: 140%;
    background: radial-gradient(ellipse at center, rgba(18, 160, 138, .22), transparent 68%);
}
.ins-profile__mesh {
    position: absolute;
    inset: 0;
    opacity: .35;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%, #000 100%);
}
.ins-profile__band-inner {
    position: relative;
    z-index: 1;
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.ins-profile__band .home-breadcrumb {
    margin-bottom: 22px;
}
.ins-profile__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
}
.ins-profile__identity {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
}
.ins-profile__avatar {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
    background: linear-gradient(145deg, var(--brand-bright), var(--brand-dark));
    box-shadow: 0 10px 28px rgba(14,124,107,.35);
    border: 2px solid rgba(255,255,255,.12);
}
.ins-profile__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.ins-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: var(--radius-xs);
    font-size: 12px;
    font-weight: 600;
}
.ins-chip--ok {
    background: rgba(18,160,138,.22);
    color: var(--brand-glow);
}
.ins-chip--pref {
    background: rgba(201,133,42,.22);
    color: var(--accent-light);
}
.ins-profile__who h1 {
    margin: 0 0 8px;
    font-size: 32px;
    font-weight: 750;
    letter-spacing: .01em;
    line-height: 1.2;
}
.ins-profile__loc {
    margin: 0;
    font-size: 14px;
    color: rgba(255,255,255,.68);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
}
.ins-profile__loc i { color: var(--brand-bright); }
.ins-profile__since {
    opacity: .75;
    font-size: 13px;
}
.ins-profile__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ins-profile__actions .home-btn--ghost {
    border-color: rgba(255,255,255,.28);
    color: #fff;
}
.ins-profile__actions .home-btn--ghost:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.45);
}

.ins-profile__body {
    max-width: var(--content);
    margin: -32px auto 0;
    padding: 0 var(--pad-x) 56px;
    position: relative;
    z-index: 2;
}
.ins-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}
.ins-stat {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 16px;
    text-align: center;
    box-shadow: var(--shadow);
}
.ins-stat strong {
    display: block;
    font-size: 28px;
    font-weight: 800;
    color: var(--brand-dark);
    line-height: 1.15;
    margin-bottom: 4px;
}
.ins-stat span {
    font-size: 12px;
    color: var(--text-muted);
}

.ins-panels {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.ins-panel {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px 28px;
}
.ins-panel h2 {
    margin: 0 0 18px;
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}
.ins-panel__hint {
    margin: 0;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.7;
}
.ins-skills {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.ins-skill {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, var(--bg-warm), var(--white));
    border: 1px solid var(--border);
}
.ins-skill__icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-light);
    color: var(--brand);
    font-size: 17px;
}
.ins-skill h3 {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
}
.ins-skill p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.5;
}
.ins-areas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ins-areas span {
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 600;
    border: 1px solid rgba(14,124,107,.12);
}
.ins-notes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.ins-notes li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.6;
}
.ins-notes i {
    margin-top: 3px;
    color: var(--brand);
    width: 16px;
    text-align: center;
}
.ins-panel__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}

/* 同城其他师傅（与档案页同宽，避免灰底无容器贴边） */
.ins-related {
    background: var(--bg-warm);
    padding: 20px 0 48px;
}
.ins-related__inner {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x);
}
.ins-related__head {
    margin-bottom: 22px;
}
.ins-related__head h2 {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: 700;
}
.ins-related__head p {
    margin: 0;
    font-size: 14px;
    color: var(--text-muted);
}
.ins-related__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.ins-related__card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.ins-related__card:hover {
    border-color: rgba(14, 124, 107, .28);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
    color: inherit;
    text-decoration: none;
}
.ins-related__avatar {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(145deg, var(--brand-bright), var(--brand-dark));
}
.ins-related__body {
    min-width: 0;
    flex: 1;
}
.ins-related__top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}
.ins-related__top h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}
.ins-related__meta {
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--text-muted);
}
.ins-related__meta i { color: var(--brand); margin-right: 2px; }
.ins-related__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.ins-related__tags span {
    padding: 2px 8px;
    border-radius: var(--radius-xs);
    background: var(--bg);
    border: 1px solid var(--border);
    font-size: 12px;
    color: var(--text-muted);
}
.ins-related__arrow {
    flex-shrink: 0;
    color: var(--brand);
    font-size: 18px;
    opacity: .55;
}
.ins-related__card:hover .ins-related__arrow { opacity: 1; }

@media (max-width: 900px) {
    .ins-stats { grid-template-columns: repeat(2, 1fr); }
    .ins-skills { grid-template-columns: 1fr; }
    .ins-related__grid { grid-template-columns: 1fr; }
    .ins-profile__band { padding: calc(var(--mall-header-h, 180px) + 16px) var(--pad-x-sm) 40px; }
    .ins-profile__who h1 { font-size: 26px; }
    .ins-profile__avatar { width: 72px; height: 72px; font-size: 28px; border-radius: var(--radius-lg); }
}
@media (max-width: 768px) {
    .ins-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
    .ins-profile__band { padding: calc(var(--mall-header-h, 160px) + 12px) var(--pad-x-sm) 32px; }
    .ins-profile__identity { align-items: flex-start; flex-wrap: wrap; }
    .ins-profile__actions { width: 100%; }
    .ins-profile__actions .home-btn { flex: 1; text-align: center; justify-content: center; min-height: 44px; }
    .home-news-list { padding: 0 var(--pad-x-sm); }
    .home-news-cats { padding: 0 var(--pad-x-sm); margin-bottom: 20px; }
    .home-faq__nav a { min-height: 40px; display: inline-flex; align-items: center; }
    .home-legal__body,
    .home-prose { overflow-wrap: anywhere; }
}
@media (max-width: 480px) {
    .ins-profile__band { padding: calc(var(--mall-header-h, 160px) + 8px) var(--pad-x-sm) 28px; }
    .ins-profile__band .home-breadcrumb { margin-bottom: 16px; }
    .ins-stats { grid-template-columns: 1fr; }
}

/* ---- 常见问题 ---- */
.home-faq {
    width: 100%;
    margin: 0;
}
.home-faq__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 36px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}
.home-faq__nav a {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    padding: 8px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--white);
    transition: color var(--transition), border-color var(--transition), background var(--transition);
}
.home-faq__nav a:hover {
    color: var(--brand);
    border-color: rgba(14, 124, 107, .35);
    background: rgba(14, 124, 107, .06);
}
.home-faq__group {
    margin-bottom: 36px;
    scroll-margin-top: 96px;
}
.home-faq__group:last-child { margin-bottom: 0; }
.home-faq__group-title {
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 700;
    color: var(--dark);
}
.home-faq__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.home-faq__item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.home-faq__item[open] {
    border-color: rgba(14, 124, 107, .35);
    box-shadow: var(--shadow);
}
.home-faq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
    user-select: none;
}
.home-faq__q::-webkit-details-marker { display: none; }
.home-faq__q::marker { content: ''; }
.home-faq__q i {
    flex-shrink: 0;
    color: var(--brand);
    transition: transform var(--transition);
}
.home-faq__item[open] .home-faq__q i { transform: rotate(180deg); }
.home-faq__a {
    padding: 0 20px 18px;
    border-top: 1px solid var(--border);
}
.home-faq__a p {
    margin: 14px 0 0;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.75;
}
.home-faq__actions,
.home-cta-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}
.home-cta-row {
    margin-top: 28px;
}

/* ---- 关于 / 协议 / 公告 / 联系 ---- */
.home-legal {
    width: 100%;
    margin: 0;
}
.home-legal__body {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 32px 36px;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.85;
}
.home-legal__body h2 {
    margin: 28px 0 12px;
    font-size: 18px;
    font-weight: 700;
    color: var(--dark);
}
.home-legal__body h2:first-child,
.home-legal__body .home-legal__updated + h2 {
    margin-top: 0;
}
.home-legal__body p { margin: 0 0 12px; }
.home-legal__body ul,
.home-legal__body ol {
    margin: 0 0 12px;
    padding-left: 22px;
}
.home-legal__body li { margin-bottom: 8px; }
.home-legal__body a { color: var(--brand); }
.home-legal__updated {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 24px !important;
}
.home-announce-list {
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.home-announce-item {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px 28px;
}
.home-announce-item__meta {
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.home-announce-item h2 {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 700;
    color: var(--dark);
}
.home-announce-item__body {
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.8;
}
.home-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.home-contact-grid--2 {
    grid-template-columns: repeat(2, 1fr);
}

/* 联系我们：主渠道 + 主题入口 */
.home-contact-primary {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .9fr);
    gap: 28px 40px;
    align-items: center;
    padding: 28px 32px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background-image:
        linear-gradient(135deg, var(--brand-light) 0%, transparent 42%),
        linear-gradient(180deg, #fff, #fff);
}
.home-contact-primary__badge {
    display: inline-block;
    margin-bottom: 10px;
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    background: var(--brand);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
}
.home-contact-primary h2 {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -.01em;
}
.home-contact-primary__copy > p {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.75;
    max-width: 520px;
}
.home-contact-primary__tips {
    margin: 0;
    padding: 0 0 0 18px;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.7;
}
.home-contact-primary__tips li { margin-bottom: 4px; }
.home-contact-primary__tips li:last-child { margin-bottom: 0; }
.home-contact-primary__action {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    min-width: 0;
}
.home-contact-primary__mail {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid rgba(0, 160, 233, .28);
    border-radius: var(--radius);
    background: #fff;
    color: var(--brand-dark);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    word-break: break-all;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.home-contact-primary__mail i {
    flex-shrink: 0;
    font-size: 18px;
    color: var(--brand);
}
.home-contact-primary__mail:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow);
    color: var(--brand-deep);
}
.home-contact-primary__action .home-btn {
    justify-content: center;
    text-align: center;
}
.home-contact-primary__note {
    margin: 0;
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
    line-height: 1.5;
}
.home-contact-channel {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.home-contact-channel .home-mt-sm {
    margin-top: auto;
    padding-top: 16px;
}
.home-contact-topics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.home-contact-topic {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 16px 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.home-contact-topic:hover {
    border-color: rgba(0, 160, 233, .35);
    box-shadow: var(--shadow);
    transform: translateY(-1px);
    color: inherit;
    text-decoration: none;
}
.home-contact-topic__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand);
    font-size: 16px;
}
.home-contact-topic__text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.home-contact-topic__text strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}
.home-contact-topic__text em {
    font-style: normal;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.45;
}
.home-contact-topic__arrow {
    flex-shrink: 0;
    color: var(--text-muted);
    font-size: 14px;
    transition: color var(--transition), transform var(--transition);
}
.home-contact-topic:hover .home-contact-topic__arrow {
    color: var(--brand);
    transform: translateX(2px);
}

/* 关于我们 */
.home-about-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(240px, .85fr);
    gap: 28px 36px;
    align-items: stretch;
    padding: 28px 32px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background-image:
        linear-gradient(135deg, var(--brand-light) 0%, transparent 46%),
        linear-gradient(180deg, #fff, #fff);
}
.home-about-hero__badge {
    display: inline-block;
    margin-bottom: 10px;
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    background: var(--brand);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
}
.home-about-hero h2 {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: -.01em;
}
.home-about-hero__copy > p {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.75;
    max-width: 560px;
}
.home-about-hero__tips {
    margin: 0;
    padding: 0 0 0 18px;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.7;
}
.home-about-hero__tips li { margin-bottom: 4px; }
.home-about-hero__tips li:last-child { margin-bottom: 0; }
.home-about-hero__aside {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}
.home-about-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid rgba(0, 160, 233, .18);
    border-radius: var(--radius);
}
.home-about-stat strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--brand-deep);
    line-height: 1.3;
}
.home-about-stat span {
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.45;
}
.home-about-hero__aside .home-btn {
    margin-top: auto;
    justify-content: center;
    text-align: center;
}
.home-about-role {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.home-about-role__cta {
    margin-top: auto;
    padding-top: 16px;
}
.home-about-roles--duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.home-about-principles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.home-about-principle {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.home-about-principle__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand);
    font-size: 16px;
}
.home-about-principle h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}
.home-about-principle p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.65;
}
.home-about-links {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.home-pager {
    margin-top: 28px;
    display: flex;
    justify-content: center;
}

@media (max-width: 1100px) {
    .home-scene-grid,
    .home-category-grid,
    .home-trust { grid-template-columns: repeat(2, 1fr); }
    .home-catalog { grid-template-columns: 1fr; }
    .home-filters { position: static; }
    .home-filterbar { padding: 6px 14px 2px; }
    .home-filterbar__label { flex-basis: 64px; width: 64px; font-size: 12px; }
    .home-detail__main,
    .home-demand-detail { grid-template-columns: 1fr; }
    .home-buybox, .home-demand-side { position: static; }
    .home-buybox__price-block--sale {
        padding-left: 0;
        border-left: none;
        padding-top: 12px;
        border-top: 1px dashed var(--border);
        flex-basis: 100%;
    }
    .home-service-grid,
    .home-installer-grid { grid-template-columns: repeat(2, 1fr); }
    .home-contact-grid,
    .home-contact-grid--2 { grid-template-columns: 1fr 1fr; }
    .home-contact-primary {
        grid-template-columns: 1fr;
        padding: 24px;
        gap: 22px;
    }
    .home-about-hero {
        grid-template-columns: 1fr;
        padding: 24px;
        gap: 22px;
    }
    .home-about-principles { grid-template-columns: 1fr 1fr; }
    .home-about-links,
    .home-contact-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-catalog .home-device-grid--catalog { grid-template-columns: repeat(4, 1fr); }
    .home-subhero--enhanced .home-subhero__panels,
    .home-subhero--devices .home-subhero__dev-stage,
    .home-subhero--parts .home-subhero__parts-stage,
    .home-subhero--software .home-subhero__soft-stage,
    .home-subhero--demand .home-subhero__demand-stage,
    .home-subhero--installer .home-subhero__inst-stage { opacity: .55; }
}
@media (max-width: 900px) {
    .home-catalog .home-device-grid--catalog { grid-template-columns: repeat(2, 1fr); }
    .home-catalog { padding: 28px var(--pad-x-sm) 56px; gap: 20px; }
    .home-catalog__toolbar {
        flex-wrap: wrap;
        gap: 10px 12px;
    }
    .home-detail__main,
    .home-demand-detail { grid-template-columns: 1fr; }
    .home-buybox, .home-demand-side { position: static; }
    .home-subhero--enhanced .home-subhero__panels,
    .home-subhero--devices .home-subhero__dev-stage,
    .home-subhero--parts .home-subhero__parts-stage,
    .home-subhero--software .home-subhero__soft-stage,
    .home-subhero--demand .home-subhero__demand-stage,
    .home-subhero--installer .home-subhero__inst-stage { display: none; }
    .home-subhero--enhanced { padding: 96px 0 40px; }
}
@media (max-width: 768px) {
    .home-scene-grid,
    .home-category-grid,
    .home-trust,
    .home-demand-grid-info,
    .home-service-grid,
    .home-installer-grid,
    .home-contact-grid,
    .home-contact-grid--2,
    .home-contact-topics,
    .home-about-principles,
    .home-about-roles--duo,
    .home-about-links { grid-template-columns: 1fr; }
    .home-contact-primary { padding: 20px; }
    .home-contact-primary h2 { font-size: 20px; }
    .home-contact-primary__mail { font-size: 15px; }
    .home-about-hero { padding: 20px; }
    .home-about-hero h2 { font-size: 20px; }
    .home-service-flow { padding: 28px 16px 20px; }
    .home-service-flow .home-flow__item p { max-width: none; }
    .home-catalog .home-device-grid--catalog { grid-template-columns: 1fr; }
    .home-filterbar { padding: 6px 12px 2px; }
    .home-filterbar__row {
        flex-wrap: wrap;
        gap: 8px 10px;
        padding: 10px 0;
    }
    .home-filterbar__label {
        flex-basis: 100%;
        width: auto;
        padding-top: 0;
    }
    .home-filterbar__opts { flex: 1 1 auto; }
    .home-filterbar__pill {
        min-height: 36px;
        height: auto;
        padding: 8px 14px;
        font-size: 13px;
    }
    .home-filter-tab {
        min-height: 36px;
        padding: 8px 14px;
        font-size: 13px;
    }
    .home-filterbar__more {
        margin-top: 0;
        align-self: center;
        min-height: 36px;
    }
    .home-filterbar__opts--input input[type="text"] {
        min-width: 0;
        max-width: none;
        width: 100%;
    }
    .home-filterbar__opts--input,
    .home-filterbar__opts--price { width: 100%; }
    .home-subhero--enhanced h1 { font-size: 28px; }
    .home-subhero--enhanced .home-subhero__meta { gap: 8px 14px; font-size: 12px; }
    .home-legal__body { padding: 24px 20px; }
    .home-subhero--detail .home-subhero__inner--detail {
        flex-direction: column;
        align-items: stretch;
    }
    .home-subhero__shop-btn {
        width: 100%;
        justify-content: center;
    }
    .home-detail { padding: 20px 16px 56px; }
    .home-detail--commerce { padding-bottom: 100px; }
    .home-detail__main { gap: 20px; margin-bottom: 28px; }
    .home-gallery {
        height: auto;
        background: var(--white);
    }
    .home-gallery__stage {
        flex: 0 0 auto;
        aspect-ratio: 1;
    }
    .home-gallery__thumbs { margin-top: 0; }
    .home-buybox { padding: 18px; height: auto; }
    .home-buybox h1 { font-size: 20px; }
    .home-buybox__price { font-size: 24px; }
    .home-buybox__highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-buybox__actions {
        flex-wrap: wrap;
    }
    .home-buybox__actions .home-btn {
        flex: 1 1 calc(50% - 6px);
        justify-content: center;
        text-align: center;
        min-height: 44px;
    }
    .home-gallery__nav { width: 34px; height: 34px; font-size: 18px; }
    .home-gallery__nav--prev { left: 8px; }
    .home-gallery__nav--next { right: 8px; }
    .home-spec-table-wrap,
    .home-tabs__panel {
        max-width: 100%;
    }
    .home-spec-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .home-spec-table { min-width: 480px; }
    .home-spec-table th { width: 110px; padding: 12px 12px; }
    .home-spec-table td { padding: 12px 12px; }
    .home-detail-sticky__inner { gap: 10px; }
    .home-detail-sticky__info strong { font-size: 12px; }
    .home-detail-sticky__actions .home-btn {
        min-height: 42px;
        padding-left: 12px;
        padding-right: 12px;
        font-size: 13px;
    }
    body.has-device-sticky .home-detail--commerce {
        padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
    }
    .home-demand-detail { gap: 16px; }
    .home-demand-side { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .home-subhero--enhanced .home-subhero__glow,
    .home-subhero--enhanced .home-subhero__scan,
    .home-subhero--enhanced .home-subhero__mesh,
    .home-subhero--enhanced .home-subhero__panel,
    .home-subhero--devices .home-subhero__dev,
    .home-subhero--devices .home-subhero__dev-grid,
    .home-subhero--devices .home-subhero__dev-raster,
    .home-subhero--devices .home-subhero__dev-glowbar,
    .home-subhero--devices .home-subhero__dev-corner,
    .home-subhero--devices .home-subhero__dev-pixel,
    .home-subhero--devices .home-subhero__dev-module,
    .home-subhero--devices .home-subhero__dev-signal,
    .home-subhero--devices .home-subhero__dev-signal::before,
    .home-subhero--devices .home-subhero__dev-signal::after,
    .home-subhero--parts .home-subhero__part,
    .home-subhero--parts .home-subhero__part-fan,
    .home-subhero--parts .home-subhero__part-led,
    .home-subhero--parts .home-subhero__part-ports i::after,
    .home-subhero--parts .home-subhero__part-trace,
    .home-subhero--parts .home-subhero__part-coil,
    .home-subhero--software .home-subhero__soft,
    .home-subhero--software .home-subhero__soft-play,
    .home-subhero--software .home-subhero__soft-wave,
    .home-subhero--software .home-subhero__soft-key,
    .home-subhero--software .home-subhero__soft-code i,
    .home-subhero--software .home-subhero__soft-glow,
    .home-subhero--software .home-subhero__soft-arrow,
    .home-subhero--software .home-subhero__soft-orbit,
    .home-subhero--demand .home-subhero__dmd,
    .home-subhero--demand .home-subhero__dmd-bars i,
    .home-subhero--demand .home-subhero__dmd-badge,
    .home-subhero--demand .home-subhero__dmd-pulse,
    .home-subhero--demand .home-subhero__dmd-link::before,
    .home-subhero--demand .home-subhero__dmd-spark,
    .home-subhero--demand .home-subhero__dmd-row--mid i,
    .home-subhero--installer .home-subhero__inst,
    .home-subhero--installer .home-subhero__inst-tiles i,
    .home-subhero--installer .home-subhero__inst-beam,
    .home-subhero--installer .home-subhero__inst-level::after,
    .home-subhero--installer .home-subhero__inst-bolt,
    .home-subhero--installer .home-subhero__inst-hex,
    .home-subhero--installer .home-subhero__inst-bar i,
    .home-subhero--installer .home-subhero__inst-dots i,
    .home-subhero--installer .home-subhero__inst-courier,
    .home-subhero--enhanced .home-subhero__eyebrow,
    .home-subhero--enhanced h1,
    .home-subhero--enhanced .home-subhero__lead,
    .home-subhero--enhanced .home-subhero__chips,
    .home-subhero--enhanced .home-subhero__meta {
        animation: none !important;
    }
    .home-gallery__main img,
    .home-tabs__panel.is-active,
    .home-scene-card {
        transition: none !important;
        animation: none !important;
    }
}

/* 距离排序：当前位置 */
body.near-modal-open { overflow: hidden; }
.near-modal[hidden] { display: none !important; }
.near-modal {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.near-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 16, 20, .5);
    backdrop-filter: blur(3px);
}
.near-modal__panel {
    position: relative;
    width: min(420px, 100%);
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 48px rgba(0, 0, 0, .22);
    overflow: hidden;
}
.near-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px 8px;
}
.near-modal__head h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #1a2228;
}
.near-modal__close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: var(--radius-sm);
    background: #f3f5f6;
    color: #5a6570;
    cursor: pointer;
}
.near-modal__close:hover { background: #e8ecef; }
.near-modal__tip {
    margin: 0 18px 12px;
    font-size: 13px;
    line-height: 1.5;
    color: #6b7680;
}
.near-modal__body {
    padding: 0 18px 8px;
}
.near-modal__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
    max-height: 160px;
    overflow: auto;
}
.near-chip {
    padding: 7px 12px;
    border: 1px solid #e2e8ec;
    border-radius: var(--radius-sm);
    background: #f7f9fa;
    font-size: 13px;
    color: #3a4650;
    cursor: pointer;
    font-family: inherit;
    transition: border-color var(--transition), color var(--transition), background var(--transition);
}
.near-chip:hover {
    border-color: var(--brand, #0e7c6b);
    color: var(--brand, #0e7c6b);
}
.near-chip.is-selected {
    border-color: var(--brand, #0e7c6b);
    background: rgba(14, 124, 107, .1);
    color: var(--brand, #0e7c6b);
    font-weight: 600;
}
.near-modal__custom {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    font-size: 12px;
    color: #6b7680;
}
.near-modal__custom input {
    height: 40px;
    padding: 0 12px;
    border: 1px solid #e2e8ec;
    border-radius: var(--radius-sm);
    font-size: 14px;
    color: #1a2228;
    outline: none;
    font-family: inherit;
}
.near-modal__custom input:focus {
    border-color: var(--brand, #0e7c6b);
}
.near-modal__custom input.is-invalid {
    border-color: #d64545;
    background: #fff7f7;
}
.near-modal__foot {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px 18px;
}
@media (max-width: 480px) {
    .near-modal { padding: 12px; align-items: flex-end; }
    .near-modal__panel { width: 100%; border-radius: var(--radius-lg) 14px 0 0; }
}

/* ---- 新闻资讯 ---- */
.home-news-list {
    max-width: var(--content);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.home-news-card {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 22px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.home-news-card:hover {
    border-color: rgba(14, 124, 107, .35);
    box-shadow: 0 10px 28px rgba(16, 40, 36, .06);
}
.home-news-card__cover {
    display: block;
    min-height: 150px;
    background: linear-gradient(145deg, #e8f3f0, #f4f7f6);
}
.home-news-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 150px;
}
.home-news-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 150px;
    color: var(--brand);
    font-size: 36px;
    opacity: .45;
}
.home-news-card__body {
    padding: 20px 22px 20px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.home-news-card__meta {
    display: flex;
    gap: 14px;
    font-size: 13px;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.home-news-card h2 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
}
.home-news-card h2 a {
    color: var(--dark);
    text-decoration: none;
}
.home-news-card h2 a:hover { color: var(--brand); }
.home-news-card p {
    margin: 0 0 14px;
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1.7;
}
/* 资讯详情：阅读页 */
.home-news-detail {
    max-width: var(--content-narrow);
    margin-left: auto;
    margin-right: auto;
}
.home-news-article {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 36px 40px 32px;
    margin-bottom: 20px;
}
.home-news-article__head {
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--border);
}
.home-news-article__cat {
    display: inline-flex;
    align-items: center;
    margin-bottom: 12px;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    color: var(--brand);
    background: var(--brand-light);
    border-radius: var(--radius-pill);
    text-decoration: none;
    letter-spacing: .02em;
}
.home-news-article__cat:hover {
    color: #fff;
    background: var(--brand);
}
.home-news-article__head h1 {
    margin: 0 0 10px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text);
    letter-spacing: -.01em;
}
.home-news-article__subtitle {
    margin: 0 0 16px;
    font-size: 16px;
    color: var(--text-muted);
    line-height: 1.6;
}
.home-news-article__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    font-size: 13px;
    color: var(--text-muted);
}
.home-news-article__meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.home-news-article__meta .fa {
    color: var(--brand);
    opacity: .85;
}
.home-news-article__cover {
    margin: 0 0 28px;
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--bg);
}
.home-news-article__cover img {
    width: 100%;
    display: block;
    max-height: 440px;
    object-fit: cover;
}
.home-news-article__summary {
    margin: 0 0 28px;
    padding: 16px 18px;
    font-size: 15px;
    line-height: 1.75;
    color: var(--text-muted);
    background: var(--brand-light);
    border-left: 3px solid var(--brand);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.home-news-article__content {
    font-size: 16px;
    line-height: 1.9;
    color: var(--text);
    overflow-wrap: anywhere;
}
.home-news-article__content > *:first-child { margin-top: 0; }
.home-news-article__content > *:last-child { margin-bottom: 0; }
.home-news-article__content p { margin: 0 0 1.15em; }
.home-news-article__content h2,
.home-news-article__content h3,
.home-news-article__content h4 {
    margin: 1.6em 0 .7em;
    font-weight: 700;
    color: var(--text);
    line-height: 1.4;
}
.home-news-article__content h2 { font-size: 22px; }
.home-news-article__content h3 { font-size: 18px; }
.home-news-article__content h4 { font-size: 16px; }
.home-news-article__content img {
    max-width: 100%;
    height: auto;
    margin: 1.2em 0;
    border-radius: var(--radius-sm);
}
.home-news-article__content a {
    color: var(--brand);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.home-news-article__content a:hover { color: var(--brand-dark); }
.home-news-article__content ul,
.home-news-article__content ol {
    margin: 0 0 1.15em;
    padding-left: 1.4em;
}
.home-news-article__content li { margin-bottom: .45em; }
.home-news-article__content blockquote {
    margin: 0 0 1.15em;
    padding: 12px 18px;
    border-left: 3px solid var(--brand);
    background: var(--bg);
    color: var(--text-muted);
}
.home-news-article__content table {
    width: 100%;
    margin: 0 0 1.15em;
    border-collapse: collapse;
    font-size: 14px;
}
.home-news-article__content th,
.home-news-article__content td {
    border: 1px solid var(--border);
    padding: 10px 12px;
    text-align: left;
}
.home-news-article__content th {
    background: var(--bg);
    font-weight: 600;
}
.home-news-article__content pre,
.home-news-article__content code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .92em;
}
.home-news-article__content pre {
    margin: 0 0 1.15em;
    padding: 14px 16px;
    overflow-x: auto;
    background: var(--bg);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}
.home-news-article__content code {
    padding: .1em .35em;
    background: var(--bg);
    border-radius: 3px;
}
.home-news-article__content pre code {
    padding: 0;
    background: none;
}
.home-news-article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 28px 0 0;
    padding-top: 22px;
    border-top: 1px solid var(--border);
}
.home-news-article__tags span {
    display: inline-flex;
    padding: 4px 12px;
    font-size: 12px;
    color: var(--text-muted);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
}
.home-news-article__foot {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
}
.home-news-article__nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 28px;
}
.home-news-article__nav-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 88px;
    padding: 16px 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.home-news-article__nav-item:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow);
}
.home-news-article__nav-item.is-next { text-align: right; align-items: flex-end; }
.home-news-article__nav-item.is-empty {
    visibility: hidden;
    pointer-events: none;
    border: none;
    background: transparent;
    min-height: 0;
}
.home-news-article__nav-label {
    font-size: 12px;
    color: var(--text-muted);
}
.home-news-article__nav-item strong {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-news-related {
    margin-bottom: 8px;
}
.home-news-related__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.home-news-related__head h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
}
.home-news-related__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.home-news-related__card {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 14px;
    align-items: center;
    padding: 12px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.home-news-related__card:hover {
    border-color: rgba(0, 160, 233, .45);
    box-shadow: var(--shadow);
}
.home-news-related__thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 72px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: linear-gradient(145deg, var(--brand-light), var(--bg));
    color: var(--brand);
    font-size: 22px;
    opacity: .9;
}
.home-news-related__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-news-related__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.home-news-related__body strong {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.home-news-related__card:hover .home-news-related__body strong { color: var(--brand); }
.home-news-related__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
    color: var(--text-muted);
}
@media (max-width: 768px) {
    .home-news-card {
        grid-template-columns: 1fr;
    }
    .home-news-card__body { padding: 0 18px 18px; }
    .home-news-article {
        padding: 22px 18px 20px;
    }
    .home-news-article__head h1 { font-size: 22px; }
    .home-news-article__nav { grid-template-columns: 1fr; }
    .home-news-article__nav-item.is-next {
        text-align: left;
        align-items: flex-start;
    }
    .home-news-article__nav-item.is-empty { display: none; }
    .home-news-related__grid { grid-template-columns: 1fr; }
}

.home-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}
.home-section__head h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
}

/* 新发现分类 */
.home-news-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 auto 28px;
    max-width: var(--content);
}
.home-news-cats__item {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    text-decoration: none;
    transition: color var(--transition), border-color var(--transition), background var(--transition);
}
.home-news-cats__item:hover {
    color: var(--brand);
    border-color: rgba(14,124,107,.35);
}
.home-news-cats__item.is-active {
    color: #fff;
    background: var(--brand);
    border-color: var(--brand);
}
.home-news-card__cat {
    color: var(--brand);
    font-weight: 600;
    text-decoration: none;
}
.home-news-card__cat:hover { text-decoration: underline; }


/* ---- 闪讯 / 工具类（统一门户色板） ---- */
.home-flash {
    position: fixed;
    top: 72px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1200;
    width: min(520px, 92vw);
    display: grid;
    gap: 8px;
}
.home-flash__item {
    padding: 12px 16px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    line-height: 1.5;
    box-shadow: var(--shadow-lg);
    background: var(--white);
    border: 1px solid var(--border);
}
.home-flash__item--success {
    border-color: rgba(14, 124, 107, .35);
    background: var(--brand-light);
    color: var(--brand-dark);
}
.home-flash__item--error {
    border-color: rgba(200, 60, 40, .35);
    background: #fdf2f0;
    color: var(--danger);
}
.home-flash__item--warning {
    border-color: rgba(201, 133, 42, .4);
    background: var(--accent-light);
    color: var(--accent-dark);
}
.home-flash__item--info {
    border-color: rgba(14, 124, 107, .25);
    background: #eef6f4;
    color: var(--text);
}
.home-buybox__merchant .verified,
.home-buybox__social .verified { color: var(--success); }
.home-buybox__contact {
    margin-top: 12px;
    padding: 12px 14px;
    background: var(--bg);
    border-radius: var(--radius-sm);
    font-size: 13px;
    line-height: 1.65;
    color: var(--text-muted);
}
.home-buybox__contact--modal {
    margin-top: 0;
}
.home-buybox__contact a {
    color: var(--brand);
    font-weight: 600;
    text-decoration: none;
}
.home-buybox__contact a:hover { text-decoration: underline; }
.home-buybox__tip { margin-top: 6px; opacity: .85; font-size: 12px; }
.home-buybox__tip--ok { margin-top: 6px; color: var(--success); opacity: 1; }

body.contact-modal-open { overflow: hidden; }
.contact-modal[hidden] { display: none !important; }
.contact-modal {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.contact-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 16, 20, .55);
    backdrop-filter: blur(4px);
}
.contact-modal__panel {
    position: relative;
    width: min(420px, 100%);
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: 0 24px 64px rgba(0,0,0,.28);
    overflow: hidden;
}
.contact-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px 12px;
    border-bottom: 1px solid #eef1f3;
}
.contact-modal__head h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #1a2228;
}
.contact-modal__close {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--radius-sm);
    background: #f3f5f6;
    color: #5a6570;
    cursor: pointer;
    flex-shrink: 0;
}
.contact-modal__close i {
    pointer-events: none;
    font-size: 16px;
    line-height: 1;
}
.contact-modal__close:hover { background: #e8ecef; }
.contact-modal__body {
    padding: 16px 18px 20px;
}
.contact-modal__loading,
.contact-modal__empty {
    padding: 28px 8px;
    text-align: center;
    color: var(--text-muted);
    font-size: 14px;
}
.contact-modal__actions {
    margin-top: 14px;
}
.contact-modal__actions .home-btn {
    width: 100%;
    justify-content: center;
}
.contact-modal__actions--row {
    display: flex;
    gap: 10px;
}
.contact-modal__actions--row .home-btn {
    flex: 1;
    width: auto;
    min-height: 44px;
    box-sizing: border-box;
}
@media (max-width: 480px) {
    .contact-modal {
        padding: 12px;
        align-items: flex-end;
    }
    .contact-modal__panel {
        width: 100%;
        border-radius: var(--radius-lg) 14px 0 0;
    }
    .contact-modal__actions--row {
        flex-direction: column-reverse;
    }
}
.contact-modal__hint {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-muted);
}
.contact-modal__form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.contact-modal__label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}
.contact-modal__input,
.contact-modal__textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--text);
    background: var(--white);
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.contact-modal__input:focus,
.contact-modal__textarea:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(14, 124, 107, .12);
}
.contact-modal__textarea {
    resize: vertical;
    min-height: 96px;
}
.contact-modal__error {
    margin-top: 4px;
    font-size: 13px;
    color: var(--danger);
}
.home-catalog--demand {
    grid-template-columns: 1fr;
    gap: 20px;
}
.home-page a.text-brand { color: var(--brand); }
.home-muted-note {
    margin-top: 20px;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.6;
}
.home-mt-lg { margin-top: 28px; }
.home-mt-xl { margin-top: 40px; }
.home-mt-sm { margin-top: 14px; }
.home-section__head-left.home-mt-lg { margin-top: 28px; margin-bottom: 24px; }
.home-prose .home-mt-sm { margin-top: 16px; }


.home-pager { display: flex; justify-content: center; margin-top: 32px; }
.home-pager ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.home-pager li { display: inline-flex; }
.home-pager a,
.home-pager span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 13px;
    background: var(--white);
    color: var(--text);
}
.home-pager a:hover { border-color: var(--brand); color: var(--brand); }
.home-pager .active a,
.home-pager .active span {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}
.home-pager .disabled span { opacity: .4; cursor: default; }

/* ---- 商家店铺（对齐 mall-detail / 亮蓝主色） ---- */
.shop-detail { padding-bottom: 0; }
.shop-profile--mall { margin: 0; }
.shop-profile__card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px 24px;
    margin-bottom: 16px;
    box-shadow: 0 1px 2px rgba(15, 32, 40, .04);
}
.shop-profile__identity {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.shop-profile__avatar {
    width: 84px;
    height: 84px;
    border-radius: var(--radius);
    background: linear-gradient(145deg, var(--brand-light), #d6effa);
    color: var(--brand-dark);
    border: 1px solid rgba(0, 160, 233, .18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 700;
    flex-shrink: 0;
}
.shop-profile__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}
.shop-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: var(--radius-xs);
    font-size: 12px;
    font-weight: 600;
    background: #f3f5f7;
    color: var(--text);
    border: 0;
}
.shop-chip--ok {
    background: rgba(0, 160, 233, .1);
    color: var(--brand-dark);
}
.shop-chip--vip {
    background: rgba(255, 138, 0, .12);
    color: #c46a00;
}
.shop-profile__who h1 {
    margin: 0 0 6px;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.25;
    font-family: var(--font-display);
    color: var(--text);
}
.shop-profile__company {
    margin: 0 0 6px;
    font-size: 14px;
    color: var(--text-muted);
}
.shop-profile__loc {
    margin: 0;
    font-size: 14px;
    color: var(--text-muted);
}
.shop-profile__loc i { color: var(--brand); margin-right: 4px; }
.shop-profile__since {
    margin-left: 10px;
    opacity: .85;
    font-size: 13px;
}
.shop-profile__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.shop-profile__body {
    margin-top: 0;
    padding: 0;
}
.shop-report__hint {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.55;
    color: #64748b;
}
.shop-report-form__field {
    display: block;
    margin-bottom: 12px;
}
.shop-report-form__field > span {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}
.shop-report-form__field em {
    color: #ef4444;
    font-style: normal;
}
.shop-report-form__sub {
    margin-left: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #94a3b8;
}
.shop-report-form__field textarea,
.shop-report-form__field input[type="tel"],
.shop-report-form__field input[type="text"] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.45;
    color: #0f172a;
    background: #fff;
    resize: vertical;
}
.shop-report-form__field textarea:focus,
.shop-report-form__field input[type="tel"]:focus,
.shop-report-form__field input[type="text"]:focus {
    outline: none;
    border-color: var(--brand, #009dda);
    box-shadow: 0 0 0 3px rgba(0, 157, 218, .12);
}
.shop-report-shots {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.shop-report-shots__add,
.shop-report-shots__item {
    position: relative;
    width: 76px;
    height: 76px;
    border-radius: 10px;
    overflow: hidden;
    box-sizing: border-box;
}
.shop-report-shots__add {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px dashed #cbd5e1;
    background: #f8fafc;
    color: #64748b;
    cursor: pointer;
    font-size: 11px;
    line-height: 1.2;
    text-align: center;
    padding: 6px;
}
.shop-report-shots__add:hover {
    border-color: var(--brand, #009dda);
    color: var(--brand, #009dda);
    background: #f0f9ff;
}
.shop-report-shots__add i {
    font-size: 18px;
}
.shop-report-shots__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #e2e8f0;
}
.shop-report-shots__remove {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 50%;
    background: rgba(15, 23, 42, .72);
    color: #fff;
    font-size: 14px;
    line-height: 18px;
    cursor: pointer;
    padding: 0;
}
.shop-report-shots__remove:hover {
    background: #dc2626;
}
.shop-report-shots__meta {
    margin: 8px 0 0;
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.4;
}
.shop-report__tip {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 1.4;
}
.shop-report__tip.is-ok { color: #059669; }
.shop-report__tip.is-err { color: #dc2626; }
.shop-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
    margin-bottom: 16px;
}
.shop-stat {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 12px;
    text-align: center;
    box-shadow: 0 1px 2px rgba(15, 32, 40, .03);
}
.shop-stat strong {
    display: block;
    font-size: 22px;
    font-weight: 700;
    color: var(--brand-dark);
    line-height: 1.2;
    margin-bottom: 4px;
}
.shop-stat span {
    font-size: 12px;
    color: var(--text-muted);
}
.shop-panels {
    display: grid;
    gap: 12px;
}
.shop-panel {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 20px;
    box-shadow: 0 1px 2px rgba(15, 32, 40, .03);
}
.shop-panel h2 {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.shop-panel__hint {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--text-muted);
}
.shop-intro {
    font-size: 14px;
    line-height: 1.75;
    color: var(--text);
    word-break: break-word;
}
.shop-intro p {
    margin: 0 0 0.75em;
}
.shop-intro p:last-child {
    margin-bottom: 0;
}
.shop-intro ul,
.shop-intro ol {
    margin: 0 0 0.75em;
    padding-left: 1.4em;
}
.shop-intro img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-xs);
    margin: 0.4em 0;
}
.shop-intro a {
    color: var(--brand);
}
.shop-areas {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
}
.shop-areas span {
    font-size: 12px;
    padding: 3px 8px;
    border-radius: var(--radius-xs);
    background: var(--brand-light);
    color: var(--brand-dark);
}

.shop-catalog {
    max-width: var(--content);
    margin: 0 auto;
    padding: 16px var(--pad-x) 48px;
}
.shop-catalog__tabs {
    display: flex;
    gap: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 20px;
    background: var(--white);
}
.shop-catalog__tab {
    position: relative;
    flex: 1;
    text-align: center;
    padding: 12px 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-muted);
    border-right: 1px solid var(--border);
    background: var(--white);
}
.shop-catalog__tab:last-child { border-right: 0; }
.shop-catalog__tab em {
    font-style: normal;
    font-weight: 500;
    font-size: 13px;
    margin-left: 4px;
    opacity: .7;
}
.shop-catalog__tab:hover { color: var(--brand); }
.shop-catalog__tab.is-active {
    color: var(--brand);
    background: var(--brand-light);
}
.shop-catalog__hint {
    margin: 0 0 16px;
    font-size: 13px;
    color: var(--text-muted);
}

.shop-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.shop-list__card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 1px 2px rgba(15, 32, 40, .04);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.shop-list__card:hover {
    border-color: rgba(0, 160, 233, .4);
    box-shadow: 0 8px 24px rgba(0, 120, 180, .08);
    transform: translateY(-1px);
}
.shop-list__avatar {
    width: 64px;
    height: 64px;
    border-radius: var(--radius);
    background: linear-gradient(145deg, var(--brand-light), #d6effa);
    color: var(--brand-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 700;
    flex-shrink: 0;
}
.shop-list__body { min-width: 0; flex: 1; }
.shop-list__top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}
.shop-list__top h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--dark);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
.shop-list__badge {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-xs);
    background: rgba(255, 138, 0, .12);
    color: #c46a00;
}
.shop-list__badge--ok {
    background: rgba(0, 160, 233, .1);
    color: var(--brand-dark);
}
.shop-list__company {
    margin: 0 0 6px;
    font-size: 12px;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.shop-list__intro {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.55;
    color: #4b5563;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.shop-list__meta {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--text-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.shop-list__meta i { color: var(--brand); margin-right: 2px; }
.shop-list__cta {
    font-size: 13px;
    font-weight: 600;
    color: var(--brand);
}
.shop-list__cta i { margin-left: 2px; }
.shop-list__card:hover .shop-list__cta { color: var(--brand-dark); }

@media (max-width: 900px) {
    .shop-stats { grid-template-columns: repeat(2, 1fr); }
    .shop-list { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .shop-profile__card {
        padding: 16px;
        align-items: flex-start;
    }
    .shop-profile__who h1 { font-size: 22px; }
    .shop-profile__avatar { width: 64px; height: 64px; font-size: 24px; }
    .shop-profile__identity { align-items: flex-start; }
    .shop-profile__actions { width: 100%; }
    .shop-profile__actions .home-btn {
        flex: 1;
        text-align: center;
        justify-content: center;
        min-height: 44px;
    }
    .shop-catalog__tab { padding: 12px 10px; font-size: 13px; min-height: 44px; }
    .shop-stats { gap: 10px; }
    .home-installer-grid { gap: 12px; }
}

/* ==== 配件详情 · 技术规格书 ==== */
.part-sheet {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x) 72px;
}
.part-sheet--mall {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px !important;
    box-shadow: 0 1px 2px rgba(15, 32, 40, .04);
}
.part-sheet__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}
.part-sheet__crumb { margin: 0; color: var(--text-muted); }
.part-sheet__crumb a { color: var(--text-muted); }
.part-sheet__crumb a:hover { color: var(--brand); }
.part-sheet__crumb.home-breadcrumb,
.part-sheet .home-breadcrumb {
    color: var(--text-muted);
    margin-bottom: 16px;
}
.part-sheet .home-breadcrumb a { color: var(--text-muted); }
.part-sheet .home-breadcrumb a:hover { color: var(--brand); }
.part-sheet .home-breadcrumb span { color: var(--border-muted); }

.mat-folio__crumb.home-breadcrumb,
.mat-folio .home-breadcrumb {
    color: var(--text-muted);
}
.mat-folio .home-breadcrumb a { color: var(--text-muted); }
.mat-folio .home-breadcrumb a:hover { color: var(--brand); }
.mat-folio .home-breadcrumb span { color: var(--border-muted); }

/* 需求详情工具类 */
.home-demand-progress-title {
    margin: 28px 0 12px;
    font-size: 15px;
}
.home-demand-bids {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 8px;
}
.home-demand-bids--empty {
    background: var(--bg);
    border-radius: var(--radius-sm);
    padding: 18px 16px;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.6;
}
.home-demand-bids--empty p { margin: 0 0 10px; }
.home-demand-bid {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    background: var(--white);
}
.home-demand-bid--top {
    border-color: var(--brand);
    background: var(--brand-light);
}
.home-demand-bid--selected {
    border-color: #b45309;
}
.home-demand-bid__head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.home-demand-bid__rank {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--brand);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.home-demand-bid__meta {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.home-demand-bid__meta strong {
    font-size: 14px;
    color: var(--text);
}
.home-demand-bid__merchant {
    font-size: 12px;
    color: var(--text-muted);
    text-decoration: none;
}
a.home-demand-bid__merchant:hover { color: var(--brand); }
.home-demand-bid__price {
    font-size: 18px;
    font-weight: 700;
    color: var(--danger);
    white-space: nowrap;
}
.home-demand-bid__price--sealed {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.02em;
}
.home-demand-sealed-hint {
    margin: 0 0 12px;
    padding: 10px 12px;
    font-size: 13px;
    color: #64748b;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: var(--radius-sm);
}
.home-demand-sealed-hint .fa {
    margin-right: 6px;
    color: #94a3b8;
}
.home-demand-bid__tag--mine {
    background: #e0f2fe;
    color: #0369a1;
}
.home-demand-bid__break {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.home-demand-bid__tag {
    display: inline-block;
    padding: 1px 8px;
    border-radius: var(--radius-xs);
    background: #fef3c7;
    color: #b45309;
    font-size: 11px;
    font-weight: 600;
}
.home-demand-bid__desc {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--text);
    line-height: 1.5;
}
.home-demand-bid__actions {
    margin-top: 12px;
}
.home-btn--sm {
    padding: 7px 14px;
    font-size: 13px;
}
.home-demand-bids__owner {
    margin: 10px 0 0;
    font-size: 13px;
}
.home-demand-bids__owner a {
    color: var(--brand);
    text-decoration: none;
    font-weight: 600;
}
.home-demand-bids__owner a:hover { color: var(--brand-dark); }
.home-demand-side__stat--last {
    border-bottom: none;
}
.home-demand-side__note {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.6;
}
.home-demand-quote {
    margin-top: 8px;
    padding: 18px 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg);
}
.home-demand-quote--owner {
    background: #fff;
}
.home-demand-quote .home-demand-progress-title {
    margin-top: 0;
}
.home-demand-quote__hint {
    margin: 0 0 14px;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.6;
}
.home-demand-quote__hint .fa {
    color: var(--brand);
    margin-right: 4px;
}
.home-demand-quote__guest {
    padding: 8px 0 2px;
}
.home-demand-quote__guest p {
    margin: 0 0 12px;
    font-size: 14px;
    color: var(--text);
}
.home-demand-quote__guest-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.home-demand-quote__form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.home-demand-quote__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.home-demand-quote__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}
.home-demand-quote__field span {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}
.home-demand-quote__field input,
.home-demand-quote__field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    font-size: 14px;
    color: var(--text);
    background: #fff;
    font-family: inherit;
    outline: none;
    transition: border-color .15s ease;
}
.home-demand-quote__field input:focus,
.home-demand-quote__field textarea:focus {
    border-color: var(--brand);
}
.home-demand-quote__field textarea {
    resize: vertical;
    min-height: 84px;
    line-height: 1.5;
}
.home-demand-quote__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
}
.home-demand-quote__note {
    font-size: 12px;
    color: var(--text-muted);
}
@media (max-width: 768px) {
    .home-demand-quote__row {
        grid-template-columns: 1fr;
    }
}
.part-sheet__back {
    font-size: 13px;
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
    white-space: nowrap;
}
.part-sheet__back:hover { color: var(--brand-dark); }
.part-sheet__hero {
    display: grid;
    grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
    gap: 28px;
    align-items: stretch;
    margin-bottom: 36px;
}
.part-sheet__visual {
    background: linear-gradient(165deg, #1e262e 0%, #2a343e 55%, #163029 100%);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    aspect-ratio: 1;
    min-height: 0;
    width: 100%;
    max-width: 340px;
    box-shadow: var(--shadow-lg);
}
.part-sheet__visual-mark {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.part-sheet__visual-mark .fa {
    font-size: 88px;
    color: rgba(61, 214, 184, .85);
    filter: drop-shadow(0 8px 24px rgba(14, 124, 107, .35));
}
.part-sheet__visual-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.part-sheet__sku {
    font-size: 11px;
    letter-spacing: .06em;
    color: rgba(255,255,255,.55);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.part-sheet__pill {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: var(--radius-xs);
    background: rgba(255,255,255,.12);
    color: #fff;
}
.part-sheet__pill--stock {
    background: rgba(14, 124, 107, .85);
}
.part-sheet__summary {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 28px 28px 24px;
    box-shadow: var(--shadow);
}
.part-sheet__cat {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brand);
}
.part-sheet__summary h1 {
    margin: 0 0 12px;
    font-size: 28px;
    line-height: 1.25;
    letter-spacing: -.02em;
}
.part-sheet__lead {
    margin: 0 0 22px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--text-muted);
}
.part-sheet__price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px dashed var(--border);
    border-bottom: 1px dashed var(--border);
    margin-bottom: 20px;
}
.part-sheet__price-label {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.part-sheet__price {
    font-size: 32px;
    font-weight: 750;
    color: var(--danger);
    line-height: 1;
}
.part-sheet__price small {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 4px;
}
.part-sheet__supplier {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    font-size: 13px;
    color: var(--text-muted);
    text-align: right;
}
.part-sheet__supplier .verified { color: var(--success); font-size: 12px; }
.part-sheet__supplier strong { color: var(--text); font-size: 14px; }
.part-sheet__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}
.part-sheet__actions--secondary {
    margin-top: -2px;
    margin-bottom: 12px;
}
.part-sheet__moq {
    margin-top: 6px;
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.45;
}
.contact-modal__price-preview {
    margin: -4px 0 14px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 13px;
    line-height: 1.5;
}
.contact-modal__price-preview strong {
    color: #0f172a;
}
.part-sheet__note {
    margin: 0;
    font-size: 12px;
    color: var(--text-muted);
}
.part-sheet__scenes {
    margin-bottom: 36px;
    padding: 22px 24px;
    background: var(--bg-warm);
    border-radius: var(--radius);
    border: 1px solid var(--border);
}
.part-sheet__scenes h2 {
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 700;
}
.part-sheet__scenes ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.part-sheet__scenes li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text);
}
.part-sheet__scenes li span {
    flex-shrink: 0;
    font-size: 12px;
    font-weight: 700;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color: var(--brand);
    margin-top: 2px;
}
.part-sheet__datasheet {
    margin-bottom: 36px;
}
.part-sheet__datasheet-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--dark);
}
.part-sheet__datasheet-head h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: .04em;
}
.part-sheet__datasheet-head p {
    margin: 0;
    font-size: 13px;
    color: var(--text-muted);
}
.part-sheet__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--border);
    border-left: 1px solid var(--border);
    background: var(--white);
}
.part-sheet__cell {
    padding: 16px 18px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    min-height: 78px;
}
.part-sheet__cell span {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.part-sheet__cell strong {
    display: block;
    font-size: 14px;
    font-weight: 650;
    color: var(--text);
    line-height: 1.45;
    word-break: break-word;
}
.part-sheet__desc {
    margin-bottom: 48px;
    padding: 24px 26px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.part-sheet__desc h2 {
    margin: 0 0 12px;
    font-size: 16px;
}
.part-sheet__desc > p {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.75;
    color: var(--text-muted);
}
.part-sheet__desc ul {
    margin: 0;
    padding-left: 18px;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.7;
}
.part-sheet__related-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}
.part-sheet__related-head h2 {
    margin: 0;
    font-size: 18px;
}
.part-sheet__related-head a {
    font-size: 13px;
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
}
.part-sheet__related-list {
    display: grid;
    gap: 10px;
}
.part-sheet__related-item {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.part-sheet__related-item:hover {
    border-color: rgba(14, 124, 107, .35);
    box-shadow: var(--shadow);
}
.part-sheet__related-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-xs);
    background: var(--brand-light);
    color: var(--brand);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}
.part-sheet__related-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.part-sheet__related-body strong {
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.part-sheet__related-body em {
    font-style: normal;
    font-size: 12px;
    color: var(--text-muted);
}
.part-sheet__related-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--danger);
    white-space: nowrap;
}

/* ==== 素材详情 · 资源卷宗 ==== */
.mat-folio {
    max-width: var(--content);
    margin: 0 auto;
    padding: 0 var(--pad-x) 80px;
}
.mat-folio--mall {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px !important;
    box-shadow: 0 1px 2px rgba(15, 32, 40, .04);
}
.mat-folio__crumb {
    margin: 0 0 28px;
    color: var(--text-muted);
    font-size: 13px;
}
.mat-folio__crumb a { color: var(--text-muted); }
.mat-folio__crumb a:hover { color: var(--brand); }

.mat-folio__cover {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 32px;
    background: #141a1f;
    box-shadow: var(--shadow-lg);
}
.mat-folio__cover-bg {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, rgba(14,124,107,.35) 0%, transparent 42%),
        linear-gradient(200deg, #1e262e 0%, #141a1f 55%, #0f1c19 100%);
}
.mat-folio__cover-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 28px 28px;
    opacity: .45;
    mask-image: radial-gradient(ellipse 70% 70% at 50% 45%, #000 20%, transparent 75%);
}
.mat-folio__cover-frame {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mat-folio__cover-frame .fa {
    font-size: 72px;
    color: rgba(61, 214, 184, .9);
    filter: drop-shadow(0 10px 28px rgba(14,124,107,.45));
}
.mat-folio__cover-meta {
    position: absolute;
    left: 20px;
    bottom: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    z-index: 1;
}
.mat-folio__cover-meta span {
    padding: 5px 11px;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    background: rgba(0,0,0,.42);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--radius-xs);
    backdrop-filter: blur(8px);
}
.mat-folio__cover-meta span.is-hot {
    background: rgba(201, 133, 42, .92);
    border-color: transparent;
}

.mat-folio__head {
    margin-bottom: 24px;
}
.mat-folio__kicker {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--brand);
}
.mat-folio__head h1 {
    margin: 0 0 12px;
    font-size: 34px;
    line-height: 1.22;
    letter-spacing: -.025em;
    font-weight: 750;
}
.mat-folio__spec {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

.mat-folio__rail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: 18px 20px;
    margin-bottom: 40px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.mat-folio__price span {
    display: block;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.mat-folio__price strong {
    font-size: 28px;
    font-weight: 750;
    color: var(--danger);
    line-height: 1;
}
.mat-folio__price small {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 4px;
}
.mat-folio__rail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.mat-folio__content {
    display: grid;
    gap: 28px;
    margin-bottom: 48px;
}
.mat-folio__block h2 {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--text);
}
.mat-folio__block > p {
    margin: 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--text-muted);
}
.mat-folio__block--muted {
    padding: 18px 20px;
    background: var(--bg);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--brand);
}
.mat-folio__block--muted p { font-size: 13px; line-height: 1.75; }

.mat-folio__facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--white);
}
.mat-folio__facts > div {
    padding: 16px 18px;
    border-right: 1px solid var(--border);
}
.mat-folio__facts > div:last-child { border-right: none; }
.mat-folio__facts dt {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.mat-folio__facts dd {
    margin: 0;
    font-size: 15px;
    font-weight: 650;
    color: var(--text);
}

.mat-folio__tags {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.mat-folio__tags li {
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--brand-dark);
    background: var(--brand-light);
    border-radius: var(--radius-pill);
}

.mat-folio__table {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
}
.mat-folio__table th,
.mat-folio__table td {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
    text-align: left;
    vertical-align: top;
}
.mat-folio__table th {
    width: 28%;
    color: var(--text-muted);
    font-weight: 500;
    padding-right: 16px;
}
.mat-folio__table td {
    color: var(--text);
    font-weight: 600;
}
.mat-folio__table tr:last-child th,
.mat-folio__table tr:last-child td { border-bottom: none; }

.mat-folio__more-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}
.mat-folio__more-head h2 {
    margin: 0;
    font-size: 18px;
}
.mat-folio__more-head a {
    font-size: 13px;
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
}
.mat-folio__more-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
}
.mat-folio__more-list a {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.mat-folio__more-list a:hover {
    border-color: rgba(14,124,107,.35);
    box-shadow: var(--shadow);
}
.mat-folio__more-list a > i {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
    background: var(--brand-light);
    color: var(--brand);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}
.mat-folio__more-list span {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.mat-folio__more-list strong {
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mat-folio__more-list em {
    font-style: normal;
    font-size: 12px;
    color: var(--text-muted);
}
.mat-folio__more-list b {
    font-size: 15px;
    color: var(--danger);
    white-space: nowrap;
}

/* 素材页：微信/支付宝弹窗 */
.mat-pay-modal__panel { width: min(440px, 100%); }
.mat-pay-channels {
    display: grid;
    gap: 10px;
}
.mat-pay-channel {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.mat-pay-channel:hover:not(:disabled) {
    border-color: rgba(14, 124, 107, .35);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
}
.mat-pay-channel:disabled { opacity: .6; cursor: wait; }
.mat-pay-channel > i {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}
.mat-pay-channel--wechat > i {
    background: #e8f8ef;
    color: #07c160;
}
.mat-pay-channel--alipay > i {
    background: #e8f3ff;
    color: #1677ff;
}
.mat-pay-channel span {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.mat-pay-channel strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--text);
}
.mat-pay-channel em {
    font-style: normal;
    font-size: 12px;
    color: var(--text-muted);
}
.mat-pay-facts {
    margin: 0 0 14px;
    display: grid;
    gap: 10px;
    padding: 12px 14px;
    background: #f7f9fa;
    border-radius: var(--radius-sm);
}
.mat-pay-facts > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}
.mat-pay-facts dt {
    margin: 0;
    color: var(--text-muted);
}
.mat-pay-facts dd {
    margin: 0;
    font-weight: 600;
    color: var(--text);
    text-align: right;
    word-break: break-all;
}
.mat-pay-facts code {
    font-size: 12px;
    font-weight: 500;
}
.mat-pay-error {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    background: #fef2f2;
    color: #b91c1c;
    font-size: 13px;
}
.mat-pay-success {
    margin: 0 0 16px;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    background: #ecfdf5;
    color: #047857;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .part-sheet__hero { grid-template-columns: 1fr; }
    .part-sheet__visual { min-height: 220px; }
    .part-sheet__scenes ol { grid-template-columns: 1fr; }
    .part-sheet__grid { grid-template-columns: repeat(2, 1fr); }
    .mat-folio__facts { grid-template-columns: repeat(2, 1fr); }
    .mat-folio__facts > div:nth-child(2n) { border-right: none; }
    .mat-folio__facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 768px) {
    .part-sheet { padding: 0 var(--pad-x-sm) 56px; }
    .part-sheet__summary h1 { font-size: 22px; }
    .part-sheet__grid { grid-template-columns: 1fr; }
    .part-sheet__supplier { align-items: flex-start; text-align: left; }
    .part-sheet__hero { gap: 18px; }
    .mat-folio { padding: 0 var(--pad-x-sm) 56px; }
    .mat-folio__head h1 { font-size: 26px; }
    .mat-folio__cover-frame .fa { font-size: 56px; }
    .mat-folio__rail { align-items: stretch; }
    .mat-folio__rail-actions { width: 100%; }
    .mat-folio__rail-actions .home-btn { flex: 1; justify-content: center; text-align: center; }
    .mat-folio__facts { grid-template-columns: 1fr 1fr; }
}

/* ---- 错误页 / 系统提示 ---- */
.home-error {
    max-width: var(--content-narrow);
    margin: 0 auto;
}
.home-error__card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: 40px 36px;
    text-align: center;
}
.home-error__code {
    font-size: 56px;
    font-weight: 800;
    line-height: 1;
    color: var(--brand);
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.home-error__card h2 {
    margin: 0 0 12px;
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
}
.home-error__msg {
    margin: 0 0 12px;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.7;
}
.home-error__hint {
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--text-muted);
}

.home-msg-page {
    --brand: #0e7c6b;
    --brand-dark: #0a5a4e;
    --brand-light: #e7f5f2;
    --accent: #c9852a;
    --text: #1a1f26;
    --text-muted: #3a4550;
    --border: #e2e8f0;
    --bg: #f2f4f6;
    --white: #fff;
    --success: #0e7c6b;
    --danger: #c83c28;
    --radius: 12px;
    --radius-lg: 16px;
    --shadow: 0 2px 16px rgba(20, 26, 31, .06);
    --pad-x: 24px;
    --content-narrow: 860px;
    --transition: .25s cubic-bezier(.4, 0, .2, 1);
    min-height: 48vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px var(--pad-x);
    background:
        radial-gradient(ellipse 80% 36% at 50% -8%, rgba(14,124,107,.07), transparent 55%),
        var(--bg);
    font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.home-msg {
    width: 100%;
    max-width: var(--content-narrow);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: 40px 36px;
    text-align: center;
}
.home-msg__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #fff;
    background: var(--brand);
}
.home-msg--success .home-msg__icon { background: var(--success); }
.home-msg--danger .home-msg__icon { background: var(--danger); }
.home-msg--warning .home-msg__icon { background: var(--accent); }
.home-msg--info .home-msg__icon { background: var(--brand-dark); }
.home-msg__title {
    margin: 0 0 14px;
    font-size: 20px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.45;
}
.home-msg__hint {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--text-muted);
}
.home-msg__link {
    color: var(--brand);
    text-decoration: none;
    font-weight: 600;
}
.home-msg__link:hover { text-decoration: underline; }
.home-msg-page .home-cta-row { margin-top: 24px; }
.home-msg-page .home-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 42px;
    padding: 0 20px;
    border-radius: var(--radius);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}
.home-msg-page .home-btn--primary {
    background: linear-gradient(135deg, #12a08a, #0e7c6b);
    color: #fff;
    border: 0;
}
.home-msg-page .home-btn--ghost {
    background: #fff;
    color: var(--brand-dark);
    border: 1.5px solid var(--brand);
}
.home-msg-page .home-btn--ghost:hover {
    border-color: var(--brand-dark);
    color: #fff;
    background: var(--brand);
}
