/*
 * site-custom.css — 顧客別カスタムCSS
 *
 * このファイルは顧客ごとに自由に変更してよい（FILE_OWNERSHIP.md「変更可能ファイル」）。
 * 色・余白は base.css の :root で定義されたCSSカスタムプロパティを使用し、
 * ここに個別の色コードを直書きしない（DESIGN_SYSTEM.md参照）。
 *
 * 参考サイト（sample_images）準拠のトップページスタイル調整。
 * SITE_REQUIREMENTS.md 第1・3・5節を参照。
 */

/* ---------- ヘッダー ---------- */

.site-header__inner {
	align-items: flex-end;
}

.site-header__branding img,
.site-header__branding .custom-logo {
	display: block;
	height: 44px;
	width: auto;
}

.site-header__menu {
	align-items: flex-end;
}
.site-header__menu a {
	color: var(--color-text);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.8rem;
	font-weight: 700;
	transition: color 0.2s ease;
}
.site-header__menu a:hover,
.site-header__menu .current-menu-item > a,
.site-header__menu .current-menu-ancestor > a {
	color: var(--color-primary);
}

.site-header__hours {
	font-size: 0.75rem;
	color: var(--color-text);
	opacity: 0.65;
	white-space: nowrap;
}
.site-header__phone {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--color-text);
	text-decoration: none;
	white-space: nowrap;
}
.site-header__phone:hover {
	color: var(--color-primary);
}

.site-header__cta {
	display: inline-block;
	padding: 8px 20px;
	border: 1px solid var(--color-primary);
	border-radius: 999px;
	color: var(--color-primary);
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 600;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.site-header__cta:hover {
	background-color: var(--color-primary);
	color: var(--color-on-dark);
}

.site-header__site-name {
	display: inline-block;
	font-weight: 800;
	font-size: 1.75rem;
	line-height: 1.1;
	letter-spacing: 0.02em;
	text-decoration: none;
	color: var(--color-text);
}

/* ---------- ハンバーガーメニュー（767px以下、base.cssの開閉ロジックに対する見た目） ---------- */

.site-header__menu-toggle {
	position: relative;
	width: 32px;
	height: 22px;
	padding: 0;
}
.site-header__menu-toggle-bar {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--color-text);
	transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}
.site-header__menu-toggle-bar:nth-child(1) {
	top: 0;
}
.site-header__menu-toggle-bar:nth-child(2) {
	top: 10px;
}
.site-header__menu-toggle-bar:nth-child(3) {
	top: 20px;
}
.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-bar:nth-child(1) {
	top: 10px;
	transform: rotate(45deg);
}
.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-bar:nth-child(2) {
	opacity: 0;
}
.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-bar:nth-child(3) {
	top: 10px;
	transform: rotate(-45deg);
}
@media (max-width: 767px) {
	.site-header__nav.is-open .site-header__menu {
		padding: 8px 20px 20px;
	}
	.site-header__nav.is-open .site-header__menu a {
		display: block;
		padding: 12px 0;
		border-bottom: 1px solid var(--color-border);
	}
}

/* ---------- セクション見出し共通 ---------- */

.fp-section__heading {
	position: relative;
	padding-left: 28px;
	font-weight: 800;
	font-size: clamp(2rem, 1.5rem + 2.2vw, 3.25rem);
	line-height: 1.25;
}
.fp-section__heading::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--color-primary);
}

/* ---------- ニュース ---------- */

