/* 料金ページ専用スタイル (page-pricing.php のインライン<style>から外部化) */
/* ── 料金ページ固有スタイル ── */

/* パンくず（ヒーロー下） */
.breadcrumb {
  padding: 14px 24px;
  font-size: 0.8125rem;
  color: var(--color-text-light);
  max-width: var(--max-width);
  margin: 0 auto;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}
.breadcrumb a { color: var(--color-primary); font-weight: 600; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { margin: 0 8px; color: var(--color-text-light); }


.pricing-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 24px;
}
.pricing-section + .pricing-section {
  padding-top: 0;
}

.pricing-section-title {
  font-size: 1.25rem;
  color: #1a1a3e;
  margin: 0 0 8px;
  padding-bottom: 0;
  border-bottom: 0;
}

.pricing-intro {
  background: #e3f2fd;
  border-left: 4px solid #1565c0;
  padding: 16px 20px;
  border-radius: 0 8px 8px 0;
  margin-bottom: 32px;
  line-height: 1.7;
  color: #1a237e;
}

/* 料金区分カード */
.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 32px;
}
.category-card {
  background: #fff;
  border: 1px solid #bbdefb;
  border-radius: 12px;
  padding: 24px 20px;
  text-align: center;
  transition: box-shadow 0.2s, transform 0.2s;
}
.category-card:hover {
  transform: translateY(-2px);
}
.category-card-icon {
  width: 48px;
  height: 48px;
  fill: #1565c0;
  margin-bottom: 12px;
}
.category-card h3 {
  font-size: 1.125rem;
  margin: 0 0 8px;
  color: #0d47a1;
}
.category-card p {
  font-size: 0.875rem;
  color: #546e7a;
  margin: 0;
  line-height: 1.5;
}

/* 詳細リンクボタン群 */
.detail-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 32px;
}
.detail-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, transform 0.1s;
}
.detail-btn--primary {
  background: #1565c0;
  color: #fff;
}
.detail-btn--primary:hover {
  background: #0d47a1;
  transform: translateY(-1px);
}
.detail-btn--outline {
  background: #fff;
  color: #1565c0;
  border: 2px solid #1565c0;
}
.detail-btn--outline:hover {
  background: #e3f2fd;
}
.detail-btn svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  flex-shrink: 0;
}

/* ── スクロール誘導オーバーレイ (SP のみ。スクロールで消える) ── */
.scroll-hint-overlay { display: none; }
@media (max-width: 768px) {
  /* 親をスクロールしないオーバーレイ基準に */
  .arena-card-body { position: relative; }
  .scroll-hint-overlay {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 132px;
    pointer-events: none;               /* 下の表をスクロール操作できるように */
    background: linear-gradient(to right, rgba(20,20,30,0) 0%, rgba(20,20,30,0.55) 45%, rgba(20,20,30,0.72) 100%);
    color: #fff;
    z-index: 3;
    opacity: 1;
    transition: opacity 0.45s ease;
  }
  .scroll-hint-overlay.is-hidden { opacity: 0; }
  .scroll-hint-overlay__arrows { width: 30px; height: 30px; }
  .scroll-hint-overlay__hand {
    width: 38px; height: 38px;
    animation: scrollHintHand 1.3s ease-in-out infinite;
  }
  .scroll-hint-overlay__text {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  }
}
@keyframes scrollHintHand {
  0%, 100% { transform: translateX(-7px); }
  50%      { transform: translateX(7px); }
}

