/* SaraHome — Search page (V26 toolbar / quick tabs / hot keywords / pagination / filter panel / bottom-sheet / mobile sticky filter) page-specific CSS (extracted from style.css 2026-08-20, Plan B)
   分拆規則: 必須 link 喺 style.css 之後、mobile.css 之前 (對位 §R-N+146 後寫後贏).
   來源 style.css ranges: L1576-1696 + L1901-2497 + L5271-5702 + L7168-7281  exclusions (留 style.css): 1654-1662, 1687-1691, 1970-1977, 5274-5283, 5292-5300, 5424-5436, 5516-5533
   0 老 rule 內容改動 (byte-exact extraction), 對位 2026-08-11 5-file precedent. */

/* ⚠️ SEMANTIC WRAPPER — DO NOT DELETE (V26 vertical space optimizer)
   整合 [breadcrumb + H1 + 買/租 toggle + quick tabs] 為 single row, 垂直空間 -57% (140px → 60px).
   拆掉會回退 §R-N+137 chain, 觸發 H1 重複 + BreadcrumbList JSON-LD 結構斷裂.
   Mobile 入口由獨立 .mobile-search-toolbar 守 (5 button + badge + sticky sheet trigger).
   對位 §R-N+138 verdict + §R-N+62 KISS (1 commit 1 CSS 註解, 0 template / 0 JS 改動). */
/* V26 — search toolbar (整合 breadcrumb + H1 + 買/租 toggle + quick tabs 為 single row)
   Desktop ≥1024px: 3 sections horizontal
     [breadcrumb] [H1 + 買/租 toggle] [quick tabs]
   Tablet 768-1024px: breadcrumb 頂, 然後 [H1+toggle] + [tabs] 同行
   Mobile ≤768px: 全部 stack (breadcrumb + H1 + tabs 分 3 行) */
.search-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin: 0 0 0.625rem;
    padding: 0.625rem 0.875rem;
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: var(--sarahome-v3-radius-sm);
    box-shadow: 0 1px 4px rgba(31, 41, 55, 0.04);
}
.search-toolbar-breadcrumb {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
    color: var(--sarahome-v3-color-text-secondary);
    flex: 0 0 auto;
}
.search-toolbar-breadcrumb .breadcrumb-current {
    color: var(--sarahome-v3-color-fg);
    font-weight: 500;
}
.search-toolbar-title {
     display: inline-flex;
     align-items: center;
     flex: 1 1 auto;
     min-width: 0;
}
.search-toolbar-title .page-title-v2 {
     margin: 0;
     font-size: var(--sarahome-v3-font-base);
     font-weight: 700;
     color: var(--sarahome-v3-color-fg);
}

/* T6 (§R-N+4xx+46, 2026-08-12) — desktop toolbar 結果 count
   §R-N+15xx (2026-08-18, CEO verdict A) — .search-toolbar-type-toggle 已由
   _search_toolbar.html 移除, 買/租 canonical surface 統一入 filter panel
   .search-form-mode 行首 (見下面 .search-type-toggle + .search-mode-sep).
   toolbar 剩 breadcrumb + H1 + count (count 保留 margin-left:auto 靠右). */
.search-toolbar-count {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    padding: 0.1875rem 0.625rem;
    background: var(--color-bg-soft);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-text-secondary-aa);
    white-space: nowrap;
}
@media (max-width: 768px) {
    .search-toolbar-count {
        display: none;
    }
}
/* §R-N+15xx (2026-08-18, CEO verdict A) — desktop ≥769 filter panel 內 type-toggle
   由隱藏改為顯示: 買/租 由 toolbar 右角 (x=1138, 離 quick tabs 1254px) 搬入
   .search-form-mode 行首, 同 9 個 quick tab 排成單一決策鏈
   (先揀買定租 → 再揀快速條件 → 再揀物業類別). 0 backend / 0 URL contract 改動.
   舊 T6 規則 `.search-filter-panel .search-type-toggle { display: none }` 已移除. */
.search-mode-sep {
    flex: 0 0 auto;
}

