/* TabeType v13 — FOOD EDITORIAL POP
   v12でFIXした情報構造を変えず、視覚表現だけを再設計する。 */

:root {
  --bg: #fff9ee;
  --surface: #fff9ee;
  --surface-strong: #fffdf8;
  --surface-line: #ddd5c7;
  --border-soft: #ddd5c7;
  --ink: #14202d;
  --ink-soft: #59636d;
  --ink-faint: #858c93;
  --coral: #ff766c;
  --coral-deep: #ff5146;
  --lime: #cff238;
  --lime-deep: #789800;
  --lemon: #f4c84b;
  --lemon-deep: #b48100;
  --radius-card: 16px;
  --radius-btn: 14px;
  --shadow-diffuse: 0 8px 0 rgba(20,32,45,.06);
  --shadow-soft: 0 4px 0 rgba(20,32,45,.05);
}

/* v17: ローカル品質確認専用。Productionではボタン自体を描画しない。 */
.paid-demo-panel {
  margin: 24px 0 14px;
  padding: 16px 0;
  border-top: 1px solid var(--surface-line);
  border-bottom: 1px solid var(--surface-line);
}
.paid-demo-panel p {
  margin-bottom: 9px;
  color: var(--ink-faint);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
}
.paid-demo-open { width: 100%; }
.is-demo-preview .paid-unlocked-label { color: var(--coral-deep); }

