/* =========================================================
   Nextrust theme main.css
   トンマナ（配色・余白・書体）は現行踏襲、構成はリニューアル版に合わせる:
   - コンテンツ余白: 左右15%（デスクトップ）/ 5%（タブレット・モバイル）
   - 基調色: #F7F7F7 / #161616 / #747474
   - 見出し: arial(Typekit) 900、和文: Noto Sans JP
   - ブレークポイント: 1025px以上 / 768から1024px / 767px以下
   ========================================================= */

:root {
	--c-bg: #F7F7F7;
	--c-ink: #161616;
	--c-gray: #747474;
	--c-deep: #0F0F0F;
	--c-white: #FFFFFF;
	--c-gray-aa: #5F5F5F;
	--c-gray-mid: #8A8A8A;
	--c-media-bg: #E5E5E5;
	--c-line: #DEDEDE;
	--c-error: #D40000;
	--ff-head: "arial", Arial, "Helvetica Neue", Helvetica, sans-serif;
	--ff-narrow: "arial-narrow", "Arial Narrow", Arial, sans-serif;
	--ff-body: "Noto Sans JP", -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ff-jp: "Noto Sans JP", sans-serif;
	--pad-x: 15%;
	--dur-1: 160ms;
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-inout: cubic-bezier(0.45, 0, 0.55, 1);
}
@media (max-width: 1024px) {
	:root { --pad-x: 5%; }
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { background: none; border: 0; padding: 0; cursor: pointer; color: inherit; font: inherit; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
	outline: 2px solid var(--c-ink);
	outline-offset: 3px;
}
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 2000;
	background: var(--c-ink);
	color: var(--c-white);
	padding: 10px 18px;
	font-size: 13px;
}
.skip-link:focus { left: 0; }

/* 控えめな入場フェード（1種のみ・reduced-motion時は無効） */
@media (prefers-reduced-motion: no-preference) {
	html.js .anim {
		opacity: 0;
		translate: 0 14px;
		transition: opacity 0.55s var(--ease-out), translate 0.55s var(--ease-out);
	}
	html.js .anim.is-in {
		opacity: 1;
		translate: 0 0;
	}
}

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
body {
	background: var(--c-bg);
	color: var(--c-ink);
	font-family: var(--ff-body);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }

.con { padding-left: var(--pad-x); padding-right: var(--pad-x); }

/* ---------- 共通の見出し部品 ---------- */
.en-label {
	display: block;
	font-family: var(--ff-head);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--c-gray-aa);
}
.en-label__sub {
	font-family: var(--ff-jp);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--c-gray-mid);
	margin-left: 10px;
	text-transform: none;
}
.sec-head { margin-bottom: 40px; }
.sec-head .en-label { margin-bottom: 10px; }
.sec-head h2 {
	font-family: var(--ff-jp);
	font-weight: 700;
	font-size: clamp(23px, 3vw, 36px);
	line-height: 1.35;
	color: var(--c-ink);
}
.band { padding-top: 7%; padding-bottom: 7%; }
.band--biz { padding-top: 3%; padding-bottom: 9%; }
.more-link {
	display: inline-block;
	margin-top: 36px;
	font-family: var(--ff-narrow);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--c-ink);
	border-bottom: 1px solid var(--c-ink);
}
@media (max-width: 767px) {
	.band { padding-top: 16%; padding-bottom: 16%; }
	.band--biz { padding-top: 4%; padding-bottom: 20%; }
	.sec-head { margin-bottom: 28px; }
}

/* ---------- header ---------- */
.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: var(--c-bg);
	border-bottom: 1px solid var(--c-line);
	padding: 18px var(--pad-x);
}
.site-header__logo img { width: 101px; height: auto; }
.gnav {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-left: auto;
}
.gnav__item {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 6px 14px;
	line-height: 1.4;
}
.gnav__item .e {
	font-family: var(--ff-head);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--c-gray-mid);
}
.gnav__item .j {
	font-family: var(--ff-jp);
	font-size: 13px;
	font-weight: 600;
	color: var(--c-gray-aa);
	white-space: nowrap;
}
.gnav__item:hover .j,
.gnav__item[aria-current="page"] .j { color: var(--c-ink); }
.gnav__item[aria-current="page"] .e { color: var(--c-ink); }
.gnav__cta {
	margin-left: 14px;
	padding: 11px 24px;
	background: var(--c-ink);
	color: var(--c-white);
	font-family: var(--ff-jp);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}
