/* 房市數據總覽頁（market.html，Market Hub IA 2.0）專用版面
 *
 * 卡片與清單樣式（.jr-feat / .jr-item / .jr-empty / .mv2-cards / .art-cta）沿用
 * assets/journal.css 既有元件，這裡只補頁面自己的區塊間距、快速意圖／依類型找
 * 的卡片格柵，與所有市場資料三欄版面。刻意不建立新的視覺語言——顏色、圓角、
 * 字級全部沿用既有 CSS 變數與既有元件。
 */

.mkt-section{padding:clamp(30px,4vw,44px) 0}
.mkt-section + .mkt-section{border-top:1px solid var(--line)}
.mkt-section-h{
  font-family:var(--serif);font-size:clamp(1.2rem,2.6vw,1.5rem);font-weight:600;
  color:var(--text);margin:0 0 22px;
}
.mkt-section-sub{
  font-family:var(--sans);font-size:.88rem;color:var(--text-mute);
  margin:-14px 0 24px;
}

/* Phase 27D-1：搜尋與篩選。刻意不做 SaaS 感的滿版工具列——維持跟其餘
   Market Hub 區塊一樣的留白、細框線、低調互動，filter 用一般 <select>
   而不是彩色 pill，符合這是房產研究站而不是資料後台的定位。 */
.mkt-search-field{display:flex;flex-direction:column;gap:8px;max-width:520px;margin-bottom:20px}
.mkt-search-field label,
.mkt-filter-field label{
  font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-strong);font-weight:500;
}
.mkt-search-field input[type="search"]{
  font-family:var(--sans);font-size:.96rem;color:var(--text);background:var(--bg);
  border:1px solid var(--line);border-radius:2px;padding:12px 14px;width:100%;
  transition:border-color .2s ease;
}
.mkt-search-field input[type="search"]::placeholder{color:var(--text-mute)}
.mkt-search-field input[type="search"]:focus{outline:none;border-color:var(--accent)}
.mkt-search-field input[type="search"]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.mkt-filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,220px));gap:16px 20px;align-items:end}
.mkt-filter-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.mkt-filter-field[hidden]{display:none}
.mkt-filter-field select{
  font-family:var(--sans);font-size:.9rem;color:var(--text);background:var(--bg);
  border:1px solid var(--line);border-radius:2px;padding:10px 12px;width:100%;
  transition:border-color .2s ease;
}
.mkt-filter-field select:focus{outline:none;border-color:var(--accent)}
.mkt-filter-field select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mkt-search-clear{align-self:end}
.mkt-search-clear:disabled{opacity:.4;cursor:not-allowed}

/* scroll-margin-top：header.bar 是 sticky，discovery 入口點擊後會捲到這裡，不能被蓋住標題 */
.mkt-search-results{margin-top:32px;padding-top:28px;border-top:1px solid var(--line);scroll-margin-top:88px}
#mkt-search-results-h:focus{outline:none}
#mkt-search-results-h:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.mkt-search-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.mkt-search-results-head h3{
  font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--text);margin:0;
}
.mkt-search-count{font-family:var(--sans);font-size:.82rem;color:var(--text-mute);margin:0}

/* 搜尋結果卡片沿用 .jr-feat／researchCardNode()，但不能套用 .mkt-research-grid
   的手機「只顯示前 3 張」規則——搜尋結果本來就沒有 pagination（STEP 15），
   一次全部顯示，所以另外給一個沒有 nth-child 隱藏規則的 grid class。 */
.mkt-search-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:720px){.mkt-search-grid{grid-template-columns:1fr}}

/* 最新研究與報告：unified feed，週報／月報／專題共用 .jr-feat 卡片，見下方 720px */
.mkt-research-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mkt-research-more{display:none}

.mkt-section-foot{margin-top:24px}

/* 依內容類型找：沿用 .mv2-cta-role 的「整卡可點、標題＋說明」精神另建一份，
   因為這裡是 4 張不是 2 張，欄數不同無法直接共用既有 class。 */
.mkt-browse-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mkt-browse-card{
  display:block;border:1px solid var(--line);border-radius:2px;padding:18px 20px;
  text-decoration:none;background:var(--panel);transition:border-color .2s ease;
}
.mkt-browse-card:hover{border-color:var(--accent-strong)}
.mkt-browse-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mkt-browse-title{
  display:block;font-family:var(--serif);font-size:1.02rem;font-weight:600;
  color:var(--text);margin-bottom:6px;
}
.mkt-browse-desc{display:block;font-family:var(--sans);font-size:.84rem;color:var(--text-soft);line-height:1.6}