/* v15: 各セクションに2〜3件だけ置く、流し読み用の記憶フック。 */
.memory-highlight {
  padding: 0;
  background: transparent;
  color: var(--coral-deep);
  font-weight: 900;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

@media (prefers-contrast: more) {
  .memory-highlight {
    color: #c62820;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }
}

html { background: #fff9ee; }
body {
  background: #fff9ee;
  color: var(--ink);
  transition: none;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .035;
  background-image:
    repeating-linear-gradient(0deg, rgba(20,32,45,.18) 0, rgba(20,32,45,.18) 1px, transparent 1px, transparent 4px),
    repeating-linear-gradient(90deg, rgba(255,81,70,.08) 0, rgba(255,81,70,.08) 1px, transparent 1px, transparent 7px);
  background-size: 5px 5px, 9px 9px;
}
.bg-blobs { display: none !important; }

.app-shell { max-width: 680px; }
#ft-root { padding: 24px 20px 72px; }

.glass,
.surface {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  border-color: var(--surface-line);
}

.top-bar { margin-bottom: 18px; }
.icon-btn {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: transparent;
  border: 1px solid var(--surface-line);
  box-shadow: none;
}
.top-bar-title { color: var(--ink-soft); font-size: 12px; letter-spacing: .04em; }

.btn {
  min-height: 52px;
  border-radius: 14px;
  box-shadow: none;
  font-size: 15px;
  letter-spacing: -.01em;
  transition: transform .14s ease, filter .14s ease;
}
.btn:active { transform: translateY(1px); }
.icon-btn:focus-visible,
.btn:focus-visible,
.ft-free-chapter-cta-link:focus-visible,
.quick-share-story:focus-visible,
.quick-share-compat:focus-visible {
  outline: 3px solid var(--coral-deep);
  outline-offset: 3px;
}
.btn-share {
  background: color-mix(in srgb, var(--gc, var(--coral-deep)) 72%, var(--ink) 28%);
  color: #fffdf8;
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
}
.btn-share:hover { filter: saturate(1.08) brightness(1.02); }
.btn-share:active { box-shadow: 2px 2px 0 var(--ink); transform: translate(2px,2px); }
.btn-purchase,
.ft-rp-unlock-btn.btn-purchase {
  min-height: 56px;
  background: var(--ink);
  color: #fff9ee;
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--lemon);
}
.btn-purchase:hover { background: #223244; }
.btn-outline { background: transparent; border-color: var(--surface-line); }
.btn-ghost { text-decoration: underline; text-underline-offset: 3px; }

.section-label {
  color: var(--ink-soft);
  font-family: var(--font-code);
  font-size: 10.5px;
  letter-spacing: .14em;
}

/* 結果ヒーロー：画像と文字を一つの結果ポスターへ統合 */
.fv-wrap {
  position: relative;
  overflow: hidden;
  margin: 0 -4px;
  padding: 18px 24px 32px;
  border: 2px solid var(--ink);
  border-radius: 28px;
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--gc, var(--coral-deep)) 22%, #fff9ee 78%), #fff3de 72%);
  box-shadow: 7px 7px 0 color-mix(in srgb, var(--gc, var(--coral-deep)) 62%, var(--ink) 38%);
}
.fv-wrap::before {
  content: '';
  position: absolute;
  width: 92px;
  height: 22px;
  top: 18px;
  right: -23px;
  background: var(--lemon);
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  transform: rotate(34deg);
}
.fv-wrap .top-bar { position: relative; z-index: 2; }
.fv-brand-stamp {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin: 4px 0 12px;
  font-family: var(--font-code);
  color: var(--ink);
}
.fv-brand-stamp span { font-size: 15px; font-weight: 900; letter-spacing: -.03em; }
.fv-brand-stamp b { font-size: 8.5px; font-weight: 800; letter-spacing: .13em; }
.reveal-eyebrow { color: var(--ink-soft) !important; font-size: 11px !important; letter-spacing: .08em; }
.fv-avatar {
  width: min(270px, 78vw);
  height: min(270px, 78vw);
  margin: 14px auto 18px;
  border: 2px solid var(--ink);
  border-radius: 24px;
  background: #fffdf8;
  box-shadow: 5px 5px 0 rgba(20,32,45,.13);
}
.fv-avatar img { transform: scale(1.04); }
.fv-name {
  font-size: clamp(36px, 10vw, 48px);
  line-height: 1.08;
  letter-spacing: -.055em;
}
.fv-shortname { margin-top: 5px; color: var(--ink-soft); }
.fv-code-sub { opacity: .42; }
.fv-tagline { max-width: 360px; font-size: 15px; line-height: 1.8; }
.fv-keyword {
  position: relative;
  margin: 24px -24px 0;
  padding: 18px 24px 20px;
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
  background: #fffdf8;
}
.fv-keyword-label { color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; }
.fv-keyword-word {
  color: color-mix(in srgb, var(--gc, var(--coral-deep)) 62%, var(--ink) 38%);
  font-size: clamp(30px, 8.6vw, 40px);
  line-height: 1.18;
}
.fv-oneliner { color: var(--ink-soft); font-size: 12.5px; }
.fv-cta-row { margin-top: 22px; }
.fv-secondary-link { color: var(--ink); font-size: 12px; }

/* 流し読みキーワード：三つを同じ強さにしない */
.skim-memory {
  margin: 48px 0 22px;
  padding: 0 0 26px;
  border-top: 0;
  border-bottom: 1px solid var(--surface-line);
}
.skim-memory-label { color: var(--ink-soft); font-family: var(--font-code); }
.skim-memory-list { gap: 0; margin-top: 12px; }
.skim-memory-list p {
  grid-template-columns: 92px 1fr;
  min-height: 58px;
  padding: 13px 0;
  border-top: 1px solid var(--surface-line);
}
.skim-memory-list p:first-child strong { font-size: clamp(25px, 7vw, 34px); }
.skim-memory-list p:nth-child(2) strong { color: var(--ink); font-size: 16px; }
.skim-memory-list p:nth-child(3) strong { font-size: 18px; }
.skim-memory-list span { font-family: var(--font-code); color: var(--ink-soft); }

/* ステップナビは補助操作として静かに */
.step-nav { gap: 2px; padding: 0 0 12px; border-bottom: 1px solid var(--surface-line); }
.step-nav-item {
  min-height: 42px;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  box-shadow: none;
  color: var(--ink-soft);
}
.step-nav-item.active { color: var(--ink); border-bottom-color: var(--coral-deep); }

/* 記事セクション：白い角丸カードの連続を解消 */
#ft-sec-proof,
#ft-sec-free-teaser,
#ft-sec-axes {
  margin-top: 56px;
  padding: 0 0 34px;
  border: 0;
  border-bottom: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.chapter-title { font-size: clamp(23px, 6vw, 29px); line-height: 1.35; letter-spacing: -.035em; }
.proof-axis-row {
  padding: 14px 0;
  border-top: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
}
.proof-axis-row + .proof-axis-row { margin-top: 0; }
.proof-feature-item {
  padding: 11px 0;
  border: 0;
  border-top: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
}
.proof-feature-item .fv-ico { background: var(--lime); border: 1px solid var(--ink); }
.insight-weakness-row {
  padding: 14px 0;
  border: 0;
  border-top: 2px solid var(--coral-deep);
  border-radius: 0;
  background: transparent;
}
.summary30-item { padding: 10px 0; border-top: 1px solid var(--surface-line); }
.summary30-item .s30-label { color: var(--ink-soft); }

#ft-sec-free-teaser .ft-rp-p,
.ft-free-report-p { font-size: 15px; line-height: 1.9; }
#ft-sec-free-teaser .section-label { margin-top: 34px; }
#ft-sec-free-teaser .ft-rp-list { counter-reset: aruaru; gap: 0; }
#ft-sec-free-teaser .ft-rp-list li {
  counter-increment: aruaru;
  position: relative;
  padding: 15px 0 15px 46px;
  border: 0;
  border-top: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
  font-size: 14px;
  line-height: 1.7;
}
#ft-sec-free-teaser .ft-rp-list li::before {
  content: counter(aruaru, decimal-leading-zero);
  position: absolute;
  top: 16px;
  left: 0;
  color: var(--coral-deep);
  font-family: var(--font-code);
  font-size: 12px;
  font-weight: 800;
}

