/* =============================================================
   PCParts Blocks — フロントエンド スタイルシート
   スマホ完全対応・テーマ変数引き継ぎ・SEO最適化
   ============================================================= */

/* ── テーマCSS変数 フォールバック ── */
:root {
  --pcpb-primary:   #2563eb;
  --pcpb-primary-d: #1d4ed8;
  --pcpb-success:   #059669;
  --pcpb-warning:   #d97706;
  --pcpb-danger:    #dc2626;
  --pcpb-purple:    #9333ea;
  --pcpb-amazon:    #ff9900;
  --pcpb-rakuten:   #bf0000;
  --pcpb-text:      #0f172a;
  --pcpb-muted:     #64748b;
  --pcpb-bg:        #f8fafc;
  --pcpb-border:    #e2e8f0;
  --pcpb-white:     #ffffff;
  --pcpb-radius:    10px;
  --pcpb-shadow:    0 2px 8px rgba(0,0,0,.08);
  --pcpb-font:      'Inter', 'Noto Sans JP', system-ui, sans-serif;
}

/* ============================================================
   ① CTAボタン
   ============================================================ */
.pcpb-cta-wrap         { margin: 1.5em 0; }
.pcpb-align-left       { text-align: left; }
.pcpb-align-center     { text-align: center; }
.pcpb-align-right      { text-align: right; }

.pcpb-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 40px;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .18s, box-shadow .18s, opacity .18s;
  white-space: nowrap;
  line-height: 1.4;
  border: none;
  cursor: pointer;
}
.pcpb-cta-btn:hover {
  transform: translateY(-2px);
  opacity: .92;
}

/* サイズ */
.pcpb-cta-sm { padding:  8px 22px; font-size: .82rem; }
.pcpb-cta-md { padding: 12px 32px; font-size: .95rem; }
.pcpb-cta-lg { padding: 16px 40px; font-size: 1.05rem; }

/* 幅いっぱい */
.pcpb-cta-full { display: flex; width: 100%; box-sizing: border-box; }

