/**
 * 事業紹介（.jh-svc）と採用情報（.jh-rec）の新しいレイアウト（2026-10-31 テストサイトで試作）
 *
 * 本文は普通のブロック（グループ・見出し・段落・画像・リスト・詳細・テーブル・クエリーループ）で組み、
 * 見た目はこの CSS で付ける。管理画面から文章や画像を差し替えても崩れないよう、クラス名だけで当てる。
 * 読み込みは pages.php（本文に .jh-svc／.jh-rec があるページだけ）。
 */

.jh-svc,
.jh-rec {
	--jh-primary: var(--vk-color-primary, #8160fc);
	--jh-primary-dark: var(--vk-color-primary-dark, #674dca);
	--jh-ink: #222;
	--jh-sub: #5f5f6b;
	--jh-line: #e6e4ee;
	--jh-tint: #f6f5fb;
	--jh-sec-gap: 88px;
	color: var(--jh-ink);
}
@media (max-width: 767.98px) {
	.jh-svc,
	.jh-rec {
		--jh-sec-gap: 56px;
	}
}
.jh-svc p,
.jh-rec p {
	text-align: left;
}
.jh-svc a,
.jh-rec a {
	text-decoration: none;
}

/* ---------- 共通：セクション見出し ---------- */
.jh-sec {
	margin-top: var(--jh-sec-gap) !important;
}
.jh-eyebrow {
	margin: 0 0 6px !important;
	color: var(--jh-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
}
.jh-svc h2.jh-sec-title,
.jh-rec h2.jh-sec-title {
	margin: 0 0 12px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: clamp(22px, 2.6vw, 30px);
	line-height: 1.4;
	letter-spacing: 0.04em;
}
.jh-svc h2.jh-sec-title::before,
.jh-svc h2.jh-sec-title::after,
.jh-rec h2.jh-sec-title::before,
.jh-rec h2.jh-sec-title::after,
.jh-svc h3::before,
.jh-svc h3::after,
.jh-rec h3::before,
.jh-rec h3::after {
	content: none !important;
	display: none !important;
}
.jh-sec-lead {
	margin: 0 0 28px !important;
	color: var(--jh-sub);
	font-size: 15px;
	line-height: 1.9;
}
.jh-sec-title + .wp-block-group,
.jh-sec-title + .wp-block-list,
.jh-sec-title + .wp-block-details,
.jh-sec-title + .wp-block-query {
	margin-top: 28px;
}
.jh-sub-title {
	margin: 40px 0 16px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 18px;
}

/* ---------- 共通：冒頭 ---------- */
.jh-intro {
	margin-top: 48px;
	padding-bottom: 8px;
}
@media (max-width: 767.98px) {
	.jh-intro {
		margin-top: 28px;
	}
}
.jh-svc h2.jh-intro__title,
.jh-rec h2.jh-intro__title {
	margin: 0 0 20px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: clamp(26px, 3.6vw, 40px);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.04em;
}
.jh-intro__lead {
	max-width: 46em;
	margin: 0 0 32px !important;
	color: var(--jh-sub);
	font-size: 16px;
	line-height: 2;
}
@media (max-width: 767.98px) {
	.jh-svc h2.jh-intro__title,
	.jh-rec h2.jh-intro__title {
		font-size: 22px;
	}
	.jh-intro__lead {
		font-size: 15px;
		line-height: 1.9;
	}
}

/* ---------- 共通：リンクの並び ---------- */
.jh-svc .jh-links,
.jh-rec .jh-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 20px 0 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-links li {
	margin: 0 !important;
}
/* inline-flex にすると、改行調整（phrase-break.js）で分かれた文字がそれぞれ別の箱になり、狭い幅で崩れる */
.jh-links a {
	display: inline;
	color: var(--jh-primary-dark);
	font-weight: 700;
}
.jh-links a::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 1px;
	margin-left: 8px;
	vertical-align: middle;
	background: currentColor;
	transition: width 0.2s;
}
.jh-links a:hover::after {
	width: 28px;
}
.jh-links--center {
	justify-content: center;
}

/* ---------- 共通：写真＋文の 2 列 ---------- */
.jh-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 40px;
	align-items: center;
}
.jh-feature__img {
	margin: 0 !important;
}
.jh-feature__img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
}
.jh-feature__title {
	margin: 0 0 12px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 20px;
	line-height: 1.5;
}
.jh-feature__body p {
	color: var(--jh-sub);
	line-height: 1.9;
}
.jh-sec--message .jh-feature {
	grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
}
.jh-sec--message h3.jh-person__name {
	font-size: 28px;
}
@media (max-width: 767.98px) {
	.jh-feature,
	.jh-sec--message .jh-feature {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* ---------- 共通：ステップ（番号付きの流れ） ---------- */
.jh-svc .jh-steps,
.jh-rec .jh-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	counter-reset: jh-step;
}
.jh-steps li {
	position: relative;
	margin: 0 !important;
	padding: 52px 18px 20px;
	border: 1px solid var(--jh-line);
	border-radius: 6px;
	background: #fff;
	color: var(--jh-sub);
	font-size: 14px;
	line-height: 1.7;
	counter-increment: jh-step;
}
.jh-steps li::before {
	content: counter(jh-step, decimal-leading-zero);
	position: absolute;
	top: 16px;
	left: 18px;
	color: var(--jh-primary);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.jh-steps li strong {
	display: block;
	margin-bottom: 4px;
	color: var(--jh-ink);
	font-size: 16px;
}
@media (max-width: 767.98px) {
	.jh-steps {
		grid-template-columns: 1fr !important;
		gap: 0 !important;
	}
	.jh-steps li {
		padding: 16px 0 16px 52px;
		border: 0;
		border-bottom: 1px solid var(--jh-line);
		border-radius: 0;
		background: none;
	}
	.jh-steps li:first-child {
		border-top: 1px solid var(--jh-line);
	}
	.jh-steps li::before {
		top: 16px;
		left: 4px;
		font-size: 18px;
	}
}

/* ---------- 共通：要確認（テストサイトでの目印。本番に出す前に埋める） ---------- */
.jh-todo,
.jh-todo-inline {
	color: #b3261e !important;
	font-weight: 700;
}
p.jh-todo {
	padding: 12px 16px;
	border: 1px dashed #b3261e;
	border-radius: 4px;
	background: #fff6f5;
}

/* ============================================================
 * 事業紹介
 * ============================================================ */

/* 目的から探す */
.jh-purposes {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.jh-purpose {
	padding: 24px 22px 20px;
	border-radius: 6px;
	background: var(--jh-tint);
}
.jh-purpose__pre {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 13px;
}
.jh-svc h3.jh-purpose__title {
	margin: 2px 0 14px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 20px;
}
.jh-svc .jh-purpose__links {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-purpose__links li {
	margin: 0 !important;
	border-top: 1px solid var(--jh-line);
}
.jh-purpose__links a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	color: var(--jh-ink);
	font-size: 14px;
	font-weight: 700;
}
.jh-purpose__links a::after {
	content: "→";
	color: var(--jh-primary);
	transition: transform 0.2s;
}
.jh-purpose__links a:hover::after {
	transform: translateX(4px);
}
@media (max-width: 991.98px) {
	.jh-purposes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.jh-purposes {
		gap: 8px;
	}
	.jh-purpose {
		padding: 14px 12px 6px;
	}
	.jh-purpose__pre {
		font-size: 11px;
		line-height: 1.5;
	}
	.jh-svc h3.jh-purpose__title {
		margin: 2px 0 8px !important;
		font-size: 15px;
	}
	.jh-purpose__links a {
		padding: 8px 0;
		font-size: 12.5px;
	}
}

/* サービスのカード */
.jh-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 24px;
}
.jh-card {
	margin: 0 !important;
}
.jh-card .wp-block-image {
	margin: 0 0 14px !important;
	overflow: hidden;
	border-radius: 6px;
}
.jh-card .wp-block-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.4s;
}
.jh-card:hover .wp-block-image img {
	transform: scale(1.04);
}
.jh-svc h3.jh-card__title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 18px;
}
.jh-card__title a {
	color: var(--jh-ink);
}
.jh-card__text {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 14px;
	line-height: 1.8;
}
@media (max-width: 991.98px) {
	.jh-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.jh-cards {
		gap: 24px 14px;
	}
	.jh-svc h3.jh-card__title {
		font-size: 15px;
	}
	.jh-card__text {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
		font-size: 12.5px;
		line-height: 1.7;
	}
}

