/**
 * Hauzii Text Link Utilities
 *
 * text component 的 url atom 有值時，TextBindingProcessor 會在渲染輸出端
 * 把文字包成 <a class="hz-textlink">（值為空時完全不輸出此 class）。
 *
 * 設計定案（2026-07-30 站主裁決）：
 *   - 顏色**繼承原 role 色** —— 不設統一連結色、不新增色盤 slot。
 *   - 底線**靜止無、hover 才出現** —— 由本檔統一決定，不留給 block 作者逐塊寫。
 *
 * ⚠️ 為什麼是 `:root body a.hz-textlink` 而不是裸 `.hz-textlink`
 * ------------------------------------------------------------------
 * 這是 hz- utility class 對抗主題樣式的**家規格式**，與 GapDomain（.hz-pad-NN /
 * .hz-gap-NN）、.hz-hover-* 等全家族一致：**用 `:root body` 的高特異性直接贏，
 * 不靠 theme shield 的 revert-layer、不用 !important、不開 per-theme 檔**。
 *
 * 實證（2026-07-30，本檔第一版就是裸 class 而中招）：
 *   Blocksy `a:hover { color: var(--theme-link-hover-color) }` 特異性 (0,1,1)
 *   **贏過**裸 `.hz-textlink` 的 (0,1,0) → 連結一 hover 就變成主題連結色，
 *   破壞「顏色繼承原 role 色」的定案。靜止態才沒事（`a{...}` 只有 (0,0,1)）。
 *   `:root body a.hz-textlink` = (0,2,2)、加狀態 = (0,3,2)，穩贏 class-level 主題規則。
 *
 * 背景與「為什麼不靠 shield」的完整脈絡見
 * docs/tech-debt/blocksy-theme-reset-systemic-20260630.md
 * § 2026-07-08（GapDomain 用高特異性直接贏，revert-layer 連新版 Safari 都不可靠）。
 *
 * ⚠️ 本檔只管 decoration 與顏色繼承，**不得**加入任何間距
 * （padding / margin / gap 一律屬 GapDomain，見 dt-25-gap-architecture）。
 */

:root body a.hz-textlink {
    color: inherit;
    text-decoration: none;
}

/* 每個狀態都要重申 color:inherit —— 主題對 :hover / :visited 各有獨立規則，
   只在基礎規則守 color 會被狀態規則各個擊破。 */
:root body a.hz-textlink:visited {
    color: inherit;
}

:root body a.hz-textlink:hover,
:root body a.hz-textlink:focus-visible {
    color: inherit;
    text-decoration: underline;
}

:root body a.hz-textlink:active {
    color: inherit;
}

/* ─── 圖片連結 a.hz-imagelink(#26,2026-10-05)───────────────────────
   image 的 link atom 有值時,ImageLinkInjector 在 <img> 外包 <a class="hz-imagelink">
   (沒設連結時完全不輸出)。
   #63:圖自己帶版面角色的槽,包裝層改由 compiler 編譯時產(<a data-hz-image-link class="hz-imagelink …">),
   **沒設連結也在、只是不帶 href**;這條 display:block 對它同樣生效(G0 三裝置 0 差就是在這條之下量的)。
   卡片分層(hz-stretched-link.css)只認 a.hz-imagelink[href]。
   ⭐ display:block:<a> 接手 <img> 原本的位置,<img>(w-full)填滿它 —— 版面不變。
   ⚠️ G0 實測(2026-10-05,Chrome 154):display:contents 雖然不改版面,但那個 <a> 鍵盤 Tab 與 focus()
      都聚焦不到 ⇒ 不用。block 的代價:<img> 自己若帶 flex / grid 子項或置中 / 限寬 class,包了會跑版 ——
      那批由 image-link-layout-roles.json 判、寫入端拒收、注入器不包(顧問裁 (b))。 */
:root body a.hz-imagelink {
    display: block;
}
