@charset "UTF-8";

/* ==========================================================================
   大栄木工 採用サイト  メインスタイル
   - 命名: l- レイアウト / p- ページ・セクション / c- 再利用コンポーネント
   - BP : PC ≥1024 / Tablet 768-1023 / SP ≤767
   - 基本は @media (max-width:1023px) で SP+Tablet 一括対応
   ========================================================================== */

/* ----------------------------------------
   1. CSS 変数（デザイントークン）
   ---------------------------------------- */
:root {
	/* 色（Figmaから抽出） */
	--c-beige:       #d9ccbc;  /* ヘッダー背景 */
	--c-dark-green:  #23322b;  /* CTAボタン / フッター背景 */
	--c-white:       #ffffff;
	--c-text:        #111111;
	--c-text-sub:    #555555;
	--c-bg:          #ffffff;
	--c-bg-alt:      #f5f5f5;
	--c-border:      #e5e5e5;

	/* フォント */
	--ff-mincho: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	--ff-base:   "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--ff-en:     "Times New Roman", "Times", serif;

	/* レイアウト */
	--max-w:        1440px;
	--gutter-pc:    50px;
	--gutter-sp:    15px;
	/* 下層ページSPの左右余白：比率維持（小型機ほど小さく）、上限24px */
	--gutter-page-sp: min(5.5vw, 24px);
	--header-h-pc:  100px;
	--header-h-sp:  60px;

	/* イージング */
	--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ----------------------------------------
   2. リセット
   ---------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--ff-base);
	font-size: 16px;
	line-height: 1.7;
	color: var(--c-text);
	background: var(--c-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }

a {
	color: inherit;
	text-decoration: none;
	transition: opacity .25s var(--ease-out);
}
a:hover { opacity: .7; }

img, svg, video {
	display: block;
	max-width: 100%;
	height: auto;
}

button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

/* ----------------------------------------
   3. ユーティリティ
   ---------------------------------------- */
.u-pc-hidden { display: none; }
.u-sp-hidden { display: inline; }
@media (max-width: 1023px) {
	.u-pc-hidden { display: inline; }
	.u-sp-hidden { display: none; }
}

/* ==========================================================================
   l-header  PCヘッダー / SPヘッダー
   Figma: 175:880 (PC 1440x100) / 271:1220 (SP 440x60)
   ========================================================================== */
.l-header {
	position: fixed; /* 全ページで追従 */
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: var(--c-beige);
	height: var(--header-h-pc);
}

/* TOP以外は本文がヘッダーに被らないよう padding-top */
body:not(.home) {
	padding-top: var(--header-h-pc);
}
@media (max-width: 1023px) {
	body:not(.home) {
		padding-top: var(--header-h-sp);
	}
}
.l-header__inner {
	max-width: var(--max-w);
	height: 100%;
	margin: 0 auto;
	padding: 0 var(--gutter-pc);
	display: flex;
	align-items: center;
	gap: 40px;
}

/* ロゴ */
.l-header__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: 163px;
	flex-shrink: 0;
}
.l-header__logo-img {
	display: block;
	width: 100%;
	height: auto;
}
.l-header__logo-sub {
	font-family: var(--ff-en);
	font-size: 16px;
	line-height: 1.25;
	color: var(--c-white);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* グローバルナビ */
.l-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}
.l-header__menu {
	display: flex;
	align-items: center;
	gap: 25px;
}
.l-header__menu a {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.25;
	color: var(--c-white);
	white-space: nowrap;
}

/* CTA「募集要項」 */
.l-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 150px;
	height: 60px;
	padding: 10px;
	background: var(--c-dark-green);
	color: var(--c-white);
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.25;
	border-radius: 109px;
	flex-shrink: 0;
}

/* ドロワーボタン（PCでは非表示） */
.l-header__drawer-btn { display: none; }

/* ----- SPヘッダー（max-width:1023px） ----- */
@media (max-width: 1023px) {
	.l-header { height: var(--header-h-sp); }

	.l-header__inner {
		padding: 0 var(--gutter-sp);
		gap: 0;
	}

	/* ロゴ縮小 */
	.l-header__logo {
		width: 76px;
		gap: 2px;
	}
	.l-header__logo-sub {
		font-size: 8px;
	}

	/* グローバルナビは非表示（ドロワーに移動） */
	.l-header__nav { display: none; }

	/* CTA を小型化 + 右寄せ */
	.l-header__cta {
		margin-left: auto;
		width: 100px;
		height: 24px;
		padding: 4px 10px;
		font-size: 10px;
	}

	/* ハンバーガー */
	.l-header__drawer-btn {
		display: inline-flex;
		flex-direction: column;
		justify-content: space-between;
		width: 24px;
		height: 12px;
		margin-left: 12px;
		flex-shrink: 0;
	}
	.l-header__drawer-btn span {
		display: block;
		width: 100%;
		height: 1px;
		background: var(--c-white);
		transition: transform .25s var(--ease-out), opacity .25s var(--ease-out);
	}
	/* ドロワーオープン時：×印 */
	.l-header__drawer-btn[aria-expanded="true"] span:nth-child(1) {
		transform: translateY(5.5px) rotate(45deg);
	}
	.l-header__drawer-btn[aria-expanded="true"] span:nth-child(2) {
		transform: translateY(-5.5px) rotate(-45deg);
	}
}

/* ==========================================================================
   l-drawer  SPドロワー
   ========================================================================== */
.l-drawer {
	position: fixed;
	top: 0; /* 画面最上部から */
	left: 0;
	right: 0;
	height: 80vh; /* 画面の80% */
	background: var(--c-dark-green); /* Figma: #23322b */
	z-index: 110; /* ヘッダー(100)の上：ヘッダーを覆い隠す */
	padding: clamp(60px, 16vw, 92px) var(--gutter-sp) clamp(40px, 8vw, 60px);
	transform: translateX(100%);
	transition: transform .35s var(--ease-out);
	overflow-y: auto;
	visibility: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(40px, 12vw, 80px);
}
/* ドロワー内 × 閉じるボタン */
.l-drawer__close {
	position: absolute;
	top: clamp(12px, 3vw, 20px);
	right: clamp(12px, 4vw, 20px);
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--c-white);
	cursor: pointer;
	padding: 0;
}
.l-drawer__close svg {
	display: block;
	width: 100%;
	height: 100%;
}
.l-drawer.is-open {
	transform: translateX(0);
	visibility: visible;
}
/* ロゴ */
.l-drawer__logo {
	display: block;
	width: clamp(180px, 58vw, 255px);
	margin: 0;
}
.l-drawer__logo img {
	display: block;
	width: 100%;
	height: auto;
}
/* メニュー */
.l-drawer__menu {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-align: center;
	list-style: none;
	padding: 0;
	margin: 0;
}
.l-drawer__menu a {
	font-family: var(--ff-mincho);
	font-weight: 700; /* Bold */
	font-size: 12px;
	line-height: 24px;
	color: var(--c-white);
	letter-spacing: -0.025em;
	text-decoration: none;
}
.l-drawer__external {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.l-drawer__external-icon {
	width: 8px;
	height: 8px;
	color: var(--c-white);
	flex-shrink: 0;
}
@media (min-width: 1024px) {
	.l-drawer { display: none; }
}

/* ==========================================================================
   l-footer  PCフッター / SPフッター
   Figma: 186:1118 (PC 1440x452) / 271:1528 (SP 440x681)
   ========================================================================== */
.l-footer {
	position: relative;
	z-index: 2; /* MV の fixed 背景画像より上に表示（下層ページ対策） */
	background: var(--c-dark-green);
	color: var(--c-white);
	margin-top: clamp(48px, 6vw, 80px);
}
/* TOPページではフッターは fixed で margin-top 不要 */
body.home .l-footer { margin-top: 0; }
.l-footer__inner {
	max-width: var(--max-w);
	margin: 0 auto;
	padding: 90px var(--gutter-pc) 0;
	display: grid;
	grid-template-columns: 1fr auto;
	column-gap: 60px;
	row-gap: 0;
	position: relative;
}

/* ブランド（ロゴ + 住所） */
.l-footer__brand { /* grid左カラム */ }
.l-footer__logo {
	display: block;
	width: 198px;
	height: auto;
	margin-bottom: 25px;
}
.l-footer__address {
	font-family: var(--ff-mincho);
	font-weight: 600;
	font-size: 12px;
	line-height: 1.6;
	color: var(--c-white);
}

/* ナビ（3カラム） */
.l-footer__nav {
	display: flex;
	gap: 40px;
}
.l-footer__col {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 111px;
}
.l-footer__col a,
.l-footer__col p {
	font-family: var(--ff-mincho);
	font-weight: 700;
	font-size: 16px;
	line-height: 24px;
	letter-spacing: -0.02em;
	color: var(--c-white);
}
.l-footer__external {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.l-footer__external-icon {
	width: 8px;
	height: 8px;
	color: var(--c-white);
	flex-shrink: 0;
}

/* 下部：区切り線 + コピーライト */
.l-footer__bottom {
	grid-column: 1 / -1;
	margin-top: 90px;
	padding: 33px 30px 24px;
	border-top: 1px solid var(--c-white);
	text-align: center;
}
.l-footer__copy {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: 14px;
	line-height: 20px;
	color: var(--c-white);
}

/* ----- SPフッター（max-width:1023px） ----- */
@media (max-width: 1023px) {
	.l-footer__inner {
		padding: 60px var(--gutter-sp) 0;
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.l-footer__brand {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.l-footer__logo { margin-bottom: 32px; }
	.l-footer__address {
		font-size: 10px;
		text-align: center;
		margin-bottom: 48px;
	}

	.l-footer__nav {
		flex-direction: column;
		gap: 12px;
		align-items: center;
	}
	.l-footer__col {
		gap: 12px;
		align-items: center;
		min-width: 0;
	}
	.l-footer__col a,
	.l-footer__col p {
		font-size: 12px;
	}

	.l-footer__bottom {
		margin-top: 48px;
		padding: 24px var(--gutter-sp);
	}
	.l-footer__copy {
		font-size: 12px;
	}
}

/* ==========================================================================
   l-main / ページ別スタイル（順次追加）
   ========================================================================== */
.l-main {
	display: block;
	min-height: 50vh;
}

/* ==========================================================================
   p-origin  創業原点 下層ページ
   Figma: 167:2 (PC) / 271:1722 (SP)
   ========================================================================== */
.page-origin {
	background: transparent; /* MV画像（fixed）が常時透けて見える */
}
.p-origin {
	color: var(--c-dark-green);
}

/* ----- MV：背景画像を fixed で固定、後続コンテンツが上にスクロールしてくる ----- */
.p-origin__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc); /* ヘッダー高さ分の余白 → 中央 = ヘッダー下〜下端の中央 */
}
@media (max-width: 1023px) {
	.p-origin__mv {
		padding-top: var(--header-h-sp);
	}
}
.p-origin__mv-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: #d9ccbc; /* MV画像の下地色（画像が覆い切らない領域に出る） */
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
@media (max-width: 1023px) {
	.p-origin__mv-bg {
		background-image: var(--bg-sp, var(--bg-pc, none));
	}
}

.p-origin__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.2vw, 30px);
	margin: 0;
	pointer-events: none;
}
.p-origin__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 2vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-origin__mv-copy {
		gap: clamp(16px, 4vw, 24px);
	}
	.p-origin__mv-line {
		font-size: 18px;
	}
}

