/* MIRAI Design System — theme: HIKARIMAP
   Aesthetic: 地形図 / 測量野帳. 白紙に藍の等高線を一本だけ引く。
   配色: 生成りの紙(#f7f4ec) + 墨(#0b0d10) + ONE 藍(ai #1c3f6e) signal.
   朱(Markup Atlas) と衝突しないよう accent は藍に固定する。
   Type: Shippori Mincho B1 (JP display) × Fraunces (Latin/figures)
       × IBM Plex Mono (data labels) × Zen Kaku Gothic New (body).
   Load AFTER base.css to override the token contract.            */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600&family=IBM+Plex+Mono:wght@400;500&family=Shippori+Mincho+B1:wght@600;700;800&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');

:root,
[data-theme="light"]{
  --ds-bg:#f7f4ec;            --ds-surface:#efeade;
  --ds-text:#0b0d10;          --ds-text-dim:rgba(11,13,16,.58);
  --ds-line:#d3cfc4;          --ds-line-soft:rgba(11,13,16,.06);
  --ds-accent:#1c3f6e;        --ds-accent-ink:#f7f4ec;  --ds-flag:#8a5a1e;

  --ds-font-display:'Shippori Mincho B1',serif;
  --ds-font-display-en:'Fraunces',serif;
  --ds-font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --ds-font-body:'Zen Kaku Gothic New',system-ui,sans-serif;

  --ds-radius:3px;
}

[data-theme="dark"]{
  --ds-bg:#0b0d10;            --ds-surface:#14171c;
  --ds-text:#EDE8DC;          --ds-text-dim:rgba(237,232,220,.58);
  --ds-line:#333944;          --ds-line-soft:rgba(237,232,220,.07);
  --ds-accent:#7fa7d8;        --ds-accent-ink:#0b0d10;  --ds-flag:#c9944a;
}

/* anti-AI-tells: glow/gradient は使わない（クラスが付いていても殺す） */
.ds-glow,.ds-glow::before,.ds-glow::after{
  background-image:none !important;box-shadow:none !important;filter:none !important;
}
.ds-card{box-shadow:none;background:var(--ds-surface)}

/* --- theme components ---------------------------------------- */

/* 等高線ルール: セクション区切りの1本 */
.hm-rule{height:1px;background:var(--ds-line);border:0;margin:clamp(38px,6vh,72px) 0}

/* 提供可否テーブル */
.hm-table{width:100%;border-collapse:collapse;font-size:.95rem}
.hm-table th,.hm-table td{text-align:left;padding:.85rem .9rem;border-bottom:1px solid var(--ds-line)}
.hm-table th{font-family:var(--ds-font-mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ds-text-dim);font-weight:500;
  border-bottom:1px solid var(--ds-text)}
.hm-table tbody tr:hover{background:var(--ds-line-soft)}
.hm-name{font-weight:700}
.hm-op{display:block;font-size:.78rem;color:var(--ds-text-dim);font-weight:400}

/* 可否バッジ — 面ではなく罫線で表す（塗りつぶしのAI感を避ける） */
.hm-mark{font-family:var(--ds-font-mono);font-size:.72rem;letter-spacing:.1em;
  padding:.28rem .6rem;border:1px solid currentColor;border-radius:2px;white-space:nowrap}
.hm-mark--yes{color:var(--ds-accent)}
.hm-mark--partial{color:var(--ds-flag)}
.hm-mark--check{color:var(--ds-text-dim)}
.hm-mark--no{color:var(--ds-text-dim);border-style:dashed;opacity:.75}

/* PR表記帯（ステマ規制対応・テンプレ側で強制挿入） */
.hm-pr{font-family:var(--ds-font-mono);font-size:.72rem;letter-spacing:.08em;
  color:var(--ds-text-dim);border-bottom:1px solid var(--ds-line);
  padding:.65rem 0;margin-bottom:clamp(28px,4vh,48px)}

/* 出典行 */
.hm-src{font-family:var(--ds-font-mono);font-size:.7rem;color:var(--ds-text-dim);line-height:1.9}
.hm-src a{color:inherit}

/* 見出しの強調は面で塗らず、細い下線一本で（藍の面は重い） */
mark.ds-hl::before{height:.12em;bottom:.02em;border-radius:0}

/* 都道府県グリッド — 空トラックに罫線が出ないよう、境界は各セル側に持たせる */
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0;
  background:var(--ds-bg);border-top:1px solid var(--ds-line);border-left:1px solid var(--ds-line)}
.hm-grid a{background:var(--ds-bg);padding:.95rem 1rem;text-decoration:none;color:var(--ds-text);
  border-right:1px solid var(--ds-line);border-bottom:1px solid var(--ds-line);
  display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;
  transition:background .18s,color .18s}
.hm-grid a:hover{background:var(--ds-accent);color:var(--ds-accent-ink)}
.hm-grid .num{font-family:var(--ds-font-mono);font-size:.68rem;opacity:.5}

/* フッター */
.hm-foot{border-top:1px solid var(--ds-line);margin-top:clamp(56px,9vh,110px);
  padding:clamp(28px,4vh,48px) 0;font-size:.85rem;color:var(--ds-text-dim)}
.hm-foot a{color:var(--ds-text-dim)}
.hm-foot nav{display:flex;gap:1.4rem;flex-wrap:wrap;margin-bottom:1rem}
