/* 格格價 theme 4: 晴空 · Sky (OneDegree principles)
   LIVE THEME (adopted 2026-09-27, replacing Jade, lifted). Loaded after assets/style.css on every page.
   Font comes from each page's Google Fonts <link> (Chiron Hei HK), not an @import.
   Fonts: Chiron Hei HK (headings) + Chiron Hei HK (body). */
:root{
  --bg:#f3f7fb; --bg-2:#e7eff8; --card:#ffffff; --ink:#15233a; --muted:#4a586e; --line:#dce5ef;
  --line-soft:#e5ecf4; --field-line:#77859a; --accent:#0b5fcc; --on-accent:#ffffff; --accent-ink:#08428f;
  --accent-soft:#dcebff; --accent-glow:rgba(11,95,204,.18); --amber:#b3470b; --amber-soft:#ffe9d6;
  --mark:#ffffff; --no-ink:#8a2f2f; --no-soft:#f6e3e3; --dark:#11264d; --on-dark:#bac7de;
  --shadow-1:0 4px 10px rgba(38,74,128,.06);
  --shadow-2:0 6px 14px rgba(38,74,128,.06),0 20px 44px rgba(38,74,128,.12); --img-dim:none; --hero-bg:#cfe4fb;
  --hero-ink:#15233a; --hero-muted:#34465f; --hero-accent:#0a52b0; --hero-mark:#ffffff;
  --hero-line:rgba(255,255,255,.75); --hero-gap:32px;
  --radius:24px; --radius-sm:16px; --serif:"Chiron Hei HK","PingFang HK","Microsoft JhengHei",sans-serif; --sans:"Chiron Hei HK","PingFang HK","Microsoft JhengHei",sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0d1320; --bg-2:#131c2c; --card:#172235; --ink:#e9eef6; --muted:#a3afc3; --line:#26324a;
    --line-soft:#1e283c; --field-line:#68768f; --accent:#7fb5ff; --on-accent:#061630; --accent-ink:#b6d4ff;
    --accent-soft:#1a2f53; --accent-glow:rgba(127,181,255,.22); --amber:#ffa46b; --amber-soft:#3b2618;
    --mark:#244777; --no-ink:#eaa0a0; --no-soft:#3a2222; --dark:#10203e; --on-dark:#a3afc3;
    --shadow-1:0 1px 2px rgba(0,0,0,.3); --shadow-2:0 14px 32px rgba(0,0,0,.45);
    --img-dim:brightness(.88) saturate(.95); --hero-bg:#15294a; --hero-ink:#e9eef6; --hero-muted:#b3c0d6;
    --hero-accent:#9cc6ff; --hero-mark:#244679; --hero-line:rgba(255,255,255,.06); --hero-gap:32px;
  }
}
:root[data-theme="dark"]{
  --bg:#0d1320; --bg-2:#131c2c; --card:#172235; --ink:#e9eef6; --muted:#a3afc3; --line:#26324a;
  --line-soft:#1e283c; --field-line:#68768f; --accent:#7fb5ff; --on-accent:#061630; --accent-ink:#b6d4ff;
  --accent-soft:#1a2f53; --accent-glow:rgba(127,181,255,.22); --amber:#ffa46b; --amber-soft:#3b2618;
  --mark:#244777; --no-ink:#eaa0a0; --no-soft:#3a2222; --dark:#10203e; --on-dark:#a3afc3;
  --shadow-1:0 1px 2px rgba(0,0,0,.3); --shadow-2:0 14px 32px rgba(0,0,0,.45);
  --img-dim:brightness(.88) saturate(.95); --hero-bg:#15294a; --hero-ink:#e9eef6; --hero-muted:#b3c0d6;
  --hero-accent:#9cc6ff; --hero-mark:#244679; --hero-line:rgba(255,255,255,.06); --hero-gap:32px;
}
/* Coloured hero band: the home hero and every inner page head get the band.
   Only text that sits directly on the band is recoloured; the finder and cell block stay cards. */
