/* ============================================================
   企業情報ページ（固定ページ company）
   カンプ: PC 917:1408 / SP 917:901
   PC と SP でセクション構成・字送り・ウェイトが異なるため、
   SP を基準に書き、1025px 以上で PC カンプの値に上書きする。
   数値・色はすべて Figma の実測値（コメントの node-id が出典）。
   ============================================================ */
:root {
	/* --- 文字サイズ（左: SP 375px / 右: PC 1920px の実測値） --- */
	--co-eng-size: clamp(12px, 3.262px + 2.3301vw, 48px); /* 12 → 48 (917:935 / 917:1537) */
	--co-eng-ls: clamp(1px, 0.029px + 0.2589vw, 5px); /* 1 → 5 */
	--co-jp-size: clamp(20px, 19.029px + 0.2589vw, 24px); /* 20 → 24 (917:936 / 917:1538) */
	--co-lead-size: clamp(14px, 8.66px + 1.4239vw, 36px); /* 14 → 36 (917:938 / 917:1539) */
	--co-text-size: clamp(12px, 11.029px + 0.2589vw, 16px); /* 12 → 16 (917:939 / 917:1540) */
	--co-outro-size: clamp(12px, 10.06px + 0.5178vw, 20px); /* 12 → 20 (917:926 / 917:1541) */
	--co-fv-sub: clamp(16px, 14.058px + 0.5178vw, 24px); /* 16 → 24 (917:940 / 917:1440) */
	--co-card-eng: clamp(20px, 9.32px + 2.8479vw, 64px); /* 20 → 64 (917:948 / 917:1546) */
	--co-card-eng-overlap: clamp(19.7px, 10.186px + 2.5372vw, 58.9px); /* 英字が写真の下端に重なる量 19.7 → 58.9（34:1072 / 31:978） */
	--co-story-eng: clamp(24px, 14.29px + 2.589vw, 64px); /* 24 → 64 : Brand Story (917:966 / 917:1556) */
	--co-story-text: clamp(10px, 8.544px + 0.3883vw, 16px); /* 10 → 16 : 本文 (917:967 / 917:1557) */
	--co-sign-size: clamp(10px, 9.515px + 0.1294vw, 12px); /* 10 → 12 : 署名 (917:1559) */
	--co-mv-eng: clamp(20px, 2.7083vw, 52px); /* 1920 で 52px。PC のみ (917:1448) */
	--co-value-eng: clamp(24px, 21.09px + 0.7767vw, 36px); /* 24 → 36 (917:961 / 917:1455) */
	--co-value-desc: clamp(12px, 10.544px + 0.3883vw, 18px); /* 12 → 18 (917:963 / 917:1458) */
	--co-quality-jp: clamp(18px, 16.544px + 0.3883vw, 24px); /* 18 → 24 (917:973 / 917:1442) */
	--co-quality-item: clamp(12px, 9.573px + 0.6472vw, 22px); /* 12 → 22 (917:974 / 917:1443) */
	--co-partner-title: clamp(40px, 21.8px + 4.854vw, 115px); /* 40 → 115 (917:913 / 917:1474) */
	--co-partner-lead: clamp(16px, 12.117px + 1.0356vw, 32px); /* 16 → 32 (917:912 / 917:1417) */
	--co-partner-label: clamp(12px, 10.06px + 0.5178vw, 20px); /* 12 → 20 (917:908 / 917:1528) */
	--co-outro-title: clamp(16px, 11.146px + 1.2945vw, 36px); /* 16 → 36 (917:1016 / 917:1475) */
	--co-profile-size: clamp(12px, 10.06px + 0.5178vw, 20px); /* 12 → 20 (917:1020 / 917:1561) */

	/* --- レイアウト --- */
	--co-pad: clamp(60px, 35.728px + 6.4725vw, 160px); /* 60 → 160 : セクション上下余白 */
	--co-card-radius: clamp(8px, 7.515px + 0.1294vw, 10px); /* 8 → 10 */
	--co-inner: 1600px; /* PC の内容幅（左右 160px） */
	--co-mv-indent: clamp(12px, 3.262px + 2.3301vw, 48px); /* MISSION の字下げ */
	--co-eco-pad-bottom: clamp(40px, 38.53px + 0.3929vw, 46.07px); /* Ecosystem の下余白（22:684 下端 → 22:679 上端） */
	--co-profile-pad-bottom: clamp(40px, 25.437px + 3.8835vw, 100px); /* 会社概要の下余白 */
	--co-partner-pad-bottom: clamp(40px, 26.408px + 3.6246vw, 96px); /* Partner の下余白 */

	/* --- ブランドストーリー見出しの字送り（[data-reveal="chars"]） --- */
	--cstory-char-stagger: 0.03s; /* 1 文字ごとの遅れ */
	--cstory-char-move: 0.35s; /* 1 文字がせり上がりきるまで */
	--cstory-char-fade: 0.22s;
	--cstory-char-shift: 18px; /* せり上がりの移動量。FV（70px）より小さく速く */
	--cstory-char-squash: 0.85; /* 出る前の縦つぶれ */
	--cstory-char-ease: cubic-bezier(0.16, 1, 0.22, 1); /* FV の字送りと同じ */
	/* 英字「Brand Story」は 11 文字。最後の 1 文字が (11 - 1) 個ぶん遅れて動き出し、
	   --cstory-char-move かけて出る。そこまで待ってから日本語を流し始める。
	   （見出しの文字数を変えるときは下の 10 も合わせる） */
	--cstory-char-lag: calc(10 * var(--cstory-char-stagger) + var(--cstory-char-move));

	/* --- 色（このページ固有。共通トークンに無いもののみ） --- */
	--co-bg-light: #f3f3f4; /* 917:1409・917:1418・917:1424 */
	/* EXone Quality の写真左端のぼかし（22:673）。写真の幅に対する比で持つ。
	   白側は写真の外へ 5.45px はみ出させ、背景との継ぎ目が出ないようにする。 */
	--co-quality-fade-start: -0.48%; /* (784.81 - 790.25) / 1129.18 */
	--co-quality-fade-width: 35.15%; /* 396.94 / 1129.18 */
	--co-quality-fade-to: rgba(254, 254, 254, 0); /* --color-white2 の透明側 */

	/* --- Partner Network の日本地図アニメーション（支給 HTML より） --- */
	--co-map-line-edge: #53b6ff; /* 経路の両端 */
	--co-map-line-mid: #dff5ff; /* 経路の中央 */
	--co-map-trace: #a8dcff; /* 下敷きの破線 */
	--co-map-halo: #4bb4ff; /* 拠点のにじみ */
	--co-map-ring: #75c5ff; /* 拠点から広がる輪 */
	--co-map-core: #fff; /* 拠点の中心と粒子 */
	--co-map-net-shadow: rgba(79, 181, 255, 0.45);
	--co-map-glow: rgba(77, 176, 255, 0.13);
	--co-map-arc-draw: 1.7s; /* 弧 1 本を引ききるまで */
	--co-map-arc-step: 0.35s; /* 弧どうしの間隔 */
	--co-map-node-start: 0.75s; /* 最初の拠点が出るまで */
	--co-map-node-step: 0.3s; /* 拠点どうしの間隔 */
	--co-map-ring-cycle: 2.6s;
	--co-map-dash-cycle: 9s;
	--co-map-breathe-cycle: 4.8s;

	/* --- 円環図の浮遊（TOP の円環図と同じ作り） --- */
	--co-eco-float: 1.6cqw; /* 振れ幅（上下それぞれ）。図の幅に対する比 */
	/* 写真を囲む輪の波（.p-ceco__ripple） */
	--co-eco-ripple-duration: 7.5s; /* 1 本が広がって消えるまで（2026-09-25 ゆっくりに変更: 4.5s → 7.5s） */
	--co-eco-ripple-ease: cubic-bezier(0.3, 0.3, 0.45, 1); /* 出だしも急がず、外でさらにゆっくり消える */
	--co-eco-ripple-scale: 1.55; /* 最も外の輪（半径 435）より少し先まで広げる */
	--co-eco-ripple-opacity: 0.66; /* 最も内側の輪の濃さ（白 66%） */
	--co-eco-ripple-color: var(--color-white3);
	--co-eco-ripple-width: 0.3cqw; /* 輪の線幅。元画像の 3〜7px（図の幅 1813）の中ほど。1920 で約 2.7px */
	--co-eco-float-ease: ease-in-out;

	/* --- 会社概要の朝 → 夜 --- */
	--co-profile-night-delay: 0.3s; /* 到達してから朝を見せている時間 */
	--co-profile-night-move: 1.2s; /* 夜へ切り替わる時間 */
	/* 切り替わりが 7 割進んだあたりでリード文、その 0.15s 後にロゴ */
	--co-profile-text-delay: calc(var(--co-profile-night-delay) + var(--co-profile-night-move) * 0.7);
	--co-profile-logo-delay: calc(var(--co-profile-text-delay) + 0.15s);
	--co-watermark-dark: #2f2f2f; /* 917:1474 Partner Network */
	--co-value-eng-color-sp: #b8b8b8; /* 917:961 */
}

/* --- セクション見出しの共通形 --- */
.c-company-eng {
	font-family: var(--font-ui);
	font-size: var(--co-eng-size);
	font-weight: var(--fw-regular);
	line-height: var(--lh-base);
	letter-spacing: var(--co-eng-ls);
}

.c-company-jp {
	font-size: var(--co-jp-size);
	font-weight: var(--fw-bold);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
}

.p-company-inner {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

/* ============================================================
   FV（917:1426-1440 / 917:927-940）
   ============================================================ */
.p-cfv {
	position: relative;
	display: grid;
	place-items: center;
	height: var(--fv-height);
	overflow: hidden;
	background: var(--color-black2);
	color: var(--color-white3);
	text-align: center;
}

.p-cfv__bg {
	position: absolute;
	inset: 0;
}

.p-cfv__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 917:1427 / 917:928 の暗幕 */
.p-cfv__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.3);
}

.p-cfv__copy {
	position: relative;
	z-index: 1;
}

.p-cfv__title {
	margin: 0;
	color: var(--color-white2);
}

.p-cfv__sub {
	margin-top: 0;
	font-size: var(--co-fv-sub);
	font-weight: var(--fw-medium);
	line-height: 2;
	letter-spacing: var(--ls-base);
	color: var(--color-gray2);
}

/* --- FV のピン留め（page-company.php の .l-pin） ---
   スクロールしても FV がその場に留まり、スクロール量に応じて暗幕が濃くなる。
   TOP（style.css の .l-pin）と同じ演出で、進捗 --fv-mask-progress は
   js/fv-mask.js が書き込む。.l-pin 自体と暗幕の板（.l-pin.is-scroll-mask::after）
   は style.css 側の共通指定をそのまま使い、ここは中身の差分だけを持つ。
   FV と Why We Exist は同じ写真（FV-bg.jpg）なので、留まった FV が
   そのまま暗転して Why の背景になる。 */
.l-pin .p-cfv {
	position: sticky;
	top: var(--fv-pin-top);
	/* 留まっている間は画面を埋めきる必要がある。カンプ高さ（--fv-height）だと
	   画面がそれより高いときに下端へ写真の無い帯が出てしまう。 */
	height: var(--fv-pin-height);
}

/* 暗転と同じ進捗で FV の見出しを消す */
.l-pin.is-scroll-mask .p-cfv__copy {
	opacity: calc(1 - var(--fv-mask-progress, 0));
}

/* FV 自前の暗幕（30%）も同じ進捗で抜く。残したままだと二重掛けになり、
   着地が Why のカンプ値（70%）より濃くなってしまう。
   進捗 0 で 917:1427 の 30%、進捗 1 で 917:1535 の 70% にちょうど収まる。 */
.l-pin.is-scroll-mask .p-cfv__bg::after {
	opacity: calc(1 - var(--fv-mask-progress, 0));
}

/* 暗幕越しに、留まっている FV が透ける */
.l-pin .p-cwhy {
	z-index: 2;
	background: transparent;
}

.l-pin .p-cwhy__bg img {
	visibility: hidden;
}

/* Why 側に貼っていた暗幕は、板ごとせり上がって境界線が出るため
   JS が動いているときは使わない。JS 無効時のフォールバックとして残す。 */
.l-pin.is-scroll-mask .p-cwhy__bg::after {
	display: none;
}

/* ============================================================
   Why We Exist（917:1532-1553 / 917:924-952）
   ============================================================ */
.p-cwhy {
	position: relative;
	padding-block: var(--co-pad);
	overflow: hidden;
	background: var(--color-black2);
	color: var(--color-white3);
}