.gnav__cta:hover { opacity: 0.82; }
.menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	padding: 10px;
	margin: -10px -10px -10px 0;
	color: var(--c-ink);
}
.menu-toggle svg { display: block; width: 25px; height: 25px; }
@media (max-width: 1024px) {
	.site-header { padding-top: 26px; padding-bottom: 26px; }
	.site-header__logo img { width: 104px; }
	.gnav { display: none; }
	.menu-toggle { display: flex; }
}
@media (max-width: 767px) {
	.site-header { padding-top: 7%; padding-bottom: 7%; }
	.site-header__logo img { width: 105px; }
}

/* ---------- fullscreen menu overlay（モバイル） ---------- */
.menu-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: var(--c-bg);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.6s var(--ease-inout), visibility 0s linear 0.6s;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 var(--pad-x);
}
.menu-overlay.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.6s var(--ease-inout), visibility 0s;
}
.menu-overlay__close {
	position: absolute;
	top: 30px;
	right: var(--pad-x);
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c-ink);
}
.menu-overlay__logo {
	position: absolute;
	top: 26px;
	left: var(--pad-x);
}
.menu-overlay__logo img { width: 101px; height: auto; }
.menu-overlay__list li { margin-bottom: 26px; }
.menu-overlay__list li:last-child { margin-bottom: 0; }
.menu-overlay__list a {
	font-family: var(--ff-head);
	font-weight: 900;
	font-size: 40px;
	line-height: 1.1;
	letter-spacing: -2px;
	color: var(--c-ink);
}
.menu-overlay__ja {
	display: block;
	font-family: var(--ff-jp);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--c-gray-aa);
	margin-top: 6px;
}
.menu-overlay__list .current-menu-item a { color: var(--c-gray-mid); }
@media (max-width: 767px) {
	.menu-overlay__list a { font-size: 32px; }
	.menu-overlay__list li { margin-bottom: 20px; }
}

/* ---------- hero ---------- */
.hero {
	position: relative;
	height: calc(100vh - 78px);
	min-height: 620px;
	overflow: hidden;
	background: var(--c-deep) url("../img/lagoon2.jpg") center center / cover no-repeat;
}
.hero__mosaic {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	grid-auto-rows: 1fr;
	gap: 6px;
	padding: 6px;
	opacity: 0.55;
}
.hero__tile {
	display: flex;
	align-items: flex-end;
	padding: 12px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 8px;
	background: rgba(15, 15, 15, 0.28);
	font-family: var(--ff-head);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.62);
	overflow: hidden;
}
.hero__tile--1 { background: rgba(15, 15, 15, 0.34); }
.hero__tile--2 { background: rgba(15, 15, 15, 0.20); }
.hero__tile--3 { background: rgba(15, 15, 15, 0.40); }
.hero__tile--4 { background: rgba(15, 15, 15, 0.24); }
.hero__tile--5 { background: rgba(15, 15, 15, 0.30); }
.hero__tile--6 { background: rgba(15, 15, 15, 0.18); }
.hero__veil {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(90deg, rgba(12, 12, 12, 0.88) 0%, rgba(12, 12, 12, 0.72) 42%, rgba(12, 12, 12, 0.44) 100%);
}
.hero__inner {
	position: relative;
	z-index: 3;
	height: 100%;
	display: flex;
	align-items: center;
	padding-left: var(--pad-x);
	padding-right: 360px;
}
.hero__copy { max-width: 680px; }
.hero__kicker {
	font-family: var(--ff-head);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.4em;
	color: rgba(255, 255, 255, 0.66);
	margin-bottom: 22px;
}
.hero__title img {
	width: 100%;
	max-width: 520px;
	height: auto;
}
.hero__statement {
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 2.1;
	color: rgba(255, 255, 255, 0.86);
	margin-top: 26px;
}
.hero__statement b { color: var(--c-white); font-weight: 600; }
.hero__rail {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 4;
	width: 300px;
	display: flex;
	flex-direction: column;
	border-left: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(12, 12, 12, 0.46);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.hero__rail a {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	padding: 0 30px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	color: var(--c-white);
	transition: background var(--dur-1) var(--ease-out);
}
.hero__rail a:last-child { border-bottom: 0; }
.hero__rail a:hover { background: rgba(255, 255, 255, 0.09); }
.hero__rail .e {
	font-family: var(--ff-head);
	font-size: 11px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.62);
}
.hero__rail .j {
	font-family: var(--ff-jp);
	font-size: 20px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.hero__rail .j::after {
	content: "\2192";
	font-family: var(--ff-head);
	font-size: 16px;
	color: rgba(255, 255, 255, 0.62);
	transition: transform var(--dur-1) var(--ease-out);
}
.hero__rail a:hover .j::after { transform: translateX(6px); }
@media (max-width: 1024px) {
	.hero {
		height: auto;
		min-height: 0;
		padding-top: 14%;
	}
	.hero__mosaic { grid-template-columns: repeat(3, 1fr); opacity: 0.3; }
	.hero__veil { background: linear-gradient(180deg, rgba(12, 12, 12, 0.82) 0%, rgba(12, 12, 12, 0.9) 100%); }
	.hero__inner { padding-right: var(--pad-x); padding-bottom: 12%; }
	.hero__copy { max-width: none; }
	.hero__rail {
		position: relative;
		z-index: 4;
		width: auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.18);
		background: var(--c-deep);
	}
	.hero__rail a {
		padding: 22px var(--pad-x);
		border-right: 1px solid rgba(255, 255, 255, 0.16);
	}
	.hero__rail a:nth-child(2n) { border-right: 0; }
	.hero__rail a:nth-last-child(-n + 2) { border-bottom: 0; }
	.hero__rail .j { font-size: 17px; }
}
@media (max-width: 767px) {
	.hero { padding-top: 22%; }
	.hero__title img { max-width: 100%; }
	.hero__rail { grid-template-columns: 1fr; }
	.hero__rail a { border-right: 0; }
	.hero__rail a:nth-last-child(-n + 2) { border-bottom: 1px solid rgba(255, 255, 255, 0.16); }
	.hero__rail a:last-child { border-bottom: 0; }
}

