/* 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(.nk-card__insurer):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(.nk-card__insurer):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. */

  /* This site's brand hero has its own type scale. Keep header clearance. */
  main .hero h1.hero__title { font-size: clamp(28px, 7.6vw, 30px) !important; line-height: 1.3 !important; margin-bottom: 16px !important; }
  main .hero { min-height: 0 !important; padding-top: var(--header-height) !important; }
  main .hero__inner { padding: 24px 16px !important; }
  main .hero__badge { margin-bottom: 16px !important; }
  main .hero__subtitle { margin-bottom: 16px !important; font-size: 16px !important; line-height: 1.6 !important; }
  main .hero__actions { gap: 8px !important; }
  main .hero__actions a { min-height: 44px; padding-block: 12px !important; line-height: 1.5; white-space: normal; }
  main .section, main .section.section--gray { padding-block: 12px !important; }
  main .container, main .content__inner { padding-inline: 16px !important; }
  main .section__header { margin-bottom: 16px !important; }
  main :is(.section__title, .content__subtitle),
  main .content h2:not([class*="price"]):not([class*="premium"]):not([class*="amount"]) {
    font-size: 20px !important; line-height: 1.4 !important;
    margin-block: 16px 12px !important; padding-bottom: 8px !important;
  }
  main .content h3:not([class*="price"]):not([class*="premium"]):not([class*="amount"]),
  main :is(.card__title, .risk-card__title, .contact-section__info h3) {
    font-size: 18px !important; line-height: 1.4 !important; margin-block: 12px 8px !important;
  }
  main .card:not(.card--video), main :is(.about-card, .contact-section, .risk-card) { padding: 16px !important; }
  main .card__body { padding: 16px !important; }
  main .risk-card__body > div { padding: 12px !important; }
  main .card__icon { margin-bottom: 12px !important; }
  main .card__link { margin-top: 12px !important; }
  main .contact-section--spaced { margin-top: 16px !important; }
  main .about-card__content p { margin-bottom: 12px !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: hokenkikaku.co.jp */
  main .feature-item { padding: 12px 16px !important; }
  main .card.card--video { padding: 0 !important; }
  main .card.card--video .card__body { padding: 16px !important; }
  main .hero__inner { z-index: 5 !important; }
  main .hero::after { height: 64px !important; pointer-events: none; }
  /* Inline cyber OTP width correction */
  main .cyber-form-block .otp-ui.otp-inline { box-sizing: border-box; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  main .cyber-form-block .otp-inline .otp-inner { padding: 16px !important; min-width: 0; }
  main .cyber-form-block .otp-inline .otp-actions { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; min-width: 0; }
  main .cyber-form-block .otp-inline .otp-primary { box-sizing: border-box; max-width: 100%; min-width: 0; white-space: normal !important; }
  /* Measured internal rectangle correction */
  main a.btn--primary.btn--lg { box-sizing: border-box; max-width: 100% !important; min-width: 0 !important; white-space: normal !important; padding-inline: 16px !important; }
  main .nk-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)) !important; min-width: 0; }
  main .pamphlet-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; min-width: 0; }
  main :is(.nk-card, .pamphlet-card) { min-width: 0; max-width: 100%; box-sizing: border-box; }
  main .nk-card { padding: 16px !important; }
  main .nk-card .nk-card__insurer { margin: 0 0 8px !important; font-size: 14px !important; }
  body main .nk-card h2.nk-card__name { margin: 0 0 8px !important; padding-bottom: 8px !important; }
  main .nk-card .nk-card__desc { margin-bottom: 12px !important; }
  /* Cyber progress min-content width correction */
  main #cyberProgress { box-sizing: border-box; width: 100% !important; max-width: 100% !important; min-width: 0 !important; grid-template-columns: minmax(0, 1fr); }
  main #cyberProgress :is(.cyber-progress__header, .cyber-progress__bar, .cyber-progress__sections, .cyber-progress__remaining) { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
  main #cyberProgress .cyber-progress__header { flex-wrap: wrap; grid-template-columns: minmax(0, 1fr); }
  main #cyberProgress .cyber-progress__sections { grid-template-columns: minmax(0, 1fr) !important; }
  main #cyberProgress .cyber-progress__section { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; padding-inline: 12px !important; white-space: normal !important; }
  main #cyberProgress .cyber-progress__section-title { min-width: 0; white-space: normal !important; overflow: visible; text-overflow: clip; }
}
