/* Mobile spacing and type candidate. Load after existing styles. */
@media screen and (max-width: 767px) {
  body {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
  body :is(button, input, select, textarea) {
    font-family: inherit !important;
  }
  body form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="image"]), select, textarea, button),
  #email-verification-dialog :is(input, select, textarea, button) {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }
  body form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="image"]), select, button) {
    min-height: 44px;
  }
  main p:not([class*="note"]):not([class*="footnote"]):not([class*="price"]):not([class*="amount"]):not([class*="premium"]):not([class*="caption"]):not([class*="sub"]):not([class*="error"]):not([class*="help"]):not(.risk-matrix p):not(.risk-annotations p):not(.plan-compare p):not(.plan-card p):not(.family-card p):not(.golf-plan-summary p):not(table p):not([class*="fee"]):not([class*="cost"]):not([class*="total"]):not([class*="limit"]):not([class*="money"]):not([class*="yen"]):not(:has([class*="price"], [class*="amount"], [class*="premium"], [class*="yen"], [class*="fee"], [class*="total"], [class*="limit"], [class*="cost"])),
  .site-main p:not([class*="note"]):not([class*="footnote"]):not([class*="price"]):not([class*="amount"]):not([class*="premium"]):not([class*="caption"]):not([class*="sub"]):not([class*="error"]):not([class*="help"]):not(.risk-matrix p):not(.risk-annotations p):not(.plan-compare p):not(.plan-card p):not(.family-card p):not(.golf-plan-summary p):not(table p):not([class*="fee"]):not([class*="cost"]):not([class*="total"]):not([class*="limit"]):not([class*="money"]):not([class*="yen"]):not(:has([class*="price"], [class*="amount"], [class*="premium"], [class*="yen"], [class*="fee"], [class*="total"], [class*="limit"], [class*="cost"])) {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
  main h1, .hero h1, .section-heading h1 {
    font-size: clamp(22px, 5.8vw, 24px) !important;
    line-height: 1.35 !important;
    overflow-wrap: break-word;
  }
  body main h2.section-title, body main h2.section-title2, body .section-heading h2 {
    font-size: 20px !important;
    line-height: 1.4 !important;
    margin-block: 0 12px !important;
    overflow-wrap: break-word;
  }
  main h3:not([class]), .block-title, .block-subtitle, .coverage-content h3:not([class]), .negotiation-box h3 {
    font-size: 18px !important;
    line-height: 1.4 !important;
    overflow-wrap: break-word;
  }
  main .mobile-next, main .tmn-mobile-cta, .site-main .mobile-next {
    margin: 16px !important;
    padding: 16px !important;
  }
  main :is(.mobile-next__title, .tmn-mobile-cta__title) {
    margin-block: 0 8px !important;
    line-height: 1.4 !important;
  }
  main :is(.mobile-next__primary, .tmn-mobile-cta__primary),
  main :is(.mobile-next, .tmn-mobile-cta) a {
    min-height: 44px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: break-word;
  }
  /* Fixed menus, floating bars, safe-area insets, price text and notes retain existing rules. */

  main .hero { width: calc(100% - 32px) !important; margin: 16px 16px 24px !important; }
  main .hero-inner { padding: 16px !important; }
  main .hero-title { margin-bottom: 8px !important; }
  main .hero-lead { margin-block: 8px 12px !important; }
  main .hero-actions { margin-top: 12px !important; gap: 8px !important; }
  main .section { padding-block: 12px !important; }
  main .section--disclaimer { padding-block: 8px !important; }
  main .section > .container { padding-inline: 16px !important; }
  main :is(.content-card, .example-card, .notice-card) { padding: 12px 16px !important; }
  main .block { margin-bottom: 16px !important; }
  main :is(.content-grid, .example-grid) { gap: 12px !important; }
  main :is(.block-title, .block-subtitle) { margin-bottom: 8px !important; }
  main .news-list:has(.news-list__item, .news-list__empty) { min-height: 0 !important; }

  main .page-title { font-size: clamp(22px,5.8vw,24px) !important; line-height: 1.35 !important; margin-bottom: 12px !important; }
  main .flow-steps { margin-top: 0 !important; gap: 12px !important; }
  main :is(.comparison-card__header, .comparison-card__body) { padding: 12px 16px !important; }

  /* Ordinary QA/form headings; preserve coverage, table and financial roles. */
  main h2:not([class]):not(.coverage-summary h2):not(.plan-card h2):not(.risk-matrix h2):not(.golf-plan-summary h2):not(.family-card h2),
  main h2.page-title, main h2.form-title, main h2.faq-title, main h2.wizard-title {
    font-size: 20px !important; line-height: 1.4 !important;
    margin-block: 0 12px !important; overflow-wrap: break-word;
  }
  /* Preview correction: enji-hoken.com */
  body main h1:not(.hero h1) { margin-bottom: 12px !important; }
  /* Final preview rhythm: enji-hoken.com */
  main .hero-copy { gap: 0 !important; }
  main .hero-actions .btn { box-sizing: border-box; min-height: 48px; padding: 12px 8px !important; font-size: 16px !important; line-height: 1.5 !important; white-space: normal; }
  /* Final width/input audit: enji-hoken.com */
  #report-content input:is([type="text"], [type="number"], [type="date"], [type="time"]):not([hidden]),
  #report-content textarea:not([hidden]) { font-size: 16px !important; line-height: 1.5 !important; min-height: 44px !important; }
}