.br-d { display: inline; }
@media (max-width: 767px) {
	.br-d { display: none; }
}

/* ---------- news（行リスト。トップ・一覧で共用） ---------- */
.news-list { border-top: 1px solid var(--c-line); }
.news-row {
	display: grid;
	grid-template-columns: 104px 136px 1fr auto;
	gap: 20px;
	align-items: center;
	padding: 22px 4px;
	border-bottom: 1px solid var(--c-line);
}
.news-row .nd {
	font-family: var(--ff-head);
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--c-gray-aa);
}
.chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: start;
	padding: 5px 12px;
	border: 1px solid var(--c-ink);
	font-family: var(--ff-jp);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.4;
	color: var(--c-ink);
	white-space: nowrap;
}
.chip--press { background: var(--c-ink); color: var(--c-white); }
.news-row .nt {
	font-family: var(--ff-jp);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
	color: var(--c-ink);
}
.news-row .arr {
	justify-self: end;
	font-family: var(--ff-head);
	color: var(--c-gray-mid);
	transition: transform var(--dur-1) var(--ease-out);
}
.news-row:hover .nt { text-decoration: underline; text-underline-offset: 3px; }
.news-row:hover .arr { transform: translateX(5px); }
.news-list__empty {
	font-family: var(--ff-jp);
	font-size: 15px;
	color: var(--c-gray-aa);
	padding: 24px 0;
}
@media (max-width: 767px) {
	.news-row {
		grid-template-columns: auto 1fr;
		grid-template-areas:
			"date chip"
			"title title";
		gap: 10px 14px;
		padding: 20px 2px;
	}
	.news-row .nd { grid-area: date; }
	.news-row .chip { grid-area: chip; }
	.news-row .nt { grid-area: title; }
	.news-row .arr { display: none; }
}

/* ---------- 6事業カード（トップ） ---------- */
.biz-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--c-line);
	border: 1px solid var(--c-line);
}
.biz-card {
	display: flex;
	flex-direction: column;
	background: var(--c-bg);
	position: relative;
	transition: background 0.25s var(--ease-out);
}
.biz-card:hover { background: var(--c-white); }
.biz-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--c-media-bg);
}
.biz-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--ease-out);
}
.biz-card:hover .biz-card__media img { transform: scale(1.04); }
.biz-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 26px 24px 24px;
}
.biz-card .no {
	font-family: var(--ff-head);
	font-size: 11px;
	letter-spacing: 0.2em;
	color: var(--c-gray-mid);
}
.biz-card .be {
	font-family: var(--ff-head);
	font-size: 10.5px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--c-gray-aa);
	margin-top: 8px;
}
.biz-card h3 {
	font-family: var(--ff-jp);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-ink);
	margin-top: 8px;
}
.biz-card .bd {
	font-family: var(--ff-jp);
	font-size: 13px;
	line-height: 1.9;
	color: var(--c-ink);
	margin-top: 12px;
}
.biz-card .co {
	margin-top: auto;
	padding-top: 16px;
	font-family: var(--ff-jp);
	font-size: 11.5px;
	color: var(--c-gray-aa);
}
.biz-card::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--c-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--ease-out);
}
.biz-card:hover::after { transform: scaleX(1); }
@media (max-width: 1024px) {
	.biz-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.biz-grid { grid-template-columns: 1fr; }
	.biz-card__body { padding: 22px 20px 20px; }
}