/* Mode switcher: 買/租 toggle + 快速 tabs 集中喺 form header 內 */
.search-type-toggle {
     display: inline-flex;
     background: var(--color-bg-soft);
     border-radius: 0.375rem;
     padding: 0.1875rem;
     gap: 0.1875rem;
     flex: 0 0 auto;
}
.search-type-option {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 0.375rem 0.75rem;
     border-radius: 0.25rem;
     font-size: 0.8125rem;
     font-weight: 600;
     color: var(--sarahome-v3-color-text-secondary);
     text-decoration: none;
     transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.search-type-option:hover:not(.active) {
     color: var(--sarahome-v3-color-fg);
     text-decoration: none;
}
@media (max-width: 768px) {
     .search-toolbar { gap: var(--sarahome-v3-space-2); padding: 0.5rem 0.625rem; }
     .search-form-mode { gap: 0.375rem; padding-bottom: 0.5rem; }
     .search-type-option { padding: 0.375rem 0.625rem; font-size: 0.75rem; }
}
/* ============ Search Page V19 (§R-N+110 對位 MaliMali 物業查詢) ============
   對位 https://www.malimalihome.net/prop/list/3/tc0st0
   3 個 key feature 對位 MaliMali:
     1. 當前搜索條件 active chip display + 清空條件 btn
     2. Quick filter tab 5 個 (全部/置頂/有相/價低/商舖)
     3. 底部熱門詞 4-column footer
============================================================= */

/* --- Quick filter tab 4 個 (V26 對位 MaliMali, inline 在 toolbar 入面) --- */
.search-quick-tabs {
     display: inline-flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    align-items: center;
}
/* §R-N+399 (2026-08-07) — quick tabs 兩組分組
   兩個 sub-group (intent 4 + property_type 5) 共享同 1 條水平 scroll, 對位 mobile ≤768px overflow-x.
   Group 內部 gap 由 .search-quick-tabs 統一提供, group wrapper 只負責 semantic + a11y. */
.search-quick-tabs-group {
    display: inline-flex;
    flex-wrap: inherit;
    gap: 0.375rem;
    align-items: center;
    flex: 0 0 auto;
    min-width: 0;
}
/* §R-N+399 — 1px vertical separator 對位 group 語意.
   Desktop ≥1024px 顯示 (group label 對位 1px divider), mobile 隱藏 (避免擠 78vw 空間). */
.search-quick-tabs-sep {
    display: inline-block;
    width: 1px;
    align-self: stretch;
    min-height: 1.25rem;
    margin: 0 0.25rem;
    background: var(--sarahome-v3-border);
    flex: 0 0 auto;
}
.search-quick-tab {
     display: inline-flex;
     align-items: center;
     gap: 0.3rem;
     padding: 0.375rem 0.75rem;
     background: var(--color-bg-soft);
     border: 1px solid transparent;
     border-radius: 999px;
     font-size: 0.8125rem;
     color: var(--sarahome-v3-color-text-secondary-aa);
     text-decoration: none;
     font-weight: 600;
     transition: background 0.15s ease, color 0.15s ease;
}
.search-quick-tab .tab-icon {
     width: 14px;
     height: 14px;
     flex-shrink: 0;
     opacity: 0.85;
}
.search-quick-tab.active .tab-icon {
     opacity: 1;
}
.search-quick-tab:hover {
    background: var(--sarahome-v3-shadow-color-brand-blue-medium);
    color: var(--sarahome-v3-color-accent);
}

/* --- 熱門搜尋 4-column footer (V19 對位 MaliMali 物業查詢 SEO) ---
   §R-N+421 (2026-08-10): 改 5-col grid + pill/chip 樣式 + 4 breakpoints
   desktop 5-col / tablet 3-col (≤1024px) / mobile 2-col (≤768px) / small 1-col (≤480px) */
.search-hot-keywords {
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.625rem;
    padding: var(--sarahome-v3-space-6);
    margin: var(--sarahome-v3-space-6) 0;
}
.search-hot-keywords-title {
    font-size: var(--sarahome-v3-font-base);
    font-weight: 600;
    color: var(--sarahome-v3-color-fg);
    margin: 0 0 var(--sarahome-v3-space-4);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--sarahome-v3-color-bg);
}
.search-hot-keywords-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr); /* §R-N+421: 4→5 col */
    gap: 1.25rem;
}
.search-hot-keywords-col h3 {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-accent-aa);
    margin: 0 0 0.625rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}
.search-hot-keywords-col .kw-icon {
    flex-shrink: 0;
    opacity: 0.7;
}
.search-hot-keywords-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}
.search-hot-keywords-col li {
    line-height: 1;
}
/* Pill/chip style for keyword links */
.search-hot-keywords-col a.kw-link {
    display: inline-block;
    padding: 0.25rem 0.625rem;
    font-size: 0.8125rem;
    color: var(--sarahome-v3-color-fg);
    text-decoration: none;
    background: var(--sarahome-v3-color-bg);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    transition: all var(--sarahome-v3-duration-fast, 0.15s) ease;
    line-height: 1.4;
}
.search-hot-keywords-col a.kw-link:hover {
    background: var(--sarahome-v3-color-accent);
    border-color: var(--sarahome-v3-color-accent);
    color: #FFFFFF;
    text-decoration: none;
}
/* Count badge */
.search-hot-keywords-col .kw-count {
    font-size: 0.6875rem;
    color: var(--sarahome-v3-color-text-secondary);
    margin-left: 0.125rem;
    font-weight: 400;
}
.search-hot-keywords-col .kw-link:hover .kw-count {
    color: rgba(255,255,255,0.85);
}
/* Trending column special style (gradient warm-orange) */
.search-hot-keywords-trending ul.kw-trending-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.search-hot-keywords-trending ul.kw-trending-list li {
    margin: 0;
}
.search-hot-keywords-trending ul.kw-trending-list a.kw-trending-link {
    background: linear-gradient(135deg, rgba(255,140,66,0.06));
    border-color: rgba(255,140,66,0.2);
}
.search-hot-keywords-trending ul.kw-trending-list a.kw-trending-link:hover {
    background: linear-gradient(135deg, rgba(255,140,66,0.15));
    border-color: var(--sarahome-v3-color-accent);
}

@media (max-width: 1024px) {
    /* Tablet: 5-col → 3-col */
    .search-hot-keywords-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--sarahome-v3-space-4);
    }
}

@media (max-width: 768px) {
    /* Mobile: 3-col → 2-col */
    .search-hot-keywords-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--sarahome-v3-space-4);
    }
    .search-toolbar { gap: var(--sarahome-v3-space-2) var(--sarahome-v3-space-3); padding: 0.5rem 0.625rem; }
    .search-quick-tabs { width: 100%; justify-content: flex-start; }
    .search-quick-tab { padding: 0.25rem 0.625rem; font-size: var(--sarahome-v3-font-xs); }
}

