/* price-compare.css — 料金を総額で比べる表 [gym_price_compare]（色・角丸は TOP の店舗検索とそろえる） */
.gpc {
  --gpc-blue: #2a74bd;
  --gpc-blue-2: #1f62a5;
  --gpc-mint: #33a596;
  --gpc-mint-bg: #eaf7f4;
  --gpc-teal: #23897c;
  --gpc-ink: #1f2f44;
  --gpc-sub: #5d6c7e;
  --gpc-muted: #8d9bab;
  --gpc-line: #e3e9f0;
  --gpc-soft: #f4f7fa;
  color: var(--gpc-ink);
  font-feature-settings: "palt";
  line-height: 1.6;
}
.post_content .gpc :where(p, ul, li) { margin: 0; padding: 0; list-style: none; }
.post_content .gpc li::before { content: none; display: none; }
.gpc button { font: inherit; }
.gpc p.gpc-lead { margin-bottom: 18px; text-align: center; font-size: 15px; color: var(--gpc-sub); }

/* 料金の目安（3つの数字） */
.post_content .gpc ul.gpc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 22px; }
.post_content .gpc ul.gpc-stats > li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 16px 12px; background: var(--gpc-soft); border: 1px solid var(--gpc-line); border-radius: 14px; text-align: center; }
.gpc-stat-label { font-size: 12px; font-weight: 700; color: var(--gpc-sub); }
.gpc-stats strong { font-size: 28px; font-weight: 800; line-height: 1.25; color: #e5507f; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.gpc-stats strong small { margin-left: 2px; font-size: 13px; font-weight: 700; }
.gpc-stat-note { font-size: 11px; color: var(--gpc-muted); }

/* 並び替え */
.gpc-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.gpc-tools-label { margin-right: 4px; font-size: 12px; font-weight: 700; color: var(--gpc-sub); }
.gpc .gpc-sort { padding: 7px 14px; border: 1px solid var(--gpc-line); border-radius: 999px; background: #fff; color: var(--gpc-ink); font-size: 13px; font-weight: 700; line-height: 1.4; cursor: pointer; transition: border-color .15s, color .15s; }
.gpc .gpc-sort:hover { border-color: var(--gpc-blue); color: var(--gpc-blue); }
.gpc .gpc-sort[aria-pressed="true"] { background: var(--gpc-ink); border-color: var(--gpc-ink); color: #fff; }

/* 表（SWELL の表のスタイルと、サイトの追加CSS custom-css-js/25613.css の table th / td の !important 指定を打ち消す） */
.gpc-table-wrap { border: 1px solid var(--gpc-line); border-radius: 14px; overflow: hidden; background: #fff; }
.post_content .gpc table.gpc-table { width: 100%; max-width: none; margin: 0; border: 0; border-collapse: collapse; table-layout: auto; font-size: 14px !important; background: none; }
.post_content .gpc .gpc-table th, .post_content .gpc .gpc-table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--gpc-line); border-color: var(--gpc-line) !important; background: none !important; color: inherit; text-align: left; vertical-align: middle; font-size: inherit !important; font-weight: 400; white-space: normal; word-break: normal; overflow-wrap: anywhere; }
.post_content .gpc .gpc-table thead th { padding-top: 10px; padding-bottom: 10px; background: var(--gpc-soft) !important; color: var(--gpc-sub); font-size: 12px !important; font-weight: 700; white-space: nowrap; }
.post_content .gpc .gpc-table th.gpc-col-name { min-width: 200px; }
.post_content .gpc .gpc-table .gpc-col-course { min-width: 180px; }
.post_content .gpc .gpc-table thead th small { display: block; font-size: 10px; font-weight: 500; }
.post_content .gpc .gpc-brand-name, .gpc-course { word-break: keep-all; overflow-wrap: anywhere; }
.post_content .gpc .gpc-table tbody tr:last-child > * { border-bottom: 0; }
.post_content .gpc .gpc-table tbody tr:hover > * { background: #fafcfe !important; }
.post_content .gpc .gpc-table .gpc-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.post_content .gpc .gpc-table thead th:nth-child(3), .post_content .gpc .gpc-table thead th:nth-child(5), .post_content .gpc .gpc-table thead th:nth-child(6) { text-align: right; }   /* 入会金・はじめにかかるお金・30分あたり */

/* 女性向け（◎◯△✕） */
.post_content .gpc .gpc-table thead th.gpc-col-women, .post_content .gpc .gpc-table td.gpc-women { text-align: center; white-space: nowrap; }
.gpc-mark { font-weight: 800; font-style: normal; }
/* 印の色：女性らしいローズ〜ピンク、△✕はくすみグレー */
.gpc-mark--w4 { color: #e0457b; }
.gpc-mark--w3 { color: #f08fb0; }
.gpc-mark--w2 { color: #b9a7b0; }
.gpc-mark--w1 { color: #cbc3c7; }
.gpc-women .gpc-mark { display: block; font-size: 22px; line-height: 1.2; cursor: help; }
.gpc-women small { display: none; font-size: 10px; color: var(--gpc-sub); }   /* PC は印だけ（理由は凡例と title）。スマホでは並べて出す */
.post_content .gpc .gpc-table th.gpc-col-women, .post_content .gpc .gpc-table td.gpc-women { width: 1%; padding-left: 8px; padding-right: 8px; }
.gpc p.gpc-legend { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: -2px 0 12px; font-size: 12px; color: var(--gpc-sub); }
.gpc-legend-title { font-weight: 700; }
.gpc-legend .gpc-mark { margin-right: 3px; font-size: 14px; }

.gpc-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.gpc-logo { flex: none; width: 72px; height: 36px; object-fit: contain; padding: 3px; border: 1px solid #eef2f7; border-radius: 8px; background: #fff; }
.gpc-brand-text { display: flex; flex-direction: column; min-width: 0; }
.post_content .gpc .gpc-brand-name { font-size: 15px; font-weight: 800; line-height: 1.35; color: var(--gpc-ink); text-decoration: none; }
.post_content .gpc a.gpc-brand-name:hover { color: var(--gpc-blue); text-decoration: underline; text-underline-offset: 3px; }
.gpc-brand-meta { font-size: 11px; color: var(--gpc-sub); }
.gpc-course { display: block; font-size: 13px; font-weight: 700; line-height: 1.45; }
.gpc-course-meta { display: block; font-size: 11px; color: var(--gpc-sub); }
.gpc-tag { display: inline-block; margin-right: 6px; padding: 0 7px; border-radius: 999px; background: var(--gpc-mint-bg); color: #1d6e64; font-size: 11px; font-weight: 700; line-height: 18px; vertical-align: 1px; }
.gpc-per30 strong { font-size: 16px; font-weight: 800; color: #cf3c6b; }   /* TOP の検索カードと同じローズ */
.gpc-total-note { display: block; font-size: 10px; font-weight: 500; color: var(--gpc-sub); }
.gpc-none { font-size: 11px; color: var(--gpc-muted); }
.post_content .gpc .gpc-table .gpc-col-cta { width: 1%; text-align: right; }
.gpc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.gpc .gpc-cta, .post_content .gpc a.gpc-cta {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 38px; padding: 0 16px;
  border-radius: 10px;
  background: linear-gradient(135deg, #ff8a3d, #f26a1b);
  color: #fff !important; font-size: 13px; font-weight: 800; white-space: nowrap; text-decoration: none;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(242, 106, 27, .22);
}
.gpc .gpc-cta:hover { filter: brightness(1.05); }
.gpc .gpc-cta:focus-visible, .gpc button:focus-visible, .gpc a:focus-visible { outline: 3px solid rgba(42, 116, 189, .45); outline-offset: 2px; }

/* 最初は limit 件だけ（JavaScript が is-collapsed を付けたときだけ隠す） */
.gpc.is-collapsed .gpc-row.is-extra { display: none !important; }   /* スマホのカード表示（display: grid）より強く */
.gpc .gpc-more { display: block; width: 100%; max-width: 420px; margin: 16px auto 0; padding: 13px; border: 1px solid var(--gpc-line); border-radius: 14px; background: #fff; color: var(--gpc-ink); font-size: 14px; font-weight: 700; cursor: pointer; }
.gpc .gpc-more:hover { border-color: var(--gpc-blue); color: var(--gpc-blue); }
.gpc .gpc-more[hidden] { display: none; }

.gpc p.gpc-note { margin-top: 10px; font-size: 11.5px; line-height: 1.7; color: var(--gpc-sub); }
.gpc p.gpc-note + p.gpc-note { margin-top: 4px; }
.gpc-pr { display: inline-block; margin-right: 6px; padding: 0 5px; border: 1px solid #c4cdd8; border-radius: 4px; font-size: 10px; font-weight: 700; line-height: 16px; color: var(--gpc-sub); vertical-align: 1px; }

/* スマホ：表をカードに組み替える */
@media (max-width: 767px) {
  .gpc-tools { flex-wrap: nowrap; gap: 6px; }
  .gpc-tools-label { display: none; }
  .gpc .gpc-sort { padding: 6px 10px; font-size: 12px; white-space: nowrap; }
  .post_content .gpc ul.gpc-stats { gap: 8px; }
  .post_content .gpc ul.gpc-stats > li { padding: 12px 6px; border-radius: 12px; }
  .gpc-stats strong { font-size: 21px; }
  .gpc-stat-label { font-size: 11px; line-height: 1.35; }
  .gpc-stat-note { font-size: 10px; line-height: 1.4; }
  .gpc-table-wrap { border: 0; border-radius: 0; background: none; overflow: visible; }
  .post_content .gpc table.gpc-table, .post_content .gpc .gpc-table tbody { display: block; }
  .post_content .gpc .gpc-table thead { display: none; }
  .post_content .gpc .gpc-table tr.gpc-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 10px; padding: 14px; border: 1px solid var(--gpc-line); border-radius: 14px; background: #fff; }
  .post_content .gpc .gpc-table tr.gpc-row > * { display: block; padding: 0; border: 0; background: none !important; }
  .post_content .gpc .gpc-table th.gpc-col-name, .post_content .gpc .gpc-table .gpc-col-course { min-width: 0; }
  .post_content .gpc .gpc-table tbody tr:hover > * { background: none !important; }
  .post_content .gpc .gpc-table .gpc-col-name { grid-column: 1 / -1; margin-bottom: 10px; }
  .post_content .gpc .gpc-table .gpc-col-course { grid-column: 1 / -1; order: 5; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--gpc-line); }
  .post_content .gpc .gpc-table td.gpc-num { padding: 8px 4px; text-align: center; background: var(--gpc-soft) !important; }
  .post_content .gpc .gpc-table td.gpc-adm { order: 2; border-radius: 10px 0 0 10px; }
  .post_content .gpc .gpc-table td.gpc-total { order: 3; }
  .post_content .gpc .gpc-table td.gpc-per30 { order: 4; border-radius: 0 10px 10px 0; }
  .post_content .gpc .gpc-table td.gpc-num::before { content: attr(data-label); display: block; font-size: 10px; font-weight: 700; color: var(--gpc-sub); white-space: nowrap; }
  .post_content .gpc .gpc-table td.gpc-women { grid-column: 1 / -1; order: 1; display: flex; align-items: center; gap: 6px; margin: -4px 0 10px; text-align: left; }
  .post_content .gpc .gpc-table td.gpc-women::before { content: attr(data-label); font-size: 11px; font-weight: 700; color: var(--gpc-sub); }
  .gpc-women .gpc-mark { display: inline; font-size: 16px; }
  .gpc-women small { display: inline; font-size: 12px; }
  .post_content .gpc .gpc-table td.gpc-women { width: auto; padding: 0; }
  .gpc p.gpc-legend { gap: 2px 10px; font-size: 11px; }
  .post_content .gpc .gpc-table .gpc-col-cta { grid-column: 1 / -1; order: 6; width: auto; margin-top: 12px; text-align: center; }
  .gpc .gpc-cta, .post_content .gpc a.gpc-cta { width: 100%; min-height: 44px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .gpc * { transition: none !important; }
}
