@charset "utf-8";
 
    :root {
      --bg: #121418;
      --panel-bg: #1a1e24;
      --text: #e2e8f0;
      --text-sub: #94a3b8;
      --accent: #38bdf8;
      --border: #2d3748;
      --user-border: #0ea5e9;
      --ai-border: #10b981;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      background-color: var(--bg);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", sans-serif;
      font-size: 16px;
      line-height: 1.8;
    }

    a { color: var(--accent); text-decoration: none; }
    a:hover { text-decoration: underline; }

    .container {
      max-width: 860px;
      margin: 0 auto;
      padding: 24px 16px 60px;
    }

    h1 {
      font-size: 1.35rem;
      color: #ffffff;
      margin-bottom: 20px;
      line-height: 1.4;
    }

    /* 最上部画像 */
    .hero-media {
      width: 100%;
      margin-bottom: 28px;
    }
    .hero-media img {
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
      object-fit: cover;
      display: block;
      border-radius: 4px;
    }

    /* 問答ブロック */
    .qa-box {
      background: var(--panel-bg);
      border: 1px solid var(--border);
      border-radius: 4px;
      padding: 20px;
      margin-bottom: 24px;
    }
    .qa-box.user { border-left: 4px solid var(--user-border); }
    .qa-box.ai { border-left: 4px solid var(--ai-border); }

    .speaker-label {
      display: block;
      font-weight: bold;
      font-size: 0.95rem;
      margin-bottom: 12px;
    }
    .qa-box.user .speaker-label { color: var(--user-border); }
    .qa-box.ai .speaker-label { color: var(--ai-border); }

    .content-body {
      font-size: 0.95rem;
      word-break: break-word;
    }
    .content-body p { margin-bottom: 1em; }
    .content-body p:last-child { margin-bottom: 0; }
    .content-body h2, .content-body h3 {
      color: #ffffff;
      margin: 1.4em 0 0.6em;
      font-size: 1.1rem;
    }
    .content-body ul, .content-body ol { margin: 0 0 1em 1.4em; }
    .content-body li { margin-bottom: 0.3em; }
    .content-body pre {
      background: #0f172a;
      border: 1px solid var(--border);
      padding: 14px;
      border-radius: 4px;
      overflow-x: auto;
      white-space: pre-wrap;
      font-size: 0.88rem;
      margin: 1em 0;
    }

    /* 前後ナビゲーション */
    .nav-buttons {
      display: flex;
      justify-content: space-between;
      margin-top: 36px;
      padding-top: 20px;
      border-top: 1px solid var(--border);
      font-size: 0.95rem;
      font-weight: bold;
    }

    /* SEO・内部リンク用目次エリア */
    .table-of-contents {
      margin-top: 50px;
      padding: 24px;
      background: var(--panel-bg);
      border: 1px solid var(--border);
      border-radius: 4px;
    }
    .toc-title {
      font-size: 1.1rem;
      font-weight: bold;
      color: #ffffff;
      margin-bottom: 16px;
      border-bottom: 1px solid var(--border);
      padding-bottom: 8px;
    }
    .toc-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
      font-size: 0.9rem;
    }
    .toc-list li a {
      color: var(--text-sub);
    }
    .toc-list li a:hover {
      color: #ffffff;
    }
    .toc-list li.current a {
      color: #ffffff;
      font-weight: bold;
    }

    /* SNSボタン用スタイル */
    .sns-share {
      margin: 2rem 0;
      text-align: center;
    }
    .sns-share-title {
      font-size: 0.9rem;
      font-weight: bold;
      margin-bottom: 0.75rem;
    }
    .sns-buttons {
      display: flex;
      justify-content: center;
      gap: 0.5rem;
      flex-wrap: wrap;
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .sns-btn {
      display: inline-block;
      padding: 0.5rem 1rem;
      border-radius: 4px;
      color: #fff;
      text-decoration: none;
      font-size: 0.85rem;
      font-weight: bold;
    }
    .sns-btn.x { background-color: #000; }
    .sns-btn.facebook { background-color: #1877f2; }
    .sns-btn.line { background-color: #06c755; }
    .sns-btn.hatebu { background-color: #00a4de; }

    /* フッター */
    footer {
      text-align: center;
      padding: 20px;
      border-top: 1px solid #2d333b;
      font-size: 0.85rem;
      color: #666;
    }
    
    /* アフィリエイト */
    .affiliate-box {
        margin: 2rem 0;
        padding: 1rem;
        border: 1px solid #ccc;
        border-radius: 6px;
    }
    
    .af-txt {
        margin: 0;
        font-size: 0.95rem;
    }
    
    .af-title {
        margin: 0 0 0.5rem 0;
        font-weight: bold;
    }