@media (max-width: 768px) {
    .search-hot-keywords {
        padding: var(--sarahome-v3-space-4);
        margin: var(--sarahome-v3-space-4) 0;
    }
    .search-hot-keywords-title {
        margin-bottom: 0.75rem;
    }
    /* §R-N+421 commit 6 (2026-08-11): mobile collapse + expand toggle
       根因: 5 欄 1-col stack 過長 (avg 250-400px), mobile 用戶 scroll 太多.
       修法: closed-by-default, click title expand, all 5 cols 一次性顯示
       但每 col 只露首 2 個 items, "+ N 更多" 展開按鈕. */
    /* §R-N+4xx+43 (2026-08-12) — T3 mobile hot keywords 2-col compact
       根因 (live audit 390x844): style.css 2061 §R-N+421 1-col stack + collapse
       5 欄全部疊落嚟, 高 1034px; 2-col grid 每欄 h3+3 items, 5 欄 3 rows ≈ 550px (-47%).
       對位 §R-N+290 style consistency (mobile 2-col compact) + §R-N+421 collapse 保留. */
    .search-hot-keywords-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--sarahome-v3-space-3) var(--sarahome-v3-space-4);
    }
    .search-hot-keywords-col h3 {
        margin-bottom: 0.25rem;
    }
    /* Pill/chip style keeps 44px touch target via padding */
    .search-hot-keywords-col a.kw-link {
        display: flex;
        align-items: center;
        min-height: var(--sarahome-v3-touch-target);
        padding: 0.375rem 0.625rem;
    }
    /* Mobile collapse: first 3 items visible, rest hidden until expanded */
    .search-hot-keywords-col.mobile-collapsed li:nth-child(n+4) {
        display: none;
    }
    .search-hot-keywords-col.mobile-expanded li:nth-child(n+4) {
        display: flex;
    }
    /* Mobile toggle button (default hidden, only @480px show) */
    .search-hot-keywords-expand-toggle {
        display: none;
    }
    .search-hot-keywords-expand-toggle.is-visible {
        display: inline-flex;
        align-items: center;
        gap: var(--sarahome-v3-space-1);
        margin-top: 0.5rem;
        padding: 0.375rem 0.625rem;
        min-height: 44px;
        font-size: var(--sarahome-v3-font-xs);
        color: var(--sarahome-v3-color-accent-aa);
        background: transparent;
        border: 1px dashed var(--sarahome-v3-border);
        border-radius: 0.375rem;
        cursor: pointer;
    }
}
@media (min-width: 481px) {
    /* Desktop/tablet: hide mobile toggle, always show all items */
    .search-hot-keywords-expand-toggle {
        display: none !important;
    }
    .search-hot-keywords-col li {
        display: flex !important;
    }
}

/* ============ Search Autocomplete Dropdown (§R-N+421 commit 4) ============
   即時建議下拉框: trending / listings / districts 三類建議 */
.search-autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: var(--sarahome-v3-radius-sm);
    box-shadow: var(--sarahome-v3-shadow-hover);
    max-height: 360px;
    overflow-y: auto;
    z-index: 100;
    display: none;
    margin-top: 0.25rem;
}
.search-autocomplete-dropdown.active {
    display: block;
}
.search-autocomplete-section {
    padding: var(--sarahome-v3-space-2) 0;
    border-bottom: 1px solid var(--sarahome-v3-border);
}
.search-autocomplete-section:last-child {
    border-bottom: none;
}
.search-autocomplete-section-title {
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-text-secondary);
    padding: 0.25rem 0.75rem 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.search-autocomplete-item {
    display: block;
    padding: var(--sarahome-v3-space-2) var(--sarahome-v3-space-3);
    font-size: 0.8125rem;
    color: var(--sarahome-v3-color-fg);
    text-decoration: none;
    transition: background var(--sarahome-v3-duration-fast, 0.15s) ease;
    cursor: pointer;
}
.search-autocomplete-item:hover,
.search-autocomplete-item.selected {
    background: var(--sarahome-v3-color-accent);
    color: #FFFFFF;
}
/* Search field input wrapper needs relative positioning for dropdown */
.search-field-input {
    position: relative;
}

/* ============ Search Page V2 (§R-N+101 CEO 投訴 UI 不滿意) ============
   對位 §R-N+99 form pattern + §R7 breadcrumb + §R-N+70 正式書面語
   + §R36 mobile-friendly + §R27 0-inline + §R-N+98 search V2 對位
   設計: page-title-v2 + breadcrumb + result-count strip + chip filter + clean pagination
   ============================================================= */

/* --- Search page layout (對位 V2 home page-section 對位 pattern) --- */
.search-page-v2 {
    max-width: 1280px;
    margin: 0 auto;
}

/* --- Result count strip (對位 §R60 toolbar) --- */
.result-strip {
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: var(--sarahome-v3-space-4);
     flex-wrap: wrap;
     margin: var(--sarahome-v3-space-2) 0;
     padding: 0.3rem 1rem;
     background: rgba(45, 125, 210, 0.05);
     border: 1px solid rgba(45, 125, 210, 0.15);
     border-radius: var(--sarahome-v3-radius-sm);
     font-size: 0.9375rem;
 }
.result-strip .result-count {
    margin: 0;
    color: var(--sarahome-v3-color-fg);
}
.result-strip .result-count strong {
    color: var(--sarahome-v3-color-accent);
    font-weight: 700;
    font-size: var(--sarahome-v3-font-md);
    margin: 0 0.25rem;
}
.result-strip .result-page-info {
    color: var(--sarahome-v3-color-text-secondary);
    font-size: var(--sarahome-v3-font-sm);
}