/* Phase 27D-B：依主題／依市場範圍找（discovery filter links）。維持研究站的克制語氣：
   細框線的小 chip，不用彩色 pill、不做 tag cloud；顏色全部沿用既有變數（明暗主題自動跟著換）。
   目前選中的入口用三種線索一起標示（框線色＋字重＋底部金線），不只靠顏色。 */
.mkt-discover-row{display:grid;grid-template-columns:132px 1fr;gap:12px 24px;align-items:start;padding:14px 0}
.mkt-discover-row[hidden]{display:none}
.mkt-discover-row + .mkt-discover-row{border-top:1px solid var(--line)}
.mkt-discover-row:first-of-type{padding-top:0}
.mkt-discover-label{
  font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent-strong);font-weight:500;margin:0;padding-top:12px;
}
.mkt-discover-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.mkt-chip{
  display:inline-flex;align-items:center;min-height:44px;padding:0 16px;
  border:1px solid var(--line);border-radius:2px;background:var(--panel);
  color:var(--text-soft);font-family:var(--sans);font-size:.9rem;line-height:1.4;
  text-decoration:none;transition:border-color .2s ease,color .2s ease;
}
.mkt-chip:hover{border-color:var(--accent-strong);color:var(--text)}
.mkt-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mkt-chip[aria-current="true"]{
  border-color:var(--accent-strong);color:var(--text);font-weight:600;
  box-shadow:inset 0 -2px 0 var(--accent);
}

/* 所有市場資料（原「歷史資料」）三欄清單 */
.mkt-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.mkt-history-col{min-width:0}
.mkt-history-h{
  font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent-strong);margin:0 0 14px;font-weight:500;
}
.mkt-history-col .jr-list{border-top:1px solid var(--line)}
.mkt-history-col .jr-item{padding:18px 0;grid-template-columns:64px 1fr}
.mkt-history-col .jr-item .jr-go{display:none}
.mkt-history-col .jr-body h3{font-size:1rem}
.mkt-history-empty{
  font-family:var(--sans);font-size:.86rem;color:var(--text-mute);
  padding:18px 0 0;margin:0;
}

@media(max-width:720px){
  .mkt-discover-row{grid-template-columns:1fr;gap:10px}
  .mkt-discover-label{padding-top:0}
}

@media(max-width:900px){
  .mkt-history-grid{grid-template-columns:1fr;gap:8px}
  .mkt-history-col + .mkt-history-col{border-top:1px solid var(--line);padding-top:24px;margin-top:8px}
}

/* 720px 與 assets/journal.css 的 .jr-item 斷點一致，讓 .jr-feat 卡片在同一個
   寬度下跟著改版面，不要各自用不同的斷點值製造不一致的手機體驗。
   手機首屏不能一次塞完整份 unified feed（STEP 14）：只留前 3 張，第 4 張（及
   以後）預設隱藏，按「查看更多」才加上 .is-expanded 顯示全部。卡片本身一直
   都在 DOM 裡，只是視覺上先收起來——「所有市場資料」的去重排除清單看到的
   還是完整集合，不受這層手機專屬的顯示/隱藏影響。 */
@media(max-width:720px){
  .mkt-research-grid{grid-template-columns:1fr}
  .mkt-research-grid > .mkt-research-card:nth-child(n+4){display:none}
  .mkt-research-grid.is-expanded > .mkt-research-card:nth-child(n+4){display:block}
  .mkt-research-more{display:inline-block;margin-top:20px}
}

@media(max-width:600px){
  .mkt-section-h{margin-bottom:16px}
  .mkt-browse-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .mkt-history-col .jr-item{grid-template-columns:1fr;gap:6px}
  .mkt-filter-bar{grid-template-columns:1fr}
  .mkt-search-clear{width:100%}
}

/* ---- 新增：分析頁背景與色調 ---- */
body:has(main > .mkt-hero){
  background-color:#F3F1EC;
  --bg:#F3F1EC;
  --panel:#FBFAF7;
  /* 本頁固定淺色底，文字 token 也要固定成淺色主題的值；
     否則深色模式下 Header 與導覽下拉會是「淺字配淺底」，幾乎看不見 */
  --text:var(--ink);
  --text-soft:#4A4638;
  --text-mute:var(--muted);
  --line:rgba(27,42,74,.14);
  --accent-strong:#A9863C;
  /* Phase 2 semantic tokens 同樣固定成淺色主題的值 */
  --data:#2B5C8A;--data-soft:rgba(43,92,138,.08);--data-line:rgba(43,92,138,.32);
  --attention-ink:#856521;--attention-soft:rgba(198,160,82,.13);
  --risk:#A2432B;--risk-soft:rgba(162,67,43,.08);--risk-line:rgba(162,67,43,.34);
}