/* ----- 本文ボディ（PC/SP 共通で透明：MV画像が常時透けて見える） ----- */
.p-origin__body {
	position: relative;
	z-index: 1;
	background: transparent;
	padding: 0;
}

/* ----- 各 Chapter: 1画面 = 1セクション ----- */
.p-origin__chapter {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 80px 0;
	gap: 64px;
}
.p-origin__chapter--intro {
	gap: clamp(64px, 8vh, 120px);
}
@media (max-width: 1023px) {
	.p-origin__chapter {
		min-height: 0; /* SP は 100vh 固定をやめてコンテンツ高さに合わせる */
		padding: 50px 0;
		gap: 40px;
	}
}

/* タイトル */
.p-origin__heading {
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-origin__label {
	font-size: clamp(14px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
	letter-spacing: 0.05em;
}
.p-origin__title {
	font-size: clamp(18px, 1.6vw, 21px);
	line-height: 1.25;
	margin: 0;
	font-weight: 800;
}
@media (max-width: 1023px) {
	.p-origin__label { font-size: 16px; }
	.p-origin__title { font-size: 16px; }
}

/* ----- ブロック（画像 + テキスト 横並び）相対値ベース ----- */
.p-origin__block {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: clamp(40px, 9vw, 130px); /* PC: 130 (130/1440 ≒ 9vw) / SP は縦並びで gap 別途指定 */
}
/* ブロック2: Figmaは普通のrow（テキスト左・画像右） gap だけ違う */
.p-origin__block--reverse {
	gap: clamp(24px, 3.75vw, 54px);
}
.p-origin__img {
	flex-shrink: 0;
	width: clamp(280px, 27vw, 390px);
	aspect-ratio: 390 / 328; /* 高さは比率保持 */
	height: auto;
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
}
.p-origin__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.p-origin__block-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
}

/* 見出し + 横線（2行目に inline-flex で併置） */
.p-origin__lead {
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.25;
	color: var(--c-dark-green);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}
.p-origin__lead-row {
	display: block;
	white-space: nowrap; /* 1行内で改行禁止 */
}
.p-origin__lead-row--with-line {
	display: inline-flex;
	align-items: center;
	gap: 0.7em; /* Figma: text 312px → line 開始 329px ≒ 17px ≒ 0.7em @ 24px */
}
.p-origin__lead-text {
	display: inline-block;
}
.p-origin__line {
	display: inline-block;
	flex-shrink: 0;
	width: 8em; /* PC: 191px ≒ 8em @ 24px */
	height: 1px;
	background: currentColor;
}

.p-origin__body-text {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 1.8;
	color: var(--c-dark-green);
	margin: 0;
}
.p-origin__body-text--spaced {
	line-height: 3; /* Figma 本文 line-height: 3 */
}

/* ----- SP（縦並び・SP仕様） ----- */
@media (max-width: 1023px) {
	.p-origin__block {
		flex-direction: column;
		gap: clamp(40px, 7vw, 54px); /* SP: 画像→テキスト 54px */
		padding: 0 var(--gutter-page-sp); /* SPはコンテンツが画面端に張り付かないようpadding */
	}
	/* ブロック2: HTML 順は[テキスト,画像] → SPで「画像が上」にしたいので column-reverse */
	.p-origin__block--reverse {
		flex-direction: column-reverse;
		gap: clamp(40px, 7vw, 54px);
	}
	.p-origin__img {
		width: 100%;
		max-width: 376px;
		aspect-ratio: 376 / 315; /* SP は微妙にアスペクト違い */
	}
	.p-origin__block-text {
		gap: clamp(20px, 4vw, 28px);
		width: 100%;
	}
	.p-origin__lead { font-size: clamp(14px, 4.5vw, 18px); }
	/* SP の横線: 7em ≒ 126px @ 18px (Figma 33.51%) */
	.p-origin__line {
		width: 7em;
	}
	.p-origin__body-text { font-size: clamp(11px, 3vw, 12px); }
}

/* ----- 段落（中央寄せ）相対値ベース ----- */
.p-origin__paragraphs {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(20px, 4vw, 50px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
	text-align: center;
}
.p-origin__paragraphs p {
	margin: 0 0 clamp(28px, 3vw, 44px);
}
.p-origin__paragraphs p:last-child {
	margin-bottom: 0;
}
@media (max-width: 1023px) {
	.p-origin__paragraphs {
		padding: 0 var(--gutter-page-sp);
	}
}

/* 縦書き4行 相対値ベース */
.p-origin__vertical {
	display: flex;
	justify-content: center;
	width: 100%;
}
.p-origin__vertical-inner {
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(16px, 2vw, 30px); /* PC: 30 / SP: 24 程度 */
}
.p-origin__vertical-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
/* 本文（締めくくり） */
.p-origin__final {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	padding: 0; /* PC: padding 不要 */
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
	text-align: center;
}
.p-origin__final-text {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0 0 clamp(36px, 4vw, 54px);
}
.p-origin__final-text--large {
	font-size: clamp(16px, 1.8vw, 24px);
}
.p-origin__final-text:last-child { margin-bottom: 0; }
@media (max-width: 1023px) {
	.p-origin__final {
		padding: 0 var(--gutter-page-sp);
	}
}

/* ==========================================================================
   p-business  事業紹介 下層ページ
   Figma: 167:154 (PC) / 299:433 (SP)
   ========================================================================== */
.page-business { background: transparent; }
.p-business { color: var(--c-dark-green); }

/* ----- MV (背景固定 + 5行縦書きキャッチコピー) ----- */
.p-business__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc);
}
.p-business__mv-bg {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-business__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.8vw, 40px);
	margin: 0;
	pointer-events: none;
}
.p-business__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-business__mv {
		padding-top: var(--header-h-sp);
	}
	.p-business__mv-bg {
		background-image: var(--bg-sp, var(--bg-pc, none));
	}
	.p-business__mv-copy {
		gap: clamp(16px, 5vw, 24px);
	}
	.p-business__mv-line {
		font-size: 18px;
	}
}

