@charset "UTF-8";

/* ============================================================
 * Shibahara Recruit - main stylesheet
 * ============================================================ */

/* -------- 最小リセット -------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: hidden; overflow-x: clip; }
body { margin: 0; font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; color: #000; background: #f5f6f7; line-height: 1.6; overflow-x: hidden; overflow-x: clip; }
img, svg { vertical-align: top; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

/* ============================================================
 * Header
 * ============================================================ */
.l-header {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100px;
	background: #fff;
	z-index: 100;
}

/* TOPページではヘッダーを透過し、MV の上に重ねる
   position: fixed で MV を 100vh に保ちつつスクロール追従 */
body.home .l-header {
	position: fixed;
	background: transparent;
}

/* 信用ものづくりメディアの個別ページもヘッダー透過 */
body.single-craft_trust .l-header {
	background: transparent;
}

.l-header__inner {
	position: relative;
	width: 100%;
	height: 100%;
}

/* Logo */
.l-header__logo {
	position: absolute;
	top: 50%;
	left: 40px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
}
.l-header__logo-img {
	width: 284px;
	height: auto;
	display: block;
}

/* Right cluster */
.l-header__right {
	position: absolute;
	top: 50%;
	right: 40px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	gap: 32px;
}

.l-header__entry {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 142px;
	height: 40px;
	padding: 5px 25px;
	background: #003686;
	color: #fff;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	transition: opacity .2s ease;
}
.l-header__entry:hover { opacity: .85; }

/* Hamburger */
.l-header__menu {
	position: relative;
	width: 23px;
	height: 23px;
}
.l-header__menu-bar {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background: #000;
	transition: transform .3s ease, top .3s ease, opacity .3s ease;
}
.l-header__menu-bar:nth-child(1) { top: calc(50% - 4px); }
.l-header__menu-bar:nth-child(2) { top: calc(50% + 4px); }


/* -------- SP -------- */
@media (max-width: 767px) {
	.l-header { height: 40px; }

	.l-header__logo {
		left: 20px;
	}
	.l-header__logo-img { width: 130px; }

	.l-header__right {
		right: 20px;
		gap: 14px;
	}

	.l-header__entry {
		width: 90px;
		height: 20px;
		padding: 0;
		font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
		font-weight: 600;
		font-size: 12px;
	}

	.l-header__menu { width: 13px; height: 13px; }
}

/* ============================================================
 * Drawer (Hamburger Menu)
 * ============================================================ */
.l-drawer {
	position: fixed;
	top: 100px; /* ヘッダー下 */
	left: 0;
	width: 100%;
	min-height: 558px;
	max-height: calc(100dvh - 100px); /* ヘッダー分を除いた高さに収める */
	background: #000;
	color: #fff;
	z-index: 99;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
	overflow-y: auto;
}
.l-drawer[aria-hidden="false"] {
	opacity: 1;
	visibility: visible;
}

/* 3カラム（左:ロゴ/ステートメント/SNS｜中:ナビ｜右:CTA） */
.l-drawer__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
	width: 100%;
	min-height: 558px;
	padding: 60px 100px;
	box-sizing: border-box;
}

/* Close button */
.l-drawer__close {
	position: absolute;
	top: 38px;
	right: 45px;
	width: 23px;
	height: 23px;
	z-index: 1;
}
.l-drawer__close-bar {
	position: absolute;
	top: 11px;
	left: 0;
	width: 100%;
	height: 1px;
	background: #fff;
}
.l-drawer__close-bar:nth-child(1) { transform: rotate(45deg); }
.l-drawer__close-bar:nth-child(2) { transform: rotate(-45deg); }

/* Left column */
.l-drawer__left {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
}

/* Logo */
.l-drawer__logo {
	display: inline-flex;
	align-items: center;
}
.l-drawer__logo-img {
	width: 255px;
	height: auto;
	display: block;
	/* logo-white.png（マーク=ブランドブルー / 文字=白）を使用するため filter は不要 */
}

/* Statement */
.l-drawer__statement {
	margin: 57px 0 0;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 24px;
	line-height: 1.5;
	color: #fff;
}

/* SNS */
.l-drawer__sns {
	position: relative;
	margin-top: 30px;
	width: 85.37px;
	height: 31.37px;
}
.l-drawer__sns-img {
	display: block;
	width: 100%;
	height: 100%;
}
.l-drawer__sns-link {
	position: absolute;
	top: 0;
	height: 100%;
	display: block;
}
.l-drawer__sns-link--ig { left: 0; width: 31.37px; }
.l-drawer__sns-link--x { left: 55.37px; width: 30px; }

/* Nav */
.l-drawer__nav {
	flex-shrink: 0;
}
.l-drawer__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
}
.l-drawer__nav a {
	display: block;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #fff;
	text-transform: uppercase;
	white-space: nowrap; /* フォント差で字幅が変わっても改行させない */
	transition: opacity .2s ease;
}
.l-drawer__nav a:hover { opacity: .7; }

/* CTA */
.l-drawer__cta {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 33px;
}
.l-drawer__btn-primary,
.l-drawer__btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 270px;
	height: 50px;
	padding: 5px 25px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	transition: opacity .2s ease;
}
.l-drawer__btn-primary {
	background: #003686;
	color: #fff;
}
.l-drawer__btn-secondary {
	background: #fff;
	color: #000;
	border: 1px solid #000;
}
.l-drawer__btn-primary:hover,
.l-drawer__btn-secondary:hover { opacity: .85; }
.l-drawer__btn-secondary img { width: 7px; height: 7px; display: block; }

/* -------- Drawer SP / Tablet (≤1024px): 縦積み -------- */
@media (max-width: 1024px) {
	body.is-drawer-open { overflow: hidden; }

	.l-drawer {
		top: 0;
		min-height: 0;
		height: 100%;
		max-height: 100dvh;
		z-index: 200; /* ヘッダーを覆う */
	}

	.l-drawer__inner {
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 28px;
		min-height: 0;
		padding: 70px 20px 48px;
	}

	.l-drawer__close {
		top: 20px;
		right: 20px;
		width: 18px;
		height: 18px;
	}
	.l-drawer__close-bar { top: 9px; }

	/* Left: 中央寄せ */
	.l-drawer__left { align-items: center; }
	.l-drawer__logo-img { width: 200px; }
	.l-drawer__statement {
		margin-top: 24px;
		max-width: 220px;
		text-align: center;
		font-size: 18px;
	}
	.l-drawer__sns { margin-top: 24px; }

	/* Nav: 中央 */
	.l-drawer__nav ul { gap: 15px; }
	.l-drawer__nav a {
		text-align: center;
		font-size: 14px;
	}

	/* CTA: 画面幅に追従 */
	.l-drawer__cta {
		width: 100%;
		max-width: 270px;
	}
	.l-drawer__btn-primary,
	.l-drawer__btn-secondary {
		width: 100%;
	}
}

/* ============================================================
 * TOP
 * ============================================================ */

/* スクロールスタッキング無効（各セクション通常フロー） */
.p-top > * {
	position: relative;
	background: #f5f6f7;
}

/* MV */
.p-top__mv {
	position: relative; /* absolute video の起点を明示 */
	width: 100%;
	height: 100vh;
	overflow: hidden;
	background: #000;
}
.p-top__mv-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ============================================================
 * TOP: CONCEPT
 * ============================================================ */
.p-top__concept {
	/* position: sticky は親ルール .p-top > * から継承
	   top の値は JS で「viewport高 - コンテンツ高」(負の値) に設定し、
	   下端が画面下に到達した時点で自動的に張り付くようにする */
	background: #f5f6f7;
	overflow: hidden;
}
.p-top__concept-inner {
	position: relative;
	margin: 0 50px;
	background: #fff;
	display: flex;
	flex-direction: column;
}

/* Border lines */
.p-top__concept-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__concept-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__concept-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__concept-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__concept-line--left   { top: 0; bottom: 0; left: 50px; width: 1px; }
.p-top__concept-line--right  { top: 0; bottom: 0; right: 50px; width: 1px; }

/* Header (title area) */
.p-top__concept-header {
	height: 252px;
	padding: 60px 0 0 50px;
}
.p-top__concept-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 328px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__concept-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__concept-title-en .is-accent { color: #003686; }
.p-top__concept-title-jp {
	font-size: 24px;
	line-height: 1.5;
}

/* Video */
.p-top__concept-video {
	position: relative;
	width: 100%;
	height: 695px;
	background: #000;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.p-top__concept-video-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.p-top__concept-video-media {
	cursor: pointer;
}
.p-top__concept-video-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.3);
	transition: opacity .3s ease;
}
.p-top__concept-video.is-playing .p-top__concept-video-overlay {
	opacity: 0;
	pointer-events: none;
}
.p-top__concept-play {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .2s ease;
}
.p-top__concept-play:hover { transform: scale(1.05); }
.p-top__concept-play img {
	width: 40px;
	height: 40px;
	display: block;
	margin-left: 4px; /* 三角形を視覚的中央へ */
}