/* 印刷：背景を淡く敷いて「もうひとつの柱」に */
.jh-sec--print {
	padding: 48px;
	border-radius: 8px;
	background: var(--jh-tint);
}
@media (max-width: 767.98px) {
	.jh-sec--print {
		padding: 28px 20px;
	}
}

/* 制作実績（クエリーループ） */
.jh-works .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-works .wp-block-post-template > li {
	margin: 0 !important;
}
.jh-works .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}
.jh-works .wp-block-post-featured-image {
	margin: 0 0 10px !important;
	overflow: hidden;
	border-radius: 6px;
}
.jh-works .wp-block-post-featured-image img {
	transition: transform 0.4s;
}
.jh-works li:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}
.jh-svc h3.jh-works__title {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 15px;
	line-height: 1.6;
}
.jh-works__title a {
	color: var(--jh-ink);
}
@media (max-width: 767.98px) {
	.jh-works .wp-block-post-template {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 0 !important;
	}
	.jh-works .wp-block-post-template > li {
		display: grid;
		grid-template-columns: 120px 1fr;
		gap: 14px;
		align-items: center;
		padding: 12px 0;
		border-bottom: 1px solid var(--jh-line);
	}
	.jh-works .wp-block-post-featured-image {
		margin: 0 !important;
	}
	.jh-svc h3.jh-works__title {
		font-size: 14px;
	}
}

/* ECサイトの対応サービス（小さなロゴの列） */
.jh-sec--partner {
	padding-top: 28px;
	border-top: 1px solid var(--jh-line);
	text-align: center;
}
.jh-partner__label {
	margin: 0 0 12px !important;
	color: var(--jh-sub);
	font-size: 13px;
	text-align: center !important;
}
.jh-partner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 16px 32px;
}
.jh-partner .wp-block-image {
	width: 200px;
	margin: 0 !important;
}
.jh-partner .wp-block-image img {
	width: 100% !important;
	height: auto !important;
}

/* ============================================================
 * 採用情報
 * ============================================================ */

/* 冒頭の動画 */
.jh-rec .jh-intro .wp-block-embed {
	margin: 0 !important;
	overflow: hidden;
	border-radius: 8px;
}