/* ----- Body ----- */
.p-business__body {
	position: relative;
	z-index: 1;
	background: transparent;
}

/* ----- 共通 Chapter（創業原点より余白少なめ） ----- */
.p-business__chapter {
	padding: clamp(48px, 6vw, 80px) 0;
}
.p-business__chapter--cta {
	padding-bottom: clamp(80px, 10vw, 120px);
}

/* ----- タイトル ----- */
.p-business__heading {
	text-align: center;
	padding: clamp(80px, 10vw, 120px) 0 clamp(48px, 6vw, 80px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-business__label {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-business__title {
	font-size: clamp(18px, 1.6vw, 21px);
	line-height: 1.25;
	margin: 0;
}

/* ----- 見出し + 横線 ----- */
.p-business__lead-block {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
}
.p-business__lead {
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.25;
	color: var(--c-dark-green);
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
}
.p-business__lead-text { display: inline-block; }

/* 「0.1ミリ」マーカー（文字に少し被さる黄色のハイライト） */
.p-business__marker {
	background: linear-gradient(
		transparent 80%,
		rgba(226, 217, 163, 0.80) 80%
	);
	/* 文字下20%に薄い黄色のマーカー */
}
.p-business__line {
	flex-shrink: 0;
	display: inline-block;
	width: clamp(60px, 6vw, 87px); /* Figma w:87px */
	height: 1px;
	background: currentColor;
}

/* ----- 本文テキスト ----- */
.p-business__body-text {
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 3;
	color: var(--c-dark-green);
}
.p-business__body-text--paragraphs {
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.5vw, 20px);
}
.p-business__body-text--paragraphs p {
	margin: 0;
	line-height: 2;
}

@media (max-width: 1023px) {
	.p-business__lead-block {
		padding: 0 var(--gutter-page-sp);
	}
	.p-business__lead { font-size: clamp(14px, 4.5vw, 18px); }
	.p-business__line {
		width: clamp(40px, 14vw, 64px); /* SP: 64px */
	}
	.p-business__body-text { font-size: clamp(11px, 3vw, 12px); }
}

/* ----- 2部門カード ----- */
.p-business__divisions {
	max-width: 1040px;
	width: 100%;
	margin: clamp(40px, 6vw, 100px) auto 0;
	display: flex;
	gap: clamp(24px, 4vw, 60px);
}
.p-business__division {
	flex: 1;
	min-width: 0;
	background: #ede1d2;
	border-radius: 20px;
	padding: clamp(20px, 2.5vw, 30px);
	box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4);
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
}
.p-business__division-head {
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-business__division-no {
	font-size: clamp(14px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 clamp(12px, 1.4vw, 20px);
}
.p-business__division-name {
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.25;
	margin: 0;
}
.p-business__division-img {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
	aspect-ratio: 430 / 329;
}
.p-business__division-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
@media (max-width: 1023px) {
	.p-business__divisions {
		flex-direction: column;
		padding: 0 var(--gutter-page-sp);
		gap: clamp(20px, 5vw, 24px);
	}
	.p-business__division {
		padding: 30px;
	}
	.p-business__division-img {
		aspect-ratio: 316 / 242;
	}
}

/* ----- 0.1mm 図 ----- */
.p-business__tolerance {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	background: #ede1d2;
	border: 1px solid var(--c-dark-green);
	min-height: 300px;
	padding: 30px clamp(30px, 8vw, 173px);
	display: flex;
	align-items: center;
}
.p-business__tolerance-inner {
	display: flex;
	align-items: center;
	gap: clamp(40px, 10vw, 102px);
}
.p-business__tolerance-scale {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.p-business__tolerance-rule {
	width: 20px;
	height: 181px;
	flex-shrink: 0;
	transform: scaleX(-1); /* 目盛りを右向きに（PC/SP共通） */
}
.p-business__tolerance-value {
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-business__tolerance-num {
	font-size: clamp(16px, 1.7vw, 21px);
	line-height: 1.25;
	margin: 0 0 5px;
}
.p-business__tolerance-label {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 1.25;
	margin: 0;
}
.p-business__tolerance-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 1.7vw, 24px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
}
.p-business__tolerance-list li {
	display: flex;
	align-items: center;
	gap: 10px;
}
.p-business__tolerance-dot {
	flex-shrink: 0;
	width: 5px;
	height: 5px;
	background: rgba(219, 204, 107, 0.8);
	border: 0.5px solid var(--c-dark-green);
}
@media (max-width: 1023px) {
	.p-business__tolerance {
		margin: 0 var(--gutter-page-sp);
		width: auto;
		padding: 30px;
		min-height: 0;
	}
	.p-business__tolerance-inner {
		gap: 32px;
	}
}

/* ----- 締めくくり ----- */
.p-business__final {
	max-width: 744px;
	width: 100%;
	margin: 0 auto;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
	text-align: center;
}
@media (max-width: 1023px) {
	.p-business__final {
		padding: 0 var(--gutter-page-sp);
	}
}

/* ----- 製品紹介 CTA ----- */
.p-business__cta {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	min-height: 182px;
	background: var(--c-dark-green);
	border: 1px solid var(--c-dark-green);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: clamp(20px, 3vw, 30px) clamp(30px, 6vw, 60px);
	color: var(--c-white);
	text-decoration: none;
	transition: opacity .25s var(--ease-out);
}
.p-business__cta:hover { opacity: 0.85; }
.p-business__cta-text {
	font-family: var(--ff-mincho);
	font-weight: 800;
	text-align: center;
}
.p-business__cta-label {
	color: #887a6c;
	font-size: clamp(14px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-business__cta-name {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}
.p-business__cta-arrow {
	flex-shrink: 0;
	width: 33px;
	height: 33px;
}
.p-business__cta-arrow svg {
	width: 100%;
	height: 100%;
	display: block;
}
@media (max-width: 1023px) {
	.p-business__cta {
		margin: 0 var(--gutter-page-sp);
		width: auto;
		min-height: 110px;
		padding: 30px;
	}
	.p-business__cta-label { font-size: 16px; }
	.p-business__cta-name { font-size: 16px; }
}

/* ==========================================================================
   p-message  代表メッセージ 下層ページ
   Figma: 196:1372 (PC) / 299:602 (SP)
   ========================================================================== */
.page-message { background: transparent; }
.p-message { color: var(--c-dark-green); }

/* ----- MV (背景固定 + 縦書き4行 2グループ) ----- */
.p-message__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc);
}
.p-message__mv-bg {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-message__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.8vw, 40px);
	margin: 0;
	pointer-events: none;
}
.p-message__mv-group {
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.8vw, 40px);
}
.p-message__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-message__mv { padding-top: var(--header-h-sp); }
	.p-message__mv-bg { background-image: var(--bg-sp, var(--bg-pc, none)); }
	.p-message__mv-copy { gap: clamp(16px, 5vw, 24px); }
	.p-message__mv-group { gap: clamp(16px, 5vw, 24px); }
	.p-message__mv-line { font-size: 18px; }
}

/* ----- Body ----- */
.p-message__body {
	position: relative;
	z-index: 1;
	background: transparent;
}

/* ----- 共通 Chapter ----- */
.p-message__chapter {
	padding: clamp(60px, 8vw, 100px) 0;
}
.p-message__chapter--closing {
	padding-bottom: clamp(80px, 10vw, 120px);
}

/* ----- タイトル ----- */
.p-message__heading {
	text-align: center;
	padding: clamp(100px, 14vw, 162px) 0 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-message__label {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-message__title {
	font-size: clamp(18px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}

/* ----- 段落（中央寄せ・複数段落） ----- */
.p-message__paragraphs {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: clamp(48px, 6vw, 100px);
}
.p-message__paragraph p {
	margin: 0;
}
.p-message__spacer {
	height: 1em;
}
@media (max-width: 1023px) {
	.p-message__paragraphs {
		padding: 0 var(--gutter-page-sp);
	}
}

/* ----- 画像 ----- */
.p-message__img {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
	flex-shrink: 0;
}
.p-message__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.p-message__img--portrait {
	width: 328px;
	aspect-ratio: 328 / 435;
}
.p-message__img--landscape {
	width: 480px;
	aspect-ratio: 480 / 320;
}

/* ----- Split (画像+テキスト 横並び) ----- */
.p-message__split {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: clamp(40px, 4vw, 57px);
}
.p-message__split--text-image {
	gap: clamp(40px, 3.75vw, 54px);
}
.p-message__split-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(30px, 3.5vw, 50px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}

/* ----- 段落内テキストブロック ----- */
.p-message__text-block {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
}
.p-message__text-block p { margin: 0; }
/* SPでこの段落だけ折り返さず1行に収める（はみ出さないようフォント自動縮小） */
@media (max-width: 1023px) {
	.p-message__nowrap-sp {
		white-space: nowrap;
		font-size: min(3.4vw, 12px);
	}
}

/* インライン横線（テキスト後ろにスペース + 横線） */
.p-message__inline-line {
	display: inline-block;
	vertical-align: middle;
	width: clamp(40px, 10vw, 191px);
	height: 1px;
	background: currentColor;
	margin-left: 0.7em;
}

/* ----- 引用ブロック (左ボーダー) ----- */
.p-message__quote {
	margin: 0;
	padding: 5px 0 5px 24px;
	border-left: 2px solid var(--c-dark-green);
	font-size: clamp(14px, 1.6vw, 21px);
	line-height: 2;
}
@media (min-width: 1024px) {
	.p-message__quote {
		padding-left: 30px;
	}
}
@media (max-width: 1023px) {
	.p-message__split,
	.p-message__split--text-image {
		flex-direction: column;
		gap: clamp(40px, 7vw, 54px);
		padding: 0 var(--gutter-page-sp);
	}
	.p-message__img--portrait,
	.p-message__img--landscape {
		width: 100%;
	}
	.p-message__img--portrait {
		max-width: 328px;
		aspect-ratio: 328 / 435;
		align-self: center;
	}
	.p-message__img--landscape {
		max-width: 480px;
		aspect-ratio: 480 / 252;
		align-self: center;
	}
}

/* ----- 締めくくり（強調 + 締めくくり + 署名） ----- */
.p-message__chapter--closing {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(48px, 6vw, 100px);
}
.p-message__highlight,
.p-message__closing,
.p-message__signature {
	max-width: 1040px;
	width: 100%;
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
	text-align: center;
	line-height: 2;
}
.p-message__highlight {
	font-size: clamp(18px, 1.8vw, 24px);
}

/* マーカー（文字下20%に薄い黄色のハイライト） */
.p-message__marker {
	background: linear-gradient(
		transparent 80%,
		rgba(226, 217, 163, 0.80) 80%
	);
}

/* ==========================================================================
   p-training  育成制度 下層ページ
   Figma: 167:547 (PC) / 299:734 (SP)
   ========================================================================== */
.page-training { background: transparent; }
.p-training { color: var(--c-dark-green); }

/* ----- MV (背景固定 + 縦書き3行) ----- */
.p-training__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc);
}
.p-training__mv-bg {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-training__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.8vw, 40px);
	margin: 0;
	pointer-events: none;
}
.p-training__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-training__mv { padding-top: var(--header-h-sp); }
	.p-training__mv-bg { background-image: var(--bg-sp, var(--bg-pc, none)); }
	.p-training__mv-copy { gap: clamp(16px, 5vw, 24px); }
	.p-training__mv-line { font-size: 18px; }
}