/* ---------- 下層ページ共通（タイトル・パンくず・アンカー） ---------- */
.nx-title {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	padding-top: 24px;
	padding-bottom: 30px;
}
.nx-title__text {
	font-family: var(--ff-head);
	font-weight: 900;
	font-size: 150px;
	line-height: 1.65;
	letter-spacing: -20px;
	color: var(--c-ink);
	margin: -38px 0 -34px -8px;
}
.nx-title__sub {
	font-family: var(--ff-head);
	font-size: 13px;
	line-height: 1.9;
	text-align: right;
	color: var(--c-gray-aa);
	padding-bottom: 12px;
	flex-shrink: 0;
	margin-left: 24px;
}
.nx-title__ja {
	display: block;
	font-family: var(--ff-jp);
	font-size: 15px;
	font-weight: 700;
	color: var(--c-ink);
	margin-bottom: 8px;
}
.nx-crumb {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 4px;
	padding-bottom: 30px;
	font-family: var(--ff-jp);
	font-size: 12px;
	color: var(--c-gray-aa);
}
.nx-crumb a { border-bottom: 1px solid transparent; }
.nx-crumb a:hover { border-color: var(--c-gray-aa); }
.nx-crumb__sep { color: var(--c-gray-mid); }
.anchor-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-bottom: 4%;
}
.anchor-nav a {
	padding: 9px 16px;
	border: 1px solid var(--c-line);
	background: var(--c-white);
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
}
.anchor-nav a:hover { border-color: var(--c-ink); }
@media (max-width: 1024px) {
	.nx-title__text { font-size: 80px; letter-spacing: -10px; margin: -20px 0 -18px -4px; }
	.nx-title__sub { max-width: 190px; }
}
@media (max-width: 767px) {
	.nx-title {
		flex-direction: column;
		align-items: flex-start;
		padding-bottom: 16px;
	}
	.nx-title__text { font-size: 56px; letter-spacing: -6px; margin: -14px 0 -12px -3px; }
	.nx-title__sub { font-size: 12px; text-align: left; max-width: none; margin: 12px 0 0; padding-bottom: 0; }
	.anchor-nav { padding-bottom: 10%; }
	.anchor-nav a { font-size: 12px; padding: 8px 13px; }
}

/* ---------- Services 事業内容 ---------- */
.biz-sec {
	display: grid;
	grid-template-columns: 44% 1fr;
	column-gap: 6%;
	grid-template-areas:
		"media head"
		"media lead"
		"cards cards";
	align-content: start;
	padding-top: 6%;
	padding-bottom: 6%;
	border-top: 1px solid var(--c-line);
	scroll-margin-top: 24px;
}
.biz-sec__head { grid-area: head; align-self: end; }
.biz-sec__media { grid-area: media; }
.biz-sec__media img { width: 100%; border-radius: 10px; }
.biz-sec__lead { grid-area: lead; align-self: start; }
.biz-cards { grid-area: cards; }
.biz-sec__no {
	font-family: var(--ff-head);
	font-size: 11px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--c-gray-aa);
}
.biz-sec__no span {
	color: var(--c-gray-mid);
	margin-right: 14px;
	letter-spacing: 0.2em;
}
.biz-sec__title {
	font-family: var(--ff-jp);
	font-weight: 700;
	font-size: clamp(22px, 2.6vw, 32px);
	line-height: 1.4;
	color: var(--c-ink);
	margin: 12px 0;
}
.biz-sec__co {
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
	margin-bottom: 22px;
}
.biz-sec__co span {
	display: inline-block;
	font-size: 11px;
	color: var(--c-gray-aa);
	border: 1px solid var(--c-line);
	padding: 3px 8px;
	margin-right: 10px;
}
.biz-sec__lead {
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 2;
	color: var(--c-ink);
}
.biz-cards {
	margin-top: 6%;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 56px 40px;
}
.nx-card__icon {
	width: 48px;
	height: 48px;
	margin-bottom: 20px;
}
.nx-card__title {
	font-family: var(--ff-jp);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--c-ink);
	margin-bottom: 14px;
}
.nx-card__badge {
	display: inline-block;
	margin-left: 8px;
	padding: 3px 7px;
	border: 1px solid var(--c-gray-mid);
	font-family: var(--ff-head);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	color: var(--c-gray-aa);
	vertical-align: middle;
}
.nx-card__desc {
	font-family: var(--ff-jp);
	font-size: 13px;
	line-height: 1.85;
	color: var(--c-ink);
}
@media (max-width: 1024px) {
	.biz-sec {
		grid-template-columns: 1fr;
		grid-template-areas:
			"head"
			"media"
			"lead"
			"cards";
		padding-top: 10%;
		padding-bottom: 10%;
	}
	.biz-sec__media { margin: 24px 0; }
	.biz-cards { grid-template-columns: repeat(2, 1fr); gap: 44px 24px; margin-top: 10%; }
}
@media (max-width: 767px) {
	.biz-cards { grid-template-columns: 1fr; gap: 40px; margin-top: 14%; }
	.nx-card__title { font-size: 17px; }
}