.fp-news-list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.fp-news-list__item {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
	padding: 16px 4px;
	border-bottom: 1px solid var(--color-border);
}
.fp-news-list__icon {
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: var(--radius-base);
}
.fp-news-list__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fp-news-list__main {
	flex: 1 1 320px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	text-decoration: none;
	color: var(--color-text);
}
.fp-news-list__main:hover .fp-news-list__title {
	text-decoration: underline;
	color: var(--color-primary);
}
.fp-news-list__date {
	opacity: 0.6;
	font-size: 0.8rem;
}
.fp-news-list__title {
	font-weight: 700;
	color: var(--color-text);
}
.fp-news-list__categories {
	flex: 0 0 auto;
	margin-left: auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 6px;
}
.fp-news-list__category {
	display: inline-block;
	padding: 4px 12px;
	background-color: var(--color-primary);
	color: var(--color-on-dark);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.fp-news-list__category:hover {
	opacity: 0.85;
}

.fp-section__more {
	display: inline-block;
	padding: 10px 24px;
	border: 1px solid var(--color-primary);
	border-radius: 999px;
	color: var(--color-primary);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 600;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.fp-section__more:hover {
	background-color: var(--color-primary);
	color: var(--color-on-dark);
}

/* ---------- カード共通（注目のトピックス・マガジン） ---------- */

.fp-card {
	padding: 0;
	overflow: hidden;
	box-shadow: none;
	transition: border-color 0.2s ease, transform 0.2s ease;
}
.fp-card:hover {
	border-color: var(--color-primary);
	transform: translateY(-2px);
}
.fp-card img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.fp-card__body {
	padding: 20px;
}
.fp-card--post {
	display: block;
	text-decoration: none;
	color: var(--color-text);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-base);
}
.fp-card--post .fp-card__title {
	font-size: 1.05rem;
	margin: 0 0 8px;
}
.fp-card--post .fp-card__date {
	font-size: 0.85rem;
	opacity: 0.6;
}
.fp-card--case {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-base);
}
.fp-card--case .fp-card__title {
	font-size: 1.05rem;
	margin: 0 0 8px;
}
.fp-card--case .fp-card__description {
	font-size: 0.9rem;
	opacity: 0.75;
	margin: 0;
}

/* ---------- Pickup・Article：カードを大きく、間隔を詰める ---------- */

.fp-section--cases .fp-section__inner,
.fp-section--blog .fp-section__inner {
	max-width: var(--content-width-wide);
}
.fp-section--cases .fp-section__grid,
.fp-section--blog .fp-section__grid {
	gap: 14px;
}
.fp-section--cases .fp-card--case .fp-card__title,
.fp-section--blog .fp-card--post .fp-card__title {
	font-size: 1.2rem;
}
.fp-section--cases .fp-section__heading,
.fp-section--blog .fp-section__heading {
	font-weight: 700;
	letter-spacing: -0.02em;
}

/* ---------- About Us（エントリーカード2x2） ---------- */

.fp-entry-grid {
	gap: 20px 32px;
	align-items: start;
}
.fp-entry-card {
	position: relative;
	display: block;
	text-decoration: none;
	color: var(--color-text);
}
.fp-entry-card__heading {
	position: relative;
	display: block;
	padding-bottom: 32px;
}
.fp-entry-card__title {
	display: block;
	font-size: clamp(1.8rem, 1.3rem + 2vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--color-text);
}
.fp-entry-card__description {
	display: block;
	margin-top: 8px;
	font-size: 0.85rem;
	color: var(--color-text);
	opacity: 0.65;
}
.fp-entry-card__arrow {
	position: absolute;
	left: calc(22% - 22px);
	bottom: -22px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-color: var(--color-primary);
	color: var(--color-on-dark);
	font-size: 1.2rem;
}
.fp-entry-card__media {
	display: block;
	margin-left: 22%;
	overflow: hidden;
	background-color: var(--color-border);
}
.fp-entry-card__image {
	display: block;
	width: 100%;
	aspect-ratio: 8 / 5;
	object-fit: cover;
	transition: transform 0.35s ease;
}
.fp-entry-card:hover .fp-entry-card__image,
.fp-entry-card:active .fp-entry-card__image {
	transform: scale(0.94);
}

/* ---------- フッター ---------- */