/* --- Pagination (§R36 mobile-friendly clean) --- */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sarahome-v3-space-3);
    margin: 2rem 0 1rem;
    flex-wrap: wrap;
}
.pagination-link {
    padding: var(--sarahome-v3-space-2) var(--sarahome-v3-space-4);
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    color: var(--sarahome-v3-color-fg);
    text-decoration: none;
    font-size: 0.875rem;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.pagination-link:hover {
    background: var(--sarahome-v3-color-bg);
    border-color: var(--sarahome-v3-color-accent);
    color: var(--sarahome-v3-color-accent);
    text-decoration: none;
}
.pagination-info {
    color: var(--sarahome-v3-color-text-secondary);
    font-size: 0.875rem;
    padding: 0 0.5rem;
}

/* T5 (§R-N+4xx+45, 2026-08-12) — pagination 頁碼數字 window
   對位 §R-N+138 disk-truth: 之前只有 prev/next, 3 頁要逐頁㩒.
   Desktop: square num buttons + current highlighted (accent bg).
   Mobile ≤768: 頁碼收窄 (smaller padding), ellipsis muted. */
.pagination-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.375rem;
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    color: var(--sarahome-v3-color-fg);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.pagination-num:hover {
    background: var(--sarahome-v3-color-bg);
    border-color: var(--sarahome-v3-color-accent);
    color: var(--sarahome-v3-color-accent);
    text-decoration: none;
}
.pagination-num-current,
.pagination-num-current:hover {
    background: var(--sarahome-v3-color-accent);
    border-color: var(--sarahome-v3-color-accent);
    color: #FFFFFF;
    cursor: default;
}
.pagination-ellipsis {
    color: var(--sarahome-v3-color-text-tertiary);
    padding: 0 0.25rem;
    user-select: none;
}
@media (max-width: 768px) {
    .pagination-num {
        min-width: 2rem;
        height: 2rem;
        font-size: 0.8125rem;
        padding: 0 0.25rem;
    }
    .pagination {
        gap: var(--sarahome-v3-space-2);
        margin: 1.5rem 0 0.75rem;
    }
    .pagination-link {
        padding: var(--sarahome-v3-space-2) var(--sarahome-v3-space-3);
        font-size: 0.8125rem;
    }
    .pagination-info {
        font-size: 0.75rem;
    }
}

/* --- Sort dropdown right-aligned in toolbar (§R60 audit toolbar 對位) --- */
.sort-toolbar {
    display: flex;
    align-items: center;
    gap: var(--sarahome-v3-space-2);
    flex-wrap: wrap;
}
.sort-toolbar label {
    font-size: var(--sarahome-v3-font-sm);
    color: var(--sarahome-v3-color-text-secondary);
    font-weight: 500;
}
.sort-toolbar select {
    padding: 0.375rem 0.625rem;
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    background: var(--sarahome-v3-surface-card);
    color: var(--sarahome-v3-color-fg);
    font-size: var(--sarahome-v3-font-sm);
    cursor: pointer;
}

/* --- Listing grid empty state (§R36 對位) --- */
.search-empty-state {
     text-align: center;
     padding: 3rem 1.5rem;
     background: var(--sarahome-v3-color-bg);
     border: 1px dashed var(--sarahome-v3-border);
     border-radius: 0.625rem;
 }
 .search-empty-state-text {
     font-size: 1.0625rem;
     color: var(--sarahome-v3-color-fg);
     font-weight: 500;
     margin: 0 0 var(--sarahome-v3-space-2);
 }
 .search-empty-state-hint {
     font-size: 0.9375rem;
     color: var(--sarahome-v3-color-text-secondary);
     margin: 0;
 }
 .search-empty-state-actions {
     display: flex;
     flex-wrap: wrap;
     gap: var(--sarahome-v3-space-3);
     justify-content: center;
     align-items: center;
     margin-top: 1.25rem;
 }

 /* R-N+L1-Q4 (2026-08-19) — 0-result UX closure
    3-tier layout: primary register nudge + clear/contact + quick-jump hot districts/keywords
    對位 §R-N+62 KISS + §R-N+290 style consistency + §R-N+79 selective narrative. */
 .search-empty-state--q4 {
     text-align: center;
     padding: 2rem 1.5rem 2.5rem;
     background: var(--sarahome-v3-color-bg);
     border: 1px dashed var(--sarahome-v3-border);
     border-radius: 0.625rem;
 }
 .search-empty-state-primary {
     margin-bottom: 1.25rem;
 }
 .search-empty-state-register-nudge {
     margin-top: 1rem;
 }
 .search-empty-state-cta-primary {
     display: inline-flex;
     align-items: center;
     gap: var(--sarahome-v3-space-2);
     padding: var(--sarahome-v3-space-2) 1.125rem;
     font-weight: 600;
 }
 .search-empty-state-cta-primary svg {
     flex-shrink: 0;
 }
 .search-empty-state-cta-secondary {
     /* smaller weight; primary CTA carries visual focus */
     font-weight: 500;
 }
 .search-empty-state-quick-links {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
     gap: var(--sarahome-v3-space-6);
     margin-top: var(--sarahome-v3-space-8);
     padding-top: var(--sarahome-v3-space-6);
     border-top: 1px solid var(--sarahome-v3-border);
     text-align: left;
 }
 .search-empty-state-quick-col h3.search-empty-state-quick-title {
     display: flex;
     align-items: center;
     gap: var(--sarahome-v3-space-2);
     font-size: 0.875rem;
     font-weight: 600;
     color: var(--sarahome-v3-color-fg);
     margin: 0 0 var(--sarahome-v3-space-2);
 }
 .search-empty-state-quick-title svg {
     color: var(--sarahome-v3-color-accent);
     flex-shrink: 0;
 }
 .search-empty-state-quick-list {
     list-style: none;
     padding: 0;
     margin: 0;
     display: flex;
     flex-wrap: wrap;
     gap: var(--sarahome-v3-space-2) var(--sarahome-v3-space-3);
 }
 .search-empty-state-quick-list li {
     margin: 0;
 }
 .search-empty-state-quick-list .kw-link {
     font-size: 0.8125rem;
     color: var(--sarahome-v3-color-fg);
     text-decoration: none;
     padding: 0.125rem 0;
     border-bottom: 1px solid transparent;
     transition: border-color 0.15s ease, color 0.15s ease;
 }
 .search-empty-state-quick-list .kw-link:hover {
     color: var(--sarahome-v3-color-accent);
     border-bottom-color: var(--sarahome-v3-color-accent);
 }
 .search-empty-state-quick-list .kw-count {
     color: var(--sarahome-v3-color-text-secondary);
     font-size: 0.75rem;
     margin-left: var(--sarahome-v3-space-1);
 }

 /* Mobile: quick-links stack single column, full width CTA */
 @media (max-width: 768px) {
     .search-empty-state-quick-links {
         grid-template-columns: 1fr;
         gap: var(--sarahome-v3-space-3);
     }
     .search-empty-state-cta-primary {
         width: 100%;
         justify-content: center;
     }
 }

.btn-lavender.submit-btn,
.submit-btn-full {
     width: 100%;
}

/* --- Listing result meta secondary (§R-N+78 currency disk-truth) --- */
.listing-meta-secondary {
    font-size: 0.8125rem;
    color: var(--sarahome-v3-color-text-secondary);
    margin-top: 0.25rem;
    font-family: var(--sarahome-v3-font-en);
}

/* V24: 頂部橫條快速搜尋 (取代左側 sidebar, 節省 vertical space)
   - Full-width 喺頁頂, results 喺下面
   - Single row grid (≥1024px), 2-row (768-1024px), bottom-sheet (≤768px mobile) */
.search-filter-header {
    display: flex;
    align-items: center;
    /* §R-N+4xxx+2 (2026-09-04) — search-filter-clear 搬到 form-mode, header 只剩 h2
       移除 justify-content: space-between (無右 element 對齊), 改 default flex-start.
       mobile sticky 同步移除 (見下面 @media block). */
    gap: var(--sarahome-v3-space-2);
    margin: 0 0 var(--sarahome-v3-space-2);
    padding: 0;
}
.search-filter-header h2 svg {
    color: var(--sarahome-v3-color-accent);
}
.search-filter-clear {
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-text-secondary);
    text-decoration: none;
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 999px;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.search-filter-clear:hover {
    color: #EF4444;
    border-color: #EF4444;
    background: rgba(239, 68, 68, 0.04);
    text-decoration: none;
}

/* V25: 頂部橫條 field grid (極度 compact, 無 label, 用 placeholder)
   Desktop ≥1024px: 1 row 7-col (keyword 1.6fr / district 1fr / type 1fr / price 1.4fr / rooms 0.8fr / adv auto / submit auto)
   Tablet 768-1024px: 2 rows
   Mobile ≤768px: 1 col stack, label 升級可見 (§R-N+401) */
.search-filter-fields {
    display: grid;
    grid-template-columns: 3fr 9fr;
    gap: var(--sarahome-v3-space-2);
}
@media (min-width: 768px) {
    .search-filter-fields {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--sarahome-v3-space-2);
    }
}
@media (min-width: 1024px) {
    .search-filter-fields {
        /* §R-N+15xx+2 (2026-08-18, CEO verdict D) — drawer 移除 inline 展開 3 fields
           之前: keyword/district/type/price/rooms/drawer-open/submit = 7 col
           之後: keyword/district/type/price/rooms/view/decoration/facing/submit = 9 col
           高級篩選 (景觀/裝修/座向) 由 hidden drawer 搬入 main row, 0 重疊 */
        grid-template-columns: 1.4fr 0.9fr 0.9fr 1.2fr 0.7fr 0.9fr 0.9fr 0.9fr auto;
        gap: var(--sarahome-v3-space-2);
        align-items: center;
    }
}

