/* サイト共通の上書き CSS（2026-11-06 UI分析 C で6本を1本にまとめた。各ページは common.css とページ用 CSS のあとに読む）。
   元のファイル名ごとに節を分け、元の <link media> の条件は @media で包んで残している。順番を変えないこと（後の節が前を上書きする）。 */

/* ===== mobile-ux-20260906.css ===== */
/* Mobile usability, 2026-09-06. Layout only: no form or analytics behavior. */
@media (max-width: 767px) {
  html:has(.site-header__logo-text) { overflow-x: clip; }
  .menu-toggle, .hamburger-btn, .drawer-close, .site-nav__toggle {
    min-width: 44px;
    min-height: 44px;
    touch-action: manipulation;
  }
  .drawer { max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain; }
  .drawer a, .site-nav__menu a {
    min-height: 44px; box-sizing: border-box;
    display: flex; align-items: center;
  }
  footer .footer-links a, footer .footer-nav a, footer .footer-bottom a,
  .site-footer__nav a, .site-footer__group a, .site-footer__policies a {
    display: inline-flex; align-items: center; min-height: 44px;
    padding-block: 6px; box-sizing: border-box;
  }
  a.btn-primary, a.line-btn, a.contact-form-btn, a.faq-more-link {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; box-sizing: border-box;
  }
  main form input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),
  main form select, main form textarea {
    font-size: max(16px, 1rem) !important; min-height: 44px !important; max-width: 100%; box-sizing: border-box;
  }
  main form button, main form input[type=submit] { min-height: 44px; }
  .liability-toggle { min-height: 44px; box-sizing: border-box; }
  main a[href] { overflow-wrap: anywhere; }
  /* Long policy sections may never reach a proportional reveal threshold. */
  main .fade-in { opacity: 1 !important; transform: none !important; }
  main form fieldset { min-inline-size: 0; }
  main form .build-grid {
    display: grid; grid-template-columns: minmax(64px,1.2fr) minmax(48px,1fr) auto minmax(48px,1fr) auto;
    gap: 6px; align-items: center;
  }
  main form .build-grid select { min-width: 0 !important; width: 100% !important; }
  main form .birth-inline { display: flex; flex-wrap: wrap; gap: 4px; }
  main form .birth-inline select { min-width: 0 !important; flex: 1 1 0; width: auto !important; }
  main form .birth-inline #holderBirthEra { flex: 1 0 100%; width: 100% !important; }
  main form .field-inline--date, main form .field-inline--zip { display: flex; gap: 6px; }
  main form .field-inline--date select, main form .field-inline--zip input {
    min-width: 0; flex: 1 1 0; width: 0;
  }
  main form .field-inline:has(.field-suffix) input { min-width: 0; flex: 1 1 0; width: 0 !important; }
  .site-header { left: 0; right: 0; width: 100%; max-width: 100vw; box-sizing: border-box; }
  .site-header__inner { min-width: 0; max-width: 100%; box-sizing: border-box; gap: 8px; }
  .site-header__logo { min-width: 0; flex: 1 1 auto; }
  .site-header__logo-text { font-size: clamp(14px,4vw,16px); }
  .site-header__logo-text span { font-size: 12px; letter-spacing: .12em; }
  .site-header .header-line-btn { padding-inline: 10px; flex-shrink: 0; }
  .floating-cta:has(.floating-cta__toggle) {
    left: calc(100vw - 96px) !important; right: auto !important; width: 80px;
  }
  /* A duplicate floating menu must not cover fields. The header menu remains. */
  body:has(main form) .floating-cta { display: none; }
  body:has(main form) .line-help {
    position: static !important; display: flex; width: fit-content;
    min-height: 44px; margin: 16px auto; padding: 10px 16px;
    box-sizing: border-box;
  }
  /* Four steps fit without squeezing Japanese labels into vertical columns. */
  .form-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding-inline: 0; }
  .form-steps li { display: flex; flex-direction: column; gap: 6px; align-items: center; justify-content: flex-start; font-size: 14px; white-space: nowrap; min-width: 0; }
  .form-steps .step-connector { display: none; }
  main :is(input,select,textarea,button,[id]) { scroll-margin-top: 96px; }
  :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #1466b8; outline-offset: 3px; }
  /* Keep navigation in a compact bottom row instead of covering paragraphs. */
  body:not(:has(main form)):has(.floating-cta .cta-btn) { padding-bottom: calc(88px + env(safe-area-inset-bottom,0px)); }
  body:not(:has(main form)) .floating-cta:has(.cta-btn) {
    display: flex; flex-direction: row; align-items: center;
    inset: auto 0 0; width: auto; height: auto;
    gap: 8px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom,0px));
    box-sizing: border-box; background: #fff; border-top: 1px solid #d9e0e4;
    box-shadow: 0 -2px 10px #00000012;
  }
  body:not(:has(main form)) .floating-cta .cta-btn {
    flex: 1 1 0; width: auto; min-width: 0; height: 48px;
    min-height: 48px; margin: 0; border-radius: 10px;
    display: flex; align-items: center; justify-content: center; box-shadow: none;
  }
  body:not(:has(main form)):has(.floating-cta .cta-btn) #to-top { bottom: calc(88px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width: 359px) {
  .site-header__logo { min-width: 128px; }
  .site-header .header-line-btn { width: 44px; height: 44px; min-width: 44px; padding: 10px; box-sizing: border-box; }
  .site-header .header-line-btn__text { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
/* Mobile fixes, 2026-09-26 (M-1..M-6). */
.page-toc { margin-block: 1.6rem; padding: 1.2rem 1.6rem; border: 2px solid #cbd7e4; border-radius: 10px; background: #f6f9fc; box-sizing: border-box; }
.page-toc__title { margin: 0 0 .4rem; font-weight: 700; }
.page-toc__list { margin: 0; padding: 0; list-style: none; }
.page-toc__list { display: grid; gap: 4px; }
.page-toc__list a { display: flex; align-items: center; min-height: 44px; padding-block: 6px; box-sizing: border-box; line-height: 1.5; color: #0b5cad; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  /* M-1: drawer wide enough for one-line labels; dim the page behind it. */
  body .drawer { width: min(80vw, 300px); padding-inline: 1.6rem; transform: translateX(calc(100% + 24px)); }
  body .drawer.open { transform: translateX(0); }
  body:has(.drawer.open)::after { content: ""; position: fixed; inset: 0; z-index: 1050; background: rgba(0, 0, 0, .4); }
  body:has(.drawer.open) .floating-cta { display: none !important; }
  /* M-5: one menu button. The header toggle stays; the bottom bar keeps the two CTAs. */
  body:not(:has(main form)) .floating-cta #floating-menu { display: none; }
  /* M-2: the page-top button sits inside the bottom bar instead of over content. */
  body:not(:has(main form)):has(.floating-cta .cta-btn) #to-top { width: 48px; height: 48px; right: 12px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); font-size: 18px; box-shadow: none; }
  body:not(:has(main form)):has(#to-top.show) .floating-cta:has(.cta-btn) { padding-right: 68px; }
  body:has(main form) #to-top { width: 44px; height: 44px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); font-size: 16px; }
  /* M-4: phone numbers are a primary contact route; give them a full tap target. */
  main a[href^="tel:"], .contact a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 4px; box-sizing: border-box; }
  .contact-card .btn-contact { min-height: 44px; box-sizing: border-box; }
  .faq details.faq-item > summary { min-height: 44px; padding-block: 10px; box-sizing: border-box; }
  /* M-6: short footer labels still get a 44px-wide target. */
  footer .footer-links a { min-width: 44px; justify-content: center; padding-inline: 8px; }
  /* 601-767px shows the bottom bar, but the button colors in common.css stop at 600px. */
  body:not(:has(main form)) .floating-cta .fee-btn { background: #004a99; color: #fff; font-weight: 700; text-decoration: none; }
  body:not(:has(main form)) .floating-cta .apply-btn { background: #b91520; color: #fff; font-weight: 700; text-decoration: none; }
}
/* Typography harmonization, 2026-09-27 (F-1..F-6). Loaded after page CSS, so equal-specificity rules win. */
:root {
  --fs-body-std: clamp(1.6rem, 1.45rem + 0.3vw, 1.9rem);   /* same as body: 16px SP / 18.3px PC */
  --fs-h2-std: clamp(2.4rem, 2rem + 1vw, 3.2rem);          /* .section-title: 24px SP / 32px PC */
  --fs-h3-std: clamp(1.8rem, 1.72rem + 0.22vw, 2rem);      /* sub-heading: 18px SP / 20px PC */
  --fs-h3-lead: clamp(2rem, 1.83rem + 0.44vw, 2.4rem);     /* heading between h2 and h3: 20px SP / 24px PC */
}
/* F-1 body copy: policy pages, Q&A answers, payment lead, company table use the site body size. */
#handling p, #handling ul li, #handling address.contact,
#policy p, #hikakusuishou p,
.faq-item .answer,
.salespolicy-lead, .policy-list li,
.howtopay-page .lead,
.profile-table, .profile-table th, .profile-table td { font-size: var(--fs-body-std); }
/* Meta text never below 14px. */
#handling .date, #policy .date { font-size: 14px; }
/* F-2 headings. */
#handling .section-title, #policy .section-title, #hikakusuishou .section-title { font-size: var(--fs-h2-std); }
#handling h3, #hikakusuishou h3, .policy-step-title,
.hosho-page .payout-card > h3, .hosho-page .little-bigger, .privilege-head > h3,
.hoshogai-page h3.subhead, h3.subhead { font-size: var(--fs-h3-std); }
.hosho-page h3.section-title, .hosho-page h4.section-title { font-size: var(--fs-h3-lead); }
body[data-page="failed"] .hero .hero-box h1 { font-size: var(--fs-40); }
.error-content h1 { font-size: var(--fs-h2-std); }
/* F-3 one typeface: form controls inherit the page font instead of the UA default (Arial). */
button, input, select, textarea { font-family: inherit; }
/* F-6 small form labels. */
.drone-form-page .ui-required, .ui-required { font-size: 13px; }
.step-indicator li span, .ui-progress { font-size: max(14px, 1em); }
.product-field > p.note { font-size: max(14px, 1em); }
.policy-step-number { font-size: 13px; }
@media (max-width: 480px) {
  body[data-page="failed"] .hero .hero-box h1 { font-size: var(--fs-25); }
}
@media (max-width: 767px) {
  /* F-4 one gutter on phones. */
  .container, section.container, nav.related-pages { padding-inline: 16px; }
  /* F-5 salespolicy: number sits beside the title, so body text uses the full card width. */
  .salespolicy-flow { padding: 1.6rem; }
  .salespolicy-flow::before { display: none; }
  .policy-step { padding-left: 0; }
  .policy-step-head { display: flex; align-items: flex-start; gap: 1rem; }
  .policy-step-number { position: static; flex: 0 0 auto; margin-top: .2rem; }
}
/* 2026-09-28: follow-ups from the cross-site check. */
/* Headings and card captions: balance line lengths so no line is left with 1-2 characters. */
h1, h2, h3, h4, figcaption, .coverage-cap { text-wrap: balance; }
/* Break Japanese captions at phrase boundaries where supported (Chromium); others keep the balanced wrap. */
figcaption, .coverage-cap, .hosho-page .little-bigger { word-break: auto-phrase; }
/* One heading bar color site-wide. */
#hikakusuishou .section-title { border-left-color: #006a99; }
/* Table sub-labels never below 12px. */
.hokenryou .pricing-table .sub, .hokenryou .pricing-table--mobile .sub { font-size: max(12px, .8em); }
@media (max-width: 767px) {
  /* Form pages have no bottom bar, so the page-top button would float over fields and notes. */
  body:has(main form) #to-top { display: none !important; }
}
/* 2026-10-04 (UI check 2) */
/* Touch screens 768px and wider (tablets, landscape phones): same 44px tap targets as phones. */
@media (min-width: 768px) and (pointer: coarse) {
  footer .footer-links a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
  .faq details.faq-item > summary { min-height: 44px; padding-block: 8px; box-sizing: border-box; }
  .contact a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
  a.line-btn, a.contact-form-btn { min-height: 44px; box-sizing: border-box; }
}
/* At the very end of the page the fixed buttons (page top / LINE) must not cover the last footer line. */
@media (min-width: 768px) and (max-width: 1365px) { .site-footer { padding-bottom: 80px; } }
@media (min-width: 1211px) { body:has(a.form-line-help) .site-footer { padding-bottom: 80px; } }
/* Four related-page cards: 2 x 2 instead of 3 + 1. */
@media (min-width: 768px) { .related-pages ul:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Landscape phones: one working menu button, and a menu panel wide enough for one-line labels.
   The menu button is a round button at the right edge (the logo fills the header); where the round menu button of the
   floating bar is shown (768px and wider), the header button is removed so only one remains.
   Text keeps clear of the right-hand button column. */
@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse) {
  .site-header { position: relative; }
  body .drawer { width: min(320px, 85vw); transform: translateX(calc(100% + 24px)); }
  body .drawer.open { transform: translateX(0); }
  body .menu-toggle {
    position: fixed; top: 110px; right: 10px; transform: none; z-index: 1500;
    display: flex; align-items: center; justify-content: center;
    width: 60px; height: 60px; border-radius: 50%; background: #ecebe8; box-shadow: 0 3px 8px rgba(0, 0, 0, .25);
  }
  body .menu-toggle img { width: 44px; }
  body:has(.drawer.open) .menu-toggle { visibility: hidden; }
  main > :not(.hero), body > :is(section, nav, p, div):not(.floating-cta), .site-footer .container { padding-right: 84px !important; }
  /* The premium table also stays left of the button column: a narrower label column and cell padding keep all five premiums in view (667px included). */
  body.hokenryou .pricing-table-wrap--desktop .pricing-table .head-col { width: clamp(140px, 22vw, 240px); }
  body.hokenryou .pricing-table-wrap--desktop .pricing-table :is(th, td) { padding-inline: 4px; }
}
@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse) and (min-width: 768px) {
  body:has(#floating-menu) .menu-toggle { display: none; }
  /* Dim the page behind the open menu, as on phones (767px and narrower). */
  body:has(.drawer.open)::after { content: ""; position: fixed; inset: 0; z-index: 1050; background: rgba(0, 0, 0, .4); }
}

/* ===== mobile-next-20260906.css ===== */
@media (max-width: 767px) {
/* Smartphone-only navigation. Existing desktop content is retained in the HTML. */
@media (max-width: 767px) {
  .mobile-next[hidden] {
    display: block !important;
    box-sizing: border-box;
    clear: both;
    margin: 24px 10px;
    padding: 24px 16px;
    border: 1px solid #ead5d5;
    border-radius: 16px;
    background: #fff9f7;
    color: #263238;
    text-align: center;
  }
  .mobile-next .mobile-next__title { margin: 0 0 16px; font-size: 20px; font-weight: 700; line-height: 1.5; }
  .mobile-next a.mobile-next__action {
    display: flex; align-items: center; justify-content: center;
    box-sizing: border-box; min-height: 56px; padding: 12px;
    border-radius: 10px; background: #b91520; color: #fff;
    font-size: 17px; font-weight: 700; line-height: 1.5; text-decoration: none;
  }
  .mobile-next--consult a.mobile-next__action { background: #006a4a; }
  .mobile-next .mobile-next__note { margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: #4b555c; }
  .mobile-next a.mobile-next__secondary {
    display: inline-flex; align-items: center; box-sizing: border-box;
    min-height: 44px; margin-top: 8px; padding: 4px 8px;
    color: #07588b; font-size: 15px; line-height: 1.5;
    text-decoration: underline; text-underline-offset: 3px;
  }
  .mobile-next-desktop { display: none; }
  .mobile-next-copy[hidden] { display: inline !important; }
  .mobile-next-note[hidden] {
    display: block !important; margin: 12px 16px; color: #4b555c;
    font-size: 14px; line-height: 1.7; text-align: center;
  }
  .floating-cta:has(.mobile-next-copy) { position: fixed; z-index: 1500; }
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .menu-btn,
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .cta-btn--menu { flex: 0 0 48px; }
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .fee-btn { flex: 1 1 0; font-size: 14px; }
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .apply-btn {
    flex: 2.2 1 0; font-size: 16px; white-space: nowrap; background: #b91520; color: #fff;
  }
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .cta-btn--form { flex: 1.3 1 0; }
  body:not(:has(main form)) .floating-cta:has(.mobile-next-copy) .cta-btn--line { flex: 1 1 0; }
  .floating-cta .cta-btn--form:has(.mobile-next-copy),
  .floating-cta .cta-btn--line:has(.mobile-next-copy) { font-size: 14px; font-weight: 700; white-space: nowrap; }
  .floating-cta .cta-btn--form:has(.mobile-next-copy) > svg,
  .floating-cta .cta-btn--line:has(.mobile-next-copy) > svg { display: none; }
  a.btn-primary:has(.mobile-next-copy) { max-width: 100%; font-size: 17px; line-height: 1.5; padding: 8px 12px; }
  .cta-apply-text:has(.mobile-next-copy) { font-size: 17px; line-height: 1.5; }
  .request-banner-link:has(.mobile-next-copy) { font-size: 20px; line-height: 1.5; }
  .mobile-next a:focus-visible, a:has(> .mobile-next-copy):focus-visible { outline: 3px solid #1466b8; outline-offset: 3px; }
}
}

/* ===== mobile-wrap-20261002.css ===== */
.wrap-unit,
.wrap-phrase { display: inline-block; white-space: nowrap; text-indent: 0; }
@media (max-width: 767px) {
  .wrap-heading { text-wrap: balance; }
  #sendBtn { text-wrap: balance; }
}
@media (max-width: 767px) {
  #addProductsToggle { text-wrap: balance; }
}
@media (max-width: 767px) {
  #addProductsToggle .wrap-caption { min-width: 0; text-wrap: balance; }
}

/* ===== mobile-rhythm-20261003.css ===== */
@media screen and (max-width: 767px) {
/* Mobile spacing and type candidate. Load after existing styles. */
@media screen and (max-width: 767px) {
  body {
    font-size: 16px;
    line-height: 1.6;
  }
  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(.section-label):not(.small):not(.date):not(.ui-progress):not(.contact-head):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(.section-label):not(.small):not(.date):not(.ui-progress):not(.contact-head):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,
  body :is(.faq, .contact) h2.section-title {
    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 :is(.coverage, .about, .faq, .news-section, .contact), section:is(.faq, .contact) { margin-block: 0 !important; padding-block: 12px !important; }
  main :is(.coverage, .about, .faq, .news-section, .contact) > .container, section:is(.faq, .contact) > .container { padding-inline: 16px !important; }
  main .coverage-grid { gap: 12px; }
  main .coverage-card { min-height: 0; padding: 12px; gap: 8px; }
  main .coverage-cap { min-height: 0; font-size: 18px; line-height: 1.4; margin-top: 8px; }
  main .coverage-card img { max-width: 100%; height: auto; }
  :where(main, .faq) details.faq-item { padding: 0; }
  :where(main, .faq) details.faq-item > summary { box-sizing: border-box; padding: 12px 0 !important; min-height: 44px; font-size: 16px; line-height: 1.6; word-break: auto-phrase; text-wrap: pretty; }
  :where(main, .faq) details.faq-item .answer { padding: 0 16px 12px; }

  main .news-list:has(.news-list__item, .news-list__empty) { min-height: 0 !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, nav.related-pages > h2 {
    font-size: 20px; line-height: 1.4;
    margin-block: 0 12px; overflow-wrap: break-word;
  }
  /* Final preview rhythm: tmn-drone.com */
  .faq-list > .faq-item { margin-block: 0; }
  /* 2026-10-04 fixes (UI check 2) */
  /* Coverage pages: the section banner stays above h2 (20px); h3/h4 sit between h2 and body text. */
  p.section-label { font-size: 22px !important; line-height: 1.35 !important; word-break: auto-phrase; text-wrap: balance; }
  :is(.hosho-page, .page-hoshogai) :is(h3, h4).section-title { font-size: 18px; line-height: 1.4; }
  /* Body text in Q&A / contact blocks placed after </main> matches the same blocks inside <main>. */
  :is(section.faq, section.contact) p:not(.small):not(.contact-head):not([class*="note"]) { font-size: 16px; line-height: 1.6; }
  /* Card titles keep their emphasis; notes stay smaller than body text. */
  :is(.contact, .contact-card) p.contact-head { font-size: 18px; line-height: 1.4; }
  body p:is(.small, .date, .ui-progress) { font-size: 14px; line-height: 1.6 !important; }
  /* A heading that follows content keeps a visible gap above it. */
  main :is(p:not(.date), ul, ol, dl, div, table) + h2.section-title { margin-top: 24px !important; }
  /* Primary submit buttons keep their emphasis. */
  body form :is(#sendBtn, button.btn-submit) { font-size: 18px !important; }
}

/* Measured phone prose width correction (2026-10-06). */
@media screen and (max-width: 767px) {
  main .result-card { padding-inline: 16px; }
}
}

/* ===== anchor-offset-20261004.min.css ===== */
@media screen and (min-width: 768px), (orientation: landscape) and (max-height: 500px) and (pointer: coarse) {
@media screen and (min-width: 768px) {
  /* In-page links: keep headings below the sticky part of the header. Since 2026-10-09 (S1) only the 2-row nav band stays on screen on PC (logo scrolls away). JS sets --fixed-header after load. */
  html { scroll-padding-top: var(--fixed-header, 136px); }
  main[id], main [id], body > section[id] { scroll-margin-top: 16px !important; }
}
@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse) {
  html { scroll-padding-top: 0 !important; }
}
}

/* ===== text-measure-20261009.css ===== */
@media screen and (min-width: 768px) {
/* PCの概要は見出し・表と同じ幅に。法務文書は既存の中央のコンテナーを使う（2026-10-09）。 */
@media screen and (min-width: 768px) {
main p[style*="text-align:center"],
main p[style*="text-align: center"],
main p[style*="text-align:right"],
main p[style*="text-align: right"],
main .note--lead,
main .faq-more,
main #hikakusuishou p:last-of-type,
main .meta-right,
main .etc,
main .section-label,
main[style*="text-align:center"] p,
main[style*="text-align: center"] p,
main [style*="text-align:center"] p,
main [style*="text-align: center"] p,
main .error-content p {
  max-width: none;
}
}
}