/* Body */
.p-top__concept-body {
	display: flex;
	margin: 90px auto 60px;
	gap: 47px;
}
.p-top__concept-lead {
	margin: 0;
	width: 338px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 36px;
	line-height: 1.5;
	color: #000;
}
.p-top__concept-lead .is-accent { color: #003686; }
.p-top__concept-text {
	width: 532px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 24px;
	line-height: 1.5;
	color: #000;
}
.p-top__concept-text p { margin: 0; }

/* -------- CONCEPT TABLET (PC幅未満) -------- */
@media (max-width: 1024px) {
	.p-top__concept-body {
		flex-direction: column;
		width: auto;
		max-width: 100%;
		margin: 60px 0;
		padding: 0 50px;
		gap: 30px;
		box-sizing: border-box;
	}
	.p-top__concept-lead,
	.p-top__concept-text {
		width: auto;
		max-width: 100%;
	}
}

/* -------- CONCEPT SP -------- */
@media (max-width: 767px) {
	.p-top__concept-inner { margin: 0 13px; }

	.p-top__concept-line--left   { left: 12px; }
	.p-top__concept-line--right  { right: 12px; }
	.p-top__concept-line--mid    { top: 141px; }

	.p-top__concept-header {
		height: 141px;
		padding: 31px 0 0 24px;
	}
	.p-top__concept-title-en { font-size: 36px; }
	.p-top__concept-title-jp { font-size: 16px; }

	.p-top__concept-video { height: 205px; }
	.p-top__concept-play {
		width: 37px;
		height: 37px;
	}
	.p-top__concept-play img {
		width: 19px;
		height: 19px;
		margin-left: 2px;
	}

	.p-top__concept-body {
		flex-direction: column;
		margin: 32px 0;
		padding: 0 12px;
		gap: 15px;
	}
	.p-top__concept-lead {
		width: auto;
		font-size: 24px;
	}
	.p-top__concept-text {
		width: auto;
		font-size: 16px;
	}
}

/* ============================================================
 * TOP: INTERVIEW
 * ============================================================ */
.p-top__interview {
	background: #f5f6f7;
}

/* Border lines */
.p-top__interview-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__interview-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__interview-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__interview-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__interview-line--left   { top: 0; height: 252px; left: 50px; width: 1px; }
.p-top__interview-line--right  { top: 0; height: 252px; right: 50px; width: 1px; }

/* Header */
.p-top__interview-header {
	position: relative;
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}
.p-top__interview-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 474px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__interview-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__interview-title-en .is-accent { color: #003686; }
.p-top__interview-title-jp {
	font-size: 24px;
	line-height: 1.5;
}

.p-top__interview-viewall {
	position: absolute;
	top: 138px;
	right: 50px;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.p-top__interview-viewall:hover { opacity: .7; }

.p-top__interview-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* Cards list */
.p-top__interview-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
}

.p-top__interview-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	color: #000;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	border-right: 1px solid #000;
	min-height: 537px;
	position: relative;
	transition: opacity .2s ease;
}
.p-top__interview-card:last-child { border-right: 0; }
a.p-top__interview-card:hover { opacity: .85; }

.p-top__interview-thumb {
	width: 100%;
	height: 298px;
	background: #eee;
	overflow: hidden;
	flex-shrink: 0;
}
.p-top__interview-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-top__interview-card-body {
	margin: 15px 32px 0;
	padding-bottom: 32px;
	display: flex;
	flex-direction: column;
	gap: 15px;
	flex: 1;
}
.p-top__interview-subtitle {
	padding-bottom: 15px;
	border-bottom: 1px solid #bababa;
	font-size: 16px;
	line-height: 1.5;
}
.p-top__interview-card-title {
	margin: 0;
	font-size: 21px;
	line-height: 1.5;
}
.p-top__interview-card-desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}
.p-top__interview-more {
	margin-top: auto;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 5px 15px;
	font-size: 12px;
	line-height: 1;
	text-transform: uppercase;
}

/* Coming soon placeholder */
.p-top__interview-card--placeholder {
	align-items: center;
	justify-content: center;
}
.p-top__interview-coming {
	font-size: 16px;
	font-family: "Yu Mincho", "YuMincho", serif;
	color: #000;
}

/* -------- INTERVIEW TABLET -------- */
@media (max-width: 1024px) {
	.p-top__interview-list {
		grid-template-columns: 1fr;
	}
	.p-top__interview-card {
		border-right: 0;
		border-bottom: 1px solid #000;
	}
}
@media (min-width: 768px) and (max-width: 1024px) {
	.p-top__interview-thumb {
		height: 500px;
	}
}

