/**
 * Self-hosted fonts (WOFF2) + EN type scale utilities (.text-*).
 * Figma WebDesign--26 — EN: Cormorant Garamond + Lato; JP: Shippori Mincho + Noto Sans JP.
 * JP utility overrides under html:lang(ja) (Figma 2039:878).
 */

/* ==========================================================================
   Cormorant Garamond — display EN (300, 400, 600, 700 + italics)
   ========================================================================== */

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-light-italic.woff2") format("woff2");
	font-weight: 300;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-italic.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-semibold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-semibold-italic.woff2") format("woff2");
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/cormorant-garamond-bold-italic.woff2") format("woff2");
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

/* ==========================================================================
   Lato — body EN (300, 400, 700)
   ========================================================================== */

@font-face {
	font-family: "Lato";
	src: url("../fonts/lato/lato-light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Lato";
	src: url("../fonts/lato/lato-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Lato";
	src: url("../fonts/lato/lato-bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   Shippori Mincho — display JP (400, 500, 600, 700)
   ========================================================================== */

@font-face {
	font-family: "Shippori Mincho";
	src: url("../fonts/shippori-mincho/shippori-mincho-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Shippori Mincho";
	src: url("../fonts/shippori-mincho/shippori-mincho-medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Shippori Mincho";
	src: url("../fonts/shippori-mincho/shippori-mincho-semibold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Shippori Mincho";
	src: url("../fonts/shippori-mincho/shippori-mincho-bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   Noto Sans JP — body JP (300, 400, 500, 700)
   ========================================================================== */

@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/noto-sans-jp/noto-sans-jp-light.woff2") format("woff2");
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/noto-sans-jp/noto-sans-jp-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/noto-sans-jp/noto-sans-jp-medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Noto Sans JP";
	src: url("../fonts/noto-sans-jp/noto-sans-jp-bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   EN type scale — Typography - Light - English (Figma 1967:746)
   ========================================================================== */

/* Display */
.text-display-1 {
	font-family: var(--font-display-en);
	font-size: 80px;
	font-weight: 700;
	line-height: 82px;
	letter-spacing: var(--tracking-display-tight);
}

.text-display-2 {
	font-family: var(--font-display-en);
	font-size: 48px;
	font-weight: 700;
	line-height: 56px;
	letter-spacing: var(--tracking-display-tight);
}

.text-sub-header {
	font-family: var(--font-display-en);
	font-size: 28px;
	font-weight: 400;
	font-style: italic;
	line-height: normal;
	letter-spacing: 0;
}

/* Header */
.text-h1 {
	font-family: var(--font-display-en);
	font-size: 38px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0;
}

.text-h2 {
	font-family: var(--font-display-en);
	font-size: 30px;
	font-weight: 600;
	font-style: italic;
	line-height: normal;
	letter-spacing: 0;
}

.text-h3 {
	font-family: var(--font-display-en);
	font-size: 26px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: 0;
}

/* List */
.text-update-title {
	font-family: var(--font-display-en);
	font-size: 18px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

.text-update-media {
	font-family: var(--font-display-en);
	font-size: 14px;
	font-weight: 300;
	line-height: normal;
	letter-spacing: 0;
}

/* Body */
.text-body {
	font-family: var(--font-body-en);
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.8;
	letter-spacing: var(--tracking-body);
	margin-block: 0;
}

.text-body-snippet {
	font-family: var(--font-body-en);
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.8;
	letter-spacing: 0;
	margin-block: 0;
}

.text-body-snippet-list {
	font-family: var(--font-body-en);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0;
	margin-block: 0;
}

/*
 * Paragraph spacing — body utilities, CMS entry content, WP block paragraphs.
 * Resets browser / block-library margins, then stacks with space-* tokens.
 */
.text-body :where(p, .wp-block-paragraph),
.entry-content :where(p, .wp-block-paragraph),
.wp-block-paragraph {
	margin-block: 0;
}

.text-body :where(p, .wp-block-paragraph) + :where(p, .wp-block-paragraph),
.entry-content :where(p, .wp-block-paragraph) + :where(p, .wp-block-paragraph),
.wp-block-paragraph + .wp-block-paragraph {
	margin-block-start: var(--space-24);
}

.text-body-snippet :where(p, .wp-block-paragraph) {
	margin-block: 0;
}

.text-body-snippet :where(p, .wp-block-paragraph) + :where(p, .wp-block-paragraph) {
	margin-block-start: var(--space-16);
}

/*
 * CMS blocks inside .entry-content.text-body — inherit scale unless a .text-* utility is set.
 * Prevents bare .wp-block-paragraph / block-library styles from drifting off the body scale.
 */
.entry-content.text-body :where(p, li, .wp-block-paragraph):not([class*="text-"]) {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

/* Labels */
.text-nav-label {
	font-family: var(--font-display-en);
	font-size: 18px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

.text-small-label,
.small-text-label {
	font-family: var(--font-body-en);
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.text-meta-label {
	font-family: var(--font-body-en);
	font-size: 12px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

/* Breadcrumb trail (Figma nav-breadcrumb — EN small label / JP meta label) */
.text-breadcrumb {
	font-family: var(--font-body-en);
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.text-footer-items {
	font-family: var(--font-display-en);
	font-size: 14px;
	font-weight: 300;
	line-height: normal;
	letter-spacing: 0;
}

/* Chart */
.text-chart-item {
	font-family: var(--font-body-en);
	font-size: 9px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}

.text-chart-sub {
	font-family: var(--font-body-en);
	font-size: 9px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}

.text-chart-meta {
	font-family: var(--font-body-en);
	font-size: 7px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
}

.text-chart-meta-sub {
	font-family: var(--font-body-en);
	font-size: 7px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}

/* ==========================================================================
   JP type scale — Typography - Light - Japanese (Figma 2039:878)
   Polylang: html:lang(ja)
   ========================================================================== */

html:lang(ja) .text-display-1 {
	font-family: var(--font-display-jp);
	font-size: 64px;
	font-weight: 700;
	line-height: 84px;
	letter-spacing: var(--tracking-display-supertight);
}

html:lang(ja) .text-display-2 {
	font-family: var(--font-display-jp);
	font-size: 36px;
	font-weight: 700;
	line-height: 56px;
	letter-spacing: 0;
}

html:lang(ja) .text-sub-header {
	font-family: var(--font-display-jp);
	font-size: 24px;
	font-weight: 400;
	font-style: normal;
	line-height: 38px;
	letter-spacing: 0;
}

html:lang(ja) .text-h1 {
	font-family: var(--font-display-jp);
	font-size: 34px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-h2 {
	font-family: var(--font-display-jp);
	font-size: 24px;
	font-weight: 500;
	font-style: normal;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-h3 {
	font-family: var(--font-display-jp);
	font-size: 22px;
	font-weight: 600;
	line-height: 30px;
	letter-spacing: 0;
}

html:lang(ja) .text-update-title {
	font-family: var(--font-display-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-update-media {
	font-family: var(--font-display-jp);
	font-size: 12px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-body {
	font-family: var(--font-body-jp);
	font-size: 14px;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0;
}

html:lang(ja) .text-body-snippet {
	font-family: var(--font-body-jp);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.8;
	letter-spacing: 0;
}

html:lang(ja) .text-body-snippet-list {
	font-family: var(--font-body-jp);
	font-size: 12px;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0;
}

html:lang(ja) .text-nav-label {
	font-family: var(--font-display-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-small-label,
html:lang(ja) .small-text-label {
	font-family: var(--font-body-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: none;
}

html:lang(ja) .text-meta-label {
	font-family: var(--font-body-jp);
	font-size: 12px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: none;
}

html:lang(ja) .text-breadcrumb {
	font-family: var(--font-body-jp);
	font-size: 13px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label-wide);
	text-transform: none;
}

html:lang(ja) .text-footer-items {
	font-family: var(--font-display-jp);
	font-size: 12px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0;
}

html:lang(ja) .text-chart-item {
	font-family: var(--font-body-jp);
	font-size: 8px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}

html:lang(ja) .text-chart-sub {
	font-family: var(--font-body-jp);
	font-size: 8px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}

html:lang(ja) .text-chart-meta {
	font-family: var(--font-body-jp);
	font-size: 6px;
	font-weight: 700;
	line-height: normal;
	letter-spacing: var(--tracking-label);
	text-transform: none;
}

html:lang(ja) .text-chart-meta-sub {
	font-family: var(--font-body-jp);
	font-size: 6px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: var(--tracking-label);
}