/* ----- Body ----- */
.p-training__body {
	position: relative;
	z-index: 1;
	background: transparent;
}
.p-training__chapter {
	padding: clamp(60px, 8vw, 100px) 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(48px, 6vw, 100px);
}

/* ----- セクション見出し (共通) ----- */
.p-training__heading {
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-training__label {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-training__title {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}

/* ----- Chapter1: Intro (本文+区切りボックス+締めくくり) ----- */
.p-training__intro {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 5vw, 60px);
}
.p-training__intro-text {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0;
}
.p-training__intro-lead {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0;
}
.p-training__intro-emphasis {
	font-size: clamp(18px, 1.6vw, 21px);
	display: inline-block;
	margin-top: 0.5em;
}
.p-training__venues {
	list-style: none;
	padding: clamp(20px, 2.5vw, 32px) 0;
	margin: 0;
	border-top: 1px solid var(--c-dark-green);
	border-bottom: 1px solid var(--c-dark-green);
	display: flex;
	justify-content: center;
	gap: clamp(24px, 8vw, 100px);
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
}
.p-training__venues li {
	display: flex;
	align-items: center;
	gap: 10px;
}
.p-training__diamond {
	display: inline-block;
	width: 10px;
	height: 10px;
	background: rgba(219, 204, 107, 0.8);
	border: 0.5px solid var(--c-dark-green);
	transform: rotate(45deg);
	flex-shrink: 0;
}
.p-training__intro-closing {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0;
}
@media (max-width: 1023px) {
	.p-training__intro {
		padding: 0 var(--gutter-page-sp);
	}
	.p-training__venues {
		padding: clamp(16px, 4vw, 24px) 0;
	}
}

/* ----- Chapter2: 育成ステップ ----- */
.p-training__steps {
	--marker-w: clamp(36px, 5.5vw, 79px);
	/* Figma SVG (w=80): line x=38.5(48.7%) / diamond center x=10.6(13.4%) / bar x=29.21〜79.21(37%〜100%) */
	--line-x: calc(var(--marker-w) * 0.487);
	--diamond-x: calc(var(--marker-w) * 0.134);
	--bar-x: calc(var(--marker-w) * 0.37);
	--bar-w: calc(var(--marker-w) * 0.63);

	position: relative;
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(32px, 6vw, 100px);
}
/* 縦線：マーカー領域内の x=48.7% の位置を縦に貫く */
.p-training__steps::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--line-x);
	width: 1px;
	background: var(--c-dark-green);
}
.p-training__row {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: clamp(16px, 3vw, 44px);
}
/* マーカー領域 */
.p-training__marker {
	position: relative;
	flex-shrink: 0;
	width: var(--marker-w);
	height: clamp(12px, 1.4vw, 18px);
	pointer-events: none;
}
/* 横棒：x=37%〜100%（縦線を貫通して左右両側に広がる） */
.p-training__marker-bar {
	position: absolute;
	top: 50%;
	left: var(--bar-x);
	width: var(--bar-w);
	height: 1px;
	background: var(--c-dark-green);
	transform: translateY(-50%);
}
/* ダイヤ：中心 x=13.4%（縦線の左外側） */
.p-training__marker-diamond {
	position: absolute;
	top: 50%;
	left: var(--diamond-x);
	width: clamp(10px, 1.2vw, 14.5px);
	height: clamp(10px, 1.2vw, 14.5px);
	background: rgba(219, 204, 107, 0.8);
	border: 0.5px solid var(--c-dark-green);
	transform: translate(-50%, -50%) rotate(45deg);
	z-index: 2;
}
.p-training__card {
	flex: 1;
	min-width: 0;
	background: #ede1d2;
	border: 1px solid var(--c-dark-green);
	padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 43px);
	display: flex;
	gap: clamp(20px, 5vw, 72px);
	align-items: flex-start;
	min-height: clamp(192px, 22vw, 218px);
}
.p-training__card-body {
	flex: 1;
	min-width: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 2vw, 30px);
}
.p-training__card-period {
	color: #887a6c;
	margin: 0;
}
.p-training__card-text {
	color: var(--c-dark-green);
	margin: 0;
}
.p-training__card-callout {
	margin: 0;
	background: #e8d9c8;
	border-left: 2px solid var(--c-dark-green);
	padding: 5px clamp(12px, 1.5vw, 30px);
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
}
@media (min-width: 1024px) {
	/* PC: callout の横幅を card 全体に広げる（card-body の右の gap + card-no を打ち消す） */
	.p-training__card-callout {
		margin-right: calc(-1 * (clamp(20px, 5vw, 72px) + clamp(14px, 1.4vw, 21px) * 2.5));
	}
}
.p-training__card-no {
	flex-shrink: 0;
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-training__card-no-label {
	font-size: clamp(14px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}
.p-training__card-no-num {
	font-size: clamp(14px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}
@media (max-width: 1023px) {
	.p-training__steps {
		--marker-w: clamp(28px, 7vw, 46px); /* SP用にマーカー幅縮小 */
		padding: 0 var(--gutter-page-sp);
		gap: clamp(20px, 5vw, 32px);
	}
	/* SP: 縦線の x 位置を padding + 比率で */
	.p-training__steps::before {
		left: calc(var(--gutter-page-sp) + var(--line-x));
	}
	.p-training__row {
		gap: clamp(8px, 2vw, 12px);
	}
	.p-training__card {
		padding: clamp(20px, 5vw, 30px);
		gap: clamp(8px, 2vw, 12px);
		min-height: 0;
	}
}

/* ----- Chapter3: 技能士資格取得支援 ----- */
.p-training__support {
	position: relative;
	max-width: 917px;
	width: 100%;
	margin: 0 auto;
	background: #ede1d2;
	border: 1px solid var(--c-dark-green);
	padding: clamp(40px, 5vw, 57px) clamp(24px, 4vw, 40px);
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 32px);
}
.p-training__support-text {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0;
}

/* マーカー（文字下20%に薄い黄色のハイライト） */
.p-training__mark {
	background: linear-gradient(
		transparent 80%,
		rgba(226, 217, 163, 0.80) 80%
	);
}

/* ==========================================================================
   p-culture  環境・文化 下層ページ
   Figma: 167:652 (PC) / 299:914 (SP)
   ========================================================================== */
.page-culture { background: transparent; }
.p-culture { color: var(--c-dark-green); }

/* ----- MV (背景固定 + 縦書き4行) ----- */
.p-culture__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc);
}
.p-culture__mv-bg {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-culture__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(16px, 1.9vw, 27px);
	margin: 0;
	pointer-events: none;
}
.p-culture__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green); /* bg_sec08 は明るめなので濃緑文字 */
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-culture__mv { padding-top: var(--header-h-sp); }
	.p-culture__mv-bg { background-image: var(--bg-sp, var(--bg-pc, none)); }
	.p-culture__mv-copy { gap: clamp(14px, 4vw, 24px); }
	.p-culture__mv-line { font-size: 18px; }
}