/* ---------- Company 企業情報 ---------- */
.cp-vision {
	display: grid;
	grid-template-columns: 24% 1fr;
	column-gap: 5%;
	padding-top: 2%;
	padding-bottom: 9%;
}
.cp-vision__sub {
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-gray-aa);
	margin-top: 8px;
}
.cp-vision__lead {
	font-family: var(--ff-head);
	font-weight: 900;
	font-size: clamp(46px, 7vw, 104px);
	line-height: 1;
	letter-spacing: -4px;
	color: var(--c-ink);
}
.cp-vision__heading {
	font-family: var(--ff-jp);
	font-weight: 700;
	font-size: clamp(19px, 2.4vw, 28px);
	line-height: 1.5;
	color: var(--c-ink);
	margin-top: 28px;
}
.cp-vision__text {
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 2;
	color: var(--c-ink);
	margin-top: 20px;
	max-width: 42em;
}
.cp-vision__mark { width: 45px; margin-top: 34px; }

.cp-values { padding-top: 2%; padding-bottom: 9%; }
.cp-values__list { border-top: 1px solid var(--c-line); }
.cp-value { border-bottom: 1px solid var(--c-line); }
.cp-value__summary {
	display: grid;
	grid-template-columns: 60px 1fr 24px;
	grid-template-areas:
		"no name mark"
		"no lead mark";
	gap: 4px 16px;
	align-items: center;
	padding: 26px 4px;
	cursor: pointer;
	list-style: none;
}
.cp-value__summary::-webkit-details-marker { display: none; }
.cp-value__no {
	grid-area: no;
	align-self: center;
	font-family: var(--ff-head);
	font-size: 14px;
	letter-spacing: 0.16em;
	color: var(--c-gray-mid);
}
.cp-value__name {
	grid-area: name;
	align-self: end;
	font-family: var(--ff-jp);
	font-size: 20px;
	font-weight: 700;
	color: var(--c-ink);
}
.cp-value__lead {
	grid-area: lead;
	align-self: start;
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-gray-aa);
}
.cp-value__mark {
	grid-area: mark;
	position: relative;
	align-self: center;
	width: 14px;
	height: 14px;
}
.cp-value__mark::before,
.cp-value__mark::after {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 14px;
	height: 1px;
	background: var(--c-ink);
	transition: transform 0.25s var(--ease-out);
}
.cp-value__mark::after { transform: rotate(90deg); }
.cp-value[open] .cp-value__mark::after { transform: rotate(0deg); }
.cp-value__body {
	padding: 0 4px 30px 76px;
	max-width: 52em;
}
.cp-value__body p {
	font-family: var(--ff-jp);
	font-size: 14.5px;
	line-height: 2;
	color: var(--c-ink);
}
.cp-value__body p + p { margin-top: 18px; }
.cp-value__items {
	margin: 20px 0;
	border-left: 2px solid var(--c-line);
	padding-left: 20px;
}
.cp-value__items dt {
	font-family: var(--ff-jp);
	font-size: 14px;
	font-weight: 700;
	color: var(--c-ink);
	margin-top: 16px;
}
.cp-value__items dt:first-child { margin-top: 0; }
.cp-value__items dd {
	font-family: var(--ff-jp);
	font-size: 13.5px;
	line-height: 1.9;
	color: var(--c-gray-aa);
	margin-top: 4px;
}

