:root {
    --primary: #0f4c81;
    --primary-dark: #0b3a63;
    --page-bg: #fafbff;
    --surface: #fff;
    --text: #1e293b;
    --muted: #64748b;
    --border: #edf0f5;
    --radius: 16px;
    --shadow: 0 6px 24px rgba(40, 48, 73, .045);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--text);
    background: var(--page-bg);
    font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;
}
body.sidebar-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.app-shell { height: 100vh; display: flex; overflow: hidden; background: var(--page-bg); }
.left-sidebar { width: 250px; flex: 0 0 250px; height: 100vh; display: flex; flex-direction: column; background: #fff; border-right: 1px solid var(--border); overflow-y: auto; z-index: 80; }
.sidebar-logo { height: 80px; flex: 0 0 80px; display: flex; align-items: center; padding: 10px 24px; border-bottom: 1px solid #f4f5f8; }
.sidebar-logo img { width: auto; max-width: 100%; height: auto; max-height: 54px; object-fit: contain; object-position: left center; }
.logo-mark { width: 32px; height: 32px; position: relative; display: block; border-radius: 10px; background: linear-gradient(145deg, #2a6ba8, #0f4c81); box-shadow: 0 8px 18px rgba(15, 76, 129,.27); transform: rotate(-5deg); }
.logo-mark i { position: absolute; width: 5px; border-radius: 5px; background: #fff; bottom: 8px; transform: rotate(5deg); }
.logo-mark i:nth-child(1) { left: 8px; height: 9px; opacity: .72; }
.logo-mark i:nth-child(2) { left: 14px; height: 15px; }
.logo-mark i:nth-child(3) { left: 20px; height: 12px; opacity: .86; }
.sidebar-nav { padding: 22px 16px; }
.nav-caption { margin: 0 12px 9px; color: #a1a8b5; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.nav-caption:not(:first-child) { margin-top: 24px; }
.nav-item { height: 44px; display: flex; align-items: center; gap: 13px; margin: 3px 0; padding: 0 14px; border-radius: 10px; color: #5b6474; font-size: 14px; font-weight: 600; transition: .18s ease; }
.nav-item:hover, .nav-item[aria-current="page"] { color: var(--primary); background: #eef4fa; }
.nav-icon { width: 19px; color: #9299a6; font-size: 21px; line-height: 1; text-align: center; }
.nav-dot { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: #8b76ff; box-shadow: 0 0 0 4px #f0edff; }
.nav-dot-1, .nav-dot-5 { background: #ff7e7e; box-shadow: 0 0 0 4px #fff0f0; }
.nav-dot-2, .nav-dot-6 { background: #59b8ff; box-shadow: 0 0 0 4px #eaf6ff; }
.nav-dot-3, .nav-dot-7 { background: #66cf9b; box-shadow: 0 0 0 4px #ebfaf2; }
.nav-dot-4, .nav-dot-8 { background: #ffaf55; box-shadow: 0 0 0 4px #fff5e9; }
.sidebar-note { margin: auto 16px 20px; padding: 16px; display: flex; flex-direction: column; gap: 6px; border-radius: 13px; color: #5d4be4; background: linear-gradient(145deg,#f5f2ff,#eeebff); }
.sidebar-note strong { font-size: 14px; }
.sidebar-note span { color: #8378c0; font-size: 11px; line-height: 1.65; }
.sidebar-note a { margin-top: 4px; font-size: 15px; font-weight: 800; }

.app-main { min-width: 0; flex: 1; height: 100vh; display: flex; flex-direction: column; }
.topbar { height: 80px; flex: 0 0 80px; display: flex; align-items: center; gap: 20px; padding: 0 40px; background: #fff; border-bottom: 1px solid var(--border); z-index: 30; }
.top-search { width: min(520px, 62vw); height: 44px; display: flex; align-items: center; padding-left: 17px; border: 1px solid #e9ecf2; border-radius: 12px; background: #f7f8fb; transition: .2s ease; }
.top-search:focus-within { border-color: #cfc8ff; background: #fff; box-shadow: 0 0 0 3px #f0eeff; }
.search-icon { width: 16px; height: 16px; flex: 0 0 16px; position: relative; display: inline-block; border: 2px solid #8f97a5; border-radius: 50%; }
.search-icon::after { content: ""; width: 6px; height: 2px; position: absolute; right: -5px; bottom: -2px; border-radius: 2px; background: #8f97a5; transform: rotate(45deg); }
.top-search input { min-width: 0; flex: 1; height: 100%; padding: 0 14px; color: var(--text); border: 0; outline: 0; background: transparent; }
.top-search input::placeholder { color: #a5acb8; }
.top-search button { height: 34px; margin-right: 5px; padding: 0 17px; color: #fff; border: 0; border-radius: 9px; background: var(--primary); cursor: pointer; }
.top-search button:hover { background: var(--primary-dark); }
.top-action { margin-left: auto; min-width: 172px; padding: 7px 14px; display: flex; align-items: flex-end; justify-content: center; gap: 8px; color: var(--primary); border: 1px solid #d8e4ef; border-radius: 10px; background: #fff; }
.top-action small { color: #8995a5; font-size: 10px; font-weight: 600; }
.top-action strong { font-size: 14px; font-weight: 800; letter-spacing: .02em; }
.top-action:hover { color: #fff; border-color: var(--primary); background: var(--primary); }
.top-action:hover small { color: rgba(255,255,255,.72); }
.mobile-menu-button { display: none; padding: 7px; border: 0; background: none; }
.mobile-menu-button > span:not(.sr-only) { width: 22px; height: 2px; display: block; margin: 4px 0; border-radius: 2px; background: #344054; }
.sidebar-scrim { display: none; }

.content-scroll { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; }
.content-layout { display: flex; align-items: flex-start; gap: 32px; padding: 20px 40px 42px; }
.primary-content { min-width: 0; flex: 1; }
.right-sidebar { width: 300px; flex: 0 0 300px; display: flex; flex-direction: column; gap: 18px; }

.home-banner { position: relative; display: grid; grid-template-columns: minmax(0,1fr); place-items: center; overflow: hidden; border-radius: 17px; color: #fff; background: linear-gradient(135deg, #344a70, #5a51a4 58%, #7a5eb1); }
.home-banner::before { content: ""; position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 1; background: rgba(11,18,32,.34); }
.home-banner::after { content: none; }
.banner-backdrop { position: absolute; left: 0; top: 0; right: 0; bottom: 0; }
.banner-backdrop img { width: 100%; height: 100%; object-fit: cover; }
.banner-content { min-width: 0; width: min(680px, calc(100% - 40px)); position: relative; z-index: 2; text-align: center; }
.banner-content h1 { margin: 0 0 9px; font-size: clamp(28px, 3vw, 36px); line-height: 1.2; font-weight: 900; letter-spacing: -.04em; text-shadow: 0 3px 18px rgba(0,0,0,.22); }
.banner-content > p { margin: 0; color: rgba(255,255,255,.84); font-size: 15px; }
.banner-search { width: min(560px, 90%); height: 56px; margin: 25px auto 15px; display: flex; align-items: center; padding-left: 20px; border-radius: 14px; background: #fff; box-shadow: 0 14px 38px rgba(20,19,58,.23); }
.banner-search input { min-width: 0; flex: 1; height: 100%; padding: 0 15px; border: 0; outline: 0; color: #30384a; background: transparent; }
.banner-search button { height: 44px; margin-right: 6px; padding: 0 24px; color: #fff; border: 0; border-radius: 10px; background: var(--primary); font-weight: 700; cursor: pointer; }
.hot-searches { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 10px; color: rgba(255,255,255,.86); font-size: 12px; line-height: 1.4; }
.hot-searches span { margin-right: 2px; color: rgba(255,255,255,.62); }
.hot-searches a { padding: 6px 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 6px; background: rgba(255,255,255,.06); transition: background .2s, border-color .2s; }
.hot-searches a:hover, .hot-searches a:focus-visible { color: #fff; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.16); }

.home-section { margin-top: 27px; }
.section-title-row { min-height: 42px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.section-title-row h2 { margin: 0 0 5px; font-size: 20px; line-height: 1.2; letter-spacing: -.02em; }
.section-title-row p { margin: 0; color: #98a0ad; font-size: 12px; }
.section-more { color: #8a92a0; font-size: 12px; white-space: nowrap; }
.section-more span { margin-left: 3px; color: var(--primary); }
.section-more:hover { color: var(--primary); }

.category-card-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 10px; }
/* 卡片高度用 padding-top 占位（75%/62.5%），不用 aspect-ratio：微信 X5 等旧内核不支持，会导致竖图竖向撑开 */
.category-card { position: relative; display: block; overflow: hidden; border-radius: 10px; background: linear-gradient(135deg,#5b6d8e,#8b7abd); }
.category-card::before { content: ""; display: block; padding-top: 62.5%; }
.category-image { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: center/cover no-repeat; transition: transform .36s ease; }
.category-card::after { content: ""; position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: linear-gradient(transparent 34%,rgba(12,17,29,.72)); }
.category-card strong { position: absolute; z-index: 2; left: 10px; right: 8px; bottom: 9px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; text-shadow: 0 1px 6px rgba(0,0,0,.3); }
.category-card:hover .category-image { transform: scale(1.06); }
.category-tone-1 { background: linear-gradient(135deg,#ff9a8b,#ff6a88); }
.category-tone-2 { background: linear-gradient(135deg,#76b8ff,#5674cf); }
.category-tone-3 { background: linear-gradient(135deg,#67c7ad,#437f98); }
.category-tone-4 { background: linear-gradient(135deg,#f5b65b,#d8794d); }
.category-tone-5 { background: linear-gradient(135deg,#846cff,#453d92); }
.category-tone-6 { background: linear-gradient(135deg,#5f85c8,#182d59); }
.category-tone-7 { background: linear-gradient(135deg,#8b929e,#434b57); }
.category-tone-8 { background: linear-gradient(135deg,#ef8cb8,#9a61cf); }

.featured-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.featured-card { min-width: 0; padding: 5px 5px 9px; overflow: hidden; border: 1px solid var(--border); border-radius: 11px; background: #fff; box-shadow: var(--shadow); }
.featured-card > a { position: relative; display: block; overflow: hidden; border-radius: 7px; }
.featured-card > a::before { content: ""; display: block; padding-top: 62.5%; }
.featured-card img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: contain; background: #eef0f4; transition: transform .35s ease; }
.featured-card:hover img { transform: none; }
.featured-card .featured-body { display: flex; flex-direction: column; min-width: 0; padding: 8px 3px 0; }
.featured-card .featured-body > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; }
.featured-card .featured-body > small { margin-top: 4px; color: #8f97a5; font-size: 10px; }

.waterfall-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; align-items: start; }
.wallpaper-card { min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: #fff; box-shadow: var(--shadow); transition: transform .22s ease, box-shadow .22s ease; }
.wallpaper-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(40,48,73,.1); }
.wallpaper-cover { position: relative; display: block; overflow: hidden; }
.wallpaper-cover::before { content: ""; display: block; padding-top: 75%; }
.wallpaper-cover > img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: contain; background: #eceef3; transition: transform .4s ease; }
.wallpaper-card:hover .wallpaper-cover > img { transform: none; }
.media-badge { position: absolute; z-index: 2; left: 8px; top: 8px; max-width: calc(100% - 16px); padding: 4px 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; border-radius: 5px; background: rgba(26,30,42,.62); backdrop-filter: blur(8px); font-size: 9px; font-weight: 700; }
.media-badge:empty { display: none; }
.media-badge[data-price-prefix]:not([data-price-prefix=""])::before { content: attr(data-price-prefix); margin-right: 4px; font-weight: 500; }
.wallpaper-overlay { min-height: 76px; display: flex; flex-direction: column; gap: 9px; padding: 11px 12px 12px; color: var(--text); background: #fff; }
.wallpaper-overlay strong { min-height: 36px; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13px; line-height: 1.45; }
.wallpaper-overlay small { display: flex; justify-content: space-between; gap: 8px; color: #929aa8; font-size: 9px; }
.load-more-wrap { padding: 17px 0 4px; text-align: center; }
.load-more { display: inline-flex; align-items: center; justify-content: center; min-width: 130px; height: 38px; color: #697284; border: 1px solid #e3e6ed; border-radius: 10px; background: #fff; font-size: 12px; }
.load-more:hover { color: var(--primary); border-color: #ccc4ff; }

.side-widget { padding: 19px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.widget-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.widget-title-row h2 { margin: 0; font-size: 15px; }
.widget-title-row a, .widget-title-row button { padding: 0; color: #939aa7; border: 0; background: none; font-size: 11px; cursor: pointer; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: #67d59a; box-shadow: 0 0 0 4px #eafaf1; }
.calendar-date { display: flex; align-items: center; gap: 12px; margin: 17px 0 14px; }
.calendar-date > strong { font-size: 35px; line-height: 1; letter-spacing: -.05em; }
.calendar-date > span { display: flex; flex-direction: column; gap: 2px; }
.calendar-date b { font-size: 12px; }
.calendar-date small { color: #9aa1ad; font-size: 10px; }
.daily-cover { position: relative; display: block; overflow: hidden; border-radius: 11px; background: linear-gradient(135deg,#cad2e4,#7c83a2); }
.daily-cover::before { content: ""; display: block; padding-top: 56.25%; }
.daily-cover img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.daily-cover::after { content: ""; position: absolute; left: 0; right: 0; top: 45%; bottom: 0; background: linear-gradient(transparent,rgba(9,12,20,.7)); }
.daily-cover span { position: absolute; z-index: 1; left: 11px; right: 11px; bottom: 9px; overflow: hidden; color: #fff; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.inspiration-widget > p { margin: 8px 0 14px; color: #9aa1ad; font-size: 11px; }
.inspiration-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.inspiration-pills a { padding: 7px 10px; border-radius: 999px; color: #725ed3; background: #f1eeff; font-size: 10px; }
.inspiration-pills .pill-1, .inspiration-pills .pill-5 { color: #dd6d72; background: #fff0f1; }
.inspiration-pills .pill-2, .inspiration-pills .pill-6 { color: #3886c2; background: #eaf6ff; }
.inspiration-pills .pill-3, .inspiration-pills .pill-7 { color: #3a9b70; background: #eaf9f1; }
.inspiration-pills .pill-4, .inspiration-pills .pill-8 { color: #c77c28; background: #fff5e7; }
.hot-tag-list { margin: 14px 0 0; padding: 0; list-style: none; }
.hot-tag-list li { height: 37px; display: flex; align-items: center; gap: 10px; border-top: 1px solid #f4f5f8; }
.hot-tag-list li:first-child { border-top: 0; }
.tag-rank { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: #8d95a3; background: #f2f3f6; font-size: 9px; font-weight: 700; }
.hot-tag-list li:nth-child(-n+3) .tag-rank { color: #fff; background: var(--primary); }
.hot-tag-list a { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.hot-tag-list small { color: #adb3bd; font-size: 9px; }
.quote-widget { position: relative; overflow: hidden; color: #fff; background: linear-gradient(145deg,#725cf6,#9a78e9); }
.quote-widget > span { position: absolute; right: 15px; top: -14px; color: rgba(255,255,255,.16); font-family: Georgia,serif; font-size: 84px; }
.quote-widget p { position: relative; margin: 0; font-size: 12px; line-height: 1.8; }

.page-shell { width: 100%; }
.page-hero { margin-bottom: 20px; padding: 28px 30px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.eyebrow { margin: 0 0 8px; color: var(--primary); font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.page-hero h1 { margin: 0 0 8px; font-size: 30px; }
.page-hero > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 13px; }
.listing-filters { margin-bottom: 20px; padding: 8px 20px 13px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.filter-row { min-height: 49px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid #f1f3f6; }
.filter-row strong { width: 48px; flex: 0 0 48px; font-size: 12px; }
.filter-row button, .filter-row > a { padding: 6px 11px; color: #697284; border: 0; border-radius: 7px; background: transparent; font-size: 11px; cursor: pointer; text-decoration: none; }
.filter-row button:hover, .filter-row button.active, .filter-row > a:hover, .filter-row > a.active { color: #fff; background: var(--primary); }
.business-filter-options { min-width: 0; flex: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.business-filter-hint { align-self: center; color: #a0a7b3; font-size: 10px; }
.filter-result { margin: 11px 0 0; color: #929aa8; font-size: 10px; text-align: right; }
.filter-result b { color: var(--primary); }
.wallpaper-card[hidden] { display: none; }
.category-chips, .tag-cloud, .detail-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.category-chips { margin-top: 20px; }
.category-chips a, .tag-cloud a, .detail-tags a { padding: 7px 11px; border-radius: 999px; color: #697284; background: #f3f4f7; font-size: 11px; }
.category-chips a:hover, .category-chips a.active, .tag-cloud a:hover, .detail-tags a:hover { color: var(--primary); background: #efecff; }
.pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 28px; }
.pager a, .pager-numbers a, .pager-numbers span { min-width: 36px; height: 36px; display: inline-grid; place-items: center; padding: 0 10px; border: 1px solid var(--border); border-radius: 8px; background: #fff; font-size: 12px; }
.pager a:hover, .pager-numbers .page-num-current { color: #fff; border-color: var(--primary); background: var(--primary); }
.empty-state { padding: 40px 20px; text-align: center; border: 1px dashed #dfe2e9; border-radius: var(--radius); background: #fff; }

.breadcrumb { display: flex; gap: 8px; align-items: center; margin-bottom: 16px; color: #8d95a3; font-size: 11px; overflow-x: auto; white-space: nowrap; }
.detail-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.72fr); gap: 24px; align-items: start; }
.detail-gallery { min-width: 0; }
.gallery-stage { position: relative; overflow: hidden; border-radius: 14px; background: #111827; box-shadow: var(--shadow); }
.gallery-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; touch-action: pan-x pan-y; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track.is-draggable { cursor: grab; }
.gallery-track.is-dragging { cursor: grabbing; user-select: none; }
.gallery-track img { user-select: none; -webkit-user-drag: none; }
/* 相册固定为 3:2，加载或切换不同尺寸图片时不改变框高度。 */
.gallery-slide { min-width: 100%; position: relative; margin: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.gallery-slide::before { content: ""; display: block; padding-top: 66.666667%; }
.gallery-slide img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: fill; object-position: center; }
.gallery-arrow { width: 38px; height: 38px; position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; padding: 0 0 4px; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(17,24,39,.56); backdrop-filter: blur(8px); font-size: 28px; line-height: 1; transform: translateY(-50%); cursor: pointer; transition: .2s ease; }
.gallery-arrow:hover { background: var(--primary); }
.gallery-arrow[hidden], .gallery-thumbs[hidden] { display: none; }
.gallery-prev { left: 13px; }
.gallery-next { right: 13px; }
.gallery-counter { position: absolute; z-index: 3; right: 13px; bottom: 12px; padding: 5px 9px; color: #fff; border-radius: 999px; background: rgba(17,24,39,.64); backdrop-filter: blur(8px); font-size: 10px; }
.gallery-thumbs { display: flex; gap: 8px; margin-top: 10px; padding-bottom: 4px; overflow-x: auto; scrollbar-width: thin; }
.gallery-thumbs button { width: 76px; height: 57px; flex: 0 0 76px; padding: 2px; overflow: hidden; border: 2px solid transparent; border-radius: 9px; background: #fff; cursor: pointer; }
.gallery-thumbs button.active { border-color: var(--primary); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; border-radius: 5px; }
.detail-panel { position: sticky; top: 0; padding: 23px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.detail-panel h1 { margin: 5px 0 13px; font-size: 22px; line-height: 1.3; }
.detail-tags { margin-bottom: 17px; }
.listing-price { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding: 14px 15px; border-radius: 11px; background: #f5f3ff; }
.listing-price strong { color: var(--primary); font-size: 21px; }
.listing-price span { color: #8d83c5; font-size: 10px; }
.detail-meta { margin: 0; border-top: 1px solid var(--border); }
.detail-meta > div { display: grid; grid-template-columns: 78px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.detail-meta dt { color: var(--muted); }
.detail-meta dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.download-button { width: 100%; margin-top: 18px; padding: 13px 18px; display: grid; place-items: center; color: #fff; border-radius: 10px; background: var(--primary); font-size: 13px; font-weight: 800; box-shadow: 0 10px 24px rgba(15, 76, 129,.22); }
.download-button.disabled { color: #949ba7; background: #eceef2; box-shadow: none; }
.phone-reveal { width: 100%; margin-top: 18px; padding: 12px 15px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #fff; border: 0; border-radius: 10px; background: var(--primary); box-shadow: 0 10px 24px rgba(15, 76, 129,.22); cursor: pointer; }
.phone-reveal:hover { background: var(--primary-dark); }
.phone-mask { font-size: 17px; font-weight: 800; letter-spacing: .04em; }
.phone-action { padding: 5px 10px; border-radius: 6px; background: rgba(255,255,255,.16); font-size: 11px; }
.download-note { margin: 10px 0 0; color: #9aa1ad; font-size: 10px; line-height: 1.6; text-align: center; }
.detail-description { margin-top: 26px; padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.detail-description h2 { margin-top: 0; font-size: 19px; }
.rich-content { min-width: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.8; }
.rich-content p { margin: 0 0 1em; }
/* 旧编辑器写入了固定像素尺寸。正文按图片原始比例缩放，不限制高度或裁切。 */
.rich-content img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 12px 0;
    border-radius: 12px;
    background: #eef1f6;
}
.rich-content video, .rich-content iframe, .rich-content table { max-width: 100%; }
.section-block { margin-top: 28px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }
.section-heading h2 { margin: 0; font-size: 20px; }
.section-heading p:not(.eyebrow) { color: var(--muted); }
.related-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.related-grid .wallpaper-card { margin: 0; }
.mobile-contact-bar { display: none; }

.news-list { display: grid; gap: 14px; }
.news-card { min-height: 148px; display: grid; grid-template-columns: 220px minmax(0,1fr); overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.news-image { overflow: hidden; background: #edf0f5; }
.news-image img { width: 100%; height: 100%; min-height: 148px; object-fit: contain; transition: transform .35s ease; }
.news-card:hover .news-image img { transform: none; }
.news-card-body { min-width: 0; padding: 18px 20px; }
.news-card-body > p { margin: 0 0 7px; color: #9ba2ae; font-size: 10px; }
.news-card-body h2 { margin: 0 0 8px; font-size: 16px; line-height: 1.45; }
.news-card-body > div { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: #7f8795; font-size: 11px; line-height: 1.7; }
.news-more { display: inline-block; margin-top: 10px; color: var(--primary); font-size: 10px; font-weight: 700; }
.news-detail { max-width: 860px; }
.news-detail-header { padding: 30px; text-align: center; border: 1px solid var(--border); border-radius: 16px 16px 0 0; background: #fff; }
.news-detail-header h1 { max-width: 720px; margin: 8px auto 13px; font-size: 30px; line-height: 1.35; }
.news-detail-header > div { display: flex; justify-content: center; gap: 18px; color: #969daa; font-size: 10px; }
.news-detail-cover { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: fill; object-position: center; margin: 0 auto; }
.news-detail-content { padding: 30px; border: 1px solid var(--border); border-top: 0; background: #fff; }
.news-consult { margin-top: 18px; padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #fff; border-radius: 14px; background: linear-gradient(135deg,#0f4c81,#9070e9); }
.news-consult strong { font-size: 16px; }
.news-consult p { margin: 5px 0 0; color: rgba(255,255,255,.75); font-size: 11px; }
.news-consult a { padding: 10px 14px; border-radius: 9px; background: #fff; color: var(--primary); font-size: 11px; font-weight: 800; white-space: nowrap; }

.site-footer { margin-top: 38px; padding: 32px 40px 18px; color: #c1ccda; background: linear-gradient(135deg,#0b2f50,#0f4c81 62%,#315f88); font-size: 11px; }
.site-footer p { margin: 0; }
.footer-main { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(210px,1.1fr) minmax(260px,1fr) minmax(220px,.75fr); gap: 42px; align-items: center; }
.footer-brand { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-brand img { width: auto; max-width: 180px; height: auto; max-height: 58px; padding: 6px 9px; border-radius: 9px; background: #fff; object-fit: contain; }
.footer-brand span { color: #b8c9d9; line-height: 1.7; }
.footer-links strong { display: block; margin-bottom: 12px; color: #fff; font-size: 13px; }
.footer-links div { display: flex; flex-wrap: wrap; gap: 9px 18px; }
.footer-links a, .footer-bottom a { color: #c1ccda; transition: color .18s ease; }
.footer-links a:hover, .footer-bottom a:hover { color: #fff; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.footer-contact span { color: #9eb5c9; }
.footer-contact a { margin: 4px 0 6px; color: #fff; font-size: 22px; font-weight: 800; letter-spacing: .02em; }
.footer-contact small { color: #9eb5c9; line-height: 1.6; }
.footer-bottom { max-width: 1180px; margin: 25px auto 0; padding-top: 16px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.13); color: #8fa7bb; }
.footer-bottom div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 16px; }
.footer-bottom > p { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.footer-bottom > p span { float: none !important; white-space: normal !important; }
.back-to-top { width: 38px; height: 38px; position: fixed; z-index: 70; right: 22px; bottom: 22px; opacity: 0; pointer-events: none; color: #fff; border: 0; border-radius: 50%; background: var(--primary); box-shadow: 0 8px 20px rgba(15, 76, 129,.28); transition: .2s ease; cursor: pointer; }
.back-to-top.visible { opacity: 1; pointer-events: auto; }

@media (max-width: 1500px) {
    .content-layout { gap: 24px; padding-inline: 28px; }
    .right-sidebar { width: 280px; flex-basis: 280px; }
    .category-card-grid, .featured-grid { gap: 8px; }
}
@media (max-width: 1260px) {
    .right-sidebar { display: none; }
    .content-layout { padding-inline: 32px; }
}
@media (max-width: 1040px) {
    .left-sidebar { width: 220px; flex-basis: 220px; }
    .topbar { padding-inline: 28px; }
    .content-layout { padding-inline: 24px; }
    .category-card-grid, .featured-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .waterfall-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 780px) {
    .app-shell, .app-main { height: auto; min-height: 100vh; overflow: visible; }
    .left-sidebar { width: 250px; position: fixed; left: 0; top: 0; bottom: 0; transform: translateX(-102%); box-shadow: 18px 0 50px rgba(22,28,44,.18); transition: transform .25s ease; }
    body.sidebar-open .left-sidebar { transform: translateX(0); }
    .sidebar-scrim { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 79; border: 0; background: rgba(18,24,38,.38); }
    body.sidebar-open .sidebar-scrim { display: block; }
    .app-main { width: 100%; }
    .topbar { height: 64px; flex-basis: 64px; position: sticky; top: 0; padding: 0 14px; }
    .mobile-menu-button { display: block; flex: 0 0 auto; }
    .top-search { width: auto; min-width: 0; flex: 1; height: 40px; }
    .top-search button { display: none; }
    .top-action { display: none; }
    .content-scroll { overflow: visible; }
    .content-layout { padding: 12px 12px 30px; }
    .home-banner { border-radius: 14px; }
    .banner-content h1 { font-size: 27px; }
    .banner-search { height: 50px; }
    .banner-search button { height: 40px; padding-inline: 18px; }
    .category-card-grid, .featured-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .waterfall-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .detail-layout { grid-template-columns: 1fr; }
    .detail-panel { position: static; }
    .footer-main { grid-template-columns: 1fr 1fr; gap: 24px; }
    .footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .banner-content { width: calc(100% - 24px); }
    .banner-content h1 { font-size: 23px; }
    .banner-content > p { font-size: 12px; }
    .banner-search { width: 100%; margin-top: 20px; }
    .hot-searches { gap: 8px; }
    .hot-searches a:nth-last-child(-n+2) { display: none; }
    .home-section { margin-top: 24px; }
    .category-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .featured-card strong { font-size: 12px; }
    .waterfall-grid { grid-template-columns: 1fr; gap: 10px; }
    .waterfall-grid .wallpaper-cover { min-height: 118px; display: grid; grid-template-columns: 42% minmax(0,1fr); }
    .waterfall-grid .wallpaper-cover::before { display: none; }
    .waterfall-grid .wallpaper-cover > img { position: relative; width: 100%; height: 100%; min-height: 118px; object-fit: contain; }
    .waterfall-grid .media-badge { max-width: calc(42% - 16px); }
    .waterfall-grid .wallpaper-overlay { min-height: 118px; justify-content: center; padding: 12px; }
    .waterfall-grid .wallpaper-overlay strong { min-height: 0; font-size: 13px; }
    .waterfall-grid .wallpaper-overlay small { align-items: flex-start; flex-direction: column; gap: 4px; font-size: 10px; }
    .page-hero { padding: 22px 18px; }
    .listing-filters { padding-inline: 13px; }
    .filter-row { padding: 8px 0; }
    .filter-row strong { width: 100%; flex-basis: 100%; }
    .page-hero h1 { font-size: 26px; }
    .related-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .gallery-arrow { width: 34px; height: 34px; font-size: 24px; }
    .gallery-thumbs button { width: 66px; height: 50px; flex-basis: 66px; }
    .news-card { grid-template-columns: 120px minmax(0,1fr); min-height: 120px; }
    .news-image img { min-height: 120px; }
    .news-card-body { padding: 13px; }
    .news-card-body h2 { font-size: 13px; }
    .news-card-body > div { display: none; }
    .news-detail-header { padding: 24px 17px; }
    .news-detail-header h1 { font-size: 23px; }
    .news-detail-content { padding: 20px 17px; }
    .news-consult { align-items: flex-start; flex-direction: column; }
    .mobile-contact-bar { position: fixed; z-index: 75; left: 10px; right: 10px; bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px 10px 15px; color: #fff; border-radius: 13px; background: rgba(25,31,46,.94); box-shadow: 0 10px 30px rgba(18,24,38,.28); backdrop-filter: blur(12px); }
    .mobile-contact-bar span { display: flex; flex-direction: column; }
    .mobile-contact-bar small { color: rgba(255,255,255,.62); font-size: 9px; }
    .mobile-contact-bar strong { margin-top: 2px; font-size: 14px; }
    .mobile-contact-bar a { padding: 9px 13px; color: #fff; border-radius: 9px; background: var(--primary); font-size: 11px; font-weight: 800; }
    .site-footer { margin-top: 26px; padding: 28px 20px 88px; }
    .footer-main { grid-template-columns: 1fr; gap: 24px; }
    .footer-contact { grid-column: auto; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
    .footer-bottom div { justify-content: flex-start; }
}

/* ==========================================================================
   新增组件：信任标识 / 预约看房 / 服务流程 / 信息说明 / 首页数据 / 404
   ========================================================================== */

/* ---- 首屏数据条 ---- */
.banner-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 0;
    margin: 22px 0 0;
}
.banner-stats > div { min-width: 0; padding: 4px 10px; text-align: center; }
.banner-stats dt { color: rgba(255,255,255,.76); font-size: 12px; line-height: 1.5; letter-spacing: .04em; }
.banner-stats dd { margin: 5px 0 0; color: #fff; font-size: 12px; line-height: 1.25; font-weight: 600; }
.banner-stats dd b { font-size: 24px; font-weight: 800; margin-right: 5px; }

/* ---- 预约看房 ---- */
.detail-consult {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: start;
    margin-top: 30px;
    padding: 28px;
    border-radius: var(--radius);
    background: linear-gradient(135deg, #f4f8fc 0%, #eef4fa 100%);
    border: 1px solid #dfe9f3;
}
.consult-copy { align-self: center; padding: 0 12px; }
.consult-copy h2 { margin: 0 0 10px; font-size: 20px; font-weight: 800; }
.consult-copy p { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.75; }
.consult-eyebrow { display: block; margin-bottom: 8px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .18em; }
.consult-privacy { display: block; margin-top: 16px; color: #8a98a9; font-size: 11px; }
.consult-form { display: flex; flex-direction: column; gap: 12px; }
.consult-form label { display: flex; flex-direction: column; gap: 5px; }
.consult-form label > span { font-size: 12px; font-weight: 700; color: #475569; }
.consult-form input,
.consult-form textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #dde4ec;
    border-radius: 9px;
    background: #fff;
    font-size: 13.5px;
    color: var(--text);
    transition: border-color .18s ease, box-shadow .18s ease;
}
.consult-form textarea { resize: vertical; min-height: 74px; }
.consult-form input:focus,
.consult-form textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(15, 76, 129, .1);
}
.consult-form button[type="submit"] {
    padding: 13px;
    border: 0;
    border-radius: 9px;
    background: var(--primary);
    color: #fff;
    font-size: 14.5px;
    font-weight: 800;
    cursor: pointer;
    transition: background .18s ease;
}
.consult-form button[type="submit"]:hover { background: var(--primary-dark); }
.consult-tip { margin: 0; color: var(--muted); font-size: 12px; text-align: center; }
.consult-tip a { color: var(--primary); font-weight: 700; }

/* ---- 服务流程 ---- */
.service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
}
.service-card {
    padding: 22px;
    border-radius: var(--radius);
    background: var(--surface);
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    transition: transform .2s ease, box-shadow .2s ease;
}
.service-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(40, 48, 73, .09);
}
.service-card h3 { margin: 0 0 8px; font-size: 15.5px; font-weight: 800; color: var(--primary); }
.service-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.75; }

/* ---- 信息说明（替代原"采集自互联网"免责声明） ---- */
.site-disclaimer { margin-top: 26px; }
.disclaimer-inner {
    padding: 18px 22px;
    border-radius: 12px;
    background: #fbfcfe;
    border: 1px solid var(--border);
    border-left: 3px solid #cbd5e1;
}
.disclaimer-title { margin: 0 0 6px; font-size: 13px; font-weight: 800; color: #475569; }
.disclaimer-inner p:not(.disclaimer-title) {
    margin: 5px 0 0;
    color: #8b95a5;
    font-size: 12.5px;
    line-height: 1.8;
}
.disclaimer-inner a { color: var(--primary); font-weight: 700; }

/* ---- 404 ---- */
.error-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 40px 20px;
    background: var(--page-bg);
}
.error-inner { max-width: 560px; text-align: center; }
.error-code {
    margin: 0;
    font-size: 76px;
    font-weight: 800;
    letter-spacing: -3px;
    color: var(--primary);
    line-height: 1;
}
.error-inner h1 { margin: 14px 0 12px; font-size: 23px; font-weight: 800; }
.error-desc { margin: 0 0 8px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.error-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 24px 0 20px; }
.error-btn {
    padding: 11px 20px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    color: var(--text);
    font-size: 13.5px;
    font-weight: 700;
    transition: .18s ease;
}
.error-btn:hover { border-color: var(--primary); color: var(--primary); }
.error-btn.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.error-btn.primary:hover { background: var(--primary-dark); color: #fff; }
.error-regions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    padding-top: 18px;
    border-top: 1px solid var(--border);
    color: var(--muted);
    font-size: 13px;
}
.error-regions a { color: var(--primary); font-weight: 600; }
.error-regions a:hover { text-decoration: underline; }
.error-contact { margin: 20px 0 0; color: var(--muted); font-size: 13px; }
.error-contact a { color: var(--primary); font-weight: 800; }
.error-jump { margin: 10px 0 0; color: #a1a8b5; font-size: 12px; min-height: 16px; }

/* ---- 响应式 ---- */
@media (max-width: 860px) {
    .detail-consult { grid-template-columns: 1fr; gap: 20px; padding: 22px; }
    .consult-copy { padding: 0; }
}
@media (max-width: 600px) {
    .error-code { font-size: 58px; }
    .error-actions { gap: 8px; }
    .error-btn { padding: 10px 15px; font-size: 12.5px; }
}

/* ---- 预约提交成功态 ---- */
.consult-success {
    padding: 26px 20px;
    border-radius: 12px;
    background: #f2f8f4;
    border: 1px solid #cfe9d9;
    text-align: center;
}
.consult-success strong { display: block; margin-bottom: 6px; color: #15803d; font-size: 15px; font-weight: 800; }
.consult-success p { margin: 0; color: #4b5563; font-size: 13px; line-height: 1.75; }
.consult-success a { color: var(--primary); font-weight: 800; }

/* ---- 表单必填星号 / 验证码 / 错误提示 ---- */
.consult-form label > span i { color: #e05a5a; font-style: normal; font-weight: 700; }
.consult-captcha .captcha-row { display: flex; gap: 10px; align-items: stretch; }
.consult-captcha .captcha-row input { min-width: 0; flex: 1; }
.captcha-row img {
    width: 120px;
    min-width: 120px;
    height: 47px;
    flex: 0 0 120px;
    object-fit: contain;
    border: 1px solid #dde4ec;
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
}
.consult-error {
    margin: 0;
    padding: 9px 12px;
    color: #b42318;
    border: 1px solid #fbd7d3;
    border-radius: 9px;
    background: #fef3f2;
    font-size: 12.5px;
    line-height: 1.6;
}
.consult-error:empty { display: none; }

/* ---- 关于我们 / 联系我们 / 在线留言 ---- */
.about-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.about-article {
    padding: 30px 32px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: var(--shadow);
    font-size: 14px;
    line-height: 1.9;
    color: #334155;
}
.about-article h2 { margin: 26px 0 10px; font-size: 18px; color: var(--text); }
.about-article h2:first-child { margin-top: 0; }
.about-article p { margin: 0 0 14px; }
.about-article ul, .about-article ol { margin: 0 0 14px; padding-left: 20px; }
.about-article li { margin: 6px 0; }
.about-article table { width: 100%; border-collapse: collapse; margin: 8px 0 18px; font-size: 13px; }
.about-article th, .about-article td { padding: 10px 12px; border: 1px solid var(--border); text-align: left; }
.about-article th { background: #f7f9fc; font-weight: 700; }
.about-aside { display: flex; flex-direction: column; gap: 18px; }
.aside-lead { margin: 10px 0 14px; color: var(--muted); font-size: 12.5px; line-height: 1.75; }
.aside-phone { display: block; padding: 13px 15px; border-radius: 11px; background: linear-gradient(135deg, #f4f8fc, #eef4fa); border: 1px solid #dfe9f3; }
.aside-phone small { display: block; color: #7b8ba1; font-size: 11px; }
.aside-phone strong { display: block; margin-top: 3px; color: var(--primary); font-size: 20px; letter-spacing: .01em; }
.aside-list { margin: 14px 0 0; padding: 0; list-style: none; }
.aside-list li { display: flex; gap: 10px; padding: 9px 0; border-top: 1px solid #f4f5f8; font-size: 12px; line-height: 1.6; }
.aside-list li:first-child { border-top: 0; }
.aside-list span { flex: 0 0 62px; color: var(--muted); }
.aside-list b { font-weight: 600; color: #475569; }
.notice-list { margin: 12px 0 0; padding: 0; list-style: none; }
.notice-list li { position: relative; padding-left: 16px; margin: 8px 0; color: #6b7280; font-size: 12.5px; line-height: 1.7; }
.notice-list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--primary); }
.consult-form-page { padding: 26px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }

@media (max-width: 1040px) {
    .about-layout { grid-template-columns: 1fr; gap: 18px; }
    .about-aside { flex-direction: row; flex-wrap: wrap; }
    .about-aside > .side-widget { flex: 1 1 260px; }
}
@media (max-width: 560px) {
    .about-article { padding: 22px 18px; }
    .consult-form-page { padding: 20px 16px; }
    .captcha-row img { flex-basis: 120px; }
}

/* ---- 搜索页 ---- */
.banner-search-inline {
    width: min(560px, 100%);
    margin: 18px 0 0;
    border: 1px solid var(--border);
    background: #f7f8fb;
    box-shadow: none;
}
.banner-search-inline:focus-within { border-color: #cfd8e6; background: #fff; box-shadow: 0 0 0 3px rgba(15,76,129,.06); }
.banner-search-inline input { color: var(--text); }
.banner-search-inline button:hover { background: var(--primary-dark); }
.category-chips-left { justify-content: flex-start; }
.chips-label { align-self: center; color: #a1a8b5; font-size: 11px; }
.search-fallback { margin: 16px 0 0; color: var(--muted); font-size: 12.5px; text-align: center; }
.search-fallback a { color: var(--primary); font-weight: 700; }

/* ========================================================================== 
   2.6 视觉升级：专业办公租赁风格
   ========================================================================== */
:root {
    --primary: #0b5f96;
    --primary-dark: #084872;
    --accent: #18a3a0;
    --page-bg: #f4f7fb;
    --surface: #fff;
    --text: #172536;
    --muted: #718095;
    --border: #e3eaf2;
    --radius: 18px;
    --shadow: 0 10px 32px rgba(23, 55, 86, .07);
}

body {
    background:
        radial-gradient(circle at 70% -10%, rgba(24,163,160,.07), transparent 30%),
        var(--page-bg);
}
.app-shell { background: transparent; }
.left-sidebar {
    border-right-color: #e6edf4;
    background: linear-gradient(180deg,#fff 0%,#fbfdff 68%,#f6faff 100%);
    box-shadow: 8px 0 30px rgba(35,66,99,.035);
}
.sidebar-logo { height: 88px; flex-basis: 88px; border-bottom-color: #edf2f7; }
.sidebar-nav { padding-top: 25px; }
.nav-caption { color: #9aa8b8; font-size: 10px; letter-spacing: .14em; }
.nav-item {
    height: 46px;
    position: relative;
    border: 1px solid transparent;
    color: #526276;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.nav-item:hover, .nav-item[aria-current="page"] {
    color: var(--primary);
    border-color: #dceaf4;
    background: linear-gradient(90deg,#edf7fc,#f6fbfe);
    transform: translateX(2px);
}
.nav-item:hover .nav-icon, .nav-item[aria-current="page"] .nav-icon { color: var(--primary); }
.sidebar-note {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg,#0b5f96,#167fa4 68%,#18a3a0);
    box-shadow: 0 14px 30px rgba(11,95,150,.2);
}
.sidebar-note::after {
    content: "";
    width: 88px;
    height: 88px;
    position: absolute;
    right: -34px;
    top: -38px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    box-shadow: 0 0 0 18px rgba(255,255,255,.05);
}
.sidebar-note strong, .sidebar-note a { position: relative; z-index: 1; color: #fff; }
.sidebar-note span { position: relative; z-index: 1; color: rgba(255,255,255,.72); }
.sidebar-wechat { display: none; }
@media (min-width: 781px) {
    .left-sidebar {
        background-image: linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(250,253,255,.93) 24%,rgba(239,247,252,.86) 58%,rgba(227,240,248,.66) 100%),url('../images/generated/home-shenzhen.webp');
        background-position: center, 62% center;
        background-size: cover;
        background-repeat: no-repeat;
    }
    .sidebar-logo { background: rgba(255,255,255,.55); }
    .sidebar-nav { padding: 18px 16px; }
    .nav-caption { color: #687e92; }
    .nav-caption:not(:first-child) { margin-top: 18px; }
    .nav-item { height: 42px; margin-top: 2px; margin-bottom: 2px; }
    .nav-icon { color: #71849a; }
    .sidebar-note { flex-shrink: 0; margin-bottom: 16px; padding: 14px; gap: 4px; }
    .sidebar-note::after { content: none; }
    .sidebar-wechat { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 7px; margin-top: 10px; }
    .sidebar-qr-frame { width: 144px; max-width: 100%; padding: 6px; border-radius: 11px; background: #fff; box-shadow: 0 4px 14px rgba(0,32,55,.12); }
    .sidebar-qr-frame img { width: 100%; height: auto; }
    .sidebar-wechat > span { color: rgba(255,255,255,.94); font-size: 11px; letter-spacing: .04em; }
}

.topbar {
    height: 72px;
    flex-basis: 72px;
    border-bottom-color: rgba(221,230,239,.88);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(16px);
    box-shadow: 0 5px 22px rgba(27,58,89,.035);
}
.top-search { border-color: #e1e8f0; background: #f5f8fb; }
.top-search:focus-within { border-color: #9fc6dd; box-shadow: 0 0 0 4px rgba(11,95,150,.08); }
.top-search button, .banner-search button { background: linear-gradient(135deg,var(--primary),#137ea8); box-shadow: 0 7px 16px rgba(11,95,150,.2); }
.top-action { border-color: #d9e6ee; box-shadow: 0 5px 15px rgba(26,67,104,.04); }
.top-action:hover { background: linear-gradient(135deg,var(--primary),#137ea8); }

.content-layout { width: 100%; max-width: 1440px; margin: 0 auto; padding-top: 26px; }
.home-banner {
    height: auto;
    min-height: 410px;
    padding: 32px 24px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 24px;
    background: #183b5b;
    box-shadow: 0 20px 46px rgba(20,55,87,.16);
}
.home-banner::before {
    background: linear-gradient(100deg,rgba(5,28,50,.82) 0%,rgba(9,55,88,.57) 48%,rgba(10,58,85,.26) 100%);
}
.banner-content { width: min(760px,100%); }
.banner-kicker {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 6px 10px;
    color: #d9f7f4;
    border: 1px solid rgba(183,239,234,.28);
    border-radius: 999px;
    background: rgba(15,108,130,.26);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
    backdrop-filter: blur(10px);
}
.banner-content h1 { font-size: clamp(30px,3vw,42px); letter-spacing: -.035em; text-wrap: balance; }
.banner-content > p { color: rgba(255,255,255,.82); }
.banner-search {
    height: 58px;
    border: 1px solid rgba(255,255,255,.74);
    border-radius: 16px;
    box-shadow: 0 18px 42px rgba(5,28,50,.28);
}
.home-banner .banner-search { margin: 25px auto 18px; }
.banner-search:focus-within { box-shadow: 0 18px 42px rgba(5,28,50,.32),0 0 0 4px rgba(255,255,255,.13); }
.banner-stats {
    width: min(700px,100%);
    margin: 24px auto 0;
    padding: 14px 8px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    background: rgba(5,31,54,.32);
    backdrop-filter: blur(10px);
}
.banner-stats > div + div { border-left: 1px solid rgba(255,255,255,.14); }

.home-section { margin-top: 34px; }
.section-title-row { min-height: 48px; margin-bottom: 17px; }
.section-title-row h2, .section-heading h2 { position: relative; padding-left: 13px; font-size: 21px; }
.section-title-row h2::before, .section-heading h2::before {
    content: "";
    width: 4px;
    position: absolute;
    left: 0;
    top: 2px;
    bottom: 2px;
    border-radius: 8px;
    background: linear-gradient(180deg,var(--primary),var(--accent));
}
.section-more, .load-more { transition: color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease; }
.section-more:hover { transform: translateX(2px); }

.category-card {
    border: 1px solid rgba(255,255,255,.68);
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(26,55,82,.11);
    transition: transform .24s ease,box-shadow .24s ease;
}
.category-card::after { background: linear-gradient(transparent 26%,rgba(7,25,42,.82)); }
.category-card strong { left: 13px; bottom: 11px; font-size: 13px; }
.category-card:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(26,55,82,.18); }

.featured-card, .wallpaper-card {
    border-color: #e1e9f1;
    border-radius: 16px;
    box-shadow: 0 8px 26px rgba(29,61,91,.065);
}
.featured-card { padding: 6px 6px 12px; transition: transform .22s ease,box-shadow .22s ease; }
.featured-card:hover { transform: translateY(-4px); box-shadow: 0 15px 34px rgba(29,61,91,.13); }
.featured-card > a { border-radius: 11px; }
.featured-card .featured-body { padding: 11px 7px 0; }
.featured-card .featured-body > strong { color: #213248; }
.featured-card .featured-body > small { color: #77879a; }
.wallpaper-card:hover { transform: translateY(-5px); box-shadow: 0 16px 36px rgba(29,61,91,.14); }
.wallpaper-cover::before { padding-top: 70%; }
.media-badge {
    left: 10px;
    top: 10px;
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 7px;
    background: rgba(7,36,58,.76);
    box-shadow: 0 5px 13px rgba(0,0,0,.12);
}
.wallpaper-overlay { min-height: 88px; gap: 10px; padding: 13px 14px 14px; }
.wallpaper-overlay strong { color: #203147; font-size: 13.5px; }
.wallpaper-overlay small { color: #7d8c9e; font-size: 10px; }
.load-more { min-width: 154px; height: 42px; border-color: #dbe5ee; border-radius: 12px; box-shadow: 0 6px 18px rgba(29,61,91,.045); }
.load-more:hover { color: #fff; border-color: var(--primary); background: var(--primary); transform: translateY(-2px); }

.side-widget {
    border-color: #e1e9f1;
    border-radius: 18px;
    box-shadow: 0 9px 28px rgba(29,61,91,.065);
}
.widget-title-row h2 { color: #203147; font-size: 15.5px; }
.daily-cover { border-radius: 14px; }
.inspiration-pills a { transition: transform .18s ease,box-shadow .18s ease; }
.inspiration-pills a:hover { transform: translateY(-2px); box-shadow: 0 5px 12px rgba(43,76,107,.08); }
.quote-widget { background: linear-gradient(145deg,#0b5f96,#1686a6 68%,#18a3a0); }

.page-hero {
    position: relative;
    overflow: hidden;
    padding: 33px 34px;
    border-color: #dfe8f0;
    border-radius: 21px;
    background: linear-gradient(135deg,#fff 0%,#f4f9fc 58%,#eef8f8 100%);
    box-shadow: 0 10px 30px rgba(29,61,91,.055);
}
.page-hero::after {
    content: "";
    width: 180px;
    height: 180px;
    position: absolute;
    right: -80px;
    top: -105px;
    border: 24px solid rgba(11,95,150,.045);
    border-radius: 50%;
}
.page-hero > * { position: relative; z-index: 1; }
.page-hero h1 { color: #1a2d42; letter-spacing: -.025em; }
.eyebrow { color: var(--accent); letter-spacing: .18em; }
.listing-filters {
    padding: 12px 22px 15px;
    border-color: #dfe8f0;
    border-radius: 18px;
    box-shadow: 0 9px 28px rgba(29,61,91,.055);
}
.filter-row { min-height: 52px; border-bottom-color: #edf2f6; }
.filter-row button, .filter-row > a { border: 1px solid transparent; transition: .18s ease; }
.filter-row button:hover, .filter-row > a:hover { color: var(--primary); border-color: #cfe1ed; background: #f0f7fb; }
.filter-row button.active, .filter-row > a.active { color: #fff; border-color: var(--primary); background: var(--primary); box-shadow: 0 5px 12px rgba(11,95,150,.16); }

.gallery-stage, .detail-panel, .detail-description, .about-article, .consult-form-page {
    border-color: #dfe8f0;
    border-radius: 20px;
    box-shadow: 0 11px 32px rgba(29,61,91,.07);
}
.detail-panel { padding: 26px; }
.listing-price { flex-direction: column; align-items: flex-start; gap: 5px; border: 1px solid #dcecf3; background: linear-gradient(135deg,#eef8fc,#f0fbf9); }
.phone-reveal, .consult-form button[type="submit"] { background: linear-gradient(135deg,var(--primary),#137ea8); }
.phone-reveal { flex-wrap: wrap; gap: 8px; }
.phone-mask, .phone-action { white-space: nowrap; }
.detail-description { padding: 28px; }
.service-grid { counter-reset: service-step; }
.service-card {
    position: relative;
    overflow: hidden;
    padding: 26px 24px;
    border-color: #e0e8f0;
    border-radius: 18px;
    box-shadow: 0 9px 28px rgba(29,61,91,.055);
    counter-increment: service-step;
}
.service-card::before {
    content: "0" counter(service-step);
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 17px;
    color: var(--primary);
    border: 1px solid #d4e7f0;
    border-radius: 11px;
    background: linear-gradient(135deg,#edf7fc,#eefaf8);
    font-size: 11px;
    font-weight: 900;
}
.service-card::after {
    content: "";
    width: 70px;
    height: 70px;
    position: absolute;
    right: -34px;
    top: -34px;
    border-radius: 50%;
    background: rgba(24,163,160,.065);
}
.service-card h3 { color: #1b4f70; }
.site-disclaimer .disclaimer-inner { border-radius: 15px; background: #f9fbfd; }
.site-footer { box-shadow: inset 0 1px rgba(255,255,255,.08); }

@media (max-width: 1500px) {
    .category-card-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1380px) {
    .right-sidebar { display: none; }
    .content-layout { padding-inline: 32px; }
}
@media (max-width: 780px) {
    .topbar { height: 64px; flex-basis: 64px; }
    .content-layout { padding-top: 16px; }
    .home-banner { min-height: 380px; padding: 28px 20px; border-radius: 20px; }
    .banner-kicker { margin-bottom: 8px; }
    .banner-stats { margin-top: 22px; }
}
@media (max-width: 560px) {
    .content-layout { padding: 12px 12px 30px; }
    .home-banner { min-height: 410px; padding: 24px 16px; border-radius: 18px; }
    .banner-content { width: 100%; }
    .banner-content h1 { font-size: 25px; }
    .banner-content > p { font-size: 12px; line-height: 1.65; }
    .banner-search { height: 52px; margin-top: 17px; border-radius: 13px; }
    .home-banner .banner-search { margin-top: 18px; }
    .hot-searches a { padding: 6px 8px; }
    .banner-stats { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 4px 10px; gap: 0; margin-top: 20px; }
    .banner-stats > div { padding: 12px 6px; }
    .banner-stats > div + div { border-left: 0; }
    .banner-stats > div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.14); }
    .banner-stats > div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.14); }
    .banner-stats dt { font-size: 11px; }
    .banner-stats dd { font-size: 11px; }
    .banner-stats dd b { font-size: 22px; }
    .home-section { margin-top: 30px; }
    .section-title-row h2, .section-heading h2 { font-size: 20px; }
    .category-card { border-radius: 14px; }
    .featured-card, .wallpaper-card { border-radius: 14px; }
    .waterfall-grid .wallpaper-cover::before { display: none; }
    .waterfall-grid .wallpaper-overlay { background: linear-gradient(135deg,#fff,#fbfdff); }
    .page-hero { padding: 25px 20px; border-radius: 17px; }
    .listing-filters { border-radius: 16px; }
    .detail-description { padding: 22px 18px; }
    .service-card { padding: 22px 20px; }
}

/* ---- 2.7 房源卡片：统一 10:6 图片并补充关键信息 ---- */
.featured-card > a { position: static; overflow: visible; border-radius: 0; }
.featured-card > a::before { display: none; }
.featured-card .featured-media {
    position: relative;
    display: block;
    padding: 0;
    overflow: hidden;
    aspect-ratio: 5 / 3;
    border-radius: 11px;
    background: #eaf0f5;
}
.featured-card .featured-media img {
    position: static;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.featured-card .featured-media em {
    position: absolute;
    left: 10px;
    top: 10px;
    max-width: calc(100% - 20px);
    padding: 5px 8px;
    overflow: hidden;
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 7px;
    background: rgba(7,36,58,.78);
    box-shadow: 0 5px 13px rgba(0,0,0,.12);
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.featured-card .featured-media em:empty { display: none; }
.featured-card .featured-body {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 12px 8px 3px;
}
.featured-card .featured-body > strong {
    min-height: 39px;
    display: -webkit-box;
    overflow: hidden;
    color: #203147;
    font-size: 13.5px;
    line-height: 1.48;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.property-location {
    min-width: 0;
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 0;
    overflow: hidden;
    color: #65788b;
    font-size: 10.5px;
    line-height: 1.4;
    white-space: nowrap;
}
.property-location > span {
    display: inline;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.property-location > span:empty { display: none; }
.property-location > span:not(:empty) + span:not(:empty)::before { content: "·"; margin: 0 6px; color: #a8b3bf; }
.property-facts {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #8a98a8;
    font-size: 10px;
    line-height: 1.4;
}
.property-facts > span:first-child { color: var(--primary); font-weight: 800; }
.property-facts > span:empty { display: none; }

.business-shortcuts { display: flex; align-items: baseline; gap: 18px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border); }
.business-shortcuts > strong { flex: 0 0 auto; color: #65788b; font-size: 12px; }
.business-shortcuts > div { display: flex; flex-wrap: wrap; gap: 8px; }
.business-shortcuts a { padding: 7px 12px; color: #47657d; border: 1px solid #dfe8f0; border-radius: 8px; background: rgba(255,255,255,.8); font-size: 12px; white-space: nowrap; transition: color .18s ease, border-color .18s ease, background .18s ease; }
.business-shortcuts a:hover, .business-shortcuts a:focus-visible { color: var(--primary); border-color: #aacddd; background: #eef8fc; }

.wallpaper-cover::before { display: none; }
.wallpaper-cover > img {
    position: static;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 3;
    object-fit: contain;
}
.wallpaper-overlay { min-height: 112px; gap: 7px; }
.wallpaper-overlay .property-location { color: #65788b; }
.wallpaper-overlay .property-facts { margin-top: auto; }

/* ---- 后台友情链接 ---- */
.footer-friends {
    max-width: 1180px;
    margin: 24px auto 0;
    padding-top: 18px;
    display: none;
    align-items: flex-start;
    gap: 20px;
    border-top: 1px solid rgba(255,255,255,.13);
}
.footer-friends:has(a) { display: flex; }
.footer-friends strong { flex: 0 0 auto; color: #fff; font-size: 12px; }
.footer-friends div { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.footer-friends a { color: #aebfd0; transition: color .18s ease; }
.footer-friends a:hover { color: #fff; }

@media (max-width: 560px) {
    .business-shortcuts { flex-direction: column; align-items: flex-start; gap: 10px; }
    .featured-card .featured-body { gap: 6px; padding: 10px 7px 4px; }
    .featured-card .featured-body > strong { min-height: 36px; font-size: 12px; }
    .featured-card .property-location { font-size: 9.5px; }
    .featured-card .property-facts { align-items: flex-start; flex-direction: column; gap: 3px; font-size: 9.5px; }
    .waterfall-grid .wallpaper-cover { min-height: 132px; grid-template-columns: 42% minmax(0,1fr); }
    .waterfall-grid .wallpaper-cover > img { height: 100%; min-height: 132px; aspect-ratio: auto; }
    .waterfall-grid .wallpaper-overlay { min-height: 132px; gap: 5px; padding: 11px; }
    .waterfall-grid .wallpaper-overlay strong { font-size: 12.5px; }
    .waterfall-grid .property-location { font-size: 9.5px; }
    .waterfall-grid .property-facts { align-items: center; flex-direction: row; gap: 6px; font-size: 9px; }
    .footer-friends { align-items: flex-start; flex-direction: column; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* 2.8: readable information, clear focus and useful selection guidance. */
.skip-link { position: fixed; top: 12px; left: 20px; z-index: 200; padding: 12px 18px; border-radius: 10px; color: #fff; background: var(--primary); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:where(a,button,input,textarea,summary,[tabindex]):focus-visible { outline: 3px solid #0096a6; outline-offset: 3px; }
.nav-caption { color: #697b8e; }
.breadcrumb { color: #52657b; font-size: 12px; min-height: 26px; flex-wrap: wrap; overflow: visible; white-space: normal; line-height: 1.7; }
.breadcrumb > [aria-current="page"] { min-width: 0; overflow-wrap: anywhere; }
.breadcrumb a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.breadcrumb [aria-current="page"] { color: #64748b; }
.page-hero h1 { font-size: clamp(22px,2.3vw,32px); line-height: 1.45; overflow-wrap: anywhere; }
.page-hero > p:not(.eyebrow) { line-height: 1.8; }
.filter-row button,.filter-row > a { min-height: 36px; display: inline-flex; align-items: center; font-size: 12px; }
.filter-result { color: #596e83; font-size: 12px; line-height: 1.6; }
.business-filter-hint { color: #64748b; font-size: 12px; }
.filter-empty { margin: 12px 0 22px; padding: 26px; text-align: center; border: 1px dashed #bcd4df; border-radius: 16px; background: #f3fafc; }
.filter-empty[hidden] { display: none; }
.filter-empty strong { font-size: 18px; color: var(--primary-dark); }
.filter-empty p { font-size: 13px; color: #52657b; }
.filter-empty button { padding: 10px 18px; border: 1px solid #9fc8d7; border-radius: 9px; color: var(--primary); background: #fff; cursor: pointer; }
.wallpaper-overlay strong,.featured-card .featured-body > strong { font-size: 14px; line-height: 1.55; }
.property-location { font-size: 12px; }
.property-facts { font-size: 12px; }
.media-badge { font-size: 11px; background: rgba(10,37,57,.86); }
.article-note { color: #596e83; font-size: 12px; line-height: 1.85; }
.article-note { padding: 16px 20px; border-left: 3px solid #25879c; border-radius: 0 10px 10px 0; background: #f1f7fa; }
.rich-content table { display: block; width: 100% !important; overflow-x: auto; border-collapse: collapse; }
.rich-content td,.rich-content th { padding: 10px 12px; border: 1px solid #dfe8f0; }
.rich-content iframe,.rich-content video { width: 100%; }
.gallery-arrow:disabled { opacity: .35; cursor: default; }
.choice-guide { padding: 30px; border: 1px solid #dbe7ef; border-radius: 22px; background: linear-gradient(120deg,#f0f8fc,#fff); }
.guide-layout { display: grid; grid-template-columns: minmax(230px,.8fr) minmax(0,1.5fr); gap: 44px; }
.guide-intro h3 { margin: 10px 0 18px; font-size: 30px; line-height: 1.4; color: var(--primary-dark); }
.guide-intro > p { margin: 0; color: #52657b; font-size: 14px; line-height: 1.9; }
.guide-intro > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.guide-intro a { padding: 10px 13px; color: var(--primary); font-size: 13px; font-weight: 700; border: 1px solid #c3dce7; border-radius: 9px; background: #fff; }
.guide-questions details { margin-bottom: 10px; padding: 16px 20px; border: 1px solid #e1eaf0; border-radius: 12px; background: #fff; }
.guide-questions details:last-child { margin-bottom: 0; }
.guide-questions summary { font-size: 14px; font-weight: 700; line-height: 1.6; cursor: pointer; color: var(--primary-dark); }
.guide-questions p { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid #edf2f6; font-size: 13px; line-height: 1.9; color: #52657b; }
.collection-hero { --collection-image: url('../images/generated/collection-offices.webp'); }
.collection-hero.news-hero { --collection-image: url('../images/generated/news-business.webp'); }
.collection-hero.about-hero { --collection-image: url('../images/generated/about-chenyi.webp'); }
.collection-hero.contact-hero,.collection-hero.message-hero { --collection-image: url('../images/generated/contact-chenyi.webp'); }
.collection-hero[data-region="南山区"] { --collection-image: url('../images/generated/region-nanshan.webp'); }
.collection-hero[data-region="福田区"] { --collection-image: url('../images/generated/region-futian.webp'); }
.collection-hero[data-region="宝安区"] { --collection-image: url('../images/generated/region-baoan.webp'); }
.collection-hero[data-region="罗湖区"] { --collection-image: url('../images/generated/region-luohu.webp'); }
.collection-hero[data-region="龙华区"] { --collection-image: url('../images/generated/region-longhua.webp'); }
.collection-hero[data-region="龙岗区"] { --collection-image: url('../images/generated/region-longgang.webp'); }
.collection-hero[data-region="光明区"] { --collection-image: url('../images/generated/region-guangming.webp'); }
.collection-hero > .collection-backdrop { display: none; position: absolute; inset: 0 0 0 auto; width: 48%; z-index: 0; pointer-events: none; }
.banner-backdrop img { object-position: 70% center; }
.news-card { height: 206px; min-height: 0; grid-template-columns: 260px minmax(0,1fr); }
.news-image { display: block; position: relative; min-width: 0; min-height: 0; height: 100%; }
.news-image img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.news-image-fallback { display: none; width: 100%; height: 100%; padding: 16px; background: linear-gradient(0deg,rgba(8,38,60,.5),rgba(8,38,60,.05)),url('../images/generated/news-business.webp') center/cover no-repeat; }
.news-image.is-fallback .news-image-fallback { display: grid; align-items: end; justify-items: start; }
.news-image.is-fallback img { display: none; }
.news-image-fallback > span { padding: 5px 8px; border-radius: 6px; color: #fff; background: rgba(8,38,60,.65); font-size: 11px; }
.news-card-body { display: flex; flex-direction: column; min-height: 0; padding: 20px 24px; }
.news-card-body > p { flex: 0 0 auto; color: #64748b; font-size: 11px; }
.news-card-body h2 { flex: 0 0 auto; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 16px; line-height: 1.55; }
.news-card-body > div { flex: 0 0 auto; color: #65788b; font-size: 12px; line-height: 1.7; }
.news-more { align-self: flex-start; margin-top: auto; padding-top: 8px; font-size: 12px; }
@media (min-width: 781px) {
    .choice-guide {
        background-image: linear-gradient(90deg,rgba(244,250,253,.90),rgba(244,250,253,.83) 44%,rgba(244,250,253,.65)),url('../images/generated/about-chenyi.webp');
        background-size: cover;
        background-position: center;
    }
    .collection-hero > .collection-backdrop {
        display: block;
        background-image: linear-gradient(90deg,#f6fafc 0%,rgba(246,250,252,.92) 18%,rgba(241,248,250,.55) 50%,rgba(231,244,248,.2) 100%),var(--collection-image);
        background-size: cover;
        background-position: center,right center;
        background-repeat: no-repeat;
    }
    .collection-hero::after { display: none; }
    .collection-hero h1 { max-width: 78%; }
    .collection-hero > p:not(.eyebrow) { max-width: 72%; color: #52657b; }
    .collection-hero .category-chips a { border: 1px solid #dce7ed; background: rgba(255,255,255,.86); }
}
@media (max-width: 780px) {
    .news-card { height: 180px; grid-template-columns: 180px minmax(0,1fr); }
    .detail-page > .breadcrumb > [aria-current="page"],
    .detail-page > .breadcrumb > [aria-hidden="true"]:nth-last-child(2) { display: none; }
    .guide-layout { grid-template-columns: 1fr; gap: 24px; }
    .choice-guide { padding: 22px 18px; }
    .guide-intro h3 { font-size: 25px; }
    .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
}
@media (max-width: 560px) {
    .news-card { height: 148px; grid-template-columns: 38% minmax(0,1fr); }
    .news-card-body { padding: 13px 14px; }
    .news-card-body h2 { font-size: 14px; }
    .news-card-body > div { display: none; }
    .news-more { font-size: 11px; }
    .service-grid { gap: 10px; }
    .service-card { min-width: 0; padding: 16px 14px; border-radius: 14px; }
    .service-card::before { width: 30px; height: 30px; margin-bottom: 12px; border-radius: 9px; }
    .service-card h3 { margin-bottom: 7px; font-size: 14px; line-height: 1.5; }
    .service-card p { font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
    .filter-row { gap: 5px; padding: 10px 0; }
    .filter-row strong { flex-basis: 100%; width: 100%; margin-bottom: 3px; }
    .filter-row button,.filter-row > a { padding: 7px 9px; }
    .waterfall-grid .wallpaper-overlay strong { font-size: 13.5px; }
    .waterfall-grid .property-location,.waterfall-grid .property-facts,.featured-card .property-location,.featured-card .property-facts { font-size: 11px; }
    .guide-questions details { padding: 14px; }
    .guide-questions summary { font-size: 13px; }
}

/* Contextual property search and compact facts */
.search-scope-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.search-scope-tabs a { padding: 9px 15px; border: 1px solid #dce6ef; border-radius: 9px; background: #fff; color: #526a80; font-size: 13px; }
.search-scope-tabs a.active { border-color: var(--primary); background: var(--primary); color: #fff; box-shadow: 0 4px 12px rgba(14,105,157,.15); }
.property-kind { align-self: flex-start; padding: 3px 7px; border-radius: 5px; background: #edf6fa; color: #287094; font-size: 11px; line-height: 1.4; }
.property-summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; margin-top: auto; }
.property-summary .property-facts { flex: 0 1 auto; min-width: 0; max-width: 58%; margin: 0; font-size: 12px; line-height: 1.4; flex-direction: row; white-space: nowrap; }
.property-summary .property-facts > span { overflow: hidden; text-overflow: ellipsis; }
.property-summary .property-location { flex: 0 1 auto; justify-content: flex-end; min-width: 0; }
.property-summary .property-location > span:first-child { flex: 0 0 auto; }
.property-summary .property-location > span + span { flex: 0 1 auto; }
.property-summary .property-location > span:not(:empty) + span:not(:empty)::before { margin: 0 3px; }
@media (max-width: 560px) {
    .property-summary { gap: 6px; }
    .property-summary .property-facts { font-size: 11px; }
    .featured-card .property-summary .property-location > span + span { display: none; }
    .search-scope-tabs { gap: 6px; }
    .search-scope-tabs a { padding: 8px 10px; font-size: 12px; }
}

/* Uniform 3:2 image frames: landscape stretches to fill, portrait crops from center. */
.waterfall-grid, .featured-grid { align-items: stretch; gap: 18px; }
.wallpaper-card, .featured-card { display: flex; flex-direction: column; padding: 7px; border-color: #e3ebf1; border-radius: 17px; box-shadow: 0 5px 18px rgba(29,61,91,.045); }
.wallpaper-cover, .featured-card > a { display: flex; flex: 1; flex-direction: column; min-width: 0; border-radius: 0; }
.wallpaper-cover > img { flex: 0 0 auto; width: 100%; height: auto; min-height: 0; aspect-ratio: 3 / 2; object-fit: fill; object-position: center; border-radius: 11px; background: #fff; }
.wallpaper-overlay { flex: 1; min-height: 94px; gap: 9px; padding: 13px 6px 7px; background: #fff; }
.wallpaper-overlay > strong { min-height: 43px; font-size: 14.5px; line-height: 1.5; }
.wallpaper-overlay .property-summary { margin-top: auto; padding-top: 3px; }
.property-summary .property-facts { font-size: 12px; }
.property-summary .property-location { font-size: 12px; }
.media-badge { left: 10px; top: 10px; padding: 5px 8px; font-size: 10px; }
.featured-card .featured-media { flex: 0 0 auto; aspect-ratio: 3 / 2; background: #fff; }
.featured-card .featured-media img { width: 100%; height: 100%; object-fit: fill; object-position: center; background: #fff; }
.featured-card .featured-body { flex: 1; min-height: 88px; padding: 12px 6px 7px; gap: 9px; }
.featured-card .featured-body > strong { min-height: 43px; font-size: 14px; line-height: 1.5; }

.news-list { max-width: 1100px; margin-inline: auto; gap: 16px; }
.news-hero, .news-breadcrumb { max-width: 1100px; margin-inline: auto; }
.news-card { height: 188px; min-height: 0; grid-template-columns: 231px minmax(0,1fr); gap: 22px; padding: 16px; border-color: #e3ebf1; border-radius: 16px; box-shadow: 0 4px 18px rgba(29,61,91,.035); }
.news-image { display: flex; align-self: center; align-items: center; justify-content: center; width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 10px; background: #fff; }
.news-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: 100%; max-height: none; min-height: 0; object-fit: fill; object-position: center; border-radius: 9px; background: #fff; }
.news-image-fallback { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 10px; }
.news-card-body { padding: 1px 2px 1px 0; }
.news-card-body > p { margin: 0 0 7px; font-size: 11px; line-height: 1.4; color: #7a8998; }
.news-card-body h2 { margin: 0 0 7px; font-size: 17px; line-height: 1.45; }
.news-card-body > div { font-size: 12.5px; line-height: 1.65; }
.news-more { padding-top: 8px; font-size: 12px; }
.news-list > .pager, .news-list > .empty-state { width: 100%; }

@media (max-width: 780px) {
    .waterfall-grid, .featured-grid { gap: 14px; }
    .waterfall-grid .wallpaper-cover { display: flex; flex-direction: column; min-height: 0; }
    .waterfall-grid .wallpaper-cover > img { position: static; height: auto; min-height: 0; aspect-ratio: 3 / 2; object-fit: fill; }
    .waterfall-grid .wallpaper-overlay { flex: 1; min-height: 94px; justify-content: flex-start; gap: 9px; padding: 13px 6px 7px; background: #fff; }
    .waterfall-grid .wallpaper-overlay > strong { min-height: 43px; font-size: 15px; line-height: 1.45; }
    .waterfall-grid .media-badge { max-width: calc(100% - 20px); }
    .waterfall-grid .property-summary .property-facts { font-size: 12px; }
    .waterfall-grid .property-summary .property-location { font-size: 12px; }
    .featured-card .featured-body { min-height: 82px; padding: 10px 5px 5px; }
    .featured-card .featured-body > strong { min-height: 39px; font-size: 12.5px; }
    .featured-card .property-summary .property-facts, .featured-card .property-summary .property-location { font-size: 11px; }
    .news-card { height: 156px; grid-template-columns: 160px minmax(0,1fr); gap: 16px; padding: 12px; }
    .news-card-body h2 { font-size: 15px; }
    .news-card-body > div { display: none; }
}
@media (max-width: 560px) {
    .wallpaper-card { padding: 6px; }
    .waterfall-grid { gap: 16px; }
    .featured-grid { gap: 11px; }
    .featured-card { padding: 5px; border-radius: 14px; }
    .news-card { height: 132px; grid-template-columns: 104px minmax(0,1fr); gap: 12px; padding: 10px; border-radius: 14px; }
    .news-image img { border-radius: 7px; }
    .news-card-body { padding: 0; }
    .news-card-body > p { margin-bottom: 6px; font-size: 10px; }
    .news-card-body h2 { margin-bottom: 6px; font-size: 13.5px; line-height: 1.5; }
    .news-more { padding-top: 6px; font-size: 11px; }
}

.wallpaper-cover > img.is-portrait,
.waterfall-grid .wallpaper-cover > img.is-portrait,
.featured-card .featured-media img.is-portrait,
.news-image img.is-portrait,
.gallery-slide img.is-portrait,
.news-detail-cover.is-portrait { object-fit: cover; object-position: center; }

/* Mobile disclosure controls enhance the existing, crawlable category links. */
.mobile-filter-bar { display: none; }
@media (max-width: 767px) {
    .filters-enhanced { padding: 0 12px 10px; }
    .filters-enhanced .mobile-filter-bar { display: flex; gap: 0; padding: 5px 0; }
    .mobile-filter-toggle { flex: 1; min-width: 0; min-height: 54px; padding: 6px 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 0; border-radius: 8px; color: #34495e; background: transparent; cursor: pointer; }
    .mobile-filter-title { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; }
    .mobile-filter-title::after { content: ''; width: 5px; height: 5px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
    .mobile-filter-toggle small { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; color: #6b7d90; text-align: center; }
    .mobile-filter-toggle.has-selection, .mobile-filter-toggle[aria-expanded="true"] { color: var(--primary); background: #eef7fb; }
    .mobile-filter-toggle.has-selection small { color: var(--primary); }
    .mobile-filter-toggle[aria-expanded="true"] .mobile-filter-title::after { transform: translateY(1px) rotate(225deg); }
    .mobile-filter-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
    .filters-enhanced .filter-row { display: none; }
    .filters-enhanced .filter-row.mobile-filter-open { display: flex; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; align-content: flex-start; gap: 8px; padding: 12px 0; border-top: 1px solid #edf2f6; border-bottom: 1px solid #edf2f6; }
    .filters-enhanced .filter-row strong { display: none; }
    .filters-enhanced .filter-row button, .filters-enhanced .filter-row > a { min-height: 40px; padding: 8px 12px; font-size: 12px; }
    .filters-enhanced .filter-result { margin-top: 3px; padding: 2px 0; font-size: 10px; text-align: left; }
}