.site-footer__menu a,
.site-footer__address a {
	color: var(--color-on-dark);
	opacity: 0.85;
	text-decoration: none;
}
.site-footer__menu a:hover,
.site-footer__address a:hover {
	opacity: 1;
	color: var(--color-primary);
}

/* ---------- パンくずリスト ---------- */

.breadcrumbs {
	padding-block: 14px;
	background-color: var(--color-border);
	margin-bottom: 30px;
}
.breadcrumbs__list {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	list-style: none;
	font-size: 0.8rem;
}
.breadcrumbs__item {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--color-text);
	opacity: 0.7;
}
.breadcrumbs__item:not(:last-child)::after {
	content: "\203A";
	margin-left: 4px;
	opacity: 0.6;
}
.breadcrumbs__item a {
	color: var(--color-text);
	text-decoration: none;
}
.breadcrumbs__item a:hover {
	color: var(--color-primary);
}

/* ---------- 下層ページ本文（.content-areaで囲わないテンプレート用） ---------- */

.entry-page--company-profile .entry-page__content,
.entry-page--career .entry-page__content,
.entry-page--service .entry-page__content,
.entry-page--client-impact .entry-page__content,
.entry-page--client-voice .entry-page__content {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}

/* ---------- 下層ページ用ヒーローバナー（写真＋文字オーバーレイ、フラット） ---------- */

.page-hero-banner {
	position: relative;
	margin-bottom: 30px;
}
.page-hero-banner__image {
	display: block;
	width: 100%;
	height: 46vh;
	min-height: 320px;
	object-fit: cover;
}
.page-hero-banner__content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.page-hero-banner__title {
	font-size: clamp(2.5rem, 1.8rem + 3vw, 4.5rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.05;
	color: var(--color-on-dark);
}
.page-hero-banner__subtitle {
	margin-top: 10px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-on-dark);
	opacity: 0.9;
}

/* ---------- 採用トップ：導入文・ハイライトブロック ---------- */

.career-intro {
	max-width: var(--content-width);
	margin: 0 auto 1.5em;
	padding-inline: 20px;
	font-size: 0.95rem;
	line-height: 2;
}

.career-highlight__inner {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 40px;
	align-items: center;
}
@media (max-width: 767px) {
	.career-highlight__inner {
		grid-template-columns: 1fr;
	}
}
.career-highlight__photo {
	border-radius: 50%;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
.career-highlight__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.career-highlight__panel {
	background-color: var(--color-accent);
	padding: 40px;
}
.career-highlight__label {
	margin: 0 0 8px;
	font-size: 0.8rem;
	opacity: 0.7;
}
.career-highlight__heading {
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--color-text);
}
.career-highlight__description {
	margin: 16px 0 0;
	font-size: 0.9rem;
}
.career-highlight__panel .button {
	margin-top: 20px;
}

/* ---------- キャリア採用TOP（career-recruit）マイクロサイト ---------- */

.cr-header__inner {
	align-items: center;
}
.cr-header__branding {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	line-height: 1.3;
}
.cr-header__site-name {
	font-weight: 800;
	font-size: 1.2rem;
	color: var(--color-text);
}
.cr-header__sub {
	font-size: 0.7rem;
	color: var(--color-text);
	opacity: 0.6;
}
/* .cr-header__menu a のフォントは .site-header__menu a（両クラス併用）を継承し統一している */
.cr-header__menu .is-current > a {
	color: var(--color-primary);
}

.cr-hero {
	position: relative;
}
.cr-hero__image {
	display: block;
	width: 100%;
	height: 60vh;
	min-height: 380px;
	object-fit: cover;
}
.cr-hero__content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 20px;
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.cr-hero__copy {
	margin: 0;
	font-size: clamp(1.6rem, 1.1rem + 2.2vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.4;
	color: var(--color-on-dark);
}
.cr-hero__lines {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--color-on-dark);
	line-height: 1.9;
}

