/**
 * QUAVIA Color Isolation v2
 * クロスAIレビュー(ChatGPT/Gemini)反映版 / 2026-06-06
 *
 * 設計:
 *  - プレフィックス両対応 (wp-block-qva- / wp-block-quavia-) + 将来用 .qva-color-scope
 *  - 色はCSS変数トークン化 (本文/ミュート/リンクを分離)
 *  - 除外条件で ユーザー指定色を温存: :not([style*="color"]):not(.has-text-color):not(.qva-preserve-color)
 *  - 詳細度ガード: セレクタ重複 + :not群で一般的なテーマ !important (例 body.single-post .entry-content p =(0,2,2)) に勝つ
 *  - 標準テキスト要素は prefix-doubled :where() で一括, テキストを直書きするコンポーネントdiv(FAQ等)は個別セレクタで補完
 *  - 暗背景はブロック単位 data-qva-scheme="dark" を優先 (body.qva-dark / body.qdl-dark / .qva-dark-bg は補助)
 *  - strong/em は対象外 (ブランド/強調色を潰さない)
 *
 * 原理的限界 (製品仕様として明記):
 *  インラインstyle !important / ユーザーCSSの !important / ブラウザ拡張 / CSS transitions /
 *  テーマのさらに高い詳細度・ID多用 には勝てない。「通常のテーマCSS・多くの!importantテーマCSSに対し
 *  QUAVIAブロック既定の可読性を保護する」のがスコープ。
 *
 * フィーチャーフラグ quavia_color_isolation_v2 = 'on' のときのみ enqueue される。
 */

/* ============================================================
   トークン定義 (明テーマ既定)
   ============================================================ */
[class*="wp-block-qva-"],
[class*="wp-block-quavia-"],
.qva-color-scope {
    --qva-text-color: #1f2328;
    --qva-muted-color: #6b7280;
    --qva-link-color: #1d4ed8;
}

/* ============================================================
   暗背景オプトイン (ブロック単位優先 + 全体補助)
   ============================================================ */
.qva-dark-bg,
.qva-color-scope[data-qva-scheme="dark"],
[class*="wp-block-qva-"][data-qva-scheme="dark"],
body.qva-dark [class*="wp-block-qva-"],
body.qdl-dark [class*="wp-block-qva-"],
body.qva-dark [class*="wp-block-quavia-"],
body.qdl-dark [class*="wp-block-quavia-"] {
    --qva-text-color: #e5e7eb;
    --qva-muted-color: #cbd5e1;
}

/* ============================================================
   STEP A: 標準テキスト要素ガード (prefix二重がけで詳細度底上げ)
   strong/em は意図的に除外
   ============================================================ */
.qva-color-scope.qva-color-scope :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text,[contenteditable]):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
[class*="wp-block-qva-"][class*="wp-block-qva-"] :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text,[contenteditable]):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
[class*="wp-block-quavia-"][class*="wp-block-quavia-"] :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text,[contenteditable]):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color) {
    color: var(--qva-text-color, #1f2328) !important;
}

/* ============================================================
   STEP B: コンポーネント別テキストコンテナ
   (テキストを div/label に直書きする要素。STEP A の :where では拾えない)
   クラス二重がけで詳細度 (0,5,0) を確保しテーマ !important に勝つ
   ============================================================ */
.qva-tabs.qva-tabs :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.qva-tabs-edit.qva-tabs-edit :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.qva-faq.qva-faq .qva-faq__question:not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.qva-faq.qva-faq .qva-faq__answer:not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.quavia-panel-title.quavia-panel-title:not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.qva-gallery__caption.qva-gallery__caption:not([style*="color"]):not(.has-text-color):not(.qva-preserve-color),
.qva-image-compare__label.qva-image-compare__label:not([style*="color"]):not(.has-text-color):not(.qva-preserve-color) {
    color: var(--qva-text-color, #1f2328) !important;
}

/* ============================================================
   ミュート(補助テキスト)
   ============================================================ */
[class*="wp-block-qva-"][class*="wp-block-qva-"] .qva-table-hint:not([style*="color"]),
.quavia-table-hint.quavia-table-hint:not([style*="color"]),
.qva-table-hint.qva-table-hint:not([style*="color"]) {
    color: var(--qva-muted-color, #6b7280) !important;
}

/* ============================================================
   アコーディオン (save=InnerBlocks.Content でラッパー無し → コンポーネントクラスで補完)
   フェーズ2で .qva-color-scope ラッパー付与後はこのブロックは不要になる
   ============================================================ */
.qva-accordion .qva-accordion__body :where(h1,h2,h3,h4,h5,h6,p,li,th,td,label,blockquote,dd,dt,.rich-text):not([style*="color"]):not(.has-text-color):not(.qva-preserve-color) {
    color: var(--qva-text-color, #1f2328) !important;
}

/* ============================================================
   既存の個別ルール (プレフィックス非依存・据え置き)
   ============================================================ */
.qva-howto-editor__step-num,
.qva-howto__step-num {
    background-color: #1e40af !important;
    color: #ffffff !important;
}

.qva-cta--unconfigured:not([style*="color"]),
.qva-cta__warning:not([style*="color"]) {
    color: #92400e !important;
    background-color: #fef3c7 !important;
}

/* End of qva-color-isolation-v2.css */