/* ----- Body ----- */
.p-culture__body {
	position: relative;
	z-index: 1;
	background: transparent;
	padding-bottom: clamp(100px, 14vw, 200px);
}

/* ----- イントロ（タイトル + 本文） ----- */
.p-culture__intro {
	padding: clamp(80px, 11vw, 162px) 0 clamp(60px, 8vw, 100px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(48px, 6vw, 100px);
}
.p-culture__heading {
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-culture__label {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-culture__title {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}
.p-culture__intro-text {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
}
@media (max-width: 1023px) {
	.p-culture__intro-text {
		padding: 0 var(--gutter-page-sp);
	}
}

/* ----- 3カード（アンカーリンク） ----- */
.p-culture__cards {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	gap: clamp(16px, 2vw, 25px);
	padding: 0 clamp(20px, 4vw, 50px);
}
.p-culture__card {
	flex: 1;
	min-width: 0;
	position: relative;
	background: #ede1d2;
	border: 1px solid var(--c-dark-green);
	padding: clamp(40px, 5vw, 57px) clamp(20px, 2vw, 30px);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0;
	text-decoration: none;
	color: var(--c-dark-green);
	transition: background-color 0.3s var(--ease-out), color 0.3s var(--ease-out);
	min-height: clamp(220px, 22vw, 294px);
}
/* Hover / Focus / Active：背景 dark-green、name 白に */
.p-culture__card:hover,
.p-culture__card:focus-visible,
.p-culture__card:active {
	background: var(--c-dark-green);
	opacity: 1; /* a:hover の opacity 0.7 を打ち消す */
}
.p-culture__card:hover .p-culture__card-name,
.p-culture__card:focus-visible .p-culture__card-name,
.p-culture__card:active .p-culture__card-name {
	color: var(--c-white);
}
.p-culture__card:hover .p-culture__card-corner line,
.p-culture__card:focus-visible .p-culture__card-corner line,
.p-culture__card:active .p-culture__card-corner line {
	stroke: #887a6c;
}
.p-culture__card-corner {
	position: absolute;
	width: clamp(20px, 2.5vw, 34px);
	height: clamp(20px, 2.5vw, 34px);
	color: var(--c-dark-green);
	pointer-events: none;
}
.p-culture__card-corner line {
	transition: stroke 0.3s var(--ease-out);
}
.p-culture__card-name {
	transition: color 0.3s var(--ease-out);
}
.p-culture__card-corner--tl { top: clamp(10px, 1vw, 14px); left: clamp(10px, 1vw, 14px); }
.p-culture__card-corner--br { bottom: clamp(10px, 1vw, 14px); right: clamp(10px, 1vw, 14px); }
.p-culture__card-no {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.7vw, 24px);
	line-height: 2;
	color: #887a6c;
	margin: 0;
}
.p-culture__card-name {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 2;
	color: var(--c-dark-green);
	margin: 0;
}
.p-culture__card-label {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	color: #887a6c;
	margin: 0;
}
@media (max-width: 1023px) {
	/* SPでも3カラム維持 */
	.p-culture__cards {
		gap: clamp(8px, 2vw, 16px);
		padding: 0 clamp(16px, 4vw, 24px);
	}
	.p-culture__card {
		min-height: 0;
		padding: clamp(20px, 4vw, 30px) clamp(6px, 1.5vw, 12px);
	}
	.p-culture__card-no { font-size: clamp(14px, 3vw, 18px); }
	.p-culture__card-name { font-size: clamp(12px, 2.5vw, 14px); }
	.p-culture__card-label { font-size: clamp(9px, 2vw, 12px); }
	.p-culture__card-corner {
		width: clamp(12px, 3vw, 20px);
		height: clamp(12px, 3vw, 20px);
	}
	.p-culture__card-corner--tl { top: 6px; left: 6px; }
	.p-culture__card-corner--br { bottom: 6px; right: 6px; }
}

/* ----- セクション (画像 + テキスト) ----- */
.p-culture__section {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	padding: clamp(60px, 13vw, 200px) 0 0;
	display: flex;
	gap: clamp(30px, 4vw, 60px);
	align-items: flex-start;
	scroll-margin-top: var(--header-h-pc); /* アンカーリンクでヘッダーに隠れないように */
}
@media (max-width: 1023px) {
	.p-culture__section { scroll-margin-top: var(--header-h-sp); }
}
/* PC では HTML順通り [テキスト → 画像]（テキスト左、画像右） */
.p-culture__section--reverse {
	flex-direction: row;
}
.p-culture__media {
	flex-shrink: 0;
	width: clamp(280px, 38vw, 529px);
	margin: 0;
	position: relative;
	display: flex;
	justify-content: flex-end;
}
/* タグ：画像の左上に被るように absolute 配置
   Figma PC: top:25, w:147, font:16, padding:10
   Figma SP: top:17, w:147, font:10, padding:10 */
.p-culture__media-tag {
	position: absolute;
	top: clamp(14px, 2vw, 25px);
	left: 0;
	z-index: 2;
	background: var(--c-dark-green);
	color: var(--c-white);
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(10px, 1.2vw, 16px);
	line-height: 2;
	text-align: center;
	padding: 10px clamp(15px, 2vw, 30px);
	width: clamp(110px, 10vw, 147px);
}
.p-culture__media-img {
	width: calc(100% - clamp(40px, 4vw, 60px));
	margin-top: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
	aspect-ratio: 506 / 337;
}
.p-culture__media-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.p-culture__section-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-culture__section-title {
	border-bottom: 1px solid var(--c-dark-green);
	padding: clamp(6px, 0.7vw, 10px);
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	line-height: 2;
	display: flex;
	flex-direction: column;
}
.p-culture__section-no {
	color: #887a6c;
	font-size: clamp(18px, 1.7vw, 24px);
}
.p-culture__section-name {
	color: var(--c-dark-green);
	font-size: clamp(16px, 1.4vw, 21px);
}
.p-culture__section-body {
	font-size: clamp(12px, 1.3vw, 18px);
	line-height: 2;
	margin: 0;
}
.p-culture__section-body p { margin: 0; }
.p-culture__section-quote {
	background: #e8d9c8;
	border-left: 2px solid var(--c-dark-green);
	padding: 5px clamp(15px, 2vw, 30px);
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	line-height: 2;
	font-size: clamp(12px, 1.2vw, 16px);
}
.p-culture__section-quote-label {
	color: #887a6c;
	margin: 0;
}
.p-culture__section-quote-text {
	color: var(--c-dark-green);
	margin: 0;
}
@media (max-width: 1023px) {
	.p-culture__section {
		flex-direction: column;
		gap: clamp(30px, 6vw, 50px);
		padding: clamp(80px, 18vw, 140px) var(--gutter-page-sp) 0;
	}
	/* reverse は HTML 順 [テキスト, 画像] を逆転して画像を上にする */
	.p-culture__section--reverse {
		flex-direction: column-reverse;
		gap: clamp(30px, 6vw, 50px);
		padding: clamp(80px, 18vw, 140px) var(--gutter-page-sp) 0;
	}
	.p-culture__media {
		width: 100%;
		max-width: 506px;
	}
	.p-culture__media-img {
		margin-left: 0;
		margin-top: 0;
	}
}
.p-training__corner {
	position: absolute;
	width: clamp(24px, 2.5vw, 34px);
	height: clamp(24px, 2.5vw, 34px); /* width と同じで縦横同寸 */
	color: var(--c-dark-green);
	pointer-events: none;
}
.p-training__corner--tl {
	top: clamp(16px, 2vw, 24px);
	left: clamp(16px, 2vw, 24px);
}
.p-training__corner--br {
	bottom: clamp(16px, 2vw, 24px);
	right: clamp(16px, 2vw, 24px);
}
@media (max-width: 1023px) {
	.p-training__support {
		margin: 0 var(--gutter-page-sp);
		width: auto;
		padding: 40px 28px;
	}
}
.p-message__closing,
.p-message__signature {
	font-size: clamp(12px, 1.3vw, 18px);
}
@media (max-width: 1023px) {
	.p-message__highlight,
	.p-message__closing,
	.p-message__signature {
		padding: 0 var(--gutter-page-sp);
	}
}

/* ==========================================================================
   p-interview  スタッフインタビュー一覧 / 個別
   Figma: 167:300 (PC) / 299:1157 (SP)
   ========================================================================== */
.post-type-archive-interview,
.single-interview { background: transparent; }
.p-interview,
.p-interview-single { color: var(--c-dark-green); }

/* ----- MV (背景固定 + 縦書き3行) ----- */
.p-interview__mv {
	position: relative;
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: var(--header-h-pc);
}
.p-interview__mv-bg {
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-interview__mv-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(20px, 2.8vw, 40px);
	margin: 0;
	pointer-events: none;
}
.p-interview__mv-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 0.863;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}
@media (max-width: 1023px) {
	.p-interview__mv { padding-top: var(--header-h-sp); }
	.p-interview__mv-bg { background-image: var(--bg-sp, var(--bg-pc, none)); }
	.p-interview__mv-copy { gap: clamp(16px, 5vw, 24px); }
	.p-interview__mv-line { font-size: 18px; }
}

/* ----- Body ----- */
.p-interview__body {
	position: relative;
	z-index: 1;
	background: transparent;
	padding-bottom: clamp(100px, 14vw, 200px);
}

/* ----- タイトル ----- */
.p-interview__heading {
	text-align: center;
	padding: clamp(80px, 11vw, 162px) 0 clamp(48px, 6vw, 100px);
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-interview__label {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-interview__title {
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}

/* ----- Coming Soon ----- */
.p-interview__coming {
	max-width: 736px;
	width: 100%;
	margin: 0 auto;
	padding: 0 var(--gutter-page-sp);
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	color: var(--c-dark-green);
}
.p-interview__coming-title {
	font-size: clamp(18px, 1.8vw, 24px);
	line-height: 1.25;
	margin: 0 0 clamp(32px, 4vw, 48px);
}
.p-interview__coming-text {
	font-size: clamp(14px, 1.6vw, 21px);
	line-height: 1.8;
	margin: 0;
}

/* ----- リード文 ----- */
.p-interview__lead {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto clamp(60px, 8vw, 100px);
	padding: 0 clamp(24px, 4vw, 50px);
	text-align: center;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(14px, 1.4vw, 18px);
	line-height: 3;
	color: var(--c-dark-green);
}
.p-interview__lead p { margin: 0; }

/* ----- 投稿一覧（2列カードグリッド） ----- */
.p-interview__list {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(24px, 4vw, 50px);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(24px, 4vw, 60px);
}

/* ----- カード ----- */
.p-interview__card {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
	background: #ede1d2;
	border-radius: 20px;
	padding: clamp(20px, 2.5vw, 30px);
	color: var(--c-dark-green);
	text-decoration: none;
	box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4);
	transition: opacity 0.25s var(--ease-out);
}
.p-interview__card:hover { opacity: 1; }

/* タイトル枠（番号 + メッセージ） */
.p-interview__card-head {
	display: flex;
	flex-direction: column;
	padding: 10px;
	border-bottom: 1px solid var(--c-dark-green);
	font-family: var(--ff-mincho);
	font-weight: 800;
	line-height: 2;
}
.p-interview__card-no {
	font-size: clamp(18px, 1.7vw, 24px);
	color: #887a6c;
}
.p-interview__card-message {
	font-size: clamp(16px, 1.7vw, 24px);
	color: var(--c-dark-green);
}

/* プロフィール + もっと見る */
.p-interview__card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--ff-mincho);
	font-weight: 800;
	padding: 0 10px;
}
.p-interview__card-profile {
	font-size: clamp(14px, 1.4vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
	margin: 0;
}
.p-interview__card-more {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	flex-shrink: 0;
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(12px, 1.1vw, 14px);
	color: var(--c-dark-green);
	line-height: 1;
}
.p-interview__card-more-line {
	display: block;
	width: clamp(80px, 8vw, 114px);
	height: auto;
	/* SVG上部に内包された矢印縦成分(16px)を食い込ませ、横線をテキスト直下に */
	margin-top: -11px;
	overflow: visible;
}

/* 画像 */
.p-interview__card-img {
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
	aspect-ratio: 430 / 329;
}
.p-interview__card-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.p-interview__card-img-placeholder {
	width: 100%;
	height: 100%;
	background: #d9ccbc;
}

@media (max-width: 1023px) {
	.p-interview__lead {
		line-height: 2;
		padding: 0 var(--gutter-page-sp);
		margin-bottom: clamp(40px, 8vw, 60px);
	}
	.p-interview__list {
		grid-template-columns: 1fr;
		padding: 0 var(--gutter-page-sp);
		gap: clamp(20px, 5vw, 32px);
	}
	.p-interview__card {
		padding: 24px;
		gap: 20px;
	}
}

/* ==========================================================================
   p-interview-single  スタッフインタビュー 個別記事
   Figma: 425:836 (PC) / 425:1366 (SP)
   ========================================================================== */

/* ----- MV (背景固定 / 左にテキスト + 右に画像) ----- */
.p-interview-single__mv {
	position: relative;
	min-height: 0;
	display: flex;
	align-items: flex-start;
	padding: 200px clamp(24px, 4vw, 50px) clamp(60px, 8vw, 100px);
}
.p-interview-single__mv-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: #d9ccbc;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	z-index: 0;
}
.p-interview-single__mv-inner {
	position: relative;
	z-index: 2;
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: flex-end;
	gap: clamp(20px, 3vw, 30px);
}
.p-interview-single__mv-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2vw, 30px);
	font-family: var(--ff-mincho);
	color: var(--c-dark-green);
}
.p-interview-single__mv-label {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(13px, 1.1vw, 16px);
	line-height: 1.25;
	color: var(--c-dark-green);
	margin: 0;
	padding-bottom: clamp(10px, 1vw, 15px);
}
.p-interview-single__mv-catch {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(20px, 2.8vw, 36px);
	line-height: 1.4;
	color: var(--c-dark-green);
	margin: 0 0 clamp(20px, 2vw, 30px);
	padding-bottom: clamp(16px, 2vw, 30px);
	border-bottom: 1px solid var(--c-dark-green);
}
.p-interview-single__mv-divider {
	display: none; /* hr は border-bottom で表現済み */
}
.p-interview-single__mv-name {
	display: flex;
	flex-direction: column;
	gap: clamp(4px, 0.5vw, 8px);
}
.p-interview-single__mv-staff {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(16px, 1.5vw, 21px);
	line-height: 1.2;
	margin: 0;
}
.p-interview-single__mv-role {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(13px, 1.1vw, 16px);
	line-height: 1.2;
	margin: 0;
}
.p-interview-single__mv-img {
	flex-shrink: 0;
	width: clamp(220px, 30vw, 430px);
	aspect-ratio: 430 / 329;
	margin: 0;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
	position: relative;
}
.p-interview-single__mv-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ----- 本文 (Q&A) 背景透明：MV画像が透ける ----- */
.p-interview-single__body {
	position: relative;
	z-index: 1;
	background: transparent;
	padding: clamp(60px, 8vw, 120px) 0 clamp(80px, 10vw, 160px);
}
.p-interview-single__qa {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(24px, 4vw, 50px);
	font-family: var(--ff-mincho);
	color: var(--c-dark-green);
}
/* Q&A 1組（質問+回答）：下に区切り線のみ */
.p-interview-single__qa-item {
	padding: clamp(20px, 2.5vw, 30px) 10px;
	border-bottom: 1px solid var(--c-dark-green);
}
/* 質問 */
.p-interview-single__q {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(16px, 1.7vw, 21px);
	line-height: 1.4;
	color: var(--c-dark-green);
	margin: 0 0 clamp(10px, 1vw, 15px);
}
.p-interview-single__q-mark {
	color: #887a6c;
	font-weight: 800;
	margin-right: 1em;
}
/* 回答 */
.p-interview-single__a {
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: clamp(14px, 1.4vw, 18px);
	line-height: 1.8;
	letter-spacing: 0.03em;
	color: var(--c-dark-green);
	padding-left: clamp(20px, 3vw, 40px);
	margin: 0;
}