/* 簡易料金表 */
.pricing-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 16px;
  border-radius: 0;
  /* 常時表示の横スクロールバー（スライダー） */
  scrollbar-width: thin;                /* Firefox */
  scrollbar-color: #1565c0 #e2e8f0;     /* thumb / track (Firefox) */
}
.pricing-table-wrap::-webkit-scrollbar {
  height: 10px;
  -webkit-appearance: none;
}
.pricing-table-wrap::-webkit-scrollbar-track {
  background: #e2e8f0;
  border-radius: 6px;
}
.pricing-table-wrap::-webkit-scrollbar-thumb {
  background: #1565c0;
  border-radius: 6px;
  border: 2px solid #e2e8f0;
}
.pricing-table {
  width: 100%;
  min-width: 540px;
  border-collapse: collapse;
  font-size: 1rem;
}
.pricing-table thead th {
  background: #1565c0;
  color: #fff;
  padding: 12px 14px;
  text-align: center;
  font-weight: 600;
  white-space: nowrap;
}
.pricing-table thead th:first-child {
  text-align: left;
  border-radius: 0;
}
.pricing-table thead th:last-child {
  border-radius: 0;
}
.pricing-table tbody td {
  padding: 12px 14px;
  text-align: center;
  border-bottom: 1px solid #e2e8f0;
}
.pricing-table tbody td:first-child {
  text-align: left;
  font-weight: 600;
  color: #1a237e;
  white-space: nowrap;
}
.pricing-table tbody tr:nth-child(even) {
  background: #f5f9ff;
}
.pricing-table tbody tr:hover {
  background: #e3f2fd;
}
.pricing-table tbody tr:last-child td:first-child {
  border-radius: 0;
}
.pricing-table tbody tr:last-child td:last-child {
  border-radius: 0;
}
.pricing-table .contact-cell {
  color: #1565c0;
  font-size: 0.875rem;
}

.table-note {
  font-size: 0.875rem;
  color: #666;
  margin-top: 8px;
}

/* 各種料金表: サブテーブル群 */
.rate-block {
  margin: 24px 0 32px;
  background: #fff;
  border: 0;
  border-radius: 0;
  padding: 22px 26px 26px;
}
.rate-block + .rate-block {
  margin-top: 36px;
}
/* 囲み無し (背景色・枠線・余白なし): キャンセル料 / 印刷用ダウンロード */
.rate-block--plain {
  background: transparent;
  padding: 0;
}
.rate-block-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1565c0;
  margin: 0 0 12px;
  padding: 0 0 6px;
  border-bottom: 2px solid #e3f2fd;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rate-block-title::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 18px;
  background: #1565c0;
  border-radius: 2px;
}
.rate-block-sub {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1565c0;
  margin: 16px 0 8px;
}
.rate-block-text {
  margin: 12px 0 4px;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--color-text, #1e293b);
}
.rate-block-text a {
  color: var(--color-primary, #1565c0);
  font-weight: 700;
  text-decoration: underline;
}
.rate-block-text a:hover {
  color: var(--color-primary-dark, #0d47a1);
}

/* キャンセル料テーブル (キャンセル時期 / キャンセル料 の2列) */
.cancel-table-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a3e;
  margin: 22px 0 8px;
}
.cancel-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  border: 1px solid #e2e8f0;
}
.cancel-table th,
.cancel-table td {
  padding: 12px 16px;
  text-align: left;
  border: 1px solid #e2e8f0;
  vertical-align: middle;
}
.cancel-table thead th {
  background: #fce4ec;
  color: #c62828;
  font-weight: 700;
  font-size: 0.875rem;
}
.cancel-table tbody td:first-child {
  width: 55%;
  background: #fff;
  color: #334155;
  font-weight: 600;
}
.cancel-table tbody td:last-child {
  background: #fff;
  font-weight: 700;
  color: #1a1a3e;
}
@media (max-width: 768px) {
  .cancel-table th, .cancel-table td { padding: 10px 12px; font-size: 0.875rem; }
  .cancel-table tbody td:first-child { width: 50%; }
}