.cr-banner-nav {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	margin-top: 2px;
}
@media (max-width: 767px) {
	.cr-banner-nav {
		grid-template-columns: 1fr;
	}
}
.cr-banner-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
	min-height: 160px;
	padding: 28px;
	background-color: var(--color-secondary);
	text-decoration: none;
	transition: background-color 0.2s ease;
}
.cr-banner-panel:hover {
	background-color: var(--color-primary);
}
.cr-banner-panel__en {
	font-size: 1.3rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--color-on-dark);
}
.cr-banner-panel__ja {
	font-size: 0.8rem;
	color: var(--color-on-dark);
	opacity: 0.75;
}
.cr-banner-panel__more {
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	color: var(--color-on-dark);
	opacity: 0.7;
}

.cr-cta-wrap {
	display: flex;
	justify-content: flex-end;
	max-width: var(--content-width);
	margin-inline: auto;
	padding: 24px 20px 0;
}
.cr-cta-pill {
	display: inline-block;
	padding: 14px 36px;
	background-color: var(--color-secondary);
	color: var(--color-on-dark);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
}
.cr-cta-pill:hover {
	background-color: var(--color-primary);
}


.cr-share {
	max-width: var(--content-width);
	margin-inline: auto;
	padding: 40px 20px;
	text-align: center;
}
.cr-share__label {
	margin: 0 0 12px;
	font-size: 0.8rem;
	opacity: 0.6;
}
.cr-share__list {
	display: flex;
	justify-content: center;
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.cr-share__list a {
	color: var(--color-text);
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 700;
}
.cr-share__list a:hover {
	color: var(--color-primary);
}

.cr-content {
	padding-block: 20px;
}

/* .cr-footer は廃止（template-parts/custom/cr-footer.php が site-footer.php を直接呼び出す構成に変更したため不要） */

/* ---------- クライアント支援事例ライブラリー（client-impact-design / client-impact-solution） ---------- */

.impact-featured {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 16px;
	-webkit-overflow-scrolling: touch;
}
.impact-card--featured {
	position: relative;
	display: block;
	flex: 0 0 340px;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	scroll-snap-align: start;
	text-decoration: none;
	background-color: var(--color-border);
}
.impact-card--featured__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.impact-card--featured:hover .impact-card--featured__image {
	transform: scale(1.04);
}
.impact-card--featured__stat {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 1;
	padding: 6px 12px;
	background-color: var(--color-background);
	color: var(--color-text);
	font-size: 0.7rem;
	font-weight: 700;
}
.impact-card--featured__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px;
	background-color: var(--color-secondary);
}
.impact-card--featured__eyebrow {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-accent);
}
.impact-card--featured__title {
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.5;
	color: var(--color-on-dark);
}
.impact-card--featured__more {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--color-on-dark);
	opacity: 0.75;
}

.impact-filter {
	margin-bottom: 20px;
}

/* ライブラリーのカードは .member-card（社員紹介一覧）と同じ見た目を再利用 */
.impact-card__body-title {
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.5;
}

.impact-video {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 40px;
}
@media (max-width: 1023px) {
	.impact-video {
		grid-template-columns: 1fr;
	}
}
.impact-video__thumb {
	position: relative;
	margin-bottom: 16px;
}
.impact-video__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.impact-video__play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background-color: var(--color-secondary);
	color: var(--color-on-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}
