/* スマホ表示を少しコンパクトにし、本文の読みやすさを保つ共通調整。 */
@media (max-width: 768px) {
  body {
    font-size: 14px !important;
    line-height: 1.72 !important;
  }
  h1, .article-title {
    font-size: 1.42rem !important;
    line-height: 1.38 !important;
  }
  h2, .article-body h2, .section-title {
    font-size: 1.18rem !important;
    line-height: 1.45 !important;
    margin-top: 1.35rem !important;
    margin-bottom: 0.65rem !important;
  }
  h3, .article-body h3 {
    font-size: 1.02rem !important;
    line-height: 1.45 !important;
    margin-top: 1.1rem !important;
    margin-bottom: 0.45rem !important;
  }
  p, li, .article-body p, .article-body li {
    font-size: 0.92rem !important;
    line-height: 1.72 !important;
  }
  .article-body, .content, .main-content, article, .card, .rank-card {
    padding: 14px !important;
  }
  .main-wrapper, .container, main {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .hero, .hero-section, .article-header {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  .btn, .btn-primary, .cta-btn, .rank-cta, .hero-cta-btn, .btn-apply,
  button:not(.fixed-cta-close) {
    font-size: 0.84rem !important;
    padding: 0.64rem 0.8rem !important;
    line-height: 1.35 !important;
  }
  table, .compare-scroll-wrap table, .purpose-table-wrap table {
    font-size: 0.78rem !important;
  }
  table th, table td, .purpose-table-wrap th, .purpose-table-wrap td {
    padding: 0.48rem 0.38rem !important;
    line-height: 1.42 !important;
  }
  .fixed-cta {
    padding: 7px 9px !important;
    gap: 6px !important;
  }
  .fixed-cta-btn {
    min-height: 42px !important;
    padding: 8px 5px !important;
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
  }
  input, select, textarea {
    font-size: 16px !important;
  }
}