/* 数字 */
.jh-facts {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	border-top: 1px solid var(--jh-line);
	border-left: 1px solid var(--jh-line);
}
.jh-fact {
	padding: 24px 12px 20px;
	border-right: 1px solid var(--jh-line);
	border-bottom: 1px solid var(--jh-line);
	text-align: center;
}
.jh-fact__num {
	margin: 0 0 6px !important;
	color: var(--jh-primary-dark);
	font-size: clamp(20px, 2.4vw, 30px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center !important;
	white-space: nowrap;
}
.jh-fact__num small {
	margin-left: 2px;
	font-size: 0.5em;
}
.jh-fact__label {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 13px;
	text-align: center !important;
}
@media (max-width: 991.98px) {
	.jh-facts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.jh-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.jh-fact {
		padding: 18px 8px 16px;
	}
	.jh-fact__num {
		font-size: 22px;
	}
	.jh-fact__label {
		font-size: 12px;
	}
}

/* 人（専務・先輩） */
.jh-person__role {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 13px;
}
.jh-rec h3.jh-person__name {
	margin: 2px 0 2px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 22px;
}
.jh-person__name a {
	color: var(--jh-ink);
}
.jh-person__en {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 12px;
	letter-spacing: 0.1em;
}
.jh-people {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	max-width: 760px;
}
.jh-person-card .wp-block-image {
	margin: 0 0 12px !important;
	overflow: hidden;
	border-radius: 6px;
}
.jh-person-card img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
	transition: transform 0.4s;
}
.jh-person-card:hover img {
	transform: scale(1.04);
}
.jh-person-card h3.jh-person__name {
	font-size: 18px;
}
@media (max-width: 575.98px) {
	.jh-people {
		gap: 14px;
	}
}

/* 働く環境 */
.jh-envs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.jh-env {
	padding: 20px 18px;
	border-left: 3px solid var(--jh-primary);
	background: var(--jh-tint);
}
.jh-rec h3.jh-env__title,
.jh-svc h3.jh-env__title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 16px;
}
.jh-env__text {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 13px;
	line-height: 1.7;
}
.jh-clubs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.jh-club .wp-block-image {
	margin: 0 0 8px !important;
	overflow: hidden;
	border-radius: 6px;
}
.jh-club img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.jh-club__label {
	margin: 0 !important;
	font-size: 14px;
	font-weight: 700;
}
@media (max-width: 991.98px) {
	.jh-envs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575.98px) {
	.jh-envs {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.jh-env {
		padding: 14px 16px;
	}
	.jh-clubs {
		gap: 8px;
	}
	.jh-club__label {
		font-size: 12px;
	}
}

/* 募集要項（開閉） */
.jh-job {
	margin: 0 !important;
	border-top: 1px solid var(--jh-line);
}
.jh-job:last-of-type {
	border-bottom: 1px solid var(--jh-line);
}
.jh-job > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 4px;
	font-size: 18px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}
.jh-job > summary::-webkit-details-marker {
	display: none;
}
.jh-job > summary::after {
	content: "+";
	color: var(--jh-primary);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
}
.jh-job[open] > summary::after {
	content: "−";
}
.jh-job > *:not(summary) {
	margin-bottom: 24px !important;
}
.jh-req table {
	width: 100%;
	border-collapse: collapse;
}
.jh-req td {
	padding: 14px 8px;
	border: 0 !important;
	border-bottom: 1px solid var(--jh-line) !important;
	font-size: 15px;
	line-height: 1.8;
	vertical-align: top;
}
.jh-req tr:last-child td {
	border-bottom: 0 !important;
}
.jh-req td:first-child {
	width: 8em;
	color: var(--jh-sub);
	font-weight: 700;
	white-space: nowrap;
}
@media (max-width: 575.98px) {
	.jh-req tr {
		display: block;
		padding: 12px 0;
		border-bottom: 1px solid var(--jh-line);
	}
	.jh-req tr:last-child {
		border-bottom: 0;
	}
	.jh-req td {
		display: block;
		width: auto !important;
		padding: 0 !important;
		border: 0 !important;
		font-size: 14px;
	}
	.jh-req td:first-child {
		margin-bottom: 2px;
		font-size: 12px;
	}
}

/* ギャラリー：PC は 4 列、スマホは横にスクロール */
.jh-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}
.jh-gallery .wp-block-image {
	margin: 0 !important;
	overflow: hidden;
	border-radius: 4px;
}
.jh-gallery img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
@media (max-width: 767.98px) {
	.jh-gallery {
		display: flex;
		gap: 8px;
		margin-right: calc(var(--vk-width-container-padding, 20px) * -1);
		padding-right: var(--vk-width-container-padding, 20px);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.jh-gallery::-webkit-scrollbar {
		display: none;
	}
	.jh-gallery .wp-block-image {
		flex: 0 0 72%;
		scroll-snap-align: start;
	}
}

/* 見学・説明会の予約：PC はページの最後の帯、スマホは画面の下に固定 */
.jh-apply {
	margin-top: var(--jh-sec-gap) !important;
	padding: 32px 24px;
	border-radius: 8px;
	background: var(--jh-primary-dark);
	color: #fff;
	text-align: center;
}
.jh-apply p {
	margin: 0 !important;
	color: #fff;
	text-align: center !important;
}
.jh-apply__label {
	font-size: 15px;
	font-weight: 700;
}
.jh-apply__tel a {
	color: #fff !important;
	font-size: 32px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.jh-apply__note {
	font-size: 12px;
	opacity: 0.85;
}
@media (max-width: 767.98px) {
	.jh-apply {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 900;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 12px;
		margin: 0 !important;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		border-radius: 0;
		box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.12);
	}
	.jh-apply__label {
		font-size: 12px;
		line-height: 1.4;
	}
	.jh-apply__tel a {
		font-size: 20px;
	}
	.jh-apply__note {
		display: none;
	}
	/* 固定した帯にページの最後とチャット・ページトップのボタンが隠れないようにする */
	body:has(.jh-rec) {
		padding-bottom: 64px;
	}
	body:has(.jh-rec) .page_top_btn {
		bottom: 76px !important;
	}
	body:has(.jh-rec) #dify-widget-container {
		bottom: 76px !important;
	}
}

/* ============================================================
 * 下層ページ共通の部品（企業情報・工場設備・社会的責任ほか。2026-10-31）
 * ============================================================ */