.cp-profile { padding-top: 2%; padding-bottom: 9%; }
.cp-profile__list {
	display: grid;
	grid-template-columns: 180px 1fr;
	border-top: 1px solid var(--c-line);
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 1.9;
	color: var(--c-ink);
}
.cp-profile__list dt {
	font-weight: 700;
	padding: 18px 0;
	border-bottom: 1px solid var(--c-line);
}
.cp-profile__list dd {
	padding: 18px 0;
	border-bottom: 1px solid var(--c-line);
}

.cp-group { padding-top: 2%; padding-bottom: 9%; }
.cp-group__item {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 36px;
	align-items: center;
	padding: 28px 0;
	border-bottom: 1px solid var(--c-line);
}
.cp-group__list > .cp-group__item:first-child { border-top: 1px solid var(--c-line); }
.cp-group__media img { width: 100%; border-radius: 10px; }
.cp-group__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--ff-head);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.cp-group__est { color: var(--c-gray-mid); }
.cp-group__en { color: var(--c-gray-aa); }
.cp-group__name {
	font-family: var(--ff-jp);
	font-size: 21px;
	font-weight: 700;
	color: var(--c-ink);
	margin-top: 10px;
}
.cp-group__desc {
	font-family: var(--ff-jp);
	font-size: 13.5px;
	line-height: 1.9;
	color: var(--c-ink);
	margin-top: 10px;
}
.cp-group__link {
	display: inline-block;
	margin-top: 16px;
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
	border-bottom: 1px solid var(--c-ink);
}

.cp-history { padding-top: 2%; padding-bottom: 9%; }
.cp-history__list { border-top: 1px solid var(--c-line); }
.cp-history__item {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 24px;
	padding: 24px 0;
	border-bottom: 1px solid var(--c-line);
}
.cp-history__date {
	font-family: var(--ff-head);
	font-size: 15px;
	letter-spacing: 0.08em;
	color: var(--c-gray-aa);
}
.cp-history__title {
	display: block;
	font-family: var(--ff-jp);
	font-size: 17px;
	font-weight: 700;
	color: var(--c-ink);
}
.cp-history__desc {
	display: block;
	font-family: var(--ff-jp);
	font-size: 13.5px;
	color: var(--c-gray-aa);
	margin-top: 6px;
}
@media (max-width: 1024px) {
	.cp-vision {
		grid-template-columns: 1fr;
		row-gap: 28px;
		padding-bottom: 14%;
	}
	.cp-values, .cp-profile, .cp-group, .cp-history { padding-bottom: 14%; }
	.cp-group__item { grid-template-columns: 200px 1fr; gap: 24px; }
	.cp-profile__list { grid-template-columns: 140px 1fr; font-size: 14px; }
	.cp-history__item { grid-template-columns: 120px 1fr; }
}
@media (max-width: 767px) {
	.cp-value__summary { grid-template-columns: 42px 1fr 20px; padding: 22px 2px; }
	.cp-value__name { font-size: 17px; }
	.cp-value__body { padding-left: 0; }
	.cp-group__item { grid-template-columns: 1fr; row-gap: 18px; }
	.cp-profile__list { grid-template-columns: 1fr; }
	.cp-profile__list dt { padding-bottom: 0; border-bottom: 0; }
	.cp-history__item { grid-template-columns: 1fr; row-gap: 8px; }
}

/* ---------- Recruit 採用情報 ---------- */
.rc-lead { padding-top: 2%; padding-bottom: 6%; }
.rc-lead__heading {
	font-family: var(--ff-head);
	font-weight: 900;
	font-size: clamp(38px, 7vw, 92px);
	line-height: 1.04;
	letter-spacing: -4px;
	color: var(--c-ink);
	margin: 18px 0 26px;
}
.rc-lead__text {
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 2;
	color: var(--c-ink);
	max-width: 46em;
}
.rc-list { padding-bottom: 9%; }
.rc-item {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 36px;
	align-items: center;
	padding: 28px 0;
	border-bottom: 1px solid var(--c-line);
}
.rc-list > .rc-item:first-child { border-top: 1px solid var(--c-line); }
.rc-item__media img { width: 100%; border-radius: 10px; }
.rc-item__en {
	font-family: var(--ff-head);
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--c-gray-aa);
}
.rc-item__name {
	font-family: var(--ff-jp);
	font-size: 21px;
	font-weight: 700;
	color: var(--c-ink);
	margin-top: 10px;
}
.rc-item__roles {
	font-family: var(--ff-jp);
	font-size: 13.5px;
	line-height: 1.9;
	color: var(--c-ink);
	margin-top: 10px;
}
.rc-item__link {
	display: inline-block;
	margin-top: 16px;
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
	border-bottom: 1px solid var(--c-ink);
}
@media (max-width: 1024px) {
	.rc-item { grid-template-columns: 200px 1fr; gap: 24px; }
	.rc-list { padding-bottom: 14%; }
}
@media (max-width: 767px) {
	.rc-item { grid-template-columns: 1fr; row-gap: 18px; }
}