.impact-video__title {
	margin: 0 0 8px;
	font-size: 1.1rem;
	font-weight: 800;
}
.impact-video__desc {
	margin: 0;
	font-size: 0.85rem;
	opacity: 0.7;
}
.impact-video__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.impact-video__list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-block: 14px;
	border-bottom: 1px solid var(--color-border);
}
.impact-video__list-thumb {
	position: relative;
	flex: 0 0 96px;
}
.impact-video__list-thumb img {
	display: block;
	width: 96px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.impact-video__list-thumb::after {
	content: "\25B6";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 0.8rem;
	background-color: rgba(26, 26, 26, 0.35);
}
.impact-video__list-title {
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.5;
}

/* ---------- 募集ポジション一覧（検索UI・カテゴリ別リスト） ---------- */

.position-search {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	max-width: var(--content-width);
	margin: 0 auto 30px;
	padding-inline: 20px;
}
.position-search__input {
	flex: 1 1 240px;
	padding: 12px 16px;
	border: 1px solid var(--color-border);
	font-size: 0.9rem;
	font-family: inherit;
}
.position-search__select {
	flex: 0 1 220px;
	padding: 12px 16px;
	border: 1px solid var(--color-border);
	background-color: var(--color-background);
	font-size: 0.9rem;
	font-family: inherit;
}
.position-search__submit {
	flex: 0 0 auto;
	padding: 12px 32px;
	border: none;
	background-color: var(--color-secondary);
	color: var(--color-on-dark);
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.position-search__submit:hover {
	background-color: var(--color-primary);
}

.position-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: var(--content-width);
	margin: 0 auto 10px;
	padding-inline: 20px;
}
.position-jump__item {
	padding: 8px 18px;
	border: 1px solid var(--color-border);
	color: var(--color-text);
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.position-jump__item:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.position-category .fp-section__heading {
	margin-bottom: 20px;
}

.position-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.position-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 4px;
	border-bottom: 1px solid var(--color-border);
}
.position-row__type {
	display: inline-block;
	margin-bottom: 8px;
	padding: 3px 10px;
	background-color: var(--color-border);
	font-size: 0.7rem;
	font-weight: 700;
}
.position-row__title {
	margin: 0 0 6px;
	font-size: 1.1rem;
	font-weight: 800;
}
.position-row__excerpt {
	margin: 0;
	font-size: 0.85rem;
	opacity: 0.7;
}
.position-row__link {
	flex: 0 0 auto;
	white-space: nowrap;
}
@media (max-width: 767px) {
	.position-row {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---------- 募集ポジション詳細 ---------- */

.job-detail__header {
	background-color: var(--color-secondary);
	padding-block: 40px;
	margin-bottom: 30px;
}
.job-detail__header-inner {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
	color: var(--color-on-dark);
}
.job-detail__badge {
	display: inline-block;
	margin-bottom: 16px;
	padding: 4px 14px;
	border: 1px solid var(--color-on-dark);
	font-size: 0.75rem;
	font-weight: 600;
}
.job-detail__title {
	margin: 0 0 12px;
	font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem);
	font-weight: 800;
	line-height: 1.4;
}
.job-detail__lead {
	margin: 0 0 24px;
	font-size: 0.9rem;
	opacity: 0.8;
}

.job-detail__body {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.job-detail__section {
	padding-block: 24px;
	border-bottom: 1px solid var(--color-border);
}
.job-detail__section-title {
	position: relative;
	margin: 0 0 16px;
	padding-left: 20px;
	font-size: 1.15rem;
	font-weight: 800;
}
.job-detail__section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--color-primary);
}
.job-detail__section p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.9;
}
.job-detail__list {
	margin: 0;
	padding-left: 1.2em;
	font-size: 0.9rem;
	line-height: 1.9;
}

.job-detail__table {
	margin-top: 30px;
}

.job-detail__apply-bottom {
	display: flex;
	justify-content: center;
	padding-block: 40px;
}

/* ---------- 下層ページ用ヒーローバナー：小サイズ版 ---------- */

.page-hero-banner--small .page-hero-banner__image {
	height: 32vh;
	min-height: 220px;
}
.page-hero-banner--small .page-hero-banner__title {
	font-size: clamp(1.8rem, 1.3rem + 2vw, 3rem);
}

/* ---------- 社員紹介一覧 ---------- */

.member-tabs {
	margin-bottom: 10px;
}
.member-tabs .tabs__nav {
	margin-bottom: 20px;
}
.member-tabs .tabs__button {
	cursor: default;
}