/* ページ内リンク（目次） */
.jh-svc .jh-pagenav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-pagenav li {
	margin: 0 !important;
}
.jh-pagenav a {
	display: inline-block;
	padding: 8px 16px;
	border: 1px solid var(--jh-line);
	border-radius: 999px;
	background: #fff;
	color: var(--jh-ink);
	font-size: 14px;
	font-weight: 700;
	transition: border-color 0.2s, color 0.2s;
}
.jh-pagenav a:hover {
	border-color: var(--jh-primary);
	color: var(--jh-primary-dark);
}
.jh-page .jh-sec[id] {
	scroll-margin-top: 96px;
}
@media (max-width: 575.98px) {
	.jh-pagenav a {
		padding: 6px 12px;
		font-size: 13px;
	}
}

/* 署名 */
.jh-sign {
	margin-top: 20px !important;
	color: var(--jh-ink) !important;
	font-weight: 700;
	text-align: right !important;
}

/* 会社概要の表（募集要項と同じ作り。項目の列を少し広く） */
.jh-req--profile td:first-child {
	width: 9em;
}

/* 支社 */
.jh-branches {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.jh-branch {
	padding: 22px 24px;
	border-radius: 6px;
	background: var(--jh-tint);
}
.jh-branch p {
	margin: 0 !important;
	font-size: 14px;
	line-height: 1.8;
}
.jh-svc h3.jh-branch__name {
	margin: 0 0 6px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 17px;
}
.jh-branch__tel a {
	color: var(--jh-primary-dark);
	font-weight: 700;
}
@media (max-width: 575.98px) {
	.jh-branches {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.jh-branch {
		padding: 16px 18px;
	}
}

/* 沿革（年表） */
.jh-svc .jh-timeline {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-timeline li {
	display: grid;
	grid-template-columns: 5.5em 9.5em minmax(0, 1fr);
	gap: 0 20px;
	margin: 0 !important;
	padding: 16px 0;
	border-bottom: 1px solid var(--jh-line);
	line-height: 1.8;
}
.jh-timeline li:first-child {
	border-top: 1px solid var(--jh-line);
}
.jh-tl__year {
	color: var(--jh-primary);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
}
.jh-tl__date {
	color: var(--jh-sub);
	font-size: 13px;
	line-height: 2;
}
.jh-tl__text {
	font-size: 15px;
}
.jh-tl__text.jh-tl--major {
	font-size: 17px;
	font-weight: 700;
}
@media (max-width: 767.98px) {
	.jh-timeline li {
		grid-template-columns: 4.2em minmax(0, 1fr);
		gap: 0 14px;
		padding: 14px 0;
	}
	.jh-tl__year {
		grid-row: 1 / span 2;
		font-size: 17px;
	}
	.jh-tl__date {
		font-size: 12px;
		line-height: 1.6;
	}
	.jh-tl__text {
		font-size: 14px;
		line-height: 1.75;
	}
	.jh-tl__text.jh-tl--major {
		font-size: 15px;
	}
}

/* ロゴを添える 2 列（健康経営優良法人など） */
.jh-feature--logo {
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	align-items: start;
}
.jh-feature--logo .jh-feature__img img {
	aspect-ratio: auto;
	object-fit: contain;
	border-radius: 0;
}
@media (max-width: 767.98px) {
	.jh-feature--logo {
		grid-template-columns: 1fr;
	}
	.jh-feature--logo .jh-feature__img img {
		max-width: 260px;
	}
}

/* 2 列のカード（下層ページへの入口） */
.jh-cards--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 760px;
}

/* 設備の一覧（開閉の中） */
.jh-eq {
	margin: 0 0 20px !important;
}
.jh-svc h4.jh-eq__title {
	margin: 0 0 8px !important;
	padding: 0 0 0 10px !important;
	border: 0 !important;
	border-left: 3px solid var(--jh-primary) !important;
	background: none !important;
	font-size: 15px;
	line-height: 1.4;
}
.jh-svc .jh-eq__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 24px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-eq__list li {
	margin: 0 !important;
	padding: 8px 0;
	border-bottom: 1px dotted var(--jh-line);
	font-size: 14px;
	line-height: 1.6;
}
.jh-eq__sub {
	display: inline-block;
	margin-right: 8px;
	padding: 0 6px;
	border-radius: 3px;
	background: var(--jh-tint);
	color: var(--jh-sub);
	font-size: 11px;
}
@media (max-width: 575.98px) {
	.jh-svc .jh-eq__list {
		grid-template-columns: 1fr;
	}
	.jh-eq__list li {
		font-size: 13px;
	}
}
.jh-sec--dtp .jh-gallery,
.jh-sec--printing .jh-gallery {
	margin-top: 24px;
}

/* 話題（写真やロゴ＋見出し＋本文。社会的責任など） */
.jh-topic {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	padding: 28px 0;
	border-top: 1px solid var(--jh-line);
}
.jh-sec-title + .jh-topic,
.jh-sec-lead + .jh-topic {
	margin-top: 8px;
}
.jh-topic--logo {
	grid-template-columns: minmax(0, 160px) minmax(0, 1fr);
}
.jh-topic--text {
	grid-template-columns: 1fr;
}
.jh-topic__media {
	margin: 0 !important;
}
.jh-topic__img {
	margin: 0 !important;
}
.jh-topic__img img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 6px;
}
.jh-topic__img--logo img {
	aspect-ratio: auto;
	object-fit: contain;
	border-radius: 0;
}
.jh-topic__caption {
	margin: 8px 0 0 !important;
	color: var(--jh-sub);
	font-size: 12px;
	line-height: 1.6;
}
.jh-svc h3.jh-topic__title {
	margin: 0 0 12px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 18px;
	line-height: 1.5;
}
.jh-topic__body p {
	color: var(--jh-sub);
	font-size: 15px;
	line-height: 1.9;
}
.jh-topic__body p.jh-sign {
	font-size: 14px;
}
@media (max-width: 767.98px) {
	.jh-topic {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 0;
	}
	.jh-topic--logo {
		grid-template-columns: 88px minmax(0, 1fr);
		gap: 16px;
	}
	.jh-topic--logo .jh-topic__body {
		display: contents;
	}
	.jh-topic--logo h3.jh-topic__title {
		align-self: center;
	}
	.jh-topic--logo .jh-topic__body > *:not(h3) {
		grid-column: 1 / -1;
	}
	.jh-topic__body p {
		font-size: 14px;
		line-height: 1.85;
	}
}

/* ページの「白い台紙」設定（main-section--base--on。工場・設備など）が付いていても、新しいレイアウトでは使わない */
.main-section--base--on:has(> .entry > .entry-body > .jh-svc),
.main-section--base--on:has(> .entry > .entry-body > .jh-rec),
.main-section--base--on:has(.entry-body > .jh-svc),
.main-section--base--on:has(.entry-body > .jh-rec) {
	padding: 0;
	border-radius: 0;
	background: none;
}

/* 悩み（番号付きの 3 つ） */
.jh-svc .jh-worries {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	counter-reset: jh-worry;
}
.jh-worries li {
	position: relative;
	margin: 0 !important;
	padding: 22px 22px 22px 64px;
	border-radius: 6px;
	background: var(--jh-tint);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.7;
	counter-increment: jh-worry;
}
.jh-worries li::before {
	content: counter(jh-worry);
	position: absolute;
	top: 50%;
	left: 22px;
	transform: translateY(-50%);
	color: var(--jh-primary);
	font-size: 28px;
	font-weight: 700;
}
.jh-worries li strong {
	font-weight: 700;
}
@media (max-width: 767.98px) {
	.jh-svc .jh-worries {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.jh-worries li {
		padding: 16px 16px 16px 52px;
		font-size: 14px;
	}
	.jh-worries li::before {
		left: 18px;
		font-size: 22px;
	}
}

/* 写真と文の行（交互に左右を入れ替える） */
.jh-rows {
	display: grid;
	gap: 56px;
}
.jh-feature--rev .jh-feature__img {
	order: 2;
}
.jh-feature--row .jh-feature__img img {
	aspect-ratio: 16 / 10;
}
.jh-feature__body .jh-eyebrow {
	margin-bottom: 4px !important;
}
@media (max-width: 767.98px) {
	.jh-rows {
		gap: 36px;
	}
	.jh-feature--rev .jh-feature__img {
		order: 0;
	}
}

/* 流れ（縦に並べる版。補足つき） */
.jh-svc .jh-steps--list {
	grid-template-columns: 1fr;
	gap: 0;
}
.jh-steps--list li {
	padding: 22px 0 22px 72px;
	border: 0;
	border-bottom: 1px solid var(--jh-line);
	border-radius: 0;
	background: none;
}
.jh-steps--list li:first-child {
	border-top: 1px solid var(--jh-line);
}
.jh-steps--list li::before {
	top: 22px;
	left: 4px;
	font-size: 24px;
}
.jh-step__note {
	display: block;
	margin-top: 8px;
	padding: 8px 12px;
	border-radius: 4px;
	background: var(--jh-tint);
	font-size: 13px;
}
@media (max-width: 767.98px) {
	.jh-steps--list li {
		padding: 16px 0 16px 48px;
	}
	.jh-steps--list li::before {
		top: 16px;
		font-size: 18px;
	}
}

/* 締めの一文 */
.jh-closing {
	max-width: 40em;
	margin: 0 auto !important;
	color: var(--jh-sub);
	font-size: 15px;
	line-height: 2;
	text-align: center !important;
}

/* 動画 */
.jh-svc .wp-block-embed {
	margin: 0 !important;
	overflow: hidden;
	border-radius: 8px;
}
.jh-videos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 24px;
}
.jh-video__label {
	margin: 12px 0 2px !important;
	color: var(--jh-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.jh-svc h3.jh-video__title {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 17px;
}
.jh-movie {
	margin-top: 40px;
	max-width: 760px;
}
.jh-movie__label {
	margin: 0 0 12px !important;
	font-weight: 700;
}
@media (max-width: 767.98px) {
	.jh-videos {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* 冒頭の小見出し（h1 の下） */
.jh-intro__sub {
	margin: -8px 0 16px !important;
	color: var(--jh-primary-dark);
	font-size: 17px;
	font-weight: 700;
}
.jh-svc h1.jh-intro__title,
.jh-rec h1.jh-intro__title {
	margin: 0 0 20px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: clamp(26px, 3.6vw, 40px);
	line-height: 1.45;
}
@media (max-width: 767.98px) {
	.jh-svc h1.jh-intro__title,
	.jh-rec h1.jh-intro__title {
		font-size: 24px;
	}
}

/* 文字だけの 3 枚（特長） */
.jh-facts--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.jh-fact--text {
	padding: 24px 20px;
	text-align: left;
}
.jh-svc h3.jh-fact__title {
	margin: 0 0 6px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--jh-primary-dark);
	font-size: 17px;
}
.jh-fact--text .jh-fact__label {
	text-align: left !important;
	font-size: 14px;
	line-height: 1.7;
}
@media (max-width: 767.98px) {
	.jh-facts--3 {
		grid-template-columns: 1fr;
	}
	.jh-fact--text {
		padding: 16px 18px;
	}
}

/* プラン */
.jh-plans {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.jh-plan {
	display: flex;
	flex-direction: column;
	padding: 24px 22px;
	border: 1px solid var(--jh-line);
	border-top: 4px solid var(--jh-primary);
	border-radius: 6px;
	background: #fff;
}
.jh-svc h3.jh-plan__title {
	margin: 0 0 10px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 18px;
}
.jh-plan__text {
	margin: 0 0 14px !important;
	color: var(--jh-sub);
	font-size: 14px;
	line-height: 1.8;
}
.jh-svc .jh-plan__list,
.jh-svc .jh-check {
	margin: auto 0 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-plan__list li,
.jh-check li {
	position: relative;
	margin: 0 !important;
	padding: 6px 0 6px 22px;
	border-top: 1px dotted var(--jh-line);
	font-size: 14px;
	line-height: 1.6;
}
.jh-plan__list li::before,
.jh-check li::before {
	content: "";
	position: absolute;
	top: 13px;
	left: 4px;
	width: 9px;
	height: 5px;
	border-left: 2px solid var(--jh-primary);
	border-bottom: 2px solid var(--jh-primary);
	transform: rotate(-45deg);
}
.jh-check {
	margin-top: 12px !important;
}
.jh-note {
	margin-top: 20px;
	padding: 18px 22px;
	border-radius: 6px;
	background: var(--jh-tint);
}
.jh-svc h4.jh-note__title {
	margin: 0 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: 15px;
}
.jh-note ul {
	margin: 0 !important;
	padding-left: 1.2em !important;
	font-size: 14px;
	line-height: 1.8;
}
.jh-note .jh-check {
	padding-left: 0 !important;
}
.jh-compare {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 20px 0;
}
.jh-compare .jh-note {
	margin: 0;
}
@media (max-width: 767.98px) {
	.jh-plans,
	.jh-compare {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.jh-plan {
		padding: 20px 18px;
	}
}

/* ご相談一例（吹き出し） */
.jh-svc .jh-quotes {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.jh-quotes li {
	position: relative;
	margin: 0 !important;
	padding: 12px 18px;
	border-radius: 18px 18px 18px 4px;
	background: var(--jh-tint);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
}
.jh-quotes li::before {
	content: "Q.";
	margin-right: 6px;
	color: var(--jh-primary);
}

/* VK の FAQ ブロック（よくあるご質問）。お問い合わせページ（articles.css）と同じ見た目にそろえる（2026-11-02 山田さんの指示）
 * 枠線だけの静かなカード、Q は紫の枠、A は濃い紫の地に白抜き。元は Q が赤・A が青の丸い枠だった */
.jh-svc .vk_faq {
	margin: 0 0 16px !important;
	padding: 20px 0 !important; /* 中の Q・A に VK の左右の余白があるので、枠の内側の余白はお問い合わせと同じく上下だけ */
	border: 1px solid var(--jh-line) !important;
	border-radius: 6px;
	background: #fff !important;
	box-shadow: none !important;
}
.jh-svc .vk_faq .vk_faq_title::before {
	border-color: var(--jh-primary) !important;
	border-radius: 4px !important;
	color: var(--jh-primary) !important;
}
.jh-svc .vk_faq .vk_faq_content::before {
	border-color: var(--jh-primary-dark) !important;
	border-radius: 4px !important;
	background: var(--jh-primary-dark) !important;
	color: #fff !important;
}
.jh-svc .vk_faq .vk_faq_title {
	font-size: 16px;
	font-weight: 700;
}
.jh-svc .vk_faq .vk_faq_content {
	color: var(--jh-sub);
	font-size: 14px;
	line-height: 1.8;
}

/* バーチャルツアー・地図の埋め込み */
.jh-tours {
	display: grid;
	gap: 28px;
}
.jh-tour iframe {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: 8px;
	background: var(--jh-tint);
}
.jh-tour__label {
	margin: 0 0 10px !important;
	font-weight: 700;
}
.jh-envs--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 575.98px) {
	.jh-envs--2 {
		grid-template-columns: 1fr;
	}
	.jh-tour iframe {
		aspect-ratio: 4 / 3;
	}
}
.jh-feature--text2 {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	align-items: start;
}
.jh-feature--text2 .jh-note {
	margin-top: 0;
}
@media (max-width: 767.98px) {
	.jh-feature--text2 {
		grid-template-columns: 1fr;
	}
}

/* ページの最後の相談の帯（固定しない版） */
.jh-apply--static .jh-apply__note {
	display: block;
	margin: 8px 0 16px !important;
	font-size: 14px;
	opacity: 0.9;
}
.jh-btn {
	display: inline-block;
	padding: 12px 40px;
	border-radius: 999px;
	background: #fff;
	color: var(--jh-primary-dark) !important;
	font-weight: 700;
}
@media (max-width: 767.98px) {
	.jh-apply--static {
		position: static;
		display: block;
		margin-top: var(--jh-sec-gap) !important;
		padding: 28px 20px;
		border-radius: 8px;
		box-shadow: none;
	}
	.jh-apply--static .jh-apply__note {
		display: block;
	}
}

.jh-check li,
.jh-check li strong {
	font-weight: 400;
}

/* 人物のページ（先輩インタビュー・専務に訊く） */
.jh-person-hero {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
	margin-top: 48px;
}
.jh-person-hero--wide {
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}
.jh-person-hero__img {
	margin: 0 !important;
}
.jh-person-hero__img img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
	border-radius: 8px;
}
.jh-person-hero--wide .jh-person-hero__img img {
	aspect-ratio: 3 / 2;
}
.jh-rec h2.jh-person-hero__name {
	margin: 4px 0 8px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: clamp(26px, 3.4vw, 38px);
	line-height: 1.4;
}
.jh-qa {
	max-width: 760px;
	margin: 0 auto !important;
	padding: 32px 0;
	border-bottom: 1px solid var(--jh-line);
}
.jh-qa:first-child {
	border-top: 1px solid var(--jh-line);
}
.jh-rec h3.jh-qa__q {
	position: relative;
	margin: 0 0 14px !important;
	padding: 0 0 0 36px !important;
	border: 0 !important;
	background: none !important;
	font-size: 19px;
	line-height: 1.5;
}
.jh-rec h3.jh-qa__q::before {
	content: "Q" !important;
	display: block !important;
	position: absolute;
	top: 0;
	left: 0;
	color: var(--jh-primary);
	font-size: 22px;
	line-height: 1.3;
}
.jh-rec h3.jh-qa__q--plain {
	padding-left: 0 !important;
	font-size: 22px;
}
.jh-rec h3.jh-qa__q--plain::before {
	content: none !important;
	display: none !important;
}
.jh-qa__a {
	margin: 0 0 1em !important;
	font-size: 16px;
	line-height: 2;
}
.jh-qa__img {
	margin: 20px 0 0 !important;
}
.jh-qa__img img {
	width: 100%;
	border-radius: 6px;
}
.jh-people--one {
	grid-template-columns: minmax(0, 280px);
}
.jh-quote {
	max-width: 760px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 40px 24px;
	border-radius: 8px;
	background: var(--jh-tint);
	text-align: center;
}
.jh-quote p {
	text-align: center !important;
}
.jh-quote__text {
	margin: 0 0 10px !important;
	font-size: clamp(20px, 2.6vw, 28px);
	font-weight: 700;
	line-height: 1.5;
}
.jh-quote__text::before {
	content: "「";
}
.jh-quote__text::after {
	content: "」";
}
.jh-quote__by {
	margin: 0 !important;
	color: var(--jh-sub);
	font-size: 14px;
}
@media (max-width: 767.98px) {
	.jh-person-hero,
	.jh-person-hero--wide {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 24px;
	}
	.jh-person-hero__img img {
		aspect-ratio: 4 / 3;
	}
	.jh-qa {
		padding: 24px 0;
	}
	.jh-rec h3.jh-qa__q {
		font-size: 17px;
	}
	.jh-rec h3.jh-qa__q--plain {
		font-size: 19px;
	}
	.jh-qa__a {
		font-size: 15px;
		line-height: 1.9;
	}
	.jh-people--one {
		grid-template-columns: minmax(0, 200px);
	}
}

/* 読みもの（個人情報保護方針など）：本文はそのまま、読みやすい行の長さと見出しにする */
.jh-doc {
	max-width: 800px;
	margin: 48px auto 0; /* 本文が左に寄って見えないよう中央に置く（2026.11.07 担当者の指定） */
}
/* 本文の最初の見出しは題名と同じ言葉なので、ページヘッダーと二重にしない（本文の文章は変えない） */
.jh-doc > .jh-eyebrow + h2,
.jh-doc > .jh-eyebrow + .wp-block-group > h2:first-child {
	display: none;
}
.jh-doc h2 {
	margin: 0 0 28px !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.4;
}
.jh-doc h2::before,
.jh-doc h2::after,
.jh-doc h3::before,
.jh-doc h3::after {
	content: none !important;
	display: none !important;
}
.jh-doc h3 {
	margin: 48px 0 16px !important;
	padding: 0 0 10px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--jh-line) !important;
	background: none !important;
	font-size: 20px;
}
.jh-doc p,
.jh-doc li {
	font-size: 15px;
	line-height: 2;
}
.jh-doc p {
	margin: 0 0 1.2em !important;
}
.jh-doc ul,
.jh-doc ol {
	margin: 0 0 1.4em !important;
	padding-left: 1.4em !important;
}
.jh-doc .wp-block-group,
.jh-doc .wp-block-group.has-background {
	padding: 24px 28px !important;
	border-radius: 6px;
}
/* 背景のない枠は本文と左端をそろえる */
.jh-doc .wp-block-group:not(.has-background) {
	padding: 0 !important;
}
.jh-doc .wp-block-image img {
	max-width: 120px;
	height: auto;
}
@media (max-width: 767.98px) {
	.jh-doc {
		margin-top: 28px;
	}
	.jh-doc p,
	.jh-doc li {
		font-size: 14px;
		line-height: 1.9;
	}
	.jh-doc .wp-block-group,
	.jh-doc .wp-block-group.has-background {
		padding: 18px 16px !important;
	}
}

/* 冒頭：PC では見出し（左）と説明（右）の 2 列にする。
   1 列のままだと説明文が行の途中で折り返し、右側に大きな空きができていた（2026-10-31 山田さんの指摘） */
.jh-intro__head > *:last-child,
.jh-intro__body > *:last-child {
	margin-bottom: 0 !important;
}
@media (992px <= width) {
	.jh-intro {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: 32px 64px;
		align-items: start;
	}
	.jh-intro > *:not(.jh-intro__head):not(.jh-intro__body) {
		grid-column: 1 / -1;
		margin-top: 8px !important;
	}
	.jh-svc .jh-intro h2.jh-intro__title,
	.jh-rec .jh-intro h2.jh-intro__title,
	.jh-svc .jh-intro h1.jh-intro__title,
	.jh-rec .jh-intro h1.jh-intro__title {
		margin-bottom: 0 !important;
		font-size: clamp(28px, 2.5vw, 36px);
		word-break: keep-all;
		overflow-wrap: anywhere;
		text-wrap: balance;
	}
	.jh-intro__sub {
		margin: 14px 0 0 !important;
	}
	.jh-intro__body {
		padding-top: 30px;
	}
	.jh-intro__lead {
		max-width: none;
		margin-bottom: 1em !important;
	}
}


/* パンくずから冒頭（英語の小見出し）までの間をどのページも同じにする（2026-10-31）
   ページごとの設定（本文の上下の余白あり／なし／白い台紙）で 0〜56px とばらついていたので、
   テーマ側の上の余白を消し、冒頭の上の余白だけで決める。PC 56px（企業情報と同じ）、スマホ 32px */
.site-body:has(.entry-body > :is(.jh-svc, .jh-rec)) {
	padding-top: 0 !important;
}
.main-section:has(.entry-body > :is(.jh-svc, .jh-rec)) {
	margin-top: 0 !important;
}
:is(.jh-svc, .jh-rec) > :is(.jh-intro, .jh-person-hero):first-child,
.jh-doc {
	margin-top: 0 !important;
	padding-top: 56px !important;
}
@media (max-width: 767.98px) {
	:is(.jh-svc, .jh-rec) > :is(.jh-intro, .jh-person-hero):first-child,
	.jh-doc {
		padding-top: 32px !important;
	}
}

/* 専務に訊く：最後の扉の写真と「一日生涯」は今のサイトのブロックをそのまま使う。下のリンクとの間をあける */
.jh-coo-closing {
	margin-bottom: 64px !important;
}

/* ホームページ制作の実績（3 件）：スマホの 2 列では 3 件目だけ余るので、写真を左に置いた 1 列にする */
@media (max-width: 575.98px) {
	.jh-sec--works .jh-cards {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.jh-sec--works .jh-card {
		display: grid;
		grid-template-columns: 132px minmax(0, 1fr);
		gap: 0 14px;
		align-items: start;
	}
	.jh-sec--works .jh-card .wp-block-image {
		grid-row: 1 / span 2;
		margin: 0 !important;
	}
	.jh-sec--works .jh-card__text {
		-webkit-line-clamp: 3;
	}
}

/* デジタルブック（2026-11-01）：できること 6 項目を PC で 3 列×2 段に（4 列だと 2 段目の右が空く） */
@media (min-width: 992px) {
	.jh-envs--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* 見学・相談の帯がページの最後に来るとき、下に間をあける（2026-11-02）
 * 採用情報（PC）は帯のすぐ下がフッターで、くっついて見えていた。間の大きさは CTA の帯とフッターの間（responsive.css §12）とそろえる
 * スマホの採用情報は画面の下に固定する帯なので対象外（.jh-apply--static だけ） */
@media (min-width: 768px) {
	:is(.jh-svc, .jh-rec) > .jh-apply:last-child {
		margin-bottom: 80px !important;
	}
}
@media (max-width: 767.98px) {
	:is(.jh-svc, .jh-rec) > .jh-apply--static:last-child {
		margin-bottom: 48px !important;
	}
}

/* 採用情報の帯の「見学」「応募」のボタン（2026-11-04） */
.jh-apply .jh-apply__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 16px 0 14px !important;
}
.jh-apply__btn {
	display: inline-block;
	min-width: 220px;
	padding: 13px 24px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	color: #fff !important;
	text-align: center;
	text-decoration: none !important;
	border: 1.5px solid #fff;
	border-radius: 999px;
	transition: background 0.2s;
}
.jh-apply__btn:hover {
	background: rgba(255, 255, 255, 0.16);
}
.jh-apply__btn--primary {
	color: var(--jh-primary-dark) !important;
	background: #fff;
}
.jh-apply__btn--primary:hover {
	background: rgba(255, 255, 255, 0.86);
}
@media (max-width: 767.98px) {
	/* 画面の下に固定する帯：ボタン 2 つと、その下に小さく電話番号 */
	.jh-apply:has(.jh-apply__actions) {
		flex-wrap: wrap;
		gap: 2px 12px;
		padding-top: 8px;
	}
	.jh-apply:has(.jh-apply__actions) .jh-apply__label {
		display: none;
	}
	.jh-apply .jh-apply__actions {
		flex-wrap: nowrap;
		width: 100%;
		gap: 8px;
		margin: 0 !important;
	}
	.jh-apply__btn {
		flex: 1;
		min-width: 0;
		padding: 9px 6px;
		font-size: 13px;
	}
	.jh-apply:has(.jh-apply__actions) .jh-apply__tel a {
		font-size: 14px;
	}
	body:has(.jh-apply__actions) {
		padding-bottom: 96px;
	}
	body:has(.jh-apply__actions) .page_top_btn {
		bottom: 108px !important;
	}
	/* 採用エントリーのページに固定の帯は無い */
	body:has(.jh-entry) {
		padding-bottom: 0;
	}
}

/* 採用エントリーのフォーム（表の見た目は問い合わせフォームと同じ追加 CSS） */
.jh-entry__form {
	max-width: 860px;
	margin: 48px auto 0 !important;
}
.jh-entry__form .wpcf7-list-item {
	margin: 0 20px 0 0;
}
.jh-entry__form table.CF7_table {
	width: 100% !important;
	max-width: none;
	margin-inline: 0;
}
.jh-entry__form p.CF7_table_under {
	width: auto;
	max-width: none;
	margin-inline: 0;
	text-align: left !important;
}
.jh-entry__form p.CF7_table_under_center,
.jh-entry__form p.CF7_btn {
	width: auto;
	max-width: none;
	margin-inline: 0;
	text-align: center !important;
}

/* 企業情報の冒頭の 4 つのボタン（本番のボタンのまま）。説明文との間をあける（2026-11-02） */
.jh-intro > .vk_gridColumn {
	margin-top: 32px !important;
}
.jh-intro > .vk_gridColumn .vk_gridColumn_item {
	margin-bottom: 12px !important;
}

/* 社会的責任の冒頭のボタン（7 個）。4 個で割り切れない最後の段は中央に寄せる（2026-11-04） */
.jh-btn-nav .row {
	justify-content: center;
}

/* 専務に訊く：冒頭の題名の下を、他のページの最初の段落と同じだけ空ける（2026-11-05） */
.jh-intro + .jh-person-hero {
	margin-top: var(--jh-sec-gap) !important;
}
