/* Fulmor typography unification v50
 * Final, intentionally last-loaded typography layer.
 * The visual target is the light, open rhythm of DengXian Regular while
 * retaining native, readable Japanese glyphs and reliable local fallbacks.
 */

:root {
  --fulmor-font-sans-unified: "DengXian", "等线", "Avenir Next", "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --fulmor-font-ja-native: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans CJK JP", system-ui, sans-serif;
  --fulmor-font-zh-native: "DengXian", "等线", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --fulmor-font-sans: var(--fulmor-font-sans-unified);
  --fulmor-font-ja: var(--fulmor-font-ja-native);
  --fulmor-font-zh: var(--fulmor-font-zh-native);
  --fulmor-font-mono: var(--fulmor-font-sans);

  --fulmor-weight-regular: 400;
  --fulmor-weight-medium: 500;
  --fulmor-weight-semibold: 600;
  --fulmor-tracking-display: -.025em;
  --fulmor-tracking-heading: -.015em;
  --fulmor-tracking-ui: .05em;
  --fulmor-tracking-label: .07em;

  --font-body--family: var(--fulmor-font-sans);
  --font-subheading--family: var(--fulmor-font-sans);
  --font-heading--family: var(--fulmor-font-sans);
  --font-accent--family: var(--fulmor-font-sans);
  --font-paragraph--family: var(--fulmor-font-sans);
  --font-body--weight: 400;
  --font-subheading--weight: 500;
  --font-heading--weight: 400;
  --font-accent--weight: 500;
  --font-paragraph--weight: 400;
  --font-h1--weight: 400;
  --font-h2--weight: 400;
  --font-h3--weight: 500;
  --font-h4--weight: 500;
  --font-h5--weight: 500;
  --font-h6--weight: 500;
}

html {
  font-family: var(--fulmor-font-sans);
  font-synthesis: none;
}

body,
button,
input,
select,
textarea,
.skip-link {
  font-family: var(--fulmor-font-sans) !important;
  font-synthesis: none;
}

html[lang^="ja"] body,
html[lang^="ja"] :is(button, input, select, textarea, .skip-link) {
  font-family: var(--fulmor-font-ja) !important;
}

html[lang^="zh"] body,
html[lang^="zh"] :is(button, input, select, textarea, .skip-link) {
  font-family: var(--fulmor-font-zh) !important;
}

