/* SP1 compare table (たまコイン型, 2026-10-09). スマホでも2〜3列の横並びを保ち、数字を主役にする。
   部品: .sp1-cmp > table.sp1-cmp-table[data-codex-mobile-table="1"] / caption(.sp1-cmp-sub) / .is-key 列 / tr.is-best / .sp1-num .sp1-unit .sp1-cmp-diff .sp1-cmp-tag
         details.sp1-cmp-all（全行の一覧） / .sp1-example（自分ならいくらか） 
   - 2026-10-29 60sai：補足文を列幅の範囲で折り返し、320pxで金額列が299pxの表を押し広げる問題を解消（数値本体の改行禁止は維持）。
   改善の記録（使って合わなかった所を直したら1行足し、古くなった行は消す）:
   - 2026-10-09 列幅を中身に合わせる（table-layout:auto）：招待コードナビの狭い本文で項目列が95pxになり3〜4行折り返した（2399、表の高さ951→733px）
   - 2026-10-09 群の見出し行 tr.sp1-group：モノヒカク洋服レンタルの9行が1表に詰まりサービス名が毎行折り返した（36059）
   - 2026-10-09 見出し行の補足 thead small を白系に：ハリマップのムーミン展「前売 10/9まで」が濃い背景で読めなかった（36756）
   - 2026-10-10 overflow-wrap:anywhere をやめ、文のセルに最小幅（列が1〜3字幅に細った。共通版 site-engine/assets/compare-table.css と同じ修正）
   - 2026-10-09 長い注記はセルに入れず表の下の foot へ：付与時期の注記で行が縦に伸びた（招待コードナビ2364）
*/
.sp1-cmp { margin: 1.6em 0; padding: 16px 14px 14px; border: 1px solid #cbd8e1; border-radius: 12px; background: #fff; max-width: 100%; }
.sp1-cmp .sp1-cmp-table { width: 100% !important; min-width: 0 !important; table-layout: auto; border-collapse: separate; border-spacing: 0; margin: 0 !important; font-size: 16px; line-height: 1.5; display: table !important; }
.sp1-cmp .sp1-cmp-table caption { display: table-caption !important; caption-side: top; text-align: left; padding: 0 0 12px !important; color: #172b3a; font-size: 1.2em !important; font-weight: 800; line-height: 1.45; }
.sp1-cmp .sp1-cmp-table caption .sp1-cmp-sub { display: block; margin-top: 4px; color: #465b6a; font-size: 14px; font-weight: 400; line-height: 1.5; }
.sp1-cmp .sp1-cmp-table thead { position: static !important; width: auto !important; height: auto !important; clip-path: none !important; overflow: visible !important; display: table-header-group !important; }
.sp1-cmp .sp1-cmp-table tbody { display: table-row-group !important; }
.sp1-cmp .sp1-cmp-table tr { display: table-row !important; border: 0 !important; }
.sp1-cmp .sp1-cmp-table :is(th,td) { display: table-cell !important; width: auto !important; padding: 12px 10px !important; border: 0 !important; border-bottom: 1px solid #dfe7ee !important; vertical-align: middle !important; background: #fff; color: #172b3a; white-space: normal !important; overflow-wrap: break-word; }
.sp1-cmp .sp1-cmp-table :is(th,td)::before { content: none !important; display: none !important; }
.sp1-cmp .sp1-cmp-table thead th { background: #172b3a !important; color: #fff !important; font-size: 14px !important; font-weight: 700; text-align: center !important; padding: 9px 6px !important; text-wrap: balance; }
.sp1-cmp .sp1-cmp-table thead th small { display: block; margin-top: 1px; color: rgba(255,255,255,.85) !important; font-size: 14px !important; font-weight: 400; }
.sp1-cmp .sp1-cmp-table thead th:first-child { border-radius: 8px 0 0 0; }
.sp1-cmp .sp1-cmp-table thead th:last-child { border-radius: 0 8px 0 0; }
.sp1-cmp .sp1-cmp-table tbody th { width: auto; min-width: 6.5em; text-align: left !important; font-weight: 700; background: #f6f9fb !important; }
.sp1-cmp .sp1-cmp-table tbody th small { display: block; margin-top: 2px; color: #465b6a; font-size: 14px !important; font-weight: 400; }
.sp1-cmp .sp1-cmp-table tbody td { text-align: right !important; white-space: nowrap !important; }
.sp1-cmp .sp1-cmp-table tbody td .sp1-cmp-diff { white-space: normal; }
.sp1-cmp .sp1-cmp-table tbody td.is-text { text-align: left !important; font-size: 15px; white-space: normal !important; }
.sp1-cmp .sp1-num { font-size: 1.4em; font-weight: 800; letter-spacing: .01em; font-variant-numeric: tabular-nums; line-height: 1.2; }
.sp1-cmp .sp1-unit { margin-left: 1px; font-size: max(14px, .8em); font-weight: 700; color: inherit; }
.sp1-cmp .sp1-pre { font-size: .85em; font-weight: 700; margin-right: 1px; }
.sp1-cmp .sp1-cmp-diff { display: block; width: min-content; min-width: 100%; overflow-wrap: anywhere; text-wrap: pretty; margin-top: 3px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.sp1-cmp .sp1-cmp-diff.is-up { color: #b42318; }
.sp1-cmp .sp1-cmp-diff.is-up::before { content: "▲"; font-size: .8em; margin-right: 2px; }
.sp1-cmp .sp1-cmp-diff.is-good { color: #067647; }
.sp1-cmp .sp1-cmp-diff.is-note { color: #465b6a; font-weight: 400; }
.sp1-cmp .sp1-cmp-table .is-key { background: #fff4f2 !important; color: #b42318; }
.sp1-cmp .sp1-cmp-table thead .is-key { background: #b42318 !important; color: #fff !important; }
.sp1-cmp .sp1-cmp-table td.is-win { background: #ecfdf3 !important; color: #067647; box-shadow: inset 0 0 0 2px #12b76a; }
.sp1-cmp .sp1-cmp-tag { display: inline-block; margin: 0 0 0 6px; padding: 1px 7px; border-radius: 4px; background: #fde68a; color: #713f12; font-size: 14px; font-weight: 800; line-height: 1.5; vertical-align: 1px; }
.sp1-cmp tr.is-best th { box-shadow: inset 4px 0 0 #f59e0b; }
.sp1-cmp .sp1-cmp-foot { margin: 10px 0 0 !important; color: #465b6a; font-size: 14px !important; line-height: 1.6; }
.sp1-cmp-all { margin: -.6em 0 1.6em; border: 1px solid #cbd8e1; border-radius: 10px; background: #f6f9fb; }
.sp1-cmp-all > summary { cursor: pointer; list-style: none; padding: 14px 44px 14px 16px; position: relative; font-weight: 700; color: #172b3a; min-height: 48px; }
.sp1-cmp-all > summary::-webkit-details-marker { display: none; }
.sp1-cmp-all > summary::after { content: "▼"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 12px; color: #465b6a; }
.sp1-cmp-all[open] > summary::after { content: "▲"; }
.sp1-cmp-all > :not(summary) { margin: 0 12px 12px !important; width: auto !important; max-width: calc(100% - 24px) !important; }
.sp1-example { display: flex; gap: 12px; align-items: flex-start; margin: 1.2em 0 1.6em; padding: 14px 16px; border-radius: 10px; background: #effaf3; border-left: 4px solid #12b76a; }
.sp1-example::before { content: "例"; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #12b76a; color: #fff; font-size: 14px; font-weight: 800; }
.sp1-example p { margin: 0 !important; }
.sp1-example mark { background: linear-gradient(transparent 55%, #fde68a 55%); color: #b42318; font-weight: 800; padding: 0 1px; }
/* 群の見出し行（例：サービス名ごとにプランを並べる）。2026-10-09 モノヒカク洋服レンタルで9行が1表に詰まり読みにくかったため追加 */
.sp1-cmp .sp1-cmp-table tr.sp1-group > th { background: #e8eef3 !important; color: #172b3a !important; font-size: 14px !important; font-weight: 800; text-align: left !important; padding: 6px 10px !important; border-bottom: 0 !important; }
.sp1-cmp .sp1-cmp-table tr.sp1-group + tr > * { border-top: 0 !important; }
@media (max-width: 600px) {
  .sp1-cmp { padding: 12px 8px 10px; margin-inline: 0; }
  .sp1-cmp .sp1-cmp-table caption { font-size: 1.12em !important; }
  .sp1-cmp .sp1-cmp-table :is(th,td) { padding: 10px 6px !important; }
  .sp1-cmp .sp1-cmp-table tbody th { font-size: 15px !important; }
  .sp1-cmp .sp1-num { font-size: 1.18em; }
  .sp1-cmp .sp1-cmp-table tbody td { padding: 10px 5px !important; }
}

/* 2026-10-10 文のセル：最小幅を持たせ、補足（確認日・購入先）は折らない */
.sp1-cmp .sp1-cmp-table tbody td.is-text small { display: block; margin-top: 2px; color: #465b6a; font-size: 14px !important; font-weight: 400; white-space: nowrap; }
@media (max-width: 600px) {
  .sp1-cmp .sp1-cmp-table tbody th { min-width: 5em; }
  .sp1-cmp .sp1-cmp-table tbody td.is-text { min-width: 6em; font-size: 14px; }
}

/* 狭い画面では容量・期間を金額の上に置き、金額自体は分断しない。 */
@media (max-width: 360px) {
  .sp1-cmp .sp1-pre { display: block; }
}