.search-field {
    display: flex;
    flex-direction: column;
    gap: 0;
}
/* §R-N+401 (2026-08-07) — mobile bottom-sheet 升級 visible label, 對位 §P-MD-05 44px tap target + 視覺 scan.
   Desktop ≥1024px 仍 sr-only 保留 compact look (V25 design). */
.search-field label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@media (max-width: 768px) {
    .search-filter-panel:not(.mobile-filter-open) .search-field label,
    .search-filter-panel.mobile-filter-open .search-field label {
        position: static !important;
        width: auto !important;
        height: auto !important;
        padding: 0 0 var(--sarahome-v3-space-1) !important;
        margin: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        white-space: normal !important;
        border: 0 !important;
        font-size: 0.8125rem;
        font-weight: 600;
        color: var(--sarahome-v3-color-text-secondary);
    }
}
.search-field-input {
    position: relative;
    display: flex;
    align-items: center;
}
.search-field-input .field-icon {
    position: absolute;
    left: 0.5rem;
    color: var(--sarahome-v3-color-text-tertiary);
    pointer-events: none;
    z-index: 1;
}
.search-field-input input,
.search-field-input select {
    width: 100%;
    min-height: 32px;
    padding: 0.375rem 0.5rem 0.375rem 1.875rem;
    font-size: 1rem;
    color: var(--sarahome-v3-color-fg);
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    appearance: none;
}
.search-field-input select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.5rem center;
    padding-right: 1.625rem;
}
.search-field-input input:focus,
.search-field-input select:focus {
    outline: none;
    border-color: var(--sarahome-v3-color-accent);
    box-shadow: 0 0 0 2px var(--sarahome-v3-shadow-color-brand-blue-strong);
}
.search-field-input input::placeholder {
    color: var(--sarahome-v3-color-text-tertiary);
}

/* fieldset reset for inline form layout */
fieldset.search-field {
     border: 0;
     padding: 0;
     margin: 0;
     /* 對齊其他 .search-field 嘅 flex column layout */
     display: flex;
     flex-direction: column;
}
fieldset.search-field legend {
     /* 對齊其他 sr-only label：視覺隱藏但保留 accessibility */
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap;
     border: 0;
}