/* -------- INTERVIEW SP -------- */
@media (max-width: 767px) {
	.p-top__interview-line--mid    { top: 142px; }
	.p-top__interview-line--left   { height: 142px; left: 12px; }
	.p-top__interview-line--right  { height: 142px; right: 12px; }

	.p-top__interview-header {
		height: 142px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__interview-title-en { font-size: 36px; }
	.p-top__interview-title-jp { font-size: 16px; }

	.p-top__interview-viewall {
		top: 82px;
		right: 46px;
		padding: 5px 10px;
		gap: 24px;
		font-size: 12px;
	}

	.p-top__interview-card-body {
		margin: 15px 24px 0;
		padding-bottom: 24px;
	}
	.p-top__interview-subtitle { font-size: 12px; }
	.p-top__interview-card-desc { font-size: 12px; }
}

/* ============================================================
 * TOP: WORKS
 * ============================================================ */
.p-top__works {
	background: #f5f6f7;
}

/* Border lines */
.p-top__works-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__works-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__works-line--mid    { top: 330px; left: 0; right: 0; height: 1px; }
.p-top__works-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__works-line--left   { top: 0; height: 330px; left: 50px; width: 1px; }
.p-top__works-line--right  { top: 0; height: 330px; right: 50px; width: 1px; }

/* Header */
.p-top__works-header {
	position: relative;
	height: 330px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 50px 0;
}
.p-top__works-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 474px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__works-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__works-title-en .is-accent { color: #003686; }
.p-top__works-title-jp {
	font-size: 24px;
	line-height: 1.5;
}
.p-top__works-intro {
	margin: 30px 0 0;
	width: 968px;
	max-width: calc(100% - 250px); /* 右側に VIEW ALL ボタンのスペースを確保 */
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.8;
	color: #000;
}

.p-top__works-viewall {
	position: absolute;
	top: 216px;
	right: 50px;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.p-top__works-viewall:hover { opacity: .7; }

.p-top__works-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* Cards list */
.p-top__works-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
}

.p-top__works-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	min-height: 376px;
}
.p-top__works-card:nth-child(3n) { border-right: 0; }

.p-top__works-thumb {
	width: 100%;
	height: 298px;
	border-top: 1px solid #000;
	background: #eee;
	overflow: hidden;
	flex-shrink: 0;
}
.p-top__works-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-top__works-desc {
	margin: 15px 32px 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
}

/* -------- WORKS TABLET -------- */
@media (max-width: 1024px) {
	.p-top__works-list {
		grid-template-columns: 1fr;
	}
	.p-top__works-card {
		border-right: 0;
	}
	.p-top__works-card:nth-child(3n) { border-right: 0; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.p-top__works-thumb { height: 500px; }
	.p-top__works-desc { margin-bottom: 32px; font-size: 20px; }
}

/* -------- WORKS SP -------- */
@media (max-width: 767px) {
	.p-top__works-line--mid    { top: 220px; }
	.p-top__works-line--left   { height: 220px; left: 12px; }
	.p-top__works-line--right  { height: 220px; right: 12px; }

	.p-top__works-header {
		height: 220px;
		margin: 0 13px;
		padding: 32px 24px 0;
	}
	.p-top__works-title-en { font-size: 36px; }
	.p-top__works-title-jp { font-size: 16px; }
	.p-top__works-intro {
		margin: 35px 0 0; /* VIEW ALL ボタン下端(y≈106)から十分な余白を取る */
		width: auto;
		max-width: 100%; /* PC側の calc() 上書き */
		font-size: 12px;
		line-height: 1.6;
	}

	.p-top__works-viewall {
		top: 82px;
		right: 35px;
		padding: 5px 10px;
		gap: 24px;
		font-size: 12px;
	}

	.p-top__works-desc {
		margin: 15px 24px 0;
		font-size: 14px;
	}
}

/* ============================================================
 * TOP: CULTURE
 * ============================================================ */
.p-top__culture {
	background: #f5f6f7;
}

.p-top__culture-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__culture-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__culture-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__culture-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__culture-line--left   { top: 0; height: 252px; left: 50px; width: 1px; }
.p-top__culture-line--right  { top: 0; height: 252px; right: 50px; width: 1px; }

/* Header */
.p-top__culture-header {
	position: relative;
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}
.p-top__culture-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 474px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__culture-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__culture-title-en .is-accent { color: #003686; }
.p-top__culture-title-jp {
	font-size: 24px;
	line-height: 1.5;
}

/* List */
.p-top__culture-list {
	background: #fff;
	padding: 0 100px;
}
.p-top__culture-item {
	display: flex;
	align-items: flex-start;
	gap: 68px;
	padding: 30px 0;
	border-bottom: 1px solid #000;
}
.p-top__culture-item:first-child { padding-top: 30px; }
.p-top__culture-item-head {
	display: flex;
	align-items: center;
	gap: 38px;
	flex-shrink: 0;
}
.p-top__culture-num {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 24px;
	line-height: 1;
	color: #003686;
	white-space: nowrap;
}
.p-top__culture-item-title {
	margin: 0;
	width: 470px;
	min-width: 0; /* flex 内で縮小許可 */
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.5;
	color: #000;
}
.p-top__culture-item-body {
	display: flex;
	align-items: center;
	gap: 49px;
	flex: 1 1 0;
	min-width: 0; /* flex 内で縮小許可 */
}
.p-top__culture-item-line {
	display: block;
	width: 1px;
	height: 40px;
	background: #000;
	flex-shrink: 0;
}
.p-top__culture-item-desc {
	margin: 0;
	width: 591px;
	min-width: 0; /* flex 内で縮小許可 */
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.7;
	color: #000;
}

/* Images */
.p-top__culture-images {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
}
.p-top__culture-image {
	margin: 0;
	width: 100%;
	height: 351px;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	overflow: hidden;
	background: #eee;
}
.p-top__culture-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* -------- CULTURE TABLET -------- */
@media (max-width: 1024px) {
	.p-top__culture-list { padding: 0 50px; }
	.p-top__culture-item {
		flex-direction: column;
		gap: 16px;
	}
	.p-top__culture-item-title { width: auto; max-width: 100%; }
	.p-top__culture-item-body { width: 100%; }
	.p-top__culture-item-line { display: none; }
	.p-top__culture-item-desc { width: auto; max-width: 100%; }
	/* 画像グリッドをタブレットでも1列に */
	.p-top__culture-images { grid-template-columns: 1fr; }
	.p-top__culture-image { height: 280px; }
}

/* -------- CULTURE SP -------- */
@media (max-width: 767px) {
	.p-top__culture-line--mid    { top: 142px; }
	.p-top__culture-line--left   { height: 142px; left: 12px; }
	.p-top__culture-line--right  { height: 142px; right: 12px; }

	.p-top__culture-header {
		height: 142px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__culture-title-en { font-size: 36px; }
	.p-top__culture-title-jp { font-size: 16px; }

	.p-top__culture-list {
		padding: 0 24px;
	}
	.p-top__culture-item {
		padding: 32px 0;
		gap: 13px;
	}
	.p-top__culture-item:last-child { border-bottom: 0; }
	.p-top__culture-item-head {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		gap: 12px;
		padding-bottom: 15px;
		border-bottom: 1px solid #bababa;
		width: 100%;
	}
	.p-top__culture-num { font-size: 18px; }
	.p-top__culture-item-title {
		font-size: 18px;
		flex: 1;
	}
	.p-top__culture-item-body {
		display: block;
		width: 100%;
	}
	.p-top__culture-item-line { display: none; }
	.p-top__culture-item-desc {
		width: 100%;
		font-size: 12px;
	}

	.p-top__culture-images {
		grid-template-columns: 1fr;
	}
	.p-top__culture-image {
		height: 190px;
		border-top: 0;
		border-bottom: 0;
	}
	.p-top__culture-image:first-child { border-top: 1px solid #000; }
	.p-top__culture-image:last-child { border-bottom: 1px solid #000; }
}

/* ============================================================
 * TOP: COMPANY DATA
 * ============================================================ */
.p-top__data {
	background: #f5f6f7;
}

.p-top__data-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__data-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__data-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__data-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__data-line--left   { top: 0; bottom: 0; left: 50px; width: 1px; }
.p-top__data-line--right  { top: 0; bottom: 0; right: 50px; width: 1px; }

/* Header */
.p-top__data-header {
	position: relative;
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}
.p-top__data-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 538px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__data-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__data-title-en .is-accent { color: #003686; }
.p-top__data-title-jp {
	font-size: 24px;
	line-height: 1.5;
}

/* Grid (3 x 2 cells) */
.p-top__data-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
	margin: 0 50px;
}
.p-top__data-cell {
	display: flex;
	flex-direction: column;
	align-items: stretch; /* row / desc を同じ幅(セル内幅)に揃える */
	justify-content: center;
	gap: 19px;
	min-height: 169px;
	padding: 0 32px;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__data-cell:nth-child(3n) { border-right: 0; }
.p-top__data-cell:nth-last-child(-n+3) { border-bottom: 0; }

/* Top row: label(左 / sub があれば縦に重ねる) + number(右) with bottom border */
.p-top__data-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid #bababa;
}
.p-top__data-row-left {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.p-top__data-label {
	font-size: 21px;
	line-height: 1.2;
	white-space: nowrap;
}
.p-top__data-num {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
	color: #003686;
	white-space: nowrap;
}
.p-top__data-num-big {
	font-size: 64px;
	line-height: 1;
	letter-spacing: 5px;
}
.p-top__data-num-unit,
.p-top__data-num-small {
	font-size: 24px;
	line-height: 1;
}
.p-top__data-num-small { font-size: 21px; }

/* Sub label（青文字の補足。例: "法人設立より"。任意） */
.p-top__data-sub {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.2;
	color: #003686;
}

/* Bottom: description（row と同じ幅・左揃え） */
.p-top__data-desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
}

/* -------- DATA TABLET (PC幅未満) -------- */
@media (max-width: 1024px) {
	.p-top__data-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.p-top__data-cell:nth-child(3n) { border-right: 1px solid #000; }
	.p-top__data-cell:nth-child(2n) { border-right: 0; }
	.p-top__data-cell:nth-last-child(-n+3) { border-bottom: 1px solid #000; }
	.p-top__data-cell:nth-last-child(-n+2) { border-bottom: 0; }
}

/* -------- DATA SP -------- */
@media (max-width: 767px) {
	/* セクションの上下横線は非表示、中央線(top:142)と縦線(全高)のみ */
	.p-top__data-line--top    { display: none; }
	.p-top__data-line--bottom { display: none; }
	.p-top__data-line--mid    { top: 142px; }
	.p-top__data-line--left   { top: 0; bottom: 0; height: auto; left: 12px; }
	.p-top__data-line--right  { top: 0; bottom: 0; height: auto; right: 12px; }

	.p-top__data-header {
		height: 142px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__data-title-en { font-size: 36px; }
	.p-top__data-title-jp { font-size: 16px; }

	.p-top__data-grid {
		grid-template-columns: 1fr;
		margin: 0;
	}
	.p-top__data-cell {
		border-right: 0;
		border-bottom: 1px solid #000;
		min-height: 169px;
	}
}

/* ============================================================
 * TOP: WORKING ENVIRONMENT
 * ============================================================ */
.p-top__we {
	background: #f5f6f7;
}

.p-top__we-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__we-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__we-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__we-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__we-line--left   { top: 0; bottom: 0; left: 50px; width: 1px; }
.p-top__we-line--right  { top: 0; bottom: 0; right: 50px; width: 1px; }

/* Header */
.p-top__we-header {
	position: relative;
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}
.p-top__we-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__we-title-en {
	font-size: 64px;
	line-height: 1.2;
	color: #003686;
}
.p-top__we-title-en .is-text-black { color: #000; }
.p-top__we-title-jp {
	font-size: 24px;
	line-height: 1.5;
	color: #000;
}

/* Columns wrapper */
.p-top__we-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: #fff;
	margin: 0 50px;
}
.p-top__we-col {
	display: flex;
	justify-content: center;
	padding: 60px 20px;
}
.p-top__we-col--holiday { border-right: 1px solid #bababa; }

.p-top__we-col-inner {
	width: 520px;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.p-top__we-col-head {
	display: flex;
	flex-direction: column;
	padding: 15px 10px;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
}
.p-top__we-col-head-en {
	margin: 0;
	font-size: 32px;
	line-height: 1.2;
	color: #003686;
	text-transform: uppercase;
}
.p-top__we-col-head-en .is-text-black { color: #000; }
.p-top__we-col-head-jp {
	margin: 0;
	font-size: 21px;
	line-height: 1.5;
	color: #000;
}

/* List items */
.p-top__we-list {
	display: flex;
	flex-direction: column;
}
.p-top__we-item {
	padding: 15px 10px;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
}
.p-top__we-item:last-child { border-bottom: 0; }
.p-top__we-item-title {
	margin: 0;
	font-size: 21px;
	line-height: 1.4;
	color: #000;
}
.p-top__we-item-bullet { color: #003686; }
.p-top__we-item-sub {
	margin: 0;
	padding-left: 21px;
	font-size: 18px;
	line-height: 1.6;
	color: #5c5c5c;
}

/* -------- WORKING ENVIRONMENT TABLET -------- */
@media (max-width: 1024px) {
	.p-top__we-cols {
		grid-template-columns: 1fr;
		margin: 0 13px; /* PC の 50px から縮小 */
	}
	.p-top__we-col--holiday {
		border-right: 0;
		border-bottom: 1px solid #bababa;
	}
	.p-top__we-col {
		padding: 40px 30px; /* PC の 60px 20px より横幅に余裕 */
	}
	.p-top__we-col-inner { width: 100%; }
	.p-top__we-item-title { font-size: 16px; }
	.p-top__we-item-sub   { font-size: 14px; }
}

/* -------- WORKING ENVIRONMENT SP -------- */
@media (max-width: 767px) {
	.p-top__we-line--mid    { top: 196px; }
	.p-top__we-line--left   { left: 12px; }
	.p-top__we-line--right  { right: 12px; }

	.p-top__we-header {
		height: 196px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__we-title-en { font-size: 36px; }
	.p-top__we-title-jp { font-size: 16px; }

	.p-top__we-cols {
		margin: 0 13px;
	}
	.p-top__we-col {
		padding: 32px 24px;
	}
	.p-top__we-col-inner {
		width: 100%;
		gap: 15px;
	}
	.p-top__we-col-head-en { font-size: 24px; }
	.p-top__we-col-head-jp { font-size: 14px; }
	.p-top__we-item-title { font-size: 14px; }
	.p-top__we-item-sub { font-size: 12px; padding-left: 16px; }
}

/* ============================================================
 * TOP: CRAFT TRUST (信用ものづくりメディア)
 * ============================================================ */
.p-top__media {
	background: #f5f6f7;
}

/* Border lines */
.p-top__media-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__media-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__media-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__media-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__media-line--left   { top: 0; height: 252px; left: 50px; width: 1px; }
.p-top__media-line--right  { top: 0; height: 252px; right: 50px; width: 1px; }

/* Header */
.p-top__media-header {
	position: relative;
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}
.p-top__media-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 474px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__media-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__media-title-en .is-accent { color: #003686; }
.p-top__media-title-jp {
	font-size: 24px;
	line-height: 1.5;
}
.p-top__media-title-br { display: none; }

.p-top__media-viewall {
	position: absolute;
	top: 138px;
	right: 50px;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.p-top__media-viewall:hover { opacity: .7; }
.p-top__media-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* Cards list */
.p-top__media-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
}

.p-top__media-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	color: #000;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	border-right: 1px solid #000;
	min-height: 561px;
	position: relative;
	transition: opacity .2s ease;
}
.p-top__media-card:last-child { border-right: 0; }
a.p-top__media-card:hover { opacity: .85; }

.p-top__media-thumb {
	width: 100%;
	height: 298px;
	background: #eee;
	overflow: hidden;
	flex-shrink: 0;
}
.p-top__media-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-top__media-card-body {
	margin: 15px 32px 0;
	padding-bottom: 32px;
	display: flex;
	flex-direction: column;
	gap: 15px;
	flex: 1;
}
.p-top__media-subtitle {
	padding-bottom: 15px;
	border-bottom: 1px solid #bababa;
	font-size: 16px;
	line-height: 1.5;
	color: #003686; /* 信用メディアの サブタイトルは青文字 */
}
.p-top__media-card-title {
	margin: 0;
	font-size: 21px;
	line-height: 1.5;
}
.p-top__media-card-desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}
.p-top__media-more {
	margin-top: auto;
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 5px 15px;
	font-size: 12px;
	line-height: 1;
	text-transform: uppercase;
}

/* Coming soon placeholder */
.p-top__media-card--placeholder {
	align-items: center;
	justify-content: center;
}
.p-top__media-coming {
	font-size: 16px;
	font-family: "Yu Mincho", "YuMincho", serif;
	color: #000;
}

/* -------- MEDIA TABLET -------- */
@media (max-width: 1024px) {
	.p-top__media-list {
		grid-template-columns: 1fr;
	}
	.p-top__media-card {
		border-right: 0;
		border-bottom: 1px solid #000;
	}
}
@media (min-width: 768px) and (max-width: 1024px) {
	.p-top__media-thumb { height: 500px; }
}

/* -------- MEDIA SP -------- */
@media (max-width: 767px) {
	.p-top__media-line--mid    { top: 196px; }
	.p-top__media-line--left   { height: 196px; left: 12px; }
	.p-top__media-line--right  { height: 196px; right: 12px; }

	.p-top__media-header {
		height: 196px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__media-title-en { font-size: 36px; line-height: 1.1; }
	.p-top__media-title-jp { font-size: 16px; margin-top: 6px; }
	.p-top__media-title-br { display: inline; }

	.p-top__media-viewall {
		top: 136px;
		right: 46px;
		padding: 5px 10px;
		gap: 24px;
		font-size: 12px;
	}

	.p-top__media-card-body {
		margin: 15px 24px 0;
		padding-bottom: 24px;
	}
	.p-top__media-subtitle { font-size: 12px; }
	.p-top__media-card-desc { font-size: 12px; }
}

/* ============================================================
 * TOP: TOP MESSAGE
 * ============================================================ */
.p-top__message {
	background: #f5f6f7 url('../images/message-bg.png') center / cover no-repeat;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

/* Border lines */
.p-top__message-line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.p-top__message-line--top    { top: 0; left: 0; right: 0; height: 1px; }
.p-top__message-line--mid    { top: 252px; left: 0; right: 0; height: 1px; }
.p-top__message-line--bottom { bottom: 0; left: 0; right: 0; height: 1px; }
.p-top__message-line--left   { top: 0; height: 252px; left: 50px; width: 1px; }
.p-top__message-line--right  { top: 0; height: 252px; right: 50px; width: 1px; }

/* Header */
.p-top__message-header {
	position: relative; /* MORE VIEW ボタンを absolute で配置するため */
	height: 252px;
	margin: 0 50px;
	background: #fff;
	padding: 60px 0 0 50px;
}

/* MORE VIEW ボタン (craft_trust 個別記事へのリンク) */
.p-top__message-more {
	position: absolute;
	top: 50%;
	right: 50px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 25px;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.p-top__message-more:hover { opacity: .7; }
.p-top__message-more-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}
.p-top__message-title {
	margin: 0;
	display: flex;
	flex-direction: column;
	width: 474px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #000;
	text-transform: uppercase;
}
.p-top__message-title-en {
	font-size: 64px;
	line-height: 1.2;
}
.p-top__message-title-en .is-accent { color: #003686; }
.p-top__message-title-jp {
	font-size: 24px;
	line-height: 1.5;
}

/* Body */
.p-top__message-body {
	display: flex;
	min-height: 667px; /* 小さめのPC幅でテキストが増えても切れない */
}
.p-top__message-photo {
	margin: 0;
	width: 465px;
	align-self: stretch; /* body の高さに合わせて伸びる */
	flex-shrink: 0;
	background: #d0d0d0; /* 本物の写真が入るまでのプレースホルダ */
	border-bottom: 1px solid #000;
}
.p-top__message-photo picture {
	display: block;
	width: 100%;
	height: 100%;
}
.p-top__message-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.p-top__message-content {
	flex: 1;
	background: #fff;
	padding: 60px 100px 60px 83px;
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	color: #000;
}
.p-top__message-quote {
	margin: 0;
	font-size: 36px;
	line-height: 1.5;
}
.p-top__message-quote .is-accent { color: #003686; }
.p-top__message-text {
	margin-top: 24px;
	font-size: 18px;
	line-height: 1.8;
}
.p-top__message-text p { margin: 0; }
.p-top__message-signature {
	margin: auto 0 0;
	padding-top: 32px;
	text-align: right;
}
.p-top__message-signature-title { font-size: 16px; }
.p-top__message-signature-sep   { font-size: 16px; }
.p-top__message-signature-name  { font-size: 20px; }
.p-top__message-quote-br { display: none; } /* PCでは改行を抑制 */

/* -------- TOP MESSAGE TABLET (PC幅未満) -------- */
@media (max-width: 1024px) {
	.p-top__message-body {
		flex-direction: column;
		height: auto;
	}
	.p-top__message-photo {
		width: 100%;
		height: 667px;
		border-bottom: 0;
	}
	.p-top__message-content {
		flex: none; /* column 方向で height: auto 時の collapse 防止 */
		padding: 60px 50px;
	}
}

/* -------- TOP MESSAGE TABLET 専用 (768-1023px) -------- */
@media (min-width: 768px) and (max-width: 1024px) {
	/* ヘッダーの横幅が狭まるためフォントサイズを縮小 */
	.p-top__message-header {
		height: auto;
		min-height: 172px;
		padding-bottom: 30px;
	}
	.p-top__message-title-en { font-size: 48px; }
	.p-top__message-title-jp { font-size: 20px; }
	.p-top__message-line--mid { top: 172px; }
	.p-top__message-line--left  { height: 172px; }
	.p-top__message-line--right { height: 172px; }
}

/* -------- TOP MESSAGE SP -------- */
@media (max-width: 767px) {
	.p-top__message-line--mid    { top: 142px; }
	.p-top__message-line--left   { height: 141px; left: 12px; }
	.p-top__message-line--right  { height: 141px; right: 12px; }

	.p-top__message-header {
		height: 141px;
		margin: 0 13px;
		padding: 32px 0 0 24px;
	}
	.p-top__message-title-en { font-size: 36px; }
	.p-top__message-title-jp { font-size: 16px; }
	.p-top__message-more {
		top: auto;
		bottom: 19px;
		right: 15px;
		transform: none;
		padding: 5px 10px;
		gap: 24px;
		font-size: 12px;
	}

	.p-top__message-body {
		flex-direction: column;
		height: auto;
	}
	.p-top__message-photo {
		width: 100%;
		height: 667px;
		border-bottom: 0;
	}
	.p-top__message-content {
		padding: 32px 24px;
	}
	.p-top__message-quote {
		font-size: 24px;
		line-height: 1.5;
	}
	.p-top__message-quote-br { display: inline; } /* SPで改行を有効化 */
	.p-top__message-text {
		margin-top: 15px;
		font-size: 16px;
		line-height: 1.8;
	}
	.p-top__message-signature {
		margin: 32px 0 0;
		padding-top: 0;
	}
	.p-top__message-signature-title { font-size: 12px; }
	.p-top__message-signature-sep   { font-size: 16px; }
	.p-top__message-signature-name  { font-size: 20px; }
}

/* ============================================================
 * Footer
 * ============================================================ */
.l-footer {
	position: relative;
	width: 100%;
	height: 684px;
	background-image: url('../images/footer-bg.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
	border-top: 1px solid #000;
}

/* Border lines */
.l-footer__line {
	position: absolute;
	background: #000;
	z-index: 2;
	pointer-events: none;
}
.l-footer__line--left {
	top: 0;
	bottom: 0;
	left: 50px;
	width: 1px;
}
.l-footer__line--right {
	top: 0;
	bottom: 0;
	right: 50px;
	width: 1px;
}
.l-footer__line--bottom {
	top: 636px;
	left: 0;
	right: 0;
	height: 1px;
}

.l-footer__card {
	position: absolute;
	top: 0;
	left: 50px;
	right: 50px;
	height: 636px;
	background: #fff;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	padding: 60px 50px;
}

/* Left column */
.l-footer__col-left {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* Logo */
.l-footer__logo {
	display: inline-flex;
	align-items: center;
}
.l-footer__logo-img {
	width: 360px;
	height: auto;
	display: block;
}

/* Statement */
.l-footer__statement {
	margin: 32px 0 0;
	width: 168px;
	font-weight: 500;
	font-size: 24px;
	line-height: 1.5;
	color: #000;
}

/* Address */
.l-footer__address {
	margin: 30px 0 0;
	width: 290px;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.6;
	color: #000;
	font-style: normal;
}
.l-footer__address p { margin: 0; }

/* SNS */
.l-footer__sns {
	position: relative;
	margin: 25px 0 0;
	width: 85.37px;
	height: 31.37px;
}
.l-footer__sns-img { display: block; width: 100%; height: 100%; }
.l-footer__sns-link {
	position: absolute;
	top: 0;
	height: 100%;
	display: block;
}
.l-footer__sns-link--ig { left: 0; width: 31.37px; }
.l-footer__sns-link--x { left: 55.37px; width: 30px; }

/* Right column (nav + cta) */
.l-footer__col-right {
	display: flex;
	align-items: flex-start;
	gap: 128px;
	margin-top: 219px;
}

/* Nav */
.l-footer__nav {
	width: 175px;
}
.l-footer__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
}
.l-footer__nav a {
	display: block;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
	transition: opacity .2s ease;
}
.l-footer__nav a:hover { opacity: .6; }

/* CTA */
.l-footer__cta {
	width: 270px;
	display: flex;
	flex-direction: column;
	gap: 33px;
}
.l-footer__btn-primary,
.l-footer__btn-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 270px;
	height: 50px;
	padding: 5px 25px;
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	transition: opacity .2s ease;
}
.l-footer__btn-primary { background: #003686; color: #fff; }
.l-footer__btn-secondary { background: #fff; color: #000; border: 1px solid #000; }
.l-footer__btn-primary:hover,
.l-footer__btn-secondary:hover { opacity: .85; }
.l-footer__btn-secondary img { width: 7px; height: 7px; display: block; }

/* Copyright */
.l-footer__copyright {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	margin: 0;
	width: max-content;
	font-weight: 500;
	font-size: 12px;
	line-height: 1.4;
	color: #000;
	text-align: center;
}

/* -------- Footer SP & TABLET -------- */
@media (max-width: 1024px) {
	.l-footer {
		height: 816px;
		background-image: none;
		background: #f5f6f7;
	}
	.l-footer__line--left { left: 12px; }
	.l-footer__line--right { right: 12px; }
	.l-footer__line--bottom { top: 781px; }

	.l-footer__card {
		left: 13px;
		right: 12px;
		height: 781px;
		flex-direction: column;
		align-items: flex-start;
		padding: 32px 24px;
	}

	/* col-left / col-right を解体して、card 直下の flex 子要素として並べる */
	.l-footer__col-left,
	.l-footer__col-right { display: contents; }

	.l-footer__logo { order: 1; margin: 0; }
	.l-footer__logo-img { width: 220px; }

	.l-footer__statement {
		order: 2;
		margin: 28px 0 0;
		width: 126px;
		font-size: 18px;
	}

	.l-footer__address {
		order: 3;
		margin: 24px 0 0;
		width: 290px;
		font-size: 14px;
	}

	.l-footer__nav {
		order: 4;
		margin: 28px 0 0;
		width: 175px;
	}
	.l-footer__nav a { font-size: 14px; }

	.l-footer__cta {
		order: 5;
		margin: 32px 0 0;
		align-self: center;
		width: 270px;
		gap: 15px;
	}
	.l-footer__btn-primary,
	.l-footer__btn-secondary {
		width: 270px;
		height: 50px;
		font-size: 12px;
	}

	.l-footer__sns {
		order: 6;
		margin: 32px 0 0;
		align-self: center;
		width: 85.37px;
		height: 31.37px;
	}

	.l-footer__copyright {
		bottom: auto;
		top: 791px;
		font-size: 10px;
	}
}

/* ============================================================
 * Single: Craft Trust(信用ものづくりメディア 個別記事)
 * ============================================================ */
/* ============================================================
 * Single: Craft Trust(信用ものづくりメディア 個別記事)
 * ============================================================ */
.p-single {
	background: #f5f6f7;
}

/* Heading section (white card, full width between left/right) */
.p-single__head {
	position: relative;
	margin: 0 50px;
	background: #fff;
	padding: 60px 50px;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}
/* head の上下に viewport 幅の黒線を追加 */
.p-single__head::before,
.p-single__head::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-single__head::before { top: 0; }
.p-single__head::after  { bottom: 0; }
.p-single__head-inner {
	padding-bottom: 30px;
	border-bottom: 1px solid #bababa;
}
.p-single__subtitle {
	margin: 0 0 15px;
	padding-bottom: 15px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
	border-bottom: 1px solid #bababa;
}
.p-single__title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 36px;
	line-height: 1.5;
	color: #000;
}
.p-single__meta {
	margin-top: 30px;
}
.p-single__author {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	color: #000;
}
.p-single__date {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #5c5c5c;
}

/* 2-column layout: main(left) + sidebar(right) */
.p-single__layout {
	display: flex;
	margin: 0 50px;
	background: #fff;
}
.p-single__main {
	flex: 1;
	min-width: 0;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}
.p-single__sidebar {
	width: 282px;
	flex-shrink: 0;
	padding: 60px 50px 60px 29px;
	box-sizing: border-box;
	border-right: 1px solid #000;
}

/* Featured image (inside left column, top) */
.p-single__thumb {
	margin: 0;
}
.p-single__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

/* Body content (block editor output) */
.p-single__body {
	padding: 60px 50px;
}
.p-single__body > *:first-child {
	margin-top: 0;
}
.p-single__body > p:first-child {
	padding-bottom: 60px;
	margin-bottom: 0;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.7;
	color: #000;
}
.p-single__body p {
	margin: 0 0 30px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.7;
	color: #5c5c5c;
	letter-spacing: 0.03em;
}
.p-single__body h2,
.p-single__body h3 {
	margin: 30px 0 15px;
	padding: 0 0 0 12px;
	border-left: 3px solid #003686;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.5;
	color: #000;
}
.p-single__body blockquote,
.p-single__body .wp-block-quote {
	margin: 30px 0;
	padding: 30px;
	background: #e9f2ff;
	border-left: 3px solid #003686;
	font-family: "Yu Mincho", "YuMincho", serif;
}
.p-single__body blockquote p,
.p-single__body .wp-block-quote p {
	margin: 0;
	font-size: 18px;
	line-height: 1.7;
	color: #000;
}
.p-single__body img,
.p-single__body .wp-block-image img {
	max-width: 100%;
	height: auto;
}

/* Sidebar related */
.p-single__related-heading {
	margin: 0;
	padding: 10px 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1.5;
	color: #003686;
	border-bottom: 1px solid #bababa;
	text-transform: uppercase;
}
.p-single__related-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-single__related-item {
	border-bottom: 1px solid #bababa;
}
.p-single__related-link {
	display: block;
	padding: 15px 0;
	text-decoration: none;
	color: #000;
	transition: opacity .2s ease;
}
.p-single__related-link:hover { opacity: .7; }
.p-single__related-subtitle {
	display: block;
	margin: 0 0 5px;
	padding-bottom: 5px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	line-height: 1.5;
	color: #003686;
}
.p-single__related-title-text {
	display: block;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: #000;
}

/* BACK button (inside main left column, centered) */
.p-single__back {
	padding: 30px 50px 60px;
	text-align: center;
}
.p-single__back-btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	background: #fff;
	border: 1px solid #000;
	color: #000;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: opacity .2s ease;
}
.p-single__back-btn:hover { opacity: .7; }
.p-single__back-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* -------- SINGLE CRAFT TRUST TABLET / SP -------- */
@media (max-width: 1024px) {
	.p-single__head,
	.p-single__layout {
		margin: 0 12px; /* フッターの SP/タブレット幅と揃える */
	}
	.p-single__head {
		padding: 32px 24px;
	}
	.p-single__layout {
		flex-direction: column;
	}
	.p-single__main {
		border-bottom: 1px solid #000;
		/* border-right は PC の #000 をそのまま継承 */
	}
	.p-single__sidebar {
		width: 100%;
		padding: 24px;
		border-left: 1px solid #000;
	}
	.p-single__body {
		padding: 32px 24px;
	}
	.p-single__back {
		padding: 24px 24px 48px;
	}
}

@media (max-width: 767px) {
	.p-single__title {
		font-size: 18px;
		line-height: 1.6;
	}
	.p-single__subtitle { font-size: 12px; }
	.p-single__author { font-size: 14px; }
	.p-single__date { font-size: 12px; }

	.p-single__body > p:first-child {
		font-size: 12px;
		padding-bottom: 32px;
	}
	.p-single__body p { font-size: 12px; }
	.p-single__body h2,
	.p-single__body h3 { font-size: 18px; }
	.p-single__body blockquote,
	.p-single__body .wp-block-quote {
		padding: 15px;
	}
	.p-single__body blockquote p,
	.p-single__body .wp-block-quote p { font-size: 12px; }

	.p-single__back-btn {
		padding: 10px 20px;
		font-size: 12px;
		gap: 12px;
	}
}

/* ============================================================
 * TOP: RECRUIT（フッター上CTA / TOPページ専用）
 * Figma: RECRUIT CTA (PC: 578-3387 / SP: 385-2618)
 * sticky は .p-top > * から継承
 * ============================================================ */
.p-top__recruit {
	background: #000;
	overflow: hidden;
}

/* ---- Border lines ---- */
.p-top__recruit-line {
	position: absolute;
	background: #fff;
	z-index: 2;
	pointer-events: none;
}
.p-top__recruit-line--left {
	top: 0;
	bottom: 0;
	left: 50px;
	width: 1px;
}
.p-top__recruit-line--right {
	top: 0;
	bottom: 0;
	right: 50px;
	width: 1px;
}

/* ---- Head (RECRUIT / 募集要項) ---- */
.p-top__recruit-head {
	position: relative;
	height: 252px;
	padding: 60px 0 0 100px;
	border-bottom: 1px solid #fff;
}
.p-top__recruit-heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-top__recruit-en {
	font-size: 64px;
	line-height: 1.2;
	color: #fff;
	margin: 0;
}
.p-top__recruit-en-first {
	color: #003686;
}
.p-top__recruit-ja {
	font-size: 24px;
	line-height: normal;
	color: #fff;
	margin: 0;
}

/* ---- Body (tagline + button) ---- */
.p-top__recruit-body {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 60px 0 65px;
	border-bottom: 1px solid #fff;
}
.p-top__recruit-tagline {
	font-size: 48px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	color: #fff;
	text-align: center;
	line-height: normal;
	margin: 0 0 75px;
}
.p-top__recruit-btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	border: 1px solid #fff;
	padding: 15px 40px;
	color: #fff;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	transition: opacity .2s;
}
.p-top__recruit-btn:hover { opacity: .75; }
.p-top__recruit-btn-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #fff;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-top__recruit-line--left  { left: 12px; }
	.p-top__recruit-line--right { right: 12px; }

	.p-top__recruit-head {
		height: 142px;
		padding: 32px 0 0 36px;
	}
	.p-top__recruit-en { font-size: 36px; }
	.p-top__recruit-ja { font-size: 16px; }

	.p-top__recruit-body {
		padding: 32px 0 36px;
	}
	.p-top__recruit-tagline {
		font-size: 32px;
		letter-spacing: -0.05em;
		margin-bottom: 42px;
	}
	.p-top__recruit-btn {
		font-size: 12px;
		padding: 15px 30px;
	}
}

/* ============================================================
 * p-interview-archive: 社員インタビュー 一覧ページ
 * Figma: INTERVIEW一覧 (PC: 385-3160 / SP: 385-3354)
 * ============================================================ */
.p-interview-archive {
	position: relative;
}

/* 白カード（ヘッド + 各アイテム共通） */
.p-interview-archive__head,
.p-interview-archive__item {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}

/* 100vw 横線 (head 上下 + 各アイテム下) */
.p-interview-archive__head::before,
.p-interview-archive__head::after,
.p-interview-archive__item::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-interview-archive__head::before { top: 0; }
.p-interview-archive__head::after  { bottom: 0; }
.p-interview-archive__item::after  { bottom: 0; }

/* ---- Head (INTERVIEW / 社員インタビュー一覧) ---- */
.p-interview-archive__head {
	height: 252px;
	padding: 60px 0 0 50px;
}
.p-interview-archive__heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-interview-archive__en {
	margin: 0;
	font-size: 64px;
	line-height: 1.2;
	color: #000;
}
.p-interview-archive__en-first {
	color: #003686;
}
.p-interview-archive__ja {
	margin: 0;
	font-size: 24px;
	line-height: normal;
	color: #000;
}

/* ---- List ---- */
.p-interview-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---- Item / Card ---- */
.p-interview-archive__link {
	display: flex;
	gap: 60px;
	align-items: center;
	padding-right: 50px;
	text-decoration: none;
	color: inherit;
	transition: opacity .2s;
}
.p-interview-archive__link:hover { opacity: .75; }

.p-interview-archive__thumb {
	flex-shrink: 0;
	width: 446px;
	height: 298px;
	overflow: hidden;
	background: #fafaf8;
}
.p-interview-archive__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-interview-archive__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 30px;
	min-width: 0; /* flex item の overflow 制御 */
}
.p-interview-archive__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
}
.p-interview-archive__subtitle {
	width: 100%;
	padding-bottom: 15px;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
}
.p-interview-archive__title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: normal;
	color: #000;
}
.p-interview-archive__desc {
	margin: 0;
	font-size: 16px;
	line-height: normal;
	color: #000;
}
.p-interview-archive__more {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 5px 15px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	color: #000;
}
.p-interview-archive__more-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-interview-archive__head {
		margin: 0 12px;
		height: 142px;
		padding: 32px 0 0 24px;
	}
	.p-interview-archive__en { font-size: 36px; }
	.p-interview-archive__ja { font-size: 16px; }

	/* SP は記事カード全幅・左右ボーダーなし */
	.p-interview-archive__item {
		margin: 0;
		border-left: 0;
		border-right: 0;
	}

	.p-interview-archive__link {
		flex-direction: column;
		align-items: center;
		gap: 15px;
		padding: 0 0 25px;
	}
	.p-interview-archive__thumb {
		width: 100%;
		height: auto;
		aspect-ratio: 480 / 298;
	}
	.p-interview-archive__content {
		width: calc(100% - 48px);
		max-width: 392px;
		gap: 25px;
	}
	.p-interview-archive__text { gap: 15px; }
	.p-interview-archive__subtitle { font-size: 12px; }
	.p-interview-archive__title    { font-size: 21px; }
	.p-interview-archive__desc     { font-size: 12px; }
}

/* ---- Tablet (768–1023px) ---- */
@media (min-width: 768px) and (max-width: 1024px) {
	.p-interview-archive__content {
		width: 80%;
		max-width: none;
	}
}

/* ---- Load More ボタン ---- */
.p-interview-archive__loadmore-wrap {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
	padding: 60px 0;
	display: flex;
	justify-content: center;
}
.p-interview-archive__loadmore-wrap::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-interview-archive__loadmore {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	border: 1px solid #000;
	background: transparent;
	color: #000;
	padding: 15px 40px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
	cursor: pointer;
	transition: opacity .2s;
}
.p-interview-archive__loadmore:hover { opacity: .75; }
.p-interview-archive__loadmore.is-loading { opacity: .5; cursor: wait; }
.p-interview-archive__loadmore-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

@media (max-width: 1024px) {
	.p-interview-archive__loadmore-wrap {
		margin: 0;
		border-left: 0;
		border-right: 0;
		padding: 40px 0;
	}
	.p-interview-archive__loadmore {
		font-size: 12px;
		padding: 15px 30px;
	}
}

/* ============================================================
 * p-works-archive: 制作実績 一覧ページ
 * Figma: 制作実績一覧 (PC: 325-4738 / SP: 385-4310)
 * ============================================================ */
.p-works-archive {
	position: relative;
}

/* ---- Head (WORKS / 制作実績一覧): 左右50pxの白カード ---- */
.p-works-archive__head {
	position: relative;
	margin: 0 50px;
	height: 252px;
	padding: 60px 0 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}
.p-works-archive__head::before,
.p-works-archive__head::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-works-archive__head::before { top: 0; }
.p-works-archive__head::after  { bottom: 0; }
.p-works-archive__heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-works-archive__en {
	margin: 0;
	font-size: 64px;
	line-height: 1.2;
	color: #000;
}
.p-works-archive__en-first {
	color: #003686;
}
.p-works-archive__ja {
	margin: 0;
	font-size: 24px;
	line-height: normal;
	color: #000;
}

/* ---- Grid (3列フル幅) ---- */
.p-works-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.p-works-archive__item {
	display: flex;
	flex-direction: column;
	gap: 15px;
	align-items: center;
	height: 376px;
	background: #fff;
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
}
.p-works-archive__item:nth-child(3n) {
	border-right: 0;
}

.p-works-archive__thumb {
	width: 100%;
	height: 298px;
	overflow: hidden;
	background: #fafaf8;
	flex-shrink: 0;
}
.p-works-archive__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-works-archive__content {
	width: calc(100% - 64px);
	max-width: 416px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.p-works-archive__desc {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	color: #000;
}

/* ---- Load More ボタン ---- */
.p-works-archive__loadmore-wrap {
	position: relative;
	background: #fff;
	padding: 60px 0;
	display: flex;
	justify-content: center;
}
.p-works-archive__loadmore-wrap::before {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 0;
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-works-archive__loadmore {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	border: 1px solid #000;
	background: transparent;
	color: #000;
	padding: 15px 40px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
	cursor: pointer;
	transition: opacity .2s;
}
.p-works-archive__loadmore:hover { opacity: .75; }
.p-works-archive__loadmore.is-loading { opacity: .5; cursor: wait; }
.p-works-archive__loadmore-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-works-archive__head {
		margin: 0 12px;
		height: 142px;
		padding: 32px 0 0 24px;
	}
	.p-works-archive__en { font-size: 36px; }
	.p-works-archive__ja { font-size: 16px; }

	/* 1列フル幅 */
	.p-works-archive__list {
		grid-template-columns: 1fr;
	}
	.p-works-archive__item {
		border-right: 0;
	}
	.p-works-archive__item:nth-child(3n) {
		border-right: 0;
	}
	.p-works-archive__content {
		width: calc(100% - 48px);
		max-width: 400px;
	}
	.p-works-archive__desc {
		font-size: 14px;
	}

	.p-works-archive__loadmore-wrap {
		padding: 40px 0;
	}
	.p-works-archive__loadmore {
		font-size: 12px;
		padding: 15px 30px;
	}
}

/* ============================================================
 * p-craft-trust-archive: 信用ものづくりメディア 一覧ページ
 * Figma: Craft Trust一覧 (PC: 325-4750 / SP: 385-4807)
 * ============================================================ */
.p-craft-trust-archive {
	position: relative;
}

/* 白カード共通（左右50pxマージン + 左右ボーダー） */
.p-craft-trust-archive__head,
.p-craft-trust-archive__featured,
.p-craft-trust-archive__item,
.p-craft-trust-archive__loadmore-wrap {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}

/* 100vw 横線 */
.p-craft-trust-archive__head::before,
.p-craft-trust-archive__head::after,
.p-craft-trust-archive__featured::after,
.p-craft-trust-archive__item::after,
.p-craft-trust-archive__loadmore-wrap::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-craft-trust-archive__head::before    { top: 0; }
.p-craft-trust-archive__head::after     { bottom: 0; }
.p-craft-trust-archive__featured::after { bottom: 0; }
.p-craft-trust-archive__item::after     { bottom: 0; }
.p-craft-trust-archive__loadmore-wrap::after { bottom: 0; }

/* ---- Head (CRAFT TRUST / 信用ものづくりメディア一覧) ---- */
.p-craft-trust-archive__head {
	height: 252px;
	padding: 60px 0 0 50px;
}
.p-craft-trust-archive__heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-craft-trust-archive__en {
	margin: 0;
	font-size: 64px;
	line-height: 1.2;
	color: #000;
}
.p-craft-trust-archive__en-first {
	color: #003686;
}
.p-craft-trust-archive__ja {
	margin: 0;
	font-size: 24px;
	line-height: normal;
	color: #000;
}

/* ---- Featured セクション ---- */
.p-craft-trust-archive__featured {
	padding: 60px 50px;
}
.p-craft-trust-archive__featured-card {
	display: flex;
	gap: 50px;
	align-items: center;
}
.p-craft-trust-archive__featured-card + .p-craft-trust-archive__featured-card {
	margin-top: 60px;
}
.p-craft-trust-archive__featured-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 30px;
	align-items: flex-start;
}
.p-craft-trust-archive__featured-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 15px;
	width: 100%;
}
.p-craft-trust-archive__featured-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 114px;
	height: 28px;
	background: #003686;
	color: #fff;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	line-height: normal;
}
.p-craft-trust-archive__featured-subtitle {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
}
.p-craft-trust-archive__featured-title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 36px;
	line-height: normal;
	color: #000;
}
.p-craft-trust-archive__featured-desc {
	margin: 0;
	font-size: 16px;
	line-height: normal;
	color: #000;
}
.p-craft-trust-archive__featured-btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 10px 30px;
	border: 1px solid #000;
	background: #fff;
	color: #000;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	line-height: normal;
	text-transform: uppercase;
	transition: opacity .2s;
}
.p-craft-trust-archive__featured-btn:hover { opacity: .75; }
.p-craft-trust-archive__featured-btn-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}
.p-craft-trust-archive__featured-thumb {
	flex-shrink: 0;
	display: block;
	width: 467px;
	height: 327px;
	overflow: hidden;
	background: #fafaf8;
}
.p-craft-trust-archive__featured-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ---- 通常リスト ---- */
.p-craft-trust-archive__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-craft-trust-archive__link {
	display: flex;
	gap: 60px;
	align-items: center;
	padding-right: 50px;
	text-decoration: none;
	color: inherit;
	transition: opacity .2s;
}
.p-craft-trust-archive__link:hover { opacity: .75; }

.p-craft-trust-archive__thumb {
	flex-shrink: 0;
	width: 446px;
	height: 298px;
	overflow: hidden;
	background: #fafaf8;
}
.p-craft-trust-archive__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-craft-trust-archive__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 30px;
	min-width: 0;
}
.p-craft-trust-archive__text {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	width: 100%;
}
.p-craft-trust-archive__subtitle {
	width: 100%;
	padding-bottom: 15px;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
}
.p-craft-trust-archive__title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: normal;
	color: #000;
}
.p-craft-trust-archive__desc {
	margin: 0;
	font-size: 16px;
	line-height: normal;
	color: #000;
}
.p-craft-trust-archive__more {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 5px 15px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	color: #000;
}
.p-craft-trust-archive__more-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- Load More ボタン ---- */
.p-craft-trust-archive__loadmore-wrap {
	padding: 60px 0;
	display: flex;
	justify-content: center;
}
.p-craft-trust-archive__loadmore {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	border: 1px solid #000;
	background: transparent;
	color: #000;
	padding: 15px 40px;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
	cursor: pointer;
	transition: opacity .2s;
}
.p-craft-trust-archive__loadmore:hover { opacity: .75; }
.p-craft-trust-archive__loadmore.is-loading { opacity: .5; cursor: wait; }
.p-craft-trust-archive__loadmore-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-craft-trust-archive__head {
		margin: 0 12px;
		height: 142px;
		padding: 32px 0 0 24px;
	}
	.p-craft-trust-archive__en { font-size: 36px; }
	.p-craft-trust-archive__ja { font-size: 16px; }

	/* Featured / 通常 / Load More: 全幅 */
	.p-craft-trust-archive__featured,
	.p-craft-trust-archive__item,
	.p-craft-trust-archive__loadmore-wrap {
		margin: 0;
		border-left: 0;
		border-right: 0;
	}

	/* Featured カード: 縦並び（画像が上） */
	.p-craft-trust-archive__featured {
		padding: 0;
	}
	.p-craft-trust-archive__featured-card {
		flex-direction: column-reverse;
		gap: 15px;
		align-items: center;
		padding: 0 0 25px;
	}
	.p-craft-trust-archive__featured-card + .p-craft-trust-archive__featured-card {
		margin-top: 0;
		border-top: 1px solid #000;
	}
	.p-craft-trust-archive__featured-thumb {
		width: 100%;
		height: auto;
		aspect-ratio: 480 / 298;
	}
	.p-craft-trust-archive__featured-content {
		width: calc(100% - 48px);
		max-width: 392px;
		gap: 24px;
	}
	.p-craft-trust-archive__featured-meta {
		gap: 10px;
		padding-bottom: 0;
	}
	.p-craft-trust-archive__featured-tag {
		width: 79px;
		height: 18px;
		font-size: 10px;
	}
	.p-craft-trust-archive__featured-subtitle {
		font-size: 12px;
	}
	.p-craft-trust-archive__featured-title { font-size: 21px; }
	.p-craft-trust-archive__featured-desc  { font-size: 12px; }
	.p-craft-trust-archive__featured-btn {
		padding: 5px 15px;
		font-size: 12px;
	}

	/* 通常カード: SP は画像上 + コンテンツ下 */
	.p-craft-trust-archive__link {
		flex-direction: column;
		align-items: center;
		gap: 15px;
		padding: 0 0 25px;
	}
	.p-craft-trust-archive__thumb {
		width: 100%;
		height: auto;
		aspect-ratio: 480 / 298;
	}
	.p-craft-trust-archive__content {
		width: calc(100% - 48px);
		max-width: 392px;
		gap: 25px;
	}
	.p-craft-trust-archive__text { gap: 15px; }

	/* Load More */
	.p-craft-trust-archive__loadmore-wrap {
		padding: 40px 0;
	}
	.p-craft-trust-archive__loadmore {
		font-size: 12px;
		padding: 15px 30px;
	}
}

/* ---- Tablet (768–1023px) : Featured / 通常カードのコンテンツ幅を80% ---- */
@media (min-width: 768px) and (max-width: 1024px) {
	.p-craft-trust-archive__featured-content,
	.p-craft-trust-archive__content {
		width: 80%;
		max-width: none;
	}
}

/* ============================================================
 * p-interview: 社員インタビュー 個別ページ
 * Figma: INTERVIEW（個別） (PC: 325-4535 / SP: 385-3907)
 * ============================================================ */
.p-interview {
	position: relative;
}

/* 白カード共通 */
.p-interview__head,
.p-interview__body,
.p-interview__back {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}

/* 100vw 横線 */
.p-interview__head::before,
.p-interview__head::after,
.p-interview__back::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-interview__head::before { top: 0; }
.p-interview__head::after  { bottom: 0; }
.p-interview__back::after  { bottom: 0; }

/* ---- Head（タイトル + プロフィール + 画像） ---- */
.p-interview__head {
	display: flex;
	align-items: stretch;
	gap: 50px;
	height: 380px;
	padding-left: 50px;
}
.p-interview__head-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 60px 0 30px;
}
.p-interview__head-title-wrap {
	display: flex;
	flex-direction: column;
	padding-bottom: 30px;
	border-bottom: 1px solid #bababa;
}
.p-interview__subtitle {
	margin: 0 0 15px;
	padding-bottom: 15px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
}
.p-interview__title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 36px;
	line-height: 1.4;
	color: #000;
}
.p-interview__person {
	margin: 0;
	display: flex;
	flex-direction: column;
}
.p-interview__person-name {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: normal;
	color: #000;
}
.p-interview__person-role {
	margin: 4px 0 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	color: #000;
}
.p-interview__head-thumb {
	margin: 0;
	flex-shrink: 0;
	width: 516px;
	height: 380px;
	overflow: hidden;
	background: #fafaf8;
}
.p-interview__head-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ---- Body（Q&A + Sidebar） ---- */
.p-interview__body {
	display: flex;
	gap: 0;
	min-height: 600px;
}
.p-interview__main {
	flex: 1;
	min-width: 0;
	padding: 60px 50px;
	border-right: 1px solid #bababa;
}
.p-interview__sidebar {
	flex-shrink: 0;
	width: 283px;
	padding: 60px 40px 30px;
}

/* ---- 本文(Gutenberg ブロックエディタ出力) ---- */
.p-interview__content > *:first-child {
	margin-top: 0;
}
.p-interview__content p {
	margin: 0 0 30px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.8;
	letter-spacing: 0.03em;
	color: #5c5c5c;
}
.p-interview__content h2,
.p-interview__content h3 {
	margin: 30px 0 15px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.4;
	color: #000;
}
.p-interview__content blockquote,
.p-interview__content .wp-block-quote {
	margin: 30px 0;
	padding: 20px 24px;
	background: #f4f6fb;
	border-left: 3px solid #003686;
	font-family: "Yu Mincho", "YuMincho", serif;
}
.p-interview__content blockquote p,
.p-interview__content .wp-block-quote p {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
	color: #000;
}
.p-interview__content img,
.p-interview__content .wp-block-image img {
	max-width: 100%;
	height: auto;
}
.p-interview__content > *:last-child {
	margin-bottom: 0;
}

/* ---- Sidebar (OTHER INTERVIEWS) ---- */
.p-interview__sidebar-title {
	margin: 0 0 15px;
	padding: 10px 0;
	border-bottom: 1px solid #bababa;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #003686;
	line-height: normal;
}
.p-interview__sidebar-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.p-interview__sidebar-item {
	border-bottom: 1px solid #bababa;
}
.p-interview__sidebar-link {
	display: flex;
	flex-direction: column;
	padding: 15px 0;
	text-decoration: none;
	color: inherit;
	transition: opacity .2s;
}
.p-interview__sidebar-link:hover { opacity: .7; }
.p-interview__sidebar-subtitle {
	display: inline-block;
	padding-bottom: 5px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	color: #003686;
	line-height: normal;
}
.p-interview__sidebar-title-text {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.4;
	color: #000;
}

/* ---- BACK ボタン ---- */
.p-interview__back {
	padding: 60px 0 60px;
	display: flex;
	justify-content: center;
}
.p-interview__back-btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	border: 1px solid #000;
	background: #fff;
	color: #000;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
	transition: opacity .2s;
}
.p-interview__back-btn:hover { opacity: .75; }
.p-interview__back-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-interview__head,
	.p-interview__body,
	.p-interview__back {
		margin: 0 12px;
	}

	/* Head: 縦並び（テキスト → 画像） */
	.p-interview__head {
		flex-direction: column;
		height: auto;
		padding-left: 0;
		gap: 0;
	}
	.p-interview__head-content {
		padding: 32px 24px 30px;
	}
	.p-interview__head-title-wrap {
		padding-bottom: 15px;
	}
	.p-interview__subtitle {
		font-size: 12px;
		margin-bottom: 15px;
	}
	.p-interview__title {
		font-size: 21px;
	}
	.p-interview__person {
		margin-top: 15px;
	}
	.p-interview__person-name { font-size: 14px; }
	.p-interview__person-role { font-size: 12px; }
	.p-interview__head-thumb {
		width: 100%;
		height: auto;
		aspect-ratio: 415 / 258;
	}

	/* Body: 縦並び（Q&A → サイドバー） */
	.p-interview__body {
		flex-direction: column;
		min-height: 0;
	}
	.p-interview__main {
		padding: 0 24px;
		border-right: 0;
	}
	/* 本文 (Gutenberg) SP */
	.p-interview__content p { font-size: 12px; }
	.p-interview__content h2,
	.p-interview__content h3 {
		font-size: 18px;
	}
	.p-interview__content blockquote,
	.p-interview__content .wp-block-quote { padding: 15px; }
	.p-interview__content blockquote p,
	.p-interview__content .wp-block-quote p { font-size: 12px; }

	.p-interview__sidebar {
		width: auto;
		padding: 0 24px 30px;
	}

	/* BACK */
	.p-interview__back {
		padding: 30px 0;
	}
	.p-interview__back-btn {
		font-size: 12px;
		padding: 10px 30px;
	}
}

