/* ========================================
   こもれび 山崎温水プール 料金・会員一覧
   スコープ: .priceTable2026
   単位: px固定（親ページのhtml font-size影響を回避）
   ======================================== */

/* CSS変数 */
.priceTable2026 {
  --green-dark: #5a8a3c;
  --green-mid: #7ab648;
  --green-light: #a4d65e;
  --green-pale: #e8f5d6;
  --green-bg: #f4fae8;
  --orange: #f09c38;
  --orange-light: #fef3e0;
  --pink: #e8729a;
  --pink-light: #fde8f0;
  --blue: #5bb7d5;
  --blue-light: #e0f4fa;
  --yellow: #f5d94e;
  --yellow-light: #fef9e0;
  --purple: #9b7cc4;
  --purple-light: #f0eaf8;
  --text-dark: #3a3a3a;
  --text-mid: #5a5a5a;
  --border-light: #d4e8b8;
  --white: #ffffff;
}

/* ベース */
.priceTable2026 {
  max-width: 960px;
  margin: 0 auto;
  font-family: fot-seurat-pron, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: var(--text-dark);
  padding: 20px;
}

.priceTable2026 *,
.priceTable2026 *::before,
.priceTable2026 *::after {
  box-sizing: border-box;
}

/* Header */
.priceTable2026 .page-header {
  text-align: center;
  margin-bottom: 36px;
  position: relative;
}

.priceTable2026 .page-header h1 {
  font-family: fot-seurat-pron, sans-serif;
  font-weight: 800;
  font-size: 32px;
  color: var(--green-dark);
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}

.priceTable2026 .page-header .subtitle {
  font-size: 15px;
  color: var(--text-mid);
  font-weight: 500;
}

.priceTable2026 .leaf-deco {
  display: inline-block;
  width: 28px;
  height: 28px;
  background: var(--green-light);
  border-radius: 0 50% 50% 50%;
  transform: rotate(-45deg);
  margin: 0 6px;
  vertical-align: middle;
  opacity: 0.7;
}

/* Section Title */
.priceTable2026 .section-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 32px 0 16px;
}

.priceTable2026 .section-title h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: fot-seurat-pron, sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--white);
  background: linear-gradient(135deg, var(--green-mid), var(--green-dark));
  padding: 8px 28px 8px 16px;
  border-radius: 30px;
  box-shadow: 0 3px 12px rgba(90, 138, 60, 0.25);
  white-space: nowrap;
}

.priceTable2026 .section-title h2 .section-icon {
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,0.9);
  border-radius: 50%;
  padding: 3px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.priceTable2026 .section-title h2 .section-icon svg {
  width: 100%;
  height: 100%;
}

.priceTable2026 .section-title::after {
  content: '';
  flex: 1;
  height: 3px;
  background: linear-gradient(90deg, var(--green-light), transparent);
  border-radius: 2px;
}

/* Cards */
.priceTable2026 .member-card {
  background: var(--white);
  border-radius: 16px;
  box-shadow: 0 2px 16px rgba(90, 138, 60, 0.1);
  margin-bottom: 20px;
  overflow: hidden;
  border: 1px solid var(--border-light);
}

.priceTable2026 .card-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 24px;
  font-weight: 700;
  font-size: 18px;
  color: var(--white);
}

.priceTable2026 .card-header .icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 3px;
}

.priceTable2026 .card-header .icon svg {
  width: 100%;
  height: 100%;
}

.priceTable2026 .card-header .target {
  font-size: 13px;
  font-weight: 500;
  opacity: 0.9;
  margin-left: auto;
  background: rgba(255, 255, 255, 0.2);
  padding: 3px 12px;
  border-radius: 12px;
}