/* 價格範圍: 2 欄 inline + 分隔符 */
.search-field-price {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--sarahome-v3-space-1);
    align-items: center;
}
.search-field-price input {
    width: 100%;
    min-height: 32px;
    padding: 0.375rem 0.5rem;
    font-size: 1rem;
    color: var(--sarahome-v3-color-fg);
    background: var(--sarahome-v3-surface-card);
    border: 1px solid var(--sarahome-v3-border);
    border-radius: 0.375rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.search-field-price input:focus {
    outline: none;
    border-color: var(--sarahome-v3-color-accent);
    box-shadow: 0 0 0 2px var(--sarahome-v3-shadow-color-brand-blue-strong);
}
.search-field-price .price-separator {
    color: var(--sarahome-v3-color-text-tertiary);
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0 0.0625rem;
}

/* 高級篩選 toggle */
.filter-drawer-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sarahome-v3-space-1);
    min-height: 32px;
    padding: 0.375rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-text-secondary-aa);
    background: var(--color-bg-soft);
    border: 1px solid transparent;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}
.filter-drawer-open:hover {
    background: var(--sarahome-v3-shadow-color-brand-blue-soft);
    color: var(--sarahome-v3-color-accent);
}
.filter-drawer-open .chevron {
    flex: 0 0 auto;
}

/* Submit CTA (inline in filter bar) */
.search-submit-btn:hover {
    background: #1F4D5E;
    box-shadow: 0 2px 6px rgba(45, 125, 210, 0.28);
    transform: translateY(-1px);
}
.search-submit-btn:active {
     transform: translateY(0);
}
/* M4 — submit loading state (prevent double-submit + spinner feedback) */
.search-submit-btn:disabled {
     cursor: wait;
     opacity: 0.7;
}
.search-submit-btn .search-submit-spinner {
     display: none;
     width: 12px;
     height: 12px;
     border: 2px solid rgba(255, 255, 255, 0.3);
     border-top-color: #FFFFFF;
     border-radius: 50%;
     animation: spin 0.6s linear infinite;
}
.search-submit-btn.is-loading .search-submit-spinner {
     display: inline-block;
}
@keyframes spin {
     to { transform: rotate(360deg); }
}
/* §R-N+149.3b — drawer 320px 內闊 對位 3 欄 grid minmax(160px, 1fr) expert 唔夠 (不限景觀 4 chars overflow 對位每 cell 100px 內闊), 對位 §R-N+141 T23 universal pitfall defensive layer 改 1 欄 對位 drawer 內闊 */
.search-advanced-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sarahome-v3-space-3);
    margin-top: 0.875rem;
}
/* §R-N+141: 移除 CSS order hack — DOM order 已修正 = visual order */
.search-results { display: flex; flex-direction: column; }

/* §R-N+276 (2026-07-30) — UX batch 2: 結果摘要 stats bar (對位 power-user macro info)
   - 漸層背景區分 result-strip
   - strong 紅色 anchor (sarahome-v3-color-cta)
   - flex-wrap mobile (細屏自動 stack) */
.search-summary-stats {
     display: flex;
     flex-wrap: wrap;
     align-items: center;
     gap: 0.5rem 0.875rem;
     margin: 0 0 0.2rem;
     padding: 0.3rem 1rem;
     background: linear-gradient(180deg, #F8FAFC 0%, #F1F5F9 100%);
     border-left: 3px solid var(--sarahome-v3-color-accent);
     border-radius: 0.375rem;
     font-size: var(--sarahome-v3-font-sm);
     color: var(--sarahome-v3-color-text-secondary-aa);
     line-height: 1.5;
 }
.search-summary-stat strong {
    color: var(--sarahome-v3-color-cta);
    font-size: 1.05rem;
    font-weight: 700;
    margin-right: 0.125rem;
}
.search-summary-stat-sep {
    color: #CBD5E1;
    user-select: none;
}
@media (max-width: 768px) {
    .search-summary-stats {
        font-size: 0.8125rem;
        padding: var(--sarahome-v3-space-2) var(--sarahome-v3-space-3);
        gap: 0.25rem 0.625rem;
    }
    .search-summary-stat strong {
        font-size: 0.9375rem;
    }
    /* §R-N+4xx+42 (2026-08-12) — T2 mobile stats bar 精簡
       mobile 只顯示 count + 平均價, 隱藏 範圍/地區/呎數 secondary stats
       (對位 §R-N+290 style consistency, desktop 保留全部) */
    .search-summary-stat-mobile-optional {
        display: none !important;
    }
}

/* W5-A3 (2026-08-01) — Active filter chip summary
   用戶一眼睇到所有 active filter, 點 chip 移除單一條件.
   對位 §R-N+288 brand refresh (accent=warm orange), 不破壞 existing stats bar */
.active-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sarahome-v3-space-2);
    align-items: center;
    margin: 0.75rem 0 0.5rem;
    padding: var(--sarahome-v3-space-3) var(--sarahome-v3-space-4);
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(125, 125, 125, 0.12);
    border-radius: var(--sarahome-v3-radius-md);
}
.active-filter-chips-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--sarahome-v3-color-text-secondary);
    margin-right: 0.25rem;
}
.active-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--sarahome-v3-space-1);
    padding: 0.375rem 0.625rem 0.375rem 0.75rem;
    border-radius: 999px;
    background: rgba(125, 125, 125, 0.08);
    color: var(--sarahome-v3-color-text-primary);
    font-size: 0.8125rem;
    line-height: 1.2;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.active-filter-chip:hover,
