/* タイポ・バランス改善（POINTデザイン変更は除外） */
:root {
  --pts-display: clamp(1.65rem, 3.8vw, 2.75rem);
  --pts-h1: clamp(1.25rem, 3vw, 2rem);
  --pts-h2: clamp(1rem, 2.2vw, 1.35rem);
  --pts-body: clamp(0.875rem, 1.6vw, 1rem);
  --pts-caption: clamp(0.68rem, 1.2vw, 0.78rem);
  --pts-price: clamp(0.95rem, 2vw, 1.05rem);
}

/* --- Hero --- */
.women-hero {
  min-height: 420px !important;
}

.women-hero picture,
.women-hero img {
  min-height: 420px !important;
}

.women-hero__copy h1 {
  font-size: var(--pts-display) !important;
  line-height: 1.12 !important;
}

.women-hero__lead {
  font-size: clamp(0.88rem, 1.5vw, 1.05rem) !important;
  line-height: 1.75 !important;
}

.women-hero__chips li {
  font-size: clamp(0.74rem, 1.4vw, 0.82rem) !important;
  padding: 7px 12px !important;
}

.women-hero__eyebrow {
  font-size: 0.82rem !important;
}

@media (max-width: 768px) {
  .women-hero {
    min-height: 480px !important;
  }

  .women-hero picture,
  .women-hero img {
    min-height: 480px !important;
  }

  .women-hero__copy h1 {
    font-size: clamp(1.65rem, 7vw, 2.1rem) !important;
  }

  .women-hero__lead {
    font-size: 0.88rem !important;
  }
}

/* --- 上部比較表見出し --- */
.p-table-top__head .heading-art-img.-table {
  max-height: 210px !important;
  object-fit: contain !important;
}

@media (max-width: 768px) {
  .p-table-top__head .heading-art-img.-table {
    max-height: none !important;
    max-width: min(100%, 320px) !important;
  }

  .p-table-top .gym-brand-logo,
  .p-table-top .gym-brand-logo.-og {
    width: 88px !important;
    max-width: 88px !important;
    height: 60px !important;
    max-height: 60px !important;
  }

  .p-table-top .gym-brand-card {
    width: 88px !important;
    min-height: 60px !important;
  }

  .p-table-top .c-button.-table-top {
    font-size: 0.78rem !important;
    min-height: 46px !important;
  }

  .p-table-top__main .content .table-wrap table.table-new th {
    font-size: 0.78rem !important;
  }
}

/* --- ランキング見出し --- */
.p-ranking__head .c-heading.-ranking h2 .main {
  font-size: var(--pts-h1) !important;
  line-height: 1.28 !important;
}

.p-ranking__head .c-heading.-ranking h2 .sub,
.p-ranking__head .c-heading.-ranking h2 .date {
  font-size: 0.75rem !important;
}

/* --- ランキングカード：タイトル --- */
.p-ranking-item__title .name .badge {
  width: 56px !important;
  height: 56px !important;
  max-width: 56px !important;
  flex: 0 0 56px !important;
}

.p-ranking-item__title .name a {
  font-size: var(--pts-h2) !important;
  line-height: 1.2 !important;
}

.p-ranking-item__title .hyouka p {
  font-size: var(--pts-caption) !important;
}

.p-ranking-item__title .hyouka .big {
  font-size: clamp(0.95rem, 2vw, 1.1rem) !important;
}

@media (max-width: 768px) {
  .p-ranking-item__title .name .badge {
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
    flex: 0 0 48px !important;
  }

  .p-ranking-item__title .name a {
    font-size: clamp(1rem, 4.5vw, 1.15rem) !important;
  }
}

/* --- キャッチ --- */
.p-ranking-item__catch p,
.p-ranking-item__catch p.red {
  font-size: clamp(0.92rem, 2vw, 1.05rem) !important;
  line-height: 1.58 !important;
  font-weight: 600 !important;
}