/* ----- 一覧に戻るボタン ----- */
.p-interview-single__back {
	max-width: 1040px;
	width: 100%;
	margin: clamp(60px, 8vw, 120px) auto 0;
	display: flex;
	justify-content: center;
	padding: 0 clamp(24px, 4vw, 50px);
}
.p-interview-single__back-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 300px;
	max-width: 100%;
	height: 60px;
	padding: 10px;
	background: var(--c-dark-green);
	color: var(--c-white);
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.25;
	border-radius: 35px;
	text-align: center;
	text-decoration: none;
}
.p-interview-single__back-btn:hover { opacity: 0.85; }

/* ----- SP ----- */
@media (max-width: 1023px) {
	.p-interview-single__mv {
		min-height: 0;
		height: auto;
		padding: calc(var(--header-h-sp) + 30px) var(--gutter-page-sp) clamp(40px, 8vw, 60px);
	}
	.p-interview-single__mv-inner {
		flex-direction: column;
		align-items: stretch;
		gap: clamp(24px, 5vw, 40px);
	}
	.p-interview-single__mv-img {
		width: 100%;
		max-width: 430px;
		align-self: center;
	}
	.p-interview-single__mv-catch {
		font-size: clamp(18px, 5vw, 28px);
	}
	.p-interview-single__back-btn {
		width: 170px;
		height: 32px;
		font-size: 12px;
		padding: 4px 10px;
	}
}