.active-filter-chip:focus {
    background: rgba(255, 140, 66, 0.15);
    color: var(--sarahome-v3-color-accent);
    outline: 2px solid var(--sarahome-v3-color-accent);
    outline-offset: 1px;
}
.active-filter-chip-key {
    font-weight: 600;
}
.active-filter-chip-value {
    font-weight: 500;
}
.active-filter-chip-x {
    margin-left: 0.25rem;
    /* §R-N+444 (2026-08-11) P2.5: 1rem → var(--sarahome-v3-font-base) 等價 token 化
       對位 §R-N+140 design token + §R-N+62 KISS 1 commit 1 根因
       .active-filter-chip-x 係 active filter chip 嘅 × 移除 button, 16px 等價 font-base. */
    font-size: var(--sarahome-v3-font-base);
    line-height: 1;
    color: var(--sarahome-v3-color-text-secondary);
}
.active-filter-chip-clear {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    border-radius: 999px;
    background: transparent;
    color: var(--sarahome-v3-color-accent);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px dashed currentColor;
    transition: background 0.15s ease;
}
.active-filter-chip-clear:hover,
.active-filter-chip-clear:focus {
    background: rgba(255, 140, 66, 0.1);
    outline: 2px solid var(--sarahome-v3-color-accent);
    outline-offset: 1px;
}
@media (max-width: 768px) {
    .active-filter-chips {
        font-size: 0.75rem;
        padding: 0.625rem 0.75rem;
    }
    .active-filter-chip,
    .active-filter-chip-clear {
        font-size: 0.75rem;
        padding: 0.3125rem 0.5rem 0.3125rem 0.625rem;
    }
}

/* P4-5 — Mobile sticky filter toolbar + bottom sheet */
.mobile-search-toolbar,
.mobile-filter-backdrop,
.mobile-filter-close {
    display: none;
}

