/* Consistent Japanese and Latin typography for CX Kenkyujo. */
:root {
  --cxv-font: "CX Roboto", "CX Noto Sans JP", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
  --cxv-display: var(--cxv-font);
  --f-sans: var(--cxv-font);
  --f-serif: var(--cxv-font);
}
body { font-family: var(--cxv-font); font-weight: 400; font-kerning: normal; }
button, input, textarea, select { font-family: var(--cxv-font); }
.cx-column-article, .cx-column-article .cost-chart, .cx-column-article .pareto-chart,
.essay-single, .essay-archive { font-family: var(--cxv-font); }
.cxv-header .site-logo { font-family: var(--cxv-font); font-size: 24px; font-weight: 600; letter-spacing: .025em; line-height: 1.5; }
.cxv-header .gnav a, .cxv-header .cxv-secondary-nav a { font-size: 14px; font-weight: 500; letter-spacing: 0; line-height: 1.7; }
.cxv-header .gnav { gap: 26px; }
.cxv-header .header-nav { gap: 22px; }
.breadcrumb { font-family: var(--cxv-font); font-size: 12px; line-height: 1.8; color: var(--cxv-muted); }
.breadcrumb a, .breadcrumb span { color: var(--cxv-muted); }
.breadcrumb a:hover { color: var(--cxv-blue); }

.cxv-home .cxv-hero-copy h1 { font-size: clamp(40px,4vw,56px); font-weight: 600; letter-spacing: .015em; line-height: 1.55; }
.cxv-home .cxv-hero-copy .cxv-eyebrow { font-size: 13px; font-weight: 500; letter-spacing: .075em; line-height: 1.8; }
.cxv-hero-copy .cxv-hero-lead { font-size: 16px; font-weight: 400; line-height: 1.95; letter-spacing: .015em; margin-top: 22px; }
.cxv-home .cxv-button { font-weight: 500; letter-spacing: .015em; font-size: 14px; }
.cxv-home .cxv-text-link { font-weight: 500; font-size: 14px; line-height: 1.8; }
.cxv-home .cxv-eyebrow { font-size: 12px; font-weight: 500; letter-spacing: .06em; line-height: 1.8; }
.cxv-home .cxv-section-heading h2 { font-size: 32px; font-weight: 600; line-height: 1.6; letter-spacing: .015em; text-wrap: balance; }
.cxv-section-heading > p { font-size: 15px; line-height: 1.9; letter-spacing: .01em; }
.cxv-topic-label { font-size: 12px; font-weight: 500; line-height: 1.8; letter-spacing: .015em; }
.cxv-home .cxv-topic-card h3 { font-size: 20px; font-weight: 500; letter-spacing: 0; line-height: 1.75; }
.cxv-topic-card p { font-size: 14px; font-weight: 400; line-height: 1.9; }
.cxv-topic-card::before { font-family: "CX Roboto", var(--cxv-font); font-weight: 400; font-variant-numeric: tabular-nums; }
.cxv-topic-card::before { font-size: 18px; letter-spacing: .02em; }
.cxv-card-action { font-size: 13px; font-weight: 500; line-height: 1.8; }
.cxv-article-meta { font-size: 12px; font-weight: 400; line-height: 1.8; }
.cxv-article-meta > span { font-weight: 500; }
.cxv-latest-card:first-child h3 { font-size: 25px; font-weight: 500; line-height: 1.7; letter-spacing: 0; }
.cxv-latest-card:not(:first-child) h3 { font-size: 19px; font-weight: 500; line-height: 1.75; letter-spacing: 0; }
.cxv-latest-card .cxv-latest-body > p { font-size: 14px; font-weight: 400; line-height: 1.9; }
.cxv-home .cxv-resource-card h3 { font-size: 21px; font-weight: 500; line-height: 1.7; letter-spacing: 0; }

/* Article text stays spacious; hierarchy comes from scale and medium weights. */
.cxv-article-layout .article-title { font-size: clamp(28px,3vw,38px); font-weight: 600; line-height: 1.6; letter-spacing: .01em; text-wrap: balance; }
.cxv-article-layout .article-meta { font-size: 13px; font-weight: 400; line-height: 1.8; letter-spacing: 0; }
.cxv-article-layout .article-body { font-family: var(--cxv-font); font-size: 18px; font-weight: 400; line-height: 1.95; letter-spacing: .015em; }
.cxv-article-layout .article-body p, .cxv-article-layout .article-body li { font-weight: 400; }
.cxv-article-layout .article-body strong, .cxv-article-layout .article-body b { font-weight: 600; }
.cxv-article-layout .article-body h2 { font-size: 27px; font-weight: 600; line-height: 1.65; letter-spacing: .015em; }
.cxv-article-layout .article-body h3 { font-size: 22px; font-weight: 600; line-height: 1.7; letter-spacing: .01em; }
.cxv-article-layout .article-body h4 { font-size: 19px; font-weight: 600; line-height: 1.75; letter-spacing: .01em; }
.cxv-article-layout :is(.toc-title,.cxv-toc summary) { font-family: var(--cxv-font); font-size: 16px; font-weight: 500; letter-spacing: 0; }
.cxv-article-layout :is(.toc,.cxv-toc) a { font-family: var(--cxv-font); font-size: 15px; font-weight: 400; line-height: 1.9; }
.page-heading { font-size: clamp(30px,3.5vw,42px); font-weight: 600; letter-spacing: .01em; line-height: 1.5; }
.page-head .cat-tab { font-size: 14px; font-weight: 400; letter-spacing: 0; }
.page-head .cat-tab.active { font-weight: 500; }
.col-layout .art-title { font-size: 20px; font-weight: 500; line-height: 1.75; letter-spacing: 0; }
.col-layout .art-card:first-child .art-title { font-weight: 500; letter-spacing: 0; }
:is(.col-layout,.cxv-article-layout) .art-meta { font-size: 12px; line-height: 1.8; }
:is(.col-layout,.cxv-article-layout) .art-date { font-weight: 400; }
:is(.col-layout,.cxv-article-layout) .badge { font-size: 12px; font-weight: 500; letter-spacing: 0; }
:is(.col-layout,.cxv-article-layout) .sidebar-title { font-size: 15px; font-weight: 500; letter-spacing: .015em; }
:is(.col-layout,.cxv-article-layout) .cat-list a { font-size: 14px; font-weight: 400; line-height: 1.85; }
:is(.col-layout,.cxv-article-layout) .rank-title { font-size: 14px; font-weight: 400; line-height: 1.8; }
.profile-name { font-weight: 500; }
.profile-desc { font-size: 13px; font-weight: 400; line-height: 1.95; }
.profile-body, .profile-credentials { font-size: 13px; font-weight: 400; line-height: 1.95; }
.pop-title { font-size: 14px; font-weight: 400; line-height: 1.85; }
.pop-num { font-family: var(--cxv-font); font-size: 13px; font-weight: 400; }
.profile-x a { font-weight: 500 !important; letter-spacing: 0; }

