:root,
.tiptop-font-preview-card {
	/* Preset未選択時のフォールバック。standardと同じ既存値を正とする。 */
	--tiptop-font-latin: "Jost", "Arial", sans-serif;
	--tiptop-font-jp: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Yu Gothic UI", Meiryo, sans-serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Jost", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	/* 見出しの太さは2系統ある（2026-08-11に分離）。
	 * --tiptop-font-weight-heading … カード見出し・本文の見出し・eyebrow。和文が主。
	 * --tiptop-font-weight-display  … ページ見出しと節見出し。欧文の大きい字。
	 * standard だけこの2つが違う（display=400 / heading=700）。他の5プリセットは同値なので、
	 * 各ブロックに同じ値を素で2行書く。var() で片方を参照させると、プリセット値を持つ body と
	 * 定義場所がズレて解決に失敗する（このファイル冒頭の alias 注記と同じ罠）。 */
	--tiptop-font-weight-heading: 700;
	--tiptop-font-weight-display: 700;
	--tiptop-letter-spacing-heading: var(--tt-letter-heading, 0.08em);
	--tiptop-font-feature-settings: normal;
}

body.tiptop-font-preset-standard,
.tiptop-font-preview-card--standard {
	--tiptop-font-latin: "Jost", "Arial", sans-serif;
	--tiptop-font-jp: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Yu Gothic UI", Meiryo, sans-serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Jost", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	/* ページ見出し・節見出しだけ細身（2026-08-11にオーナー判断で 700 → 400）。
	 * 標準デザインは「動きゼロ・装飾ゼロの素の土台」で、Jost の抜け感を活かす。
	 * 承認済みモックが 400 で組まれており、そちらを正とした。
	 * カード見出し・本文の見出しは 700 のまま——同じ 400 を当てると和文が細くて沈む
	 * （docs/typography-scale.md §4 の表）。他のプリセットは 2つとも同値。 */
	--tiptop-font-weight-heading: 700;
	--tiptop-font-weight-display: 400;
	--tiptop-letter-spacing-heading: 0.04em;
}

body.tiptop-font-preset-elegant,
.tiptop-font-preview-card--elegant {
	--tiptop-font-latin: "Cormorant Garamond", Georgia, serif;
	--tiptop-font-jp: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Cormorant Garamond", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-weight-heading: 500;
	--tiptop-font-weight-display: 500;
	--tiptop-letter-spacing-heading: 0.06em;
	--tiptop-font-feature-settings: "palt" 1;
}

body.tiptop-font-preset-classic,
.tiptop-font-preview-card--classic {
	--tiptop-font-latin: "Playfair Display", Georgia, serif;
	--tiptop-font-jp: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Playfair Display", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-weight-heading: 700;
	--tiptop-font-weight-display: 700;
	--tiptop-letter-spacing-heading: 0.05em;
	--tiptop-font-feature-settings: "palt" 1;
}

body.tiptop-font-preset-pop,
.tiptop-font-preview-card--pop {
	--tiptop-font-latin: "Poppins", "Arial", sans-serif;
	--tiptop-font-jp: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Yu Gothic UI", Meiryo, sans-serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-mixed);
	--tiptop-font-mixed: "Poppins", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-weight-heading: 700;
	--tiptop-font-weight-display: 700;
	--tiptop-letter-spacing-heading: 0.02em;
}

body.tiptop-font-preset-soft,
.tiptop-font-preview-card--soft {
	--tiptop-font-latin: "Fredoka", "Arial Rounded MT Bold", "Arial", sans-serif;
	--tiptop-font-jp: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Fredoka", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-weight-heading: 700;
	--tiptop-font-weight-display: 700;
	--tiptop-letter-spacing-heading: 0.04em;
}

body.tiptop-font-preset-japanese,
.tiptop-font-preview-card--japanese {
	--tiptop-font-latin: "Marcellus", Georgia, serif;
	--tiptop-font-jp: "Zen Old Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--tiptop-font-body: var(--tiptop-font-jp);
	--tiptop-font-heading: var(--tiptop-font-jp);
	--tiptop-font-mixed: "Marcellus", var(--tiptop-font-jp);
	--tiptop-font-ui: var(--tiptop-font-mixed);
	--tiptop-font-label: var(--tiptop-font-latin);
	--tiptop-font-accent: var(--tiptop-font-latin);
	--tiptop-font-weight-heading: 500;
	--tiptop-font-weight-display: 500;
	--tiptop-letter-spacing-heading: 0.08em;
	--tiptop-font-feature-settings: "palt" 1;
}

/* Aliases must resolve on the same element that owns the active preset values. */
body,
.tiptop-font-preview-card {
	--tt-font-body: var(--tiptop-font-body);
	--tt-font-heading: var(--tiptop-font-heading);
	--tt-font-display: var(--tiptop-font-heading);
}