.p-cwhy__bg {
	position: absolute;
	inset: 0;
}

.p-cwhy__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 917:1535 の暗幕 */
.p-cwhy__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(9, 9, 8, 0.7);
}

.p-cwhy__inner {
	position: relative;
	z-index: 1;
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

.p-cwhy__eng {
	color: var(--color-white3);
}

.p-cwhy__jp {
	margin-top: 0;
}

.p-cwhy__lead {
	margin-top: 1.8724vw; /* jp 下端 → lead 上端（917:1539） */
	font-size: var(--co-lead-size);
	font-weight: var(--fw-bold);
	line-height: 1.8;
	letter-spacing: var(--ls-wide);
}

.p-cwhy__text {
	margin-top: 1.8719vw; /* lead 下端 → 本文（917:1540） */
	font-size: var(--co-text-size);
	line-height: 2;
	letter-spacing: var(--ls-base);
	color: var(--color-gray2);
}

/* 線画（917:1536 / 917:941）。インライン SVG（線描画は style.css の [data-line-draw]） */
.p-cwhy__feature {
	display: block;
	width: 55%; /* 175.15 / 320（917:941） */
	max-width: 480px;
	height: auto;
	margin-top: var(--space-lg);
	margin-left: auto;
}

.p-cwhy__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.9396vw; /* 917:1542 → 917:1548 */
	margin-top: var(--space-2xl);
}

/* カンプ（PC 31:978 / SP 34:1066-1074）は「写真の下に文字」の組み。英字は写真の
   下端をまたいで重なり、和文（PC のみ）は写真の外の下に来る。英字が写真から
   はみ出すため、角丸はカードではなく写真に付ける */
.p-cwhy__card {
	position: relative;
}

.p-cwhy__card-image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 510.94 / 340.63;
	border-radius: var(--co-card-radius);
	object-fit: cover;
}

/* 英字を写真の下端に重なるぶんだけ引き上げる（量は PC / SP ブロック） */
.p-cwhy__card-body {
	position: relative;
	margin-top: calc(-1 * var(--co-card-eng-overlap));
	text-align: center;
}

.p-cwhy__card-eng {
	font-size: var(--co-card-eng);
	line-height: 1.6;
	letter-spacing: 1px;
	color: var(--color-white3);
}

/* 和文の添字は SP カンプには無い（34:1072-1074 は英字のみ） */
.p-cwhy__card-jp {
	display: none;
	margin-top: 0; /* PC 22:752 は英字の行箱の下端にそのまま続く */
	font-size: var(--co-jp-size);
	font-weight: var(--fw-medium);
	line-height: 2;
	letter-spacing: var(--ls-wide);
	color: var(--color-white3);
}

/* 3 行コピー（917:1047）。SP カンプのみに登場する */
.p-cwhy__catch {
	margin-top: var(--space-2xl);
	font-size: var(--co-lead-size);
	font-weight: var(--fw-bold);
	line-height: 1.8;
	letter-spacing: var(--ls-wide);
	text-align: center;
}

.p-cwhy__outro {
	margin-top: 6.8021vw; /* 917:1541 */
	font-size: var(--co-outro-size);
	line-height: 2.5;
	letter-spacing: var(--ls-base);
	text-align: center;
	color: var(--color-gray2);
}

/* ============================================================
   ブランドストーリー（917:1424・917:1554-1559 / 917:914-968）
   PC は画像（左上）にパネル（右下）が重なり、署名は画像の右下に乗る。
   ============================================================ */
.p-cstory {
	padding-block: var(--co-pad);
	background: var(--co-bg-light);
	color: var(--color-text);
}

.p-cstory__inner {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

.p-cstory__head {
	text-align: center;
}

.p-cstory__body {
	position: relative;
	margin-top: var(--space-xl);
}

/* PC はパネル（DOM で後ろ）が写真の上に重なる（917:1555 が 917:1554 の手前） */
.p-cstory__media {
	position: relative;
	margin: 0;
	border-radius: var(--co-card-radius);
}

/* SP の右側の写真は枠外に出るため、media をクリップせず写真ごとに丸める。 */
.p-cstory__image,
.p-cstory__office {
	border-radius: inherit;
}

.p-cstory__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 849.09 / 566.06;
	object-fit: cover;
}

/* SP は写真の下・左寄せ（917:968）、PC は写真の右下に乗る（917:1559） */
.p-cstory__sign {
	margin-top: var(--space-2xs);
	font-size: var(--co-sign-size);
	font-weight: var(--fw-medium);
	line-height: 2;
	letter-spacing: var(--ls-base);
	color: var(--color-black1);
}

.p-cstory__panel {
	position: relative;
	margin-top: var(--space-md);
	padding: var(--space-lg) var(--space-md);
	background: var(--color-white2);
	border-radius: var(--co-card-radius);
}

/* 1 文字ずつ下からせり上がる。--char-index は PHP 側が振る通し番号 */
.p-cstory__char {
	display: inline-block;
	opacity: 0;
	transform: translateY(var(--cstory-char-shift)) scaleY(var(--cstory-char-squash));
	transform-origin: bottom center;
	transition:
		opacity var(--cstory-char-fade) ease,
		transform var(--cstory-char-move) var(--cstory-char-ease);
	will-change: opacity, transform;
}

[data-reveal="chars"].is-inview .p-cstory__char {
	opacity: 1;
	transform: none;
	transition-delay: calc(var(--cstory-char-start, 0s) + var(--char-index) * var(--cstory-char-stagger));
}

/* 日本語は英字が出そろうのを待ってから流れ出す */
.p-cstory__panel-jp {
	--cstory-char-start: var(--cstory-char-lag);
}

/* 動きを減らす設定では字送りせず、最初から出しておく
   （--char-index の指定より後ろに置かないと後勝ちで効かない） */
@media (prefers-reduced-motion: reduce) {
	.p-cstory__char {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* 薄いグレーの大きな英字（917:1556 / 917:966） */
.p-cstory__panel-eng {
	font-size: var(--co-story-eng);
	line-height: 1.6;
	letter-spacing: 1px;
	text-align: center;
	color: var(--color-off-white);
}

.p-cstory__panel-jp {
	margin-top: calc(var(--co-story-eng) * -0.55);
	font-size: var(--co-jp-size);
	font-weight: var(--fw-bold);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	text-align: center;
	color: var(--color-black2);
}

.p-cstory__text {
	margin-top: var(--space-md);
	font-size: var(--co-story-text);
	line-height: 2;
	letter-spacing: var(--ls-wide);
	color: var(--color-black1);
}

.p-cstory__text p + p {
	margin-top: 0;
}

.p-cstory__text p.p-cstory__paragraph-break {
	margin-top: 2em; /* lh 単位に非対応のブラウザ向け */
	margin-top: 1lh; /* PC・SP とも、指定した文章の区切りだけに 1 行分の空白 */
}

/* VISION / MISSION（917:1445-1448）。PC カンプのみ */
.p-cstory__mv {
	display: none;
	margin-top: var(--space-lg);
}

.p-cstory__mv-item {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: var(--space-sm);
}

.p-cstory__mv-item + .p-cstory__mv-item {
	margin-top: var(--space-sm);
	padding-left: var(--co-mv-indent);
}

.p-cstory__mv-eng {
	font-size: var(--co-mv-eng);
	line-height: 1.6;
	letter-spacing: 1px;
	text-align: right;
	color: var(--color-off-white);
}

.p-cstory__mv-desc {
	margin: 0;
	font-size: var(--co-text-size);
	font-weight: var(--fw-medium);
	line-height: 1.8;
	letter-spacing: var(--ls-wide);
	color: var(--color-black1);
}

/* ============================================================
   私たちが作る体験（4 カード。PC カンプのみ）
   ============================================================ */
.p-cvisible {
	display: none;
}

/* 私たちが作る体験のカード（PC 436:38 ほか / SP 436:65-69・35:1384-1385）。
   英字は写真の下部に白で重ね、写真の下端にグラデーション（透明 → 黒 60%）を敷く。
   写真・グラデーション・英字を同じグリッドのセルに重ねる */
.p-cvisible__card {
	display: grid;
	grid-template-columns: 100%;
}

.p-cvisible__card-image,
.p-cvisible__card::before,
.p-cvisible__card-eng {
	grid-area: 1 / 1;
}

.p-cvisible__card::before {
	z-index: 1;
	align-self: end;
	height: var(--co-vis-fade-h);
	border-radius: 0 0 var(--co-vis-radius) var(--co-vis-radius);
	background: linear-gradient(180deg, rgba(26, 26, 26, 0), rgba(26, 26, 26, 0.6));
	content: "";
}

.p-cvisible__card-eng {
	z-index: 2;
	align-self: end;
	margin: 0 0 var(--co-vis-eng-bottom);
	text-align: center;
	white-space: nowrap;
	color: var(--color-white2);
}

/* ============================================================
   私たちを支える価値観（917:1418-1466 / 917:916-970）
   SP は画像・アイコン・テキストが横に並ぶ帯（左右交互）。
   ============================================================ */
.p-cvalue {
	padding-block: var(--co-pad);
	background: var(--co-bg-light);
	color: var(--color-text);
}

.p-cvalue__inner {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
	text-align: center;
}

/* SP は左右にはみ出す帯のため、内側の余白を打ち消して全幅に置く（917:919-922） */
.p-cvalue__cards {
	display: grid;
	gap: 30.56px; /* 917:919 → 917:920 のピッチ 117.28 − 帯高 86.72 */
	margin-top: var(--space-xl);
	margin-inline: calc(var(--gutter) * -1);
	text-align: left;
}

.p-cvalue__card {
	display: grid;
	grid-template-columns: 35.13% 11.77% 1fr; /* 122.09 / 40.88 / 残り（帯幅 347.5） */
	align-items: center;
	width: 92.67%; /* 347.5 / 375 */
	justify-self: end;
	overflow: hidden;
	background: var(--color-white2);
	border-radius: var(--co-card-radius);
	box-shadow: var(--plans-card-shadow);
}

/* 2 番目の帯は左寄せ・画像が右（917:920-921） */
.p-cvalue__card:nth-child(even) {
	grid-template-columns: 1fr 11.77% 35.13%;
	justify-self: start;
}

.p-cvalue__card:nth-child(even) .p-cvalue__card-body {
	order: 1;
	padding-inline: var(--space-sm) 0;
}

.p-cvalue__card:nth-child(even) .p-cvalue__card-head {
	order: 2;
}

.p-cvalue__card:nth-child(even) .p-cvalue__card-media {
	order: 3;
}

.p-cvalue__number {
	display: none;
	font-family: var(--font-ui);
	font-weight: var(--fw-semibold);
	font-size: 36px;
	line-height: 1.6;
	letter-spacing: 3px;
	color: var(--color-orange1);
}

.p-cvalue__card-head {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

.p-cvalue__icon {
	width: 100%;
	min-width: 0;
	height: auto;
}

.p-cvalue__card-body {
	min-width: 0;
	padding-inline: 0 var(--space-sm);
}

.p-cvalue__card-eng {
	font-size: var(--co-value-eng);
	line-height: 1.6;
	color: var(--co-value-eng-color-sp);
}

.p-cvalue__card-desc {
	font-size: var(--co-value-desc);
	line-height: 1.6;
	letter-spacing: var(--ls-base);
	color: var(--color-black1);
}

.p-cvalue__card-media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 122.09 / 86.72;
	object-fit: cover;
}

/* カード内の配置はカンプ実測（917:1419-1466、カード 510.26x656.94）。
   1920 基準の vw で指定し、狭い幅でも比率を保つ。
   01 +26.93 / アイコン下端 +188.74 / Challenge +218.39 / 説明 +293.35 / 画像 +380.38 */
@media (min-width: 1025px) {
	.p-cvalue__cards {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--space-md);
		margin-inline: 0;
	}

	.p-cvalue__card {
		display: flex;
		flex-direction: column;
		align-items: stretch; /* SP の grid 用 align-items: center を打ち消す */
		width: auto;
		text-align: center;
	}

	.p-cvalue__card-head {
		position: relative;
		order: 1;
		align-items: flex-start;
		min-height: 9.8302vw;
		padding: 1.4026vw 2.149vw 0;
	}

	/* 説明の行数が違っても写真の上端が揃うよう、本文側で余りを吸収する（917:1422-1466） */
	.p-cvalue__card-body {
		order: 2;
		flex-grow: 1;
		padding-inline: 0;
	}

	.p-cvalue__card-media {
		order: 3;
		margin-top: 1.1995vw;
	}

	.p-cvalue__card:nth-child(even) .p-cvalue__card-body {
		order: 2;
		padding-inline: 0;
	}

	.p-cvalue__number {
		display: block;
		position: absolute;
		top: 1.4026vw;
		left: 2.149vw;
	}

	.p-cvalue__icon {
		width: auto;
		height: 5.5109vw;
		margin-top: 1.5141vw;
	}

	.p-cvalue__card-eng {
		margin-top: 1.5443vw;
		padding-inline: 2.149vw;
		letter-spacing: 1px;
		color: var(--color-black2);
	}

	.p-cvalue__card-desc {
		margin-top: 0.8833vw;
		padding: 0 2.149vw;
		line-height: 1.8;
		letter-spacing: var(--ls-wide);
	}

	.p-cvalue__card-media img {
		height: auto;
		aspect-ratio: 510.26 / 276.56;
	}
}

/* ============================================================
   EXone Quality（917:1425-1471 / 917:918-975）
   背景は白（917:1425）。PC は左テキスト・右写真。
   ============================================================ */
.p-cquality {
	position: relative;
	background: var(--co-bg-light);
	color: var(--color-text);
}

.p-cquality__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1129 / 641;
	object-fit: cover;
}