.hero,.page-head{background:var(--hero-bg);color:var(--hero-ink);margin-bottom:var(--hero-gap)}
.hero{--line-soft:var(--hero-line)}
.hero .lede,.hero .cells-cap,.page-head .lede,.page-head .note,.page-head .crumbs{color:var(--hero-muted)}
.hero .kicker,.page-head .crumbs a{color:var(--hero-accent)}
.hero .kicker .dot{background:var(--hero-accent)}
.hero mark.hl{--mark:var(--hero-mark)}
/* Borrowed principle: soft, fully rounded pill actions. */
.btn,select,input[type=email]{border-radius:999px}
select{padding:0 18px}
h1{font-weight:700}

/* Price treatment borrowed from direction 5 (Market): the price is the boldest thing in its row and the
   table rows are tighter. Colour stays --amber (Sky's tangerine) — price-only, per the house rule. */
@media (min-width:721px){.table th,.table td{padding:12px 16px}}
@media (max-width:720px){.table tr{padding:12px 14px;gap:6px 14px}}
.table .price{font-size:19px;font-weight:900;letter-spacing:-.01em;line-height:1.3;font-variant-numeric:tabular-nums}

/* ── search results + brand compare (tools/search_pages.py, assets/search.js) ── */
.post-tile[hidden],.post-lead[hidden]{display:none}
.res-card .res-price b{color:var(--amber);font-variant-numeric:tabular-nums}
.res-card .res-price b.tbc{color:var(--muted)}
#res-hint{margin:0 0 12px}
.cmp-table{table-layout:fixed}
.cmp-table thead th:first-child{width:22%}
.cmp-table thead th small{display:block;font-weight:500;opacity:.8}
.cmp-table tbody th{font-size:14px;color:var(--muted);font-weight:700;text-align:left;padding:15px 20px;vertical-align:top}
.cmp-table td{vertical-align:top}
.cmp-list{margin:0;padding-left:18px;font-size:14px;line-height:1.6}
.cmp-list li+li{margin-top:4px}
@media (max-width:640px){
  .table-wrap:has(.cmp-table){overflow-x:auto}
  .cmp-table{min-width:560px}
  .cmp-table th,.cmp-table td{padding:12px}
}