.member-list__count {
	margin: 0 0 20px;
	font-size: 0.85rem;
	opacity: 0.7;
}
.member-list__more {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}
.member-list__more .fp-section__more {
	border: none;
	background: none;
	font-family: inherit;
	cursor: not-allowed;
	opacity: 0.5;
}

.member-card {
	position: relative;
	display: block;
	text-decoration: none;
	color: var(--color-text);
	border: 1px solid var(--color-border);
	transition: border-color 0.2s ease, transform 0.2s ease;
}
.member-card:hover {
	border-color: var(--color-primary);
	transform: translateY(-2px);
}
.member-card__image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.member-card__category {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	background-color: var(--color-secondary);
	color: var(--color-on-dark);
	font-size: 0.7rem;
	font-weight: 700;
}
.member-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px;
}
.member-card__role {
	font-size: 0.75rem;
	color: var(--color-primary);
	font-weight: 700;
}
.member-card__name {
	font-size: 0.85rem;
	font-weight: 700;
}
.member-card__title {
	margin: 6px 0 0;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.5;
}
.member-card__date {
	margin-top: 8px;
	font-size: 0.75rem;
	opacity: 0.6;
}

/* ---------- 社員紹介詳細（Q&A） ---------- */

.member-detail__header {
	padding-block: 30px;
	border-bottom: 1px solid var(--color-border);
	margin-bottom: 30px;
}
.member-detail__header-inner {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.member-detail__quote {
	margin: 12px 0 16px;
	font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2.1rem);
	font-weight: 800;
	line-height: 1.5;
}
.member-detail__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
.member-detail__meta-tag {
	padding: 3px 12px;
	border: 1px solid var(--color-border);
	font-size: 0.75rem;
	font-weight: 600;
}
.member-detail__meta-date {
	font-size: 0.8rem;
	opacity: 0.6;
}

.member-detail__intro {
	max-width: var(--content-width);
	margin: 0 auto 40px;
	padding-inline: 20px;
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 40px;
	align-items: center;
}
@media (max-width: 767px) {
	.member-detail__intro {
		grid-template-columns: 1fr;
	}
}
.member-detail__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.member-detail__who-label {
	margin: 0 0 8px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-primary);
}
.member-detail__who-role {
	margin: 0 0 4px;
	font-size: 0.85rem;
	opacity: 0.7;
}
.member-detail__who-name {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 800;
}