.p-cquality__body {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
	padding-block: var(--space-xl) var(--co-pad);
}

.p-cquality__eng {
	color: var(--color-black2);
}

.p-cquality__jp {
	margin-top: 0;
	font-size: var(--co-quality-jp);
	font-weight: var(--fw-bold);
	line-height: 1.6;
	letter-spacing: var(--ls-wide);
	color: var(--color-black2);
}

.p-cquality__list {
	margin-top: var(--space-md);
}

.p-cquality__item {
	position: relative;
	padding-left: 1em;
	font-size: var(--co-quality-item);
	font-weight: var(--fw-medium);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	color: var(--color-black1);
}

/* 917:1470 / 917:1471 の縦棒マーカー */
.p-cquality__item::before {
	content: "";
	position: absolute;
	top: 0.9em;
	left: 0;
	width: 3.58px;
	height: 1em;
	background: var(--color-orange1);
}

/* ============================================================
   EXone Ecosystem（917:1411-1523 / 917:976-1013）
   ============================================================ */
.p-ceco {
	position: relative;
	padding-block: var(--co-pad) var(--co-eco-pad-bottom);
	background: var(--color-black2);
	color: var(--color-white3);
	overflow: hidden;
}

.p-ceco__bg {
	position: absolute;
	inset: 0;
}

.p-ceco__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 917:1415 / 917:984 : セクション下端を Partner Network の黒へなじませる */
.p-ceco::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: clamp(40px, 21.45px + 4.9482vw, 116.57px);
	background: linear-gradient(180deg, rgba(26, 26, 26, 0) 0%, var(--color-black2) 100%);
}

/* 917:1412 / 917:977 の暗幕 */
.p-ceco__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

.p-ceco__inner {
	position: relative;
	z-index: 1;
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

.p-ceco__head {
	text-align: center;
}

.p-ceco__eng {
	color: var(--color-white3);
}

.p-ceco__purpose {
	margin-top: var(--space-xl);
}

/* 左カラム 2 つ目のブロック（22:681）。SP カンプには無い */
.p-ceco__lead {
	display: none;
}

.p-ceco__purpose-head {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.p-ceco__purpose-icon {
	width: auto;
	height: clamp(47px, 41.951px + 1.3463vw, 82px);
}

.p-ceco__purpose-eng {
	font-family: var(--font-ui);
	font-size: clamp(12px, 9.088px + 0.7767vw, 24px);
	font-weight: var(--fw-semibold);
	line-height: 1.6;
	letter-spacing: 3px;
	color: var(--color-gray2);
}

.p-ceco__purpose-jp {
	font-size: clamp(16px, 12.845px + 0.8414vw, 29px);
	font-weight: var(--fw-bold);
	line-height: 1.6;
	letter-spacing: clamp(2px, 1.272px + 0.1942vw, 5px);
	color: var(--color-white2);
}

.p-ceco__purpose-text {
	margin-top: var(--space-sm);
	font-size: var(--co-text-size);
	font-weight: var(--fw-medium);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	color: var(--color-gray2);
}

/* PC の円形図は SP では出さない */
.p-ceco__figure {
	display: none;
	margin: 0;
}

.p-ceco__list {
	margin-top: var(--space-lg);
	padding-left: var(--space-md);
	border-left: var(--border-thin) solid var(--color-gray3);
}

.p-ceco__item + .p-ceco__item {
	margin-top: var(--space-md);
	padding-top: var(--space-md);
	border-top: var(--border-thin) solid var(--color-gray3);
}

.p-ceco__item-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-xs);
}

/* 見出しはオレンジ（917:990） */
.p-ceco__item-jp {
	font-size: clamp(14px, 12.544px + 0.3883vw, 20px);
	font-weight: var(--fw-medium);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	color: var(--color-orange1);
}

.p-ceco__item-eng {
	font-family: var(--font-ui);
	font-size: clamp(11px, 10.515px + 0.1294vw, 13px);
	line-height: 1.6;
	letter-spacing: var(--ls-base);
	color: var(--color-gray2);
}

.p-ceco__item-desc {
	margin-top: 2px;
	font-size: var(--co-text-size);
	line-height: 1.6;
	letter-spacing: var(--ls-base);
	color: var(--color-gray2);
}

/* ============================================================
   Partner Network（917:1413-1531 / 917:905-1017）
   ============================================================ */
.p-cpartner {
	padding-block: var(--co-pad) var(--co-partner-pad-bottom);
	background: var(--color-black2);
	color: var(--color-white3);
}

.p-cpartner__inner {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

/* PC カンプのみのリード */

/* 背景と同系色で敷く大きな英字（917:1474 / 917:913） */
.p-cpartner__title {
	font-size: var(--co-partner-title);
	line-height: 1.6;
	letter-spacing: -1px;
	color: var(--co-watermark-dark);
}

.p-cpartner__lead {
	margin-top: var(--space-xs);
	font-size: var(--co-partner-lead);
	font-weight: var(--fw-bold);
	line-height: 1.8;
	letter-spacing: var(--ls-wide);
}

.p-cpartner__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-sm);
	margin-top: var(--space-xl);
}

.p-cpartner__card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 375 / 211;
	object-fit: cover;
	border-radius: var(--co-card-radius);
}

.p-cpartner__card-label {
	margin-top: var(--space-2xs);
	font-size: var(--co-partner-label);
	font-weight: var(--fw-bold);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	color: var(--color-white2);
}

.p-cpartner__outro {
	margin-top: var(--space-2xl);
}

.p-cpartner__outro-title {
	font-size: var(--co-outro-title);
	font-weight: var(--fw-bold);
	line-height: 1.6;
	letter-spacing: var(--ls-wide);
}

.p-cpartner__outro-desc {
	margin-top: var(--space-sm);
	font-size: var(--co-text-size);
	font-weight: var(--fw-medium);
	line-height: 2.5;
	letter-spacing: var(--ls-wide);
	color: var(--color-gray2);
}

/* --- 日本地図（支給アニメーション「日本地図アニメーション.html」の移植） ---
   地図の静止画に、経路・拠点・粒子・走査線を SVG と疑似要素で重ねる。
   座標は地図の実寸 1672x941 基準で、SVG の viewBox がそのまま効く。
   画面に入って [data-reveal] の .is-inview が付いたときに動き出す。 */
.p-cpartner__map {
	position: relative;
	/* 走査線の移動量を地図の高さで測るためのコンテナ */
	container-type: size;
	/* カンプ 22:621 の枠。画像（1672x941）より少し縦長で、横は左寄せで
	   6% 切り落とされる。上に重ねる SVG も同じ切り取りになるよう、
	   マークアップ側の preserveAspectRatio を xMinYMid slice にしてある。 */
	aspect-ratio: 835.82 / 498.64;
	margin: var(--space-lg) 0 0;
}

.p-cpartner__map-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left center;
	opacity: 0.8; /* 22:621 */
}

/* 地図の中心あたりでゆっくり明滅する光 */
.p-cpartner__map-glow {
	position: absolute;
	inset: 8% 4%;
	background: radial-gradient(ellipse at 62% 49%, var(--co-map-glow), transparent 42%);
	filter: blur(24px);
	pointer-events: none;
}

.p-cpartner__map.is-inview .p-cpartner__map-glow {
	animation: p-cpartner-map-breathe var(--co-map-breathe-cycle) ease-in-out infinite;
}

@keyframes p-cpartner-map-breathe {
	50% {
		opacity: 0.55;
		transform: scale(1.025);
	}
}

.p-cpartner__map-net {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
	filter: drop-shadow(0 0 5px var(--co-map-net-shadow));
}

.p-cpartner__map-stop--edge {
	stop-color: var(--co-map-line-edge);
}

.p-cpartner__map-stop--mid {
	stop-color: var(--co-map-line-mid);
}

