@charset "UTF-8";
/* 2026年10月 追加分（会社概要: 沿革・組織図・表彰履歴 / 求人: 画像・1日の流れ）
   既存 style.css は触らず、このファイルで追加する */

.nk-sec {
	margin: 60px 0 0;
}
.nk-sec h3 {
	font-weight: bold;
	margin-bottom: 24px;
}
.nk-note {
	text-align: right;
	margin-top: 12px;
}

/* ---------- 年表・1日の流れ（共通の縦タイムライン） ---------- */
.nk-timeline {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #ddd;
}
.nk-timeline > li {
	display: grid;
	grid-template-columns: 9.5em 1fr;
	border-bottom: 1px solid #ddd;
}
.nk-timeline__when {
	padding: 16px 20px;
	font-weight: bold;
	color: #03153E;
	background: #f4f5f8;
	white-space: nowrap;
}
.nk-timeline__what {
	padding: 16px 20px;
	line-height: 1.9;
}
.nk-timeline__what p {
	margin: 0;
}
.nk-timeline__what img {
	display: block;
	width: 100%;
	max-width: 499px;
	height: auto;
	margin-top: 12px;
}
.nk-timeline--day > li {
	grid-template-columns: 9em 1fr;
}

/* ---------- 表彰履歴 ---------- */
.nk-awards {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid #ddd;
}
.nk-awards li {
	display: grid;
	grid-template-columns: 7.5em 1fr;
	gap: 0 20px;
	padding: 14px 20px;
	border-bottom: 1px solid #ddd;
}
.nk-awards__date {
	color: #03153E;
	font-weight: bold;
}
.nk-awards__from {
	display: inline-block;
	color: #555;
	font-size: 0.9em;
}

/* ---------- 組織図 ---------- */
.nk-org {
	--line: #9aa3b5;
	text-align: center;
	padding-top: 8px;
}
.nk-org ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.nk-box {
	display: inline-block;
	min-width: 10.5em;
	border: 1px solid #03153E;
	background: #fff;
	vertical-align: top;
	line-height: 1.5;
}
.nk-box__role {
	display: block;
	padding: 8px 12px;
	background: #03153E;
	color: #fff;
	font-weight: bold;
	font-size: 0.95em;
}
.nk-box__name {
	display: block;
	padding: 8px 12px;
	font-weight: bold;
	color: #03153E;
}
.nk-box__sub {
	display: block;
	padding: 0 12px 8px;
	font-size: 0.8em;
	color: #555;
}
.nk-box--top .nk-box__role {
	background: #ffda44;
	color: #03153E;
}
.nk-box--top {
	border-color: #03153E;
	border-width: 2px;
}
.nk-box--partner {
	border-style: dashed;
}
.nk-box--partner .nk-box__role {
	background: #5b6478;
}

/* 社長の下の幹線と、横に付く執行役員 */
.nk-org__exec {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 48px 1fr;
	align-items: center;
	padding: 24px 0 28px;
}
.nk-org-scroll__hint {
	display: none;
}
.nk-org__exec::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	border-left: 2px solid var(--line);
}
.nk-org__exec > .nk-box {
	position: relative;
}
.nk-org__exec > .nk-box:first-child {
	justify-self: end;
}
.nk-org__exec > .nk-box:last-child {
	grid-column: 3;
	justify-self: start;
}
.nk-org__exec > .nk-box:first-child::after,
.nk-org__exec > .nk-box:last-child::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 24px;
	border-top: 2px solid var(--line);
}
.nk-org__exec > .nk-box:first-child::after {
	left: 100%;
}
.nk-org__exec > .nk-box:last-child::after {
	right: 100%;
}

/* 部署の枝分かれ */
.nk-org__tree ul {
	position: relative;
	display: flex;
	justify-content: center;
	padding-top: 24px;
}
.nk-org__tree li {
	position: relative;
	padding: 24px 8px 0;
}
.nk-org__tree li::before,
.nk-org__tree li::after {
	content: "";
	position: absolute;
	top: 0;
	right: 50%;
	width: 50%;
	height: 24px;
	border-top: 2px solid var(--line);
}
.nk-org__tree li::after {
	right: auto;
	left: 50%;
	border-left: 2px solid var(--line);
}
.nk-org__tree li:first-child::before,
.nk-org__tree li:last-child::after {
	border: 0 none;
}
.nk-org__tree li:last-child::before {
	border-right: 2px solid var(--line);
}
.nk-org__tree li:only-child {
	padding-top: 0;
}
.nk-org__tree li:only-child::before,
.nk-org__tree li:only-child::after {
	display: none;
}
.nk-org__tree ul ul::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	height: 24px;
	border-left: 2px solid var(--line);
}
/* 最上段の枝は幹線から直接つなぐので上の余白を取らない */
.nk-org__tree > ul {
	padding-top: 0;
}

/* スマホ: 図をやめて字下げの一覧にする */
@media only screen and (max-width: 767px) {
	/* 組織図: スマホでも図のまま、横スクロールで見せる */
	.nk-org-scroll {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0 0 8px;
	}
	.nk-org {
		min-width: 760px;
	}
	.nk-org-scroll__hint {
		display: block;
		text-align: center;
		font-size: 13px;
		color: #555;
		margin: 0 0 10px;
	}
	.nk-timeline,
	.nk-awards {
		text-align: left;
	}

	.nk-timeline > li,
	.nk-timeline--day > li {
		grid-template-columns: 1fr;
	}
	.nk-timeline__when {
		padding: 10px 14px;
	}
	.nk-timeline__what {
		padding: 12px 14px 16px;
	}
	.nk-awards li {
		grid-template-columns: 1fr;
		padding: 12px 14px;
	}
}

/* ---------- 求人: 画像 ---------- */
.nk-recruit-images {
	margin: 40px 0 0;
}
.nk-recruit-images a {
	display: block;
	margin: 0 0 24px;
}
.nk-recruit-images img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #ddd;
}
.nk-recruit-images__hint {
	text-align: center;
	font-size: 0.85em;
	color: #555;
	margin: 0 0 16px;
}
@media only screen and (min-width: 768px) {
	.nk-recruit-images__hint {
		display: none;
	}
}
.recruit .nk-sec h3 {
	text-align: center;
	padding-bottom: 0;
}

/* 求人: 職種の3行が詰まらないように */
.recruit table.both td {
	line-height: 1.9;
}
/* 縦長の画像（求人ポスター・施工管理フロー）はPCで大きくなりすぎないよう幅を抑える */
@media only screen and (min-width: 768px) {
	.nk-recruit-images a.is-tall {
		max-width: 640px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* 会社概要: 表彰履歴とマップの区切り */
.nk-access {
	margin-top: 60px;
}
.nk-access h3 {
	margin-bottom: 16px;
}
