/*
 Theme Name: resonance-bloom Child
 Template: generatepress
 Version: 1.0.1
*/

/* ===== Tokens ===== */
:root{
  --rb-bg:#121212;
  --rb-surface:#161616;
  --rb-card:#181818;
  --rb-text:#E6E6E6;
  --rb-muted:#A8A8A8;
  --rb-border:rgba(255,255,255,.08);
  --rb-soft:rgba(255,255,255,.04);
  --rb-accent:#B71C1C;    /* wine red */
  --rb-accent2:#6A1B9A;   /* deep purple */
  --rb-link:#E6E6E6;
  --rb-link-hover:#FF5C8A;
  --rb-shadow:0 10px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.02);
}

/* ===== Base ===== */
html,body{ background:var(--rb-bg); color:var(--rb-text); line-height:1.75;
  font-family:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }
a{ color:var(--rb-link); text-decoration:none; }
a:hover{ color:var(--rb-link-hover); }
img{ max-width:100%; height:auto; display:block; }

.rb-container{ max-width:1160px; margin:0 auto; padding:28px; }

/* ===== Header/Footer harmony with GP ===== */
.main-navigation,.site-header{ background:#111; border-bottom:1px solid var(--rb-border); }
.main-title, .site-description{ color:#fff; }
.site-footer{ color:var(--rb-muted); background:#0f0f0f; }

/* ===== Section Head ===== */
.lc-section{ padding:26px 0 26px 16px; border-top:1px solid var(--rb-border); }
.lc-head{ display:flex; justify-content:space-between; align-items:end; margin-bottom:14px; }
.lc-title{ font-family:"Roboto Condensed",system-ui; font-weight:700; letter-spacing:.02em;
  font-size:clamp(22px,2.5vw,30px); color:#fff; margin:0; }
.lc-more{ color:var(--rb-muted); font-size:14px; }
.lc-more:hover{ color:#fff; }

/* ===== Buttons ===== */
.rb-btn{ display:inline-flex; gap:8px; align-items:center; padding:10px 16px;
  border-radius:999px; border:1px solid var(--rb-border); background:#1b1b1b; color:#fff; }
.rb-btn:hover{ border-color:var(--rb-accent); }
.rb-btn-accent{ background:var(--rb-accent); border-color:var(--rb-accent); }

/* ===== HERO（上質・余白広め） ===== */
.lc-hero{ position:relative; background:#0f0f0f center/cover no-repeat; min-height:48vh; }
.lc-hero__shade{ position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.7)),
  radial-gradient(1200px 500px at 20% -10%, rgba(183,28,28,.22), transparent 60%),
  radial-gradient(1200px 500px at 80% -10%, rgba(106,27,154,.22), transparent 60%); }
.lc-hero__inner{ position:relative; padding:72px 28px; }
.lc-hero__title{ margin:0 0 6px; font-size:clamp(28px,4.3vw,46px); font-weight:800; color:#fff; letter-spacing:.02em; }
.lc-hero__lead{ color:#CFCFCF; max-width:760px; margin:0 0 18px; }
.lc-hero__cta{ display:flex; gap:10px; flex-wrap:wrap; }

/* ===== Trust Strip ===== */
.lc-trust{ background:linear-gradient(0deg, var(--rb-soft), var(--rb-soft)); border-top:1px solid var(--rb-border); border-bottom:1px solid var(--rb-border); }
.lc-trust__list{ display:flex; gap:18px; overflow:auto; padding:12px 28px; }
.lc-trust__list li{ display:flex; align-items:center; gap:8px; color:#D9D9D9; white-space:nowrap; }
.lc-trust__list svg{ width:18px; height:18px; color:#ddd; opacity:.9; }

/* ===== Categories (tiles) ===== */
.lc-cats{ display:grid; gap:12px; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); }
.lc-cat{ position:relative; display:flex; align-items:center; justify-content:center;
  height:92px; background:var(--rb-card); border:1px solid var(--rb-border); border-radius:14px;
  box-shadow:var(--rb-shadow); }
.lc-cat span{ color:#EAEAEA; font-weight:700; letter-spacing:.02em; }
.lc-cat:hover{ outline:1px solid var(--rb-accent); }

/* ===== Card Grid ===== */
.lc-grid{ display:grid; gap:16px; grid-template-columns: repeat(auto-fill, minmax(260px,1fr)); }
.lc-grid--wide{ grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); }
.lc-grid--cols{ grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); }

/* ===== Product Card ===== */
.lc-card{ background:var(--rb-card); border:1px solid var(--rb-border); border-radius:16px; overflow:hidden;
  box-shadow:var(--rb-shadow); transition:transform .25s ease, box-shadow .25s ease; }
.lc-card:hover{ transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,.45); }
.lc-card__thumb img{ width:100%; height:auto; display:block; }
.lc-card__body{ padding:14px 14px 16px; }
.lc-card__title{ margin:10px 14px 4px; font-weight:800; letter-spacing:.02em; color:#fff; font-size:16px; }
.lc-card__meta{ display:flex; align-items:center; gap:10px; margin:0 14px 12px; color:var(--rb-muted); }
.lc-price{ color:#fff; font-weight:700; }
.lc-card__actions{ display:flex; gap:8px; padding:0 14px 16px; }
.lc-card--feature{ grid-column: span 2; } /* 上位2つを大きめに見せる */

.rb-stars{ color:#FFC107; font-size:14px; letter-spacing:.5px; }

/* ===== Article (columns) ===== */
.lc-article{ background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:14px; overflow:hidden; box-shadow:var(--rb-shadow); }
.lc-article__thumb img{ width:100%; height:auto; }
.lc-article__title{ margin:10px 14px 6px; font-weight:800; color:#fff; }
.lc-article__ex{ margin:0 14px 16px; color:#CFCFCF; font-size:14px; }

/* ===== CTA ===== */
.lc-cta{ text-align:center; margin:28px 0; background:linear-gradient(90deg, rgba(183,28,28,.14), rgba(106,27,154,.14)); border-radius:18px; border:1px solid var(--rb-border); }
.lc-cta h2{ margin:8px 0 6px; color:#fff; }

/* ===== Forms / misc ===== */
input,textarea,select{ background:#151515; color:#E6E6E6; border:1px solid var(--rb-border); border-radius:10px; padding:8px 10px; }
button,input[type="submit"]{ background:#1b1b1b; color:#fff; border:1px solid var(--rb-border); border-radius:999px; padding:10px 16px; }
button:hover,input[type="submit"]:hover{ border-color:var(--rb-accent); }

/* ===== Compare bar (既存機能) ===== */
#rb-compare-bar{ position:fixed; left:50%; transform:translateX(-50%); bottom:16px; z-index:9999;
  display:none; gap:10px; align-items:center; background:#181818; border:1px solid var(--rb-border);
  border-radius:999px; padding:10px 14px; box-shadow:var(--rb-shadow); }
#rb-compare-bar.show{ display:flex; }
/* ===== Header ===== */
.lc-header{ position:sticky; top:0; z-index:1000; background:#111; border-bottom:1px solid var(--rb-border); }
.lc-header__inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.lc-logo{ display:flex; align-items:center; gap:10px; }
.lc-logo__mark{ display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%;
  background:linear-gradient(135deg, var(--rb-accent), var(--rb-accent2)); color:#fff; font-weight:700; }
.lc-logo__text{ color:#fff; font-weight:800; letter-spacing:.02em; }

.lc-nav{ display:flex; align-items:center; gap:18px; }
.lc-menu{ display:flex; gap:18px; list-style:none; margin:0; padding:0; }
.lc-menu a{ color:#ddd; }
.lc-menu a:hover{ color:#fff; }

.lc-nav__actions{ display:flex; gap:10px; }
.lc-nav__toggle{ display:none; background:transparent; border:1px solid var(--rb-border); border-radius:8px; padding:8px 10px; color:#ddd; }
.lc-nav__bar{ display:block; width:20px; height:2px; background:#ddd; margin:3px 0; }
.lc-nav__label{ position:absolute; left:-9999px; }

@media (max-width: 980px){
  .lc-nav__toggle{ display:inline-block; }
  .lc-nav{ position:absolute; right:0; top:64px; background:#111; border:1px solid var(--rb-border); border-right:0; border-radius:12px 0 0 12px;
    padding:14px; flex-direction:column; align-items:flex-start; gap:12px; display:none; }
  .lc-nav.is-open{ display:flex; }
  .lc-menu{ flex-direction:column; gap:10px; }
}

/* ===== Footer ===== */
.lc-footer{ background:#0f0f0f; border-top:1px solid var(--rb-border); }
.lc-footer__inner{ padding-top:28px; padding-bottom:28px; }
.lc-footer__cols{ display:grid; gap:16px; grid-template-columns: repeat(3,1fr); }
.lc-foot__hdg{ color:#fff; font-weight:700; margin:0 0 8px; font-size:15px; }
.lc-foot__menu{ list-style:none; margin:0; padding:0; }
.lc-foot__menu a{ color:#cfcfcf; }
.lc-foot__menu a:hover{ color:#fff; }
.lc-foot__bottom{ margin-top:18px; padding-top:14px; border-top:1px solid var(--rb-border); color:#9d9d9d; text-align:center; font-size:13px; }

@media (max-width: 780px){
  .lc-footer__cols{ grid-template-columns:1fr; }
}
/* 子テーマのヘッダー用（私が渡した header.php を使っている場合） */
.lc-header .rb-container { padding-left: 10px; }   /* 既定28px → 10pxに */
@media (min-width: 981px){
  .lc-header .rb-container { padding-left: 16px; }  /* PCはさらに詰める */
}

/* GeneratePress/Astra でも効く保険（親テーマ側のヘッダーを使っている場合） */
.site-header .inside-header,
.main-navigation .inside-navigation { padding-left: 10px !important; }
/* ==== Headerを左端ベタ付け（SP/PC共通） ==== */
/* 1) ヘッダー容器の左パディングを0に */
.lc-header .rb-container { padding-left: 0 !important; }

/* 親テーマ側の内側余白もゼロ（GeneratePress等） */
.site-header .inside-header,
.main-navigation .inside-navigation { padding-left: 0 !important; }

/* iPhoneノッチ等の安全域だけは確保（対応端末のみ有効） */
.lc-header { padding-left: env(safe-area-inset-left, 0); }

/* 2) ロゴ自体をさらに左へ（画像に透明余白がある場合の補正） */
.lc-logo,
.site-logo,
.custom-logo-link { margin-left: -150px; }   /* -8〜-16pxの範囲で調整OK */
@media (max-width: 980px){
  .lc-logo,
  .site-logo,
  .custom-logo-link { margin-left: -8px; }  /* モバイルは少し弱め */
}
/* === フッター3列を中央寄せ === */
.lc-footer__cols{
  justify-items:center;     /* 各列の中身を中央に */
  text-align:center;
}
.lc-foot__hdg{ text-align:center; }
.lc-foot__menu{ text-align:center; }
.lc-foot__menu a{ display:inline-block; }
.lc-foot__bottom{ text-align:center; }
/* 見出し行：タイトルと「すべて見る」の高さを揃える */
.lc-head{ align-items: baseline; }  /* 既存の align-items:end; を上書き */
/* ==== Single Review ==== */
.rv-head{ margin:10px 0 8px; }
.rv-title{ margin:0 0 6px; font-weight:800; color:#fff; font-size:clamp(22px,3.5vw,28px); }
.rv-head__meta{ display:flex; gap:12px; align-items:center; color:var(--rb-muted); }
.rv-price{ color:#fff; font-weight:700; }

.rv-gallery{ display:flex; gap:10px; overflow:auto; scroll-snap-type:x mandatory; margin:10px 0 18px; }
.rv-gallery img{ scroll-snap-align:center; border-radius:14px; border:1px solid var(--rb-border); background:#000; }

.rv-summary h2, .rv-spec h2{ margin:0 0 10px; color:#fff; }
.rv-scores{ display:grid; gap:8px; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); margin-bottom:12px; }
.rv-score{ display:flex; align-items:center; justify-content:space-between; background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:10px; padding:8px 10px; }

.rv-procon{ display:grid; gap:12px; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
.rv-procon h3{ margin:0 0 6px; font-size:15px; color:#fff; }
.rv-procon ul{ margin:0; padding-left:18px; }

.rv-cta{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:10px; }

.rv-content{ margin:20px 0; }
.rv-spec__dl{ display:grid; gap:8px; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
.rv-spec__dl > div{ display:grid; grid-template-columns: 1fr 1.5fr; gap:8px; background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:10px; padding:8px 10px; }
.rv-spec__dl dt{ color:#cfcfcf; }
.rv-spec__dl dd{ margin:0; color:#fff; }

/* ==== Modal (simple) ==== */
.rb-modal[aria-hidden="true"]{ display:none; }
.rb-modal{ position:fixed; inset:0; z-index:10000; }
.rb-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.rb-modal__dialog{ position:relative; max-width:520px; margin:14vh auto 0; background:#181818; border:1px solid var(--rb-border); border-radius:16px; padding:18px; }
.rb-modal__actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:14px; }
/* ==== Archive Hero ==== */
.ar-hero{ background:#0f0f0f; border-bottom:1px solid var(--rb-border); }
.ar-hero__inner{ padding:34px 28px 22px; }
.ar-hero__title{ margin:0; font-weight:800; color:#fff; font-size:clamp(28px,4.2vw,44px); letter-spacing:.02em; }
.ar-hero__sub{ margin:6px 0 0; color:#cfcfcf; }

/* ==== Filter bar & chips ==== */
.ar-filter{ margin:16px 0; padding:16px; border:1px solid var(--rb-border); }
.ar-filter__form{ display:grid; gap:12px; }
.ar-filter__search{ display:flex; gap:8px; align-items:center; }
.ar-filter__search input[type="search"]{
  flex:1 1 auto; min-width:160px; background:#151515; color:#e6e6e6;
  border:1px solid var(--rb-border); border-radius:12px; padding:10px 12px;
}
.ar-filter__clear{ background:#1b1b1b; }

.ar-filter__chips{ display:flex; gap:8px; flex-wrap:wrap; }
.chip{
  display:inline-flex; align-items:center; gap:6px; padding:8px 12px;
  border-radius:999px; border:1px solid var(--rb-border);
  background:#151515; color:#e6e6e6; font-size:14px;
}
.chip:hover{ border-color:var(--rb-accent); }
.chip.is-active{ background:linear-gradient(135deg, var(--rb-accent), var(--rb-accent2)); border-color:transparent; }

/* ==== Count ==== */
.ar-count{ color:#cfcfcf; margin:6px 0 8px; }

/* ==== Grid tuning (3列基調) ==== */
.lc-grid--archive{ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

/* ==== Card badge & footer meta ==== */
.lc-card__thumb{ position:relative; aspect-ratio:3/2; overflow:hidden; border-radius:14px; border:1px solid var(--rb-border); background:#0a0a0a; }
.lc-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.lc-card__badge{
  position:absolute; left:10px; top:10px; z-index:2;
  padding:6px 10px; border-radius:999px; font-size:12px;
  background:rgba(0,0,0,.55); color:#fff; border:1px solid var(--rb-border);
  backdrop-filter: blur(2px);
}
.ar-card__foot{ justify-content:space-between; color:#a8a8a8; font-size:13px; }
.ar-card__cat{ color:#cfcfcf; }
.ar-card__cat:hover{ color:#fff; }

/* ==== Pager ==== */
.ar-pager{ display:flex; gap:8px; justify-content:center; margin:18px 0 8px; }
.ar-pager .page-numbers{ display:inline-grid; place-items:center; width:34px; height:34px;
  border:1px solid var(--rb-border); border-radius:50%; background:#1b1b1b; color:#e6e6e6; }
.ar-pager .current{ background:var(--rb-accent); border-color:var(--rb-accent); color:#fff; }
/* === レビュー一覧カードのサイズを固定＆中央寄せ === */
.lc-grid--archive{
  grid-template-columns: repeat(auto-fit, minmax(280px, 320px)); /* 列幅を固定気味に */
  justify-content: center;                                       /* 常に中央寄せ */
  gap: 16px;
}

/* 各カードはトラック幅にフィット（広がり防止の保険） */
.lc-grid--archive .lc-card{
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}

/* モバイルは1列でOK（幅いっぱい） */
@media (max-width: 600px){
  .lc-grid--archive{
    grid-template-columns: 1fr;
  }
}
/* サムネを固定比率にし、下の本文が確実に見えるように */
.lc-card__thumb{
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--rb-border);
  background:#0a0a0a;
}
.lc-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

/* 本文ブロックの余白 */
.lc-card__body{ padding:14px 14px 16px; }

/* カテゴリバッジ */
.lc-card__badge{
  position:absolute; left:10px; top:10px; z-index:2;
  padding:6px 10px; border-radius:999px; font-size:12px;
  background:rgba(0,0,0,.55); color:#fff; border:1px solid var(--rb-border);
  backdrop-filter: blur(2px);
}

/* 一覧カードの幅固定＆中央寄せ（1件でも巨大化しない） */
.lc-grid--archive{
  grid-template-columns: repeat(auto-fit, minmax(280px, 320px));
  justify-content: center;
  gap: 16px;
}
.lc-grid--archive .lc-card{ width:100%; max-width:320px; margin:0 auto; }
.lc-grid--archive{
  grid-template-columns: repeat(auto-fit, minmax(280px, 320px));
  justify-content: center;
  gap: 16px;
}
.lc-grid--archive .lc-card{ width:100%; max-width:320px; margin:0 auto; }
.lc-card__thumb{ position:relative; aspect-ratio:3/2; overflow:hidden; border-radius:14px; border:1px solid var(--rb-border); background:#0a0a0a; }
.lc-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.lc-card__body{ padding:14px 14px 16px; }
.lc-card__badge{
  position:absolute; left:10px; top:10px; z-index:2;
  padding:6px 10px; border-radius:999px; font-size:12px;
  background:rgba(0,0,0,.55); color:#fff; border:1px solid var(--rb-border);
  backdrop-filter: blur(2px);
}
/* === RB Archive fix pack === */

/* 列幅を固定＆中央寄せ */
.lc-grid--archive{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 320px));
  justify-content:center;
  gap:16px;
}
.lc-grid--archive .lc-card{ max-width:320px; margin:0 auto; }

/* カードの骨格：上=画像 / 下=本文 */
.lc-card{
  display:flex;
  flex-direction:column;
  background:var(--rb-card);
  border:1px solid var(--rb-border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--rb-shadow);
}

/* サムネは一定比率でトリミング */
.lc-card__thumb{
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:3/2;             /* 必要なら 16/9 に変更可 */
  overflow:hidden;
  background:#0a0a0a;
  border-bottom:1px solid var(--rb-border);
}
.lc-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

/* 本文エリアを必ず表示 */
.lc-card__body{ flex:1 1 auto; padding:14px 14px 16px; }
.lc-card__title{ margin:6px 0 4px; font-weight:800; color:#fff; font-size:16px; }
.lc-card__meta{ display:flex; align-items:center; gap:10px; color:var(--rb-muted); }

/* カテゴリバッジ＆プレースホルダ */
.lc-card__badge{
  position:absolute; left:10px; top:10px; z-index:2;
  padding:6px 10px; border-radius:999px; font-size:12px;
  background:rgba(0,0,0,.55); color:#fff; border:1px solid var(--rb-border);
  backdrop-filter: blur(2px);
}
.rb-thumb-ph{
  display:block; width:100%; height:100%;
  background:
    linear-gradient(135deg, rgba(183,28,28,.18), rgba(106,27,154,.18)),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
/* ==== Single Review Layout ==== */
.rv-head{ margin:10px 0 8px; }
.rv-breadcrumbs{ color:var(--rb-muted); font-size:13px; margin-bottom:6px; }
.rv-breadcrumbs a{ color:var(--rb-muted); }
.rv-title{ margin:0 0 8px; font-weight:800; color:#fff; font-size:clamp(22px,3.8vw,30px); }
.rv-head__meta{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; color:var(--rb-muted); }
.rv-price{ color:#fff; font-weight:700; }
.rv-brand{ background:#1b1b1b; border:1px solid var(--rb-border); border-radius:999px; padding:4px 8px; color:#e6e6e6; font-size:12px; }

.rv-grid{ display:grid; gap:16px; grid-template-columns: 1fr; }
@media (min-width: 1000px){
  .rv-grid{ grid-template-columns: minmax(0,1.6fr) minmax(260px, .9fr); align-items:start; }
}

.rv-main > section, .rv-side > section{ margin:16px 0; }

/* Gallery */
.rv-gallery__main{ border:1px solid var(--rb-border); border-radius:14px; overflow:hidden; background:#0a0a0a; }
.rv-gallery__main img{ width:100%; height:auto; display:block; }
.rv-gallery__thumbs{ display:flex; gap:8px; overflow:auto; margin-top:8px; }
.rv-gallery__thumbs img{ width:92px; height:64px; object-fit:cover; border:1px solid var(--rb-border); border-radius:10px; opacity:.85; cursor:pointer; }
.rv-gallery__thumbs img:hover{ opacity:1; }

/* TOC */
.rv-toc{ border:1px solid var(--rb-border); border-radius:14px; padding:12px; background:var(--rb-surface); }
.rv-toc strong{ color:#fff; display:block; margin:0 0 6px; }
.rv-toc ol{ margin:0; padding-left:18px; color:#cfcfcf; }

/* Summary side */
.rv-summary h2{ margin:0 0 10px; color:#fff; }
.rv-over{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.rv-over__score{ font-size:18px; }
.rv-over__label{ color:#cfcfcf; }
.rv-scores{ display:grid; gap:8px; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); }
.rv-score{ display:flex; align-items:center; justify-content:space-between; background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:10px; padding:8px 10px; }
.rv-procon{ display:grid; gap:12px; grid-template-columns: 1fr; }
.rv-procon h3{ margin:8px 0 6px; font-size:15px; color:#fff; }
.rv-procon ul{ margin:0; padding-left:18px; }
.rv-cta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }

/* Spec */
.rv-spec h2{ margin:0 0 10px; color:#fff; }
.rv-spec__dl{ display:grid; gap:8px; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
.rv-spec__dl > div{ display:grid; grid-template-columns: 1fr 1.5fr; gap:8px; background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:10px; padding:8px 10px; }
.rv-spec__dl dt{ color:#cfcfcf; margin:0; }
.rv-spec__dl dd{ margin:0; color:#fff; }

/* Sticky CTA (SP) */
.rb-sticky-cta{ position:fixed; left:0; right:0; bottom:12px; z-index:10000; display:none; }
.rb-sticky-cta__inner{ display:flex; gap:10px; align-items:center; justify-content:space-between; background:#181818; border:1px solid var(--rb-border); border-radius:999px; padding:10px 14px; box-shadow:var(--rb-shadow); }
.rb-sticky-cta__title{ color:#fff; font-weight:700; }
.rb-sticky-cta__price{ color:#fff; font-weight:700; }
@media (max-width: 980px){ .rb-sticky-cta{ display:block; } }

/* Modal（既存と整合） */
.rb-modal[aria-hidden="true"]{ display:none; }
.rb-modal{ position:fixed; inset:0; z-index:10000; }
.rb-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.rb-modal__dialog{ position:relative; max-width:520px; margin:14vh auto 0; background:#181818; border:1px solid var(--rb-border); border-radius:16px; padding:18px; }
.rb-modal__actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:14px; }
/* ==== Single Column ==== */
.cl-head{ margin:10px 0 8px; }
.cl-title{ margin:0 0 8px; font-weight:800; color:#fff; font-size:clamp(22px,3.8vw,30px); }
.cl-meta{ color:var(--rb-muted); display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.cl-cat{ color:#cfcfcf; }
.cl-cat:hover{ color:#fff; }
.cl-dot{ color:#555; }

.cl-hero{ position:relative; margin:10px 0 0; border-radius:14px; overflow:hidden; border:1px solid var(--rb-border); }
.cl-hero img{ display:block; width:100%; height:auto; }
.cl-hero__shade{ position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.45)); pointer-events:none; }

.cl-grid{ display:grid; gap:16px; grid-template-columns: 1fr; }
@media (min-width: 1000px){
  .cl-grid{ grid-template-columns: minmax(0,1.6fr) minmax(260px, .9fr); align-items:start; }
}

.cl-main > section, .cl-side > section{ margin:16px 0; }

.cl-lead{ background:var(--rb-surface); border:1px solid var(--rb-border); border-radius:14px; padding:12px 14px; color:#cfcfcf; }

/* TOC（レビューと同意匠） */
.cl-toc{ border:1px solid var(--rb-border); border-radius:14px; padding:12px; background:var(--rb-surface); }
.cl-toc strong{ color:#fff; display:block; margin:0 0 6px; }
.cl-toc ol{ margin:0; padding-left:18px; color:#cfcfcf; }

/* 本文の調整（読み物向け） */
.cl-content h2{ margin:18px 0 10px; font-size:clamp(18px,2.4vw,22px); color:#fff; }
.cl-content h3{ margin:14px 0 8px; font-size:clamp(16px,2vw,18px); color:#fff; }
.cl-content p{ color:#e6e6e6; }
.cl-content blockquote{ margin:12px 0; padding:10px 14px; border-left:3px solid var(--rb-accent); background:rgba(255,255,255,.03); }
.cl-content ul, .cl-content ol{ padding-left:1.2em; }

/* Share & latest */
.cl-share h2, .cl-latest h2{ margin:0 0 10px; color:#fff; }
.cl-share__row{ display:flex; flex-wrap:wrap; gap:8px; }
.cl-latest__list{ margin:0; padding:0 0 0 16px; color:#cfcfcf; }
