/**
 * HCB Extension by Kouhei
 *
 * --- 機能1: word-break + 表示領域内改行 ---
 *
 * 課題:
 *   HCB 本体の `.hcb_wrap.hcb_wrap > pre` は詳細度 (0,2,1) で
 *   `white-space: pre; word-wrap: normal; word-break: normal;` を強制する。
 *   このため、単に [data-word-break="all"] pre に word-break: break-all を当てても
 *   詳細度負け + white-space: pre の影響で改行されない。
 *
 * 解決:
 *   セレクタを (0,3,1) に上げ、さらに !important で確実に上書き。
 *   `white-space: pre-wrap` で改行を許可しつつ、`word-break: break-all` と
 *   `overflow-wrap: anywhere` で英数字の長い 1 行も文字単位で折り返す。
 *
 * --- 機能2: 行数を表示しない時の padding-left を強制 0 にする ---
 *
 * 課題:
 *   HCB の `.hcb_wrap.hcb_wrap > pre` が `padding: ... ...` shorthand で
 *   left padding も指定 (詳細度 (0,2,1))。同詳細度では読み込み順次第になる。
 *
 * 解決:
 *   セレクタを (0,3,1) に上げ + !important で完全に強制。
 *
 * HCB v2.1.3 系の出力構造:
 *   <div class="hcb_wrap" [data-word-break="all"]>
 *     <pre class="prism off-numbers|on-numbers|undefined-numbers lang-xxx">
 *       <code>...</code>
 *     </pre>
 *   </div>
 */

/* ============================================================
 * 機能1: word-break: break-all + 表示領域内で折り返し
 *   詳細度 (0,3,1) > HCB の (0,2,1)
 *   さらに !important で完全勝利
 * ============================================================ */
.hcb_wrap[data-word-break="all"].hcb_wrap,
.hcb_wrap[data-word-break="all"].hcb_wrap > pre,
.hcb_wrap[data-word-break="all"].hcb_wrap > pre > code,
.hcb_wrap[data-word-break="all"].hcb_wrap > pre > code * {
	white-space: pre-wrap !important;
	word-break: break-all !important;
	overflow-wrap: anywhere !important;
	word-wrap: break-word !important;
}

/* line-highlight (背景ハイライト用の絶対配置レイヤー) も折り返しモードに合わせる */
.hcb_wrap[data-word-break="all"].hcb_wrap .line-highlight {
	white-space: pre-wrap !important;
}

/* ============================================================
 * 機能2: 行数を表示しない (isLineShow="off") とき、padding-left を強制 0
 *   詳細度 (0,3,1) > HCB の (0,2,1)
 *   !important で完全強制
 * ============================================================ */
.hcb_wrap.hcb_wrap > pre.off-numbers {
	padding-left: 0 !important;
}

/* ブロックエディタプレビュー側の保険: WP コンテナ経由のセレクタ */
.wp-block-loos-hcb-code-block .hcb_wrap > pre.off-numbers,
.hcb-block.hcb-block > pre.off-numbers {
	padding-left: 0 !important;
}