/* ============================================================
 * p-not-found: 404 ページ
 * Figma 未指定（既存トンマナを踏襲）
 * ============================================================ */
.p-not-found {
	position: relative;
}

/* 白カード共通 */
.p-not-found__head,
.p-not-found__body {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}

/* 100vw 横線 */
.p-not-found__head::before,
.p-not-found__head::after,
.p-not-found__body::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-not-found__head::before { top: 0; }
.p-not-found__head::after  { bottom: 0; }
.p-not-found__body::after  { bottom: 0; }

/* ---- Head ---- */
.p-not-found__head {
	height: 252px;
	padding: 60px 0 0 50px;
}
.p-not-found__heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-not-found__en {
	margin: 0;
	font-size: 64px;
	line-height: 1.2;
	color: #000;
}
.p-not-found__en-first {
	color: #003686;
}
.p-not-found__ja {
	margin: 0;
	font-size: 24px;
	line-height: normal;
	color: #000;
}

/* ---- Body ---- */
.p-not-found__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 50px;
	padding: 100px 50px 100px;
	text-align: center;
}
.p-not-found__desc {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 2;
	color: #000;
}
.p-not-found__btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 15px 40px;
	border: 1px solid #000;
	background: #fff;
	color: #000;
	text-decoration: none;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: normal;
	text-transform: uppercase;
	transition: opacity .2s;
}
.p-not-found__btn:hover { opacity: .75; }
.p-not-found__btn-arrow {
	display: inline-block;
	width: 20px;
	height: 1px;
	background: #000;
	flex-shrink: 0;
}

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-not-found__head,
	.p-not-found__body {
		margin: 0 12px;
	}

	.p-not-found__head {
		height: 142px;
		padding: 32px 0 0 24px;
	}
	.p-not-found__en { font-size: 36px; }
	.p-not-found__ja { font-size: 16px; }

	.p-not-found__body {
		gap: 30px;
		padding: 60px 24px;
	}
	.p-not-found__desc { font-size: 14px; }
	.p-not-found__btn {
		font-size: 12px;
		padding: 15px 30px;
	}
}