/* ---------- News 一覧・詳細 ---------- */
.news-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-bottom: 3%;
}
.news-filter__item {
	padding: 9px 18px;
	border: 1px solid var(--c-line);
	background: var(--c-white);
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
}
.news-filter__item:hover { border-color: var(--c-ink); }
.news-filter__item.is-current {
	background: var(--c-ink);
	border-color: var(--c-ink);
	color: var(--c-white);
}
.news-archive { padding-top: 1%; padding-bottom: 9%; }
.news-archive .pagination { margin-top: 48px; font-family: var(--ff-head); }
.news-archive .page-numbers { padding: 0 8px; }
.news-single { padding-top: 4%; padding-bottom: 9%; }
.news-single__meta { display: flex; align-items: center; gap: 14px; }
.news-single__date {
	font-family: var(--ff-head);
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--c-gray-aa);
}
.news-single__title {
	font-family: var(--ff-jp);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 700;
	line-height: 1.45;
	margin: 16px 0 32px;
}
.news-single__media { margin-bottom: 32px; }
.news-single__media img { width: 100%; height: auto; }
.news-single__content { font-family: var(--ff-jp); font-size: 15px; line-height: 2; max-width: 720px; }
.news-single__content p { margin-bottom: 1.5em; }
.news-single__back { margin-top: 48px; font-family: var(--ff-narrow); }
.news-single__back a { border-bottom: 1px solid var(--c-ink); }
@media (max-width: 767px) {
	.news-archive { padding-bottom: 18%; }
	.news-filter { padding-bottom: 8%; }
}

/* ---------- 汎用ページ（規約・ポリシー） ---------- */
.page-generic { padding-top: 4%; padding-bottom: 9%; }
.page-generic__title {
	font-family: var(--ff-head);
	font-weight: 900;
	font-size: 48px;
	letter-spacing: -3px;
	margin-bottom: 32px;
}
.page-generic__content { font-family: var(--ff-jp); font-size: 15px; line-height: 2; max-width: 720px; }
.page-generic__content p { margin-bottom: 1.5em; }
.page-generic__content h2 {
	font-family: var(--ff-jp);
	font-size: 20px;
	font-weight: 700;
	margin: 2.4em 0 0.8em;
}
.page-generic__content h2:first-of-type { margin-top: 2em; }
.page-generic__content ul,
.page-generic__content ol {
	padding-left: 1.6em;
	margin-bottom: 1.5em;
}
.page-generic__content ul { list-style: disc; }
.page-generic__content ol { list-style: decimal; }
.page-generic__content li { margin-bottom: 0.4em; }