/* Resource and tool pages use the same type system as the reading pages. */
.cxk-tpl-archive h1, .cxk-tpl-single h1, .cxv-diagnosis h1 { font-family: var(--cxv-font); font-weight: 600; line-height: 1.55; letter-spacing: .01em; }
.cxk-tpl-archive h2, .cxk-tpl-single h2, .cxv-diagnosis h2 { font-family: var(--cxv-font); font-weight: 600; line-height: 1.65; letter-spacing: .01em; }
.cxk-tpl-archive h3, .cxk-tpl-single h3 { font-family: var(--cxv-font); font-weight: 500; line-height: 1.75; letter-spacing: 0; }
.cxk-tpl-card-title { font-weight: 500; }
.essay-single :is(h1,h2,h3), .essay-archive :is(h1,h2,h3) { font-family: var(--cxv-font); font-weight: 600; letter-spacing: .01em; }
.essay-single, .essay-archive { font-weight: 400; }
.cxv-footer .footer-logo { font-size: 22px; font-weight: 600; letter-spacing: .025em; }
.cxv-footer .footer-links a { font-size: 14px; font-weight: 400; letter-spacing: 0; }
.cxv-footer-brand > p { font-size: 14px; line-height: 1.95; }
.cxv-footer .footer-copy, .cxv-footer .footer-pp-link { font-size: 12px; }
@media (max-width:1100px) {
  .cxv-header .gnav { gap: 20px; }
  .cxv-header .header-nav { gap: 16px; }
  .cxv-home .cxv-hero-copy h1 { font-size: 46px; }
}
@media (max-width:960px) {
  .cxv-header .site-logo { font-size: 23px; }
  .cxv-header .gnav a, .cxv-header .cxv-secondary-nav a { font-size: 15px; }
}
@media (max-width:760px) {
  .cxv-header .site-logo { font-size: 21px; }
  .cxv-home .cxv-hero-copy h1 { font-size: clamp(31px,8.2vw,44px); line-height: 1.6; letter-spacing: .01em; }
  .cxv-home .cxv-hero-copy .cxv-eyebrow { font-size: 12px; line-height: 1.8; letter-spacing: .06em; }
  .cxv-hero-copy .cxv-hero-lead { font-size: 14px; line-height: 1.95; letter-spacing: 0; }
  .cxv-hero-copy .cxv-hero-lead > span { display: block; }
  .cxv-home .cxv-button { font-size: 13px; }
  .cxv-hero-copy .cxv-text-link { font-size: 13px; }
  .cxv-home .cxv-section-heading h2 { font-size: 27px; line-height: 1.6; letter-spacing: 0; }
  .cxv-home .cxv-topic-card h3 { font-size: 19px; }
  .cxv-latest-card:first-child h3 { font-size: 22px; }
  .cxv-latest-card:not(:first-child) h3 { font-size: 17px; }
  .cxv-latest-card:not(:first-child) .cxv-latest-link { grid-template-columns: 31% 1fr; gap: 17px; }
  .cxv-article-layout .article-title { font-size: 27px; line-height: 1.6; letter-spacing: 0; text-wrap: pretty; }
  .cxv-article-layout .article-body { font-size: 17px; line-height: 1.95; letter-spacing: .01em; }
  .cxv-article-layout .article-body h2 { font-size: 24px; line-height: 1.65; }
  .cxv-article-layout .article-body h3 { font-size: 21px; }
  .cxv-article-layout .article-body h4 { font-size: 18px; }
  .cxv-article-layout .article-meta { font-size: 12px; line-height: 1.9; }
  .col-layout .art-title { font-size: 19px; }
  .breadcrumb { font-size: 12px; }
}
@media (max-width:360px) {
  .cxv-header .site-logo { font-size: 20px; }
  .cxv-home .cxv-hero-copy h1 { font-size: 31px; }
  .cxv-home .cxv-section-heading h2 { font-size: 23px; }
  .cxv-home .cxv-actions { gap: 12px 20px; }
  .cxv-article-layout .article-title { font-size: 25px; text-wrap: balance; }
}

/* Resource notes for the existing explanatory materials. */
.cxk-tpl-single .cxv-material-intro { padding: 28px 0; border-block: 1px solid var(--c-bdr); margin-bottom: 32px; }
.cxk-tpl-single .cxv-material-intro p, .cxk-tpl-single .cxv-material-note { font-size: 15px; line-height: 1.9; color: var(--c-text2); margin-top: 16px; }
