html {
      font-size: 16px;
    }
    body {
      font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo', 'Yu Gothic', sans-serif;
      font-size: 1rem;
      background-color: #FAF8F5;
      color: #222222;
      line-height: 1.85;
      letter-spacing: 0.03em;
      -webkit-font-smoothing: antialiased;
    }
    @media (min-width: 640px) {
      body {
        font-size: 1.0625rem; /* 17px: 競合ポータル・50〜70代向け推奨本文サイズ */
      }
    }
    .font-serif-jp {
      font-family: 'Noto Serif JP', 'YuMincho', 'Hiragino Mincho ProN', serif;
      letter-spacing: 0.04em;
    }
    .techo-stitch {
      background-image: repeating-linear-gradient(to right, #2C4A3E 0, #2C4A3E 8px, transparent 8px, transparent 14px);
      height: 2px;
      opacity: 0.25;
    }
    /* 見出しの単語途中での改行を防ぐ（文節単位で折り返し） */
    .phrase {
      display: inline-block;
    }
    h1, h2, h3 {
      word-break: auto-phrase;
      text-wrap: wrap;
    }
    .smooth-scroll {
      scroll-behavior: smooth;
    }
    [id^="sec-"], [id^="art-h2-"] { scroll-margin-top: 150px; }

    /* v003: preserve the existing palette and layout; improve first-screen readability. */
    #siteHeader nav { display:none; }
    #mobileMenuBtn { display:block; flex-shrink:0; }
    #mobileMenu:not(.hidden) { display:block; }
    #logoBtn { flex-shrink:0; }
    #logoBtn > div:first-child { flex-shrink:0; }
    #logoBtn > div:last-child > span:last-child { white-space:nowrap; }
    #siteNotice > div > div { align-items:flex-start; }
    #siteNotice > div > div > span:first-child { flex-shrink:0; white-space:nowrap; }
    .heroIntro { max-width:40em; }
    .heroMetrics .metricPhrase { display:inline-block; white-space:nowrap; }
    @media(min-width:1200px) {
      #siteHeader nav { display:flex; }
      #mobileMenuBtn, #mobileMenu:not(.hidden) { display:none; }
    }
    @media(max-width:639px) {
      #siteNotice { font-size:11px; line-height:1.65; padding:6px 16px; }
      #siteHeader > div:first-child { padding-top:10px; padding-bottom:10px; }
      #heroGrid { padding-top:16px; padding-bottom:24px; gap:24px; }
      #heroCopy > * + * { margin-top:12px; }
      #heroCopy > div:first-child { font-size:12px; line-height:1.7; }
      #heroCopy h1 { font-size:24px; line-height:1.55; }
      .heroIntro { font-size:16px; line-height:1.8; }
      #heroActions { gap:10px; padding-top:0; }
      #heroActions button { min-height:48px; padding:12px 10px; font-size:15px; }
      .heroMetrics { gap:8px; }
      .heroMetrics > div > div:first-child { font-size:12px; }
      .heroMetrics > div > div:last-child { font-size:14px; }
    }
    @media(max-width:359px) {
      #logoBtn { gap:8px; }
      #logoBtn > div:first-child { width:32px; height:32px; }
      #logoBtn > div:last-child > span:first-child { font-size:10px; }
      #logoBtn > div:last-child > span:last-child { font-size:22px; }
      #heroCopy h1 { font-size:22px; }
      #heroActions button { font-size:14px; }
    }
