    /* ===== ラッパー ===== */
    .contents-detail {
      max-width: 900px;
      margin: 0 auto;
      padding: 0 16px 60px;
      background: #fff;
    }

   /* ===== ヒーロー ===== */
    .hero {
      background: linear-gradient(135deg, #1a3a5c 0%, #2e7bcf 100%);
      color: #fff;
      padding: 56px 32px 48px;
      margin-bottom: 40px;
      border-radius: 0 0 16px 16px;
      text-align: center;
    }
    .hero .catch {
      font-size: clamp(13px, 2vw, 15px);
      background: rgba(255,255,255,0.2);
      display: inline-block;
      padding: 5px 18px;
      border-radius: 20px;
      margin-bottom: 18px;
      letter-spacing: 0.12em;
    }
    .hero h1 {
      font-size: clamp(22px, 4.5vw, 34px);
      font-weight: 900;
      line-height: 1.4;
      margin-bottom: 16px;
    }
    .hero .hero-sub {
      font-size: 16px;
      opacity: 0.85;
      margin-bottom: 28px;
      text-align: left;
    }
    .hero-price-box {
      display: inline-block;
      background: rgba(255,255,255,0.15);
      border: 2px solid rgba(255,255,255,0.5);
      border-radius: 12px;
      padding: 14px 32px;
    }
    .hero-price-box .price-label { font-size: 12px; opacity: 0.8; }
    .hero-price-box .price-num {
      font-size: clamp(28px, 5vw, 42px);
      font-weight: 900;
      color: #ffe082;
    }

    /* ===== 見出し ===== */
    .contents-detail h2 {
      font-size: 20px;
      font-weight: 900;
      color: #1a3a5c;
      border-left: 6px solid #2e7bcf;
      padding: 10px 16px;
      margin: 48px 0 20px;
      background: #f0f6ff;
      border-radius: 0 8px 8px 0;
    }
    .contents-detail h3 {
      font-size: 17px;
      font-weight: 700;
      color: #2e7bcf;
      margin: 28px 0 12px;
      padding-bottom: 6px;
      border-bottom: 2px dotted #2e7bcf;
    }
    .contents-detail h4 {
      font-size: 15px;
      font-weight: 700;
      color: #1a3a5c;
      margin: 16px 0 8px;
    }
    .contents-detail p { margin-bottom: 14px; }

    /* ===== 注記ボックス ===== */
    .note-box {
      background: #fff8e1;
      border-left: 4px solid #f9a825;
      border-radius: 0 8px 8px 0;
      padding: 14px 18px;
      margin: 20px 0;
      font-size: 13px;
      color: #666;
    }
    .note-box strong { color: #c67c00; }

    /* ===== リード ===== */
    .lead-box {
      background: #f0f6ff;
      border-radius: 10px;
      padding: 24px;
      margin-bottom: 28px;
      font-size: 15px;
      line-height: 1.9;
    }

    /* ===== 目次 ===== */
    .toc {
      background: #fff;
      border: 2px solid #dce8f8;
      border-radius: 10px;
      padding: 22px 28px;
      margin-bottom: 36px;
    }
    .toc h4 { color: #1a3a5c; margin-bottom: 10px; font-size: 15px; }
    .toc ol { padding-left: 20px; }
    .toc li { margin-bottom: 5px; font-size: 14px; }
    .toc a { color: #2e7bcf; }

    /* ===== テーブル ===== */
    .contents-detail table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
      margin: 14px 0 22px;
    }
    .contents-detail th {
      background: #1a3a5c;
      color: #fff;
      padding: 10px 14px;
      text-align: left;
      font-weight: 700;
    }
    .contents-detail td {
      padding: 10px 14px;
      border-bottom: 1px solid #e5e5e5;
      vertical-align: top;
    }
    tr:nth-child(even) td { background: #f7fbff; }
    tr:hover td { background: #eef5ff; }

    /* ===== 5つのPOINTグリッド ===== */
    .point-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 14px;
      margin: 20px 0 28px;
    }
    .point-item {
      background: linear-gradient(135deg, #e8f4fd, #f0f6ff);
      border: 2px solid #c5dff8;
      border-radius: 12px;
      padding: 18px 14px;
      text-align: center;
    }
    .point-item .point-num {
      display: inline-flex;
      width: 32px;
      height: 32px;
      background: #2e7bcf;
      color: #fff;
      font-weight: 900;
      font-size: 14px;
      border-radius: 50%;
      align-items: center;
      justify-content: center;
      margin-bottom: 10px;
    }
    .point-item .point-icon { font-size: 26px; display: block; margin-bottom: 8px; }
    .point-item .point-title { font-weight: 900; font-size: 13px; color: #1a3a5c; margin-bottom: 6px; }
    .point-item .point-desc { font-size: 12px; color: #555; line-height: 1.6; }

    /* ===== 数値バーグラフ ===== */
    .data-box {
      background: #fff;
      border: 2px solid #e0eaf8;
      border-radius: 12px;
      padding: 24px;
      margin: 20px 0 28px;
    }
    .bar-wrap { margin-bottom: 16px; }
    .bar-label {
      display: flex;
      justify-content: space-between;
      font-size: 13px;
      margin-bottom: 5px;
      color: #555;
    }
    .bar-label strong { color: #2e7bcf; font-size: 15px; }
    .bar-track {
      background: #e0e0e0;
      border-radius: 20px;
      height: 18px;
      position: relative;
    }
    .bar-fill {
      height: 100%;
      border-radius: 20px;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      padding-right: 8px;
      font-size: 11px;
      font-weight: 700;
      color: #fff;
    }
    .bar-fill.old { background: #90b8d8; width: 67%; }
    .bar-fill.new { background: #2e7bcf; width: 100%; }
    .data-note { font-size: 11px; color: #999; margin-top: 8px; }

    /* ===== Before/After ===== */
    .ba-box {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin: 20px 0;
      align-items: center;
    }
    .ba-item {
      flex: 1;
      min-width: 130px;
      border-radius: 10px;
      padding: 18px;
      text-align: center;
    }
    .ba-item.before { background: #f0f0f0; border: 2px solid #ccc; }
    .ba-item.after  { background: #e8f4fd; border: 2px solid #2e7bcf; }
    .ba-item .ba-label { font-size: 12px; font-weight: 700; color: #888; margin-bottom: 8px; }
    .ba-item.after .ba-label { color: #2e7bcf; }
    .ba-item .ba-val { font-size: 28px; font-weight: 900; color: #333; }
    .ba-item.after .ba-val { color: #2e7bcf; }
    .ba-item .ba-sub { font-size: 11px; color: #888; margin-top: 4px; }
    .ba-arrow { font-size: 28px; color: #2e7bcf; font-weight: 900; }

    /* ===== カラー ===== */
    .color-row {
      display: flex;
      gap: 20px;
      flex-wrap: wrap;
      margin: 16px 0;
      align-items: flex-end;
    }
    .color-col { text-align: center; }
    .color-circle {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      border: 3px solid #ddd;
      margin: 0 auto 6px;
    }
    .color-name { font-size: 11px; color: #555; }

    /* ===== サイズカード ===== */
    .size-table-wrap {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin: 16px 0 24px;
    }
    .size-card {
      flex: 1;
      min-width: 90px;
      background: #f0f6ff;
      border: 2px solid #c5dff8;
      border-radius: 10px;
      padding: 14px 10px;
      text-align: center;
    }
    .size-card .size-label { font-size: 24px; font-weight: 900; color: #2e7bcf; }
    .size-card .size-range { font-size: 13px; color: #555; margin-top: 4px; }

    /* ===== 商品メインカード ===== */
    .product-main-card {
      border: 3px solid #2e7bcf;
      border-radius: 16px;
      overflow: hidden;
      margin: 28px 0;
      box-shadow: 0 4px 20px rgba(46,123,207,0.12);
    }
    .product-main-card-header {
      background: linear-gradient(135deg, #1a3a5c, #2e7bcf);
      color: #fff;
      padding: 20px 24px;
    }
    .product-main-card-header .rec-label {
      background: #ffe082;
      color: #7a5800;
      font-size: 11px;
      font-weight: 900;
      padding: 3px 10px;
      border-radius: 12px;
      display: inline-block;
      margin-bottom: 8px;
    }
    .product-main-card-header h3 {
      color: #fff;
      border: none;
      padding: 0;
      margin: 0;
      font-size: 18px;
    }
    .product-main-card-body { padding: 24px; }

    /* ===== スペックグリッド ===== */
    .spec-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
      gap: 12px;
      margin: 16px 0 20px;
    }
    .spec-item {
      background: #f7fbff;
      border: 1px solid #dce8f8;
      border-radius: 8px;
      padding: 12px 14px;
    }
    .spec-item .spec-key { font-size: 11px; color: #888; margin-bottom: 4px; }
    .spec-item .spec-val { font-size: 14px; font-weight: 700; color: #1a3a5c; }

    /* ===== 価格エリア ===== */
    .price-area {
      background: #fff8e1;
      border: 2px solid #ffe082;
      border-radius: 12px;
      padding: 20px 24px;
      margin: 20px 0;
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 16px;
      justify-content: space-between;
    }
    .price-area .price-label-text { font-size: 13px; color: #888; }
    .price-area .price-main { font-size: clamp(28px, 5vw, 40px); font-weight: 900; color: #c0340a; }
    .price-area .price-tax-in { font-size: 14px; color: #888; }
    .price-area .price-catalog { font-size: 13px; color: #999; text-decoration: line-through; }

    /* ===== ポイントボックス（緑） ===== */
    .point-box {
      background: #f0f9f0;
      border-left: 4px solid #43a047;
      border-radius: 0 8px 8px 0;
      padding: 16px 20px;
      margin: 20px 0;
      font-size: 14px;
    }

    /* ===== CTAボタン ===== */
    .cta-btn {
      display: inline-block;
      background: #e8400c;
      color: #fff !important;
      padding: 14px 32px;
      border-radius: 10px;
      font-weight: 900;
      font-size: 16px;
      letter-spacing: 0.05em;
      transition: background 0.2s, transform 0.1s;
      text-align: center;
    }
    .cta-btn:hover { background: #c0340a; text-decoration: none !important; transform: translateY(-2px); }
    .cta-btn-large {
      display: block;
      background: #e8400c;
      color: #fff !important;
      padding: 22px;
      border-radius: 12px;
      font-weight: 900;
      font-size: 18px;
      text-align: center;
      margin-top: 32px;
      letter-spacing: 0.05em;
      transition: background 0.2s;
    }
    .cta-btn-large:hover { background: #c0340a; text-decoration: none !important; }

    /* ===== おすすめシーンテーブル ===== */
    .scene-table td:first-child { font-weight: 700; }

    /* ===== ★ レビューセクション ===== */
    .review-summary-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 12px;
      margin: 20px 0 28px;
    }
    .review-summary-item {
      border-radius: 10px;
      padding: 14px 16px;
      font-size: 13px;
    }
    .review-summary-item.good {
      background: #f0f9f0;
      border: 2px solid #a5d6a7;
    }
    .review-summary-item.warn {
      background: #fff8e1;
      border: 2px solid #ffe082;
    }
    .review-summary-item .summary-icon { font-size: 20px; margin-bottom: 6px; }
    .review-summary-item .summary-title {
      font-weight: 900;
      color: #1a3a5c;
      margin-bottom: 4px;
      font-size: 13px;
    }
    .review-summary-item .summary-desc { font-size: 12px; color: #555; line-height: 1.6; }

    /* ===== レビューカード ===== */
    .review-card {
      border: 1px solid #e0eaf8;
      border-radius: 12px;
      padding: 20px 22px;
      margin-bottom: 18px;
      background: #fff;
      position: relative;
    }
    .review-card.warn-card {
      border-color: #ffe082;
      background: #fffdf0;
    }
    .review-card .review-quote {
      font-size: 15px;
      font-weight: 700;
      color: #1a3a5c;
      line-height: 1.6;
      margin-bottom: 10px;
      padding-left: 20px;
      border-left: 4px solid #2e7bcf;
    }
    .review-card.warn-card .review-quote {
      border-left-color: #f9a825;
      color: #7a5800;
    }
    .review-card .review-body {
      font-size: 13px;
      color: #555;
      margin-bottom: 14px;
      line-height: 1.7;
    }
    .review-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      font-size: 12px;
    }
    .meta-badge {
      background: #f0f6ff;
      border: 1px solid #c5dff8;
      border-radius: 20px;
      padding: 3px 10px;
      color: #1a3a5c;
      font-weight: 700;
    }
    .meta-badge.size  { background: #e8f5e9; border-color: #a5d6a7; }
    .meta-badge.color { background: #fce4ec; border-color: #f48fb1; }
    .meta-badge.date  { background: #f3f3f3; border-color: #ddd; color: #888; font-weight: 400; }
    .meta-badge.fit   { background: #fff3e0; border-color: #ffcc80; }

    /* ===== レビュー仕切り ===== */
    .review-section-label {
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 28px 0 16px;
    }
    .review-section-label span {
      font-size: 14px;
      font-weight: 900;
      padding: 4px 16px;
      border-radius: 20px;
    }
    .review-section-label span.positive {
      background: #2e7bcf;
      color: #fff;
    }
    .review-section-label span.negative {
      background: #f9a825;
      color: #fff;
    }
    .review-section-label::after {
      content: '';
      flex: 1;
      height: 1px;
      background: #ddd;
    }

    /* ===== サイズヒント ===== */
    .size-hint-box {
      background: #f0f6ff;
      border: 2px solid #c5dff8;
      border-radius: 12px;
      padding: 20px 24px;
      margin: 24px 0;
    }
    .size-hint-box h4 { color: #1a3a5c; margin-bottom: 12px; }

    /* ===== 臭い対策ボックス ===== */
    .smell-box {
      background: #fff3cd;
      border: 2px solid #ffc107;
      border-radius: 12px;
      padding: 20px 24px;
      margin: 24px 0;
    }
    .smell-box h4 {
      color: #856404;
      margin-bottom: 10px;
      font-size: 15px;
    }
    .smell-box p { font-size: 14px; color: #665000; margin-bottom: 6px; }
    .smell-box .smell-step {
      background: #fff;
      border-radius: 8px;
      padding: 10px 14px;
      margin-top: 10px;
      font-size: 13px;
      color: #555;
      border: 1px solid #ffe082;
    }
    .smell-box .smell-step li { margin-bottom: 4px; }

    /* ===== FAQ ===== */
    .faq-item {
      border: 1px solid #e0eaf8;
      border-radius: 10px;
      margin-bottom: 14px;
      overflow: hidden;
    }
    .faq-q {
      background: #f0f6ff;
      padding: 14px 18px;
      font-weight: 700;
      color: #1a3a5c;
      font-size: 14px;
    }
    .faq-q::before { content: 'Q. '; color: #2e7bcf; font-weight: 900; }
    .faq-a {
      padding: 14px 18px;
      font-size: 14px;
      color: #555;
      border-top: 1px solid #e0eaf8;
    }
    .faq-a::before { content: 'A. '; color: #e8400c; font-weight: 900; }

    /* ===== 警告 ===== */
    .caution-box {
      background: #fff3f0;
      border: 1px solid #ffb3a0;
      border-radius: 10px;
      padding: 16px 20px;
      margin: 20px 0;
      font-size: 13px;
      color: #7a3a30;
    }
    .caution-box ul { padding-left: 20px; margin-top: 8px; }
    .caution-box li { margin-bottom: 4px; }

    /* ===== まとめ ===== */
    .summary-box {
      background: linear-gradient(135deg, #1a3a5c, #2e7bcf);
      color: #fff;
      border-radius: 14px;
      padding: 32px;
      margin-top: 28px;
    }
    .summary-box h3 {
      color: #ffe082;
      border: none;
      padding: 0;
      font-size: 18px;
      margin-bottom: 16px;
    }
    .summary-box ul { list-style: none; padding: 0; }
    .summary-box li {
      padding: 8px 0 8px 24px;
      position: relative;
      font-size: 15px;
      border-bottom: 1px solid rgba(255,255,255,0.15);
    }
    .summary-box li:last-child { border: none; }
    .summary-box li::before { content: '✓ '; color: #7dd4fc; position: absolute; left: 0; font-weight: 900; }
    /* ===== レスポンシブ ===== */
    @media (max-width: 600px) {
      .hero { padding: 36px 20px 32px; }
      .ba-arrow { transform: rotate(90deg); width: 100%; text-align: center; }
      .ba-item { min-width: 100%; }
      table { font-size: 12px; }
      th, td { padding: 8px 10px; }
      .point-grid { grid-template-columns: repeat(2, 1fr); }
      .review-meta { gap: 6px; }
      .meta-badge { font-size: 11px; }
      .price-area { flex-direction: column; }
    }