/* ---- Hero 摘要區 ---- */
.mkt-hero{padding:clamp(66px,8vw,88px) 0 clamp(44px,5vw,56px);background:linear-gradient(180deg,#F3F1EC 0%,#F9F6F0 100%)}
.mkt-hero .eyebrow{margin-bottom:12px}
.mkt-hero .eyebrow .idx{font-size:.9em}
#mkt-hero-h{margin:0 0 8px;font-size:clamp(2.2rem,4vw,2.8rem);font-weight:600;letter-spacing:.02em;line-height:1.1}
.mkt-hero-subtitle{margin:0 0 24px;font-size:clamp(1.6rem,2.8vw,2rem);font-weight:400;letter-spacing:.01em;color:#74716C;font-family:var(--serif)}
.mkt-summary{max-width:72ch;font-size:.98rem;line-height:1.85;color:#4A4638;margin:0;padding:0}

/* ---- KPI 區段 ---- */
.mkt-kpi-section{padding:clamp(56px,6vw,72px) 0;background:#FBFAF7;border-top:1px solid #DDD9D1;border-bottom:1px solid #DDD9D1}
.mkt-kpi-h{
  font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.3rem);font-weight:600;
  color:#1B1D1F;margin:0 0 28px;letter-spacing:.01em
}

/* ---- Sticky Navigation ---- */
.mkt-sticky-nav{
  position:sticky;top:66px;z-index:40;
  background:#FBFAF7;border-bottom:1px solid #DDD9D1;
  padding:0;margin:0;
}
.mkt-sticky-nav .wrap{
  display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;
  padding:0;
}
.mkt-sticky-nav .wrap::-webkit-scrollbar{height:3px}
.mkt-sticky-nav .wrap::-webkit-scrollbar-track{background:transparent}
.mkt-sticky-nav .wrap::-webkit-scrollbar-thumb{background:#DDD9D1;border-radius:1px}
.mkt-sticky-item{
  flex:0 0 auto;padding:14px 18px;min-width:auto;
  background:none;border:none;cursor:pointer;
  font-size:.85rem;letter-spacing:.05em;
  color:#74716C;font-weight:500;
  border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease;
  font-family:var(--sans);text-transform:uppercase;
}
.mkt-sticky-item:hover{color:#273137}
.mkt-sticky-item[aria-current="page"]{
  color:#273137;border-bottom-color:#A18F78;font-weight:600
}

@media(max-width:600px){
  .mkt-sticky-item{padding:12px 14px;font-size:.78rem}
}

/* ---- Phase 2 ---- */
/* 本頁目前只支援 light（見上方 body:has(main > .mkt-hero) 的強制淺色）。
   theme toggle 在這裡按了不會有任何變化，是假的 affordance，所以直接藏起來；
   不為此重寫整頁 dark mode。 */
body:has(main > .mkt-hero) header.bar .theme-toggle{display:none}
.mkt-kpi-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px 24px;flex-wrap:wrap;margin-bottom:22px}
.mkt-kpi-head .mkt-kpi-h{margin:0}
.mkt-take{margin:0 0 26px;max-width:66ch}
.mkt-take .mkt-summary{margin:8px 0 0}
.mkt-context{border-top:1px solid var(--line)}
.mkt-context-row{display:grid;grid-template-columns:8.5em minmax(0,1fr) auto;gap:16px;align-items:baseline;
  padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.mkt-context-k{font-family:var(--sans);font-size:.74rem;letter-spacing:.14em;color:var(--text-mute)}
.mkt-context-body{display:block}
.mkt-context-t{display:block;font-family:var(--serif);font-size:1.04rem;font-weight:600;line-height:1.6}
.mkt-context-d{display:block;margin-top:4px;font-family:var(--sans);font-size:.88rem;line-height:1.8;color:var(--text-soft)}
.mkt-context-go{font-family:var(--sans);color:var(--text-mute)}
.mkt-context-row:hover .mkt-context-t{color:var(--data)}
@media(max-width:600px){
  .mkt-context-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .mkt-context-k{grid-column:1 / -1}
}