/* 拠点をつなぐ弧。--i の順に引かれる */
.p-cpartner__map-arc {
	fill: none;
	stroke: url(#exone-map-line);
	stroke-width: 1.15;
	stroke-linecap: round;
	opacity: 0.74;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 900;
	stroke-dashoffset: 900;
}

.p-cpartner__map.is-inview .p-cpartner__map-arc {
	animation: p-cpartner-map-draw var(--co-map-arc-draw) ease forwards;
	animation-delay: calc(var(--i) * var(--co-map-arc-step));
}

@keyframes p-cpartner-map-draw {
	to {
		stroke-dashoffset: 0;
	}
}

/* 弧の下敷きになる破線。ゆっくり流れ続ける */
.p-cpartner__map-trace {
	fill: none;
	stroke: var(--co-map-trace);
	stroke-width: 0.7;
	opacity: 0.22;
	stroke-dasharray: 3 9;
	vector-effect: non-scaling-stroke;
}

.p-cpartner__map.is-inview .p-cpartner__map-trace {
	animation: p-cpartner-map-dash var(--co-map-dash-cycle) linear infinite;
}

@keyframes p-cpartner-map-dash {
	to {
		stroke-dashoffset: -160;
	}
}

/* 拠点。弧が引き終わるころから順に点く */
.p-cpartner__map-node {
	opacity: 0;
}

.p-cpartner__map.is-inview .p-cpartner__map-node {
	animation: p-cpartner-map-node 0.48s ease forwards;
	animation-delay: calc(var(--co-map-node-start) + var(--i) * var(--co-map-node-step));
}

@keyframes p-cpartner-map-node {
	to {
		opacity: 1;
	}
}

.p-cpartner__map-halo {
	fill: var(--co-map-halo);
	opacity: 0.15;
	filter: url(#exone-map-blur);
}

.p-cpartner__map-core {
	fill: var(--co-map-core);
	filter: url(#exone-map-glow);
}

/* 拠点から広がって消える輪 */
.p-cpartner__map-ring {
	fill: none;
	stroke: var(--co-map-ring);
	stroke-width: 1;
	opacity: 0.68;
	vector-effect: non-scaling-stroke;
}

.p-cpartner__map.is-inview .p-cpartner__map-ring {
	animation: p-cpartner-map-ring var(--co-map-ring-cycle) ease-out infinite;
}

@keyframes p-cpartner-map-ring {
	0% {
		r: 4;
		opacity: 0.78;
	}

	85%,
	100% {
		r: 22;
		opacity: 0;
	}
}

/* 弧の上を流れる粒子。動き自体は SVG の animateMotion（読み込み時から回っている）
   なので、拠点が点くころに合わせて姿だけ出す */
.p-cpartner__map-spark {
	fill: var(--co-map-core);
	filter: url(#exone-map-glow);
	opacity: 0;
}

.p-cpartner__map.is-inview .p-cpartner__map-spark {
	opacity: 0.95;
	transition: opacity 0.6s ease var(--co-map-node-start);
}

/* 動きを減らす設定では、引き終わり・点灯済みの状態で止める
   （animation の指定より後ろに置かないと後勝ちで効かない） */
@media (prefers-reduced-motion: reduce) {
	/* animation を打ち消す側は .is-inview 付きの指定と同じ詳細度で書く
	   （そうしないと詳細度で負けて効かない） */
	.p-cpartner__map.is-inview .p-cpartner__map-glow,
	.p-cpartner__map.is-inview .p-cpartner__map-arc,
	.p-cpartner__map.is-inview .p-cpartner__map-trace,
	.p-cpartner__map.is-inview .p-cpartner__map-node,
	.p-cpartner__map.is-inview .p-cpartner__map-ring {
		animation: none;
	}

	/* 引き終わり・点灯済みの状態で見せる */
	.p-cpartner__map .p-cpartner__map-arc {
		stroke-dashoffset: 0;
	}

	.p-cpartner__map .p-cpartner__map-node {
		opacity: 1;
	}

	/* 広がる輪と流れる粒子は止めると意味がないので出さない */
	.p-cpartner__map .p-cpartner__map-ring,
	.p-cpartner__map .p-cpartner__map-spark {
		display: none;
	}
}

/* ============================================================
   会社概要（PC 455:104 の 975:91-949:72 / SP 494:511 の 917:902-1046）
   SP は 見出し → 写真 → 表。PC は全幅写真の上に見出し・コピー・ロゴを重ね、
   その下端に白カードの表を重ねる。
   ============================================================ */
.p-cprofile {
	position: relative;
	display: flex;
	flex-direction: column;
	padding-block: var(--co-pad) var(--co-profile-pad-bottom);
	background: var(--co-bg-light);
	color: var(--color-text);
}

.p-cprofile__head,
.p-cprofile__card {
	width: min(100% - var(--gutter) * 2, var(--co-inner));
	margin-inline: auto;
}

.p-cprofile__head {
	order: 1;
	text-align: center;
}

/* SP カンプには無い（PC 949:81 / 949:72） */
.p-cprofile__lead,
.p-cprofile__logo {
	display: none;
}

/* SP は見出しの下に全幅で敷く（917:903-904） */
.p-cprofile__media {
	order: 2;
	margin-top: var(--space-lg);
}

/* 朝・夜の 2 枚を重ねる。高さは朝（通常フロー）が決める */
.p-cprofile__media {
	position: relative;
}

.p-cprofile__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 375 / 177;
	object-fit: cover;
}

.p-cprofile__night {
	position: absolute;
	inset: 0;
	height: 100%;
	opacity: 0;
}

/* 到達したら、朝を少し見せてから夜へ切り替わる（スクロール量には連動しない） */
.p-cprofile.is-inview .p-cprofile__night {
	opacity: 1;
	transition: opacity var(--co-profile-night-move) ease var(--co-profile-night-delay);
}

/* 動きを減らす設定では切り替えず、最初から夜にしておく
   （transition の指定より後ろに置かないと後勝ちで効かない） */
@media (prefers-reduced-motion: reduce) {
	.p-cprofile__night,
	.p-cprofile.is-inview .p-cprofile__night {
		opacity: 1;
		transition: none;
	}
}

.p-cprofile__card {
	order: 3;
	margin-top: var(--space-xl);
}

.p-cprofile__row {
	display: grid;
	grid-template-columns: 30% 1fr;
	gap: var(--space-sm);
	padding-block: var(--space-2xs);
}

/* 罫線は行間のみ（917:1024-1032 は 10 行に対して 9 本） */
.p-cprofile__row + .p-cprofile__row {
	border-top: var(--border-thin) solid var(--color-gray1);
}

.p-cprofile__label,
.p-cprofile__value {
	font-size: var(--co-profile-size);
	line-height: 2.5;
	letter-spacing: var(--ls-base);
	color: var(--color-black1);
}

.p-cprofile__label {
	font-weight: var(--fw-bold);
}

.p-cprofile__value {
	font-weight: var(--fw-regular);
}

/* 主要取引先は社名の途中で折り返さず「、」の後で改行する（iPad Air の縦 820 で「店」1 文字だけが
   最終行に落ちていた。2026-10-10）。1 社が行に収まらないときだけ途中で折る */
.p-cprofile__row--last .p-cprofile__value {
	word-break: keep-all;
	overflow-wrap: anywhere;
}

/* ============================================================
   PC（1025px 以上）
   ============================================================ */
@media (min-width: 1025px) {
	.c-company-eng {
		--lh-base: 1.2;
		font-weight: var(--fw-semibold);
	}

	.c-company-jp {
		font-weight: var(--fw-medium);
	}

	/* --- FV --- */
	.p-cfv__sub {
		line-height: 2.5;
		letter-spacing: var(--ls-wide);
		color: var(--color-white3);
	}

	/* --- Why We Exist --- */
	.p-cwhy__inner {
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: var(--space-xl);
	}

	.p-cwhy__head {
		grid-column: 1 / 2;
	}

	/* 線画 line_animation02（483:14）x1038 y1204 733x489。セクション上端 1080 から
	   124、見出し（inner 上端）y1240 より 36 上。右端 1771 は内容の右端 1760 より
	   11 外に出る */
	.p-cwhy__feature {
		position: absolute;
		top: calc(-36 * var(--co-vu));
		right: calc(-11 * var(--co-vu));
		width: calc(733 * var(--co-vu));
		max-width: none;
		margin: 0;
	}

	.p-cwhy__lead {
		font-weight: var(--fw-medium);
	}

	.p-cwhy__text {
		font-weight: var(--fw-medium);
		line-height: 2.5;
		letter-spacing: var(--ls-wide);
	}

	/* カード列 y705.33（本文下端 551.77 から 153.56） */
	.p-cwhy__cards {
		grid-column: 1 / -1;
		margin-top: 7.9979vw;
	}

	.p-cwhy__card-jp {
		display: block;
	}

	.p-cwhy__catch {
		display: none;
	}

	/* アウトロ 22:746 y2376.56（カード下端 = 和文の下端 2217.06 から 159.5） */
	.p-cwhy__outro {
		grid-column: 1 / -1;
		margin-top: calc(159.5 * var(--co-vu));
		font-weight: var(--fw-medium);
		letter-spacing: var(--ls-wide);
	}

	/* --- ブランドストーリー ---
	   カンプ実測（セクション上端 2686.06 基準・1920 幅）:
	   画像 x163.73 y365.88 849.09x566.06 / パネル x921.32 y481.03 849.81x681.97
	   Brand Story x1202.73 y425.41 / ブランドストーリー y519.54 / 本文 x1014.56 y616.05
	   署名 x755.91 y861.05 / VISION y968.05 / MISSION y1051.05 */
	/* 写真列（.p-cstory__col）とパネルを同じセルに重ねる。
	   パネルを絶対配置にすると本文量でセクション高さが足りなくなり、
	   次セクションへはみ出すため、両方を通常フローのグリッドアイテムにして
	   行の高さが「写真列」「パネル」の高いほうに追従するようにしている。 */
	.p-cstory__body {
		position: relative;
		display: grid;
		grid-template-columns: 1fr;
		margin-top: calc(80 * var(--co-vu)); /* 見出し下 80 ルール（カンプ実測 69 から変更） */
	}

	.p-cstory__col {
		grid-area: 1 / 1;
		width: 53.07%; /* 849.09 / 1600 */
	}

	/* 署名 x755.91 y861.05（写真は x163.73 y365.88 849.09x566.06）。
	   パネル左端 x921.32 より左に収める */
	.p-cstory__sign {
		position: absolute;
		z-index: 2;
		right: 14.6%;
		bottom: 4%;
		margin-top: 0;
		text-align: right;
		color: var(--color-white2);
	}

	.p-cstory__panel {
		grid-area: 1 / 1;
		position: relative; /* 写真列より手前に描画する（DOM 順で解決） */
		justify-self: end;
		width: 53.11%; /* 849.81 / 1600 */
		margin-top: 5.9974vw; /* 481.03 - 365.88 */
		/* 本文は x1014.56（パネル左端 921.32 から 93.24）。
		   % パディングは親（body 幅 1600）基準になるため、その比で指定する。 */
		padding: 0 5.8275% 5.747%;
		box-shadow: var(--plans-card-shadow);
	}

	/* パネル上端をまたいで外側に出る（917:1556 は y425.41、パネル上端は y481.03） */
	.p-cstory__panel-eng {
		margin-top: -2.8969vw;
	}

	/* ブランドストーリー y519.54（Brand Story 上端から 94.13） */
	.p-cstory__panel-jp {
		margin-top: -0.4307vw;
	}

	/* 本文 y616.05（ブランドストーリー下端 579.54 から 36.51） */
	.p-cstory__text {
		margin-top: 1.9016vw;
		font-weight: var(--fw-medium);
		line-height: 2.2;
	}

	/* VISION / MISSION は画像の下・左寄せ。
	   パネル左端（内側幅の 46.89%）より手前で折り返させ、文字がパネルに潜らないようにする。 */
	.p-cstory__mv {
		display: block;
		width: 88.36%; /* 46.89 / 53.07 */
		margin-top: 1.8807vw; /* 968.05 - (365.88 + 566.06) */
	}

	/* VISION は x182.97（内側左端 160 から 22.97）、説明は x339.91 */
	.p-cstory__mv-item {
		grid-template-columns: 7.7604vw 1fr;
		gap: 1.5625vw;
		padding-left: 1.1964vw;
	}

	/* MISSION は VISION より 34.3 右（182.97 → 217.27） */
	.p-cstory__mv-item + .p-cstory__mv-item {
		margin-top: 0;
		padding-left: 2.9828vw;
	}

	/* --- 私たちが作る体験（PC のみ・917:1414 は #fefefe） --- */
	.p-cvisible {
		display: block;
		padding-block: var(--co-pad);
		background: var(--color-white2);
	}

	.p-cvisible__inner {
		width: min(100% - var(--gutter) * 2, var(--co-inner));
		margin-inline: auto;
		text-align: center;
	}

	/* 436:37: 英字・和文・説明文ともカードの中央揃え */
	.p-cvisible__cards {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: var(--space-md);
		margin-top: var(--space-xl);
		text-align: center;
	}

	/* 436:39 ほか 378x481、角丸 10・影 0 12 32 12% */
	.p-cvisible__card-image {
		width: 100%;
		height: auto;
		aspect-ratio: 377.8 / 481;
		border-radius: var(--co-vis-radius);
		box-shadow: 0 calc(12 * var(--co-vu)) calc(32 * var(--co-vu)) rgba(0, 0, 0, 0.12);
		object-fit: cover;
	}

	.p-cvisible__card-eng {
		font-size: 40px;
		line-height: 1.6;
		letter-spacing: 1px;
	}

	/* 436:42 は写真の下端 481 から 12 下（y493） */
	.p-cvisible__card-jp {
		margin-top: calc(12 * var(--co-vu));
		font-size: var(--co-jp-size);
		font-weight: var(--fw-medium);
		line-height: 2.5;
		letter-spacing: var(--ls-wide);
		color: var(--color-black2);
	}

	/* 436:41 は和文の下端 553 から 5 下（y558） */
	.p-cvisible__card-desc {
		margin-top: calc(5 * var(--co-vu));
		font-size: 18px;
		line-height: 1.8;
		letter-spacing: var(--ls-wide);
		color: var(--color-black2);
	}

	/* --- EXone Quality（917:1425 は白） --- */
	/* カンプ（31:999）は左テキスト 41% / 右写真 59%。ただし列幅は画面幅に比例して
	   縮むのに対し、文字は clamp でゆるやかにしか縮まないため、そのままだと
	   1920 未満で左のテキストが折り返す。カンプでは 4 行とも折り返し無しなので、
	   下限を 41% に置いたまま、必要なら文字の幅ぶんまで列を広げる。 */
	.p-cquality {
		display: grid;
		grid-template-columns: minmax(41%, max-content) minmax(30%, 1fr);
		align-items: center;
		background: var(--color-white2);
	}

	/* テキストは上下中央だが（align-items: center）、写真はカンプ 22:672 のとおり
	   セクションの高さいっぱいに敷く。列が細くなる幅でも上下に白が残らない。 */
	.p-cquality__media {
		position: relative;
		align-self: stretch;
		order: 2;
	}

	.p-cquality__media img {
		height: 100%;
	}

	/* 写真の左端を背景の白へなじませる（22:673 の gradation） */
	.p-cquality__media::after {
		content: "";
		position: absolute;
		inset-block: 0;
		left: var(--co-quality-fade-start);
		width: var(--co-quality-fade-width);
		background: linear-gradient(to right, var(--color-white2), var(--co-quality-fade-to));
		pointer-events: none;
	}

	/* カンプ（31:999）はどの行も折り返していない */
	.p-cquality__eng,
	.p-cquality__jp,
	.p-cquality__item {
		white-space: nowrap;
	}

	.p-cquality__body {
		order: 1;
		width: auto;
		margin: 0;
		padding: var(--co-pad) var(--space-xl) var(--co-pad) var(--gutter);
	}

	.p-cquality__jp {
		font-weight: var(--fw-medium);
		line-height: 2.5;
		color: var(--color-black1);
	}

	/* --- Ecosystem / Partner Network 共通: カンプ 1920 の縮小拡大コピー ---
	   1 単位 --co-u は「内側幅 1600px に対するカンプ 1px の実寸」。
	   文字サイズ・字間・余白をこれに載せると、どの幅でも改行位置と配置が
	   1920px と同じに保たれる（TOP の DX セクションの --dx-u と同じ考え方）。 */
	.p-ceco__inner,
	.p-cpartner__inner {
		container-type: inline-size;
		--co-u: calc(100cqw / 1600);
	}

	/* --- Ecosystem --- */
	/* カンプ 917:1481 は図が右（x843.47 y370.69 906.39x750.55）、
	   テキストが左（x156.91 y372.98）。図はセクション下端をまたいで
	   Partner Network 側へはみ出すため、ここでは overflow を切らない。 */
	.p-ceco {
		overflow: visible;
		/* 22:616 の写真帯。セクションはこれより下まで続く（下は 22:618 の黒） */
		--co-eco-photo-h: 39.4536vw; /* 757.51 / 1920 */
	}

	.p-ceco__bg {
		height: var(--co-eco-photo-h);
	}

	/* 22:620 のなじませ。セクション下端ではなく写真帯の下端に置く */
	.p-ceco::after {
		top: calc(var(--co-eco-photo-h) - 6.0714vw);
		bottom: auto;
		height: 6.0714vw; /* 116.57 */
	}

	/* リード本文の下端から 43.39 で Partner の大英字が始まる */
	.p-ceco {
		padding-bottom: 2.2599vw; /* 43.39 */
	}

	.p-cpartner {
		padding-top: 0;
	}

	.p-ceco__body {
		position: relative;
		display: block;
		min-height: 21.8vw;
		margin-top: 0;
	}

	/* 見出し下端 296.8 → アイコン / Our Purpose の上端 372.99 */
	.p-ceco__purpose {
		width: 34.0413%; /* 544.66 / 1600（33:1001 の枠） */
		margin-top: 0;
		padding-top: calc(76.19 * var(--co-u));
	}

	/* 22:728 は 97.47x81.69 */
	.p-ceco__purpose-icon {
		height: calc(81.69 * var(--co-u));
	}

	/* アイコン 97.47 + すき間 14.19 + 見出し 433 = 枠 544.66。
	   すき間が広いと見出しの幅が足りず、カンプに無い位置で改行してしまう */
	.p-ceco__purpose-head {
		gap: calc(14.19 * var(--co-u));
	}

	/* 22:725 */
	.p-ceco__purpose-eng {
		font-size: calc(24 * var(--co-u));
		letter-spacing: calc(3 * var(--co-u));
	}

	/* 22:726 はカンプでも折り返し無し */
	.p-ceco__purpose-jp {
		font-size: calc(29 * var(--co-u));
		letter-spacing: calc(5 * var(--co-u));
		white-space: nowrap;
	}

	/* 22:727 は枠の左端から 6.38 内側で幅 538.28。
	   ここがカンプとずれると本文の改行位置が変わる */
	.p-ceco__purpose-text {
		width: 98.828%; /* 538.28 / 544.66 */
		margin-top: calc(20.96 * var(--co-u)); /* 455.08 → 476.04 */
		margin-left: 1.172%; /* 6.38 / 544.66 */
		font-size: calc(16 * var(--co-u));
		letter-spacing: calc(2 * var(--co-u));
	}

	/* 22:681。Our Purpose 本文の下端 596.04 → 英字の上端 775.23 */
	.p-ceco__lead {
		display: block;
		width: 34.0413%; /* 544.66 / 1600 */
		margin-top: calc(179.19 * var(--co-u));
		margin-left: 0.7944%; /* 内側左端 160 → 172.71 */
	}

	.p-ceco__lead-eng {
		font-family: var(--font-ui);
		font-size: calc(20 * var(--co-u));
		font-weight: var(--fw-bold);
		line-height: 1.6;
		letter-spacing: calc(3 * var(--co-u));
		color: var(--color-gray2);
	}

	.p-ceco__lead-jp {
		margin-top: calc(5.69 * var(--co-u)); /* 807.23 → 812.92 */
		font-size: calc(36 * var(--co-u));
		font-weight: var(--fw-bold);
		line-height: 1.6;
		letter-spacing: calc(5 * var(--co-u)); /* 22:682 */
		color: var(--color-white2);
	}

	.p-ceco__lead-text {
		margin-top: calc(32.58 * var(--co-u)); /* 928.12 → 960.70 */
		font-size: calc(16 * var(--co-u));
		font-weight: var(--fw-medium);
		line-height: 2.5;
		letter-spacing: calc(2 * var(--co-u));
		color: var(--color-gray2);
	}

	/* 図 y370.69（セクション上端から）。本体開始位置との差を top で足す */
	/* 台紙（輪 + 中心円）の上に 6 項目のテキストを重ね、項目ごとに漂わせる。
	   位置・幅は元画像 1813x1502 に対する比。--co-eco-float を図の幅で
	   測るためにコンテナにしてある。 */
	.p-ceco__figure {
		display: block;
		position: absolute;
		top: calc(73.9 * var(--co-u)); /* 本体上端 296.8 → 図 370.70 */
		right: 1.0669%; /* 内側右端 1760 → 図の右端 1742.93 */
		width: 56.1494%; /* 898.39 / 1600 */
		container-type: inline-size;
	}

	.p-ceco__figure-base {
		display: block;
		width: 100%;
		height: auto;
	}

	/* 中央の写真を囲む輪（22:699-701）。台紙 ecosystem-feature-base.png（1813x1502）
	   からは外し、写真の縁（中心 921,733・外径の半径 299）から外へ広がりながら
	   消える波にする。3 本を 1/3 周期ずつずらして途切れなく流す（2026-09-25）。
	   大きさはすべて図の幅（コンテナ）に対する比 */
	.p-ceco__ripples {
		position: absolute;
		top: 48.802%; /* 733 / 1502 */
		left: 50.8%; /* 921 / 1813 */
		width: 32.984%; /* 写真の縁の直径 598 / 1813 */
		aspect-ratio: 1;
		translate: -50% -50%;
		pointer-events: none;
	}

	.p-ceco__ripple {
		position: absolute;
		inset: 0;
		border: var(--co-eco-ripple-width) solid var(--co-eco-ripple-color);
		border-radius: 50%;
		opacity: 0;
		animation: p-ceco-ripple var(--co-eco-ripple-duration) var(--co-eco-ripple-ease) infinite;
	}

	.p-ceco__ripple:nth-child(2) {
		animation-delay: calc(var(--co-eco-ripple-duration) / -3);
	}

	.p-ceco__ripple:nth-child(3) {
		animation-delay: calc(var(--co-eco-ripple-duration) / -1.5);
	}

	/* 元の輪（半径 335 → 372 → 435 で白 66% → 33% → 10%）と同じく、外へ行くほど
	   薄くなって消える */
	@keyframes p-ceco-ripple {
		0% {
			opacity: var(--co-eco-ripple-opacity);
			transform: scale(1);
		}

		100% {
			opacity: 0;
			transform: scale(var(--co-eco-ripple-scale));
		}
	}

	/* 動きを減らす設定では、元の画像と同じ 3 本の輪を止めて置く */
	@media (prefers-reduced-motion: reduce) {
		.p-ceco__ripple {
			animation: none;
		}

		.p-ceco__ripple:nth-child(1) {
			opacity: 0.66;
			transform: scale(1.12); /* 335 / 299 */
		}

		.p-ceco__ripple:nth-child(2) {
			opacity: 0.33;
			transform: scale(1.244); /* 372 / 299 */
		}

		.p-ceco__ripple:nth-child(3) {
			opacity: 0.1;
			transform: scale(1.455); /* 435 / 299 */
		}
	}

	.p-ceco__figure-item {
		position: absolute;
		left: var(--x);
		top: var(--y);
		width: var(--w);
		height: auto;
		animation: p-ceco-float var(--d) var(--co-eco-float-ease) var(--delay) infinite alternate;
	}

	/* 上から時計回り。周期と開始位置は 6 項目それぞれ変えてあり、互いに揃わない */
	.p-ceco__figure-item--1 {
		--x: 37.176%;
		--y: 0.133%;
		--w: 26.475%;
		--d: 3.4s;
		--delay: -0.1s;
	}

	.p-ceco__figure-item--2 {
		--x: 70.712%;
		--y: 19.308%;
		--w: 28.02%;
		--d: 4.1s;
		--delay: -1.2s;
	}

	.p-ceco__figure-item--3 {
		--x: 69.608%;
		--y: 65.113%;
		--w: 30.006%;
		--d: 3.8s;
		--delay: -0.5s;
	}

	.p-ceco__figure-item--4 {
		--x: 38.941%;
		--y: 84.82%;
		--w: 22.945%;
		--d: 4.6s;
		--delay: -2.1s;
	}

	.p-ceco__figure-item--5 {
		--x: 0.552%;
		--y: 65.113%;
		--w: 29.564%;
		--d: 3.1s;
		--delay: -0.8s;
	}

	.p-ceco__figure-item--6 {
		--x: 0%;
		--y: 18.242%;
		--w: 31.881%;
		--d: 4.3s;
		--delay: -1.7s;
	}

	@keyframes p-ceco-float {
		from {
			transform: translateY(calc(var(--co-eco-float) * -1));
		}

		to {
			transform: translateY(var(--co-eco-float));
		}
	}

	/* 動きを減らす設定では漂わせない
	   （animation の指定より後ろに置かないと後勝ちで効かない） */
	@media (prefers-reduced-motion: reduce) {
		.p-ceco__figure-item {
			animation: none;
		}
	}

	/* PC は図に内容が入るのでリストは読み上げ用に隠す */
	.p-ceco__list {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip-path: inset(50%);
		border: 0;
		white-space: nowrap;
	}

	/* --- Partner Network（33:1050 / 33:1049） --- */
	/* 大英字（22:679）の上の余白は Ecosystem の下余白が受け持つ。
	   地図の下端 9229.32 → セクション下端 9333.98。
	   ここはコンテナ（__inner）の外なので --co-u は使えず vw で持つ */
	.p-cpartner {
		padding-bottom: 5.451vw; /* 104.66 / 1920 */
	}

	.p-cpartner__title {
		margin-top: 0;
		font-size: calc(115 * var(--co-u));
		letter-spacing: calc(-1 * var(--co-u));
	}

	/* 22:622 は大英字の行ボックス（高さ 184）に 30 食い込む（8327.49 − 8173.58 = 153.91） */
	.p-cpartner__lead {
		margin-top: calc(-30.09 * var(--co-u));
		font-size: calc(32 * var(--co-u));
		line-height: 2.5;
		letter-spacing: calc(2 * var(--co-u));
	}

	/* 33:1048。カード 375 x4 + 間隔 34 x3 = 1602 ≒ 内側幅。
	   リード下端 8407.49 → カード 8438.10 */
	.p-cpartner__cards {
		grid-template-columns: repeat(4, 1fr);
		gap: calc(34 * var(--co-u));
		margin-top: calc(30.61 * var(--co-u));
	}

	.p-cpartner__card img {
		aspect-ratio: 375 / 211.05;
		border-radius: calc(5 * var(--co-u)); /* 22:736 */
	}

	/* カンプの切り取り位置（22:736 は下寄せ、22:729 は上寄せ） */
	.p-cpartner__card:nth-child(1) img {
		object-position: center bottom;
	}

	.p-cpartner__card:nth-child(2) img {
		object-position: center top;
	}

	/* 22:731-734。写真下端 8649.15 → ラベル 8664.91。中央寄せ・折り返し無し */
	.p-cpartner__card-label {
		margin-top: calc(15.76 * var(--co-u));
		font-size: calc(20 * var(--co-u));
		letter-spacing: calc(2 * var(--co-u));
		text-align: center;
		white-space: nowrap;
	}

	/* 33:1049。カードのラベル下端 8714.91 → 地図 8730.68。
	   カンプではテキスト（x163.30 w938）と地図（x894.04 w835.82）が横に重なるため、
	   2 分割ではなく同じセルに重ねて置く。列を半分にするとタイトルが折り返してしまう。 */
	.p-cpartner__outro {
		display: grid;
		grid-template-columns: 1fr;
		align-items: start;
		margin-top: calc(15.77 * var(--co-u));
	}

	/* カンプのテキスト枠は 938 だが、見出しの実寸はわずかに溢れる
	   （カンプ側も whitespace-nowrap で枠外に出ている）。1 行に収まる幅を取る。 */
	.p-cpartner__outro-body {
		grid-area: 1 / 1;
		position: relative; /* 地図より前面に置く */
		z-index: 1;
		width: 60%; /* 960 / 1600（カンプ 938 + 見出しのはみ出し分） */
		margin-top: calc(134.53 * var(--co-u)); /* 地図上端 8730.68 → 見出し 8865.21 */
	}

	/* 22:680 */
	.p-cpartner__outro-title {
		font-size: calc(36 * var(--co-u));
		letter-spacing: calc(5 * var(--co-u));
		white-space: nowrap;
	}

	/* 22:685。見出しの行ボックス下端 8922.81 → 本文 8955.21 */
	.p-cpartner__outro-desc {
		margin-top: calc(32.4 * var(--co-u));
		font-size: calc(16 * var(--co-u));
		letter-spacing: calc(2 * var(--co-u));
	}

	.p-cpartner__map {
		grid-area: 1 / 1;
		justify-self: end;
		width: 52.239%; /* 835.82 / 1600 */
		margin: 0 1.884% 0 0; /* 右端 1729.86 → 内側右端 1760 との差 30.14 */
	}

	/* --- 会社概要 ---
	   カンプ実測（セクション上端 9331.05 基準・1920 幅）:
	   写真 1920x950.61 / Company Profile y153.24 / 会社概要 y219.12
	   コピー y429.42 / ロゴ y601.16 201.21x31.08 / カード x376.43 y849.03 1200x785
	   表は カード内 x113.58 y80、ラベル列 219.42、行送り 60 */
	.p-cprofile {
		display: block;
		padding-block: 0 min(9.6188vw, 185px);
	}

	/* 背景写真（975:91-92）はセクション上端に全幅で敷く */
	.p-cprofile__media {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		/* 中間幅でもカードが写真の下端に重なるよう下限を持たせる */
		height: max(49.5vw, 520px);
		margin: 0;
	}

	.p-cprofile__media img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
	}

	/* 見出し・コピー・ロゴは写真の上に乗る */
	.p-cprofile__head {
		position: relative;
		z-index: 1;
		padding-top: 7.9812vw; /* 9484.29 - 9331.05 */
		color: var(--color-white2);
	}

	.p-cprofile__lead {
		display: block;
		margin-top: 7.8281vw; /* 会社概要 下端 9610.17 → 9760.47 */
		font-size: clamp(14px, 10px + 0.5208vw, 20px);
		font-weight: var(--fw-medium);
		line-height: 2.5;
		letter-spacing: var(--ls-wide);
		color: var(--color-gray2);
	}

	.p-cprofile__logo {
		display: block;
		width: 10.4797vw; /* 201.21 / 1920 */
		max-width: 201px;
		height: auto;
		margin: 1.1323vw auto 0;
	}

	/* 夜になりきる少し前から、リード文 → ロゴの順に下から出る。
	   見た目は共通の [data-reveal] と同じで、出るきっかけだけセクションに合わせる。 */
	.p-cprofile__lead,
	.p-cprofile__logo {
		opacity: 0;
		transform: translateY(var(--reveal-shift));
		transition:
			opacity var(--reveal-duration) var(--reveal-ease),
			transform var(--reveal-duration) var(--reveal-ease);
	}

	.p-cprofile.is-inview .p-cprofile__lead,
	.p-cprofile.is-inview .p-cprofile__logo {
		opacity: 1;
		transform: none;
	}

	.p-cprofile.is-inview .p-cprofile__lead {
		transition-delay: var(--co-profile-text-delay);
	}

	.p-cprofile.is-inview .p-cprofile__logo {
		transition-delay: var(--co-profile-logo-delay);
	}

	/* 動きを減らす設定では待たずに最初から出す
	   （transition の指定より後ろに置かないと後勝ちで効かない） */
	@media (prefers-reduced-motion: reduce) {
		.p-cprofile__lead,
		.p-cprofile__logo,
		.p-cprofile.is-inview .p-cprofile__lead,
		.p-cprofile.is-inview .p-cprofile__logo {
			opacity: 1;
			transform: none;
			transition: none;
		}
	}

	.p-cprofile__card {
		position: relative;
		z-index: 1;
		order: 0;
		width: min(100% - var(--gutter) * 2, 1200px);
		margin-top: 11.2911vw; /* ロゴ下端 9963.29 → カード上端 10180.08 */
		padding: min(4.1667vw, 80px) min(5.9156vw, 114px);
		background: var(--color-white2);
		border-radius: var(--co-card-radius);
		box-shadow: 0 4px 8px 1px rgba(0, 0, 0, 0.05); /* 949:13 */
	}

	.p-cprofile__row {
		grid-template-columns: 22.55% 1fr; /* 219.42 / 972.84 */
		gap: 0;
		padding-block: 0 10px;
		border-top: 0;
	}

	.p-cprofile__row + .p-cprofile__row {
		border-top: 0;
	}

	/* 罫線は値の列だけに引く（949:41-49 は x709.43 から） */
	.p-cprofile__row:not(.p-cprofile__row--last) .p-cprofile__value {
		border-bottom: var(--border-thin) solid var(--color-gray1);
	}

	.p-cprofile__row--last {
		padding-bottom: 0;
	}

	.p-cprofile__label {
		font-weight: var(--fw-medium);
		color: var(--color-gray3);
	}
}


/* ============================================================
   SP カンプ（Frame 8 / 31:824・375x6149）準拠の上書き
   ------------------------------------------------------------
   2026-09 の SP 専用カンプに合わせた再実装。基本スタイル（モバイルファースト）は
   旧 SP カンプ準拠のまま残っているため、差分をここでまとめて上書きする。
   数値は断りがない限りカンプ 375px の実測 px。
   ============================================================ */

/* SP 専用の新要素。既定では隠し、下の SP ブロックでだけ出す */
.p-cstory__office,
.p-cquality__vert,
.p-ceco__core,
.p-cpartner__label-list,
.p-cprofile__lead--sp {
	display: none;
}

@media (max-width: 1024px) {
	/* --- FV（34:1056）: 暗幕 0.4 --- */
	.p-cfv__bg::after {
		background: rgba(0, 0, 0, 0.4);
	}

	/* --- Why We Exist（34:1057） --- */
	/* jp 下端 842.31 → リード 862.42 / リード下端 937.42 → 本文 982.52 */
	.p-cwhy__lead {
		margin-top: calc(20 * var(--co-su));
	}

	.p-cwhy__text {
		margin-top: calc(45 * var(--co-su));
	}

	/* 線画はカンプどおりリードの右に重ねる（34:1065: x172.3 y894.3 175.15x82.6、
	   inner 上端 = 見出し y782.8 から 111.5）。カンプの枠は旧い画像のままなので、
	   新しい線画（1536x1024）を枠の高さ 82.6 に合わせ、枠の中で左右中央に置く:
	   幅 82.6 x 1.5 = 123.9、右端は 347.5 − (175.15 − 123.9) / 2 = 321.9 → 右から 25.6。
	   長さは文字と同じ --co-su（内容幅の % だと iPad で線画だけ大きくなる） */
	.p-cwhy__feature {
		position: absolute;
		top: calc(120 * var(--co-su));
		right: calc(25.6 * var(--co-su));
		width: calc(123.9 * var(--co-su));
		max-width: none;
		margin: 0;
	}

	/* カード列（34:1066-1074）。本文下端 1078.52 → 1108.52 */
	.p-cwhy__cards {
		margin-top: calc(30 * var(--co-su));
	}

	.p-cwhy__card-image {
		border-radius: calc(3 * var(--co-su));
	}

	/* ラベル帯（34:1068）: 写真の下端 35.16 に透明 → 黒 50%。写真の下端は英字の
	   上端から 19.7 下なので、英字の箱を基準に置く（34:1068 y1141.17 / 英字 y1156.6） */
	.p-cwhy__card-body::before {
		position: absolute;
		top: calc(-15.45 * var(--co-su));
		right: 0;
		left: 0;
		height: calc(35.16 * var(--co-su));
		border-radius: 0 0 calc(3 * var(--co-su)) calc(3 * var(--co-su));
		background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
		content: "";
	}

	.p-cwhy__card-eng {
		position: relative; /* 帯より手前 */
	}

	/* 34:1075 y1207.4。カード下端 = 英字の下端 1188.6 から 18.8 */
	.p-cwhy__catch {
		margin-top: calc(18.8 * var(--co-su));
	}

	.p-cwhy__outro {
		margin-top: calc(30 * var(--co-su));
		line-height: 2;
	}

	/* --- Industry Challenges（34:1077） --- */
	/* 見出し下端 1582.41 → 写真 1604.97。写真列は左右いっぱいに使う */
	.p-cstory__body {
		margin-top: calc(22 * var(--co-su));
		margin-inline: calc(var(--gutter) * -1);
	}

	/* 代表写真（34:1080）は左端から 255.85 幅。右のオフィス写真は calc(31 * var(--co-su)) 下がる */
	.p-cstory__media {
		width: 68.23%; /* 255.85 / 375 */
	}

	.p-cstory__image {
		aspect-ratio: 255.85 / 177;
	}

	.p-cstory__office {
		display: block;
		position: absolute;
		top: calc(31 * var(--co-su));
		right: -31.77vw; /* media（幅 68.23vw）の右端 → 画面右端 */
		width: 29.15vw; /* 109.31 / 375 */
		height: auto;
		aspect-ratio: 109.31 / 177;
		object-fit: cover;
	}

	/* 署名（34:1086）は写真の左下に白で乗る */
	.p-cstory__sign {
		position: absolute;
		left: var(--gutter);
		bottom: calc(26 * var(--co-su));
		margin: 0;
		font-size: calc(8 * var(--co-su));
		font-weight: var(--fw-regular);
		line-height: 1.6;
		letter-spacing: calc(1 * var(--co-su));
		color: #fff;
	}

	/* Brand Story カード（34:1083）。写真の下端に 18.5 重なる */
	.p-cstory__panel {
		z-index: 1;
		width: calc(100% - var(--gutter) * 2);
		margin: calc(-18 * var(--co-su)) auto 0;
		padding: calc(18 * var(--co-su)) calc(35 * var(--co-su)) calc(35 * var(--co-su));
	}

	/* SP カンプのカードに「ブランドストーリー」の和文見出しは無い */
	.p-cstory__panel-jp {
		display: none;
	}

	.p-cstory__text {
		margin-top: calc(7 * var(--co-su));
		letter-spacing: calc(2 * var(--co-su));
	}

	/* カード下端 → セクション下端 71.3 */
	.p-cstory {
		padding-bottom: calc(71 * var(--co-su));
	}

	/* --- 私たちが作る体験（35:1379-1388）: スワイプで横送り --- */
	.p-cvisible {
		display: block;
		padding-block: var(--co-pad);
		background: var(--color-white2);
	}

	.p-cvisible__inner {
		width: min(100% - var(--gutter) * 2, var(--co-inner));
		margin-inline: auto;
	}

	.p-cvisible__inner > .c-company-eng,
	.p-cvisible__inner > .c-company-jp {
		text-align: center;
	}

	/* 1 枚目の右に次のカードがのぞく（35:1388）。指で横に送れる */
	.p-cvisible__cards {
		display: flex;
		gap: calc(15 * var(--co-su)); /* 291.05 - (38 + 238) */
		margin-top: calc(22 * var(--co-su));
		margin-inline: calc(var(--gutter) * -1);
		padding-inline: calc(38 * var(--co-su));
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: calc(38 * var(--co-su));
		scrollbar-width: none;
	}

	.p-cvisible__cards::-webkit-scrollbar {
		display: none;
	}

	/* % はスクローラーの内容幅（padding を除く）基準になってしまうため、画面幅基準で持つ */
	.p-cvisible__card {
		flex: 0 0 63.47vw; /* 238 / 375 */
		scroll-snap-align: start;
	}

	.p-cvisible__card-image {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 238 / 303;
		object-fit: cover;
		border-radius: var(--co-vis-radius);
	}

	/* 436:69: 英字 28px は写真の中で中央揃え（和文・説明文は左揃えのまま） */
	.p-cvisible__card-eng {
		font-size: calc(28 * var(--co-su));
		line-height: 1.6;
		letter-spacing: calc(1 * var(--co-su));
	}

	/* 35:1385 は写真の下端 303 から 6 下（y309） */
	.p-cvisible__card-jp {
		margin-top: calc(6 * var(--co-su));
		font-size: calc(14 * var(--co-su));
		font-weight: var(--fw-medium);
		line-height: 2.5;
		letter-spacing: calc(2 * var(--co-su));
		color: var(--color-black2);
	}

	.p-cvisible__card-desc {
		font-size: calc(12 * var(--co-su));
		line-height: 1.8;
		letter-spacing: calc(2 * var(--co-su));
		white-space: nowrap; /* 35:1384 */
		color: var(--color-black2);
	}

	/* --- Our Principles（34:1089-1107） --- */
	/* 帯は白カードに写真をはめ、英字がカード上端をまたぐ（34:1102 y2913.4 / カード 2934.39） */
	.p-cvalue__cards {
		gap: calc(30.5 * var(--co-su));
		margin-top: calc(33 * var(--co-su));
	}

	.p-cvalue__card {
		display: block;
		position: relative;
		width: 92.67%; /* 347.5 / 375 */
		height: calc(86.72 * var(--co-su));
		padding: calc(24 * var(--co-su)) 0 0 38.3%; /* 説明の位置 x160.13（カード左端から 133 = 38.3%） */
		overflow: visible;
		text-align: left;
		border-radius: calc(5 * var(--co-su)) 0 0 calc(5 * var(--co-su));
		box-shadow: none;
	}

	.p-cvalue__card:nth-child(even) {
		justify-self: start;
		padding: calc(21 * var(--co-su)) 0 0 calc(28.7 * var(--co-su));
		border-radius: 0 calc(5 * var(--co-su)) calc(5 * var(--co-su)) 0;
	}

	/* アイコンと番号は SP カンプに無い */
	.p-cvalue__card-head {
		display: none;
	}

	/* 写真（34:1096）。奇数は左・偶数は右にはまり、白へフェードして文字面につながる */
	.p-cvalue__card-media {
		position: absolute;
		inset: 0 auto 0 0;
		width: 35.13%; /* 122.09 / 347.5 */
		overflow: hidden;
		border-radius: calc(5 * var(--co-su)) 0 0 calc(5 * var(--co-su));
	}

	.p-cvalue__card:nth-child(even) .p-cvalue__card-media {
		inset: 0 0 0 auto;
		width: 32.18%; /* 111.83 / 347.5 */
		border-radius: 0 calc(5 * var(--co-su)) calc(5 * var(--co-su)) 0;
	}

	.p-cvalue__card-media img {
		aspect-ratio: auto;
	}

	.p-cvalue__card-media::after {
		content: "";
		position: absolute;
		inset: 0 0 0 auto;
		width: calc(40.88 * var(--co-su));
		background: linear-gradient(to right, rgba(254, 254, 254, 0), var(--color-white2));
	}

	.p-cvalue__card:nth-child(even) .p-cvalue__card-media::after {
		inset: 0 auto 0 0;
		background: linear-gradient(to left, rgba(254, 254, 254, 0), var(--color-white2));
	}

	/* 英字はカード上端を calc(21 * var(--co-su)) またぐ。奇数は文字面の中央、偶数は左寄せ */
	.p-cvalue__card-eng {
		position: absolute;
		top: calc(-21 * var(--co-su));
		left: 35.13%;
		right: 0;
		font-size: calc(24 * var(--co-su));
		line-height: 1.6;
		letter-spacing: calc(1 * var(--co-su));
		text-align: center;
		color: var(--color-gray2);
	}

	.p-cvalue__card:nth-child(even) .p-cvalue__card-eng {
		left: calc(28.7 * var(--co-su));
		right: auto;
		text-align: left;
	}

	.p-cvalue__card-body {
		padding: 0;
	}

	.p-cvalue__card-desc {
		font-size: calc(12 * var(--co-su));
		letter-spacing: calc(1 * var(--co-su));
		white-space: nowrap; /* 34:1104 */
		color: var(--color-black1);
	}

	/* 品質ブロックが同じ薄灰の上に続くので下余白は持たない */
	.p-cvalue {
		padding-bottom: 0;
	}

	/* --- EXone Quality（34:1090-1112） --- */
	/* 左端に縦書きの飾り、本文は calc(80 * var(--co-su)) 右に寄せる。写真は右端まで伸ばす */
	.p-cquality {
		display: grid;
		grid-template-columns: calc(80 * var(--co-su)) 1fr;
		padding-block: calc(61 * var(--co-su)) calc(60 * var(--co-su));
	}

	/* 見出しの h2 は読み上げ用に残して視覚的には隠す（縦書きの飾りが代わり） */
	.p-cquality__eng {
		position: absolute;
		width: calc(1 * var(--co-su));
		height: calc(1 * var(--co-su));
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	/* 横書きの 1 行を左へ 90° 回して縦に読む（下 → 上）。
	   基点をボックス左上に置き、回転後に枠 y61..371 / x0..70 へ収まるよう
	   ボックスを回転前は (0, 371) から横に 310 置いている */
	.p-cquality__vert {
		display: block;
		position: absolute;
		top: calc(371 * var(--co-su));
		left: 0;
		width: calc(310 * var(--co-su));
		font-family: var(--font-ui);
		font-size: calc(48 * var(--co-su));
		font-weight: var(--fw-semibold);
		line-height: 1.45;
		letter-spacing: calc(1 * var(--co-su));
		white-space: nowrap;
		color: var(--color-gray2);
		transform: rotate(-90deg);
		transform-origin: 0 0;
	}

	.p-cquality__body {
		display: contents;
	}

	.p-cquality__jp {
		grid-column: 2;
		font-size: calc(16 * var(--co-su));
		line-height: 1.625;
		letter-spacing: calc(2 * var(--co-su));
	}

	.p-cquality__media {
		grid-column: 2;
		grid-row: 2;
		margin-top: calc(18 * var(--co-su));
	}

	.p-cquality__media img {
		aspect-ratio: 295.04 / 167.46;
	}

	.p-cquality__list {
		grid-column: 2;
		grid-row: 3;
		margin-top: calc(13 * var(--co-su));
	}

	.p-cquality__item {
		padding-left: calc(9.6 * var(--co-su));
		font-size: calc(11 * var(--co-su));
		letter-spacing: calc(1 * var(--co-su));
		color: var(--color-black1);
	}

	.p-cquality__item::before {
		top: 50%;
		width: calc(1.8 * var(--co-su));
		height: calc(14.6 * var(--co-su));
		transform: translateY(-50%);
	}

	/* --- EXone Ecosystem（34:1169） --- */
	/* 背景写真は上の 384.64 だけ。0.5 の暗幕 + ぼかしで、下端は黒へなじませる */
	.p-ceco__bg {
		height: 102.57vw; /* 384.64 / 375 */
	}

	.p-ceco__bg::after {
		background: rgba(0, 0, 0, 0.5);
		backdrop-filter: blur(calc(5 * var(--co-su)));
	}

	.p-ceco::after {
		top: calc(102.57vw - 22.48vw);
		bottom: auto;
		height: 22.48vw; /* 84.3 / 375 */
	}

	/* 見出し下端 3792.4 → アイコン 3815.07 */
	.p-ceco__purpose {
		margin-top: calc(23 * var(--co-su));
	}

	.p-ceco__purpose-head {
		gap: calc(9 * var(--co-su));
	}

	.p-ceco__purpose-icon {
		height: calc(46.6 * var(--co-su));
	}

	.p-ceco__purpose-jp {
		font-size: calc(16 * var(--co-su));
		letter-spacing: calc(2 * var(--co-su));
	}

	.p-ceco__purpose-text {
		margin-top: calc(12 * var(--co-su));
		font-size: calc(12 * var(--co-su));
		font-weight: var(--fw-regular);
		line-height: 2;
		letter-spacing: calc(1 * var(--co-su));
	}

	/* 顧客体験（34:1187-1191）。写真の左下にロゴが重なる */
	.p-ceco__core {
		display: block;
		position: relative;
		margin-top: calc(25 * var(--co-su));
	}

	.p-ceco__core-gradient {
		display: block;
		position: absolute;
		top: calc(-15 * var(--co-su));
		left: calc(50% - 50vw);
		width: 100vw;
		height: calc(84.3 * var(--co-su));
		background: linear-gradient(180deg, rgba(26, 26, 26, 0), var(--color-black2));
	}

	.p-ceco__core-image {
		display: block;
		position: relative;
		width: 73.31%; /* 234.58 / 320 */
		height: auto;
		margin-left: auto;
		border-radius: calc(5 * var(--co-su));
	}

	.p-ceco__core-logo {
		position: relative;
		display: block;
		width: 38.7%; /* 123.82 / 320 */
		height: auto;
		margin-top: calc(-48 * var(--co-su));
	}

	.p-ceco__core-title {
		position: relative;
		margin-top: calc(7 * var(--co-su));
		font-size: calc(16 * var(--co-su));
		font-weight: var(--fw-bold);
		line-height: 1.6;
		letter-spacing: calc(2 * var(--co-su));
		color: var(--color-orange1);
	}

	.p-ceco__core-text {
		position: relative;
		margin-top: calc(11 * var(--co-su));
		margin-left: calc(26 * var(--co-su));
		font-size: calc(12 * var(--co-su));
		line-height: 1.8;
		letter-spacing: calc(1 * var(--co-su));
		color: var(--color-gray2);
	}

	/* 6 項目（34:1192-1216）。オレンジの縦線が顧客体験の本文から下まで通る */
	.p-ceco__list {
		position: relative;
		margin-top: calc(26 * var(--co-su));
		padding-left: calc(26 * var(--co-su));
		border-left: 0;
	}

	.p-ceco__list::before {
		content: "";
		position: absolute;
		top: calc(-51 * var(--co-su));
		left: calc(8 * var(--co-su));
		width: calc(1 * var(--co-su));
		height: calc(100% + calc(51 * var(--co-su)));
		background: var(--color-orange1);
	}

	.p-ceco__item + .p-ceco__item {
		margin-top: calc(5 * var(--co-su));
		padding-top: 0;
		border-top: 0;
	}

	.p-ceco__item-head {
		align-items: center;
		border-bottom: var(--border-thin) solid var(--co-watermark-dark);
	}

	.p-ceco__item-jp {
		font-size: calc(14 * var(--co-su));
		letter-spacing: calc(2 * var(--co-su));
	}

	/* 英字は背景と同系の暗い色（34:1192 #2c2c2c） */
	.p-ceco__item-eng {
		font-size: calc(12 * var(--co-su));
		font-weight: var(--fw-semibold);
		letter-spacing: calc(1 * var(--co-su));
		color: #2c2c2c;
	}

	.p-ceco__item-desc {
		margin-top: calc(10 * var(--co-su));
		font-size: calc(12 * var(--co-su));
		letter-spacing: calc(1 * var(--co-su));
	}

	/* リスト下端 → Partner の大英字 43.3 */
	.p-ceco {
		padding-bottom: calc(43 * var(--co-su));
	}

	/* --- Partner Network（34:1169 内） --- */
	.p-cpartner {
		padding-top: 0;
		padding-bottom: calc(60 * var(--co-su));
	}

	.p-cpartner__title {
		font-size: calc(40 * var(--co-su));
		line-height: 1.6;
	}

	.p-cpartner__lead {
		margin-top: 0;
		font-size: calc(16 * var(--co-su));
		line-height: 1.8;
		letter-spacing: calc(2 * var(--co-su));
	}

	/* 写真帯（34:1172-1218）: 全幅・角丸なし。指で横に送れる */
	.p-cpartner__cards {
		display: flex;
		gap: 0;
		margin-top: calc(14 * var(--co-su));
		margin-inline: calc(var(--gutter) * -1);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.p-cpartner__cards::-webkit-scrollbar {
		display: none;
	}

	.p-cpartner__card {
		flex: 0 0 41.32%; /* 154.95 / 375 */
		scroll-snap-align: start;
	}

	.p-cpartner__card img {
		aspect-ratio: 154.95 / 87.48;
		border-radius: 0;
	}

	/* カード内ラベルの代わりに、下の一覧（34:1173-1176）を使う */
	.p-cpartner__card-label {
		display: none;
	}

	.p-cpartner__label-list {
		/* 右下に重なる地図（絶対配置）より前に出す。地図の下に潜ると文字が暗くなる */
		position: relative;
		z-index: 1;
		display: block;
		margin-top: calc(20 * var(--co-su));
	}

	.p-cpartner__label-item {
		font-size: calc(12 * var(--co-su));
		font-weight: var(--fw-medium);
		line-height: 1.6;
		letter-spacing: calc(2 * var(--co-su));
	}

	.p-cpartner__label-item + .p-cpartner__label-item {
		margin-top: calc(5 * var(--co-su));
	}

	/* 地図（34:1171）はラベル一覧の右下に小さく重なる */
	.p-cpartner__outro {
		position: relative;
		margin-top: calc(66 * var(--co-su));
	}

	.p-cpartner__map {
		position: absolute;
		top: calc(-95 * var(--co-su));
		right: calc(-5 * var(--co-su));
		/* 幅も --co-su 基準にする（375 では 191.19 / 320 = 59.75% と同値）。
		   % のままだと --sp-scale-max で他が頭打ちになるタブレット縦で地図だけ広がり、
		   下の見出しに重なる */
		width: calc(191.19 * var(--co-su));
		margin: 0;
	}

	.p-cpartner__outro-title {
		letter-spacing: calc(2 * var(--co-su));
	}

	.p-cpartner__outro-desc {
		margin-top: calc(15 * var(--co-su));
		line-height: 2;
		letter-spacing: calc(1 * var(--co-su));
	}

	/* --- Company Profile（34:1222-1318） --- */
	/* 写真（34:1314）を上に敷き、見出しとリードを重ねる。カードは写真の下端に 46 重なる */
	.p-cprofile {
		position: relative;
		padding-top: calc(60 * var(--co-su));
		padding-bottom: calc(81 * var(--co-su));
	}

	.p-cprofile__media {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 85.25vw; /* 319.67 / 375 */
		margin: 0;
		order: 0;
	}

	.p-cprofile__media img {
		height: 100%;
		aspect-ratio: auto;
	}

	/* 上を暗くして見出しを立たせる（34:1310） */
	.p-cprofile__media::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(180deg, rgba(26, 26, 26, 0.8), rgba(26, 26, 26, 0));
	}

	.p-cprofile__head {
		position: relative;
		z-index: 1;
		color: var(--color-white3);
	}

	/* SP はリードを写真の上に出す（34:1316。文言も SP 版） */
	.p-cprofile__lead--sp {
		display: block;
		margin-top: calc(25 * var(--co-su));
		font-size: calc(12 * var(--co-su));
		font-weight: var(--fw-medium);
		line-height: 1.8;
		letter-spacing: calc(1 * var(--co-su));
		text-align: left;
		color: var(--color-gray2);
	}

	/* 白カードの表（34:1318）。ラベル 12 / 値 10、罫線 #e5e5e5 */
	.p-cprofile__card {
		position: relative;
		z-index: 1;
		margin-top: calc(25 * var(--co-su));
		padding: calc(17 * var(--co-su)) calc(26.5 * var(--co-su));
		background: var(--color-white2);
	}

	.p-cprofile__row {
		grid-template-columns: calc(90 * var(--co-su)) 1fr;
		gap: 0;
		padding-block: 0;
		border-bottom: var(--border-thin) solid #e5e5e5;
	}

	.p-cprofile__row--last {
		border-bottom: 0;
	}

	.p-cprofile__label {
		font-size: calc(12 * var(--co-su));
		font-weight: var(--fw-bold);
		line-height: 2.5;
		letter-spacing: calc(1 * var(--co-su));
		color: var(--color-black1);
	}

	.p-cprofile__value {
		align-self: center;
		font-size: calc(10 * var(--co-su));
		line-height: 1.9;
		letter-spacing: calc(1 * var(--co-su));
		color: var(--color-black1);
	}
}


/* ============================================================
   PC（1025px 以上）: 1920px カンプの縮小拡大コピー化
   ------------------------------------------------------------
   1 単位 --co-vu は「カンプ 1920 の 1px の実寸」。1920px 以上では 1px で
   固定され、それ以下では画面幅に比例して縮む。文字・余白・角丸を
   この単位（または既存の vw / % / --co-u）に載せることで、どの幅でも
   1920px と同じ改行位置・比率を保つ。
   Ecosystem / Partner は内側幅基準の --co-u（cqw）で先行対応済み。
   ============================================================ */
@media (min-width: 1025px) {
	:root {
		--co-vu: min(1px, calc(100vw / 1920));

		/* clamp（375→1920 の補間）だった文字トークンを 1920 比例に置き換える */
		--co-eng-size: calc(48 * var(--co-vu));
		--co-eng-ls: calc(5 * var(--co-vu));
		--co-jp-size: calc(24 * var(--co-vu));
		--co-lead-size: calc(36 * var(--co-vu));
		--co-text-size: calc(16 * var(--co-vu));
		--co-outro-size: calc(20 * var(--co-vu));
		--co-fv-sub: calc(24 * var(--co-vu));
		--co-card-eng: calc(64 * var(--co-vu));
		--co-card-eng-overlap: calc(58.9 * var(--co-vu)); /* 写真の下端 340.63 − 英字の上端 281.73（31:978） */
		--co-vis-radius: calc(10 * var(--co-vu)); /* 436:39 */
		--co-vis-fade-h: calc(149 * var(--co-vu)); /* 436:40 */
		--co-vis-eng-bottom: calc(28 * var(--co-vu)); /* 写真の下端 481 − 英字の下端 453（436:43） */
		--co-story-eng: calc(64 * var(--co-vu));
		--co-story-text: calc(16 * var(--co-vu));
		--co-sign-size: calc(12 * var(--co-vu));
		--co-value-eng: calc(36 * var(--co-vu));
		--co-value-desc: calc(18 * var(--co-vu));
		--co-quality-jp: calc(24 * var(--co-vu));
		--co-quality-item: calc(22 * var(--co-vu));
		--co-outro-title: calc(36 * var(--co-vu));
		--co-profile-size: calc(20 * var(--co-vu));
		--co-pad: calc(160 * var(--co-vu));
		--co-card-radius: calc(10 * var(--co-vu));
		--co-mv-indent: calc(48 * var(--co-vu));
	}

	/* 固定 px のグローバル字間トークンは、縮小すると文字サイズ比で相対的に
	   広がって改行位置を変えてしまう。企業ページのセクション内だけ比例にする
	   （ヘッダー・フッターには影響させない） */
	.p-cfv,
	.p-cwhy,
	.p-cstory,
	.p-cvisible,
	.p-cvalue,
	.p-cquality,
	.p-ceco,
	.p-cpartner,
	.p-cprofile {
		--ls-wide: calc(2 * var(--co-vu));
		--ls-base: calc(1 * var(--co-vu));
		--ls-title: calc(5 * var(--co-vu));
	}

	/* --- FV: 見出しも比例させる（グローバルの clamp を上書き） --- */
	.p-cfv .c-display--hero {
		font-size: calc(120 * var(--co-vu));
		letter-spacing: calc(-3 * var(--co-vu));
	}

	/* --- Why We Exist: 共有トークン（clamp）だった間隔を比例に --- */
	.p-cwhy__inner {
		column-gap: calc(64 * var(--co-vu));
	}

	/* --- ブランドストーリー --- */
	.p-cstory__panel-eng {
		letter-spacing: calc(1 * var(--co-vu));
	}

	/* --- 私たちが作る体験 --- */
	.p-cvisible__cards {
		gap: calc(32 * var(--co-vu));
		margin-top: calc(80 * var(--co-vu)); /* 見出し下 80 ルール（旧 64） */
	}

	.p-cvisible__card-eng {
		font-size: calc(40 * var(--co-vu));
		letter-spacing: calc(1 * var(--co-vu));
	}

	.p-cvisible__card-desc {
		font-size: calc(18 * var(--co-vu));
	}

	/* --- Our Principles --- */
	.p-cvalue__cards {
		gap: calc(32 * var(--co-vu));
		margin-top: calc(80 * var(--co-vu)); /* 見出し下 80 ルール（旧 64） */
	}

	.p-cvalue__number {
		font-size: calc(36 * var(--co-vu));
		letter-spacing: calc(3 * var(--co-vu));
	}

	.p-cvalue__card-eng {
		letter-spacing: calc(1 * var(--co-vu));
	}

	/* --- EXone Quality --- */
	/* 文字が列と同じ比率で縮むようになったので、列幅をカンプの 41% / 59% に戻せる
	   （以前は clamp の文字が縮まず、列を文字に合わせて広げていた） */
	.p-cquality {
		grid-template-columns: 41% 59%;
	}

	.p-cquality__body {
		padding-right: calc(64 * var(--co-vu));
	}

	.p-cquality__list {
		margin-top: calc(32 * var(--co-vu));
	}

	.p-cquality__item::before {
		width: calc(3.58 * var(--co-vu));
	}

	/* --- Company Profile --- */
	/* 写真の高さ下限（520px）を外し、常にカンプ比（950.61 / 1920）にする */
	.p-cprofile__media {
		height: 49.51vw;
	}

	.p-cprofile__lead {
		font-size: calc(20 * var(--co-vu));
	}

	/* min(100% - ガター, 1200px) だと 1920 未満でカンプ比より広くなり、
	   表の値の折り返し位置が変わるため、常に 1200 比例で持つ */
	.p-cprofile__card {
		width: calc(1200 * var(--co-vu));
	}

	.p-cprofile__row {
		gap: calc(24 * var(--co-vu));
		padding-block: calc(8 * var(--co-vu));
	}
}


/* ============================================================
   SP（1024px 以下）: 375px カンプの縮小拡大コピー化
   ------------------------------------------------------------
   1 単位 --co-su は「カンプ 375 の 1px の実寸」。PC の --co-vu と同じ考え方で、
   どの幅でも 375px と同じ改行位置・比率を保つ（1024px では約 2.73 倍）。
   上の SP ブロックの実測 px はすべてこの単位に載せ替えてある。
   ============================================================ */
@media (max-width: 1024px) {
	:root {
		--co-su: min(calc(100vw / 375), var(--sp-scale-max)); /* 上限は style.css の --sp-scale-max */

		/* clamp（375→1920 の補間）だった文字トークンを 375 比例に置き換える */
		--co-eng-size: calc(12 * var(--co-su));
		--co-eng-ls: calc(1 * var(--co-su));
		--co-jp-size: calc(20 * var(--co-su));
		--co-lead-size: calc(14 * var(--co-su));
		--co-text-size: calc(12 * var(--co-su));
		--co-outro-size: calc(12 * var(--co-su));
		--co-fv-sub: calc(16 * var(--co-su));
		--co-card-eng: calc(20 * var(--co-su));
		--co-card-eng-overlap: calc(19.7 * var(--co-su)); /* 写真の下端 67.8 − 英字の上端 48.1（34:1072） */
		--co-vis-radius: calc(5 * var(--co-su)); /* 436:65 */
		--co-vis-fade-h: calc(97 * var(--co-su)); /* 436:66 */
		--co-vis-eng-bottom: calc(15 * var(--co-su)); /* 写真の下端 303 − 英字の下端 288（436:69） */
		--co-story-eng: calc(24 * var(--co-su));
		--co-story-text: calc(10 * var(--co-su));
		--co-sign-size: calc(10 * var(--co-su));
		--co-value-eng: calc(24 * var(--co-su));
		--co-value-desc: calc(12 * var(--co-su));
		--co-quality-jp: calc(18 * var(--co-su));
		--co-quality-item: calc(12 * var(--co-su));
		--co-partner-title: calc(40 * var(--co-su));
		--co-partner-lead: calc(16 * var(--co-su));
		--co-partner-label: calc(12 * var(--co-su));
		--co-outro-title: calc(16 * var(--co-su));
		--co-profile-size: calc(12 * var(--co-su));
		--co-pad: calc(60 * var(--co-su));
		--co-card-radius: calc(8 * var(--co-su));
		--co-mv-indent: calc(12 * var(--co-su));
	}

	/* ガターと字間はグローバルの clamp / 固定 px のままだと比例にならず
	   改行位置が変わるため、企業ページのセクション内だけ 375 比例にする
	   （ヘッダー・フッターには影響させない） */
	.p-cfv,
	.p-cwhy,
	.p-cstory,
	.p-cvisible,
	.p-cvalue,
	.p-cquality,
	.p-ceco,
	.p-cpartner,
	.p-cprofile {
		--gutter: calc(27.5 * var(--co-su));
		--ls-wide: calc(2 * var(--co-su));
		--ls-base: calc(1 * var(--co-su));
		--ls-title: calc(2 * var(--co-su));
	}

	/* トークンを通っていない文字の個別対応 */
	.p-cfv .c-display--hero {
		font-size: calc(64 * var(--co-su));
		letter-spacing: calc(-3 * var(--co-su));
	}

	.p-ceco__purpose-eng {
		font-size: calc(12 * var(--co-su));
		letter-spacing: calc(3 * var(--co-su));
	}

	.p-cstory__panel-eng {
		letter-spacing: calc(1 * var(--co-su));
	}

	.p-cpartner__title {
		letter-spacing: calc(-1 * var(--co-su));
	}
}