/* ==========================================================================
   p-legal  プライバシーポリシー / 利用規約
   Figma: 260:889 (Privacy) / 271:946 (Terms)
   ========================================================================== */
/* この2ページだけ body 背景を #D9CCBC に */
body.page-privacy-policy,
body.page-terms {
	background: #d9ccbc;
}

.p-legal {
	max-width: 1040px;
	width: 100%;
	margin: 0 auto;
	padding: clamp(60px, 7vw, 100px) var(--gutter-page-sp) clamp(100px, 14vw, 200px);
	color: var(--c-dark-green);
	font-family: var(--ff-mincho);
}

/* ----- タイトル ----- */
.p-legal__header {
	text-align: center;
	margin-bottom: clamp(60px, 8vw, 100px);
}
.p-legal__label {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0 0 10px;
}
.p-legal__title {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(16px, 1.4vw, 21px);
	line-height: 1.25;
	margin: 0;
}

/* ----- 本文 ----- */
.p-legal__body {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(14px, 1.6vw, 18px);
	line-height: 2;
	color: var(--c-dark-green);
}
.p-legal__body > p,
.p-legal__body > ul,
.p-legal__body > ol {
	margin: 0 0 1.5em;
}
.p-legal__body h2 {
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(16px, 1.8vw, 21px);
	line-height: 1.5;
	margin: 2.4em 0 0.8em;
}
.p-legal__body h2:first-child { margin-top: 0; }
.p-legal__body ul,
.p-legal__body ol {
	padding-left: 1.5em;
}
.p-legal__body ul ul,
.p-legal__body ul ol,
.p-legal__body ol ul,
.p-legal__body ol ol {
	margin: 0.4em 0 0.4em;
}
.p-legal__body li { margin: 0.2em 0; }
.p-legal__body a {
	color: var(--c-dark-green);
	text-decoration: underline;
}
.p-legal__end {
	text-align: right;
	margin-top: 2em;
}

/* ==========================================================================
   p-stage  TOP フェードスクロールアニメーション基盤
   ========================================================================== */
body.home {
	overflow: hidden;
	background: #d9ccbc; /* ベージュ：セクション切替のフェード中もこの色が下地に */
	height: 100%;
}
body.home .l-main {
	display: block;
	min-height: 0;
}

.p-stage {
	position: fixed;
	inset: 0;
	z-index: 1;
}

.p-section {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 8vw;
	opacity: 0;
	visibility: hidden;
	will-change: opacity;
	z-index: 0;
	overflow: hidden;
	background: #000;
}
.p-section.active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

/* ----- テキストセクション（Figma: 創業原点 271:1003 構造をベース） ----- */
.p-section--text {
	background-color: var(--c-beige);
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	color: var(--c-dark-green);
	padding: 0;
}


/* 内側（縦書きコピー + ボタンを中央配置）
   ヘッダーが fixed で上に乗っているので、padding-top にヘッダー高さを足して
   "ヘッダー下端 〜 画面下端" の中央にコンテンツが来るようにする */
.p-section__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(80px, 14vh, 200px);
	padding: calc(8vw + var(--header-h-pc)) 8vw 8vw;
}

/* 縦書きコピー（単一グループ／複数グループ両対応：HTML順「読み順」を row-reverse で表示順に） */
.p-section__copy {
	display: flex;
	flex-direction: row-reverse; /* グループ or 行を「読み順 → 視覚順」に並べ替え */
	align-items: flex-start;
	gap: clamp(16px, 1.9vw, 27px);
	margin: 0;
}
/* 単一グループのとき：copy 直下の唯一の copy-group が無くフラットに p-line が並ぶレイアウト互換 */
.p-section__copy-group {
	display: flex;
	flex-direction: row-reverse;
	align-items: flex-start;
	gap: clamp(16px, 1.9vw, 27px);
}
.p-section__copy-line {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-family: var(--ff-mincho);
	font-weight: 800; /* ExtraBold */
	font-size: clamp(18px, 2vw, 24px);
	line-height: 0.863;
	letter-spacing: 0;
	color: var(--c-dark-green);
	margin: 0;
	white-space: nowrap;
}

/* フォールバック（copy未指定時） */
.p-section__copy-fallback {
	text-align: center;
}
.p-section__headline {
	font-family: var(--ff-mincho);
	font-weight: 700;
	font-size: clamp(40px, 6vw, 72px);
	line-height: 1.3;
	margin: 0;
}
.p-section__sub {
	margin-top: 1.5rem;
	font-family: var(--ff-mincho);
	font-size: clamp(14px, 1.4vw, 18px);
	line-height: 1.9;
	max-width: 30em;
	margin-left: auto;
	margin-right: auto;
}

/* CTAボタン（緑ピル） */
.p-section__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 300px;
	height: 60px;
	padding: 10px;
	background: var(--c-dark-green);
	color: var(--c-white);
	font-family: var(--ff-mincho);
	font-weight: 500;
	font-size: 20px;
	line-height: 1.25;
	border-radius: 35px;
	text-align: center;
	white-space: nowrap;
}
.p-section__btn:hover { opacity: 0.85; }

@media (max-width: 1023px) {
	.p-section--text {
		background-image: var(--bg-sp, var(--bg-pc, none));
	}
	.p-section--image {
		background-image: var(--bg-sp, var(--bg-pc, none));
	}
	.p-section__inner {
		gap: clamp(60px, 10vh, 120px);
		padding: calc(60px + var(--header-h-sp)) 24px 60px;
	}
	.p-section__copy {
		gap: clamp(14px, 4vw, 24px);
	}
	.p-section__copy-group {
		gap: clamp(14px, 4vw, 24px);
	}
	.p-section__copy-line {
		font-size: 18px;
	}
	.p-section__btn {
		width: 170px;
		height: 32px;
		font-size: 12px;
		padding: 4px 10px;
	}
}

/* 画像のみセクション（フェード無し・全面表示） */
.p-section--image {
	padding: 0;
	background-color: #1a1a1a;
	background-image: var(--bg-pc, none);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
}