/* ── district landing pages (tools/district_pages.py) ── */
.d-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:32px;align-items:center}
.d-hero-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-1)}
.d-hero-img img{width:100%;height:100%;object-fit:cover;display:block}
.d-links{display:flex;gap:8px;flex-shrink:0}
.d-cta{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.d-brand-link{margin:10px 0 4px}
.d-table td small{display:block}
@media (max-width:760px){
  .d-hero-grid{grid-template-columns:1fr;gap:18px}
  .d-hero-img{aspect-ratio:16/9;order:-1}
}

/* ── blog posts (tools/blog_pages.py) ── */
.post-hero{background:var(--bg-2);padding:28px 0 0}
.post-hero-text{max-width:820px}
.post-hero h1{font-size:clamp(28px,4.6vw,44px);line-height:1.25;margin:6px 0 12px}
.post-hero .kicker{color:var(--accent-ink);font-weight:700;font-size:14px;margin:12px 0 0}
.post-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:14px;margin:4px 0 22px}
.post-cover{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/8;box-shadow:var(--shadow-1);transform:translateY(24px)}
.post-cover img{width:100%;height:100%;object-fit:cover;display:block}
.post-layout{display:grid;grid-template-columns:230px minmax(0,720px);gap:48px;justify-content:center;padding-top:64px;padding-bottom:40px}
.post-toc{position:sticky;top:96px;align-self:start;font-size:14px;border-left:3px solid var(--accent-soft);padding-left:16px}
.post-toc b{display:block;margin-bottom:8px}
.post-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.post-toc a{color:var(--muted);text-decoration:none;line-height:1.5}
.post-toc a:hover{color:var(--accent)}
.post-body{min-width:0}
.post-body.prose>p,.post-body li{font-size:17px;line-height:1.9}
.post-body.prose>p{margin:0 0 18px}
.post-body h2{font-size:clamp(22px,3vw,28px);line-height:1.35;margin:44px 0 14px;scroll-margin-top:96px}
.post-body h3{font-size:19px;margin:28px 0 10px}
.post-body ul,.post-body ol{margin:0 0 20px;padding-left:22px}
.post-body li+li{margin-top:6px}
.post-body a{color:var(--accent);text-underline-offset:3px}
.post-quote{margin:24px 0;padding:14px 20px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:17px;line-height:1.8}
.post-fig{margin:28px 0}
.post-fig img{width:100%;height:auto;border-radius:var(--radius-sm);display:block}
.post-fig figcaption{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.6}
.cta-box{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin:30px 0;padding:20px 22px;border-radius:var(--radius-sm);background:var(--dark);color:#fff}
.cta-box b{display:block;font-size:18px}
.cta-box span{font-size:14.5px;opacity:.85}
.post-faq{margin-top:44px}
.post-faq .card{padding:4px var(--card-pad)}
.post-disclose{margin-top:32px}
.post-more{background:var(--bg-2)}
/* charts */
.chart{margin:30px 0;padding:20px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow-1)}
.chart-title{font-weight:900;font-size:17px;margin-bottom:14px}
.chart-note{font-size:13px;color:var(--muted);margin:14px 0 0;line-height:1.6}
.chart .table-wrap{box-shadow:none}
.chart .table th,.chart .table td{padding:11px 14px;font-size:14.5px}
.bars{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bar-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:center}
.bar-label{font-size:14px;line-height:1.3}
.bar-label small{display:block;color:var(--muted);font-size:12px}
.bar-label a{color:inherit;text-decoration:none}
.bar-track{position:relative;display:flex;align-items:center;gap:10px;min-height:30px}
.bar-fill{display:block;height:22px;width:var(--w);border-radius:0 8px 8px 0;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#fff));transform-origin:left;flex-shrink:0}
.is-promo .bar-fill{background:var(--amber-soft);border:1px dashed var(--amber)}
.bar-val{font-size:14px;font-weight:700;color:var(--amber);white-space:nowrap;font-variant-numeric:tabular-nums}
.bar-val small.promo{display:inline;margin-left:8px;font-weight:500;color:var(--muted)}
.bar-pair{display:grid;gap:4px}
.stack{display:flex;height:22px;border-radius:8px;overflow:hidden;background:var(--line-soft)}
.stack span{width:var(--w)}
.s-yes{background:var(--accent)}.s-no{background:color-mix(in srgb,var(--accent) 35%,var(--card))}.s-unk{background:var(--line)}
.bar-row .stack-val{grid-column:2;font-size:13px;color:var(--muted);margin-top:-4px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted);margin:0 0 12px;align-items:center}
.legend .k{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:2px;vertical-align:-1px}
.sg-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sg-card a{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--line-soft);text-decoration:none;color:inherit;height:100%;transition:transform var(--t-fast),box-shadow var(--t-fast)}
.sg-card a:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}
.sg-card img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:12px;margin-bottom:6px}
.sg-card b{font-size:17px}
.sg-name{font-size:13px;color:var(--accent-ink);font-weight:700}
.sg-what{font-size:13.5px;line-height:1.55}
.sg-price{font-size:13px;color:var(--amber);font-weight:700;margin-top:auto;padding-top:4px}
@media (prefers-reduced-motion:no-preference){.js .chart.reveal:not(.in) .bar-fill{transform:scaleX(0)}.js .chart .bar-fill{transition:transform .9s var(--ease)}}
@media (max-width:980px){.post-layout{grid-template-columns:minmax(0,1fr);gap:0;padding-top:52px}.post-toc{position:static;margin-bottom:24px;border-left:0;padding:16px;background:var(--card);border-radius:var(--radius-sm);border:1px solid var(--line)}}
@media (max-width:640px){
  .post-cover{aspect-ratio:4/3}
  .bar-row{grid-template-columns:92px minmax(0,1fr);gap:8px}
  .sg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chart{padding:14px}
  .post-body.prose>p,.post-body li{font-size:16.5px}
}