.member-detail__qa {
	max-width: var(--content-width);
	margin: 0 auto;
	padding-inline: 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
@media (max-width: 767px) {
	.member-detail__qa {
		grid-template-columns: 1fr;
	}
}
.member-detail__qa-item {
	border: 1px solid var(--color-border);
	padding: 24px;
}
.member-detail__q,
.member-detail__a {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.8;
}
.member-detail__q {
	margin-bottom: 12px;
	font-weight: 800;
}
.member-detail__q-badge,
.member-detail__a-badge {
	display: inline-block;
	margin-right: 10px;
	padding: 2px 8px;
	background-color: var(--color-secondary);
	color: var(--color-on-dark);
	font-size: 0.7rem;
	font-weight: 700;
	vertical-align: middle;
}
.member-detail__a-badge {
	background-color: var(--color-border);
	color: var(--color-text);
}
.member-detail__a {
	opacity: 0.8;
}

.member-detail__back {
	display: flex;
	justify-content: center;
	padding-block: 40px;
}

/* ---------- 下層ページ見出し（企業情報 等） ---------- */

.page-heading {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
	margin-bottom: 30px;
}
.page-heading__eyebrow {
	display: inline-block;
	padding: 4px 14px;
	border: 1px solid var(--color-border);
	font-size: 0.75rem;
	font-weight: 600;
	margin-bottom: 16px;
}
.page-heading__title {
	position: relative;
	padding-left: 24px;
	font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
	font-weight: 800;
	line-height: 1.2;
}
.page-heading__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: var(--color-primary);
}
.page-heading__subtitle {
	margin-top: 4px;
	padding-left: 24px;
	font-size: 0.85rem;
	opacity: 0.6;
}
.page-heading__back-tag-wrap {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.page-heading__back-tag {
	display: inline-block;
	margin-top: 40px;
	padding: 8px 18px;
	border: 1px solid var(--color-primary);
	color: var(--color-primary);
	font-size: 0.8rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.page-heading__back-tag:hover {
	background-color: var(--color-primary);
	color: var(--color-on-dark);
}

/* ---------- タブ ---------- */

.tabs {
	max-width: var(--content-width);
	margin-inline: auto;
	padding-inline: 20px;
}
.tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 30px;
}
.tabs__button {
	padding: 10px 20px;
	border: 1px solid var(--color-border);
	background-color: var(--color-background);
	color: var(--color-text);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.tabs__button:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.tabs__button.is-active {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-on-dark);
}
.tabs__panel[hidden] {
	display: none;
}
.tabs__placeholder {
	padding: 40px 0;
	color: var(--color-text);
	opacity: 0.55;
}

.tabs--sub {
	max-width: none;
	padding-inline: 0;
	margin-top: 30px;
}
.tabs__nav--pill {
	gap: 8px;
	margin-bottom: 24px;
}
.tabs__button--pill {
	padding: 8px 20px;
	border-radius: 999px;
	font-size: 0.8rem;
}

/* ---------- 企業データテーブル ---------- */

.profile-table {
	width: 100%;
	border-collapse: collapse;
	border-top: 1px solid var(--color-border);
}
.profile-table th,
.profile-table td {
	padding: 20px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.9rem;
}
.profile-table th {
	width: 220px;
	background-color: var(--color-border);
	font-weight: 700;
}
@media (max-width: 767px) {
	.profile-table,
	.profile-table tbody,
	.profile-table tr,
	.profile-table th,
	.profile-table td {
		display: block;
		width: auto;
	}
	.profile-table tr {
		border-bottom: 1px solid var(--color-border);
	}
	.profile-table th,
	.profile-table td {
		border-bottom: none;
		padding: 8px 0;
	}
}
.profile-table__address {
	margin: 0 0 12px;
}
.profile-table__map {
	max-width: 640px;
	margin-bottom: 8px;
}
.profile-table__map img {
	width: 100%;
	height: auto;
}
.profile-table__map-link {
	display: inline-block;
	margin-bottom: 20px;
	color: var(--color-primary);
	font-size: 0.85rem;
	text-decoration: none;
}
.profile-table__map-link:hover {
	text-decoration: underline;
}
.profile-table__access-label {
	margin: 0 0 8px;
	font-weight: 700;
	font-size: 0.85rem;
}
.profile-table__access-list {
	margin: 0;
	padding-left: 1.2em;
	font-size: 0.85rem;
	opacity: 0.75;
}

/* ---------- 事例紹介・お客様の声（client_voice） ---------- */

.impact-detail__hero {
	max-width: var(--content-width-wide);
	margin: 0 auto 10px;
	padding-inline: 20px;
}
.impact-detail__hero-label {
	display: inline-block;
	margin-bottom: 16px;
	padding: 4px 14px;
	border: 1px solid var(--color-border);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.impact-detail__hero img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.impact-video__single {
	margin: 0;
	padding-block: 24px;
}

.job-detail__quote {
	margin: 24px 0 0;
	padding: 24px 28px;
	border-left: 3px solid var(--color-primary);
	background-color: var(--color-border);
}
.job-detail__quote p {
	margin: 0 0 12px;
	font-size: 1rem;
	font-style: italic;
	line-height: 1.9;
}
.job-detail__quote cite {
	font-size: 0.8rem;
	font-style: normal;
	opacity: 0.7;
}

.impact-experts__grid .member-card {
	pointer-events: none;
}
.impact-experts__grid a.member-card {
	pointer-events: auto;
}
.impact-experts__grid .member-card__body {
	gap: 2px;
}