/* 共有セクション：彩乃向けの高温度ポイント */
.quick-share {
  position: relative;
  margin: 56px -4px;
  padding: 28px 24px 30px;
  overflow: hidden;
  border: 2px solid var(--ink);
  border-radius: 20px;
  background: color-mix(in srgb, var(--gc, var(--coral-deep)) 18%, #fff3de 82%);
  box-shadow: 6px 6px 0 color-mix(in srgb, var(--gc, var(--coral-deep)) 58%, var(--ink) 42%);
}
.quick-share::after {
  content: 'SHARE';
  position: absolute;
  right: -5px;
  top: 8px;
  color: color-mix(in srgb, var(--gc, var(--coral-deep)) 20%, transparent 80%);
  font-family: var(--font-code);
  font-size: 54px;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}
.quick-share .section-label { position: relative; z-index: 1; margin: 0 0 8px; }
.quick-share h2 { position: relative; z-index: 1; max-width: 360px; font-size: clamp(25px,7vw,34px); }
.quick-share > p:not(.section-label) { position: relative; z-index: 1; font-size: 13px; }
.quick-share-actions { position: relative; z-index: 1; }
.quick-share-story,
.quick-share-compat { color: var(--ink); }

/* 4軸 */
.axes-details > summary {
  min-height: 72px;
  padding: 0;
  border-radius: 0;
}
.axes-details .theme-body { padding: 20px 0 0; }
.axes-details .glass { background: transparent; }
.axis-track { background: rgba(20,32,45,.09); }
.axis-band-tag { border-radius: 4px; background: var(--lemon); color: var(--ink); }

/* 無料10項目：雑誌の章扉 */
.ft-free-report { margin-top: 72px; }
.ft-free-report-intro { padding-bottom: 26px; }
.ft-free-report-intro h2 { font-size: clamp(26px,7vw,34px); }
.ft-free-report-chapter { border-top-color: var(--surface-line); }
.ft-free-report-chapter:last-of-type { border-bottom-color: var(--surface-line); }
.ft-free-report-chapter summary { min-height: 84px; padding: 18px 0; }
.ft-free-report-title { font-size: 18px; line-height: 1.45; }
.ft-free-report-number { color: var(--coral-deep); }
.ft-free-report-action { color: var(--ink); }
.ft-free-report-body { padding: 2px 0 34px; }
.ft-free-report-p strong,
.ft-rp-p strong { color: var(--coral-deep); font-weight: 900; }
.ft-free-report-list li::before { background: var(--coral-deep); }
.ft-free-scene { border-left-color: var(--lemon-deep); }
.ft-free-scene-label { color: var(--lemon-deep); }
.ft-free-chapter-cta {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 2px solid var(--ink);
}
.ft-free-chapter-cta-link {
  min-height: 48px;
  color: var(--ink);
  border-bottom-color: var(--coral-deep);
}

/* 有料個別版：深いインクの編集商品 */
.paid-report-shell,
.ft-report-v2 { margin-top: 72px; }
.ft-rp-hero,
.ft-rp-bridge {
  border: 2px solid var(--ink);
  border-radius: 18px;
  background: var(--ink);
  color: #fff9ee;
  box-shadow: 6px 6px 0 var(--lemon);
}
.ft-rp-hero-kicker,
.ft-rp-hero-name,
.ft-rp-hero-catch,
.ft-rp-bridge .ft-rp-p,
.ft-rp-bridge-label { color: #fff9ee; }
.ft-rp-card {
  padding: 24px 0;
  border: 0;
  border-bottom: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
}
.ft-rp-list li,
.ft-rp-scene,
.ft-rp-compat-row {
  border-color: var(--surface-line);
  border-radius: 10px;
  background: #fffdf8;
}
.ft-rp-teaser {
  border: 0;
  border-left: 3px solid var(--coral-deep);
  border-radius: 0;
  background: #fff3de;
}
.ft-rp-unlock-link { color: var(--ink); text-decoration-color: var(--coral-deep); }
.ft-rp-outcome-list li { background: #fffdf8; }
.ft-rp-outcome-num { background: var(--lemon); border: 1px solid var(--ink); }

.ft-purchase-sheet {
  background: #fff9ee;
  border: 2px solid var(--ink);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -8px 0 rgba(20,32,45,.14);
}
.ft-purchase-store-note { background: #fff3de; border-left: 3px solid var(--lemon); border-radius: 0; }

/* デスクトップでは空白ではなく、編集紙面として中央に置く */
@media (min-width: 760px) {
  #ft-root { padding-top: 40px; padding-bottom: 96px; }
  .fv-wrap { padding-left: 54px; padding-right: 54px; }
  .fv-keyword { margin-left: -54px; margin-right: -54px; padding-left: 54px; padding-right: 54px; }
  .quick-share { padding: 38px 42px; }
}

@media (max-width: 420px) {
  body { padding-top: 52px; }
  .ft-bridge-pill { top: 8px; left: 18px; }
  .ft-bridge-pill a {
    min-height: 36px;
    padding: 7px 11px;
    border-color: var(--surface-line);
    border-radius: 10px;
    background: #fff9ee;
    box-shadow: none;
    color: var(--ink);
    font-size: 11px;
  }
  #ft-root { padding-left: 18px; padding-right: 18px; }
  .fv-wrap { padding-left: 18px; padding-right: 18px; }
  .fv-keyword { margin-left: -18px; margin-right: -18px; padding-left: 18px; padding-right: 18px; }
  .skim-memory-list p { grid-template-columns: 82px 1fr; }
  .quick-share { padding-left: 18px; padding-right: 18px; }
  .ft-free-report-p { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .btn,
  .btn-share { transition: none; }
}

/* ---------------------------------------------------------------
   v14 — AI的な「エディトリアル風の記号」を除き、TabeTypeロゴから再構成
--------------------------------------------------------------- */

/* 紙目はブランド固有ではないため削除。背景は温かい無地に戻す。 */
body::before { content: none; }

/* 共有・購入とも擬似印刷影をやめ、機能差は色と文脈で示す。 */
.btn-share {
  background: var(--coral-deep);
  color: #fffdf8;
  border: 0;
  box-shadow: none;
}
.btn-share:active { box-shadow: none; transform: translateY(1px); }
.btn-purchase,
.ft-rp-unlock-btn.btn-purchase {
  box-shadow: inset 0 -4px 0 var(--lime);
}

/* ヒーロー：テープ・太枠・ずれ影を外し、ロゴの四分割だけを署名として残す。 */
.fv-wrap {
  overflow: visible;
  padding: 8px 24px 34px;
  border: 0;
  border-top: 1px solid var(--surface-line);
  border-bottom: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.fv-wrap::before { content: none; }
.fv-brand-stamp {
  justify-content: flex-start;
  gap: 9px;
  width: max-content;
  margin: 4px 0 18px;
}
.fv-brand-stamp > i {
  display: grid;
  grid-template-columns: repeat(2, 7px);
  grid-template-rows: repeat(2, 7px);
  gap: 2px;
  width: 18px;
  height: 18px;
  padding: 1px;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
  overflow: hidden;
  font-style: normal;
}
.fv-brand-stamp > i em { display: block; border-radius: 1px; background: var(--coral-deep); }
.fv-brand-stamp > i em:nth-child(2),
.fv-brand-stamp > i em:nth-child(3) { background: var(--lime); }
.fv-brand-stamp span { font-size: 13px; letter-spacing: -.035em; }
.fv-brand-stamp b { display: none; }
.fv-wrap .top-bar { margin-bottom: 10px; }
.reveal-eyebrow { margin-top: 4px !important; }
.fv-avatar {
  border: 1px solid var(--surface-line);
  border-radius: 20px;
  box-shadow: none;
}
.fv-name { margin-top: -4px; }
.fv-keyword {
  margin-top: 26px;
  border-top: 1px solid var(--surface-line);
  border-bottom: 0;
  background: transparent;
}
.fv-keyword-word { color: var(--coral-deep); }

/* 太字の密度を下げ、本文と結論の声を分ける。 */
.proof-axis-body,
.proof-feature-item p,
.summary30-item p.s30-body,
.ft-rp-p,
.ft-free-report-p { font-weight: 500; }
.proof-axis-tag,
.insight-subhead,
.summary30-item .s30-label { font-weight: 700; }
.proof-axis-tag svg,
.insight-weakness-row > svg { display: none; }
.proof-feature-item .fv-ico {
  width: 7px;
  height: 7px;
  margin: .62em 4px 0 1px;
  border: 0;
  border-radius: 50%;
  background: var(--coral-deep);
  color: transparent;
}
.proof-feature-item .fv-ico svg { display: none; }

/* 共有欄：SHAREという自己説明を消し、生成される実カードを見本として置く。 */
.quick-share {
  margin: 64px 0;
  padding: 30px 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--surface-line);
  border-bottom: 1px solid var(--surface-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.quick-share::after { content: none; }
.quick-share-grid {
  display: grid;
  grid-template-columns: minmax(150px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: 28px;
}
.quick-share-preview { min-width: 0; }
.quick-share-preview .share-card-v2 {
  position: relative;
  padding: 18px 14px;
  border: 1px solid var(--surface-line);
  border-radius: 14px;
  background: #fffdf8;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.quick-share-preview .share-rarity {
  position: absolute;
  top: 10px;
  right: 9px;
  display: inline-flex;
  align-items: center;
  min-height: 19px;
  padding: 2px 7px;
  border-radius: 999px;
  color: #17252a;
  font: 900 6.5px/1 "Manrope", sans-serif;
  letter-spacing: .04em;
  background: linear-gradient(110deg,#f3b83f,#fff2aa,#f3b83f);
}
.quick-share-preview .share-rarity-superRare { background: linear-gradient(110deg,#a88bff,#8de7f1,#ffd2ed,#a88bff); }
.quick-share-preview .share-rarity-ultraRare { color:#fff; background: linear-gradient(110deg,#111827,#ff5d8f,#ffd463,#795cff,#111827); box-shadow:0 0 12px rgba(255,93,143,.4); }
.quick-share-preview .share-card-avatar {
  width: 70px;
  height: 70px;
  margin: 10px auto 0;
  border-radius: 12px;
  overflow: hidden;
}
.quick-share-preview .share-card-avatar img { width: 100%; height: 100%; object-fit: cover; }
.quick-share-preview .brand { color: var(--coral-deep); font-size: 8px; letter-spacing: .08em; }
.quick-share-preview .nick { margin-top: 9px; font-size: 18px; }
.quick-share-preview .code { font-size: 9px; }
.quick-share-preview .line { margin-top: 8px; font-size: 10px; line-height: 1.5; }
.quick-share-preview .mini-tags,
.quick-share-preview .ask-line { margin-top: 8px; }
.quick-share-preview .mini-tags span { padding: 3px 6px; font-size: 7.5px; }
.quick-share-preview .ask-line { font-size: 9px; }
.quick-share-preview .share-card-url { font-size: 7px; }
.quick-share-copy .section-label { margin: 0 0 8px; }
.quick-share-copy h2 { max-width: 360px; font-size: clamp(23px, 5.5vw, 31px); }
.quick-share-copy > p:not(.section-label) { margin-top: 8px; color: var(--ink-soft); font-size: 13px; line-height: 1.75; }
.quick-share-actions { margin-top: 18px; }

/* 有料部の額縁感も抑え、墨色は一つの編集見出しとして使う。 */
.ft-rp-hero,
.ft-rp-bridge {
  border: 0;
  border-radius: 14px;
  box-shadow: none;
}

@media (max-width: 560px) {
  .quick-share-grid { grid-template-columns: 118px minmax(0,1fr); gap: 16px; }
  .quick-share-preview .share-card-v2 { padding: 12px 9px; }
  .quick-share-preview .share-card-avatar { width: 54px; height: 54px; margin-top: 7px; }
  .quick-share-preview .nick { font-size: 14px; }
  .quick-share-preview .line { font-size: 8px; }
  .quick-share-preview .mini-tags,
  .quick-share-preview .ask-line,
  .quick-share-preview .share-card-url { display: none; }
  .quick-share-copy h2 { font-size: 21px; }
  .quick-share-copy > p:not(.section-label) { font-size: 11.5px; }
  .quick-share-copy .btn { min-height: 48px; padding: 0 12px; font-size: 13px; }
}

@media (max-width: 360px) {
  .quick-share-grid { grid-template-columns: 1fr; }
  .quick-share-preview { width: 150px; margin: 0 auto; }
}
/* v18: 無料版と対応する有料10章。情報量を増やしてもカードの乱立に見えない編集面。 */
.paid-structure-note{margin:22px 0 10px;padding:0 2px 18px;border-bottom:1px solid rgba(23,37,42,.16);font-size:14px;line-height:1.8;color:var(--ink-soft)}
.paid-structure-note strong{color:var(--coral);font-weight:900}
.paid-chapter-guide{padding:4px 0 20px}
.paid-chapter-guide>p:not(.paid-guide-label){font-size:15px;line-height:2;color:var(--ink);margin:0 0 18px}
.paid-guide-label,.paid-evidence-label{margin:15px 0 7px;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--coral)}
.paid-guide-checks{margin:6px 0 22px;padding:16px 0 16px 24px;border-top:1px solid rgba(23,37,42,.12);border-bottom:1px solid rgba(23,37,42,.12)}
.paid-guide-checks li{margin:7px 0;font-size:13px;line-height:1.7;color:var(--ink-soft)}
.paid-chapter-evidence{margin-top:4px}
.paid-evidence-note{margin:4px 0 18px;font-size:13px;line-height:1.8;color:var(--ink-soft)}
.paid-section-aligned .paid-save-cards{margin-top:28px}

/* v19: 無料範囲と解放後の有料範囲を明確に分ける境界表示。 */
.paid-report-unlocked{position:relative;margin-top:42px;background:linear-gradient(180deg,rgba(255,245,239,.86) 0,rgba(255,255,255,.98) 180px)}
.paid-unlock-boundary{display:grid;grid-template-columns:minmax(18px,1fr) auto minmax(18px,1fr);align-items:center;gap:14px;margin:-2px 0 28px;color:var(--coral)}
.paid-unlock-boundary-line{height:1px;background:currentColor;opacity:.38}
.paid-unlock-boundary-copy{display:flex;align-items:center;gap:10px;text-align:left}
.paid-unlock-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--coral);color:#fff;font-size:14px;font-weight:900;box-shadow:0 5px 14px rgba(255,92,86,.18)}
.paid-unlock-boundary-copy p{margin:0;line-height:1.35}
.paid-unlock-boundary-copy strong{display:block;font-size:14px;font-weight:900;letter-spacing:.02em;color:var(--coral)}
.paid-unlock-boundary-copy span{display:block;margin-top:3px;font-size:11px;font-weight:700;color:var(--ink-soft)}
.paid-report-unlocked .paid-report-hero{position:relative;padding-top:4px}
.paid-report-unlocked .paid-unlocked-label{display:inline-flex;align-items:center;gap:5px;color:var(--coral);font-weight:900}
@media(max-width:420px){.paid-unlock-boundary{gap:9px}.paid-unlock-boundary-copy span{max-width:180px}.paid-unlock-icon{width:25px;height:25px}}

/* v20: 有料内容を別レポートとして再掲せず、無料10項目の続きへ直接接続する。 */
.ft-paid-inline-slot:empty{display:none}
.ft-paid-inline-content{margin-top:24px;padding-top:24px;border-top:2px solid var(--coral)}
.ft-paid-inline-boundary{display:flex;align-items:center;gap:10px;margin:0 0 22px;color:var(--coral)}
.ft-paid-inline-boundary::before{content:'✓';display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:var(--coral);color:#fff;font-size:13px;font-weight:900}
.ft-paid-inline-boundary strong{display:block;font-size:13px;font-weight:900}
.ft-paid-inline-boundary span{display:block;margin-top:2px;font-size:11px;font-weight:700;color:var(--ink-soft)}
.ft-paid-inline-content .paid-chapter-guide{padding-bottom:4px}
.ft-paid-inline-content .paid-chapter-evidence{margin-top:18px}
.ft-paid-inline-content .paid-save-cards{margin-top:30px}
.paid-inline-complete{margin-top:34px;padding:24px 0;border-top:1px solid rgba(23,37,42,.16);border-bottom:1px solid rgba(23,37,42,.16);text-align:center}
.paid-inline-complete h2{margin:6px 0 8px;font-size:20px}
.paid-inline-complete p{margin:0;font-size:13px;line-height:1.8;color:var(--ink-soft)}

/* v22: 共通説明より先に、本人の結論と回答根拠を見せる有料編集面。 */
.paid-personal-result{margin:0 0 24px}
.paid-personal-stamp{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:10px;margin:0 0 20px;padding:0 0 14px;border-bottom:1px solid rgba(23,37,42,.14)}
.paid-personal-stamp span{font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--coral)}
.paid-personal-stamp strong{font-size:17px;font-weight:900;color:var(--ink)}
.paid-personal-stamp small{grid-column:2;font-size:11px;font-weight:700;color:var(--ink-soft)}
.paid-personal-item{padding:20px 0;border-bottom:1px solid rgba(23,37,42,.12)}
.paid-personal-item.is-featured{padding-top:2px}
.paid-personal-label{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.07em;color:var(--coral)}
.paid-personal-item h4{margin:0 0 10px;font-size:18px;line-height:1.55;color:var(--ink)}
.paid-personal-item>p:not(.paid-personal-label){margin:0;font-size:15px;line-height:2;color:var(--ink)}
.paid-source-evidence{margin-top:14px}
.paid-source-evidence summary{cursor:pointer;font-size:11px;font-weight:800;color:var(--ink-soft)}
.paid-source-evidence ul{margin:10px 0 0;padding-left:20px}
.paid-source-evidence li{margin:6px 0;font-size:12px;line-height:1.7;color:var(--ink-soft)}
.paid-reading-note{margin:22px 0 2px;border-top:1px solid rgba(23,37,42,.12);border-bottom:1px solid rgba(23,37,42,.12)}
.paid-reading-note>summary{cursor:pointer;padding:15px 0;font-size:12px;font-weight:800;color:var(--ink-soft)}
.paid-reading-note .paid-chapter-guide{padding:0 0 16px}
.paid-related-evidence{margin:0;padding-left:22px}
.paid-related-evidence li{margin:9px 0;font-size:14px;line-height:1.8;color:var(--ink)}
.paid-personal-store .paid-store{margin-top:0}
@media(max-width:420px){.paid-personal-stamp{grid-template-columns:1fr}.paid-personal-stamp small{grid-column:1}.paid-personal-stamp strong{margin-top:3px}}

/* v23: 制作工程ではなく、購入者が持ち帰る結論を主役にする。 */
.paid-personal-heading{margin:0 0 14px;font-size:12px;font-weight:900;letter-spacing:.08em;color:var(--coral)}
.paid-practical-only{padding:2px 0 10px}
.paid-practical-only>p:not(.paid-personal-heading){margin:0 0 16px;font-size:16px;line-height:1.95;color:var(--ink)}
.paid-practical-only ul{margin:0;padding:16px 0 16px 22px;border-top:1px solid rgba(23,37,42,.12);border-bottom:1px solid rgba(23,37,42,.12)}
.paid-practical-only li{margin:8px 0;font-size:14px;line-height:1.75;color:var(--ink-soft)}

/* v26: ローカル確認でも生成画像を確実に見られる画面内プレビュー。 */
body.is-share-preview-open{overflow:hidden}
.ft-share-image-preview{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,22,24,.72);backdrop-filter:blur(8px)}
.ft-share-image-sheet{display:flex;flex-direction:column;width:min(520px,100%);max-height:94vh;padding:18px;background:#fffaf0;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.ft-share-image-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.ft-share-image-head p{margin:0;font-size:18px;font-weight:900;color:var(--ink)}
.ft-share-image-head span{display:block;margin-top:3px;font-size:11px;color:var(--ink-soft)}
.ft-share-image-head button{border:0;background:transparent;font-size:28px;line-height:1;color:var(--ink);cursor:pointer}
.ft-share-image-stage{min-height:0;overflow:auto;text-align:center;background:#ece9e0}
.ft-share-image-stage img{display:block;width:auto;max-width:100%;max-height:68vh;margin:auto}
.ft-share-image-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:14px}
.ft-share-image-actions .btn{margin:0;text-decoration:none}
@media(max-width:480px){.ft-share-image-preview{padding:0;align-items:flex-end}.ft-share-image-sheet{max-height:96vh;border-radius:20px 20px 0 0}.ft-share-image-stage img{max-height:66vh}}