@media (max-width: 768px) {
  .p-ranking-item__catch p,
  .p-ranking-item__catch p.red {
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
  }
}

/* --- スライダー 4:3 --- */
.gym-swiper .swiper-slide {
  flex: 0 0 min(72vw, 280px) !important;
  width: min(72vw, 280px) !important;
}

.gym-swiper .swiper-slide:not(.-logo) img {
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
}

.gym-swiper .swiper-slide.-logo img {
  padding: 14px !important;
}

@media (min-width: 769px) {
  .p-ranking-item__spec.-swiper-p2 > .gym-swiper {
    width: 280px !important;
    min-width: 280px !important;
    height: auto !important;
  }

  .gym-swiper .swiper-slide {
    flex: 0 0 280px !important;
    width: 280px !important;
  }
}

/* --- スペック表・タグ --- */
.p-ranking-item__spec__table .c-table th,
.p-ranking-item__spec__table th {
  font-size: 0.78rem !important;
}

.p-ranking-item__spec__table .c-table td,
.p-ranking-item__spec__table td {
  font-size: 0.88rem !important;
}

.p-ranking-item__tag li,
.u-device-sp.-tagSp .p-ranking-item__tag li {
  font-size: 0.8rem !important;
  padding: 6px 12px !important;
}

.p-ranking-item__tag-note {
  font-size: var(--pts-caption) !important;
}

@media (max-width: 768px) {
  .p-ranking-item__spec__table .c-table th,
  .p-ranking-item__spec__table th {
    font-size: 0.72rem !important;
  }

  .p-ranking-item__spec__table .c-table td,
  .p-ranking-item__spec__table td {
    font-size: 0.82rem !important;
  }

  .u-device-sp.-tagSp .p-ranking-item__tag li {
    font-size: 0.76rem !important;
  }
}

/* --- CTA --- */
.p-ranking-item__button .c-button p,
.p-ranking-item__button.u-device-sp .c-button p {
  font-size: clamp(0.95rem, 2.4vw, 1.05rem) !important;
  line-height: 1.25 !important;
}

.p-ranking-item__button.u-device-sp .c-button {
  min-height: 56px !important;
}

.p-ranking-item__button.u-device-sp .c-button.-shop-sp p,
.p-ranking-item.rank1 > .p-ranking-item__button.u-device-sp .c-button[href="#shop"] p {
  font-size: clamp(0.88rem, 2.2vw, 0.92rem) !important;
}

.p-ranking-item__button.u-device-sp .c-button.-shop-sp,
.p-ranking-item.rank1 > .p-ranking-item__button.u-device-sp .c-button[href="#shop"] {
  min-height: 48px !important;
}

/* --- コース・店舗 --- */
.gym-course h3,
.gym-shop__tab {
  font-size: clamp(1rem, 2vw, 1.15rem) !important;
}

.gym-course th,
.gym-course td {
  font-size: clamp(0.82rem, 1.6vw, 0.88rem) !important;
}

.gym-course td strong {
  font-size: var(--pts-price) !important;
}

.gym-shop__head {
  font-size: clamp(0.92rem, 1.8vw, 1rem) !important;
}

.gym-region summary {
  font-size: clamp(0.9rem, 1.8vw, 0.95rem) !important;
}

.gym-pref summary {
  font-size: clamp(0.86rem, 1.6vw, 0.9rem) !important;
}

.gym-store-grid a {
  font-size: clamp(0.82rem, 1.6vw, 0.88rem) !important;
}

/* --- 詳細比較表 --- */
#hikaku-table .c-table th {
  font-size: 0.78rem !important;
}

#hikaku-table .c-table td,
#hikaku-table .c-table td p {
  font-size: 0.82rem !important;
}

.gym-detail-brand img {
  width: 52px !important;
  height: 36px !important;
}

.gym-detail-brand img.-og {
  object-fit: cover !important;
}