/* カラーバリアント */
.pcpb-cta-amazon  { background: #ff9900; color: #111 !important; box-shadow: 0 4px 14px rgba(255,153,0,.35); }
.pcpb-cta-rakuten { background: #bf0000; color: #fff !important; box-shadow: 0 4px 14px rgba(191,0,0,.3); }
.pcpb-cta-primary { background: linear-gradient(135deg, #2563eb, #4f46e5); color: #fff !important; box-shadow: 0 4px 14px rgba(37,99,235,.35); }
.pcpb-cta-success { background: linear-gradient(135deg, #059669, #10b981); color: #fff !important; box-shadow: 0 4px 14px rgba(5,150,105,.3); }
.pcpb-cta-danger  { background: linear-gradient(135deg, #dc2626, #ef4444); color: #fff !important; box-shadow: 0 4px 14px rgba(220,38,38,.3); }

.pcpb-icon { font-size: 1.1em; line-height: 1; }

/* スマホ対応 */
@media (max-width: 600px) {
  .pcpb-cta-btn { white-space: normal; }
  .pcpb-cta-lg  { padding: 13px 28px; font-size: .98rem; }
}

/* ============================================================
   ② 比較表
   ============================================================ */
.pcpb-comp-table-wrap { margin: 1.8em 0; overflow: hidden; }
.pcpb-comp-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--pcpb-radius); border: 1.5px solid var(--pcpb-border); }

.pcpb-comp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  min-width: 360px;
}
.pcpb-comp-table th {
  background: #f0f4ff;
  padding: 10px 14px;
  font-weight: 800;
  font-size: .82rem;
  text-align: center;
  border-bottom: 2px solid var(--pcpb-border);
  position: relative;
  white-space: nowrap;
}
.pcpb-comp-table td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--pcpb-border);
  text-align: center;
  font-size: .88rem;
  line-height: 1.5;
}
.pcpb-comp-table tr:last-child td { border-bottom: none; }
.pcpb-comp-table tr:hover td { background: #f8faff; }

/* ハイライト列 */
.pcpb-col-highlight { background: #eff6ff !important; border-left: 2px solid var(--pcpb-primary) !important; border-right: 2px solid var(--pcpb-primary) !important; }

/* ○×△色分け */
.pcpb-cell-ok  { color: #059669; font-weight: 700; font-size: 1.1em; }
.pcpb-cell-ng  { color: #dc2626; font-weight: 700; font-size: 1.1em; }
.pcpb-cell-tri { color: #d97706; font-weight: 700; }

/* おすすめバッジ */
.pcpb-best-badge {
  display: inline-block;
  background: var(--pcpb-primary);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  margin-bottom: 4px;
}

/* キャプション */
.pcpb-comp-caption { font-size: .78rem; color: var(--pcpb-muted); text-align: center; margin-top: 6px; }

/* スマホ */
@media (max-width: 600px) {
  .pcpb-comp-table th, .pcpb-comp-table td { padding: 8px 10px; font-size: .82rem; }
}

/* ============================================================
   ③ ブログカード
   ============================================================ */
.pcpb-blog-card {
  display: flex !important;
  align-items: stretch;
  gap: 0;
  background: var(--pcpb-white);
  border: 1.5px solid var(--pcpb-border);
  border-radius: var(--pcpb-radius);
  overflow: hidden;
  text-decoration: none !important;
  color: var(--pcpb-text) !important;
  margin: 1.5em 0;
  transition: box-shadow .2s, border-color .2s, transform .18s;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-blog-card:hover {
  border-color: var(--pcpb-primary);
  box-shadow: 0 4px 18px rgba(37,99,235,.12);
  transform: translateY(-2px);
}

.pcpb-bc-thumb-wrap {
  width: 140px;
  flex-shrink: 0;
  overflow: hidden;
}
.pcpb-bc-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}
.pcpb-blog-card:hover .pcpb-bc-thumb { transform: scale(1.04); }

.pcpb-bc-info {
  flex: 1;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.pcpb-bc-domain {
  font-size: .7rem;
  color: var(--pcpb-muted);
  font-weight: 600;
}
.pcpb-bc-title {
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.4;
  color: var(--pcpb-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pcpb-bc-excerpt {
  font-size: .78rem;
  color: var(--pcpb-muted);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.pcpb-bc-arrow {
  font-size: .82rem;
  color: var(--pcpb-primary);
  font-weight: 700;
  align-self: flex-end;
  margin-top: 4px;
}

@media (max-width: 540px) {
  .pcpb-bc-thumb-wrap { width: 100px; }
  .pcpb-bc-title { font-size: .88rem; }
  .pcpb-bc-excerpt { display: none; }
}
@media (max-width: 400px) {
  .pcpb-blog-card { flex-direction: column; }
  .pcpb-bc-thumb-wrap { width: 100%; height: 140px; }
}

/* ============================================================
   ④ 自動目次
   ============================================================ */
.pcpb-toc {
  margin: 1.8em 0;
  max-width: 680px;
}
.pcpb-toc-inner {
  background: var(--pcpb-white);
  border: 1.5px solid var(--pcpb-border);
  border-radius: var(--pcpb-radius);
  overflow: hidden;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-toc-header {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f0f4ff;
  padding: 10px 16px;
  font-weight: 800;
  font-size: .9rem;
  color: var(--pcpb-text);
  border-bottom: 1px solid var(--pcpb-border);
}
.pcpb-toc-icon { font-size: 1rem; }

/* 折りたたみボタン */
.pcpb-toc-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font-weight: 800;
  font-size: .9rem;
  cursor: pointer;
  color: var(--pcpb-text);
  padding: 0;
}
.pcpb-toc-chevron {
  margin-left: auto;
  font-size: .75rem;
  transition: transform .25s;
  color: var(--pcpb-muted);
}
.pcpb-toc-toggle[aria-expanded="false"] .pcpb-toc-chevron { transform: rotate(180deg); }

.pcpb-toc-body {
  padding: 12px 16px 14px;
  background: var(--pcpb-white);
  transition: max-height .3s ease, opacity .3s;
  overflow: hidden;
}
.pcpb-toc-body.collapsed { max-height: 0 !important; padding: 0 16px; opacity: 0; }

/* 目次リスト */
.pcpb-toc-list {
  list-style: none;
  padding: 0; margin: 0;
  counter-reset: toc-counter;
}
.pcpb-toc-list > li {
  border-bottom: 1px dotted var(--pcpb-border);
  padding: 5px 0;
  font-size: .88rem;
  line-height: 1.5;
}
.pcpb-toc-list > li:last-child { border-bottom: none; }
.pcpb-toc-list > li > a {
  color: var(--pcpb-primary);
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: baseline;
  gap: 6px;
  transition: color .15s;
}
.pcpb-toc-list > li > a:hover { color: var(--pcpb-primary-d, #1d4ed8); text-decoration: underline; }

/* 番号付き */
.pcpb-toc-list.numbered > li { counter-increment: toc-counter; }
.pcpb-toc-list.numbered > li > a::before {
  content: counter(toc-counter) ".";
  font-size: .78rem;
  font-weight: 800;
  color: var(--pcpb-primary);
  flex-shrink: 0;
  min-width: 18px;
}

/* H3サブリスト */
.pcpb-toc-sub {
  list-style: none;
  padding: 4px 0 2px 18px;
  margin: 0;
  counter-reset: toc-sub-counter;
}
.pcpb-toc-sub > li { padding: 3px 0; font-size: .82rem; }
.pcpb-toc-sub > li > a {
  color: var(--pcpb-muted);
  text-decoration: none;
  display: flex;
  align-items: baseline;
  gap: 5px;
  transition: color .15s;
}
.pcpb-toc-sub > li > a::before {
  content: '└';
  font-size: .72rem;
  flex-shrink: 0;
  color: var(--pcpb-border);
}
.pcpb-toc-sub > li > a:hover { color: var(--pcpb-primary); }

@media (max-width: 600px) {
  .pcpb-toc { max-width: 100%; }
  .pcpb-toc-list > li { font-size: .84rem; }
}

/* ============================================================
   ⑤ コールアウト
   ============================================================ */
.pcpb-callout {
  display: flex;
  gap: 12px;
  padding: 14px 18px;
  border-radius: var(--pcpb-radius);
  border-left: 4px solid;
  margin: 1.5em 0;
  align-items: flex-start;
}
.pcpb-callout-info    { background: #eff6ff; border-color: var(--pcpb-primary); }
.pcpb-callout-success { background: #f0fdf4; border-color: var(--pcpb-success); }
.pcpb-callout-warning { background: #fffbeb; border-color: var(--pcpb-warning); }
.pcpb-callout-danger  { background: #fef2f2; border-color: var(--pcpb-danger); }
.pcpb-callout-point   { background: #fdf4ff; border-color: var(--pcpb-purple); }

.pcpb-callout-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  line-height: 1.4;
  margin-top: 1px;
}
.pcpb-callout-body { flex: 1; min-width: 0; }
.pcpb-callout-title {
  font-weight: 800;
  font-size: .92rem;
  margin: 0 0 4px !important;
  line-height: 1.4;
  color: var(--pcpb-text);
}
.pcpb-callout-content {
  font-size: .88rem;
  margin: 0 !important;
  line-height: 1.7;
  color: var(--pcpb-text);
}
.pcpb-callout-content a { color: var(--pcpb-primary); }

@media (max-width: 480px) {
  .pcpb-callout { padding: 12px 14px; gap: 8px; }
  .pcpb-callout-icon { font-size: 1.2rem; }
}

/* ============================================================
   ⑥ インラインマーカー・文字装飾
   ============================================================ */
mark.pcpb-mark-yellow {
  background: linear-gradient(transparent 50%, #fef08a 50%);
  color: inherit;
  padding: 0 2px;
}
mark.pcpb-mark-blue {
  background: linear-gradient(transparent 50%, #bfdbfe 50%);
  color: inherit;
  padding: 0 2px;
}
mark.pcpb-mark-red {
  background: linear-gradient(transparent 50%, #fecaca 50%);
  color: inherit;
  padding: 0 2px;
}
span.pcpb-text-red {
  color: #dc2626;
  font-weight: 700;
}
span.pcpb-text-bold-box {
  background: #1e293b;
  color: #f8fafc;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: .92em;
}

/* ============================================================
   ⑦ パーツ埋め込みカード（SSR）
   ============================================================ */
.pcpb-part-embed {
  background: var(--pcpb-white);
  border: 1.5px solid var(--pcpb-border);
  border-radius: var(--pcpb-radius);
  overflow: hidden;
  margin: 1.8em 0;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-pe-inner {
  display: flex;
  gap: 0;
  align-items: stretch;
}
.pcpb-pe-img {
  width: 160px;
  flex-shrink: 0;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border-right: 1px solid var(--pcpb-border);
}
.pcpb-pe-img img {
  max-width: 100%;
  max-height: 120px;
  object-fit: contain;
  display: block;
}
.pcpb-pe-body {
  flex: 1;
  padding: 16px 20px;
  min-width: 0;
}
.pcpb-pe-meta {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.pcpb-pe-cat {
  font-size: .68rem;
  font-weight: 700;
  padding: 2px 8px;
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 20px;
}
.pcpb-pe-maker {
  font-size: .68rem;
  font-weight: 600;
  padding: 2px 8px;
  background: var(--pcpb-bg);
  color: var(--pcpb-muted);
  border-radius: 20px;
  border: 1px solid var(--pcpb-border);
}
.pcpb-pe-name {
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
  color: var(--pcpb-text);
  margin: 0 0 10px !important;
}
.pcpb-pe-prices {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  align-items: center;
}
.pcpb-pe-price {
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--pcpb-bg);
  padding: 5px 10px;
  border-radius: 6px;
  min-width: 90px;
}
.pcpb-pe-price-label {
  font-size: .62rem;
  font-weight: 700;
}
.pcpb-pe-price.amz .pcpb-pe-price-label { color: #ff9900; }
.pcpb-pe-price.rkt .pcpb-pe-price-label { color: #bf0000; }
.pcpb-pe-price-val {
  font-size: .95rem;
  font-weight: 800;
  color: var(--pcpb-text);
  font-family: 'JetBrains Mono', monospace;
}
.pcpb-pe-best {
  font-size: .78rem;
  font-weight: 800;
  background: linear-gradient(135deg, #d97706, #ea580c);
  color: #fff;
  padding: 3px 10px;
  border-radius: 20px;
}
.pcpb-pe-btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.pcpb-pe-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  border-radius: 20px;
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: opacity .18s, transform .18s;
}
.pcpb-pe-btn:hover { opacity: .88; transform: translateY(-1px); }
.pcpb-pe-btn-amz { background: #ff9900; color: #111 !important; }
.pcpb-pe-btn-rkt { background: #bf0000; color: #fff !important; }
.pcpb-pe-notice {
  font-size: .68rem !important;
  color: var(--pcpb-muted) !important;
  margin: 0 !important;
  line-height: 1.5;
}
.pcpb-part-embed.pcpb-empty { padding: 20px; text-align: center; color: var(--pcpb-muted); font-size: .85rem; }

@media (max-width: 600px) {
  .pcpb-pe-inner { flex-direction: column; }
  .pcpb-pe-img { width: 100%; border-right: none; border-bottom: 1px solid var(--pcpb-border); padding: 16px; }
  .pcpb-pe-img img { max-height: 140px; }
  .pcpb-pe-body { padding: 14px 16px; }
  .pcpb-pe-btn { padding: 8px 14px; font-size: .78rem; }
}

/* ============================================================
   ⑧ 価格チェックバナー
   ============================================================ */
.pcpb-price-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
  border: 1.5px solid #2563eb30;
  border-radius: var(--pcpb-radius);
  padding: 14px 18px;
  margin: 1.8em 0;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-pb-icon { font-size: 2rem; flex-shrink: 0; }
.pcpb-pb-body { flex: 1; min-width: 0; }
.pcpb-pb-text {
  font-weight: 700;
  font-size: .9rem;
  margin: 0 0 2px !important;
  color: var(--pcpb-text);
}
.pcpb-pb-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--pcpb-primary);
  color: #fff !important;
  padding: 9px 18px;
  border-radius: 20px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .18s, transform .18s;
  flex-shrink: 0;
}
.pcpb-pb-btn:hover { background: #1d4ed8; transform: translateY(-1px); }

@media (max-width: 580px) {
  .pcpb-price-banner { flex-direction: column; align-items: flex-start; gap: 10px; }
  .pcpb-pb-btn { align-self: stretch; justify-content: center; }
}

/* ============================================================
   ⑨ スペックグリッド
   ============================================================ */
.pcpb-spec-grid { margin: 1.5em 0; }
.pcpb-sg-title {
  font-size: .9rem;
  font-weight: 800;
  color: var(--pcpb-text);
  margin: 0 0 10px !important;
  padding-left: 10px;
  border-left: 3px solid var(--pcpb-primary);
}
.pcpb-sg-grid {
  display: grid;
  gap: 8px;
}
.pcpb-sg-grid.cols-1 { grid-template-columns: 1fr; }
.pcpb-sg-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.pcpb-sg-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }

dt.pcpb-sg-label {
  font-size: .68rem;
  font-weight: 700;
  color: var(--pcpb-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  background: var(--pcpb-bg);
  padding: 8px 12px 2px;
  border-radius: var(--pcpb-radius) var(--pcpb-radius) 0 0;
  border: 1px solid var(--pcpb-border);
  border-bottom: none;
  margin: 0;
}
dd.pcpb-sg-value {
  font-size: .92rem;
  font-weight: 700;
  color: var(--pcpb-text);
  background: var(--pcpb-white);
  padding: 2px 12px 10px;
  border-radius: 0 0 var(--pcpb-radius) var(--pcpb-radius);
  border: 1px solid var(--pcpb-border);
  border-top: none;
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 480px) {
  .pcpb-sg-grid.cols-3 { grid-template-columns: repeat(2, 1fr); }
  .pcpb-sg-grid.cols-2 { grid-template-columns: 1fr; }
}

/* ============================================================
   ⑩ チェックリスト
   ============================================================ */
.pcpb-checklist { margin: 1.5em 0; }
.pcpb-cl-title {
  font-size: .95rem;
  font-weight: 800;
  color: var(--pcpb-text);
  margin: 0 0 10px !important;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pcpb-cl-title::before {
  content: '✓';
  display: inline-flex;
  width: 20px; height: 20px;
  background: var(--pcpb-primary);
  color: #fff;
  border-radius: 50%;
  font-size: .7rem;
  font-weight: 800;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pcpb-cl-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pcpb-cl-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: var(--pcpb-white);
  border: 1px solid var(--pcpb-border);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: .88rem;
  line-height: 1.5;
  transition: background .15s;
}
.pcpb-cl-item:hover { background: #f8faff; }
.pcpb-cl-item.checked { background: #f0fdf4; border-color: #86efac; }
.pcpb-cl-item.checked .pcpb-cl-text { text-decoration: line-through; color: var(--pcpb-muted); }
.pcpb-cl-icon { flex-shrink: 0; font-size: 1rem; margin-top: 1px; }
.pcpb-cl-text { flex: 1; color: var(--pcpb-text); }

@media (max-width: 480px) {
  .pcpb-cl-item { padding: 8px 10px; font-size: .84rem; }
}

/* ============================================================
   SEO 補助スタイル（構造化・アクセシビリティ）
   ============================================================ */

/* スキップリンク（a11y） */
.pcpb-skip { position: absolute; left: -9999px; }
.pcpb-skip:focus { left: 0; top: 0; z-index: 9999; background: #000; color: #fff; padding: 8px 12px; }

/* 印刷対応 */
@media print {
  .pcpb-cta-btn, .pcpb-pe-btn, .pcpb-pb-btn { background: #ccc !important; color: #000 !important; box-shadow: none; }
  .pcpb-price-banner, .pcpb-blog-card { break-inside: avoid; }
}

/* ============================================================
   ⑪ AI利用表記
   ============================================================ */
.pcpb-ai-disclosure {
  display: flex;
  gap: 12px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #dbeafe 0%, #e0f2fe 100%);
  border: 1.5px solid #3b82f6;
  border-left: 4px solid #2563eb;
  border-radius: var(--pcpb-radius);
  margin: 1.8em 0;
  box-shadow: 0 2px 8px rgba(59,130,246,.12);
}
.pcpb-ai-icon {
  font-size: 1.8rem;
  flex-shrink: 0;
  line-height: 1.4;
}
.pcpb-ai-body { flex: 1; min-width: 0; }
.pcpb-ai-title {
  font-weight: 800;
  font-size: .92rem;
  margin: 0 0 6px !important;
  line-height: 1.4;
  color: #1e40af;
}
.pcpb-ai-content {
  font-size: .88rem;
  margin: 0 !important;
  line-height: 1.7;
  color: #334155;
}
@media (max-width: 480px) {
  .pcpb-ai-disclosure { padding: 14px 16px; gap: 10px; }
  .pcpb-ai-icon { font-size: 1.5rem; }
}

/* ============================================================
   ⑫ PC構成表
   ============================================================ */
.pcpb-pc-build { margin: 1.8em 0; }
.pcpb-pcb-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--pcpb-text);
  margin: 0 0 12px !important;
  padding-left: 12px;
  border-left: 4px solid var(--pcpb-primary);
}
.pcpb-pcb-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--pcpb-radius);
  border: 1.5px solid var(--pcpb-border);
  background: var(--pcpb-white);
  box-shadow: var(--pcpb-shadow);
}
.pcpb-pcb-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
  font-size: .88rem;
}
.pcpb-pcb-table th {
  background: #f0f4ff;
  padding: 10px 14px;
  font-weight: 800;
  font-size: .82rem;
  text-align: center;
  border-bottom: 2px solid var(--pcpb-border);
  white-space: nowrap;
}
.pcpb-pcb-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--pcpb-border);
  vertical-align: top;
}
.pcpb-pcb-table tr:last-child td { border-bottom: none; }
.pcpb-pcb-cat-col { width: 120px; background: #fafbfc; }
.pcpb-pcb-cat-name {
  font-weight: 800;
  font-size: .82rem;
  color: var(--pcpb-muted);
  text-align: left;
}
.pcpb-pcb-set-col { background: linear-gradient(135deg, #eff6ff, #f0fdf4); }
.pcpb-pcb-part-cell { text-align: left; }
.pcpb-pcb-part-name {
  font-weight: 700;
  font-size: .88rem;
  line-height: 1.4;
  color: var(--pcpb-text);
  margin-bottom: 3px;
}
.pcpb-pcb-part-maker {
  font-size: .68rem;
  color: var(--pcpb-muted);
  font-weight: 600;
  margin-bottom: 3px;
}
.pcpb-pcb-part-price {
  font-size: .95rem;
  font-weight: 800;
  color: var(--pcpb-primary);
  font-family: 'JetBrains Mono', monospace;
  margin-bottom: 5px;
}
.pcpb-pcb-part-links {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
.pcpb-pcb-link {
  display: inline-flex;
  align-items: center;
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 12px;
  text-decoration: none !important;
  transition: opacity .15s;
}
.pcpb-pcb-link:hover { opacity: .85; }
.pcpb-pcb-link-amz { background: #ff9900; color: #111 !important; }
.pcpb-pcb-link-rkt { background: #bf0000; color: #fff !important; }
.pcpb-pcb-empty-cell {
  text-align: center;
  color: var(--pcpb-muted);
  font-size: .78rem;
}
.pcpb-pcb-total-row td {
  background: #fef3c7;
  border-top: 2px solid #f59e0b;
  font-weight: 800;
}
.pcpb-pcb-total-label {
  font-size: .88rem;
  color: #92400e;
  text-align: left !important;
}
.pcpb-pcb-total-val {
  font-size: 1rem;
  color: #92400e;
  font-family: 'JetBrains Mono', monospace;
  text-align: center !important;
}
.pcpb-pcb-notice {
  font-size: .7rem !important;
  color: var(--pcpb-muted) !important;
  margin: 8px 0 0 !important;
  text-align: center;
  line-height: 1.5;
}
.pcpb-pc-build.pcpb-empty {
  padding: 30px;
  text-align: center;
  color: var(--pcpb-muted);
  font-size: .85rem;
  background: var(--pcpb-bg);
  border: 1.5px dashed var(--pcpb-border);
  border-radius: var(--pcpb-radius);
}
@media (max-width: 600px) {
  .pcpb-pcb-table { min-width: 480px; font-size: .82rem; }
  .pcpb-pcb-table th, .pcpb-pcb-table td { padding: 8px 10px; }
  .pcpb-pcb-part-name { font-size: .84rem; }
}

/* ============================================================
   テーマ single.php との統合スタイル調整
   ============================================================ */

/* single-content 内のブロックはテーマのリセットを上書き */
.single-content .pcpb-comp-table th,
.single-content .pcpb-comp-table td {
  padding: 9px 14px;
  text-align: center;
}
.single-content .pcpb-comp-table th {
  background: #f0f4ff;
  font-weight: 800;
}
.single-content .pcpb-callout p { margin: 0 !important; }
.single-content .pcpb-blog-card { color: inherit !important; }
.single-content .pcpb-toc-list  { padding-left: 0; margin: 0; }
.single-content .pcpb-toc-list li { margin-bottom: 0; }
.single-content .pcpb-cl-list   { padding-left: 0; }
.single-content .pcpb-cl-list li { margin-bottom: 0; list-style: none; }
.single-content .pcpb-part-embed h3 { padding: 0; border: none; background: none; font-size: 1rem; }
.single-content .pcpb-spec-grid h4  { padding: 0; border: none; background: none; margin: 0 0 10px; }

/* ============================================================
   フォーカスリングの統一（キーボード操作対応）
   ============================================================ */
.pcpb-cta-btn:focus-visible,
.pcpb-pe-btn:focus-visible,
.pcpb-pb-btn:focus-visible,
.pcpb-bc-arrow:focus-visible {
  outline: 3px solid var(--pcpb-primary);
  outline-offset: 3px;
  border-radius: 40px;
}
.pcpb-toc-toggle:focus-visible {
  outline: 2px solid var(--pcpb-primary);
  outline-offset: 2px;
  border-radius: 4px;
}
.pcpb-cl-item:focus-visible {
  outline: 2px solid var(--pcpb-primary);
  outline-offset: 1px;
  border-radius: 8px;
}

/* ============================================================
   ブロック間のマージン調整（連続配置時）
   ============================================================ */
.pcpb-callout + .pcpb-callout   { margin-top: -6px; }
.pcpb-cta-wrap + .pcpb-cta-wrap { margin-top: 10px; }

/* ============================================================
   フェードインアニメーション（軽量）
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .pcpb-part-embed,
  .pcpb-blog-card,
  .pcpb-price-banner,
  .pcpb-toc {
    animation: pcpbFadeUp .35s ease both;
  }
  @keyframes pcpbFadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

/* ============================================================
   ダークモード対応（システム設定追従）
   ============================================================ */
@media (prefers-color-scheme: dark) {
  :root {
    --pcpb-bg:     #1e293b;
    --pcpb-white:  #0f172a;
    --pcpb-border: #334155;
    --pcpb-text:   #f1f5f9;
    --pcpb-muted:  #94a3b8;
  }
  .pcpb-comp-table th              { background: #1e3a8a; color: #e2e8f0; }
  .pcpb-comp-table td              { color: #e2e8f0; }
  .pcpb-comp-table tr:hover td     { background: #1e2d45; }
  .pcpb-col-highlight              { background: #1e3460 !important; }
  .pcpb-callout-info               { background: #1e3a5f; }
  .pcpb-callout-success            { background: #14532d; }
  .pcpb-callout-warning            { background: #422006; }
  .pcpb-callout-danger             { background: #450a0a; }
  .pcpb-callout-point              { background: #3b0764; }
  .pcpb-toc-inner                  { background: #0f172a; }
  .pcpb-toc-header                 { background: #1e293b; color: #e2e8f0; }
  .pcpb-toc-body                   { background: #0f172a; }
  .pcpb-cl-item                    { background: #1e293b; border-color: #334155; }
  .pcpb-cl-item:hover              { background: #1e2d45; }
  .pcpb-cl-item.checked            { background: #14532d; border-color: #166534; }
  .pcpb-blog-card                  { background: #0f172a; border-color: #334155; color: #f1f5f9 !important; }
  .pcpb-bc-title                   { color: #f1f5f9; }
  .pcpb-pe-body                    { background: #0f172a; }
  .pcpb-pe-price                   { background: #1e293b; }
  .pcpb-price-banner               { background: linear-gradient(135deg, #1e3a5f 0%, #14532d 100%); border-color: #334155; }
  dt.pcpb-sg-label                 { background: #1e293b; border-color: #334155; color: #94a3b8; }
  dd.pcpb-sg-value                 { background: #0f172a; border-color: #334155; color: #f1f5f9; }
  span.pcpb-text-bold-box          { background: #f1f5f9; color: #0f172a; }
  .pcpb-gs-full, .pcpb-gs-compact  { background: #0f172a; border-color: #334155; }
  .pcpb-gs-card-header             { background: #1e293b; }
  .pcpb-gs-spec-col.pcpb-gs-min    { background: #291500; border-color: #78350f; }
  .pcpb-gs-spec-col.pcpb-gs-rec    { background: #052e16; border-color: #14532d; }
  .pcpb-gs-spec-key                { color: #94a3b8; }
  .pcpb-gs-spec-val                { color: #f1f5f9; }
  .pcpb-gs-card-title              { color: #f1f5f9; }
}

/* ============================================================
   ⑬ ゲームスペック埋め込み
   ============================================================ */

/* 共通 */
.pcpb-game-spec {
  margin: 1.8em 0;
}
.pcpb-game-spec.pcpb-empty {
  padding: 30px;
  text-align: center;
  color: var(--pcpb-muted);
  font-size: .85rem;
  background: var(--pcpb-bg);
  border: 1.5px dashed var(--pcpb-border);
  border-radius: var(--pcpb-radius);
}

/* バッジ */
.pcpb-gs-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: .72rem;
  font-weight: 700;
  margin-right: 5px;
}
.pcpb-gs-badge-genre  { background: #dbeafe; color: #1d4ed8; }
.pcpb-gs-badge-year   { background: #f1f5f9; color: #475569; }
.pcpb-gs-badge-dev    { background: #f0fdf4; color: #15803d; }

/* スペック行共通 */
.pcpb-gs-spec-row {
  display: flex;
  gap: 8px;
  font-size: .82rem;
  margin-bottom: 4px;
}
.pcpb-gs-spec-key {
  color: #94a3b8;
  font-weight: 600;
  width: 52px;
  flex-shrink: 0;
}
.pcpb-gs-spec-val { color: #1d1d1f; line-height: 1.4; }

.pcpb-gs-no-data {
  font-size: .78rem;
  color: #94a3b8;
  font-style: italic;
  margin: 0 !important;
}

/* スペック列 */
.pcpb-gs-spec-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
@media (max-width: 580px) {
  .pcpb-gs-spec-cols { grid-template-columns: 1fr; }
}
.pcpb-gs-spec-col {
  border-radius: 10px;
  padding: 14px 16px;
}
.pcpb-gs-spec-col.pcpb-gs-min { background: #fff8f0; border: 1.5px solid #ffe0b2; }
.pcpb-gs-spec-col.pcpb-gs-rec { background: #f0fdf4; border: 1.5px solid #bbf7d0; }
.pcpb-gs-col-title {
  font-size: .78rem;
  font-weight: 800;
  margin: 0 0 10px !important;
  display: flex;
  align-items: center;
  gap: 5px;
}
.pcpb-gs-min .pcpb-gs-col-title { color: #c77a00; }
.pcpb-gs-rec .pcpb-gs-col-title { color: #15803d; }

/* ── 詳細カードモード ─── */
.pcpb-gs-full {
  background: #fff;
  border-radius: 16px;
  border: 1.5px solid var(--pcpb-border);
  overflow: hidden;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-gs-card-header {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px 20px 0;
  background: #f8fafc;
  border-bottom: 1px solid var(--pcpb-border);
  padding-bottom: 16px;
}
.pcpb-gs-card-img {
  width: 200px;
  height: 113px;
  object-fit: cover;
  border-radius: 10px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.pcpb-gs-card-img-ph {
  width: 200px;
  height: 113px;
  background: linear-gradient(135deg, #e8f0fe, #dbeafe);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  flex-shrink: 0;
}
.pcpb-gs-card-meta { flex: 1; min-width: 0; }
.pcpb-gs-card-label {
  font-size: .72rem;
  font-weight: 700;
  color: #2563eb;
  margin: 0 0 6px !important;
  display: flex;
  align-items: center;
  gap: 5px;
}
.pcpb-gs-card-title {
  font-size: 1.1rem !important;
  font-weight: 900;
  color: #1d1d1f;
  margin: 0 0 8px !important;
  line-height: 1.3;
}
.pcpb-gs-meta-badges { display: flex; flex-wrap: wrap; gap: 5px; }

/* スペック部 padding */
.pcpb-gs-full .pcpb-gs-spec-cols { padding: 16px 20px 0; margin-bottom: 0; }

/* アクションボタン群 */
.pcpb-gs-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 16px 20px;
}
.pcpb-gs-build-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  background: var(--pcpb-primary);
  color: #fff !important;
  border-radius: 12px;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: background .18s, transform .18s;
}
.pcpb-gs-build-btn:hover { background: #1d4ed8; transform: translateY(-1px); }
.pcpb-gs-build-btn-sm { padding: 7px 14px; font-size: .78rem; }
.pcpb-gs-steam-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 20px;
  background: #fff;
  border: 1.5px solid var(--pcpb-border);
  color: #374151 !important;
  border-radius: 12px;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: background .18s;
}
.pcpb-gs-steam-btn:hover { background: #f0f4ff; }
.pcpb-gs-notice {
  font-size: .7rem !important;
  color: var(--pcpb-muted) !important;
  margin: 0 0 16px !important;
  padding: 0 20px;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .pcpb-gs-card-img,
  .pcpb-gs-card-img-ph { width: 140px; height: 79px; font-size: 2rem; }
  .pcpb-gs-card-header { gap: 12px; padding: 14px 14px 12px; }
  .pcpb-gs-card-title  { font-size: .95rem !important; }
  .pcpb-gs-full .pcpb-gs-spec-cols { padding: 12px 14px 0; }
  .pcpb-gs-actions     { padding: 12px 14px; }
  .pcpb-gs-notice      { padding: 0 14px; }
}

/* ── コンパクトモード ─── */
.pcpb-gs-compact {
  background: #fff;
  border: 1.5px solid var(--pcpb-border);
  border-radius: var(--pcpb-radius);
  padding: 16px;
  box-shadow: var(--pcpb-shadow);
}
.pcpb-gs-compact-top {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
}
.pcpb-gs-compact-img {
  width: 120px;
  height: 68px;
  object-fit: cover;
  border-radius: 8px;
  flex-shrink: 0;
}
.pcpb-gs-compact-title {
  font-size: .95rem;
  font-weight: 800;
  margin: 0 0 5px !important;
  color: var(--pcpb-text);
}
.pcpb-gs-compact .pcpb-gs-build-btn { margin-top: 12px; }

/* ── バナーモード ─── */
.pcpb-gs-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
  border: 1.5px solid #bfdbfe;
  border-left: 4px solid var(--pcpb-primary);
  border-radius: var(--pcpb-radius);
  box-shadow: var(--pcpb-shadow);
  flex-wrap: wrap;
}
.pcpb-gs-banner-img {
  width: 80px;
  height: 45px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
}
.pcpb-gs-banner-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pcpb-gs-banner-label {
  font-size: .7rem;
  font-weight: 700;
  color: #2563eb;
}
.pcpb-gs-banner-title {
  font-size: .9rem;
  font-weight: 800;
  color: #1d1d1f;
}
.pcpb-gs-banner-spec {
  font-size: .75rem;
  color: #475569;
}
@media (max-width: 520px) {
  .pcpb-gs-banner { flex-direction: column; align-items: flex-start; }
  .pcpb-gs-build-btn-sm { align-self: stretch; justify-content: center; }
}

/* エディタ内プレビュー用 */
.pcpb-game-spec-editor {
  border: 1.5px dashed #6366f1;
  border-radius: 8px;
  padding: 12px;
  background: #fafbff;
}
.pcpb-gs-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #4338ca;
}
.pcpb-gs-header-icon { font-size: 1.2rem; }
.pcpb-gs-preview {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 12px;
}
.pcpb-gs-search { padding: 0; }

/* ============================================================
   ⑭ PC構成表 見積もりページへ反映ボタン
   ============================================================ */
.pcpb-pcb-estimate-bar {
  margin-top: 16px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%);
  border: 1.5px solid #bfdbfe;
  border-radius: 12px;
  text-align: center;
}
.pcpb-pcb-estimate-note {
  margin: 0 0 10px !important;
  font-size: .82rem !important;
  color: #1d4ed8 !important;
  font-weight: 600;
}
.pcpb-pcb-estimate-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.pcpb-pcb-estimate-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 22px;
  background: linear-gradient(135deg, #2563eb 0%, #059669 100%);
  color: #fff !important;
  border: none;
  border-radius: 40px;
  font-size: .9rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .18s, transform .18s, box-shadow .18s;
  box-shadow: 0 3px 12px rgba(37,99,235,.25);
  font-family: inherit;
  line-height: 1;
}
.pcpb-pcb-estimate-btn:hover:not(:disabled) {
  opacity: .9;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(37,99,235,.35);
}
.pcpb-pcb-estimate-btn:active:not(:disabled) {
  transform: translateY(0);
}
.pcpb-pcb-estimate-btn:disabled {
  opacity: .6;
  cursor: default;
}
@media (max-width: 600px) {
  .pcpb-pcb-estimate-btn { font-size: .82rem; padding: 10px 16px; width: 100%; justify-content: center; }
  .pcpb-pcb-estimate-bar  { padding: 12px 14px; }
}

/* ============================================================
   ⑮ コードコピーブロック（📋 コピーボタン付きコードブロック）
   ============================================================ */

/* ─ 共通ラッパー ─ */
.pcpb-code-copy {
  margin: 1.5em 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
  font-family: 'Consolas', 'Courier New', 'SFMono-Regular', monospace;
}
.pcpb-code-copy.pcpb-empty {
  padding: 20px;
  text-align: center;
  background: var(--pcpb-bg);
  border: 1.5px dashed var(--pcpb-border);
  color: var(--pcpb-muted);
  font-size: .85rem;
}

/* ─ ヘッダー（言語バッジ + ラベル + コピーボタン）─ */
.pcpb-cc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px;
  background: #1d4ed8;
  gap: 10px;
}
.pcpb-cc-header-simple {
  justify-content: flex-end;
}
.pcpb-cc-label {
  font-size: .82rem;
  font-weight: 700;
  color: #fff;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pcpb-cc-lang {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  white-space: nowrap;
}

/* コピーボタン */
.pcpb-cc-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 13px;
  background: rgba(255,255,255,.15);
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.3);
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .18s, border-color .18s, transform .12s;
  white-space: nowrap;
  font-family: inherit;
  flex-shrink: 0;
  line-height: 1;
}
.pcpb-cc-btn:hover {
  background: rgba(255,255,255,.28);
  border-color: rgba(255,255,255,.55);
  transform: scale(1.04);
}
.pcpb-cc-btn.copied {
  background: #059669;
  border-color: #10b981;
}
.pcpb-cc-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.pcpb-cc-icon { font-size: .85em; }
.pcpb-cc-text { }

/* ─ 説明文 ─ */
.pcpb-cc-description {
  margin: 0 !important;
  padding: 6px 16px 7px !important;
  font-size: .8rem !important;
  font-style: italic;
  line-height: 1.5;
}

/* ─ コードエリア ─ */
.pcpb-cc-pre {
  margin: 0 !important;
  padding: 16px 20px !important;
  overflow-x: auto;
  line-height: 1.75;
  font-size: .9rem !important;
  tab-size: 2;
  white-space: pre;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.pcpb-cc-pre code {
  background: none !important;
  padding: 0 !important;
  border: none !important;
  font-size: inherit !important;
  font-family: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
}

/* コピー成功メッセージ */
.pcpb-cc-success {
  margin: 0 !important;
  padding: 6px 16px !important;
  font-size: .8rem !important;
  font-weight: 700;
  text-align: center;
  animation: pcpbCcFadeIn .2s ease;
}
@keyframes pcpbCcFadeIn {
  from { opacity: 0; transform: translateY(3px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─ ダークテーマ（デフォルト）─ */
.pcpb-cc-theme-dark .pcpb-cc-description { background: #161625; color: #8892b0; }
.pcpb-cc-theme-dark .pcpb-cc-pre         { background: #1e1e2e; color: #cdd6f4; }
.pcpb-cc-theme-dark .pcpb-cc-success     { background: #1e1e2e; color: #a6e3a1; }

/* ─ ライトテーマ ─ */
.pcpb-cc-theme-light .pcpb-cc-header      { background: #334155; }
.pcpb-cc-theme-light .pcpb-cc-description { background: #f1f5f9; color: #64748b; }
.pcpb-cc-theme-light .pcpb-cc-pre         { background: #f8fafc; color: #1e293b; border-top: 1px solid #e2e8f0 !important; }
.pcpb-cc-theme-light .pcpb-cc-success     { background: #f0fdf4; color: #15803d; }

/* ─ ブルーテーマ（ターミナル風）─ */
.pcpb-cc-theme-blue .pcpb-cc-header       { background: #0d1117; border-bottom: 1px solid #21262d; }
.pcpb-cc-theme-blue .pcpb-cc-description  { background: #0d1117; color: #8b949e; }
.pcpb-cc-theme-blue .pcpb-cc-pre          { background: #0d1117; color: #58a6ff; }
.pcpb-cc-theme-blue .pcpb-cc-success      { background: #0d1117; color: #3fb950; }
.pcpb-cc-theme-blue .pcpb-cc-btn          { border-color: #30363d; }

/* ─ レスポンシブ ─ */
@media (max-width: 600px) {
  .pcpb-cc-pre        { font-size: .82rem !important; padding: 12px 14px !important; }
  .pcpb-cc-header     { padding: 8px 12px; }
  .pcpb-cc-label      { font-size: .76rem; }
  .pcpb-cc-btn        { padding: 4px 10px; font-size: .72rem; }
}

/* ─ ダークモード自動対応 ─ */
@media (prefers-color-scheme: dark) {
  .pcpb-cc-theme-light .pcpb-cc-pre         { background: #1e293b; color: #e2e8f0; border-top-color: #334155 !important; }
  .pcpb-cc-theme-light .pcpb-cc-description { background: #0f172a; color: #94a3b8; }
  .pcpb-cc-theme-light .pcpb-cc-success     { background: #0f172a; color: #86efac; }
}

/* ─ シングルコンテンツ内の調整 ─ */
.single-content .pcpb-code-copy pre { padding: 16px 20px; margin: 0; }
.single-content .pcpb-cc-pre code  { white-space: pre; }