/* Card color variants */
.priceTable2026 .card-swimming .card-header { background: linear-gradient(135deg, #6bbe45, #4a9e2a); }
.priceTable2026 .card-kids-dance .card-header { background: linear-gradient(135deg, var(--orange), #e08820); }
.priceTable2026 .card-cheer .card-header { background: linear-gradient(135deg, var(--pink), #d05a80); }
.priceTable2026 .card-english .card-header { background: linear-gradient(135deg, var(--blue), #3a9ab8); }
.priceTable2026 .card-fitness .card-header { background: linear-gradient(135deg, var(--purple), #7a5ca8); }
.priceTable2026 .card-swim-fit .card-header { background: linear-gradient(135deg, #48a8c0, #2a8aa0); }
.priceTable2026 .card-adult-english .card-header { background: linear-gradient(135deg, #5bb7d5, #3a9ab8); }

.priceTable2026 .card-body {
  padding: 16px 24px 20px;
}

/* Schedule table */
.priceTable2026 .schedule-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 16px;
}

.priceTable2026 .schedule-table th {
  text-align: left;
  padding: 8px 10px;
  font-weight: 600;
  color: var(--text-mid);
  font-size: 14.5px;
  border-bottom: 2px solid var(--green-pale);
  white-space: nowrap;
}

.priceTable2026 .schedule-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #f0f5e6;
  vertical-align: top;
  line-height: 1.6;
}

.priceTable2026 .schedule-table tr:last-child td {
  border-bottom: none;
  padding-bottom: 0;
}

.priceTable2026 .schedule-table {
  margin-bottom: -4px;
}

.priceTable2026 .day-label {
  font-weight: 600;
  color: var(--green-dark);
  white-space: nowrap;
  min-width: 80px;
}

.priceTable2026 .time-text {
  color: var(--text-dark);
  font-size: 15.5px;
}

/* Price badge */
.priceTable2026 .price-area {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 2px dashed var(--border-light);
}

.priceTable2026 .price-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  background: var(--green-pale);
  padding: 6px 16px;
  border-radius: 20px;
  font-weight: 700;
}

.priceTable2026 .price-badge .freq {
  font-size: 13px;
  color: var(--text-mid);
  font-weight: 500;
}

.priceTable2026 .price-badge .amount {
  font-size: 19px;
  color: var(--green-dark);
  font-family: fot-seurat-pron, sans-serif;
}

.priceTable2026 .price-badge .tax {
  font-size: 11.5px;
  color: var(--text-mid);
  font-weight: 400;
}

/* Price badge color variants */
.priceTable2026 .card-swimming .price-badge { background: #e8f5d6; }
.priceTable2026 .card-swimming .price-badge .amount { color: #4a9e2a; }
.priceTable2026 .card-kids-dance .price-badge { background: var(--orange-light); }
.priceTable2026 .card-kids-dance .price-badge .amount { color: #d07a10; }
.priceTable2026 .card-cheer .price-badge { background: var(--pink-light); }
.priceTable2026 .card-cheer .price-badge .amount { color: #c0507a; }
.priceTable2026 .card-english .price-badge { background: var(--blue-light); }
.priceTable2026 .card-english .price-badge .amount { color: #2a8aa0; }
.priceTable2026 .card-fitness .price-badge { background: var(--purple-light); }
.priceTable2026 .card-fitness .price-badge .amount { color: #7a5ca8; }
.priceTable2026 .card-swim-fit .price-badge { background: #dff0f5; }
.priceTable2026 .card-swim-fit .price-badge .amount { color: #2a8aa0; }
.priceTable2026 .card-adult-english .price-badge { background: var(--blue-light); }
.priceTable2026 .card-adult-english .price-badge .amount { color: #2a8aa0; }

/* Facility tags */
.priceTable2026 .facility-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}

.priceTable2026 .facility-tag {
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 10px;
  font-weight: 600;
  background: #f0f5e6;
  color: var(--green-dark);
}

/* Note text */
.priceTable2026 .note-text {
  font-size: 13px;
  color: var(--text-mid);
  margin-top: 6px;
  line-height: 1.5;
}

/* ========== テーブルレイアウト（PC用） ========== */
.priceTable2026 .plan-table-wrap {
  background: var(--white);
  border-radius: 16px;
  box-shadow: 0 2px 16px rgba(90, 138, 60, 0.1);
  border: 1px solid var(--border-light);
  overflow: hidden;
  margin-bottom: 24px;
}

.priceTable2026 table.plan-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}

/* thead */
.priceTable2026 table.plan-table thead th {
  background: var(--green-pale);
  color: var(--green-dark);
  font-weight: 700;
  font-size: 15px;
  padding: 12px 14px;
  text-align: center;
  border-bottom: 2px solid var(--border-light);
  letter-spacing: 0.04em;
}

/* tbody */
.priceTable2026 table.plan-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid #eef4e0;
  vertical-align: middle;
  line-height: 1.65;
}

.priceTable2026 table.plan-table tbody tr:last-child td {
  border-bottom: none;
}

/* 列幅 */
.priceTable2026 .col-type { width: 15%; }
.priceTable2026 .col-target { width: 11%; }
.priceTable2026 .col-day { width: 14%; }
.priceTable2026 .col-time { width: 40%; }
.priceTable2026 .col-fee { width: 20%; }

/* 会員種別セル */
.priceTable2026 table.plan-table tbody td.type-cell {
  font-weight: 700;
  font-size: 16px;
  text-align: center;
  vertical-align: middle;
  color: var(--green-dark);
  background: var(--green-bg);
  line-height: 1.5;
  border-bottom: none;
}


/* 対象セル */
.priceTable2026 table.plan-table tbody td.target-cell {
  text-align: center;
  font-size: 13.5px;
  color: var(--text-mid);
  vertical-align: middle;
  font-weight: 500;
  border-bottom: none;
  word-break: normal;
  white-space: normal;
  line-height: 1.7;
}

/* 対象セル内の波ダッシュを縦書き風に */
.priceTable2026 table.plan-table tbody td.target-cell .tilde {
  display: inline-block;
  transform: rotate(90deg);
  font-size: 16px;
}

/* 曜日セル */
.priceTable2026 .day-cell {
  font-weight: 600;
  font-size: 15px;
  color: var(--green-dark);
  white-space: nowrap;
  padding: 0 !important;
}

/* 時間セル */
.priceTable2026 .time-cell {
  font-size: 14.5px;
  color: var(--text-dark);
  padding: 0 !important;
}

/* セル内のコンテンツをflexboxで中央配置 */
.priceTable2026 .day-cell .cell-content,
.priceTable2026 .time-cell .cell-content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 12px 14px;
}

/* 料金セル */
.priceTable2026 table.plan-table tbody td.fee-cell {
  text-align: center;
  vertical-align: middle;
  background: var(--green-bg);
  border-bottom: none;
}

.priceTable2026 .fee-cell .price-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: var(--green-pale);
  padding: 8px 14px;
  border-radius: 16px;
}

.priceTable2026 .fee-cell .freq {
  font-size: 12.5px;
  color: var(--text-mid);
  font-weight: 500;
}

.priceTable2026 .fee-cell .amount {
  font-size: 24px;
  font-weight: 800;
  color: var(--green-dark);
}

.priceTable2026 .fee-cell .amount .yen {
  font-size: 14px;
  font-weight: 600;
}

.priceTable2026 .fee-cell .tax {
  font-size: 11.5px;
  color: var(--text-mid);
  font-weight: 400;
}

/* 施設タグ（テーブル内） */
.priceTable2026 .facility-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
  justify-content: center;
}

.priceTable2026 .facility-tag {
  font-size: 11.5px;
  padding: 2px 9px;
  border-radius: 10px;
  font-weight: 600;
  background: #f0f5e6;
  color: var(--green-dark);
  border: 1px solid var(--border-light);
}

.priceTable2026 .facility-plus {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-mid);
  line-height: 1;
  width: 100%;
  text-align: center;
}

/* 区切りボーダー（会員種別間）— 種別列・料金列には引かない */
.priceTable2026 table.plan-table tbody tr.border-section td {
  border-top: 2px solid var(--border-light);
}
.priceTable2026 table.plan-table tbody tr.border-section td.fee-cell,
.priceTable2026 table.plan-table tbody tr.border-section td.type-cell {
  border-top: none;
}

/* カラーバリエーション（テーブル） */

/* フィットネス（パープル系） */
.priceTable2026 table.plan-table tbody td.type-fitness {
  color: #7a5ca8;
  background: var(--purple-light);
}
.priceTable2026 table.plan-table tbody td.fee-fitness {
  background: var(--purple-light);
}
.priceTable2026 .fee-cell .badge-fitness {
  background: #e2d6f0;
}
.priceTable2026 .fee-cell .badge-fitness .amount {
  color: #7a5ca8;
}
.priceTable2026 .fee-cell .badge-fitness .amount .yen {
  color: #9b88b8;
}
.priceTable2026 .tag-fitness {
  background: #f0eaf8;
  color: #7a5ca8;
  border-color: #d8cce8;
}

/* スイミング＆フィットネス（シアン系） */
.priceTable2026 table.plan-table tbody td.type-swimfit {
  color: #2a8aa0;
  background: #e8f4f8;
}
.priceTable2026 table.plan-table tbody td.fee-swimfit {
  background: #e8f4f8;
}
.priceTable2026 .fee-cell .badge-swimfit {
  background: #cee8f0;
}
.priceTable2026 .fee-cell .badge-swimfit .amount {
  color: #2a8aa0;
}
.priceTable2026 .fee-cell .badge-swimfit .amount .yen {
  color: #5aabbf;
}
.priceTable2026 .tag-swimfit {
  background: #e0f4fa;
  color: #2a8aa0;
  border-color: #b8e0ee;
}

/* 英語教室・大人（インディゴ系） */
.priceTable2026 table.plan-table tbody td.type-english {
  color: #4a6fa5;
  background: #e8eef8;
}
.priceTable2026 table.plan-table tbody td.fee-english {
  background: #e8eef8;
}
.priceTable2026 .fee-cell .badge-english {
  background: #d4e0f2;
}
.priceTable2026 .fee-cell .badge-english .amount {
  color: #4a6fa5;
}
.priceTable2026 .fee-cell .badge-english .amount .yen {
  color: #7a9ac4;
}
.priceTable2026 .tag-english {
  background: #dae4f4;
  color: #4a6fa5;
  border-color: #b8cce4;
}

/* キッズダンス（オレンジ系） */
.priceTable2026 table.plan-table tbody td.type-kidsdance {
  color: #d07a10;
  background: var(--orange-light);
}
.priceTable2026 table.plan-table tbody td.fee-kidsdance {
  background: var(--orange-light);
}
.priceTable2026 .fee-cell .badge-kidsdance {
  background: #fdefd8;
}
.priceTable2026 .fee-cell .badge-kidsdance .amount {
  color: #d07a10;
}
.priceTable2026 .fee-cell .badge-kidsdance .amount .yen {
  color: #d8a050;
}

/* チアダンス（ピンク系） */
.priceTable2026 table.plan-table tbody td.type-cheer {
  color: #c0507a;
  background: var(--pink-light);
}
.priceTable2026 table.plan-table tbody td.fee-cheer {
  background: var(--pink-light);
}
.priceTable2026 .fee-cell .badge-cheer {
  background: #f8dce6;
}
.priceTable2026 .fee-cell .badge-cheer .amount {
  color: #c0507a;
}
.priceTable2026 .fee-cell .badge-cheer .amount .yen {
  color: #d08098;
}

/* 英語教室・こども（ブルー系） */
.priceTable2026 table.plan-table tbody td.type-kids-english {
  color: #2a8aa0;
  background: var(--blue-light);
}
.priceTable2026 table.plan-table tbody td.fee-kids-english {
  background: var(--blue-light);
}
.priceTable2026 .fee-cell .badge-kids-english {
  background: #c4e4f2;
}
.priceTable2026 .fee-cell .badge-kids-english .amount {
  color: #2a8aa0;
}
.priceTable2026 .fee-cell .badge-kids-english .amount .yen {
  color: #5aabbf;
}

/* Enrollment Info */
.priceTable2026 .enrollment-info {
  margin-bottom: 20px;
}

.priceTable2026 .enrollment-cards {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch;
}

.priceTable2026 .enrollment-card {
  flex: 1;
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: 12px;
  overflow: hidden;
  text-align: center;
  display: flex;
  flex-direction: column;
}

.priceTable2026 .enrollment-label {
  background: linear-gradient(135deg, #b8c98a, #9ab86a);
  color: var(--white);
  font-size: 13px;
  font-weight: 600;
  padding: 6px 12px;
  flex-shrink: 0;
  line-height: 2.0;
}

.priceTable2026 .enrollment-value {
  padding: 0 12px;
  font-family: fot-seurat-pron, sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--text-dark);
  flex: 1;
  display: flex;
  align-items: baseline;
  justify-content: center;
  min-height: 60px;
  padding-top: 20px;
  padding-bottom: 10px;
  line-height: 2.0;
}

.priceTable2026 .enrollment-value .enrollment-unit {
  font-size: 18px;
  font-weight: 500;
}


.priceTable2026 .enrollment-value-sm {
  padding: 16px 12px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1.4;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.priceTable2026 .enrollment-or {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--text-mid);
}

.priceTable2026 .enrollment-notes {
  padding: 0 4px;
}

.priceTable2026 .enrollment-notes p {
  font-size: 13px;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 2px;
}

/* Responsive - PC/スマホ切り替え */
/* PC表示（641px以上）：テーブル表示、カード非表示 */
@media (min-width: 641px) {
  .priceTable2026 .pc-only {
    display: block;
  }
  .priceTable2026 .sp-only {
    display: none;
  }
}

/* スマホ表示（640px以下）：カード表示、テーブル非表示 */
@media (max-width: 640px) {
  .priceTable2026 .pc-only {
    display: none;
  }
  .priceTable2026 .sp-only {
    display: block;
  }
  .priceTable2026 {
    padding: 12px;
  }
  .priceTable2026 .page-header h1 {
    font-size: 24px;
  }
  .priceTable2026 .section-title h2 {
    font-size: 18px;
    padding: 6px 20px 6px 10px;
  }
  .priceTable2026 .section-title h2 .section-icon {
    width: 32px;
    height: 32px;
  }
  .priceTable2026 .card-header {
    padding: 12px 16px;
    font-size: 16px;
  }
  .priceTable2026 .card-body {
    padding: 12px 16px 16px;
  }
  .priceTable2026 .schedule-table {
    font-size: 15px;
  }
  .priceTable2026 .price-badge .amount {
    font-size: 17px;
  }
  .priceTable2026 .enrollment-cards {
    flex-direction: column;
    gap: 10px;
  }
  .priceTable2026 .enrollment-value {
    font-size: 21px;
    padding: 14px 12px;
  }
  .priceTable2026 .enrollment-notes p {
    font-size: 15px;
  }
}

/* ========== リンクエリア調整 ========== */
/* リンクエリアの上余白を半分に（PC・スマホ共通） */
#linkArea {
  margin-top: 20px !important;
}

/* スマホ表示時の調整 */
@media (max-width: 640px) {
  /* 「各教室体験申込はこちら」リンクの文字サイズを拡大 */
  #linkArea .linkList01 .entry02 a {
    font-size: 18px !important;
  }

  /* 「各教室体験申込はこちら」の背景画像が切れないように調整 */
  .pagePrice #linkArea .linkList01 li.entry02 {
    width: 100% !important;
    text-align: center;
  }

  .pagePrice #linkArea .linkList01 li.entry02 a {
    min-width: 70vw !important;
    max-width: 70vw !important;
    width: 70vw !important;
    background-size: contain !important;
    padding-top: 47vw !important;
    display: inline-block;
    font-size: 27px !important;
  }
}