body {
	font-family: var(--tiptop-font-body);
}

.site-main--front,
.site-main--front .tiptop-front-content,
.site-main--front .tiptop-front-section,
.site-main--front .top .main-txt,
.site-main--front .prof-txt,
.site-main--front .front-content-card,
.site-main--front .front-content-hero,
.site-main--front .card-grid,
.site-main--front .wp-block-group {
	font-family: var(--tiptop-font-body);
}

/* 見出しの書体・字間は全部まとめて当てる。太さだけ2系統に分かれるので、
 * 下の2ブロックで書き分ける（standard 以外は同値なので見た目は変わらない）。 */
h1,
h2,
h3,
h4,
h5,
h6,
.hero__title,
.section__title,
.entry-title,
.archive-title,
.page-title,
.site-main--front .top .main-txt h1,
.site-main--front .tiptop-front-content h2,
.site-main--front .tiptop-front-content h3,
.site-main--front .post-card__title {
	font-family: var(--tiptop-font-heading);
	font-feature-settings: var(--tiptop-font-feature-settings, normal);
	font-weight: var(--tiptop-font-weight-heading);
	letter-spacing: var(--tiptop-letter-spacing-heading);
}

/* ページ見出し・節見出し＝欧文の大きい字だけ display の太さ。
 * front-typography-roles.css の同じ役割のブロックにも同じトークンを当ててあるので、
 * 2ファイルのロード順がどちらでも結果は同じになる。 */
.hero__title,
.section__title,
.archive-title,
.page-title,
.site-main--front .top .main-txt h1,
.site-main--front .tiptop-front-content h2 {
	font-weight: var(--tiptop-font-weight-display);
}

.site-branding__title,
.site-nav a,
.site-footer a,
.site-mobile-nav__menu a,
.site-header__cta,
.site-mobile-panel__cta,
.button,
a.button,
.wp-element-button,
.wp-block-button__link,
.more a,
.term-list a,
.tag-links a,
.wp-block-post-terms a,
.site-main--front .eachTextAnime {
	font-family: var(--tiptop-font-ui);
}

.hero__eyebrow,
.section__eyebrow,
.site-main--front .hero__eyebrow,
.site-main--front .section__eyebrow {
	font-family: var(--tiptop-font-label);
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.site-header a.site-header__cta,
.site-mobile-panel a.site-mobile-panel__cta,
.site-main--front .more a,
.wp-block-buttons .wp-block-button__link,
.wp-block-button .wp-block-button__link {
	font-family: var(--tiptop-font-ui);
}

.wp-block-code,
code,
kbd,
pre {
	font-family: var(--tiptop-font-mono);
}

.post-card__meta,
.front-content-card__meta,
.front-blog-card__meta,
.news-item__date,
.news-item__meta,
.entry__meta,
.archive-description {
	font-family: var(--tiptop-font-body);
}

/* Issue #782: モックの機械比較で実測した役割ごとに書体を割り当てる。
 * 文字種から一律に推測しない。「実績一覧へ戻る」は和文でも欧文ロールが正なので、
 * 各コンポーネントを個別に指定する。フッターメニューはIssue #772の担当範囲。 */
.site-nav a {
	font-family: var(--tiptop-font-jp);
}

.tiptop-breadcrumb,
.site-main--front .tiptop-about-list--custom .tiptop-career-card time,
.tiptop-contact-page .tiptop-contact-note :is(strong, dt),
.tiptop-work-detail-back .tiptop-outline-action,
.tiptop-blog-detail-page .entry__meta time {
	font-family: var(--tiptop-font-latin);
}

.tiptop-blog-detail-page .entry__meta .term-list a {
	font-family: var(--tiptop-font-jp);
}

/* 分類バッジは和文書体（2026-08-10・#853項目2）。上の .term-list a はUI書体（欧文）を
 * 当てるが、承認済みモックの .badge は書体指定を持たず本文の和文書体を継承する。
 * 一覧カードのバッジは<span>で .term-list a に当たらず既に和文だったため、<a>で出る
 * 詳細ページ2つだけが Jost になっていた（実測：一覧=Zen Kaku Gothic New／詳細=Jost）。
 * ブログ詳細には上の例外が既にあるので、同じ扱いを新着詳細・実績詳細へ広げる。
 * **標準スコープ限定**にするのは、上の .term-list a（0,1,1）がイマーシブにも効いており、
 * モード非限定で上書きするとイマーシブの書体まで変わってしまうため。 */
body.tiptop-standard-system .tiptop-news-detail__terms a,
body.tiptop-standard-system .tiptop-work-detail__terms a {
	font-family: var(--tiptop-font-jp);
}

.button *,
a.button *,
.site-header__cta *,
.site-mobile-panel__cta *,
.wp-element-button *,
.wp-block-button__link * {
	font-family: inherit;
}