/* ============================================================
 * p-recruit: 募集職種 個別ページ（採用情報 + エントリーフォーム）
 * Figma: Recruitment_中途営業 (571-2437)
 * ============================================================ */
.p-recruit {
	position: relative;
}

/* 白カード共通 */
.p-recruit__head,
.p-recruit__intro,
.p-recruit__table-wrap,
.p-recruit__entry-head,
.p-recruit__form {
	position: relative;
	margin: 0 50px;
	background: #fff;
	border-left: 1px solid #000;
	border-right: 1px solid #000;
}

/* 100vw 横線 */
.p-recruit__head::before,
.p-recruit__head::after,
.p-recruit__table-wrap::after,
.p-recruit__entry-head::before,
.p-recruit__entry-head::after,
.p-recruit__form::after {
	content: '';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 1px;
	background: #000;
	pointer-events: none;
	z-index: 1;
}
.p-recruit__head::before        { top: 0; }
.p-recruit__head::after         { bottom: 0; }
.p-recruit__table-wrap::after   { bottom: 0; }
.p-recruit__entry-head::before  { top: 0; }
.p-recruit__entry-head::after   { bottom: 0; }
.p-recruit__form::after         { bottom: 0; }

/* ---- Head (RECRUITMENT / 募集要項) ---- */
.p-recruit__head,
.p-recruit__entry-head {
	height: 252px;
	padding: 60px 0 0 50px;
}
.p-recruit__heading,
.p-recruit__entry-heading {
	display: flex;
	flex-direction: column;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
	text-transform: uppercase;
}
.p-recruit__en {
	margin: 0;
	font-size: 64px;
	line-height: 1.2;
	color: #000;
}
.p-recruit__ja {
	margin: 0;
	font-size: 24px;
	line-height: normal;
	color: #000;
}