@media (max-width: 768px) {
    .search-page-v2 > .search-page-header,
    .search-page-v2 > .breadcrumb {
        display: none;
    }

    .search-quick-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .search-quick-tabs::-webkit-scrollbar {
        display: none;
    }

    /* §R-N+399 — mobile hidden 1px sep, sub-group 維持 inline-flex 共享 1 條 scroll
       §R-N+438 (2026-08-11) — P1.2 mobile-search-toolbar chain selective extract
       (style.css → mobile.css), 對位 §R-N+348 selective chain pattern.
       mobile  (.mobile-search-toolbar + button + small + filter-backdrop)
       全部 ship 落 mobile.css 集中 mobile-first 根因 (對位 §P-MD-02),
       0 老 selector 改動 (selective narrative 守住). */
    .search-quick-tabs-sep {
        display: none;
    }

    /* .mobile-search-toolbar + .mobile-filter-backdrop chain 已 selective extract 落 mobile.css (§R-N+438) */

    .search-filter-panel {
        display: none !important;
    }

    /* §R-N+351 + §R-N+353 (2026-08-04) — Mobile bottom-sheet 避 mobile-bottom-nav 遮蓋
       根因: 舊 .mobile-filter-open z-index=102 + bottom:0 → mobile-bottom-nav (z-index=1000)
       永久蓋住 bottom-sheet 底部 input fields (submit btn「搜尋」/ 價格 range / 房數).
       CEO 投訴: 「mobile-bottom-nav 遮蓋 search-form-compact」根因 = sheet 內 form 嘅
       底行 form 元素被 nav 蓋住.

       §R-N+351 初始 fix:
       - z-index 102 → 1100 (高過 .mobile-bottom-nav 1000, sheet 永久喺 nav 上面)
       - bottom 0 → calc(56px + env(safe-area-inset-bottom))
       - max-height: 82vh → calc(100vh - 56px - env(safe-area-inset-bottom))

       §R-N+353 ad-hoc verify 根因 (Playwright 375x667 iOS Safari):
       - nav 真實 height = 69.4px (48 item + 21 safe-area), 預估 56 唔夠
       - sheet bottom = 611px vs nav top = 597.6px → 重疊 13.4px ❌
       根因: 56 magic number 假設 nav 上下 padding=0, 但 iOS safe-area 已內含 nav padding-bottom,
       sheet bottom 需要 cover 全 nav height (含 safe-area) + 4px gap.

       §R-N+353 fix:
       - bottom calc 56 → 72 (對位 §R-N+350 預估 nav 真值 72px)
       - max-height calc 同步 +16 (100vh - 72 - safe-area)
       - padding-bottom 加 1rem 預返 sheet 自身 scroll 空間 (submit btn 唔再被 sheet 自己 padding 推入 nav 區)

       對位 §R-N+62 KISS: 1 commit 1  (§R-N+353 fix-up), 純 CSS, 0 template/JS 改動.
       對位 hermes-verify P131-G7-B: Playwright real engine disk-truth ad-hoc verify audit. */
    .search-filter-panel.mobile-filter-open {
        display: block !important;
        position: fixed;
        left: 0;
        right: 0;
        bottom: calc(72px + env(safe-area-inset-bottom));
        z-index: 1100;
        /* §R-N+4xxx (2026-09-04) — iOS notch / Dynamic Island 避讓
           根因: 舊 max-height 只扣 env(safe-area-inset-bottom), 令 panel top 喺 viewport y=0,
           iPhone 14 Pro+ 嘅 Dynamic Island (safe-area-inset-top=59px) 直接遮住 panel header
           — 「快速搜尋」標題、「清除」按鈕 (search-filter-clear) 同 「×」close 按鈕都喺 notch 入面,
           user 投訴「上面部份嘅清除按鈕有時睇唔到」。
           修法: max-height 加扣 env(safe-area-inset-top) (devices without notch = 0, 0 影響),
           padding-top 加 env(safe-area-inset-top) 推 panel 內容離開 safe area.
           對位 §R-N+62 KISS: 1 根因 1 fix, 純 CSS, 0 template/JS 改動. */
        max-height: calc(100vh - 72px - env(safe-area-inset-bottom) - env(safe-area-inset-top));
        margin: 0;
        padding: calc(1.25rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));
        overflow-y: auto;
        border-radius: 1rem 1rem 0 0;
        box-shadow: 0 -10px 32px rgba(17, 24, 39, 0.18);
    }

    .mobile-filter-close {
        display: inline-flex;
        position: absolute;
        /* §R-N+4xxx (2026-09-04) — close 按鈕 (×) 同樣需避 iOS notch
           配合 panel padding-top 加 env(safe-area-inset-top), close 按鈕 top 同步下移,
           確保 12px gap 喺 safe area 外. */
        top: calc(0.75rem + env(safe-area-inset-top));
        right: 0.75rem;
        z-index: 2;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        color: var(--sarahome-v3-color-fg);
        background: var(--sarahome-v3-surface-section-alt);
        border: 1px solid var(--sarahome-v3-border);
        border-radius: 50%;
        font-size: 1.5rem;
        cursor: pointer;
    }

    .search-filter-panel .search-filter-header {
        padding-right: 3rem;
        /* §R-N+4xxx+2 (2026-09-04) — header 唔再 sticky
           根因 (CEO 2026-09-04 verdict): 「一些手機版本還是看不到 search-filter-header」,
           89c2894 嘅 sticky header 在部分 iOS Safari overflow container 內偶發失效
           (即使 spec 支援, 喺 nested sticky context + dynamic island 仍會失效),
           且 header 只剩 h2「快速搜尋」標題 — 純 info, 用戶 critical action (切買/租、
           清除、quick filter) 全部在 .search-form-mode. 改 sticky form-mode 確保
           clear + type-toggle + quick-tabs 永遠喺 panel sheet top visible.
           對位 §R-N+62 KISS: 1 根因 1 fix, 純 CSS, 0 template/JS 改動.
           對位 §R-N+138 disk-truth: 不影響 desktop (≥1024px 唔 trigger scroll panel sheet). */
        padding-top: 0.25rem;
        padding-bottom: 0.5rem;
        margin-bottom: var(--sarahome-v3-space-2);
    }

    .search-filter-panel .search-form-mode {
        /* §R-N+4xxx+2 (2026-09-04) — form-mode sticky 取代 header sticky
           根因: clear button 已搬入 form-mode (type-toggle 右手邊), 連同 type-toggle
           同 quick-tabs 整個 toolbar 都係 user critical action surface. 用 panel
           overflow-y: auto scroll 時, 整個 toolbar 永久 stick 喺 panel sheet top.
           修法: position: sticky; top: 0; + background (防 scroll content 透出),
           z-index: 1 (確保 toolbar 喺 form fields 上面), 對應 89c2894 嘅
           header-sticky CSS 移到 form-mode 上, selective narrative 守住.
           對位 §R-N+62 KISS: 1 commit 1 closure cluster (sticky 對象切換). */
        position: sticky;
        top: 0;
        z-index: 1;
        background: var(--sarahome-v3-surface-card, #FFFFFF);
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
        box-shadow: 0 1px 0 var(--sarahome-v3-border, #E5E7EB);
    }

    .mobile-filter-lock {
        overflow: hidden;
    }

    .search-results .result-strip {
        position: sticky;
        top: 126px;
        z-index: 70;
        margin: 0 0 var(--sarahome-v3-space-3);
        background: var(--sarahome-v3-surface-card);
    }
}


/* ==========================================================================
   §R-N+4xxx+62 (2026-09-05, Round 12) — Highlight new matches (saved-search deep-link)
   對位 §R-N+288 brand refresh: 暖橙 #FF8C42 gradient border + glow
   對位 §R-N+416 結構性反饋: banner 對位 saved-searches count closure
   ========================================================================== */

.listing-card-v2.is-new-match {
    border: 2px solid var(--color-accent, #FF8C42);
    box-shadow: 0 0 0 3px rgba(255, 140, 66, 0.12), 0 4px 12px rgba(255, 140, 66, 0.15);
    animation: new-match-pulse 2s ease-in-out 1;
    position: relative;
}

.listing-card-v2.is-new-match::before {
    content: '新配對';
    position: absolute;
    top: -10px;
    left: 12px;
    background: linear-gradient(135deg, #FF8C42, #FF6B35);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 10px;
    z-index: 2;
    box-shadow: 0 2px 4px rgba(255, 140, 66, 0.3);
    letter-spacing: 0.5px;
}

@keyframes new-match-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 140, 66, 0.5), 0 4px 12px rgba(255, 140, 66, 0.15); }
    50% { box-shadow: 0 0 0 8px rgba(255, 140, 66, 0.15), 0 4px 12px rgba(255, 140, 66, 0.15); }
    100% { box-shadow: 0 0 0 3px rgba(255, 140, 66, 0.12), 0 4px 12px rgba(255, 140, 66, 0.15); }
}

.search-highlight-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    background: linear-gradient(135deg, rgba(255, 140, 66, 0.12), rgba(255, 107, 53, 0.08));
    border-left: 4px solid var(--color-accent, #FF8C42);
    border-radius: 6px;
    margin-bottom: 20px;
}

.search-highlight-icon {
    font-size: 1.4rem;
    line-height: 1;
}

.search-highlight-text {
    color: var(--color-text-primary, #1F2937);
    line-height: 1.5;
}

.search-highlight-text strong {
    color: var(--color-accent, #FF6B35);
    font-weight: 700;
}

@media (max-width: 768px) {
    .listing-card-v2.is-new-match::before {
        font-size: 0.65rem;
        padding: 2px 8px;
    }
    .search-highlight-banner {
        padding: 12px 16px;
    }
}
