/* SoftYomi デザイン v2（プレビュー専用・2026-10-14）。global.css の変数を夜色に置き換え、PC ではヒーロー＋2カラムにする。 */
body.v2 {
  --paper: #120a0d; --paper-deep: #1a0f13; --card: #1e1217; --card-hover: #26161d;
  --ink: #f1e6e3; --ink-soft: #dccbc8; --muted: #b9a3a2;
  --blush: #3a1c26; --blush-pale: #2a151c; --blush-deep: #5a2433;
  --rose: #e0475f; --rose-ink: #ff8f9f; --wine: #7a1830; --wine-night: #0b0608; --wine-ink: #f6e6e2;
  --line: #3a2328; --line-warm: #4d2a32;
  --warn-bg: #2a1d10; --warn-line: #c9975a; --warn-ink: #f2d9b4;
  --status-bg: #1f1a26; --status-line: #7f6a8d; --status-ink: #e2d6ea;
  --draft-bg: #33141c; --draft-line: #e0475f; --draft-ink: #ffd5dc;
  --gold: #d8b46a; --crimson: #c8102e;
  --bg: var(--paper); --fg: var(--ink); --border: var(--line); --accent: var(--rose); --cream: var(--card);
  --shadow-soft: 0 1px 0 rgba(0,0,0,.4), 0 4px 14px rgba(0,0,0,.35);
  --shadow-lift: 0 2px 0 rgba(0,0,0,.5), 0 10px 28px rgba(0,0,0,.5);
  background: radial-gradient(1200px 600px at 80% -10%, #3a0e1b 0%, transparent 60%), var(--paper);
  color: var(--ink);
}
body.v2 a { color: #ff9cab; }
body.v2 a:hover { color: var(--gold); }
body.v2 .pr-bar { background: #0b0608; color: #cdb8b6; border-bottom: 1px solid #2a1419; }
body.v2 .pr-bar a { color: var(--gold); }
body.v2 .site-header { background: linear-gradient(90deg, #0b0608, #2a0a14 60%, #0b0608); border-bottom: 1px solid #5a1a2a; }
body.v2 .site-brand { color: var(--gold); letter-spacing: .04em; }
body.v2 .site-nav a { color: #eadad6; }
body.v2 .site-nav a.is-active { background: var(--crimson); color: #fff; }
body.v2 h1 { color: #fff; }
body.v2 h2 { color: #fff; border-color: var(--crimson); }
body.v2 h3 { color: var(--gold); }
body.v2 .card, body.v2 .cta-box, body.v2 .buy-item, body.v2 .banner { background: var(--card); border-color: var(--line-warm); color: var(--ink); }
body.v2 .note { color: var(--muted); }
body.v2 table { background: #160d11; color: var(--ink); }
body.v2 th { background: #2a1219 !important; color: var(--gold); }
body.v2 td { background: #1a1014 !important; border-color: #33202a !important; }
body.v2 tr:nth-child(even) td { background: #20131a !important; }
body.v2 .pr-label { background: var(--gold); color: #1a0f13; }
/* 購入ボタン */
body.v2 .buy-btn, body.v2 .aff-cta a, body.v2 .v2-btn {
  display: inline-block; background: linear-gradient(180deg, #e3203f, #a10e27); color: #fff !important;
  font-weight: 800; font-size: 1.05rem; padding: .75rem 1.4rem; border-radius: 999px; text-decoration: none;
  box-shadow: 0 6px 18px rgba(200,16,46,.45), inset 0 1px 0 rgba(255,255,255,.25); border: 1px solid #ff5a72;
}
body.v2 .buy-btn:hover, body.v2 .aff-cta a:hover, body.v2 .v2-btn:hover { filter: brightness(1.12); color: #fff !important; }
body.v2 .v2-btn--sm { font-size: .82rem; padding: .35rem .8rem; margin-top: .25rem; }
body.v2 .cta-price__sale { color: var(--gold); }
/* カード */
body.v2 .review-card { background: var(--card); border: 1px solid var(--line-warm); color: var(--ink); }
body.v2 .review-card:hover { border-color: var(--crimson); transform: translateY(-2px); }
body.v2 .review-card__title { color: #fff; }
body.v2 .thumb-placeholder { background: linear-gradient(135deg, #3a0e1b, #120a0d); color: var(--gold); }
body.v2 .tag-chip { background: #2a1219; color: var(--gold); border-color: #5a2a36; }
body.v2 .hero { background: transparent; border: 0; box-shadow: none; }
body.v2 .hero::before { display: none; }
/* ヒーロー */
.v2-hero { position: relative; width: 100%; overflow: hidden; background: #000; }
.v2-hero img { display: block; width: 100%; height: 56vw; max-height: 620px; object-fit: cover; }
.v2-hero--compact img { max-height: 300px; height: 36vw; }
.v2-hero__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 6vw; background: linear-gradient(90deg, rgba(10,4,7,.88) 0%, rgba(10,4,7,.55) 38%, transparent 65%); }
.v2-hero--right .v2-hero__overlay { align-items: flex-start; }
.v2-hero--left .v2-hero__overlay { background: linear-gradient(90deg, rgba(10,4,7,.85) 0%, rgba(10,4,7,.5) 40%, transparent 70%); }
.v2-hero__kicker { color: var(--gold, #d8b46a); font-weight: 700; letter-spacing: .2em; font-size: .9rem; margin: 0 0 .6rem; text-transform: uppercase; }
.v2-hero__line { color: #fff; font-family: var(--font-mincho); font-size: clamp(1.4rem, 3.2vw, 2.9rem); line-height: 1.35; max-width: 18em; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.8); font-weight: 700; }
.v2-hero--compact .v2-hero__line { font-size: clamp(1.1rem, 2.2vw, 1.8rem); }
.v2-hero__cap { position: absolute; right: .6rem; bottom: .4rem; font-size: .7rem; color: rgba(255,255,255,.7); background: rgba(0,0,0,.45); padding: .1rem .4rem; border-radius: 3px; }
/* サイドバー */
.v2-side__box { background: #1a1015; border: 1px solid #4d2a32; border-radius: 10px; padding: 1rem 1.1rem; margin-bottom: 1rem; }
.v2-side__box--sale { border-color: var(--gold, #d8b46a); }
.v2-side__h { font-size: 1rem !important; margin: 0 0 .6rem !important; padding: 0 !important; border: 0 !important; color: var(--gold, #d8b46a) !important; letter-spacing: .08em; }
.v2-side ul { list-style: none; padding: 0; margin: 0; }
.v2-side li { padding: .45rem 0; border-bottom: 1px dashed #3a2328; font-size: .9rem; line-height: 1.45; }
.v2-side li:last-child { border-bottom: 0; }
.v2-side__price { display: block; color: #f3c9a0; font-size: .8rem; }
.v2-side__note { font-size: .72rem; color: #b9a3a2; margin: 0 0 .4rem; }
.v2-side { display: none; }
/* PC：幅を使う */
@media (min-width: 1024px) {
  body.v2 { font-size: 17px; }
  .v2-shell { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 2.5rem; max-width: 1320px; margin: 0 auto; padding: 2rem 2.5rem 3rem; align-items: start; }
  .v2-shell .site-main, .v2-shell .site-main--wide { max-width: none; margin: 0; padding: 0; }
  .v2-side { display: block; position: sticky; top: 1rem; }
  body.v2 h1 { font-size: 2.3rem; line-height: 1.3; letter-spacing: .01em; }
  body.v2 h2 { font-size: 1.6rem; }
  body.v2 .review-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
  body.v2 .site-header__inner { max-width: 1320px; }
  body.v2 .buy-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  body.v2 .mood-img img { max-height: 520px; object-fit: cover; }
}
@media (min-width: 1440px) { body.v2 .review-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
body.v2 .sticky-cta { background: rgba(18,10,13,.94) !important; border-color: #5a1a2a !important; color: var(--ink); backdrop-filter: blur(6px); }
body.v2 .sticky-cta * { color: var(--ink); }
body.v2 .sticky-cta a { color: #fff !important; }
/* PC：見出しを画像バナーに（モバイルでは読み込まない＝media 内の background のみ） */
@media (min-width: 1024px) {
  body.v2 .site-main > h2, body.v2 .site-main article > h2, body.v2 .site-main .prose > h2 {
    position: relative; min-height: 120px; display: flex; align-items: flex-end; padding: 1.2rem 1.4rem !important;
    border: 0 !important; border-left: 4px solid var(--crimson) !important; border-radius: 10px; margin-top: 2.6rem;
    background: linear-gradient(90deg, rgba(10,4,7,.92) 0%, rgba(10,4,7,.65) 45%, rgba(10,4,7,.25) 100%), var(--h2img, url(/img/mood/m-otoko-s-woman.webp?v=3)) center 30% / cover no-repeat;
    text-shadow: 0 2px 10px rgba(0,0,0,.8); font-size: 1.7rem;
  }
  body.v2 .site-main h2::after { display: none !important; }
  body.v2 .site-main > h2:nth-of-type(6n+1) { --h2img: url(/img/mood/chikusha-nails.webp?v=3); }
  body.v2 .site-main > h2:nth-of-type(6n+2) { --h2img: url(/img/mood/menesu-therapist.webp?v=3); }
  body.v2 .site-main > h2:nth-of-type(6n+3) { --h2img: url(/img/mood/tekoki-hand.webp?v=3); }
  body.v2 .site-main > h2:nth-of-type(6n+4) { --h2img: url(/img/mood/toha-whisper.webp?v=3); }
  body.v2 .site-main > h2:nth-of-type(6n+5) { --h2img: url(/img/mood/mesuiki-whisper.webp?v=3); }
  body.v2 .site-main > h2:nth-of-type(6n) { --h2img: url(/img/mood/shiofuki-lotion.webp?v=3); }
}
.v2-hero--right .v2-hero__overlay { align-items: flex-end; text-align: right; background: linear-gradient(270deg, rgba(10,4,7,.88) 0%, rgba(10,4,7,.5) 40%, transparent 68%); }
body.v2 .hub-link { background: var(--card); border-color: var(--line-warm); color: var(--ink-soft); }
body.v2 .hub-link strong { color: #fff; }
body.v2 .hub-link__kicker { color: var(--gold); }
.card-wrap { display: flex; flex-direction: column; gap: .4rem; }
.card-wrap .review-card { flex: 1; }
.card-buy .aff-cta { display: flex; align-items: center; gap: .35rem; }
.card-buy a { flex: 1; text-align: center; padding: .45rem .6rem; border-radius: 999px; background: #b3123a; color: #fff !important; font-weight: 700; text-decoration: none; font-size: .9rem; }
/* 早見表 v2 */
.ct2 { width: 100%; border-collapse: separate; border-spacing: 0; line-height: 1.6; }
.ct2 .chip { display: inline-block; min-width: 2.6em; text-align: center; padding: .1rem .55rem; border-radius: 999px; font-weight: 700; font-size: .82rem; white-space: nowrap; }
.chip--hi { background: #c2183f; color: #fff; } .chip--mid { background: #d9a441; color: #1a0e08; } .chip--lo { background: #5d6b7a; color: #fff; } .chip--no { background: #333; color: #ddd; } .chip--na { background: #3a2a30; color: #ddd; }
.ct2 .ct-sub { display: block; font-size: .76rem; color: var(--ink-soft); margin-top: .2rem; }
.ct2 .ct-thumb img, .ct2 .ct-thumb__ph { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; display: block; background: linear-gradient(135deg,#4a1424,#1a0a10); }
@media (min-width: 1024px) {
  body.v2 .table-wrap { overflow: visible; max-height: none; }
  body.v2 .ct2 { table-layout: fixed; font-size: .9rem; background: #1b1014; border: 1px solid #4a2230; border-radius: 12px; }
  body.v2 .ct2 thead th { position: sticky; top: 0; z-index: 2; background: #3a0f1d !important; color: #fff !important; font-size: .82rem; padding: .7rem .6rem; white-space: nowrap; border-bottom: 2px solid var(--crimson); }
  body.v2 .ct2 th:nth-child(1) { width: 30%; } body.v2 .ct2 th:nth-child(2) { width: 14%; } body.v2 .ct2 th:nth-child(3) { width: 11%; }
  body.v2 .ct2 th:nth-child(4), body.v2 .ct2 th:nth-child(5) { width: 15%; } body.v2 .ct2 th:nth-child(6) { width: 9%; } body.v2 .ct2 th:nth-child(7) { width: 6%; }
  body.v2 .ct2 td, body.v2 .ct2 tbody th { padding: .65rem .6rem; vertical-align: top; color: #f1e6e9; border: 0; border-bottom: 1px solid #3a1f28; background: transparent; }
  body.v2 .ct2 tbody tr:nth-child(even) { background: #24151b; }
  body.v2 .ct2 tbody tr:hover { background: #33161f; }
  body.v2 .ct2 .ct-work { text-align: left; font-weight: 600; } body.v2 .ct2 .ct-work__in { display: flex; gap: .6rem; align-items: flex-start; }
  body.v2 .ct2 .ct-work a { color: #ffd9e1; }
  body.v2 .ct2 td:nth-child(7) { text-align: center; }
}
@media (max-width: 1023px) {
  .ct2 thead { display: none; }
  .ct2, .ct2 tbody, .ct2 tr, .ct2 td, .ct2 th { display: block; width: auto; }
  .ct2 tr { border: 1px solid var(--line, #ccc); border-radius: 10px; margin: 0 0 .7rem; padding: .6rem .7rem; }
  .ct2 .ct-work { border: 0; padding: 0 0 .4rem; } .ct2 .ct-work__in { display: flex; gap: .5rem; align-items: center; }
  .ct2 td { border: 0; padding: .15rem 0; font-size: .85rem; }
  .ct2 td::before { content: attr(data-label) "："; font-weight: 700; color: var(--ink-soft); }
  .ct2 .ct-sub { display: inline; margin-left: .3rem; }
}
/* ハブ内の通常表 */
@media (min-width: 1024px) {
  body.v2 .site-main table:not(.ct2) { width: 100%; border-collapse: separate; border-spacing: 0; background: #1b1014; border: 1px solid #4a2230; border-radius: 12px; line-height: 1.65; font-size: .92rem; overflow: hidden; }
  body.v2 .site-main table:not(.ct2) th { background: #3a0f1d; color: #fff; white-space: nowrap; padding: .65rem .8rem; }
  body.v2 .site-main table:not(.ct2) td { color: #f1e6e9; padding: .65rem .8rem; border: 0; border-bottom: 1px solid #3a1f28; }
  body.v2 .site-main table:not(.ct2) tbody tr:nth-child(even) { background: #24151b; }
}

body.v2 .ct2 td:nth-child(6), body.v2 .ct2 td:nth-child(2) { word-break: keep-all; }
@media (min-width: 1024px) {
  body.v2 .ct2 tbody th { background: transparent !important; }
  body.v2 .ct2 thead th { top: var(--v2-header-h, 56px); }
  body.v2 .ct2 th:nth-child(1) { width: 25%; } body.v2 .ct2 th:nth-child(2) { width: 12%; } body.v2 .ct2 th:nth-child(3) { width: 11%; }
  body.v2 .ct2 th:nth-child(4), body.v2 .ct2 th:nth-child(5) { width: 15%; } body.v2 .ct2 th:nth-child(6) { width: 13%; } body.v2 .ct2 th:nth-child(7) { width: 9%; }
}
body.v2 .ct2 th[scope="row"] { white-space: normal; }
body.v2 .ct2 .ct-name { min-width: 0; overflow-wrap: anywhere; }
body.v2 .ct2 .ct-thumb { flex: 0 0 64px; }
body.v2 .ct2 td:nth-child(6), body.v2 .ct2 td:nth-child(2) { word-break: normal; overflow-wrap: anywhere; }
/* v3: ページ専用の見出しバナー（PCのみ・CSS背景なので表示時のみ取得） */
@media (min-width: 1024px) {
  body.v2 .site-main[data-banners] > h2 { --h2img: var(--b1) !important; }
  body.v2 .site-main[data-banners] > h2:nth-of-type(even) { --h2img: var(--b2) !important; }
  body.v2 .site-main[data-banners="top"] > h2:nth-of-type(3) { --h2img: var(--b2) !important; }
  body.v2 .site-main[data-banners="top"] > h2:nth-of-type(4) { --h2img: var(--b1) !important; }
  body.v2 .site-main[data-banners] > h2::before { content: "イメージ画像"; position: absolute; right: .6rem; bottom: .4rem; font-size: .65rem; font-weight: 400; color: rgba(255,255,255,.7); text-shadow: none; }
  body.v2 .v2-side__box--sale { background: linear-gradient(180deg, rgba(20,8,12,.55), rgba(20,8,12,.96) 140px), var(--bsale) top center / 100% auto no-repeat, #1b1014; padding-top: 110px; position: relative; }
  body.v2 .v2-side__box--sale::before { content: "イメージ画像"; position: absolute; right: .5rem; top: .4rem; font-size: .62rem; color: rgba(255,255,255,.75); }
}

/* カードのPR: サムネ右上の小バッジ、購入ボタンはカード幅いっぱい */
.card-wrap { position: relative; }
.card-pr { position: absolute; top: 6px; right: 6px; z-index: 2; font-size: 11px; line-height: 1; padding: 3px 6px; border-radius: 4px; background: rgba(12,4,8,.72); color: #d6b266; font-weight: 700; letter-spacing: .04em; pointer-events: none; }
.card-buy .aff-cta { display: block; width: 100%; }
.card-buy .aff-cta .pr-label { display: none; }
.card-buy a { display: block; width: 100%; box-sizing: border-box; text-align: center; }

/* 2026-10-14 可読性修正: global.css が --wine-night を文字色に使う箇所を v2 で明るく固定。OS のダーク/ライト設定に関係なく同じ見た目。 */
body.v2 strong, body.v2 b { color: #fff3f0; }
body.v2 blockquote, body.v2 .tone-lead { color: var(--ink); }
body.v2 h3 { color: #fff; }
body.v2 code { color: var(--rose-ink); background: #2a151c; }
body.v2 ::selection { color: #fff; background: var(--wine); }