.skip-link {
  font-weight: 500 !important;
  letter-spacing: .05em !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) {
  --fulmor-font-sans: var(--fulmor-font-sans-unified);
  --order-font-sans: var(--fulmor-font-sans);
  --order-font-ja: var(--fulmor-font-ja);
  --order-font-mono: var(--fulmor-font-sans);
  --v21-sans: var(--fulmor-font-sans);
  --v21-ja: var(--fulmor-font-ja);
  --v21-mono: var(--fulmor-font-sans);
  font-family: var(--fulmor-font-sans) !important;
  font-synthesis: none;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :where(
  h1, h2, h3, h4, h5, h6,
  p, a, button, input, select, textarea,
  label, legend, summary,
  li, dt, dd, small, strong, b, em, span
):not(code, pre, kbd, samp) {
  font-family: inherit !important;
  font-synthesis: none;
}

/* Regular-first hierarchy: display and body remain light; interface text is
 * only one step heavier so the page stays calm and consistent. */
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(h1, h2) {
  font-weight: 400 !important;
  letter-spacing: -.025em !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(h3, h4, h5, h6) {
  font-weight: 500 !important;
  letter-spacing: -.015em !important;
}

/* Earlier page layers use highly specific important tracking declarations.
 * Repeat each page root here so the final system genuinely wins everywhere,
 * including the home hero and individual Research article view. */
html body :is(
  .home-page.home-page.home-page.home-page,
  .order-conversion-page.product-order-page.order-conversion-page.product-order-page,
  .fulmor-reference-page.fulmor-reference-page.fulmor-reference-page.fulmor-reference-page,
  .fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2
) :is(h1, h2) {
  font-weight: 400 !important;
  letter-spacing: -.025em !important;
}

html body :is(
  .home-page.home-page.home-page.home-page,
  .order-conversion-page.product-order-page.order-conversion-page.product-order-page,
  .fulmor-reference-page.fulmor-reference-page.fulmor-reference-page.fulmor-reference-page,
  .fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2
) :is(h3, h4, h5, h6) {
  font-weight: 500 !important;
  letter-spacing: -.015em !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(p, li, dt, dd) {
  font-weight: 400 !important;
  letter-spacing: normal !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(strong, b) {
  font-weight: 500 !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(
  nav a,
  button,
  .button,
  [class*="button"],
  [class*="submit"],
  [class*="-cta"],
  [class*="__order"],
  .header-cta,
  .language-link,
  .order-language-link,
  .frp-language a,
  summary
) {
  font-weight: 500 !important;
  letter-spacing: .05em !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(
  [class*="eyebrow"],
  [class*="kicker"],
  [class*="micro-label"],
  [class*="section-number"],
  [class*="-index"],
  [class*="__type"]
) {
  font-weight: 400 !important;
  letter-spacing: .07em !important;
}

:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(
  .price,
  [class*="price"],
  [class*="metric"],
  [class*="counter"],
  [class*="stat"]
) strong {
  font-weight: 600 !important;
}

/* All first-level subpage titles share one editorial scale. */
.order-conversion-page.product-order-page .checkout-panel h1,
.fulmor-reference-page .frp-hero h1,
.fulmor-subpage-v2 .fulmor-subhero h1 {
  font-size: clamp(2.75rem, 4.2vw, 3.75rem) !important;
  line-height: 1.06 !important;
}

/* Correct two readability outliers found in the responsive audit. */
.home-page.home-v20 .hero.hero-fullbleed .certification-copy small {
  font-size: 12px !important;
  font-weight: 400 !important;
  letter-spacing: .025em !important;
  line-height: 1.35 !important;
  hyphens: none;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.fulmor-reference-page .frp-article-grid p {
  font-size: 14px !important;
  line-height: 1.65 !important;
}

/* Japanese uses its native sans family and natural spacing; English negative
 * tracking would make kana and kanji feel crowded. */
html[lang^="ja"] :is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2)[lang^="ja"],
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2).locale-ja {
  --fulmor-font-ja: var(--fulmor-font-ja-native);
  --order-font-sans: var(--fulmor-font-ja);
  --order-font-ja: var(--fulmor-font-ja);
  --order-font-mono: var(--fulmor-font-ja);
  --v21-sans: var(--fulmor-font-ja);
  --v21-ja: var(--fulmor-font-ja);
  --v21-mono: var(--fulmor-font-ja);
  font-family: var(--fulmor-font-ja) !important;
  line-break: strict;
}

html[lang^="ja"] :is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(h1, h2, h3, h4, h5, h6),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2)[lang^="ja"] :is(h1, h2, h3, h4, h5, h6),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2).locale-ja :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 400 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}

html[lang^="ja"] body :is(
  .home-page.home-page.home-page.home-page,
  .order-conversion-page.product-order-page.order-conversion-page.product-order-page,
  .fulmor-reference-page.fulmor-reference-page.fulmor-reference-page.fulmor-reference-page,
  .fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2.fulmor-subpage-v2
) :is(h1, h2, h3, h4, h5, h6) {
  font-weight: 400 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}

html[lang^="ja"] :is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(p, li, dt, dd, small, em),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2)[lang^="ja"] :is(p, li, dt, dd, small, em),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2).locale-ja :is(p, li, dt, dd, small, em) {
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html[lang^="ja"] :is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is(nav a, button, .button, [class*="button"], [class*="submit"], [class*="-cta"], [class*="__order"], summary),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2)[lang^="ja"] :is(nav a, button, .button, [class*="button"], [class*="submit"], [class*="-cta"], [class*="__order"], summary),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2).locale-ja :is(nav a, button, .button, [class*="button"], [class*="submit"], [class*="-cta"], [class*="__order"], summary) {
  font-weight: 500 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
}

html[lang^="ja"] :is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2) :is([class*="eyebrow"], [class*="kicker"], [class*="micro-label"], [class*="section-number"], [class*="-index"], [class*="__type"]),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2)[lang^="ja"] :is([class*="eyebrow"], [class*="kicker"], [class*="micro-label"], [class*="section-number"], [class*="-index"], [class*="__type"]),
:is(.home-page, .order-conversion-page.product-order-page, .fulmor-reference-page, .fulmor-subpage-v2).locale-ja :is([class*="eyebrow"], [class*="kicker"], [class*="micro-label"], [class*="section-number"], [class*="-index"], [class*="__type"]) {
  font-weight: 400 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
}

@media (max-width: 749px) {
  html body .home-page.home-page.home-page.home-page .hero .hero-copy h1 {
    max-width: 100% !important;
  }

  .order-conversion-page.product-order-page .checkout-panel h1,
  .fulmor-reference-page .frp-hero h1,
  .fulmor-subpage-v2 .fulmor-subhero h1 {
    font-size: clamp(2.25rem, 10vw, 2.5rem) !important;
  }

  .home-page.home-v20 .hero.hero-fullbleed .hero-cert-review li {
    min-height: 92px;
  }

  .home-page.home-v20 .hero.hero-fullbleed .certification-copy small {
    font-size: 9px !important;
    line-height: 1.3 !important;
  }
}
