/* 店舗DB共通スタイル（追加CSSへ貼る） */
.gymdb-lead { font-size: 1.02em; line-height: 1.9; }

.gymdb-notice {
  padding: 12px 14px; border-radius: 6px; margin: 0 0 18px; font-weight: 600;
}
.gymdb-notice--closed { background: #fdecea; color: #a3231a; border: 1px solid #f3b8b2; }
.gymdb-notice--upcoming { background: #eaf4fd; color: #14568c; border: 1px solid #b6d7f2; }

.gymdb-info { width: 100%; border-collapse: collapse; margin: 12px 0 24px; }
.gymdb-info th, .gymdb-info td {
  border: 1px solid #e2e6ea; padding: 10px 12px; text-align: left; vertical-align: top;
}
.gymdb-info th { width: 32%; background: #f7f9fb; font-weight: 600; white-space: nowrap; }

.gymdb-map { margin: 0 0 24px; }
.gymdb-map iframe { display: block; border-radius: 6px; }
.gymdb-map__link { font-size: .9em; margin: 6px 0 0; }

.gymdb-services { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gymdb-services li {
  border: 1px solid #dfe4e8; border-radius: 999px; padding: 6px 14px; font-size: .92em;
  background: #fff;
}
.gymdb-services--missing li { color: #8b949c; background: #f4f6f7; text-decoration: line-through; }

.gymdb-congestion, .gymdb-review { line-height: 1.9; }

.gymdb-congestion__summary { margin: 0 0 20px; padding-left: 1.2em; }
.gymdb-busy { margin: 0 0 22px; }
.gymdb-busy__label { font-size: .9em; color: #6b7278; margin: 0 0 6px; }
.gymdb-busy__chart {
  display: flex; align-items: flex-end; gap: 2px; height: 130px;
  border-bottom: 1px solid #e2e6ea; padding: 0 2px;
}
.gymdb-busy__col { flex: 1; display: flex; flex-direction: column; justify-content: flex-end;
  align-items: center; height: 100%; position: relative; }
.gymdb-busy__bar { width: 100%; border-radius: 2px 2px 0 0; background: #cfd6dc; }
.gymdb-busy__bar--low { background: #7fc8a9; }
.gymdb-busy__bar--mid { background: #f0c419; }
.gymdb-busy__bar--high { background: #ef7d6b; }
.gymdb-busy__h { position: absolute; bottom: -18px; font-size: .68em; color: #8b949c; }
.gymdb-busy + .gymdb-busy { margin-top: 26px; }

.gymdb-neighbors, .gymdb-upcoming, .gymdb-personal, .gymdb-arealist {
  list-style: none; padding: 0; margin: 0 0 24px;
}
.gymdb-neighbors li, .gymdb-upcoming li, .gymdb-personal li {
  border-bottom: 1px solid #eceff1; padding: 10px 2px;
}
.gymdb-neighbor__access, .gymdb-personal__note {
  display: block; font-size: .85em; color: #6b7278;
}

.gymdb-arealist { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.gymdb-arealist li {
  border: 1px solid #e2e6ea; border-radius: 6px; padding: 10px 12px;
  display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
}
.gymdb-arealist li span { font-size: .85em; color: #6b7278; white-space: nowrap; }

.gymdb-tablewrap { overflow-x: auto; margin: 0 0 24px; }
.gymdb-stores { width: 100%; border-collapse: collapse; min-width: 640px; }
.gymdb-stores th, .gymdb-stores td {
  border: 1px solid #e2e6ea; padding: 9px 10px; font-size: .93em; text-align: left;
}
.gymdb-stores th { background: #f7f9fb; white-space: nowrap; }

.gymdb-cta {
  border: 2px solid #f0a500; border-radius: 8px; padding: 18px; margin: 28px 0; background: #fffdf5;
}
.gymdb-cta__lead { margin: 0 0 12px; }
.gymdb-cta__btn { margin: 0; text-align: center; }
.gymdb-cta__btn a {
  display: inline-block; padding: 14px 28px; border-radius: 6px;
  background: #f0a500; color: #fff; font-weight: 700; text-decoration: none;
}

.gymdb-breadcrumb { font-size: .88em; color: #6b7278; margin: 0 0 12px; }
.gymdb-backlinks { margin: 28px 0 0; font-size: .93em; }

.gymdb-search { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.gymdb-search select, .gymdb-search button { padding: 10px 12px; font-size: 1em; }

@media (max-width: 600px) {
  .gymdb-info th { width: 38%; }
  .gymdb-arealist { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
}