/* ---- Intro: タグ + タイトル + 本文 ---- */
.p-recruit__intro {
	padding: 60px 100px;
	display: flex;
	flex-direction: column;
	gap: 60px;
}
.p-recruit__intro-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.p-recruit__intro-tag-wrap {
	padding-bottom: 15px;
	width: 100%;
}
.p-recruit__intro-tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 114px;
	height: 28px;
	background: #003686;
	color: #fff;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 700;
	font-size: 16px;
	line-height: normal;
}
.p-recruit__intro-title {
	margin: 0;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 36px;
	line-height: 1.5;
	color: #000;
}
.p-recruit__intro-body {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 2;
	color: #000;
}
.p-recruit__intro-body p {
	margin: 0 0 1em;
}
.p-recruit__intro-body p:last-child {
	margin-bottom: 0;
}

/* ---- Table: 採用情報 ---- */
.p-recruit__table-wrap {
	padding: 60px 100px;
}
.p-recruit__table {
	margin: 0;
	letter-spacing: 0.1em;
}
.p-recruit__table-row {
	display: flex;
	gap: 60px;
	align-items: flex-start;
	padding: 24px;
	border-bottom: 1px solid #ccc;
}
.p-recruit__table-label {
	margin: 0;
	flex-shrink: 0;
	width: 184px;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: normal;
	color: #000;
}
.p-recruit__table-value {
	margin: 0;
	flex: 1;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 21px;
	line-height: 1.6;
	color: #000;
}

