/* Japanese content typography refinement.
   Scope is intentionally limited to <main>; global nav/header/footer are untouched. */
body.lang-ja main {
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  font-kerning: normal;
  font-feature-settings: "palt" 1;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Editorial hierarchy: less heavy, more breathing room. */
body.lang-ja main :where(h1,h2,h3,h4,h5,h6) {
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif !important;
  font-style: normal;
  font-synthesis: none;
  text-wrap: balance;
}
body.lang-ja main h1 {
  font-weight: 700 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.14 !important;
}
body.lang-ja main h2,
body.lang-ja main .kr-unified-section-title {
  font-weight: 700 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.34 !important;
}
body.lang-ja main h3 {
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.5;
}

/* Body copy should feel calmer than labels and headings. */
body.lang-ja main :where(p,li,dd,dt,blockquote,figcaption) {
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.85;
}
body.lang-ja main strong,
body.lang-ja main b {
  font-weight: 600;
}
body.lang-ja main :where(a,button,input,textarea,select,label) {
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
}

/* Home: keep the hero premium and restrained rather than ultra-black. */
body.lang-ja main .jp-hero-copy h1 {
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", Meiryo, sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.055em !important;
  line-height: 1.12 !important;
}
body.lang-ja main .jp-hero-guide-list strong {
  font-weight: 600 !important;
  letter-spacing: -0.015em;
}
body.lang-ja main .jp-hero-support-link {
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}
body.lang-ja main .jp-problem-card strong {
  font-weight: 600 !important;
  letter-spacing: -0.02em;
  line-height: 1.55;
}
body.lang-ja main .jp-problem-card p {
  line-height: 1.82;
}

/* Cards and feature copy: avoid the 'everything bold' look. */
body.lang-ja main :where(.feature-card,.beauty-card,.use-grid article,.core-tech-note,.jp-support-card) h3,
body.lang-ja main :where(.support-card,.doctor-card,.check-card) h3 {
  font-weight: 600 !important;
}
body.lang-ja main :where(.feature-card,.beauty-card,.use-grid article,.core-tech-note,.jp-support-card) p,
body.lang-ja main :where(.support-card,.doctor-card,.check-card) p {
  line-height: 1.82;
}

/* Pricing: Japanese labels remain calm; numbers retain a crisp Latin face. */
body.lang-ja main .pricing :where(h2,h3,strong),
body.lang-ja main .pcv256-card :where(strong,b) {
  font-weight: 600;
}
body.lang-ja main :where(.pcv256-price,.pcv256-unit,.pcv256-tab,.core-tech-stack-label,.core-tech-tags span,.jp-problem-number) {
  font-family: Inter, "Noto Sans JP", sans-serif !important;
}
body.lang-ja main .pcv256-price {
  font-weight: 700 !important;
  letter-spacing: -0.045em;
}

/* Forms and utility pages. */
body.lang-ja main :where(.field-label,.form-label,label) {
  font-weight: 500;
  letter-spacing: 0;
}
body.lang-ja main :where(input,textarea,select) {
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.6;
}

/* Compact screens: prevent tight Japanese display type. */
@media (max-width: 720px) {
  body.lang-ja main h1 {
    letter-spacing: -0.04em !important;
    line-height: 1.18 !important;
  }
  body.lang-ja main h2,
  body.lang-ja main .kr-unified-section-title {
    letter-spacing: -0.03em !important;
    line-height: 1.4 !important;
  }
  body.lang-ja main :where(p,li,dd,dt) {
    line-height: 1.82;
  }
}
