/* ベース */
    * { box-sizing: border-box; }
    html { overflow-x: hidden; }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
      max-width: 960px;
      margin: 0 auto;
      padding: 16px;
      line-height: 1.6;
      color: #333;
      background: #fafafa;
      overflow-wrap: break-word;
      word-wrap: break-word;
    }
    a { color: #4CAF50; }
    h1 { color: #1a1a1a; border-bottom: 3px solid #4CAF50; padding-bottom: 10px; }
    h2 { color: #2c3e50; margin-top: 40px; }
    table { width: 100%; border-collapse: collapse; margin: 20px 0; }
    th, td { border: 1px solid #ddd; padding: 10px 12px; text-align: left; }
    th { background-color: #4CAF50; color: white; }
    time { color: #666; font-size: 0.9em; }
    .source { color: #666; font-size: 0.9em; margin-top: 10px; }

    /* ナビ */
    .site-nav { background: #1a1a1a; padding: 10px 16px; margin: -16px -16px 20px; display: flex; align-items: center; gap: 16px; }
    .site-nav a { color: #78FFCB; text-decoration: none; font-size: 14px; }
    .site-nav a:hover { text-decoration: underline; }
    .site-nav .nav-logo { font-weight: bold; font-size: 16px; }

    /* CTAボタン */
    .cta-button {
      display: inline-block;
      background: #4CAF50;
      color: white !important;
      padding: 14px 28px;
      text-decoration: none;
      border-radius: 6px;
      font-weight: bold;
      margin: 20px 0;
      font-size: 15px;
    }
    .cta-button:hover { background: #45a049; }

    /* SEOセクション共通 */
    .seo-section { margin: 40px 0; padding: 24px; background: white; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
    .seo-section h2 { margin-top: 0; }
    .section-note { color: #777; font-size: 13px; margin-top: 12px; }

    /* 予算カード */
    .budget-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin: 20px 0; }
    .budget-card { border: 2px solid #e0e0e0; border-radius: 10px; padding: 18px; background: #fff; position: relative; transition: transform 0.2s, box-shadow 0.2s; }
    .budget-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,0.1); }
    .budget-badge { position: absolute; top: -12px; right: 16px; color: white; padding: 3px 12px; border-radius: 12px; font-size: 12px; font-weight: bold; }
    .budget-card h3 { margin: 0 0 12px; font-size: 16px; }
    .build-specs { margin: 12px 0; }
    .spec-item { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #f0f0f0; font-size: 13px; gap: 4px; }
    .spec-label { font-weight: 600; color: #555; min-width: 36px; }
    .spec-value { flex: 1; padding: 0 8px; }
    .spec-price { color: #1976D2; font-weight: 600; white-space: nowrap; }
    .build-total { margin-top: 12px; padding: 10px; background: #f5f5f5; border-radius: 6px; text-align: center; font-size: 17px; font-weight: bold; }
    .build-perf { margin-top: 8px; padding: 8px; background: #e3f2fd; border-radius: 6px; text-align: center; color: #1565C0; font-size: 12px; }
    .btn-check { display: block; width: 100%; margin-top: 12px; padding: 10px; background: #4CAF50; color: white; text-align: center; text-decoration: none; border-radius: 6px; font-weight: bold; font-size: 13px; }
    .btn-check:hover { background: #45a049; }

    /* GPU比較表 */
    .table-scroll { overflow-x: auto; }
    .gpu-table { min-width: 520px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
    .gpu-table th { background: #2196F3; }
    .gpu-rec-row { background: #f0f9f0; }
    .rec-badge { background: #4CAF50; color: white; font-size: 11px; padding: 2px 6px; border-radius: 10px; margin-left: 6px; vertical-align: middle; }
    .gpu-tips { margin-top: 16px; padding: 14px 16px; background: #fffde7; border-left: 4px solid #FFC107; border-radius: 4px; }
    .gpu-tips ul { margin: 8px 0 0 20px; }
    .gpu-tips li { margin-bottom: 4px; }

    /* FAQ */
    .faq-item { border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; margin-bottom: 14px; }
    .faq-q { background: #f5f5f5; padding: 14px 16px; margin: 0; font-size: 15px; color: #333; }
    .faq-a { padding: 14px 16px; background: white; }
    .faq-a p { margin: 0; }

    /* トラブルシューティング */
    .trouble-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-top: 16px; }
    .trouble-card { border: 1px solid #e0e0e0; border-radius: 8px; padding: 16px; background: white; }
    .trouble-card h3 { color: #c62828; margin-top: 0; font-size: 15px; }
    .trouble-card ol { padding-left: 20px; line-height: 1.8; font-size: 13px; margin: 8px 0; }
    .trouble-tip { margin-top: 10px; padding: 8px 10px; background: #e8f5e9; border-radius: 4px; font-size: 13px; }

    /* Phase 2: 診断ツール共通 */
    .calc-form { background: #f9f9f9; border-radius: 8px; padding: 16px; margin: 16px 0; }
    .calc-row { margin-bottom: 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
    .calc-row label { font-weight: 600; min-width: 100px; font-size: 14px; color: #555; }
    .calc-row input, .calc-row select { flex: 1; min-width: 160px; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; }
    .btn-calc { padding: 10px 24px; background: #1976D2; color: white; border: none; border-radius: 6px; font-size: 15px; font-weight: bold; cursor: pointer; margin-top: 4px; }
    .btn-calc:hover { background: #1565C0; }
    .calc-result { margin-top: 16px; }
    .calc-verdict { border: 2px solid; border-radius: 8px; padding: 16px; background: white; }
    .calc-verdict-text { font-size: 18px; font-weight: bold; margin: 0 0 12px; }
    .calc-table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 13px; }
    .calc-table th, .calc-table td { border: 1px solid #e0e0e0; padding: 8px; }
    .calc-table th { background: #f5f5f5; }
    .calc-total-row td { background: #e8f5e9; font-weight: bold; }
    .calc-perf { margin: 10px 0 0; padding: 8px; background: #e3f2fd; border-radius: 6px; color: #1565C0; font-size: 13px; }
    .calc-warn { color: #c62828; font-weight: bold; padding: 10px; background: #ffebee; border-radius: 6px; }
    .calc-disclaimer { color: #777; font-size: 12px; margin: 8px 0 0; padding: 6px 8px; background: #f8f8f8; border-left: 3px solid #ffa500; border-radius: 4px; }

    /* 免責事項 */
    .budget-disclaimer { margin-top: 20px; padding: 14px; background: #fff9e6; border: 1px solid #ffd700; border-radius: 8px; }
    .budget-disclaimer strong { color: #ff6600; }
    .budget-disclaimer ul { margin: 8px 0 0 20px; font-size: 13px; line-height: 1.7; }
    .budget-disclaimer li { margin-bottom: 4px; }
    .comparison-note { margin-top: 14px; padding: 12px; background: #f0f8ff; border: 1px solid #4682b4; border-radius: 6px; font-size: 13px; line-height: 1.6; }
    .comparison-note strong { color: #4682b4; }

    /* 購入ボタン */
    .spec-buy { display: flex; gap: 4px; margin-left: auto; flex-shrink: 0; }
    .buy-amz { background: #FF9900; color: #000; font-size: 11px; padding: 2px 6px; border-radius: 3px; text-decoration: none; font-weight: bold; white-space: nowrap; }
    .buy-amz:hover { opacity: 0.85; }
    .buy-rak { background: #BF0000; color: #fff; font-size: 11px; padding: 2px 6px; border-radius: 3px; text-decoration: none; font-weight: bold; white-space: nowrap; }
    .buy-rak:hover { opacity: 0.85; }
    .card-actions { display: flex; gap: 8px; margin-top: 10px; }
    .card-actions .btn-check { flex: 1; margin-top: 0; }
    .btn-buy-amazon { display: block; flex: 1; background: #FF9900; color: #000; padding: 10px; border-radius: 6px; text-align: center; text-decoration: none; font-weight: bold; font-size: 13px; }
    .btn-buy-amazon:hover { opacity: 0.85; }

    /* 末尾購入リンク */
    .bottom-purchase-links { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
    .bottom-purchase-links p { width: 100%; margin: 0 0 4px; color: #aaa; font-size: 13px; }
    .bottom-purchase-links .buy-amz, .bottom-purchase-links .buy-rak { font-size: 12px; padding: 4px 10px; border-radius: 4px; }

    /* お気に入りボタン */
    .btn-fav { background: none; border: 1px solid #ddd; padding: 4px 12px; border-radius: 16px; cursor: pointer; font-size: 13px; color: #666; margin-bottom: 8px; transition: all 0.2s; }
    .btn-fav:hover { border-color: #FFC107; color: #FFC107; }
    .btn-fav-active { background: #FFF8E1; border-color: #FFC107; color: #F57F17; }

    /* 相談ボタン */
    .consult-cta { margin-top: 16px; padding: 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 10px; text-align: center; }
    .consult-button { display: inline-block; background: #fff; color: #667eea; padding: 12px 28px; font-size: 15px; font-weight: 600; border-radius: 8px; text-decoration: none; box-shadow: 0 4px 12px rgba(0,0,0,0.2); transition: transform 0.2s, box-shadow 0.2s; }
    .consult-button:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.3); color: #667eea; }
    .consult-note { color: #fff; font-size: 12px; margin-top: 8px; opacity: 0.9; }

    /* 目次 (TOC) */
    .toc { margin: 20px 0; background: #f8f9fa; border: 1px solid #e0e0e0; border-radius: 8px; padding: 16px; }
    .toc summary { cursor: pointer; font-size: 15px; color: #2c3e50; }
    .toc ol { margin: 12px 0 0; padding-left: 24px; }
    .toc li { margin-bottom: 6px; font-size: 14px; }
    .toc a { color: #4CAF50; text-decoration: none; }
    .toc a:hover { text-decoration: underline; }

    /* パンくず */
    .breadcrumb { margin: 0 0 12px; font-size: 13px; }
    .breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px; }
    .breadcrumb li { display: flex; align-items: center; }
    .breadcrumb li:not(:last-child)::after { content: "›"; margin-left: 4px; color: #999; }
    .breadcrumb a { color: #4CAF50; text-decoration: none; }
    .breadcrumb a:hover { text-decoration: underline; }
    .breadcrumb li[aria-current="page"] { color: #666; }

    /* 人気ゲームチップ */
    .popular-chips { margin: 12px 0 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
    .chips-label { font-size: 13px; color: #666; font-weight: 600; white-space: nowrap; }
    .game-chip { display: inline-block; background: #e8f5e9; color: #2e7d32; padding: 4px 12px; border-radius: 16px; font-size: 12px; text-decoration: none; white-space: nowrap; transition: background 0.2s; }
    .game-chip:hover { background: #c8e6c9; }

    /* Back to Top */
    .back-to-top { display: none; position: fixed; bottom: 20px; right: 20px; width: 44px; height: 44px; border-radius: 50%; background: #4CAF50; color: white; border: none; font-size: 20px; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.2); z-index: 999; align-items: center; justify-content: center; transition: background 0.2s; }
    .back-to-top:hover { background: #45a049; }

    /* フッター */
    .page-footer { margin-top: 40px; padding: 20px 0; border-top: 1px solid #e0e0e0; text-align: center; font-size: 13px; color: #777; }
    .page-footer a { color: #4CAF50; margin: 0 8px; }

    /* レスポンシブ */
    @media (max-width: 600px) {
      body { padding: 10px; }
      h1 { font-size: 1.3rem; word-break: break-word; overflow-wrap: break-word; }
      h2 { font-size: 1.1rem; margin-top: 28px; }
      .site-nav { flex-wrap: wrap; gap: 8px; padding: 8px 12px; margin: -10px -10px 16px; }
      .site-nav a { font-size: 12px; }
      .site-nav .nav-logo { font-size: 14px; }
      table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; width: auto; max-width: 100%; }
      th, td { padding: 8px; font-size: 13px; white-space: normal; }
      .cta-button { display: block; text-align: center; padding: 12px 20px; }
      .budget-cards { grid-template-columns: 1fr; }
      .trouble-grid { grid-template-columns: 1fr; }
      .spec-item { flex-wrap: wrap; }
      .calc-row { flex-direction: column; align-items: stretch; }
      .calc-row label { min-width: unset; }
      .calc-row input, .calc-row select { min-width: unset; width: 100%; }
      .faq-q { font-size: 14px; padding: 12px 14px; }
      .faq-a { padding: 12px 14px; }
      .page-footer { font-size: 12px; }
      .page-footer a { display: inline-block; margin: 4px 6px; }
      .seo-section { padding: 16px; margin: 24px -10px; width: auto; }
      .gpu-tips { padding: 10px 12px; }
      .gpu-table { min-width: unset; }
      .table-scroll { max-width: 100%; }
      .popular-chips { gap: 6px; }
      .game-chip { font-size: 11px; padding: 3px 10px; }
      .back-to-top { bottom: 14px; right: 14px; width: 40px; height: 40px; font-size: 18px; }
    }
    @media (max-width: 375px) {
      body { padding: 8px; }
      h1 { font-size: 1.15rem; line-height: 1.4; }
      .site-nav { margin: -8px -8px 16px; padding: 8px 10px; }
      .site-nav .nav-logo { font-size: 13px; }
      .budget-card { padding: 14px; }
      .budget-card h3 { font-size: 14px; }
      .spec-item { font-size: 12px; }
      .seo-section { margin: 24px -8px; padding: 14px; }
    }