/* ---- Form ---- */
.p-recruit__form {
	padding: 60px 100px 100px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
}
.p-recruit__notice {
	width: 100%;
	max-width: 960px;
	padding: 20px 24px;
	border-radius: 5px;
	font-size: 14px;
	line-height: 1.8;
}
.p-recruit__notice--success {
	background: #e8f3ee;
	border: 1px solid #2e7d32;
	color: #1b5e20;
}
.p-recruit__notice--error {
	background: #fdecea;
	border: 1px solid #c62828;
	color: #b71c1c;
}
.p-recruit__form-title {
	margin: 0;
	text-align: center;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 32px;
	color: #000;
}
.p-recruit__form-lead {
	margin: 0;
	text-align: center;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #000;
}
.p-recruit__required-mark {
	color: #e74c3c;
	font-size: 0.85em;
	margin-left: 4px;
}
.p-recruit__form-body {
	display: flex;
	flex-direction: column;
	gap: 32px;
	align-items: center;
	width: 100%;
	max-width: 960px;
}
.p-recruit__field {
	display: flex;
	flex-direction: column;
	gap: 13px;
	width: 100%;
}
.p-recruit__field-label {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	letter-spacing: 0.1em;
	color: #000;
}
.p-recruit__field-input,
.p-recruit__field-select {
	width: 100%;
	height: 50px;
	padding: 10px 16px;
	border: 1px solid #9d9d9d;
	border-radius: 5px;
	background: #fff;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 16px;
	color: #000;
	box-sizing: border-box;
}
.p-recruit__field-input::placeholder { color: #ccc; }
.p-recruit__field-input:focus,
.p-recruit__field-select:focus {
	outline: none;
	border-color: #003686;
}
.p-recruit__field-select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.5' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
}
.p-recruit__agreement {
	display: flex;
	justify-content: center;
}
.p-recruit__agreement-label {
	display: inline-flex;
	gap: 13px;
	align-items: flex-start;
	cursor: pointer;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: #000;
}
.p-recruit__agreement-checkbox {
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	margin-top: 2px;
	border: 0.5px solid #000;
	cursor: pointer;
}
.p-recruit__submit-wrap {
	display: flex;
	justify-content: center;
}
.p-recruit__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 296px;
	height: 50px;
	padding: 10px;
	background: #003686;
	color: #fff;
	border: none;
	font-family: "Yu Mincho", "YuMincho", serif;
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.06em;
	cursor: pointer;
	transition: opacity .2s;
}
.p-recruit__submit:hover { opacity: .85; }