/* ---------- Contact ページ ---------- */
.ct-heading {
	font-family: var(--ff-jp);
	font-weight: 700;
	font-size: clamp(20px, 2.4vw, 28px);
	line-height: 1.4;
	color: var(--c-ink);
	margin-top: 10px;
}
.ct-info { padding-top: 1%; padding-bottom: 6%; }
.ct-info__list {
	display: grid;
	grid-template-columns: 150px 1fr;
	row-gap: 14px;
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-ink);
}
.ct-info__list dt { font-weight: 700; }
.ct-map { line-height: 0; }
.ct-map iframe { width: 100%; height: 500px; border: 0; filter: grayscale(1); }
.ct-form-head { padding-top: 8%; }
.ct-form {
	padding-top: 2%;
	padding-bottom: 9%;
	display: grid;
	grid-template-columns: 36% 56%;
	justify-content: space-between;
	align-items: start;
}
.ct-form__lead {
	font-family: var(--ff-jp);
	font-size: 15px;
	line-height: 2;
	color: var(--c-ink);
}
.ct-form__row { margin-bottom: 22px; }
.ct-form__row label {
	display: block;
	font-family: var(--ff-jp);
	font-size: 14px;
	font-weight: 600;
	color: var(--c-ink);
}
.ct-req { color: var(--c-error); }
.ct-form__row--half {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 22px;
}
.ct-form__row--half br { display: none; }
.ct-form__body .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.ct-form__body input[type="text"],
.ct-form__body input[type="email"],
.ct-form__body select,
.ct-form__body textarea {
	width: 100%;
	background: var(--c-white);
	border: 0;
	border-radius: 0;
	padding: 12px 14px;
	font-family: var(--ff-jp);
	font-size: 15px;
	color: var(--c-ink);
	box-sizing: border-box;
}
.ct-form__body select { height: 46px; }
.ct-form__body input:focus,
.ct-form__body select:focus,
.ct-form__body textarea:focus { outline: 2px solid var(--c-ink); outline-offset: 2px; }
.ct-form__body textarea { height: 220px; resize: vertical; }
.ct-form__row--consent { margin: 26px 0 0; }
.ct-form__row--consent .wpcf7-acceptance label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--ff-jp);
	font-size: 14px;
	font-weight: 400;
	color: var(--c-ink);
}
.ct-form__row--consent input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--c-ink);
	flex-shrink: 0;
}
.ct-form__row--consent a { text-decoration: underline; text-underline-offset: 3px; }
.ct-form__submit { margin-top: 28px; }
.ct-form__body input[type="submit"] {
	background: var(--c-ink);
	color: var(--c-white);
	border: 0;
	border-radius: 0;
	padding: 13px 40px;
	font-family: var(--ff-jp);
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}
.ct-form__body input[type="submit"]:hover { opacity: 0.8; }
.ct-form__body .wpcf7-not-valid-tip { font-size: 12px; color: var(--c-error); margin-top: 4px; }
.ct-form__body .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--c-ink);
	font-size: 13px;
	font-family: var(--ff-jp);
}
.ct-form__body .wpcf7-spinner { position: absolute; }
@media (max-width: 1024px) {
	.ct-info { padding-bottom: 10%; }
	.ct-form-head { padding-top: 10%; }
	.ct-form { padding-top: 3%; padding-bottom: 14%; grid-template-columns: 1fr; row-gap: 32px; }
	.ct-map iframe { height: 400px; }
}
@media (max-width: 767px) {
	.ct-info__list { grid-template-columns: 1fr; row-gap: 4px; }
	.ct-info__list dd { margin-bottom: 14px; }
	.ct-map iframe { height: 320px; }
	.ct-form { padding-bottom: 18%; }
}

/* ---------- interaction states ---------- */
a, button {
	transition: color var(--dur-1) var(--ease-out), opacity var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out);
}
.more-link:hover,
.cp-group__link:hover,
.rc-item__link:hover,
.news-single__back a:hover { color: var(--c-gray-mid); border-color: var(--c-gray-mid); }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-header__logo:hover, .menu-toggle:hover { opacity: 0.75; }
.menu-overlay__close:hover { opacity: 0.85; }

/* ---------- footer ---------- */
.site-footer { background: var(--c-bg); border-top: 1px solid var(--c-line); }
.site-footer__grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1fr;
	gap: 40px;
	padding: 6% var(--pad-x) 4%;
}
.site-footer__logo img { width: 118px; height: auto; }
.site-footer__slogan {
	font-family: var(--ff-head);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.24em;
	color: var(--c-gray-aa);
	margin-top: 16px;
}
.site-footer__addr {
	font-family: var(--ff-jp);
	font-size: 12.5px;
	line-height: 1.9;
	color: var(--c-gray-aa);
	margin-top: 18px;
}
.site-footer__head {
	font-family: var(--ff-head);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--c-ink);
	margin-bottom: 18px;
}
.site-footer__head span {
	font-family: var(--ff-jp);
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--c-gray-aa);
	margin-left: 8px;
}
.site-footer__nav li { margin-bottom: 13px; }
.site-footer__nav li:last-child { margin-bottom: 0; }
.site-footer__nav a {
	font-family: var(--ff-jp);
	font-size: 13px;
	color: var(--c-ink);
}
.site-footer__nav .fe {
	display: block;
	font-size: 11px;
	color: var(--c-gray-aa);
	margin-top: 2px;
}
.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin: 0 var(--pad-x);
	padding-top: 24px;
	border-top: 1px solid var(--c-line);
	font-family: var(--ff-jp);
	font-size: 12px;
	color: var(--c-gray-aa);
}
.site-footer__pol { display: flex; gap: 22px; }
.site-footer__brand { padding: 5% var(--pad-x) 0; }
.site-footer__brand img { width: 100%; height: auto; }
@media (max-width: 1024px) {
	.site-footer__grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 44px;
		padding: 12% var(--pad-x) 8%;
	}
	.site-footer__col--brand { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.site-footer__grid { grid-template-columns: 1fr; row-gap: 36px; }
	.site-footer__bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
	.site-footer__brand { padding-top: 12%; }
}
