/* Refined institutional typography: calm, editorial, and legible. */
:root {
  --font-sans-cn: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  --font-serif-cn: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --type-ink: #292929;
  --type-body: #4a4a4a;
  --type-muted: #737373;
}

html {
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-sans-cn);
  font-optical-sizing: auto;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  color: var(--type-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.76;
}

.identity img {
  width: 132px;
  height: 77px;
}

.identity strong {
  color: #171717;
  font-family: var(--font-serif-cn);
  font-size: clamp(31px, 2vw, 38px);
  font-weight: 650;
  line-height: 1.16;
  letter-spacing: .085em;
}

.identity small {
  margin-top: 9px;
  color: #3f3f3f;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .025em;
}

.identity em {
  margin-top: 4px;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: .14em;
}

.site-search input,
.site-search button {
  font-size: 15px;
}

.site-search input {
  color: #333;
  font-weight: 400;
  letter-spacing: .01em;
}

.site-search button {
  font-weight: 650;
  letter-spacing: .12em;
}

.desktop-nav a,
.desktop-nav .nav-standalone {
  font-size: 17px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .055em;
}

.mobile-nav summary,
.mobile-nav a {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .035em;
}

.side-title,
.official-side-nav > strong,
.member-toc > strong {
  font-family: var(--font-serif-cn);
  font-size: 22px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .07em;
}

.topic-title {
  font-size: 19px;
}

.sidebar nav a,
.official-side-nav nav a,
.member-toc a {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .015em;
}

.sidebar li a {
  font-size: 14px;
  line-height: 1.7;
}

.breadcrumb,
.reference-breadcrumb {
  color: #626262;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .01em;
}

.breadcrumb strong,
.reference-breadcrumb strong {
  color: #333;
  font-weight: 500;
}

.news-title {
  color: #393939;
  font-size: 18px;
  font-weight: 430;
  line-height: 1.55;
  letter-spacing: .012em;
}

.news-title b {
  margin-right: 16px;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .06em;
}

.news-list time {
  color: #777;
  font-size: 13px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  letter-spacing: .015em;
}

.section-copy h2,
.section-heading h2,
.reference-section-intro h1,
.membership-hero h1,
.article-heading h2,
.article-section > h2 {
  color: var(--type-ink);
  font-family: var(--font-serif-cn);
  font-weight: 650;
  letter-spacing: .045em;
}

.section-copy h2,
.section-heading h2 {
  font-size: 31px;
  line-height: 1.35;
}

.reference-section-intro h1 {
  font-size: 31px;
  line-height: 1.38;
}

.reference-section-intro > div > p,
.article-lead,
.article-section p,
.member-section p {
  color: #555;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: .008em;
}

.official-eyebrow,
.section-copy > span,
.section-heading span {
  font-size: 11px;
  font-weight: 650;
  line-height: 1.4;
  letter-spacing: .18em;
}

.reference-section-intro > aside span,
.reference-section-intro > aside p,
.official-contact-card span,
.official-contact-card p {
  font-size: 12px;
  line-height: 1.7;
}

.reference-section-intro > aside strong,
.official-contact-card strong {
  font-size: 16px;
  font-weight: 650;
  line-height: 1.55;
}

.service-grid h3,
.direction-grid h3,
.topic-matrix h3,
.service-directory h3 {
  font-family: var(--font-serif-cn);
  font-weight: 650;
  letter-spacing: .035em;
}

.footer-grid strong {
  font-family: var(--font-serif-cn);
  font-size: 19px;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: .055em;
}

.footer-grid span {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .04em;
}

.footer-grid p {
  font-size: 12px;
  line-height: 1.7;
}

@media (max-width: 1080px) {
  .identity img {
    width: 112px;
    height: 65px;
  }

  .identity strong {
    font-size: 28px;
    letter-spacing: .055em;
  }

  .desktop-nav a,
  .desktop-nav .nav-standalone {
    font-size: 16px;
  }
}

@media (max-width: 760px) {
  body {
    font-size: 15px;
  }

  .identity img {
    width: 82px;
    height: 48px;
  }

  .identity strong {
    font-size: 22px;
    letter-spacing: .04em;
  }

  .news-title {
    font-size: 16px;
    line-height: 1.65;
  }

  .reference-section-intro h1 {
    font-size: 27px;
  }
}

@media (max-width: 480px) {
  .identity img {
    width: 68px;
    height: 40px;
  }

  .identity strong {
    font-size: 16px;
    line-height: 1.28;
    letter-spacing: .025em;
  }

  .identity em {
    font-size: 9px;
    letter-spacing: .075em;
  }

  .site-search input,
  .site-search button {
    font-size: 14px;
  }
}