/* ---- SP / Tablet (≤1023px) ---- */
@media (max-width: 1024px) {
	.p-recruit__head,
	.p-recruit__intro,
	.p-recruit__table-wrap,
	.p-recruit__entry-head,
	.p-recruit__form {
		margin: 0 12px;
	}

	.p-recruit__head,
	.p-recruit__entry-head {
		height: 142px;
		padding: 32px 0 0 24px;
	}
	.p-recruit__en { font-size: 36px; }
	.p-recruit__ja { font-size: 16px; }

	.p-recruit__intro {
		padding: 32px 24px;
		gap: 32px;
	}
	.p-recruit__intro-tag {
		width: 79px;
		height: 18px;
		font-size: 10px;
	}
	.p-recruit__intro-title { font-size: 21px; }
	.p-recruit__intro-body  { font-size: 14px; line-height: 1.8; }

	.p-recruit__table-wrap {
		padding: 32px 24px;
	}
	.p-recruit__table-row {
		flex-direction: column;
		gap: 6px;
		padding: 16px 0;
	}
	.p-recruit__table-label,
	.p-recruit__table-value { font-size: 14px; width: 100%; }

	.p-recruit__form {
		padding: 32px 24px 48px;
		gap: 24px;
	}
	.p-recruit__form-title { font-size: 21px; }
	.p-recruit__form-lead  { font-size: 12px; }
	.p-recruit__form-body { gap: 24px; }
	.p-recruit__field-label { font-size: 14px; }
	.p-recruit__field-input,
	.p-recruit__field-select { font-size: 14px; }
	.p-recruit__submit { width: 100%; max-width: 296px; font-size: 14px; }
}