/* 汎用アコーディオン (アリーナ料金以外の rate-block を折り畳む) */
.rate-acc {
  /* 白枠の入れ子をやめ、外側 .rate-block の白ボックス内にフラット配置 */
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 0;
  padding: 0;
}
.rate-acc + .rate-acc { margin-top: 8px; }
.rate-acc.is-open {
  box-shadow: none;
}
.rate-acc .rate-block-title {
  margin: 0;
  padding: 0;
  border-bottom: 0;
}
.rate-acc-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  width: 100%;
  padding: 14px 20px;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
}
.rate-acc-toggle-hint {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1a3a5a;
  letter-spacing: 0.02em;
}
.rate-acc.is-open .rate-acc-toggle-hint::before { content: '料金表を閉じる'; }
.rate-acc:not(.is-open) .rate-acc-toggle-hint::before { content: '料金表を表示'; }
/* テキスト指定型: ::before を抑制し中身のテキストを直接表示 */
.rate-acc-toggle-hint--text::before { content: none !important; }
.rate-acc-toggle-hint--text { font-weight: 700; color: #1a3a5a; }
.rate-acc-toggle .arena-card-chevron::before {
  border-color: #64748b;
}
.rate-acc[aria-state="open"] .arena-card-chevron::before,
.rate-acc.is-open .arena-card-chevron::before {
  top: 6px;
  transform: rotate(-135deg);
  border-color: #1565c0;
}
.rate-acc-body {
  height: 0;
  padding: 0 20px;
  opacity: 0;
  overflow: hidden;
  transition:
    height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.32s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.25s ease;
}
.rate-acc.is-open .rate-acc-body {
  padding: 4px 20px 20px;
  opacity: 1;
}
.rate-acc-body-inner {
  overflow-x: auto;
}
.rate-acc-body-inner > .pricing-table-wrap:first-child,
.rate-acc-body-inner > p:first-child {
  margin-top: 0;
}
.tax-note {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  background: #fff7e0;
  color: #c8963e;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 700;
}
.pricing-table--compact { min-width: 0; }
.pricing-table--compact tbody td { font-size: 0.875rem; padding: 10px 12px; }

/* アリーナ料金専用テーブル: rowspan + 色分けセル */
.arena-rate-table {
  width: 100%;
  min-width: 880px;
  border-collapse: collapse;
  font-size: 0.9375rem;
  background: #fff;
}
.arena-rate-table th,
.arena-rate-table td {
  border: 1px solid #b6c8dc;
  padding: 10px 8px;
  text-align: center;
  line-height: 1.4;
  vertical-align: middle;
}
.arena-rate-table thead th {
  background: #c8e4f0;
  color: #1a3a5a;
  font-weight: 700;
}
.arena-rate-table thead th small {
  display: block;
  font-weight: 400;
  font-size: 0.8125rem;
  margin-top: 2px;
  color: #305278;
}
.arena-rate-table .col-bunrui {
  background: #c8e4f0;
  color: #1a3a5a;
  font-weight: 700;
  white-space: pre-line;
  width: 100px;
}
.arena-rate-table .col-bunrui--sub {
  background: #e8f1f7;
  color: #1a3a5a;
  font-weight: 700;
  width: 80px;
}
.arena-rate-table .cell-nonprofit {
  background: #fadbe1;
  color: #7a2030;
  font-weight: 700;
}
.arena-rate-table .cell-profit {
  background: #dbdcef;
  color: #25306b;
  font-weight: 700;
}
.arena-rate-table .cell-amateur-section {
  background: #e8f1f7;
  color: #1a3a5a;
  font-weight: 700;
  white-space: pre-line;
}
.arena-rate-table .price {
  font-weight: 600;
  white-space: nowrap;
  background: #ffffff;
}
/* 1 行毎の zebra (price セルのみ。ラベル色は維持) */
.arena-rate-table tbody tr:nth-child(odd) .price { background: #eef6fd; }
.arena-rate-table tbody tr:nth-child(even) .price { background: #ffffff; }
.arena-rate-table .col-bunrui small,
.arena-rate-table .col-bunrui--sub small,
.arena-rate-table .cell-amateur-section small {
  display: block;
  font-weight: 500;
  font-size: 0.8125rem;
  margin-top: 4px;
}

/* ─────────────────────────────────────────────────
   アリーナ料金: アコーディオン + 時間帯タブ型
   ───────────────────────────────────────────────── */
.arena-pricing {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}
.arena-pricing-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.arena-pricing-title {
  font-size: 1.625rem;
  font-weight: 800;
  color: #1a1a3e;
  margin: 0 0 4px;
  letter-spacing: 0.02em;
}
.arena-pricing-sub {
  font-size: 0.875rem;
  color: var(--color-text-light, #64748b);
  margin: 0;
}
/* アコーディオンカード (ボタン風: 角丸 + シャドウ) */
.arena-card {
  /* 白枠の入れ子をやめ、外側 .rate-block の白ボックス内にフラット配置 */
  border: 0;
  margin-bottom: 18px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.arena-card:last-child { margin-bottom: 0; }
.arena-card.is-open {
  box-shadow: none;
}
.arena-card--blue   { border-left-color: #1565c0; }
.arena-card--green  { border-left-color: #2e9b3a; }
.arena-card--orange { border-left-color: #c8963e; }
.arena-card--purple { border-left-color: #6a1b9a; }

/* 備品系セクション (備品利用料金 / 無料備品) は単一トーンで統一 */
.arena-pricing--equipment .arena-card,
.arena-pricing--equipment .arena-card--blue,
.arena-pricing--equipment .arena-card--green,
.arena-pricing--equipment .arena-card--orange,
.arena-pricing--equipment .arena-card--purple {
  border-left-color: #59B6C9;
}
.arena-pricing--equipment .arena-card .arena-card-num,
.arena-pricing--equipment .arena-card--blue .arena-card-num,
.arena-pricing--equipment .arena-card--green .arena-card-num,
.arena-pricing--equipment .arena-card--orange .arena-card-num,
.arena-pricing--equipment .arena-card--purple .arena-card-num {
  background: #59B6C9 !important;
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.arena-pricing--equipment .arena-card-num svg {
  width: 20px;
  height: 20px;
  fill: #fff;
  display: block;
}
/* 貸出用品カテゴリの画像アイコン（白アイコンPNG）。丸・背景色・サイズはSVGと同一に維持 */
.arena-pricing--equipment .arena-card-num img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

/* 表の列幅を揃える (同じセクション内の複数テーブルで一致) */
.arena-pricing--equipment .arena-inner-table {
  table-layout: fixed;
  width: 100%;
}
.arena-pricing--free .arena-inner-table th:nth-child(1),
.arena-pricing--free .arena-inner-table td:nth-child(1) { width: 38%; }
.arena-pricing--free .arena-inner-table th:nth-child(2),
.arena-pricing--free .arena-inner-table td:nth-child(2) { width: 62%; }
.arena-pricing--paid .arena-inner-table th:nth-child(1),
.arena-pricing--paid .arena-inner-table td:nth-child(1) { width: 32%; }
.arena-pricing--paid .arena-inner-table th:nth-child(2),
.arena-pricing--paid .arena-inner-table td:nth-child(2) { width: 12%; }
.arena-pricing--paid .arena-inner-table th:nth-child(3),
.arena-pricing--paid .arena-inner-table td:nth-child(3) { width: 18%; }
.arena-pricing--paid .arena-inner-table th:nth-child(4),
.arena-pricing--paid .arena-inner-table td:nth-child(4) { width: 38%; }

.arena-card-head {
  display: grid;
  grid-template-columns: 36px 1fr 24px;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  cursor: pointer;
  font-size: 0.9375rem;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font-family: inherit;
  color: inherit;
}
.arena-card-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #1565c0;
  color: #fff;
  font-weight: 700;
  font-size: 0.875rem;
}
.arena-card--green  .arena-card-num { background: #2e9b3a; }
.arena-card--orange .arena-card-num { background: #c8963e; }
.arena-card--purple .arena-card-num { background: #6a1b9a; }
.arena-card-title {
  font-weight: 700;
  color: #1a1a3e;
}

/* シェブロン: CSS で描画した細線の ∨ */
.arena-card-chevron {
  position: relative;
  width: 16px;
  height: 16px;
  display: inline-block;
}
.arena-card-chevron::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 3px;
  width: 10px;
  height: 10px;
  border-right: 2px solid #64748b;
  border-bottom: 2px solid #64748b;
  transform: rotate(45deg);
  transition: transform 0.3s ease, border-color 0.3s ease;
}
.arena-card.is-open .arena-card-chevron::before {
  top: 6px;
  transform: rotate(-135deg);
  border-color: #1565c0;
}

/* 開閉アニメ: scrollHeight ベース */
.arena-card-body {
  height: 0;
  padding: 0 18px;
  opacity: 0;
  overflow: hidden;
  transition:
    height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.32s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.25s ease;
}
.arena-card.is-open .arena-card-body {
  padding: 6px 18px 18px;
  opacity: 1;
}
.arena-card-body-inner {
  overflow-x: auto;
}
.arena-card-remark {
  margin: 12px 0 0;
  padding: 8px 0 0;
  font-size: 0.8125rem;
  line-height: 1.8;
  color: var(--color-text-light, #64748b);
}
.arena-card-remark-label {
  font-weight: 700;
  color: #1a3a5a;
  margin-right: 8px;
}
.arena-card-remark ol {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
}
.arena-card-remark ol li {
  position: relative;
  padding-left: 1.8em;
  margin: 2px 0;
}
.arena-card-remark ol li::before {
  position: absolute;
  left: 0;
  color: var(--color-text-light, #64748b);
  font-weight: 700;
}
.arena-card-remark ol li::before { content: '・'; }
.arena-card-remark--star ol li::before { content: '＊'; }
/* 備考内のリンク (キャンセル料への案内) */
.arena-card-remark a {
  color: var(--color-primary, #1565c0);
  font-weight: 700;
  text-decoration: underline;
}
/* アンカー遷移時に上部が見切れないよう余白を確保 */
#cancel-fee { scroll-margin-top: 90px; }

/* ②③④ 共通備考: 対象セクションを列挙 */
.arena-shared-remark { margin-top: 18px; border-top: 1px solid #d6e0ec; padding-top: 14px; }
.arena-shared-remark-scope {
  font-size: 0.75rem;
  font-weight: 700;
  color: #c62828;
}
.arena-shared-remark-targets {
  list-style: none;
  margin: 6px 0 8px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-weight: 700;
  color: #1a3a5a;
}
.arena-inner-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: 0.875rem;
  background: #fff;
}
.arena-inner-table th,
.arena-inner-table td {
  border: 1px solid #d6e0ec;
  padding: 10px 12px;
  text-align: center;
  vertical-align: middle;
}
.arena-inner-table thead th {
  background: #eaf1fb;
  color: #1a3a5a;
  font-weight: 700;
}
.arena-inner-table thead th small {
  display: block;
  font-weight: 400;
  font-size: 0.75rem;
  color: #305278;
  margin-top: 2px;
}
.arena-inner-table tbody td {
  font-weight: 600;
  color: #1a1a3e;
}
.arena-inner-table tbody td:first-child,
.arena-inner-table tbody td:nth-child(2) {
  font-weight: 700;
  color: #1a3a5a;
}
/* 営利/非営利のラベル色 */
.arena-inner-table .label-nonprofit {
  background: #fadbe1 !important;
  color: #7a2030;
}
.arena-inner-table .label-profit {
  background: #dbdcef !important;
  color: #25306b;
}
.arena-inner-table tbody tr:nth-child(even) td {
  background: #f6f9fd;
}

.arena-pricing-footer {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.arena-pricing-note {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--color-text-light, #64748b);
  line-height: 1.7;
}
.arena-pricing-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  background: #fff;
  border: 1px solid #1565c0;
  color: #1565c0;
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s;
}
.arena-pricing-cta:hover {
  background: #e6efff;
}

@media (max-width: 768px) {
  .arena-pricing-head { flex-direction: column; align-items: stretch; }
  .arena-card-head { grid-template-columns: 32px 1fr 24px; padding: 12px 14px; }
  .arena-card-title { font-size: 0.875rem; }
  .arena-pricing-footer { flex-direction: column; align-items: stretch; }
  .arena-pricing-cta { justify-content: center; }

  /* インナーテーブルの圧縮 */
  .arena-inner-table { min-width: 0; font-size: 0.75rem; }
  .arena-inner-table th, .arena-inner-table td { padding: 8px 4px; }
  .arena-inner-table th small, .arena-inner-table thead th small { font-size: 0.625rem; }

  /* PC のみ表示するインライン要素 */
  .hide-sp { display: none; }
}

/* 注意事項 */
/* 注意事項 (旧 notice-list / 新 pricing-caution) */
.pricing-caution {
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
}
.pricing-caution-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a1a3e;
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.pricing-caution-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fde6ea;
  color: #c62828;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
}
.pricing-caution-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pricing-caution-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 4px;
  font-size: 0.875rem;
  color: #1e293b;
  border-bottom: 1px solid #e2e8f0;
  line-height: 1.7;
}
.pricing-caution-list li:last-child { border-bottom: none; }
.pricing-caution-bullet {
  flex-shrink: 0;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.7;
}
.pricing-caution-text { flex: 1; }
.notice-list {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
}
.notice-list li {
  padding: 12px 16px;
  background: #fff8e1;
  border-left: 4px solid #ffc107;
  margin-bottom: 8px;
  border-radius: 0 8px 8px 0;
  font-size: 1rem;
  line-height: 1.6;
}
.notice-list li a {
  color: #1565c0;
  text-decoration: underline;
}

/* お問い合わせ */
.contact-box {
  background: linear-gradient(135deg, #e3f2fd, #bbdefb);
  border-radius: 12px;
  padding: 32px;
  text-align: center;
  margin-bottom: 32px;
}
.contact-box h3 {
  font-size: 1.25rem;
  color: #0d47a1;
  margin: 0 0 12px;
}
.contact-box .tel-number {
  font-size: 1.25rem;
  font-weight: 700;
  color: #0d47a1;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.contact-box .tel-number svg {
  width: 28px;
  height: 28px;
  fill: #0d47a1;
}
.contact-box p {
  margin: 8px 0 0;
  font-size: 0.875rem;
  color: #546e7a;
}

@media (max-width: 600px) {
  .pricing-section {
    padding: 32px 16px;
  }
  .pricing-section-title {
    font-size: 1.25rem;
  }
  .detail-buttons {
    flex-direction: column;
  }
  .detail-btn {
    justify-content: center;
  }
  .contact-box .tel-number {
    font-size: 1.25rem;
  }
}

/* PC/SP共通: 料金表のアコーディオンを排除し常時表示。
   枠の大きさは維持し、画面に収まらない場合は横スクロールで金額を見せる。 */
/* 汎用アコーディオン (rate-acc) を常時開く。本文はセクション枠の幅に合わせる */
.rate-acc-toggle { pointer-events: none; cursor: default; padding: 8px 0 2px; }
.rate-acc-toggle-hint:not(.rate-acc-toggle-hint--text) { display: none; }
.rate-acc-toggle .arena-card-chevron { display: none; }
.rate-acc-body {
  height: auto !important;
  opacity: 1 !important;
  overflow: visible;
  padding: 4px 0 4px !important;
}

/* アリーナ料金アコーディオン (arena-card) を常時開く */
.arena-card-head { pointer-events: none; cursor: default; grid-template-columns: 32px 1fr; padding: 6px 0; }
.arena-card-head .arena-card-chevron { display: none; }
.arena-card-body {
  height: auto !important;
  opacity: 1 !important;
  overflow: visible;
  padding: 4px 0 0 !important;
}

/* 表が収まらない場合は横スクロール (枠サイズは維持) */
.rate-acc-body-inner,
.arena-card-body-inner,
.pricing-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  /* 常時表示の横スクロールバー（スライダー） */
  scrollbar-width: thin;
  scrollbar-color: #1565c0 #e2e8f0;
}
.rate-acc-body-inner::-webkit-scrollbar,
.arena-card-body-inner::-webkit-scrollbar,
.pricing-table-wrap::-webkit-scrollbar {
  height: 10px;
  -webkit-appearance: none;
}
.rate-acc-body-inner::-webkit-scrollbar-track,
.arena-card-body-inner::-webkit-scrollbar-track,
.pricing-table-wrap::-webkit-scrollbar-track {
  background: #e2e8f0;
  border-radius: 6px;
}
.rate-acc-body-inner::-webkit-scrollbar-thumb,
.arena-card-body-inner::-webkit-scrollbar-thumb,
.pricing-table-wrap::-webkit-scrollbar-thumb {
  background: #1565c0;
  border-radius: 6px;
  border: 2px solid #e2e8f0;
}

/* 文字の折り返し(押し返し)が一文字でも起きないよう nowrap。
   収まらない分は上記の横スクロールで金額をすべて見せる。 */
.pricing-table th, .pricing-table td,
.arena-rate-table th, .arena-rate-table td,
.arena-inner-table th, .arena-inner-table td {
  white-space: nowrap;
}
/* 意図的な改行セルは改行を維持しつつ自動折り返しのみ防ぐ */
.arena-rate-table .col-bunrui,
.arena-rate-table .cell-amateur-section {
  white-space: pre;
}
/* 備品テーブルは固定レイアウトを解除し内容幅に合わせる (nowrap を活かす) */
.arena-pricing--equipment .arena-inner-table { table-layout: auto; }