/* セクション別配色（Figma 確定分のみ上書き。未確定は .p-section--text のデフォルト = ベージュ） */
/* .p-section--origin    : 271:1003 確定 → デフォルトベージュ */
/* .p-section--business  : 271:1097 確定 → デフォルトベージュ */
/* .p-section--message   : 271:1016 確定 → デフォルトベージュ */
/* .p-section--interview : 271:1062 確定 → デフォルトベージュ */
/* .p-section--training  : 271:1078 確定 → デフォルトベージュ */
/* .p-section--recruit   : 271:1047 確定 → デフォルトベージュ */

/* gap 40px のセクション群（PC）/ 24px (SP) ：代表メッセージ / スタッフインタビュー / 育成制度 */
.p-section--message .p-section__copy,
.p-section--message .p-section__copy-group,
.p-section--interview .p-section__copy,
.p-section--interview .p-section__copy-group,
.p-section--training .p-section__copy,
.p-section--training .p-section__copy-group {
	gap: clamp(20px, 3vw, 40px);
}
@media (max-width: 1023px) {
	.p-section--message .p-section__copy,
	.p-section--message .p-section__copy-group,
	.p-section--interview .p-section__copy,
	.p-section--interview .p-section__copy-group,
	.p-section--training .p-section__copy,
	.p-section--training .p-section__copy-group {
		gap: clamp(16px, 5vw, 24px);
	}
}

/* section-11 環境・文化：背景が暗い画像のため文字色を白に */
.p-section--culture {
	color: var(--c-white);
}
.p-section--culture .p-section__copy-line {
	color: var(--c-white);
}

/* ==========================================================================
   p-mv  MV セクション（stage 内）
   Figma: 271:1043 / 271:1551
   ========================================================================== */
.p-section--mv {
	padding: 0;
	background: #000;
}
.p-mv__bg {
	position: absolute;
	inset: 0;
	display: block;
}
.p-mv__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}
.p-mv__catch {
	position: absolute;
	left: 48.54%; /* Figma: 699/1440 */
	/* ヘッダー下端〜画面下端の中央に配置（中心 = (header_h + 100%) / 2 = 50% + header_h/2） */
	top: calc(50% + var(--header-h-pc) / 2);
	transform: translateY(-50%);
	margin: 0;
	font-family: var(--ff-mincho);
	font-weight: 800;
	font-size: clamp(28px, 2.8vw, 48px);
	line-height: 0.863;
	color: var(--c-white);
	writing-mode: vertical-rl;
	text-orientation: upright;
	white-space: nowrap;
	filter: drop-shadow(0 4px 2px rgba(0, 0, 0, 0.25));
	z-index: 2;
}
@media (max-width: 1023px) {
	.p-mv__catch {
		left: 46.82%; /* Figma: 206/440 */
		top: calc(50% + var(--header-h-sp) / 2);
		font-size: clamp(20px, 6vw, 28px);
	}
}

/* ==========================================================================
   p-hint / p-gauge / p-dots  スクロール補助UI
   ========================================================================== */
.p-hint {
	position: fixed;
	left: 50%;
	bottom: 8%;
	transform: translateX(-50%);
	font-family: var(--ff-en);
	font-size: 12px;
	letter-spacing: 0.25em;
	color: var(--c-white);
	opacity: 0.6;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	pointer-events: none;
	z-index: 20;
	mix-blend-mode: difference;
}
.p-hint__arrow {
	width: 1px;
	height: 34px;
	background: currentColor;
	opacity: 0.5;
	animation: p-hint-nudge 1.8s ease-in-out infinite;
}
@keyframes p-hint-nudge {
	0%, 100% { transform: scaleY(0.4); transform-origin: top; opacity: 0.3; }
	50%      { transform: scaleY(1); opacity: 0.7; }
}

.p-gauge-wrap { color: #fff; mix-blend-mode: difference; }
.p-gauge {
	position: fixed;
	left: 50%;
	bottom: 34px;
	transform: translateX(-50%);
	width: 200px;
	height: 3px;
	border-radius: 3px;
	background: rgba(127, 127, 127, 0.28);
	overflow: hidden;
	z-index: 40;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.p-gauge.is-show { opacity: 1; }
.p-gauge__fill {
	height: 100%;
	width: 0%;
	background: currentColor;
}

.p-dots {
	position: fixed;
	right: 28px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: 14px;
	z-index: 40;
	mix-blend-mode: difference;
	margin: 0;
	padding: 0;
}
.p-dots button {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1px solid #fff;
	background: transparent;
	cursor: pointer;
	padding: 0;
	transition: all 0.35s ease;
}
.p-dots button.is-on {
	background: #fff;
	transform: scale(1.25);
}
@media (max-width: 1023px) {
	.p-dots {
		right: 14px;
		gap: 10px;
	}
	.p-dots button { width: 7px; height: 7px; }
}

/* ==========================================================================
   p-panel  調整パネル（debug=1 & 管理者のみ）
   ========================================================================== */
.p-panel-toggle {
	position: fixed;
	top: calc(var(--header-h-pc) + 12px);
	right: 22px;
	z-index: 60;
	font-family: var(--ff-en);
	font-size: 12px;
	letter-spacing: 0.15em;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	mix-blend-mode: difference;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	padding: 9px 16px;
	cursor: pointer;
	backdrop-filter: blur(6px);
}
.p-panel {
	position: fixed;
	top: calc(var(--header-h-pc) + 54px);
	right: 22px;
	z-index: 60;
	width: 288px;
	max-height: calc(100vh - var(--header-h-pc) - 80px);
	overflow-y: auto;
	background: rgba(18, 18, 20, 0.92);
	color: #edeae2;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 16px;
	padding: 20px;
	backdrop-filter: blur(14px);
	font-family: var(--ff-en);
	font-size: 12px;
	transform: translateY(-8px) scale(0.98);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}
.p-panel.is-open {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.p-panel h2 {
	font-family: var(--ff-base);
	font-weight: 700;
	font-size: 14px;
	margin: 0 0 4px;
}
.p-panel__desc {
	opacity: 0.55;
	line-height: 1.6;
	margin-bottom: 16px;
	font-size: 11px;
}
.p-panel__desc code {
	font-family: var(--ff-en);
	background: rgba(255, 255, 255, 0.08);
	padding: 1px 4px;
	border-radius: 3px;
}
.p-panel__ctrl { margin-bottom: 16px; }
.p-panel__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 7px;
}
.p-panel__name { font-family: var(--ff-base); }
.p-panel__val  { font-weight: 500; opacity: 0.85; }
.p-panel input[type="range"] {
	width: 100%;
	accent-color: #c2452d;
	height: 4px;
}
.p-panel__readout {
	margin-top: 6px;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	line-height: 1.7;
	opacity: 0.85;
	font-size: 11px;
}
.p-panel__readout b {
	color: #f4b45f;
	font-weight: 500;
}

@media (max-width: 1023px) {
	.p-panel-toggle {
		top: calc(var(--header-h-sp) + 8px);
		right: 12px;
	}
	.p-panel {
		top: calc(var(--header-h-sp) + 50px);
		right: 12px;
		width: calc(100% - 24px);
		max-height: calc(100vh - var(--header-h-sp) - 60px);
	}
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	.p-hint__arrow { animation: none; }
}

/* ==========================================================================
   下層ページ MV の SP 表示：縦書きテキストを上寄せに（ヘッダーとの余白を短く）
   対象：プライバシーポリシー・利用規約以外
   ========================================================================== */
@media (max-width: 1023px) {
	.p-origin__mv,
	.p-business__mv,
	.p-message__mv,
	.p-training__mv,
	.p-culture__mv,
	.p-interview__mv {
		/* height 固定だと縦書きテキストがはみ出して次セクションに被るので min-height に */
		height: auto;
		min-height: clamp(380px, 60vh, 560px);
		align-items: flex-start;
		padding-top: calc(var(--header-h-sp) + 180px); /* ヘッダー下端からテキスト上端まで 180px */
		padding-bottom: clamp(40px, 10vw, 80px); /* テキスト下端と次セクションの余白 */
	}
}

/* ==========================================================================
   TOP フッター：最終セクション(12)でさらにスクロールするとスライドイン
   ========================================================================== */
body.home .l-footer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 30;
	transform: translateY(100%);
	transition: transform 0.7s var(--ease-out);
	will-change: transform;
}
body.home.is-show-footer .l-footer {
	transform: translateY(0);
}

/* フッタースライドイン時も section-12 のコンテンツ位置は固定（中央配置のまま） */

/* prefers-reduced-motion 時はトランジションを短縮 */
@media (prefers-reduced-motion: reduce) {
	body.home .l-footer {
		transition: transform 0.15s linear;
	}
}
