@charset "utf-8";
/* ============================================================
   建設みらい総研 - リニューアル メインCSS
   Illustrator MCP 実測準拠 (LP_0501.ai アートボード2)
   ============================================================ */

/* ---- 1. デザイントークン -------------------------------- */
:root {
	/* Brand */
	--c-navy:        #003F66;
	--c-navy-dark:   #00304F;
	--c-orange:      #F37030;
	--c-orange-soft: #EE8E5F;
	--c-red:         #B91F1F;

	/* Nav cards */
	--c-card-business: #C8CFE2;
	--c-card-company:  #9FCAFE;
	--c-card-recruit:  #B7DEED;
	--c-card-contact:  #C8B1B5;

	/* Neutrals */
	--c-white:    #FFFFFF;
	--c-bg-gray:  #F4F4F4;
	--c-bg-soft:  #FAFAFA;
	--c-border:   #E0E0E0;
	--c-text:     #222222;
	--c-text-sub: #555555;

	/* Typography (Illustrator MCP 実測準拠) */
	--ff-sans: 'Noto Sans JP', 'Yu Gothic', '游ゴシック', 'YuGothic', 'Hiragino Sans', sans-serif;
	--ff-serif: 'Noto Serif JP', 'Yu Mincho', '游明朝', 'YuMincho', serif;

	/* タイポスケール (Illustrator MCP 実測準拠) */
	--fs-hero:        clamp(56px, 7.67vw, 92px);
	--fs-hero-sub:    clamp(18px, 2vw, 30px);
	--fs-nav:         14px;
	--fs-h2-lg:       clamp(28px, 3vw, 36px); /* つなぐ、その先へ。 */
	--fs-h2:          clamp(24px, 2.4vw, 30px); /* Award / 企業インタビュー / 転職者成功事例 / ニュース */
	--fs-h3:          20px;
	--fs-body:        16px;
	--fs-body-lg:     18px;
	--fs-body-sm:     14px;
	--fs-btn:         24px; /* > More */
	--fs-eyebrow:     96px; /* WHO WE ARE 等の装飾英字 (会社概要のみ) */

	--lh-hero: 1.2;
	--lh-h2:   1.33;
	--lh-body: 1.67;

	/* Layout */
	--container: 1200px;
	--container-narrow: 920px;
	--gutter: 32px;
	--gutter-sm: 20px;
	--section-py: 72px;
	--section-py-sm: 56px;

	--z-header: 100;
}

/* Last-mile SP hero label containment for lower pages. */
@media (max-width: 768px) {
	body.page-template-page-business .ms-page-hero__inner,
	body.page-template-page-company .ms-page-hero__inner,
	body.page-template-page-contact .ms-page-hero__inner,
	body.page-template-page-recruit-contact .ms-page-hero__inner {
		left: auto !important;
		right: 12px !important;
		bottom: 16px !important;
		transform: none !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-end !important;
		width: auto !important;
		max-width: calc(100vw - 24px) !important;
		padding: 0 !important;
	}
	body.page-template-page-business .ms-page-hero__en,
	body.page-template-page-company .ms-page-hero__en,
	body.page-template-page-contact .ms-page-hero__en,
	body.page-template-page-recruit-contact .ms-page-hero__en,
	body.page-template-page-business .ms-page-hero__jp,
	body.page-template-page-company .ms-page-hero__jp,
	body.page-template-page-contact .ms-page-hero__jp,
	body.page-template-page-recruit-contact .ms-page-hero__jp {
		display: inline-block !important;
		max-width: 100% !important;
		width: auto !important;
		margin: 0 !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		min-width: 0 !important;
	}
}

/* ---- 2. リセット補強 ----------------------------------- */
body.mirai-renewal {
	font-family: var(--ff-sans);
	color: var(--c-text);
	background: var(--c-white);
	line-height: var(--lh-body);
	-webkit-font-smoothing: antialiased;
}
body.mirai-renewal *, body.mirai-renewal *::before, body.mirai-renewal *::after { box-sizing: border-box; }
body.mirai-renewal img { max-width: 100%; height: auto; vertical-align: bottom; }
body.mirai-renewal a { color: inherit; text-decoration: none; transition: opacity .2s; }
body.mirai-renewal a:hover { opacity: .7; }
body.mirai-renewal h1, body.mirai-renewal h2, body.mirai-renewal h3, body.mirai-renewal h4, body.mirai-renewal p, body.mirai-renewal ul, body.mirai-renewal dl { margin: 0; padding: 0; }
body.mirai-renewal ul { list-style: none; }

/* ---- 3. コンテナ・共通ユーティリティ --------------------- */
.ms-container {
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter);
}
.ms-container--narrow { max-width: calc(var(--container-narrow) + var(--gutter) * 2); }
.ms-section { padding: var(--section-py) 0; }
.ms-section--gray { background: var(--c-bg-gray); }

/* 見出し: Illustrator MCP 実測値 NotoSansJP Bold 30px (Award/インタビュー/ニュース) */
.ms-heading-jp {
	font-family: var(--ff-sans);
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .1em;
	color: var(--c-navy);
}
.ms-heading-jp--lg { font-size: var(--fs-h2-lg); } /* つなぐ用 */
.ms-heading-en {
	/* 英字でもデザインでは NotoSansJP Bold 30px */
	font-family: var(--ff-sans);
	font-size: var(--fs-h2);
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--c-navy);
}
.ms-heading--center { text-align: center; }

/* WHO WE ARE 等の装飾英字 (見出し背景に重なる薄い大文字) */
.ms-eyebrow-en {
	display: block;
	font-family: var(--ff-serif);
	font-size: var(--fs-eyebrow);
	font-weight: 400;
	letter-spacing: .04em;
	color: rgba(0, 63, 102, .08);
	line-height: 1;
	margin-bottom: -40px;
	user-select: none;
	pointer-events: none;
}

/* ボタン (Illustrator MCP実測: NotoSerifJP Regular 24px) */
.ms-btn {
	display: inline-block;
	min-width: 320px;
	padding: 14px 40px;
	border: 1px solid var(--c-text);
	background: var(--c-white);
	color: var(--c-text);
	font-size: var(--fs-btn);
	font-family: var(--ff-serif);
	font-weight: 400;
	text-align: center;
	letter-spacing: .1em;
	cursor: pointer;
	line-height: 1.4;
}
.ms-btn--submit {
	background: #2D2D2D;
	border-color: #2D2D2D;
	color: var(--c-white);
	min-width: 280px;
	font-family: var(--ff-sans);
	letter-spacing: .2em;
}
.ms-section__cta { text-align: center; margin-top: 48px; }

/* スクリーンリーダー専用 */
.ms-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ---- 4. グローバルヘッダー ------------------------------ */
.ms-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: var(--c-white);
	border-bottom: 1px solid var(--c-border);
}
.ms-header__inner {
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ms-header__logo img { height: 42px; width: auto; }
.ms-header__nav ul {
	display: flex;
	gap: 32px;
}
.ms-header__nav a {
	font-family: var(--ff-serif);
	font-size: var(--fs-nav);
	color: var(--c-text);
	letter-spacing: .06em;
	white-space: nowrap;
}
.ms-header__nav .current a { color: var(--c-navy); font-weight: 600; }

@media (min-width: 769px) and (max-width: 1100px) {
	.ms-header__inner {
		padding: 8px 24px;
	}
	.ms-header__logo img {
		height: 36px;
	}
	.ms-header__nav ul {
		gap: 18px;
	}
	.ms-header__nav a {
		font-size: 12px;
		letter-spacing: .03em;
	}
}

/* ハンバーガー（SP のみ） */
.ms-header__toggle {
	display: none;
	width: 44px; height: 44px;
	background: var(--c-navy);
	border: none;
	cursor: pointer;
	padding: 12px 10px;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	z-index: 100;
}
.ms-header__toggle span {
	display: block;
	height: 2px;
	background: var(--c-white);
	width: 100%;
}

/* ドロワー (SP メニュー) */
.ms-drawer {
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, .35);
	z-index: 99;
	display: none;
	overflow-y: auto;
	padding: 30px;
	box-sizing: border-box;
}
.ms-drawer.is-open {
	display: flex;
	align-items: center;
	justify-content: center;
}
/* ドロワー開いた時はトグルボタンを通常状態に戻す (青背景 44x44 + 白線) */
body.mirai-renewal:has(.ms-drawer.is-open) .ms-header__toggle,
body.home.mirai-renewal:has(.ms-drawer.is-open) .ms-header__toggle {
	background: var(--c-navy) !important;
	width: 44px !important;
	height: 44px !important;
	padding: 12px 10px !important;
	top: 10px !important;
	transform: none !important;
}
body.mirai-renewal:has(.ms-drawer.is-open) .ms-header__toggle span,
body.home.mirai-renewal:has(.ms-drawer.is-open) .ms-header__toggle span {
	background: var(--c-white) !important;
}
.ms-drawer__nav {
	width: 100%;
	min-height: 100%;
	background: rgba(255, 255, 255, .85);
	border: 1px solid rgba(0, 0, 0, .85);
	box-sizing: border-box;
	padding: 100px 24px 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ms-drawer__nav ul { text-align: center; position: relative; z-index: 1; display: flex; flex-direction: column; gap: 40px; }
.ms-drawer__nav li {
	padding: 0;
	border: none;
}
.ms-drawer__nav a {
	font-family: var(--ff-serif);
	font-size: 22px;
	color: var(--c-text);
	letter-spacing: .08em;
	text-decoration: none;
	display: inline-block;
}
.ms-drawer__nav li.current a {
	color: rgba(34, 34, 34, .45);
	text-decoration: underline;
	text-underline-offset: 8px;
	text-decoration-thickness: 1px;
}

/* Overlay header on the top hero for the front page. */
body.home.mirai-renewal .ms-header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	background: rgba(255, 255, 255, .68);
	border-bottom: 0;
}
body.home.mirai-renewal .ms-header__inner { padding: 10px 24px; }
body.home.mirai-renewal .ms-header__logo img { height: 34px; }
body.home.mirai-renewal .ms-header__nav ul { gap: 24px; }
body.home.mirai-renewal .ms-header__nav a { font-size: 13px; }

@media (min-width: 769px) {
	body.mirai-renewal:not(.home) .ms-header {
		position: sticky;
		top: 0;
		left: 0;
		width: 100%;
		background: #F5F5F5;
		border-bottom: 0;
	}
	body.mirai-renewal:not(.home) .ms-header__inner { padding: 10px 24px; }
	body.mirai-renewal:not(.home) .ms-header__logo img { height: 34px; }
	body.mirai-renewal:not(.home) .ms-header__nav ul { gap: 24px; }
	body.mirai-renewal:not(.home) .ms-header__nav a { font-size: 13px; }

	/* business / company / contact / recruit-contact: TOPと同じ透過ヘッダー + Hero重ね */
	body.mirai-renewal.page-template-page-business .ms-header,
	body.mirai-renewal.page-template-page-company .ms-header,
	body.mirai-renewal.page-template-page-contact .ms-header,
	body.mirai-renewal.page-template-page-recruit .ms-header,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header {
		position: absolute !important;
		top: 0;
		left: 0;
		width: 100%;
		background: rgba(255, 255, 255, .68) !important;
		border-bottom: 0;
	}
	body.mirai-renewal.page-template-page-business .ms-header__inner,
	body.mirai-renewal.page-template-page-company .ms-header__inner,
	body.mirai-renewal.page-template-page-contact .ms-header__inner,
	body.mirai-renewal.page-template-page-recruit .ms-header__inner,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header__inner { padding: 10px 24px; }
	body.mirai-renewal.page-template-page-business .ms-header__logo img,
	body.mirai-renewal.page-template-page-company .ms-header__logo img,
	body.mirai-renewal.page-template-page-contact .ms-header__logo img,
	body.mirai-renewal.page-template-page-recruit .ms-header__logo img,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header__logo img { height: 34px; }
	body.mirai-renewal.page-template-page-business .ms-header__nav ul,
	body.mirai-renewal.page-template-page-company .ms-header__nav ul,
	body.mirai-renewal.page-template-page-contact .ms-header__nav ul,
	body.mirai-renewal.page-template-page-recruit .ms-header__nav ul,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header__nav ul { gap: 24px; }
	body.mirai-renewal.page-template-page-business .ms-header__nav a,
	body.mirai-renewal.page-template-page-company .ms-header__nav a,
	body.mirai-renewal.page-template-page-contact .ms-header__nav a,
	body.mirai-renewal.page-template-page-recruit .ms-header__nav a,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header__nav a { font-size: 13px; }
}

/* ---- 5. TOP: Hero -------------------------------------- */
/* 画像 + HTMLテキスト オーバーレイ。
   現状は焼き込み画像なので .is-text-hidden でテキストを隠す。
   テキストなし画像に差し替えたら .is-text-hidden を外してHTMLテキスト表示。 */
.ms-top-hero {
	position: relative;
	width: 100%;
	aspect-ratio: 1201 / 651;
	background-image: url(../images/hero-top.jpg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.ms-top-hero__inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	padding: clamp(96px, 10vw, 136px) var(--gutter) 0;
	color: var(--c-white);
	text-align: center;
}
.ms-top-hero__catch {
	font-family: var(--ff-serif);
	font-size: var(--fs-hero);
	font-weight: 400;
	line-height: var(--lh-hero);
	letter-spacing: 0;
}
.ms-top-hero__sub {
	font-size: var(--fs-hero-sub);
	font-weight: 400;
	letter-spacing: .1em;
	margin-top: 16px;
}
.ms-top-hero.is-text-hidden .ms-top-hero__inner {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (max-width: 768px) {
	body.home.mirai-renewal .ms-header { background: transparent; }
	body.home.mirai-renewal .ms-header__inner { padding: 0; }
	body.home.mirai-renewal .ms-header__logo { position: absolute; top: 54px; left: 50%; transform: translateX(-50%); z-index: 10000; }
	body.home.mirai-renewal .ms-header__logo img { height: 32px; }
	.ms-top-hero {
		aspect-ratio: 365 / 778;
		width: 100%;
		background-image: url(../images/hero-top.jpg);
		background-position: 85% center;
		background-size: cover;
		background-repeat: no-repeat;
	}
	.ms-top-hero__inner {
		justify-content: center;
		padding-top: 0;
	}
	.ms-top-hero__catch { font-size: clamp(38px, 12.2vw, 42px); white-space: nowrap; }
	.ms-top-hero__sub { font-size: 11px; margin-top: 4px; }
}

/* ---- 6. TOP: つなぐ ------------------------------------ */
.ms-intro__inner {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: 56px;
	align-items: center;
}
.ms-intro__text { position: relative; }
.ms-intro__text::before {
	content: "";
	position: absolute;
	left: -8px;
	top: -26px;
	z-index: 0;
	width: 387px;
	aspect-ratio: 387.28 / 42.7;
	background: url("../images/who-we-are.svg") no-repeat 0 0 / contain;
	pointer-events: none;
}
.ms-intro__text > * { position: relative; z-index: 1; }
.ms-intro__text .ms-heading-jp { margin-bottom: 28px; }
.ms-intro__text p {
	margin-top: 18px;
	font-family: var(--ff-sans);
	font-weight: 500;
	font-size: var(--fs-body-lg);
	line-height: var(--lh-body);
	letter-spacing: .1em;
}
.ms-intro__media img {
	width: 100%;
	height: auto;
	display: block;
}

/* ---- 7. TOP: Award ------------------------------------- */
.ms-award { background: transparent; padding: var(--section-py) 0; }
.ms-award .ms-heading-en { margin-bottom: 16px; }
.ms-award__lead {
	text-align: center;
	margin: 0 0 28px;
	font-size: var(--fs-body-lg);
	font-weight: 300;             /* NotoSansJP Light */
	letter-spacing: .1em;
	color: var(--c-text);
}
.ms-award__list {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 40px;
}
.ms-award__item { text-align: center; flex: 0 1 280px; }
.ms-award__crest { display: block; margin: 0 auto 24px; width: 240px; height: auto; }
.ms-award__title {
	font-family: var(--ff-sans);
	font-weight: 700;
	font-size: var(--fs-h3); /* 20px */
	line-height: 1.7;
	letter-spacing: .08em;
	color: var(--c-navy);
}
.ms-award__period {
	font-size: var(--fs-h3);
	font-weight: 700;
	line-height: 1.7;
	color: var(--c-navy);
}
.ms-award__note {
	font-size: .72em;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.home.mirai-renewal .ms-top-hero {
		background-size: auto 120%;
		background-position: center center;
	}
	body.home.mirai-renewal .ms-intro {
		padding: 58px 0 78px;
	}
	body.home.mirai-renewal .ms-intro__inner {
		max-width: 860px;
		padding: 0 24px;
		grid-template-columns: 370px 492px;
		gap: 28px;
		align-items: start;
		transform: translateX(18px);
	}
	body.home.mirai-renewal .ms-intro__text::before {
		left: 0;
		top: -24px;
		width: 387px;
	}
	body.home.mirai-renewal .ms-intro__text .ms-heading-jp {
		font-size: 27px;
		margin-bottom: 24px;
	}
	body.home.mirai-renewal .ms-intro__text p {
		margin-top: 11px;
		font-size: 13.5px;
		line-height: 1.7;
		letter-spacing: .08em;
	}
	body.home.mirai-renewal .ms-intro__media {
		margin-top: -40px;
	}
	body.home.mirai-renewal .ms-intro__media img {
		width: 492px;
		max-width: none;
	}
	body.home.mirai-renewal .ms-award {
		padding: 70px 0 80px;
	}
	body.home.mirai-renewal .ms-award .ms-heading-en {
		font-size: 40px;
		line-height: 1.1;
		letter-spacing: .08em;
		margin-bottom: 28px;
	}
	body.home.mirai-renewal .ms-award__lead {
		margin-bottom: 72px;
		font-size: 24px;
		font-weight: 400;
		line-height: 1.4;
		letter-spacing: .06em;
	}
	body.home.mirai-renewal .ms-award__list {
		gap: 34px;
		max-width: 850px;
		margin-inline: auto;
	}
	body.home.mirai-renewal .ms-award__item {
		flex: 1 1 0;
		min-width: 0;
	}
	body.home.mirai-renewal .ms-award__crest {
		width: 156px;
		margin-bottom: 38px;
	}
	body.home.mirai-renewal .ms-award__title,
	body.home.mirai-renewal .ms-award__period {
		color: #555;
		font-size: 22px;
		font-weight: 700;
		line-height: 1.45;
		letter-spacing: .03em;
	}
	body.home.mirai-renewal .ms-award__item:nth-child(3) .ms-award__title,
	body.home.mirai-renewal .ms-award__item:nth-child(3) .ms-award__period {
		font-size: 19px;
		letter-spacing: 0;
	}
	body.home.mirai-renewal .ms-story {
		padding-bottom: 220px;
	}
	body.home.mirai-renewal .ms-news {
		padding: 132px 0 212px;
	}
	body.home.mirai-renewal .ms-footer {
		padding: 56px 0 31px;
	}
	body.home.mirai-renewal .ms-footer__copy {
		margin-top: 64px;
	}
}

/* ---- 8. TOP: インタビュー / 事例 共通カード ------------- */
.ms-interview, .ms-story { padding: var(--section-py) 0; }
.ms-interview .ms-heading-jp,
.ms-story .ms-heading-jp { text-align: left; margin-bottom: 40px; }
body.home.mirai-renewal .ms-award__lead { margin-bottom: 48px; }
body.home.mirai-renewal .ms-interview .ms-section__cta,
body.home.mirai-renewal .ms-story .ms-section__cta { margin-top: 72px; }

.ms-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.ms-card {
	background: var(--c-white);
	display: block;
	color: inherit;
}

/* インタビューカード */
.ms-card--interview .ms-card__media {
	position: relative;
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.ms-card--interview .ms-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
/* Illustrator実測: NotoSansJP Regular 9.5px right */
.ms-card__tags {
	position: absolute;
	bottom: 0; left: 0; right: 0;
	background: rgba(0, 63, 102, .85);
	color: var(--c-white);
	padding: 8px 14px;
	font-family: var(--ff-sans);
	font-size: 11px;
	font-weight: 400;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	justify-content: flex-end;
	letter-spacing: .05em;
	margin: 0;
}
.ms-card__body { padding: 14px 4px 0; }
/* Illustrator実測: NotoSansJP Light 11.4px / 行高17 (1.5) */
.ms-card__excerpt {
	font-family: var(--ff-sans);
	font-size: 12px;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: .04em;
	color: var(--c-text);
	text-align: justify;
}

/* 転職事例カード (banner 1枚) */
.ms-story { background: var(--c-bg-gray); }
.ms-card--story { background: transparent; }
.ms-card--story img { width: 100%; display: block; }

/* ---- 9. TOP: 4分割ナビカード --------------------------- */
.ms-navcards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
.ms-navcards--3 { grid-template-columns: repeat(3, 1fr); }
/* SP専用の問い合わせ単独カードはPCでは非表示 */
.ms-navcards--contact-sp { display: none; }
.ms-navcard {
	position: relative;
	display: block;
	padding: 52px 32px 40px;
	min-height: 260px;
	color: var(--c-text);
}
/* Illustrator実測: NotoSerifJP Regular 30.4px tracking 100 */
.ms-navcard__jp {
	font-family: var(--ff-serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: .1em;
	color: var(--c-text);
}
/* Illustrator実測: NotoSerifJP Medium 15.2px tracking 40 */
.ms-navcard__en {
	display: block;
	font-family: var(--ff-serif);
	font-size: 15px;
	font-weight: 500;
	margin-top: 10px;
	color: var(--c-text);
	letter-spacing: .04em;
}
/* Illustrator実測: NotoSerifJP Medium 18.6px */
.ms-navcard__more {
	position: absolute;
	right: 28px;
	bottom: 24px;
	color: var(--c-white);
	font-family: var(--ff-serif);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.ms-navcard__more::after {
	content: "›";
	width: 28px; height: 28px;
	background: var(--c-white);
	color: var(--c-navy);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
	padding-bottom: 2px;
}
.ms-navcard--business { background: var(--c-card-business); }
.ms-navcard--company  { background: var(--c-card-company); }
.ms-navcard--recruit  { background: var(--c-card-recruit); }
.ms-navcard--contact  { background: var(--c-card-contact); }

@media (min-width: 769px) {
	body.page-template-page-company .ms-navcards {
		margin-bottom: 0;
	}
	body.page-template-page-company .ms-navcard {
		min-height: 240px;
	}
	body.page-template-page-company .ms-navcard__more {
		bottom: 10px;
	}
}

@media (min-width: 769px) and (max-width: 1100px) {
	.ms-navcard {
		padding: 32px 22px 28px;
	}
	.ms-navcard__jp {
		font-size: 25px;
		letter-spacing: .05em;
	}
	.ms-navcard__en {
		font-size: 13px;
	}
	.ms-navcard--company .ms-navcard__jp {
		font-size: 22px;
		letter-spacing: 0;
		line-height: 1.45;
	}
	.ms-navcard__more {
		right: 22px;
	}
}

/* ---- 10. TOP: ニュース --------------------------------- */
/* AI実測: 各セクション余白を全体的に拡大 */
.ms-news { padding: var(--section-py) 0; }
@media (min-width: 1101px) {
	body.home.mirai-renewal .ms-intro { padding: 104px 0 96px; }
	body.home.mirai-renewal .ms-award { padding: 92px 0 118px; }
	body.home.mirai-renewal .ms-award .ms-heading-en {
		font-size: 40px;
		line-height: 1.1;
		letter-spacing: .08em;
		margin-bottom: 28px;
	}
	body.home.mirai-renewal .ms-award__lead {
		margin-bottom: 70px;
		font-size: 24px;
		font-weight: 400;
		line-height: 1.4;
		letter-spacing: .06em;
	}
	body.home.mirai-renewal .ms-award__list {
		gap: 72px;
		max-width: 1040px;
		margin-inline: auto;
	}
	body.home.mirai-renewal .ms-award__item {
		flex: 1 1 0;
		min-width: 0;
	}
	body.home.mirai-renewal .ms-award__crest {
		width: 240px;
		margin-bottom: 36px;
	}
	body.home.mirai-renewal .ms-award__title,
	body.home.mirai-renewal .ms-award__period {
		color: #555;
		font-size: 26px;
		font-weight: 700;
		line-height: 1.45;
		letter-spacing: .03em;
	}
	body.home.mirai-renewal .ms-award__item:nth-child(3) .ms-award__title,
	body.home.mirai-renewal .ms-award__item:nth-child(3) .ms-award__period {
		font-size: 23px;
		letter-spacing: 0;
	}
	body.home.mirai-renewal .ms-interview { padding: 104px 0 88px; }
	body.home.mirai-renewal .ms-story {
		padding: 39px 0 60px;
		margin-bottom: 185px;
	}
	body.home.mirai-renewal .ms-story .ms-container { max-width: 1160px; }
	body.home.mirai-renewal .ms-story .ms-heading-jp { margin-bottom: 91px; }
	body.home.mirai-renewal .ms-story .ms-section__cta { margin-top: 90px; }
	body.home.mirai-renewal .ms-section__cta .ms-btn {
		position: relative;
		min-width: 324px;
		padding: 8px 40px;
		border-color: var(--c-text);
	}
	body.home.mirai-renewal .ms-section__cta .ms-btn::before {
		content: "";
		position: absolute;
		inset: 6px;
		border: 1px solid var(--c-text);
		pointer-events: none;
	}
	body.home.mirai-renewal .ms-navcards { margin-bottom: 0; }
	body.home.mirai-renewal .ms-news { padding: 168px 0 236px; }
	body.home.mirai-renewal .ms-news .ms-container--narrow {
		max-width: 760px;
		margin-left: calc((100vw - 1200px) / 2 + 140px);
		margin-right: auto;
		padding: 0;
	}
	body.home.mirai-renewal .ms-news .ms-heading-jp { margin-bottom: 72px; }
	body.home.mirai-renewal .ms-newslist__item {
		padding: 25px 0 29px;
	}
	body.home.mirai-renewal .ms-footer {
		padding: 56px 0 31px;
	}
	body.home.mirai-renewal .ms-footer .ms-container {
		max-width: 820px;
		padding: 0;
	}
	body.home.mirai-renewal .ms-footer__nav ul {
		gap: 22px;
		margin-bottom: 72px;
	}
	body.home.mirai-renewal .ms-footer__nav a {
		font-size: 13px;
	}
	body.home.mirai-renewal .ms-footer__body {
		gap: 58px;
	}
	body.home.mirai-renewal .ms-footer__logo img {
		height: 62px;
	}
	body.home.mirai-renewal .ms-footer__copy {
		margin-top: 54px;
	}
}
.ms-news .ms-heading-jp { text-align: left; margin-bottom: 56px; }
.ms-newslist__item {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 28px 0 30px;
	border-bottom: 1px solid var(--c-border);
	align-items: flex-start;
}
.ms-newslist__date {
	color: var(--c-text-sub);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: .08em;
}
.ms-newslist__title {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.7;
	color: var(--c-text);
}

/* ---- 11. グローバルフッター --------------------------- */
.ms-footer {
	background: var(--c-navy);
	color: var(--c-white);
	padding: 56px 0 24px;
}
.ms-footer__nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-bottom: 48px;
}
.ms-footer__nav a {
	font-family: var(--ff-sans);
	font-size: 14px;
	color: var(--c-white);
	letter-spacing: .04em;
}
.ms-footer__nav .current a {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ms-footer__body {
	display: flex;
	align-items: flex-start;
	gap: 80px;
	flex-wrap: wrap;
}
.ms-footer__logo img { height: 96px; width: auto; }
.ms-footer__info {
	display: grid;
	grid-template-columns: auto 1fr auto 1fr;
	column-gap: 20px;
	row-gap: 10px;
	font-size: 13px;
	letter-spacing: .04em;
	line-height: 1.6;
}
.ms-footer__info dt {
	color: rgba(255,255,255,.85);
	white-space: nowrap;
	font-weight: 400;
}
.ms-footer__info dt::before { content: "["; padding-right: 4px; }
.ms-footer__info dt::after  { content: "]"; padding-left: 4px; }
.ms-footer__info dd { font-weight: 400; }
.ms-footer__sns {
	display: flex;
	justify-content: center;   /* 左右中央 */
	gap: 16px;
	width: 100%;
	margin: 40px 0 !important;  /* nav と body の間で上下均等（リセットのul margin:0対策で !important） */
}
.ms-footer__sns a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--c-white);
	transition: opacity .2s ease;
}
.ms-footer__sns a:hover { opacity: .75; }
.ms-footer__sns img {
	width: 20px;
	height: 20px;
	display: block;
}
.ms-footer__copy {
	text-align: center;
	margin-top: 56px;
	font-family: var(--ff-serif);
	font-size: 12px;
	letter-spacing: .15em;
	color: rgba(255,255,255,.7);
}

@media (min-width: 769px) {
	body.page-template-page-company .ms-footer {
		padding: 56px 0 28px;
	}
	body.page-template-page-company .ms-footer__nav {
		margin-bottom: 75px;
		transform: translateX(56px);
	}
	body.page-template-page-company .ms-footer__body {
		padding-left: 56px;
		box-sizing: border-box;
	}
	body.page-template-page-company .ms-footer__copy {
		margin-top: 20px;
	}
}

/* ---- 12. フォーム (CF7上書き) -------------------------- */
.ms-form { background: var(--c-bg-gray); padding: 48px 32px; }
.ms-form label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.ms-form .wpcf7-required-mark, .ms-form span.wpcf7-not-valid-tip { display: none; }
.ms-form .required {
	display: inline-block;
	background: var(--c-red);
	color: var(--c-white);
	font-size: 11px;
	padding: 2px 8px;
	margin-left: 8px;
	border-radius: 9999px;
}
.ms-form input[type="text"],
.ms-form input[type="email"],
.ms-form input[type="tel"],
.ms-form textarea {
	width: 100%;
	padding: 14px 16px;
	background: var(--c-white);
	border: 1px solid var(--c-border);
	font-size: 15px;
	font-family: inherit;
}
.ms-form textarea { min-height: 220px; resize: vertical; }
.ms-form input[type="submit"] {
	display: block;
	margin: 32px auto 0;
	min-width: 280px;
	padding: 16px;
	background: #2D2D2D;
	color: var(--c-white);
	border: none;
	font-size: 15px;
	letter-spacing: .2em;
	cursor: pointer;
}

/* CF7 ID 794 keeps field labels inside `.required`; split them visually on the contact page. */
.ms-contact .ms-form .wpcf7-form > p {
	margin: 0 0 28px;
	font-size: 14px;
	font-weight: 700;
	color: var(--c-text);
}
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(1)::before { content: "会社名"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(2)::before { content: "お電話番号"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(3)::before { content: "メールアドレス"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(4)::before { content: "確認用メールアドレス"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(5)::before { content: "ご担当者名"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(6)::before { content: "お問い合わせの種類"; }
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(7)::before { content: "お問い合わせ内容"; }
.ms-contact .ms-form .wpcf7-form > p::before {
	display: inline-block;
	margin-bottom: 8px;
}
.ms-contact .ms-form .wpcf7-form > p .required {
	font-size: 0;
	vertical-align: baseline;
}
.ms-contact .ms-form .wpcf7-form > p .required::before {
	content: "必須";
	font-size: 11px;
}
.ms-contact .ms-form .wpcf7-form > p:last-of-type {
	margin-bottom: 0;
}
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(6) br {
	display: none;
}
.ms-contact .ms-form .wpcf7-form > p:nth-of-type(6) .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}

@media (min-width: 769px) {
	.ms-contact .ms-container--narrow,
	.ms-section--recruit-contact .ms-container--narrow {
		max-width: 880px;
	}
	body.page-template-page-contact .ms-contact {
		padding-top: 96px;
		padding-bottom: 34px;
	}
	body.page-template-page-contact .ms-contact .ms-form {
		padding: 64px 72px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p {
		font-size: 16px;
		margin: 0 0 32px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p::before {
		margin-bottom: 12px;
		font-size: 16px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="text"],
	body.page-template-page-contact .ms-contact .ms-form input[type="email"],
	body.page-template-page-contact .ms-contact .ms-form input[type="tel"] {
		font-size: 16px;
		padding: 14px 18px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-list-item {
		display: block;
		margin: 4px 0;
		font-size: 15px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p:nth-of-type(6) br {
		display: none;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p:nth-of-type(6) .wpcf7-form-control-wrap {
		display: block;
		margin-top: 4px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="submit"] {
		background: #4D4D4D;
		min-width: 240px;
		padding: 14px;
		font-size: 14px;
	}
	body.page-template-page-contact .ms-contact .ms-form textarea {
		height: 360px;
		font-size: 16px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact {
		padding-bottom: 40px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact textarea {
		height: 320px;
	}
	.ms-section--recruit-contact .ms-form {
		padding: 56px 48px 48px;
	}
	.ms-section--recruit-contact .ms-form__row {
		margin-bottom: 22px;
	}
	.ms-section--recruit-contact .ms-form__submit {
		margin-top: 40px;
	}
	.ms-section--recruit-contact .ms-form__submit button {
		min-width: 240px;
		padding: 14px 16px;
		font-size: 14px;
		letter-spacing: .25em;
	}
	body.page-template-page-contact .ms-footer,
	body.page-template-page-recruit-contact .ms-footer {
		padding: 56px 0 29px;
	}
	body.page-template-page-contact .ms-footer__nav,
	body.page-template-page-recruit-contact .ms-footer__nav {
		margin-bottom: 75px;
		transform: translateX(56px);
	}
	body.page-template-page-contact .ms-footer__body,
	body.page-template-page-recruit-contact .ms-footer__body {
		padding-left: 56px;
		box-sizing: border-box;
	}
	body.page-template-page-contact .ms-footer__copy,
	body.page-template-page-recruit-contact .ms-footer__copy {
		margin-top: 20px;
	}
}

/* ---- 問い合わせフォーム SP: 親テーマの input 圧縮(高さ31px)を打ち消し、余白をデザインに合わせる ---- */
@media (max-width: 768px) {
	body.page-template-page-contact .ms-contact {
		padding: 40px 0 28px;
	}
	body.page-template-page-contact .ms-contact .ms-form {
		padding: 28px 20px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7 {
		display: block;
		padding: 16px 12px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p {
		font-size: 15px;
		margin: 0 0 22px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p::before {
		margin-bottom: 8px;
		font-size: 15px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="text"],
	body.page-template-page-contact .ms-contact .ms-form input[type="email"],
	body.page-template-page-contact .ms-contact .ms-form input[type="tel"] {
		height: auto !important;
		padding: 13px 14px !important;
		font-size: 16px !important;
		box-sizing: border-box !important;
	}
	body.page-template-page-contact .ms-contact .ms-form textarea {
		padding: 13px 14px !important;
		font-size: 16px !important;
		min-height: 200px !important;
		box-sizing: border-box !important;
	}
	/* お問い合わせの種類(チェックボックス): ラベル直下の空きすぎを解消し均等に */
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p:nth-of-type(6)::before {
		margin-bottom: 0;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p:nth-of-type(6) .wpcf7-form-control-wrap {
		margin-top: 8px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-checkbox {
		display: block;
		margin: 0;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-checkbox .wpcf7-list-item {
		margin: 0 0 8px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-checkbox .wpcf7-list-item.last {
		margin-bottom: 0;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="submit"] {
		min-width: 0;
		width: 60%;
		margin: 28px auto 0;
	}
}

/* ---- 13. 会社概要テーブル ----------------------------- */
.ms-company-info-section {
	padding: 0;
}
.ms-info-table {
	background: var(--c-navy);
	color: var(--c-white);
	padding: 48px 72px;
}
.ms-info-table__title {
	font-family: var(--ff-sans);
	font-size: 30px; /* Illustrator MCP 実測 */
	font-weight: 700;
	letter-spacing: .1em;
	margin-bottom: 48px !important;
	color: var(--c-white);
}
.ms-info-table dl {
	display: grid;
	grid-template-columns: 132px 1fr;
	row-gap: 8px;
	column-gap: 24px;
}
/* Illustrator実測: NotoSansJP Light 10px / 行高20 (Webでは少し上げる調整) */
.ms-info-table dt {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: .15em;
	color: rgba(255,255,255,.9);
	white-space: nowrap;
	line-height: 1.55;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ms-info-table dt::before { content: "["; }
.ms-info-table dt::after  { content: "]"; }
.ms-info-table dd {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: .04em;
	line-height: 1.55;
}

/* ============================================================
   14. 下層ページ共通: Hero / セクションコンポーネント
   ============================================================ */

/* 下層ページ Hero (business / company / contact / recruit-contact 共通)
   画像書き出しは 1201×651 (1.85:1)。Heroコンテナをこの比率に合わせる。
   画面1440幅 → Hero高さ 約780px。PDFと近い縦感。
   ラベル「英字／和文」はHero右下に配置（PDF準拠） */
.ms-page-hero {
	position: relative;
	width: 100%;
	aspect-ratio: 1201 / 651;
	max-height: 720px;
	background-size: cover;
	background-position: center;
	background-color: var(--c-navy);
	color: var(--c-white);
	overflow: hidden;
}
/* ラベル: 絶対配置で Hero 右下に。縦並び（英字小 → 和文大） */
.ms-page-hero__inner {
	position: absolute;
	right: 60px;
	bottom: 60px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	white-space: nowrap;
}
/* SP用テキストカードはPCでは非表示 (SP内で上書きで表示) */

/* SP/PC専用要素 */
.sp-only { display: none; }
@media (max-width: 768px) {
	.sp-only { display: inline; }
	br.sp-only { display: inline; }
	.pc-only { display: none !important; }
}

/* ====================================================================
   Archive/List ページの Hero (画像なし、シンプルなグレー背景)
   ==================================================================== */
.ms-page-hero--interview,
.ms-page-hero--story,
.ms-page-hero--recruit,
.ms-page-hero--news,
.ms-page-hero--job {
	aspect-ratio: auto !important;
	height: 280px !important;
	background-color: #F5F5F5 !important;
	background-image: none !important;
	color: var(--c-text);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.ms-page-hero--interview .ms-page-hero__inner,
.ms-page-hero--story .ms-page-hero__inner,
.ms-page-hero--recruit .ms-page-hero__inner,
.ms-page-hero--news .ms-page-hero__inner,
.ms-page-hero--job .ms-page-hero__inner {
	position: static;
	right: auto;
	bottom: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}
.ms-page-hero--interview .ms-page-hero__en,
.ms-page-hero--story .ms-page-hero__en,
.ms-page-hero--recruit .ms-page-hero__en,
.ms-page-hero--news .ms-page-hero__en,
.ms-page-hero--job .ms-page-hero__en {
	background: transparent;
	color: var(--c-navy);
	font-family: var(--ff-serif);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .2em;
	padding: 0;
	margin: 0;
	text-transform: uppercase;
}
.ms-page-hero--interview .ms-page-hero__jp,
.ms-page-hero--story .ms-page-hero__jp,
.ms-page-hero--recruit .ms-page-hero__jp,
.ms-page-hero--news .ms-page-hero__jp,
.ms-page-hero--job .ms-page-hero__jp {
	background: transparent;
	color: var(--c-text);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: 36px;
	font-weight: 500;
	letter-spacing: .08em;
	padding: 0;
	margin: 0;
}
@media (max-width: 768px) {
	.ms-page-hero--interview,
	.ms-page-hero--story,
	.ms-page-hero--recruit,
	.ms-page-hero--news,
	.ms-page-hero--job {
		height: 160px !important;
	}
	.ms-page-hero--interview .ms-page-hero__jp,
	.ms-page-hero--story .ms-page-hero__jp,
	.ms-page-hero--recruit .ms-page-hero__jp,
	.ms-page-hero--news .ms-page-hero__jp,
	.ms-page-hero--job .ms-page-hero__jp {
		font-size: 24px;
	}
	.ms-page-hero--interview .ms-page-hero__en,
	.ms-page-hero--story .ms-page-hero__en,
	.ms-page-hero--recruit .ms-page-hero__en,
	.ms-page-hero--news .ms-page-hero__en,
	.ms-page-hero--job .ms-page-hero__en {
		font-size: 11px;
	}
}

/* ====================================================================
   Single (詳細) ページのスタイル — interview / story / job
   ==================================================================== */
.ms-single {
	padding: 80px 0 96px;
}
.ms-single .ms-container--narrow {
	max-width: 820px;
}
.ms-single__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid #E5E5E5;
}
.ms-single__date {
	font-family: var(--ff-serif);
	font-size: 14px;
	color: #666;
	letter-spacing: .04em;
}
.ms-single__tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
}
.ms-single__tags li {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	background: var(--c-navy);
	color: var(--c-white);
	font-size: 12px;
	letter-spacing: .04em;
	border-radius: 2px;
}
.ms-single__thumb {
	margin: 0 0 40px;
	padding: 0;
}
.ms-single__thumb img {
	display: block;
	width: 100%;
	height: auto;
}
.ms-single__content {
	font-size: 16px;
	line-height: 2;
	color: var(--c-text);
	letter-spacing: .02em;
}
.ms-single__content p {
	margin: 0 0 1.5em;
}
.ms-single__content p:last-child { margin-bottom: 0; }
.ms-single__content h2 {
	font-size: 22px;
	font-weight: 600;
	color: var(--c-navy);
	margin: 2.5em 0 1em;
	padding-bottom: .5em;
	border-bottom: 2px solid var(--c-navy);
}
.ms-single__content h3 {
	font-size: 18px;
	font-weight: 600;
	color: var(--c-navy);
	margin: 2em 0 .8em;
}
.ms-single__content ul, .ms-single__content ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
}
.ms-single__content li { margin-bottom: .5em; }
.ms-single__content blockquote {
	border-left: 4px solid var(--c-navy);
	padding: .5em 0 .5em 1.2em;
	margin: 0 0 1.5em;
	background: #F8F8F8;
	color: #555;
	font-style: italic;
}
.ms-single__content a {
	color: var(--c-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ms-single__content a:hover { opacity: .7; }

/* 前後ナビゲーション */
.ms-post-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 24px;
	align-items: center;
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid #E5E5E5;
}
.ms-post-nav__prev,
.ms-post-nav__next {
	min-width: 0;
}
.ms-post-nav__next { text-align: right; }
.ms-post-nav__prev a,
.ms-post-nav__next a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-decoration: none;
	color: var(--c-text);
	font-size: 14px;
}
.ms-post-nav__next a { align-items: flex-end; }
.ms-post-nav__prev a:hover,
.ms-post-nav__next a:hover { opacity: .7; }
.ms-post-nav__label {
	font-size: 12px;
	color: #888;
	letter-spacing: .04em;
}
.ms-post-nav__title {
	font-size: 14px;
	color: var(--c-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 240px;
}
.ms-post-nav__back a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 140px;
	padding: 12px 24px;
	border: 1px solid var(--c-navy);
	color: var(--c-navy);
	text-decoration: none;
	font-size: 14px;
	letter-spacing: .08em;
	transition: all .2s;
}
.ms-post-nav__back a:hover {
	background: var(--c-navy);
	color: var(--c-white);
}

@media (max-width: 768px) {
	.ms-single { padding: 48px 0 64px; }
	.ms-single__meta { margin-bottom: 24px; padding-bottom: 16px; }
	.ms-single__content { font-size: 15px; line-height: 1.9; }
	.ms-single__content h2 { font-size: 19px; }
	.ms-single__content h3 { font-size: 17px; }
	.ms-post-nav {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-top: 48px;
		padding-top: 24px;
	}
	.ms-post-nav__next { text-align: left; }
	.ms-post-nav__next a { align-items: flex-start; }
	.ms-post-nav__back { text-align: center; order: 3; }
	.ms-post-nav__prev { order: 1; }
	.ms-post-nav__next { order: 2; }
}

/* Archive コンテンツ */
.ms-archive { padding: 64px 0 96px; }
.ms-archive__empty {
	text-align: center;
	padding: 60px 0;
	color: #888;
	font-size: 15px;
}
.ms-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
}
.ms-pagination a, .ms-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--c-border, #e0e0e0);
	color: var(--c-text);
	text-decoration: none;
	font-size: 14px;
}
.ms-pagination .current {
	background: var(--c-navy);
	color: var(--c-white);
	border-color: var(--c-navy);
}
@media (max-width: 768px) {
	.ms-archive { padding: 40px 0 64px; }
}
/* 英字ラベル: Serif Regular、ネイビー帯 (Business badge) */
.ms-page-hero__en {
	display: inline-block;
	font-family: var(--ff-serif);
	font-size: 24px;
	font-weight: 500;
	letter-spacing: .04em;
	background: var(--c-navy);
	color: var(--c-white);
	padding: 8px 36px;
	margin: 0;
	line-height: 1.3;
}
/* 和文ラベル: Sans-serif Bold、大、白帯 */
.ms-page-hero__jp {
	display: inline-block;
	font-family: var(--ff-sans);
	font-size: clamp(34px, 4vw, 48px);
	font-weight: 700;
	letter-spacing: .12em;
	background: var(--c-white);
	color: var(--c-text);
	padding: 14px 36px;
	margin: 0;
	line-height: 1.3;
}

@media (min-width: 769px) and (max-width: 1100px) {
	.ms-page-hero__jp {
		font-size: 44px;
	}

	body.page-template-page-company .ms-page-hero__jp {
		font-size: 36px;
		letter-spacing: .08em;
	}

	body.page-template-page-recruit-contact .ms-page-hero__jp {
		font-size: 39px;
		letter-spacing: .08em;
	}

	body.page-template-page-company .ms-page-hero__inner {
		bottom: 70px;
	}
}

/* Recruit-Contact: ヘロラベルは中央寄り (Illustrator 実測) */
body.page-template-page-recruit-contact .ms-page-hero__inner {
	right: auto;
	left: 50%;
	transform: translateX(-50%);
	align-items: center;
	text-align: center;
}
@media (max-width: 768px) {
	body.page-template-page-contact .ms-page-hero__inner {
		left: 0;
		right: 0;
	}
	body.page-template-page-recruit-contact .ms-page-hero__inner {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
	}
}

@media (max-width: 768px) {
	.ms-page-hero { aspect-ratio: 750 / 540; max-height: none; }
	.ms-page-hero__inner {
		right: 0;
		bottom: 16px;
		margin: 0;
		padding: 0 8px 0 0;
		max-width: 100%;
		white-space: normal;
	}
	.ms-page-hero__en {
		font-size: 10px;
		padding: 4px 8px;
	}
	.ms-page-hero__jp {
		font-size: 16px;
		padding: 6px 10px;
		letter-spacing: .05em;
	}
}

/* 装飾英字: 中央版 — TOPページと同じ who-we-are.svg を使用 */
.ms-eyebrow-en--center {
	display: block;
	width: min(580px, 90vw);
	margin: 0 auto 4px;
	aspect-ratio: 387.28 / 42.7;
	background: url("../images/who-we-are.svg") no-repeat center / contain;
	font-size: 0;
	color: transparent;
	overflow: hidden;
	text-indent: -9999px;
	line-height: 0;
}
.ms-eyebrow-en--message {
	font-family: Impact, "Anton", "Arial Black", "Helvetica Neue", sans-serif;
	font-style: normal;
	font-size: clamp(64px, 9vw, 130px);
	font-weight: 400;
	color: rgba(168, 170, 174, 1);
	letter-spacing: .02em;
	text-align: left;
	display: block;
	margin: 0 0 -32px 4%;
	text-transform: uppercase;
	line-height: .9;
	position: relative;
	z-index: 4;
}

/* ---- 14a. 企業理念 (会社概要ページ) ------------------- */
.ms-philosophy { text-align: center; }
@media (min-width: 769px) {
	.ms-philosophy {
		padding-bottom: 150px;
	}
}
.ms-philosophy__heading {
	font-size: 24px; /* Illustrator実測 */
	font-weight: 700;
	color: var(--c-navy);
	letter-spacing: .15em;
	margin-bottom: 48px !important;
}
body.mirai-renewal .ms-philosophy__catch {
	font-size: clamp(20px, 2.1vw, 30px);
	font-weight: 700;
	color: var(--c-navy);
	letter-spacing: .12em;
	line-height: 1.5;
	margin: 0 0 32px;
}
.ms-philosophy__body {
	font-family: var(--ff-sans);
	font-size: clamp(20px, 2.1vw, 30px);
	font-weight: 700;
	line-height: 2.0;
	letter-spacing: .08em;
	color: var(--c-text);
	max-width: 960px;
	margin: 0 auto;
}
.ms-philosophy__body span {
	display: inline;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding-bottom: 2px;
	background-image: linear-gradient(90deg, #9EF9FB 0%, #22408D 100%);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 3.4px;
}

/* ---- 14b. 代表メッセージ ----------------------------- */
.ms-message {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	align-items: stretch;
	margin-top: 0;
}
.ms-message-section {
	padding: 48px 0 0;
	background: #686A6E; /* Illustrator実測: グレー (会社概要ページ MESSAGE) */
}
.ms-message-section .ms-container {
	max-width: none;
	padding: 0;
	position: relative;
}
.ms-message-section .ms-eyebrow-en--message {
	display: block;
}
.ms-message__photo {
	position: relative;
	background: #686A6E;
	overflow: hidden;
}
.ms-message__photo::before {
	content: none;
}
.ms-message__photo img {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	display: block;
}
@media (min-width: 769px) {
	.ms-message__photo img {
		object-position: center;
	}
}
.ms-message__body p {
	font-family: var(--ff-sans);
	font-weight: 600;
	font-size: 16px;
	line-height: 1.95;
	letter-spacing: .06em;
	text-align: justify;
	margin-bottom: 16px;
	color: #fff;
}
.ms-message__body p.ms-message__signature {
	text-align: right;
	font-weight: 600;
}
.ms-message__sub {
	position: absolute;
	right: 24px;
	bottom: 24px;
	width: auto;
	text-align: right;
	font-family: var(--ff-sans);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .22em;
	color: var(--c-white);
	margin: 0;
	z-index: 3;
}
.ms-message__body {
	padding: clamp(36px, 4vw, 64px) clamp(32px, 4vw, 64px);
	background: #686A6E;
	color: #fff;
}
.ms-message__signature {
	display: block;
	text-align: right;
	font-size: 13px;
	font-weight: 500;
	color: #fff;
	margin-top: 18px;
	letter-spacing: .08em;
}

/* ---- 14c. 事業紹介ページ用 (Illustrator MCP 実測準拠) ------ */
/* リード「事業に支障が出るほど…」  */
.ms-biz-lead {
	text-align: center;
	padding: 44px 0 42px;
}
/* Illustrator実測: NotoSansJP Bold 30px / lh 2.0 / tracking 100 / center */
.ms-biz-lead__body {
	font-family: var(--ff-sans);
	font-size: clamp(20px, 2.1vw, 30px);
	font-weight: 700;
	line-height: 2.0;
	letter-spacing: .08em;
	color: var(--c-text);
	white-space: nowrap;
}
/* SP では nowrap を解除 */
@media (max-width: 900px) {
	.ms-biz-lead__body { white-space: normal; font-size: clamp(15px, 4vw, 22px); }
}
/* 各行のグラデ下線 (Illustrator実測: #9EF9FB → #22408D, stroke width 3.4px)
   テキスト直下に貼り付き、上下マージンほぼなし */
.ms-biz-lead__line {
	display: inline-block;
	padding-bottom: 2px;
	background-image: linear-gradient(90deg, #9EF9FB 0%, #22408D 100%);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 3.4px;
}
.ms-biz-section {
	padding: var(--section-py) 0;
}
.ms-biz-section--bizken { background: var(--c-white); }
/* セクション見出し「建設業最大級の求人プラットフォーム事業」「人材紹介事業」 */
.ms-biz-section__heading {
	font-family: var(--ff-sans);
	font-size: 26px;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--c-navy);
	border-bottom: 1px solid var(--c-navy);
	padding-bottom: 14px;
	margin-bottom: 40px;
}
.ms-biz-section__body {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 48px;
	align-items: flex-start;
}
.ms-biz-section__media img { width: 100%; height: auto; display: block; }
.ms-bizken-logo {
	width: 150px !important;
	margin: 12px auto 0;
}
/* 本文 - 事業紹介PDF準拠: NotoSansJP Medium 14px / 行高1.8 */
.ms-biz-section__text {
	font-family: var(--ff-sans);
	font-weight: 500;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: .1em;
	text-align: justify;
}
/* 「転職成功者の満足度は95％以上」 - 実測: Light 27px center */
.ms-biz-section__catch {
	font-family: var(--ff-sans);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.6;
	letter-spacing: .1em;
	text-align: center;
	color: var(--c-navy);
	margin-bottom: 24px;
}
/* 「繋ぐを超えて、人と企業を躍進させる」 */
.ms-biz-section__sub-catch {
	font-family: var(--ff-sans);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.5;
	letter-spacing: .08em;
	color: var(--c-navy);
	margin: 32px 0 16px;
}
.ms-biz-section__closing {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 48px;
	align-items: flex-start;
	margin-top: 32px;
}
.ms-biz-section__closing .ms-biz-section__sub-catch {
	margin-top: 0;
}
.ms-biz-section__closing .ms-cta-buttons {
	margin-top: 38px;
}

/* 数値スコアカード */
.ms-stats {
	display: flex;
	justify-content: center;
	gap: 32px;
	margin: 32px 0;
	flex-wrap: wrap;
}
.ms-stats__item { text-align: center; min-width: 140px; }
.ms-stats__icon { width: 100px; height: auto; display: block; margin: 0 auto 4px; }
/* 数値ラベル「求人数」「掲載企業」「月間閲覧」 */
.ms-stats__label {
	font-family: var(--ff-sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	color: var(--c-navy);
	margin-bottom: 4px;
}
/* 数値 13万件、9万社、7万PV - 太字大 */
.ms-stats__num {
	font-family: var(--ff-sans);
	font-size: 28px;
	font-weight: 700;
	color: var(--c-navy);
	line-height: 1.2;
	letter-spacing: .04em;
}

.ms-biz-section .ms-stats {
	gap: 12px;
	align-items: flex-start;
	margin: 28px 0;
}
.ms-biz-section .ms-stats__item {
	position: relative;
	min-width: 0;
	min-height: 0;
	padding-top: 0;
	flex: 1 1 0;
}
.ms-biz-section .ms-stats__icon,
.ms-biz-section .ms-stats__num,
.ms-biz-section .ms-stats__label {
	display: none;
}
.ms-stats__badge {
	display: block;
	width: 100%;
	max-width: 170px;
	height: auto;
	margin: 0 auto;
}
.ms-stats--bizken .ms-stats__badge {
	max-width: 165px;
}

.ms-biz-section__side .ms-stats {
	justify-content: flex-start;
	margin-bottom: 0;
}
.ms-biz-section__side .ms-cta-buttons {
	margin-top: 28px;
}
.ms-award-strip {
	margin: 28px 0 0;
	text-align: center;
}
.ms-award-strip img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}
.ms-award-strip--bizken img {
	max-width: 491px;
}
.ms-award-strip--agent img {
	max-width: 511px;
}

@media (min-width: 1101px) {
	body.page-template-page-business .ms-biz-lead {
		padding: 48px 0 46px;
	}
	body.page-template-page-business .ms-biz-lead .ms-container,
	body.page-template-page-business .ms-biz-section .ms-container {
		max-width: 860px;
		padding: 0;
	}
	body.page-template-page-business .ms-biz-lead__body {
		font-size: 24px;
		line-height: 1.95;
		letter-spacing: .06em;
	}
	body.page-template-page-business .ms-biz-section {
		padding: 0 0 92px;
	}
	body.page-template-page-business .ms-biz-section--agent {
		padding-bottom: 116px;
	}
	body.page-template-page-business .ms-biz-section__heading {
		display: inline-block;
		font-size: 24px;
		letter-spacing: .08em;
		padding-bottom: 7px;
		margin-bottom: 36px;
	}
	body.page-template-page-business .ms-biz-section__body {
		grid-template-columns: 360px 1fr;
		gap: 80px;
	}
	body.page-template-page-business .ms-biz-section__text {
		font-size: 14px;
		line-height: 1.8;
		letter-spacing: .06em;
	}
	body.page-template-page-business .ms-bizken-logo {
		width: 150px !important;
		margin-top: 0;
	}
	body.page-template-page-business .ms-biz-section .ms-stats {
		gap: 14px;
		margin: 24px 0 0;
	}
	body.page-template-page-business .ms-award-strip {
		margin-top: 24px;
	}
	body.page-template-page-business .ms-stats__badge {
		max-width: 112px;
	}
	body.page-template-page-business .ms-stats--bizken .ms-stats__badge {
		max-width: 114px;
	}
	body.page-template-page-business .ms-biz-section__side .ms-cta-buttons {
		margin-top: 22px;
		text-align: center;
	}
	body.page-template-page-business .ms-cta-link {
		position: relative;
		min-width: 244px;
		padding: 8px 28px;
		border: 2px solid #1688A8;
		border-radius: 0;
		background: #1D9AB8;
		color: #fff;
		font-size: 16px;
		line-height: 1.45;
		letter-spacing: .08em;
	}
	body.page-template-page-business .ms-biz-section__side .ms-cta-link::after {
		content: "";
		position: absolute;
		inset: 4px;
		border: 1px solid rgba(255,255,255,.85);
		pointer-events: none;
	}
	body.page-template-page-business .ms-biz-section--agent .ms-biz-section__body {
		grid-template-columns: 360px 1fr;
		gap: 90px;
	}
	body.page-template-page-business .ms-biz-section__catch {
		font-size: 20px;
		line-height: 1.7;
		margin-bottom: 18px;
	}
	body.page-template-page-business .ms-roles {
		margin-top: 20px;
		text-align: center;
	}
	body.page-template-page-business .ms-biz-section__closing {
		grid-template-columns: minmax(0, 1fr) 280px;
		gap: 74px;
		margin-top: 70px;
	}
	body.page-template-page-business .ms-biz-section__sub-catch {
		font-size: 23px;
		margin-bottom: 14px;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-cta-buttons {
		margin-top: 38px;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
		display: flex;
		min-width: 244px;
		padding: 14px 24px;
		background: #fff;
		color: var(--c-navy);
		border: 1px solid var(--c-navy);
		border-radius: 0;
		font-size: 16px;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-cta-link + .ms-cta-link {
		margin-top: 18px;
	}
	body.page-template-page-business .ms-interview,
	body.page-template-page-business .ms-story {
		padding-left: 0;
		padding-right: 0;
	}
	body.page-template-page-business .ms-interview .ms-container,
	body.page-template-page-business .ms-story .ms-container {
		max-width: 804px;
		padding: 0;
	}
	body.page-template-page-business .ms-interview {
		padding-top: 0;
		padding-bottom: 92px;
	}
	body.page-template-page-business .ms-story {
		padding-top: 64px;
		padding-bottom: 96px;
	}
	body.page-template-page-business .ms-interview .ms-heading-jp,
	body.page-template-page-business .ms-story .ms-heading-jp {
		margin-bottom: 48px;
	}
	body.page-template-page-business .ms-section__cta {
		margin-top: 66px;
	}
	body.page-template-page-business .ms-btn {
		position: relative;
		min-width: 240px;
		padding: 7px 32px;
		border: 1px solid var(--c-text);
		font-size: 22px;
	}
	body.page-template-page-business .ms-btn::before {
		content: "";
		position: absolute;
		inset: 5px;
		border: 1px solid var(--c-text);
		pointer-events: none;
	}
	body.page-template-page-business .ms-navcards {
		margin-bottom: 0;
	}
}

@media (min-width: 769px) and (max-width: 1100px) {
	.ms-biz-lead {
		padding: 66px 0 64px;
	}
	.ms-biz-lead__body {
		font-size: 18px;
		line-height: 1.9;
	}
	.ms-biz-section {
		padding: 54px 0;
	}
	body.page-template-page-business .ms-biz-section--bizken {
		padding: 69px 0;
	}
	.ms-biz-section__heading {
		font-size: 20px;
		padding-bottom: 10px;
		margin-bottom: 30px;
	}
	.ms-biz-section__body {
		gap: 36px;
	}
	.ms-biz-section__text {
		font-size: 12px;
		line-height: 1.75;
	}
	.ms-bizken-logo {
		width: 118px !important;
		margin-top: 8px;
	}
	.ms-biz-section .ms-stats {
		gap: 16px;
		margin: 24px 0;
	}
	.ms-biz-section .ms-stats__item {
		min-width: 0;
	}
	.ms-stats__badge,
	.ms-stats--bizken .ms-stats__badge {
		max-width: 130px;
	}
	.ms-biz-section__catch {
		font-size: 18px;
		margin-bottom: 16px;
	}
	.ms-biz-section__sub-catch {
		font-size: 18px;
		margin: 24px 0 12px;
	}
	.ms-biz-section__closing {
		grid-template-columns: minmax(0, 1fr) 260px;
		gap: 36px;
		margin-top: 24px;
	}
	body.page-template-page-business .ms-biz-section__closing {
		grid-template-columns: minmax(0, 1fr) 320px;
		gap: 42px;
		align-items: start;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-biz-section__text {
		max-width: none;
	}
	.ms-biz-section__closing .ms-cta-buttons {
		margin-top: 28px;
	}
	.ms-roles {
		margin: 18px 0;
	}
	.ms-roles__heading {
		font-size: 13px;
	}
	.ms-roles__list {
		font-size: 15px;
	}
	.ms-cta-buttons {
		gap: 12px;
		margin-top: 20px;
	}
	.ms-cta-link {
		min-width: 240px;
		padding: 12px 24px;
		font-size: 14px;
	}
	body.page-template-page-business .ms-story {
		padding-bottom: 212px;
	}
	body.page-template-page-business .ms-navcards {
		margin-bottom: 0;
	}
	body.page-template-page-business .ms-navcard {
		min-height: 240px;
	}
	body.page-template-page-business .ms-footer {
		padding-bottom: 68px;
	}
}

/* CTAボタンリンク (ネイビーボーダー、最大400px、" 》 ビズケンサイトへ" 様式) */
.ms-cta-buttons {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: flex-end;
	margin-top: 28px;
}
.ms-cta-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--ff-sans);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: .12em;
	color: var(--c-navy);
	padding: 16px 36px;
	border: 1px solid #B7DEED;
	border-radius: 6px;
	min-width: 320px;
	background: #DDF1F8;
	transition: background .2s ease;
}
.ms-cta-link:hover { background: #C8E7F2; }
.ms-cta-link::before { content: "》"; padding-right: 4px; }
.ms-cta-link--filled {
	background: var(--c-navy);
	color: var(--c-white);
}

/* 対象職種ブロック (中央寄せ「対象職種」見出し + 中央寄せ職種リスト) */
.ms-roles {
	text-align: center;
	margin: 24px 0;
}
.ms-roles__heading {
	font-family: var(--ff-sans);
	font-size: 18px; /* 実測 Light 18px */
	font-weight: 300;
	letter-spacing: .15em;
	color: var(--c-navy);
	margin-bottom: 4px;
}
.ms-roles__list {
	font-family: var(--ff-sans);
	font-size: 21px; /* 実測 Light 21px */
	font-weight: 300;
	letter-spacing: .1em;
	line-height: 1.6;
	color: var(--c-text);
}

@media (max-width: 768px) {
	.ms-biz-lead {
		padding: 30px 0 32px;
	}
	.ms-biz-lead__body,
	.ms-biz-lead p {
		font-size: 13px;
		line-height: 1.85;
		letter-spacing: .05em;
	}
	.ms-biz-lead__line {
		display: inline;
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
		padding-bottom: 1px;
		background-size: 100% 2px;
	}
	.ms-biz-section {
		padding: 42px 0;
	}
	.ms-biz-section__heading {
		font-size: 18px;
		line-height: 1.55;
		letter-spacing: .08em;
		padding-bottom: 8px;
		margin-bottom: 18px;
	}
	.ms-biz-section__body { grid-template-columns: 1fr; gap: 14px; }
	.ms-bizken-logo {
		width: 96px !important;
		margin-top: 8px;
	}
	.ms-biz-section__text {
		font-size: 12px;
		line-height: 1.75;
		letter-spacing: .06em;
	}
	.ms-biz-section__closing { grid-template-columns: 1fr; gap: 16px; margin-top: 20px; }
	.ms-biz-section__closing .ms-cta-buttons { margin-top: 0; }
	.ms-biz-section__catch {
		font-size: 15px;
		line-height: 1.7;
		margin-bottom: 12px;
	}
	.ms-biz-section__sub-catch {
		font-size: 18px;
		line-height: 1.55;
		margin: 20px 0 12px;
		text-align: center;
	}
	.ms-stats { gap: 16px; }
	.ms-stats__item { min-width: 90px; }
	.ms-stats__icon { width: 70px; }
	.ms-stats__num { font-size: 20px; }
	.ms-biz-section .ms-stats {
		gap: 8px;
		flex-wrap: nowrap;
		margin: 18px 0;
	}
	.ms-biz-section .ms-stats__item {
		min-width: 0;
		flex: 1 1 0;
		min-height: 0;
		padding-top: 0;
	}
	.ms-stats__badge { width: 100%; max-width: 110px; }
	.ms-roles {
		margin: 12px 0;
	}
	.ms-roles__heading {
		font-size: 13px;
	}
	.ms-roles__list {
		font-size: 15px;
		line-height: 1.65;
	}
	.ms-cta-buttons {
		align-items: center;
		gap: 10px;
		margin-top: 16px;
	}
	.ms-cta-link {
		min-width: 0;
		width: min(220px, 100%);
		font-size: 12px;
		padding: 8px 14px;
	}
}

/* ---- 14d. フォーム拡張 (採用問い合わせ等のHTML直書きフォーム) ---- */
.ms-form__lead {
	text-align: center;
	margin-bottom: 24px;
	font-size: 14px;
	color: var(--c-text-sub);
}
.ms-form__row {
	margin-bottom: 28px;
}
.ms-form__row > legend,
.ms-form__row > label {
	display: block;
	font-weight: 700;
	margin-bottom: 8px;
	font-size: 14px;
}
.ms-form__checklist {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 16px;
	font-size: 14px;
}
.ms-section--recruit-contact .ms-form__checklist {
	grid-template-columns: 1fr;
	padding-left: 24px;
}
.ms-contact .ms-form .wpcf7-form .wpcf7-checkbox,
.ms-contact .ms-form .wpcf7-form ul.wpcf7-list-item-wrap {
	padding-left: 24px;
}
.ms-contact .ms-form .wpcf7-checkbox .wpcf7-list-item {
	display: block;
	margin: 0 0 6px 0;
}
.ms-form__checklist label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
}
.ms-form__submit {
	text-align: center;
	margin: 32px auto 0;
}
.ms-form__submit button {
	display: inline-block;
	min-width: 280px;
	padding: 16px;
	background: #2D2D2D;
	color: var(--c-white);
	border: none;
	font-size: 15px;
	letter-spacing: .2em;
	cursor: pointer;
}

/* CF7 セレクタ上書き */
.ms-form .wpcf7-list-item { margin: 0 16px 8px 0; }
.ms-form .wpcf7-spinner { display: none; }
.ms-form .wpcf7-response-output {
	border: 1px solid var(--c-red);
	color: var(--c-red);
	background: #fff5f5;
	padding: 12px 16px;
	margin-top: 16px;
}

/* ============================================================
   モバイル (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {
	:root {
		--gutter: 20px;
		--section-py: 56px;
	}

	.ms-heading-en { font-size: 32px; }
	.ms-heading-jp { font-size: 22px; text-align: center; letter-spacing: .08em; }
	.ms-philosophy__catch { font-size: 22px; }
	.ms-philosophy__body { font-size: 16px; line-height: 2.1; }
	.ms-philosophy__body span {
		display: inline;
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
		padding-bottom: 2px;
		background-image: linear-gradient(90deg, #9EF9FB 0%, #22408D 100%);
		background-repeat: no-repeat;
		background-position: 0 100%;
		background-size: 100% 2.5px;
	}
	.ms-message { grid-template-columns: 1fr; }
	.ms-message-section .ms-container {
		position: relative;
	}
	.ms-message__photo {
		margin-top: 0;
		min-height: 520px;
		padding-top: 100px;
	}
	.ms-message__photo img {
		object-position: center 40%;
	}
	.ms-message__photo { min-height: 360px; }
	.ms-message__photo::before { content: none; }
	.ms-message__sub { width: 100%; bottom: 20px; padding-right: 20px; }
	.ms-message__body { padding: 36px 20px 44px; }
	.ms-message__body p { font-size: 15px; line-height: 1.95; }
	.ms-info-table { padding: 56px 28px; }
	.ms-info-table dl {
		grid-template-columns: 112px 1fr;
		column-gap: 12px;
		row-gap: 12px;
	}
	.ms-info-table dt,
	.ms-info-table dd {
		font-size: 10px;
		line-height: 1.9;
	}
	.ms-form {
		padding: 32px 24px;
	}
	.ms-form .wpcf7-form {
		margin: 0 !important;
	}
	.ms-form label,
	.ms-contact .ms-form .wpcf7-form > p,
	.ms-form__row > legend,
	.ms-form__row > label {
		font-size: 13px;
	}
	.ms-contact .ms-form .wpcf7-form > p,
	.ms-form__row {
		margin-bottom: 18px;
	}
	.ms-form input[type="text"],
	.ms-form input[type="email"],
	.ms-form input[type="tel"],
	.ms-form textarea {
		padding: 10px 12px;
		font-size: 14px;
	}
	.ms-form textarea {
		min-height: 170px;
	}
	.ms-contact .ms-form textarea {
		height: 180px;
	}
	.ms-form input[type="submit"],
	.ms-form__submit button {
		min-width: 0;
		width: 180px;
		padding: 11px 16px;
		font-size: 13px;
	}
	.ms-form__submit {
		margin-top: 24px;
	}
	.ms-contact .ms-form {
		padding: 24px 16px;
	}
	.ms-contact .ms-form .wpcf7-form > p {
		margin-bottom: 6px;
		font-size: 10px;
		line-height: 1.45;
	}
	.ms-contact .ms-form .wpcf7-form > p::before {
		margin-bottom: 4px;
	}
	.ms-contact .ms-form input[type="text"],
	.ms-contact .ms-form input[type="email"],
	.ms-contact .ms-form input[type="tel"] {
		height: 24px;
		padding: 5px 8px;
	}
	.ms-contact .ms-form textarea {
		height: 190px;
		padding: 8px;
	}
	.ms-contact .ms-form .wpcf7-list-item {
		display: block;
		margin: 0 0 2px;
		font-size: 10px;
		line-height: 1.45;
	}
	.ms-contact .ms-form input[type="submit"] {
		width: 140px;
		height: 32px;
		min-height: 0;
		margin-top: 12px;
		padding: 8px 14px;
		font-size: 10px;
		line-height: 1.3;
	}
	.ms-section--recruit-contact .ms-form {
		padding: 24px 16px;
	}
	.ms-section--recruit-contact .ms-form__row {
		margin-bottom: 6px;
	}
	.ms-section--recruit-contact .ms-form__row > legend,
	.ms-section--recruit-contact .ms-form__row > label {
		margin-bottom: 4px;
		font-size: 10px;
		line-height: 1.45;
	}
	.ms-section--recruit-contact .ms-form input[type="text"],
	.ms-section--recruit-contact .ms-form input[type="email"],
	.ms-section--recruit-contact .ms-form input[type="tel"] {
		height: 24px;
		padding: 5px 8px;
	}
	.ms-section--recruit-contact .ms-form__checklist {
		gap: 2px;
		font-size: 10px;
		line-height: 1.45;
	}
	.ms-section--recruit-contact .ms-form__checklist label {
		gap: 6px;
	}
	.ms-section--recruit-contact .ms-form textarea {
		height: 190px;
		padding: 8px;
	}
	.ms-section--recruit-contact .ms-form__submit {
		margin-top: 12px;
	}
	.ms-section--recruit-contact .ms-form__submit button {
		width: 140px;
		height: 32px;
		min-width: 0;
		padding: 8px 14px;
		font-size: 10px;
		line-height: 1.3;
	}

	/* Header */
	.ms-header__nav { display: none; }
	.ms-header__toggle { display: flex; }
	.ms-header__inner { padding: 14px var(--gutter); }
	.ms-header__logo img { height: 36px; }

	/* Hero: Illustrator SP artboard crop */
	.ms-top-hero {
		aspect-ratio: 480 / 720;
		width: 100%;
		background-size: cover;
		background-repeat: no-repeat;
		background-position: 85% center;
		background-color: #F5F5F5;
	}

	/* つなぐ: 縦並び */
	.ms-intro__inner { grid-template-columns: 1fr; gap: 20px; }
	.ms-intro__text { padding: 0 4px; text-align: left; }
	.ms-intro__text::before { top: -38px; left: 0; font-size: 40px; letter-spacing: .16em; z-index: 0; }
	.ms-intro__text > * { position: relative; z-index: 1; }
	.ms-intro__text .ms-heading-jp { text-align: center; margin-bottom: 16px; }
	.ms-intro__text p { font-size: 16px; line-height: 1.85; font-weight: 500; }
	.ms-intro__media { margin: 0 calc(-1 * var(--gutter)); }
	.ms-eyebrow-en {
		font-size: 38px;
		text-align: center;
		margin-bottom: -26px;
		color: rgba(0, 63, 102, .06);
	}

	/* SP sequence follows Illustrator: Hero -> Intro -> Nav cards -> Award -> Interview -> Story -> News */
	body.home.mirai-renewal .ms-content { display: flex; flex-direction: column; }
	body.home.mirai-renewal .ms-top-hero { order: 1; }
	body.home.mirai-renewal .ms-intro { order: 2; }
	body.home.mirai-renewal .ms-navcards { order: 3; }
	body.home.mirai-renewal .ms-award { order: 4; }
	body.home.mirai-renewal .ms-interview { order: 5; }
	body.home.mirai-renewal .ms-story { order: 6; }
	body.home.mirai-renewal .ms-navcards--contact-sp { order: 7; }
	body.home.mirai-renewal .ms-news { order: 8; }

	/* Award: 横並びのまま縮小 */
	.ms-award { padding: 44px 0; }
	.ms-award__list { gap: 12px; justify-content: space-around; }
	.ms-award__item { min-width: 0; flex: 1; }
	.ms-award__crest { width: 64px; }
	.ms-award__title { font-size: 10px; }
	.ms-award__period { font-size: 10px; }

	/* インタビュー: 3枚縦並び + 区切り線 */
	.ms-cards { grid-template-columns: 1fr; gap: 32px; }
	.ms-interview .ms-cards .ms-card { padding-bottom: 32px; border-bottom: 1px solid rgba(0, 0, 0, .15); }
	.ms-interview .ms-cards .ms-card:last-child { border-bottom: none; padding-bottom: 0; }
	.ms-interview .ms-heading-jp,
	.ms-story .ms-heading-jp { text-align: center; }

	/* SP も PC と同じ画像サムネカードを表示（縦積み） */
	.ms-story__cards-pc {
		display: grid;
		grid-template-columns: 1fr;
		gap: 24px;
		padding-top: 28px;
	}
	/* SP TOP: 4分割ナビ内の問い合わせカードは非表示 (Story下の単独カードに移動) */
	body.home.mirai-renewal .ms-navcards:not(.ms-navcards--contact-sp) .ms-navcard--contact { display: none; }
	/* SP TOP: Story下の問い合わせ単独カードを表示 */
	.ms-navcards--contact-sp { display: grid; grid-template-columns: 1fr; }
	.ms-navcards--contact-sp .ms-navcard--contact {
		grid-column: 1 / -1;
		min-height: 200px;
		background: #CCCCCC;
	}
	/* ナビカード: 2x2 (Illustrator準拠 / カラー背景 + 大きめテキスト) */
	.ms-navcards, .ms-navcards--3 { grid-template-columns: 1fr 1fr; gap: 0; }
	.ms-navcard {
		min-height: 200px;
		padding: 28px 28px 64px;
		border: none;
		color: var(--c-text);
	}
	.ms-navcard--business, .ms-navcard--contact { grid-column: 1 / -1; min-height: 220px; }
	/* business/company/contact の3枚構成（single-story 等）では company も全幅にして空きセルを防ぐ。
	   recruit を含む3枚構成（business頁・archive）は company+recruit の2列を維持 */
	.ms-navcards--3:not(:has(.ms-navcard--recruit)) .ms-navcard--company { grid-column: 1 / -1; }
	.ms-navcard__jp { font-size: 22px; line-height: 1.4; }
	.ms-navcard__en { font-size: 13px; margin-top: 8px; letter-spacing: .04em; }
	.ms-navcard__more {
		right: 24px; bottom: 24px;
		font-size: 14px;
		color: var(--c-white);
		gap: 12px;
		font-weight: 500;
	}
	.ms-navcard__more::after {
		content: "›";
		width: 28px; height: 28px;
		background: var(--c-white);
		color: var(--c-navy);
		font-size: 20px;
		line-height: 1;
		font-weight: 600;
	}

	/* ニュース */
	.ms-newslist__item { flex-direction: column; gap: 4px; padding: 14px 0; }
	.ms-newslist__date { min-width: 0; font-size: 12px; }
	.ms-newslist__title { font-size: 14px; }

	body.page-template-page-business .ms-page-hero {
		aspect-ratio: auto;
		height: 300px;
		background-color: var(--c-white);
		background-repeat: no-repeat;
		background-size: 380px auto;
		background-position: center 38px;
	}
	body.page-template-page-business .ms-biz-section {
		padding: 34px 0 36px;
	}
	body.page-template-page-business .ms-biz-section__heading {
		margin-bottom: 14px;
	}
	body.page-template-page-business .ms-biz-section__body {
		gap: 12px;
	}
	body.page-template-page-business .ms-biz-section__text {
		line-height: 1.65;
	}
	body.page-template-page-business .ms-biz-section .ms-stats {
		margin: 14px 0;
	}
	body.page-template-page-business .ms-biz-section__side .ms-cta-buttons,
	body.page-template-page-business .ms-biz-section__closing .ms-cta-buttons {
		margin-top: 12px;
	}
	body.page-template-page-business .ms-biz-section__closing {
		gap: 12px;
		margin-top: 14px;
	}
	body.page-template-page-business .ms-biz-section__sub-catch {
		margin: 14px 0 8px;
	}
	body.page-template-page-business .ms-interview {
		padding: 46px 0 42px;
	}
	body.page-template-page-business .ms-story {
		padding: 48px 0 52px;
	}
	body.page-template-page-business .ms-interview .ms-heading-jp,
	body.page-template-page-business .ms-story .ms-heading-jp {
		margin-bottom: 24px;
	}
	body.page-template-page-business .ms-section__cta {
		margin-top: 24px;
	}
	body.page-template-page-business .ms-btn {
		min-width: 0;
		width: 180px;
		padding: 6px 18px;
		font-size: 16px;
		line-height: 1.35;
	}

	/* フッター */
	.ms-footer { padding: 36px 0 16px; }
	.ms-footer__nav ul { flex-direction: column; gap: 10px; text-align: center; margin-bottom: 24px; }
	.ms-footer__body { flex-direction: column; gap: 18px; align-items: center; text-align: center; }
	.ms-footer__logo img { height: 54px; }
	.ms-footer__info { grid-template-columns: auto 1fr; font-size: 10px; line-height: 1.45; row-gap: 6px; text-align: left; }
	/* SNSはnavとbodyの間に配置。リセット(ul margin:0)に負けるため !important で上下に間隔を確保 */
	.ms-footer__sns { justify-content: center; margin-top: 32px !important; margin-bottom: 32px !important; }
	.ms-footer__copy { margin-top: 28px; font-size: 10px; }
	/* contact/recruit-contact のフッターpadding上書きは撤去（共通フッターに統一） */

	body.page-template-page-company .ms-message-section {
		padding-top: 0 !important;
	}
	body.page-template-page-company .ms-message-section .ms-container {
		position: relative !important;
	}
	body.page-template-page-company .ms-message-section .ms-eyebrow-en--message {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 20px 0 !important;
		background: transparent !important;
		color: #686A6E !important;
		font-size: clamp(44px, 12vw, 72px) !important;
		font-weight: 400;
		font-family: Impact, "Anton", "Arial Black", "Helvetica Neue", sans-serif !important;
		text-align: center !important;
		line-height: 1.1 !important;
		letter-spacing: 0.02em;
		display: block !important;
		z-index: 10 !important;
		box-sizing: border-box;
	}
	body.page-template-page-company .ms-message__photo {
		min-height: 460px !important;
		height: auto !important;
		max-height: none !important;
		overflow: hidden !important;
		position: relative !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
	body.page-template-page-company .ms-message__photo img {
		position: relative !important;
		z-index: 1 !important;
	}
	body.page-template-page-company .ms-message__photo img {
		position: relative !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: center !important;
		display: block;
		z-index: 1 !important;
	}
	body.page-template-page-company .ms-message__sub {
		position: absolute !important;
		bottom: 18px !important;
		right: 0 !important;
		top: auto !important;
		left: 0 !important;
		width: auto !important;
		padding: 0 20px 0 0 !important;
		margin: 0 !important;
		font-size: 15px !important;
		font-weight: 700 !important;
		letter-spacing: .18em !important;
		color: #fff !important;
		text-shadow: 0 2px 6px rgba(0,0,0,.7), 0 0 4px rgba(0,0,0,.7) !important;
		z-index: 5 !important;
		text-align: right !important;
		white-space: nowrap !important;
	}
	body.page-template-page-company .ms-message__photo::before {
		font-size: 54px;
	}
	body.page-template-page-company .ms-message__sub.x-removed {
		display: none;
	}
	body.page-template-page-company .ms-message__body {
		padding: 28px 24px 34px;
	}
	body.page-template-page-company .ms-message__body p {
		font-size: 14px;
		line-height: 1.85;
		margin-bottom: 0 !important;
		display: inline;
	}
	body.page-template-page-company .ms-message__body p.ms-message__signature {
		display: block;
		margin-top: 16px !important;
		text-align: right;
	}
	/* Company SP: 事業紹介+採用情報 (2col) + 問い合わせ (full width) */
	body.page-template-page-company .ms-navcards--3 {
		grid-template-columns: 1fr 1fr !important;
		gap: 0;
	}
	body.page-template-page-company .ms-navcard--business {
		grid-column: auto;
		min-height: 200px;
	}
	body.page-template-page-company .ms-navcard--recruit {
		min-height: 200px;
	}
	body.page-template-page-company .ms-navcard--contact {
		grid-column: 1 / -1;
		min-height: 200px;
	}
	/* company のフッター上書きは撤去（全ページ共通フッターに統一） */
}

/* Codex finishing pass: prevent mobile overflow and keep the top drawer toggle visible. */
body.mirai-renewal { overflow-x: hidden; }
.grecaptcha-badge {
	visibility: hidden !important;
}
@media (max-width: 768px) {
	body.home.mirai-renewal .ms-header__toggle {
		display: flex !important;
		position: fixed;
		right: 16px;
		top: 62px;
		z-index: 10000;
		width: 30px;
		height: 18px;
		padding: 0;
		background: transparent !important;
	}
	body.home.mirai-renewal .ms-header__toggle span {
		background: var(--c-navy) !important;
	}
	body.home.mirai-renewal .ms-header__nav { display: none !important; }
	.ms-award__title, .ms-award__period { overflow-wrap: anywhere; }
}

/* 旧ハンバーガー用の透明オーバーレイ擬似要素は撤去（共通トグルのクリックを奪うため） */
body.home.mirai-renewal .ms-header::after { display: none; }

/* Footer is a shared site component. Keep dimensions identical across templates. */
@media (min-width: 769px) {
	body.mirai-renewal .ms-footer {
		padding: 56px 0 31px;
	}
	body.mirai-renewal .ms-footer .ms-container {
		max-width: 820px;
		padding: 0;
	}
	body.mirai-renewal .ms-footer__nav {
		margin-bottom: 0;
		transform: none;
	}
	body.mirai-renewal .ms-footer__nav ul {
		gap: 22px;
		margin-bottom: 0; /* SNSが nav と body の間に入るため、間隔はSNSの上下マージンで対称に取る */
	}
	body.mirai-renewal .ms-footer__nav a {
		font-size: 13px;
	}
	body.mirai-renewal .ms-footer__body {
		gap: 58px;
		padding-left: 0;
	}
	body.mirai-renewal .ms-footer__logo img {
		height: 62px;
	}
	body.mirai-renewal .ms-footer__copy {
		margin-top: 54px;
	}
}

@media (max-width: 768px) {
	body.mirai-renewal .ms-footer {
		padding: 36px 0 16px;
	}
	body.mirai-renewal .ms-footer__nav ul {
		flex-direction: column;
		gap: 10px;
		text-align: center;
		margin-bottom: 24px;
	}
	body.mirai-renewal .ms-footer__nav a {
		font-size: 14px;
		line-height: 1.4;
	}
	body.mirai-renewal .ms-footer__body {
		flex-direction: column;
		gap: 18px;
		align-items: center;
		text-align: center;
	}
	body.mirai-renewal .ms-footer__logo img {
		height: 54px;
	}
	body.mirai-renewal .ms-footer__info {
		grid-template-columns: auto 1fr;
		font-size: 10px;
		line-height: 1.45;
		row-gap: 6px;
		text-align: left;
	}
	body.mirai-renewal .ms-footer__copy {
		margin-top: 28px;
		font-size: 10px;
	}
}

/* Business headings: Illustrator-style underline, not a full-width border. */
body.page-template-page-business .ms-biz-section__heading {
	display: inline-block;
	width: auto;
	max-width: 100%;
	border-bottom: 0;
	padding-bottom: 6px;
	color: #000;
	background-image: linear-gradient(90deg, #76E4EC 0%, #22408D 100%);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: calc(100% + 8px) 4px;
}
body.page-template-page-business .ms-biz-section--agent .ms-biz-section__heading {
	background-image: linear-gradient(90deg, #22408D 0%, #22408D 100%);
}

/* Keep Business page button styling consistent across PC/SP. */
body.page-template-page-business .ms-cta-link {
	position: relative;
	min-width: 244px;
	width: auto;
	padding: 8px 28px;
	border: 2px solid #1688A8;
	border-radius: 0;
	background: #1D9AB8;
	color: #fff;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: 16px;
	line-height: 1.45;
	letter-spacing: .08em;
}
body.page-template-page-business .ms-biz-section__side .ms-cta-link::after {
	content: "";
	position: absolute;
	inset: 4px;
	border: 1px solid rgba(255,255,255,.85);
	pointer-events: none;
}
body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
	display: flex;
	min-width: 244px;
	width: auto;
	padding: 14px 24px;
	background: #fff;
	color: var(--c-navy);
	border: 1px solid var(--c-navy);
	border-radius: 0;
	font-size: 16px;
}
body.page-template-page-business .ms-biz-section__closing .ms-cta-link::after {
	content: none;
}
body.page-template-page-business .ms-btn {
	position: relative;
	min-width: 240px;
	width: auto;
	padding: 7px 32px;
	border: 1px solid var(--c-text);
	border-radius: 0;
	background: #fff;
	font-size: 22px;
	line-height: 1.4;
}
body.page-template-page-business .ms-btn::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var(--c-text);
	pointer-events: none;
}

@media (max-width: 768px) {
	body.page-template-page-business .ms-cta-buttons {
		align-items: center;
	}
	body.page-template-page-business .ms-cta-link,
	body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
		min-width: min(244px, 100%);
	}
	body.page-template-page-business .ms-btn {
		min-width: min(240px, 100%);
	}
}

/* Business page visual QA fixes from Illustrator review comments. */
body.page-template-page-business .ms-biz-section__side .ms-cta-buttons {
	align-items: flex-start;
	text-align: left;
}
body.page-template-page-business .ms-biz-section__catch {
	white-space: nowrap;
}
body.page-template-page-business .ms-roles__heading {
	color: var(--c-text);
}
body.page-template-page-business .ms-biz-section__closing .ms-cta-buttons {
	align-items: stretch;
}
body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
	width: 280px;
	min-width: 280px;
	max-width: 280px;
	font-size: 15px;
	letter-spacing: .06em;
}
body.page-template-page-business .ms-interview .ms-section__cta,
body.page-template-page-business .ms-story .ms-section__cta {
	margin-top: 88px;
}
body.page-template-page-business .ms-navcard__more {
	right: 26px;
	gap: 12px;
}
/* business のフッターロゴ拡大(width:210px)は撤去（共通フッターに統一） */
body.page-template-page-business .ms-biz-section__side .ms-cta-link {
	border-color: #2798B7;
	background: #2798B7;
}
body.page-template-page-business .ms-navcard--company {
	background: #9FCAFF;
}
body.page-template-page-business .ms-navcard--recruit {
	background: #B7DEED;
}
body.page-template-page-business .ms-navcard--contact {
	background: #C8B1B5;
}
body.page-template-page-business .ms-footer {
	background: #003F66;
}
body.page-template-page-business .ms-page-hero__inner {
	align-items: flex-start;
}
body.page-template-page-business .ms-page-hero__en {
	background: #0056A1;
	padding: 10px 44px 11px;
}
body.page-template-page-business .ms-page-hero__jp {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(46px, 5.2vw, 74px);
	font-weight: 500;
	letter-spacing: .04em;
	line-height: 1.05;
	padding: 18px 38px 22px;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.page-template-page-business .ms-biz-section__side .ms-cta-buttons {
		align-items: flex-start;
		padding-left: 0;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
		width: 280px;
		min-width: 280px;
		max-width: 280px;
		font-size: 15px;
		letter-spacing: .06em;
	}
	body.page-template-page-business .ms-biz-section__catch {
		font-size: 18px;
		letter-spacing: .04em;
		white-space: nowrap;
	}
	body.page-template-page-business .ms-page-hero__jp {
		font-size: 58px;
		padding: 20px 42px 24px;
	}
	body.page-template-page-business .ms-interview .ms-section__cta,
	body.page-template-page-business .ms-story .ms-section__cta {
		margin-top: 76px;
	}
}

@media (max-width: 768px) {
	body.page-template-page-business .ms-biz-section__catch {
		white-space: normal;
	}
	body.page-template-page-business .ms-biz-section__side .ms-cta-buttons,
	body.page-template-page-business .ms-biz-section__closing .ms-cta-buttons {
		align-items: center;
	}
	body.page-template-page-business .ms-biz-section__closing .ms-cta-link {
		width: min(280px, 100%);
		min-width: min(280px, 100%);
		max-width: 280px;
	}
	body.page-template-page-business .ms-page-hero__inner {
		align-items: flex-start;
	}
	body.page-template-page-business .ms-page-hero__jp {
		font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
		font-size: 26px;
		letter-spacing: .04em;
		padding: 10px 18px 12px;
	}
}

/* Business page annotation refinements: hero label and responsive vertical rhythm. */
body.page-template-page-business .ms-biz-section__sub-catch {
	margin-bottom: 22px;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.page-template-page-business .ms-page-hero__en {
		padding: 5px 24px 6px;
	}
	body.page-template-page-business .ms-page-hero__jp {
		padding: 8px 17px 10px;
	}
	body.page-template-page-business .ms-biz-section__heading {
		margin-bottom: 28px;
	}
	body.page-template-page-business .ms-biz-section__sub-catch {
		margin-bottom: 18px;
	}
	body.page-template-page-business .ms-story {
		padding-top: 36px;
	}
}

@media (max-width: 768px) {
	body.page-template-page-business .ms-page-hero__en {
		padding: 5px 12px 6px;
	}
	body.page-template-page-business .ms-page-hero__jp {
		padding: 8px 14px 10px;
	}
	body.page-template-page-business .ms-biz-section__heading {
		margin-bottom: 22px;
	}
	body.page-template-page-business .ms-biz-section__sub-catch {
		margin-bottom: 14px;
	}
	body.page-template-page-business .ms-story {
		padding-top: 34px;
	}
}

/* Shared lower-page hero label sizing at tablet / narrow desktop widths. */
@media (min-width: 769px) and (max-width: 1100px) {
	.ms-page-hero__en {
		font-size: 22px;
	}
	.ms-page-hero__jp,
	body.page-template-page-company .ms-page-hero__jp,
	body.page-template-page-recruit-contact .ms-page-hero__jp {
		font-size: 42px;
	}
	body.page-template-page-business .ms-page-hero__jp {
		font-size: 42px;
	}
}

/* Business page annotation fixes: CTA typography, roles wrapping, transparent More. */
body.page-template-page-business .ms-roles__list {
	font-size: 19px;
	line-height: 1.55;
	letter-spacing: .05em;
	white-space: nowrap;
}
body.page-template-page-business .ms-biz-section__side .ms-cta-link {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
}
body.page-template-page-business .ms-biz-section__closing .ms-cta-link,
body.page-template-page-business .ms-biz-section__closing .ms-cta-link:hover {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	background: transparent;
}
body.page-template-page-business .ms-story .ms-btn,
body.page-template-page-business .ms-story .ms-btn:hover {
	background: transparent;
}
body.page-template-page-business .ms-story .ms-btn::before {
	background: transparent;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.page-template-page-business .ms-roles__list {
		font-size: 18px;
		letter-spacing: .03em;
	}
}

@media (max-width: 768px) {
	body.page-template-page-business .ms-roles__list {
		font-size: 16px;
		white-space: normal;
	}
}

/* 下層ページヒーロー: 画像全体を表示 (1201:651 アスペクト比) */
@media (min-width: 769px) {
	body.page-template-page-business .ms-page-hero,
	body.page-template-page-company .ms-page-hero,
	body.page-template-page-contact .ms-page-hero,
	body.page-template-page-recruit-contact .ms-page-hero {
		aspect-ratio: 1201 / 651;
		height: auto;
		max-height: none;
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		background-color: #F5F5F5;
	}
	body.page-template-page-business .ms-page-hero__inner,
	body.page-template-page-company .ms-page-hero__inner,
	body.page-template-page-contact .ms-page-hero__inner,
	body.page-template-page-recruit-contact .ms-page-hero__inner {
		right: 48px;
		bottom: 48px;
		left: auto;
		transform: none;
		align-items: flex-start;
		text-align: left;
		gap: 10px;
	}
	body.page-template-page-business .ms-page-hero__en,
	body.page-template-page-company .ms-page-hero__en,
	body.page-template-page-contact .ms-page-hero__en,
	body.page-template-page-recruit-contact .ms-page-hero__en {
		background: #0056A1;
		font-size: 22px;
		line-height: 1.25;
		letter-spacing: .02em;
		padding: 5px 22px 6px;
	}
	body.page-template-page-business .ms-page-hero__jp,
	body.page-template-page-company .ms-page-hero__jp,
	body.page-template-page-contact .ms-page-hero__jp,
	body.page-template-page-recruit-contact .ms-page-hero__jp {
		font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
		font-size: 42px;
		font-weight: 500;
		line-height: 1.12;
		letter-spacing: .02em;
		padding: 8px 18px 10px;
	}

	body.page-template-page-company .ms-philosophy {
		padding-top: 44px;
		padding-bottom: 124px;
	}
	body.page-template-page-company .ms-eyebrow-en--center {
		width: min(640px, 60vw);
		margin: 0 auto -8px;
	}
	body.page-template-page-company .ms-philosophy__heading {
		font-size: 28px;
		margin-bottom: 48px;
	}
	body.page-template-page-company .ms-philosophy__catch {
		margin-bottom: 28px;
	}
	body.page-template-page-company .ms-info-table {
		padding: 42px 88px 52px;
	}
	body.page-template-page-company .ms-info-table__title {
		font-size: 22px;
		margin-bottom: 48px;
	}
	body.page-template-page-company .ms-info-table dl {
		grid-template-columns: 120px minmax(0, 1fr);
		row-gap: 6px;
		column-gap: 20px;
		max-width: 720px;
	}
	body.page-template-page-company .ms-info-table dt,
	body.page-template-page-company .ms-info-table dd {
		font-size: 16px;
		line-height: 1.9;
	}
	body.page-template-page-company .ms-message-section {
		padding-top: 0;
	}
	body.page-template-page-company .ms-message-section .ms-eyebrow-en--message {
		font-size: clamp(40px, 5.5vw, 80px);
		margin: 0;
		color: #686A6E;
		font-weight: 700;
		position: absolute;
		top: 14px;
		left: 0;
		width: 50%;
		text-align: center;
		z-index: 4;
		line-height: 1;
	}
	body.page-template-page-company .ms-message {
		grid-template-columns: 1fr 1fr;
		align-items: stretch;
	}
	body.page-template-page-company .ms-message__photo {
		min-height: 0;
		padding-bottom: 0;
		background: #686A6E;
	}
	body.page-template-page-company .ms-message__photo img {
		aspect-ratio: auto;
		height: 100%;
		width: 100%;
		object-fit: cover;
		object-position: center;
	}
	body.page-template-page-company .ms-message__body {
		padding: 56px 56px 56px 48px;
		display: flex;
		flex-direction: column;
		justify-content: center; /* 写真の高さに合わせて伸びた分、テキストを縦中央に置き下余白を解消 */
	}
	body.page-template-page-company .ms-message__body p {
		/* 横幅に対して相対的に伸縮（最小15px〜最大20px） */
		font-size: clamp(15px, 1.18vw, 20px);
		line-height: 2.05;
		margin-bottom: 1.25em;
	}
	body.page-template-page-company .ms-message__sub {
		bottom: 16px;
	}

	body.page-template-page-contact .ms-contact,
	body.page-template-page-recruit-contact .ms-section--recruit-contact {
		padding-top: 96px;
		padding-bottom: 60px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact {
		background: var(--c-bg-gray);
	}
	body.page-template-page-contact .ms-contact .ms-container--narrow,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-container--narrow {
		max-width: 746px;
	}
	body.page-template-page-contact .ms-contact .ms-form,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form {
		padding: 34px 56px 60px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form {
		background: #fff;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row {
		margin-bottom: 25px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p,
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p::before,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row > label,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row > legend {
		font-size: 13px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row > label,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row > legend {
		margin-bottom: 11px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="text"],
	body.page-template-page-contact .ms-contact .ms-form input[type="email"],
	body.page-template-page-contact .ms-contact .ms-form input[type="tel"] {
		height: 31px;
		padding: 6px 10px;
		font-size: 13px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form input[type="text"],
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form input[type="email"],
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form input[type="tel"] {
		height: 38px;
		padding: 6px 10px;
		font-size: 13px;
	}
	body.page-template-page-contact .ms-contact .ms-form textarea {
		height: 356px;
		min-height: 356px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact textarea {
		height: 314px;
		min-height: 314px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="submit"] {
		width: 194px;
		min-width: 194px;
		height: 42px;
		padding: 10px 16px;
		font-size: 12px;
	}
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__submit button {
		width: 240px;
		min-width: 240px;
		height: 52px;
		padding: 10px 16px;
		font-size: 12px;
	}
	body.page-template-page-contact .ms-contact .ms-form input[type="submit"] {
		margin-top: 28px;
	}
body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__submit {
	margin-top: 52px;
}
}

/* Final mobile overrides for company/contact/recruit-contact; keep after all legacy mobile rules. */
@media (max-width: 768px) {
	body.page-template-page-company .ms-header,
	body.page-template-page-contact .ms-header,
	body.page-template-page-recruit-contact .ms-header {
		min-height: 52px;
		padding: 8px 16px;
		justify-content: flex-start;
	}
	body.page-template-page-company .ms-header__logo img,
	body.page-template-page-contact .ms-header__logo img,
	body.page-template-page-recruit-contact .ms-header__logo img {
		width: 88px;
		height: auto;
	}
	body.page-template-page-company .ms-header__nav,
	body.page-template-page-contact .ms-header__nav,
	body.page-template-page-recruit-contact .ms-header__nav {
		display: none;
	}
	body.page-template-page-business .ms-page-hero,
	body.page-template-page-company .ms-page-hero,
	body.page-template-page-contact .ms-page-hero,
	body.page-template-page-recruit-contact .ms-page-hero {
		aspect-ratio: 1201 / 651;
		height: auto;
		max-height: none;
		width: 100%;
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center top;
		background-color: #F5F5F5;
	}
	/* business: SPは写真の縦横比にボックスを合わせ、上部のグレー余白を出さない */
	body.page-template-page-business .ms-page-hero {
		aspect-ratio: 1201 / 651;
		height: auto;
		background-position: center top;
	}
	body.page-template-page-business .ms-page-hero__inner,
	body.page-template-page-company .ms-page-hero__inner,
	body.page-template-page-contact .ms-page-hero__inner,
	body.page-template-page-recruit-contact .ms-page-hero__inner {
		left: auto !important;
		right: 12px !important;
		bottom: 16px !important;
		transform: none !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-end !important;
		width: auto !important;
		max-width: calc(100vw - 24px) !important;
		padding: 0 !important;
		gap: 4px !important;
		white-space: nowrap !important;
	}
	body.page-template-page-company .ms-page-hero__en,
	body.page-template-page-contact .ms-page-hero__en,
	body.page-template-page-recruit-contact .ms-page-hero__en {
		display: inline-block !important;
		max-width: 100% !important;
		width: auto !important;
		background: #0056A1;
		font-size: 10px;
		line-height: 1.25;
		padding: 3px 9px 4px;
		margin: 0 !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		min-width: 0 !important;
	}
	body.page-template-page-company .ms-page-hero__jp,
	body.page-template-page-contact .ms-page-hero__jp,
	body.page-template-page-recruit-contact .ms-page-hero__jp {
		display: inline-block !important;
		max-width: 100% !important;
		width: auto !important;
		font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
		font-size: 18px;
		font-weight: 500;
		letter-spacing: .02em;
		line-height: 1.15;
		padding: 5px 9px 6px;
		margin: 0 !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		min-width: 0 !important;
	}
	body.page-template-page-recruit-contact .ms-page-hero__jp {
		font-size: 17px;
	}
	body.page-template-page-contact .ms-contact,
	body.page-template-page-recruit-contact .ms-section--recruit-contact {
		padding: 34px 0 36px;
	}
	body.page-template-page-contact .ms-contact .ms-container--narrow,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-container--narrow {
		padding-left: 28px;
		padding-right: 28px;
	}
	body.page-template-page-contact .ms-contact .ms-form,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form {
		padding: 20px 14px 22px;
	}
	body.page-template-page-contact .ms-contact .ms-form .wpcf7-form > p,
	body.page-template-page-recruit-contact .ms-section--recruit-contact .ms-form__row {
		margin-bottom: 8px;
	}
	body.page-template-page-contact .ms-contact .ms-form textarea,
	body.page-template-page-recruit-contact .ms-section--recruit-contact textarea {
		height: 190px;
		min-height: 190px;
	}
	/* company/contact/recruit-contact のフッター上書きは撤去（全ページ共通フッターに統一） */
}

/* ---- 採用情報ページ ---- */
body.page-template-page-recruit .ms-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	background: rgba(255,255,255,.9);
	border-bottom: 0;
	z-index: 20;
}

.ms-recruit-hero {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1201 / 651;
	background: #f4f4f4;
}
.ms-recruit-hero__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center 42%;
}
.ms-recruit-hero__inner {
	position: absolute;
	left: clamp(36px, 8vw, 122px);
	top: 35%;
	transform: translateY(-50%);
	z-index: 1;
}
.ms-recruit-hero__copy {
	display: block;
	width: calc(510 / 1201 * 100vw);
	max-width: calc(510 / 1201 * 100%);
	height: auto;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .45));
}

.ms-recruit-lead {
	padding: 50px 0 54px;
	text-align: center;
	background: #fff;
}
.ms-recruit-lead p {
	margin: 0;
	font-family: var(--ff-sans);
	font-size: clamp(18px, 2.2vw, 26px);
	font-weight: 700;
	line-height: 1.85;
	letter-spacing: .06em;
	color: #111;
}
.ms-recruit-lead p span {
	display: inline-block;
	padding-bottom: 2px;
	background-image: linear-gradient(90deg, #9EF9FB 0%, #22408D 100%);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 100% 3.4px;
}

.ms-recruit-media-section,
.ms-recruit-slide-section,
.ms-recruit-positions,
.ms-recruit-process,
.ms-recruit-benefits {
	padding: 68px 0;
	background: #f4f4f4;
}
.ms-recruit-media-section--real {
	padding-top: 58px;
}
.ms-recruit-media-section--voices,
.ms-recruit-slide-section {
	background: #fff;
}
.ms-recruit-media-section__panel {
	width: 100%;
	background: #f4f4f4;
}
body.mirai-renewal .ms-recruit-heading,
body.mirai-renewal .ms-recruit-subheading {
	margin: 0 0 30px;
	font-family: var(--ff-sans);
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .08em;
	text-align: center;
	color: var(--c-navy);
}
.ms-recruit-subheading {
	margin-bottom: 24px;
	font-size: clamp(16px, 1.7vw, 20px);
	letter-spacing: .06em;
}
.ms-recruit-real-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	max-width: 1110px;
	margin: 0 auto;
}
.ms-recruit-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	max-width: 1060px;
	margin: 0 auto;
}
.ms-recruit-crop {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #fff;
	background-repeat: no-repeat;
	background-size: auto 100%;
	border-radius: 6px;
}
.ms-recruit-crop img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	opacity: 0;
}
.ms-recruit-video {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #000;
	border-radius: 6px;
}
.ms-recruit-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
a.ms-recruit-crop {
	transition: opacity 200ms ease, transform 200ms ease;
}
a.ms-recruit-crop:hover {
	opacity: .88;
	transform: translateY(-2px);
}
.ms-recruit-crop--voice-1 {
	background-image: url("../images/recruit-voice-1.png");
	background-size: cover;
	background-position: center;
}
.ms-recruit-crop--voice-2 {
	background-image: url("../images/recruit-voice-2.png");
	background-size: cover;
	background-position: center;
}
.ms-recruit-crop--voice-3 {
	background-image: url("../images/recruit-voice-3.png");
	background-size: cover;
	background-position: center;
}
.ms-recruit-office img {
	width: 100%;
	height: auto;
	display: block;
}
body.mirai-renewal .ms-recruit-section-cta {
	margin: 32px 0 0;
	text-align: center;
}
.ms-recruit-mini-btn,
.ms-recruit-apply__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 360px;
	height: 82px;
	padding: 0 76px 0 58px;
	border: 0;
	background: #111;
	clip-path: polygon(30px 0, 100% 0, 100% 100%, 0 100%, 0 30px);
	color: #222;
	font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-size: 21px;
	font-weight: 500;
	letter-spacing: .08em;
	text-decoration: none;
	filter: drop-shadow(5px 5px 5px rgba(0,0,0,.22));
	z-index: 0;
}
.ms-recruit-mini-btn::before,
.ms-recruit-apply__btn::before {
	content: "";
	position: absolute;
	inset: 1px;
	background: #fff;
	clip-path: polygon(29px 0, 100% 0, 100% 100%, 0 100%, 0 29px);
	z-index: -1;
}
.ms-recruit-mini-btn::after,
.ms-recruit-apply__btn::after {
	content: ">";
	position: absolute;
	right: 20px;
	top: auto;
	bottom: 16px;
	transform: none;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #111;
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 28px;
	text-align: center;
	letter-spacing: 0;
}

.ms-recruit-slide-section .ms-recruit-subheading {
	margin-bottom: 38px;
	font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-weight: 700;
}

/* 会社説明スライド（採用deck ビューア） */
.ms-deck {
	max-width: 960px;
	margin: 0 auto;
	outline: none;
}
.ms-deck__stage {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 8px;
	box-shadow: 0 10px 34px rgba(0, 0, 0, .14);
}
.ms-deck__track {
	display: flex;
	height: 100%;
	transition: transform 420ms cubic-bezier(.22, .61, .36, 1);
}
.ms-deck__slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
}
.ms-deck__slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.ms-deck__bar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	margin-top: 18px;
}
.ms-deck__btn {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid var(--c-navy);
	border-radius: 50%;
	background: #fff;
	color: var(--c-navy);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: background 200ms ease, color 200ms ease;
}
.ms-deck__btn:hover {
	background: var(--c-navy);
	color: #fff;
}
.ms-deck__counter {
	min-width: 70px;
	font-family: var(--ff-sans);
	font-size: 16px;
	letter-spacing: .1em;
	text-align: center;
	color: var(--c-navy);
	font-variant-numeric: tabular-nums;
}

.ms-recruit-office {
	padding-top: 52px;
	background: #fff;
	overflow: hidden;
}
.ms-recruit-office .ms-recruit-heading {
	margin-bottom: 32px;
}
.ms-office-carousel {
	position: relative;
	max-width: 900px;
	margin: 0 auto;
}
.ms-office-carousel__viewport {
	overflow: hidden;
	border-radius: 8px;
}
.ms-office-carousel__track {
	display: flex;
	transition: transform 500ms cubic-bezier(.22,.61,.36,1);
}
.ms-office-carousel__track img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	flex: 0 0 100%;
	display: block;
	transform: none !important;
}
.ms-office-carousel__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: rgba(0,63,102,.7);
	color: #fff;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	z-index: 3;
	transition: background .2s;
}
.ms-office-carousel__btn:hover {
	background: rgba(0,63,102,.95);
}
.ms-office-carousel__btn--prev { left: -22px; }
.ms-office-carousel__btn--next { right: -22px; }
@media (max-width: 768px) {
	.ms-office-carousel { max-width: calc(100vw - 40px); }
	.ms-office-carousel__btn { width: 36px; height: 36px; font-size: 20px; }
	.ms-office-carousel__btn--prev { left: -8px; }
	.ms-office-carousel__btn--next { right: -8px; }
}

.ms-recruit-stats {
	padding: 46px 0 56px;
	background: var(--c-navy);
	color: #fff;
}
body.mirai-renewal h2.ms-recruit-stats__title {
	width: min(940px, calc(100% - 48px));
	margin: 0 auto 38px;
	padding: 12px 24px;
	background: #fff;
	color: var(--c-navy);
	font-family: var(--ff-sans);
	font-size: clamp(24px, 3vw, 38px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .08em;
	text-align: center;
	position: relative;
}
.ms-recruit-stats__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -31px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 31px 31px 0 31px;
	border-color: #fff transparent transparent transparent;
}
.ms-recruit-stats__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	max-width: 1000px;
	margin: 0 auto;
	border-left: 1px solid rgba(255,255,255,.55);
}
.ms-recruit-stat {
	min-height: 290px;
	padding: 34px 12px 22px;
	text-align: center;
	border-right: 1px solid rgba(255,255,255,.55);
	border-bottom: 1px solid rgba(255,255,255,.55);
}
.ms-recruit-stat:nth-last-child(-n+4) {
	border-bottom: 0;
}
.ms-recruit-stat span {
	display: block;
	font-family: var(--ff-sans);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .04em;
}
.ms-recruit-stat strong {
	display: block;
	margin: 6px 0 11px;
	color: #FFF200;
	font-family: var(--ff-sans);
	font-size: clamp(26px, 3vw, 42px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: .02em;
}
.ms-recruit-stat strong small {
	display: inline;
	font-size: .70em;
	font-weight: 700;
	letter-spacing: .02em;
}
.ms-recruit-stat img {
	display: block;
	width: 88px;
	height: 88px;
	object-fit: contain;
	margin: 18px auto 0;
}

body.page-template-page-recruit .ms-recruit-positions {
	text-align: center;
	background: #f4f4f4;
}
.ms-recruit-positions__lead {
	margin: -10px 0 30px;
	font-size: 13px;
	line-height: 1.8;
	color: #333;
}
.ms-recruit-position-group {
	max-width: 880px;
	margin: 0 auto 34px;
}
.ms-recruit-position-group h3 {
	display: inline-block;
	min-width: 330px;
	margin: 0 0 24px;
	padding: 12px 24px;
	background: var(--c-navy);
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .06em;
}
.ms-recruit-position-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 38px;
}
.ms-recruit-position-grid--small {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 560px;
	margin: 0 auto;
}
.ms-recruit-position {
	text-align: left;
}
.ms-recruit-position h4 {
	margin: 0 0 8px;
	padding-left: 20px;
	color: var(--c-navy);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.45;
	position: relative;
}
.ms-recruit-position h4::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 14px;
	height: 12px;
	background: url("../images/recruit-checkbox.png") center / contain no-repeat;
}
.ms-recruit-position h4::after {
	content: none;
}
.ms-recruit-position p {
	margin: 0 0 8px 20px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
}
.ms-recruit-position a {
	position: relative;
	display: block;
	margin-left: 20px;
	padding: 10px 12px;
	border: 1px solid var(--c-text);
	background: transparent;
	color: var(--c-text);
	font-size: 11px;
	font-family: var(--ff-serif);
	font-weight: 400;
	letter-spacing: .1em;
	text-align: center;
	text-decoration: none;
}
.ms-recruit-position a::before {
	content: "";
	position: absolute;
	inset: 4px;
	border: 1px solid var(--c-text);
	pointer-events: none;
}

.ms-recruit-process {
	background: #fff;
}
.ms-recruit-process .ms-container {
	max-width: 1020px;
	text-align: center;
}
.ms-recruit-process__image {
	display: block;
	width: 100%;
	margin: 0 auto;
}
.ms-recruit-process__image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}
.ms-recruit-process__label {
	display: none;
}
.ms-recruit-process__list,
.ms-recruit-process__note {
	display: none;
}

.ms-recruit-apply {
	padding: 34px 0 58px;
	background: #fff;
	text-align: center;
}
.ms-recruit-apply__note,
.ms-recruit-apply__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #222;
}
.ms-recruit-apply__note {
	margin-bottom: 58px;
}
.ms-recruit-apply__text {
	margin-top: 28px;
}

.ms-recruit-ceo {
	position: relative;
	padding: 70px 0 62px;
	background: var(--c-navy);
	color: #fff;
	overflow: visible;
}
.ms-recruit-ceo::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -72px;
	width: 124vw;
	height: 144px;
	transform: translateX(-50%);
	background: var(--c-navy);
	border-radius: 50% 50% 0 0;
}
.ms-recruit-ceo__inner {
	position: relative;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 56px;
	align-items: center;
	max-width: 980px;
}
.ms-recruit-ceo__photo {
	text-align: center;
}
.ms-recruit-ceo__photo img {
	width: 220px;
	max-width: 100%;
	height: auto;
	display: block;
	margin: 0 auto 14px;
}
.ms-recruit-ceo__photo p {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: .08em;
}
.ms-recruit-ceo__message p {
	margin: 0 0 1em;
	font-size: 16px;
	font-weight: 700;
	line-height: 2.05;
	letter-spacing: .06em;
}

.ms-recruit-benefits {
	background: #f4f4f4;
}
body.mirai-renewal .ms-recruit-benefits .ms-recruit-heading {
	margin-bottom: 72px;
}
.ms-recruit-benefits__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 28px;
	row-gap: 56px;
	max-width: 1000px;
	margin: 0 auto;
}
.ms-recruit-benefits__grid article {
	min-height: 282px;
	padding: 28px 30px;
	background: transparent;
	border: 2px solid #0E5A7E;
	text-align: left;
	position: relative;
}
.ms-recruit-benefits__grid article::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -47px;
	width: 42px;
	height: 30px;
	transform: translateX(-50%);
	background: url("../images/recruit-benefit-mark.png") center / contain no-repeat;
}
.ms-recruit-benefits__grid h3 {
	position: absolute;
	left: 50%;
	top: -16px;
	margin: 0;
	padding: 0 16px;
	transform: translateX(-50%);
	background: #f4f4f4;
	color: var(--c-navy);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	white-space: nowrap;
}
.ms-recruit-benefits__grid p {
	margin: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.72;
	text-align: left;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.page-template-page-recruit .ms-header__inner { padding: 10px 24px; }
	body.page-template-page-recruit .ms-header__logo img { height: 34px; }
	body.page-template-page-recruit .ms-header__nav ul { gap: 24px; }
	body.page-template-page-recruit .ms-header__nav a { font-size: 13px; }
	.ms-recruit-media-section,
	.ms-recruit-slide-section,
	.ms-recruit-positions,
	.ms-recruit-process,
	.ms-recruit-benefits { padding: 54px 0; }
	.ms-recruit-stats__grid,
	.ms-recruit-process .ms-container {
		max-width: 900px;
	}
}

@media (max-width: 768px) {
	body.page-template-page-recruit .ms-header {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		background: transparent !important;
		border-bottom: 0 !important;
	}
	body.page-template-page-recruit .ms-header__inner {
		height: 80px !important;
		padding: 0 20px !important;
		justify-content: center !important;
	}
	body.page-template-page-recruit .ms-header__logo img {
		height: 32px !important;
	}
	body.page-template-page-recruit .ms-header__toggle {
		display: flex !important;
		position: absolute !important;
		right: 20px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 22px !important;
		height: 16px !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		flex-direction: column !important;
		justify-content: space-between !important;
	}
	.ms-recruit-hero {
		aspect-ratio: 480 / 720;
	}
	.ms-recruit-hero__photo { object-position: center top; }
	.ms-recruit-hero__inner {
		left: 0;
		right: 0;
		top: 82%;
		transform: translateY(-50%);
		text-align: center;
	}
	.ms-recruit-hero__copy {
		width: calc(244 / 366 * 100vw);
		max-width: calc(244 / 366 * 100%);
		margin: 0 auto;
	}
	.ms-recruit-lead {
		padding: 26px 0 30px;
	}
	.ms-recruit-lead p {
		font-size: 14px;
		line-height: 1.75;
	}
	.ms-recruit-media-section,
	.ms-recruit-slide-section,
	.ms-recruit-positions,
	.ms-recruit-process,
	.ms-recruit-benefits {
		padding: 40px 0;
	}
	.ms-recruit-heading {
		margin-bottom: 18px;
		font-size: 18px;
	}
	.ms-recruit-subheading {
		font-size: 13px;
	}
	.ms-recruit-real-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 24px;
		width: calc(100vw - 40px);
		max-width: 400px;
		margin: 0 auto;
	}
	.ms-recruit-voice-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 18px;
		width: 326px;
		max-width: calc(100vw - 40px);
		margin: 0 auto;
	}
	.ms-recruit-voice-grid .ms-recruit-crop {
		aspect-ratio: 551 / 289;
	}
	.ms-recruit-mini-btn,
	.ms-recruit-apply__btn {
		min-width: 286px;
		height: 52px;
		padding: 0 48px 0 34px;
		clip-path: polygon(22px 0, 100% 0, 100% 100%, 0 100%, 0 22px);
		font-size: 15px;
	}
	.ms-recruit-mini-btn::before,
	.ms-recruit-apply__btn::before {
		clip-path: polygon(21px 0, 100% 0, 100% 100%, 0 100%, 0 21px);
	}
	.ms-recruit-mini-btn::after,
	.ms-recruit-apply__btn::after {
		right: 13px;
		bottom: 10px;
		width: 24px;
		height: 24px;
		font-size: 17px;
		line-height: 22px;
	}
	.ms-recruit-office {
		padding-top: 38px;
	}
	.ms-recruit-stats {
		padding: 30px 0 38px;
	}
	.ms-recruit-stats__title {
		margin-bottom: 22px;
		padding: 8px 14px;
		font-size: 13px;
	}
	.ms-recruit-stats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ms-recruit-stat {
		min-height: 116px;
		padding: 14px 8px 12px;
	}
	.ms-recruit-stat span {
		font-size: 9px;
	}
	.ms-recruit-stat strong {
		margin: 3px 0 5px;
		font-size: 22px;
	}
	.ms-recruit-stat img {
		width: 22px;
		height: 22px;
	}
	body.page-template-page-recruit .ms-recruit-positions .ms-recruit-subheading {
		font-size: 20px;
		margin-bottom: 4px;
	}
	body.page-template-page-recruit .ms-recruit-positions__lead {
		margin: 0 0 20px;
		font-size: 12px;
	}
	body.page-template-page-recruit .ms-recruit-position-group h3 {
		min-width: 200px;
		margin-bottom: 16px;
		padding: 9px 18px;
		font-size: 14px;
	}
	body.page-template-page-recruit .ms-recruit-position-grid,
	body.page-template-page-recruit .ms-recruit-position-grid--small {
		grid-template-columns: 1fr;
		max-width: calc(100vw - 40px);
		gap: 20px;
		margin: 0;
	}
	body.page-template-page-recruit .ms-recruit-position h4 {
		font-size: 15px;
		padding-left: 22px;
		margin-bottom: 8px;
	}
	body.page-template-page-recruit .ms-recruit-position h4::before {
		top: .25em;
		width: 16px;
		height: 13px;
	}
	body.page-template-page-recruit .ms-recruit-position p {
		font-size: 13px;
		margin: 0 0 6px 22px;
	}
	body.page-template-page-recruit .ms-recruit-position a {
		font-size: 12px;
		margin: 0 0 14px 22px;
	}
	.ms-recruit-process .ms-container {
		display: block;
	}
	.ms-recruit-process__label {
		width: 100%;
		margin-bottom: 10px;
		writing-mode: horizontal-tb;
		font-size: 13px;
	}
	.ms-recruit-process__list {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.ms-recruit-process__list li {
		min-height: 0;
		padding: 20px 18px;
	}
	.ms-recruit-process__list strong {
		margin-bottom: 12px;
	}
	.ms-recruit-process__note {
		margin-top: 14px;
	}
	.ms-recruit-apply {
		padding: 24px 0 40px;
	}
	.ms-recruit-ceo {
		padding: 48px 0 34px;
	}
	.ms-recruit-ceo::before {
		top: -40px;
		height: 80px;
	}
	.ms-recruit-ceo__inner {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.ms-recruit-ceo__photo {
		display: grid;
		grid-template-columns: 1fr 118px;
		align-items: end;
		column-gap: 14px;
		width: 286px;
		max-width: calc(100vw - 40px);
		margin: 0 auto;
		text-align: left;
	}
	.ms-recruit-ceo__photo img {
		width: 118px;
		grid-column: 2;
		grid-row: 1;
		margin: 0;
	}
	.ms-recruit-ceo__photo p {
		grid-column: 1;
		grid-row: 1;
		font-size: 18px;
		line-height: 1.55;
	}
	.ms-recruit-ceo__message p {
		font-size: 15px;
		line-height: 1.85;
	}
	.ms-recruit-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.ms-recruit-benefits__grid article {
		min-height: 222px;
		padding: 20px 12px 18px;
	}
	.ms-recruit-benefits__grid article::before {
		width: 30px;
		height: 22px;
		margin-bottom: 8px;
	}
	.ms-recruit-benefits__grid h3 {
		font-size: 13px;
		margin-bottom: 9px;
	}
	.ms-recruit-benefits__grid p {
		font-size: 11px;
		line-height: 1.7;
	}
}

/* Recruit page: Illustrator margin alignment */
body.page-template-page-recruit .ms-recruit-hero,
body.page-template-page-recruit .ms-recruit-lead,
body.page-template-page-recruit .ms-recruit-media-section,
body.page-template-page-recruit .ms-recruit-slide-section,
body.page-template-page-recruit .ms-recruit-office,
body.page-template-page-recruit .ms-recruit-stats,
body.page-template-page-recruit .ms-recruit-positions,
body.page-template-page-recruit .ms-recruit-process,
body.page-template-page-recruit .ms-recruit-apply,
body.page-template-page-recruit .ms-recruit-ceo,
body.page-template-page-recruit .ms-recruit-benefits,
body.page-template-page-recruit .ms-footer {
	box-sizing: border-box;
}

body.page-template-page-recruit .ms-recruit-media-section > .ms-container,
body.page-template-page-recruit .ms-recruit-media-section__panel > .ms-container,
body.page-template-page-recruit .ms-recruit-slide-section > .ms-container,
body.page-template-page-recruit .ms-recruit-stats > .ms-container,
body.page-template-page-recruit .ms-recruit-positions > .ms-container,
body.page-template-page-recruit .ms-recruit-process > .ms-container,
body.page-template-page-recruit .ms-recruit-benefits > .ms-container {
	width: 100%;
}

@media (min-width: 769px) {
	body.page-template-page-recruit .ms-recruit-hero {
		height: 651px;
		aspect-ratio: auto;
	}
	/* Heroコピー: 顔への重なり回避のため80%に縮小し左下へ */
	body.page-template-page-recruit .ms-recruit-hero__inner {
		top: auto;
		bottom: clamp(32px, 5vw, 64px);
		transform: none;
	}
	body.page-template-page-recruit .ms-recruit-hero__copy {
		width: calc(408 / 1201 * 100vw);
		max-width: none;
	}
	body.page-template-page-recruit .ms-recruit-lead {
		height: 244px;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	body.page-template-page-recruit .ms-recruit-media-section,
	body.page-template-page-recruit .ms-recruit-slide-section,
	body.page-template-page-recruit .ms-recruit-stats,
	body.page-template-page-recruit .ms-recruit-positions,
	body.page-template-page-recruit .ms-recruit-process,
	body.page-template-page-recruit .ms-recruit-benefits {
		padding: 0;
		display: flex;
		align-items: center;
	}
	body.page-template-page-recruit .ms-recruit-media-section--real {
		height: 525px;
		align-items: flex-start;
	}
	body.page-template-page-recruit .ms-recruit-media-section--real > .ms-container {
		transform: none;
		padding-top: 82px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--real .ms-recruit-heading {
		margin-bottom: 30px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--real .ms-recruit-section-cta {
		margin-top: 30px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices {
		height: auto;
		min-height: 520px;
		padding-top: 104px;
		align-items: flex-end;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-media-section__panel {
		min-height: 416px;
		display: flex;
		align-items: flex-start;
		padding-top: 82px;
		padding-bottom: 48px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-heading {
		margin-bottom: 30px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-section-cta {
		margin-top: 30px;
	}
	body.page-template-page-recruit .ms-recruit-slide-section {
		height: auto;
		min-height: 643px;
		padding: 72px 0;
	}
	body.page-template-page-recruit .ms-recruit-slide-section .ms-recruit-subheading {
		margin-bottom: 44px;
	}
	body.page-template-page-recruit .ms-recruit-office {
		height: auto;
		padding: 48px 0;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-stats {
		min-height: 588px;
		height: auto;
		align-items: flex-start;
		padding-top: 36px;
	}
	body.page-template-page-recruit .ms-recruit-stats__title {
		width: 900px;
		margin-left: auto;
		margin-right: auto;
	}
	body.page-template-page-recruit .ms-recruit-stats__grid {
		width: 100vw;
		max-width: none;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}
	body.page-template-page-recruit .ms-recruit-stat {
		min-height: 250px;
		padding-top: 32px;
	}
	body.page-template-page-recruit .ms-recruit-stat span {
		font-size: 20px;
	}
	body.page-template-page-recruit .ms-recruit-stat strong {
		margin: 8px 0 18px;
		font-size: 46px;
	}
	body.page-template-page-recruit .ms-recruit-stat img {
		width: 116px;
		height: 116px;
		margin-top: 18px;
	}
	body.page-template-page-recruit .ms-recruit-positions {
		height: auto;
		padding: 58px 0;
		flex-wrap: wrap;
		justify-content: center;
	}
	body.page-template-page-recruit .ms-recruit-positions .ms-container {
		max-width: 1020px;
	}
	body.page-template-page-recruit .ms-recruit-positions .ms-recruit-subheading {
		margin-bottom: 4px;
		font-size: 26px;
	}
	body.page-template-page-recruit .ms-recruit-positions__lead {
		margin: -4px 0 34px;
		font-size: 14px;
	}
	body.page-template-page-recruit .ms-recruit-position-group {
		max-width: 1020px;
		margin-bottom: 62px;
		text-align: left;
	}
	body.page-template-page-recruit .ms-recruit-position-group h3 {
		min-width: 368px;
		margin-bottom: 44px;
		padding: 13px 24px;
		font-size: 28px;
		text-align: center;
	}
	body.page-template-page-recruit .ms-recruit-position-grid {
		gap: 86px;
	}
	body.page-template-page-recruit .ms-recruit-position-grid--small {
		max-width: 670px;
		gap: 96px;
		margin-left: 0;
	}
	body.page-template-page-recruit .ms-recruit-position h4 {
		margin-bottom: 12px;
		padding-left: 28px;
		font-size: 22px;
	}
	body.page-template-page-recruit .ms-recruit-position h4::before {
		top: .22em;
		width: 22px;
		height: 18px;
	}
	body.page-template-page-recruit .ms-recruit-position p {
		margin: 0 0 10px 28px;
		font-size: 18px;
	}
	body.page-template-page-recruit .ms-recruit-position a {
		margin: 0 0 20px 28px;
		padding: 8px 14px;
		font-size: 16px;
	}
	body.page-template-page-recruit .ms-recruit-position a::before {
		inset: 4px;
	}
	body.page-template-page-recruit .ms-recruit-process {
		height: auto;
		padding: 48px 0 24px;
	}
	body.page-template-page-recruit .ms-recruit-process > .ms-container {
		max-width: 1020px;
		padding-left: 0;
		padding-right: 0;
	}
	body.page-template-page-recruit .ms-recruit-apply {
		height: auto;
		padding: 18px 0 100px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	body.page-template-page-recruit .ms-recruit-apply__note {
		margin-bottom: 40px;
	}
	body.page-template-page-recruit .ms-recruit-apply__text {
		margin-top: 36px;
	}
	body.page-template-page-recruit .ms-recruit-ceo {
		height: 599px;
		padding-top: 86px;
		display: flex;
		align-items: flex-start;
	}
	body.page-template-page-recruit .ms-recruit-ceo__inner {
		grid-template-columns: 330px 1fr;
		gap: 64px;
		max-width: 1040px;
	}
	body.page-template-page-recruit .ms-recruit-ceo__photo img {
		width: 280px;
	}
	body.page-template-page-recruit .ms-recruit-ceo__photo p {
		font-size: 24px;
		line-height: 1.55;
	}
	body.page-template-page-recruit .ms-recruit-ceo__message p {
		font-size: 18px;
		line-height: 2.05;
	}
	body.page-template-page-recruit .ms-recruit-benefits {
		height: 1130px;
		align-items: flex-start;
		padding-top: 92px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid {
		max-width: 1000px;
		column-gap: 28px;
		row-gap: 70px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid article {
		min-height: 282px;
		padding: 28px 30px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid article::before {
		top: -47px;
		width: 42px;
		height: 30px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid h3 {
		top: -18px;
		margin: 0;
		font-size: 22px;
		line-height: 1.35;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid p {
		font-size: 17px;
		line-height: 1.72;
	}
	body.page-template-page-recruit .ms-footer {
		height: 415px;
		padding-top: 54px;
		padding-bottom: 28px;
	}
}

@media (max-width: 768px) {
	body.page-template-page-recruit .ms-recruit-hero {
		height: auto;
		aspect-ratio: 480 / 720;
	}
	body.page-template-page-recruit .ms-recruit-lead {
		height: auto;
		padding: 24px 0 28px;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-media-section,
	body.page-template-page-recruit .ms-recruit-slide-section {
		padding: 0;
		display: flex;
		align-items: center;
	}
	body.page-template-page-recruit .ms-recruit-stats {
		display: block;
		padding: 20px 0 0;
	}
	body.page-template-page-recruit .ms-recruit-positions {
		display: block;
		padding: 40px 0;
	}
	body.page-template-page-recruit .ms-recruit-process {
		display: block;
		padding: 24px 0;
	}
	body.page-template-page-recruit .ms-recruit-benefits {
		display: block;
		padding: 54px 0 60px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--real {
		height: auto;
		padding: 40px 0;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices {
		height: auto;
		padding: 40px 0;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-media-section__panel {
		padding: 30px 0 40px;
		background: #f4f4f4;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-heading {
		margin-bottom: 30px;
	}
	body.page-template-page-recruit .ms-recruit-media-section--voices .ms-recruit-section-cta {
		margin-top: 30px;
	}
	body.page-template-page-recruit .ms-recruit-real-grid {
		width: 310px;
		max-width: calc(100vw - 40px);
	}
	body.page-template-page-recruit .ms-recruit-slide-section {
		height: auto;
		padding: 30px 0;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-slide-section .ms-recruit-subheading {
		margin-bottom: 20px;
	}
	body.page-template-page-recruit .ms-recruit-office {
		height: auto;
		padding: 30px 0;
		display: block;
	}
	body.page-template-page-recruit .ms-recruit-office .ms-recruit-heading {
		margin-bottom: 16px;
	}
	body.page-template-page-recruit .ms-recruit-stats {
		min-height: 0;
		height: auto;
		padding: 20px 0 0;
	}
	body.page-template-page-recruit .ms-recruit-stats__title {
		width: calc(100% - 40px);
		margin-bottom: 18px;
		padding-top: 12px;
		padding-bottom: 12px;
	}
	body.page-template-page-recruit .ms-recruit-stats__title::after {
		bottom: -24px;
		border-width: 24px 24px 0 24px;
	}
	body.page-template-page-recruit .ms-recruit-stats__grid {
		width: 100vw;
		max-width: none;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}
	body.page-template-page-recruit .ms-recruit-stat:nth-last-child(-n+4) {
		border-bottom: 1px solid rgba(255,255,255,.55);
	}
	body.page-template-page-recruit .ms-recruit-stat:nth-last-child(-n+2) {
		border-bottom: 0;
	}
	body.page-template-page-recruit .ms-recruit-stat {
		min-height: 183px;
		padding-top: 24px;
	}
	body.page-template-page-recruit .ms-recruit-stat span {
		font-size: 15px;
	}
	body.page-template-page-recruit .ms-recruit-stat strong {
		margin: 6px 0 14px;
		font-size: 30px;
	}
	body.page-template-page-recruit .ms-recruit-stat img {
		width: 64px;
		height: 64px;
		margin-top: 12px;
	}
	body.page-template-page-recruit .ms-recruit-positions {
		height: auto;
		padding: 40px 0;
		flex-wrap: wrap;
		justify-content: center;
	}
	body.page-template-page-recruit .ms-recruit-positions .ms-recruit-subheading {
		margin-bottom: 4px;
		font-size: 22px;
	}
	body.page-template-page-recruit .ms-recruit-process {
		height: auto;
		padding: 24px 0;
	}
	body.page-template-page-recruit .ms-recruit-process > .ms-container {
		padding-left: var(--gutter);
		padding-right: var(--gutter);
	}
	body.page-template-page-recruit .ms-recruit-apply {
		height: auto;
		padding: 18px 0 80px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	body.page-template-page-recruit .ms-recruit-apply__note,
	body.page-template-page-recruit .ms-recruit-apply__text {
		width: min(326px, calc(100vw - 40px));
		font-size: 11px;
		line-height: 1.7;
	}
	body.page-template-page-recruit .ms-recruit-apply__note {
		margin-bottom: 52px;
	}
	body.page-template-page-recruit .ms-recruit-apply__text {
		margin-top: 28px;
	}
	body.page-template-page-recruit .ms-recruit-ceo {
		height: auto;
		padding: 48px 0 40px;
		display: flex;
		align-items: flex-start;
	}
	body.page-template-page-recruit .ms-recruit-benefits {
		height: auto;
		padding: 54px 0 60px;
		align-items: flex-start;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid {
		grid-template-columns: 1fr;
		width: min(260px, calc(100vw - 70px));
		row-gap: 44px;
		column-gap: 0;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid article {
		min-height: 0;
		padding: 28px 22px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid article::before {
		top: -31px;
		width: 32px;
		height: 23px;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid h3 {
		top: -14px;
		font-size: 16px;
		line-height: 1.35;
	}
	body.page-template-page-recruit .ms-recruit-benefits__grid p {
		font-size: 12px;
		line-height: 1.75;
	}
	body.page-template-page-recruit .ms-recruit-process__list {
		gap: 6px;
	}
	body.page-template-page-recruit .ms-recruit-process__list li {
		padding: 12px 16px;
	}
	body.page-template-page-recruit .ms-recruit-process__list span {
		font-size: 10px;
	}
	body.page-template-page-recruit .ms-recruit-process__list strong {
		width: 42px;
		height: 42px;
		margin-bottom: 8px;
		font-size: 18px;
		line-height: 38px;
	}
	body.page-template-page-recruit .ms-recruit-process__list em {
		margin-bottom: 8px;
		font-size: 14px;
	}
	body.page-template-page-recruit .ms-recruit-process__list small {
		font-size: 10px;
		line-height: 1.45;
	}
	body.page-template-page-recruit .ms-recruit-process__note {
		margin-top: 10px;
		font-size: 9px;
	}
	/* recruit専用フッターは撤去。フッターは全ページ共通(TOP)スタイルに統一 */
}

/* Recruit page final cascade guards（PCのみ。SPは共通ヘッダーで白背景・固定に統一） */
@media (min-width: 769px) {
	body.mirai-renewal.page-template-page-recruit .ms-header {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		background: rgba(255,255,255,.9) !important;
		border-bottom: 0 !important;
		z-index: 20 !important;
	}
}
body.page-template-page-recruit .ms-recruit-hero__photo {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	display: block !important;
	object-fit: cover !important;
}

@media (max-width: 768px) {
	body.page-template-page-recruit .ms-recruit-hero__photo {
		object-position: 50% 0 !important;
	}
}

/* recruit 340px専用フッターも撤去（全ページ共通フッターに統一） */

/* ============================================================
   社員の声 アーカイブ
   ============================================================ */
.ms-archive--voice {
	padding: 60px 0 80px;
}
body.mirai-renewal h1.ms-archive__title {
	margin: 0 0 56px;
	font-family: var(--ff-sans);
	font-size: 28px;
	font-weight: 700;
	color: var(--c-navy);
	text-align: center;
	letter-spacing: .08em;
}
.ms-voice-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 1060px;
	margin: 0 auto;
}
.ms-voice-item {
	display: block;
	text-decoration: none;
	color: var(--c-text);
	border: 1px solid #ddd;
	overflow: hidden;
	transition: box-shadow .2s;
}
.ms-voice-item:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.ms-voice-item__media {
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.ms-voice-item__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ms-voice-item__body {
	padding: 16px 20px 20px;
}
.ms-voice-item__title {
	margin: 0 0 8px;
	font-family: var(--ff-sans);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
}
.ms-voice-item__excerpt {
	margin: 0;
	font-size: 13px;
	line-height: 1.7;
	color: #555;
}
@media (max-width: 768px) {
	.ms-archive--voice {
		padding: 40px 0 60px;
	}
	.ms-archive__title {
		font-size: 22px;
		margin-bottom: 28px;
	}
	.ms-voice-list {
		grid-template-columns: 1fr;
		gap: 24px;
		max-width: 400px;
	}
}

/* ============================================================
   記事詳細 リッチコンテンツ
   ============================================================ */
.ms-single__status {
	display: inline-block;
	padding: 4px 12px;
	font-size: 12px;
	font-weight: 700;
	border-radius: 3px;
}
.ms-single__status--closed {
	background: #eee;
	color: #999;
}
body.mirai-renewal .ms-single__content h2 {
	margin: 48px 0 16px;
	padding: 0 0 10px;
	border-bottom: 2px solid var(--c-navy);
	font-family: var(--ff-sans);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-navy);
}
body.mirai-renewal .ms-single__content h2:first-child {
	margin-top: 0;
}
body.mirai-renewal .ms-single__content h3 {
	margin: 36px 0 12px;
	padding: 0;
	font-family: var(--ff-sans);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-navy);
}
body.mirai-renewal .ms-single__content p {
	margin: 0 0 24px;
	padding: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #333;
}
body.mirai-renewal .ms-single__content ul,
body.mirai-renewal .ms-single__content ol {
	margin: 0 0 24px;
	padding: 0 0 0 1.4em;
	font-size: 15px;
	line-height: 1.9;
	color: #333;
}
body.mirai-renewal .ms-single__content ul li {
	list-style-type: disc !important;
}
body.mirai-renewal .ms-single__content ol li {
	list-style-type: decimal !important;
}
body.mirai-renewal .ms-single__content li {
	margin: 0 0 6px;
	padding: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #333;
	background: none;
}
body.mirai-renewal .ms-single__content blockquote {
	margin: 28px 0;
	padding: 20px 24px;
	border-left: 4px solid var(--c-navy);
	background: #f8f9fa;
	font-size: 15px;
	font-style: italic;
	line-height: 1.9;
	color: #555;
}
body.mirai-renewal .ms-single__content blockquote p {
	margin: 0;
}
.ms-single__content table {
	width: 100%;
	margin: 24px 0;
	border-collapse: collapse;
	font-size: 14px;
	line-height: 1.7;
}
.ms-single__content th,
.ms-single__content td {
	padding: 12px 16px;
	border: 1px solid #ddd;
	text-align: left;
	color: #333;
}
.ms-single__content th {
	background: var(--c-navy);
	color: #fff;
	font-weight: 700;
}
.ms-single__content tbody tr:nth-child(even) {
	background: #f8f9fa;
}
.ms-single__content strong {
	font-weight: 700;
	color: #222;
}
@media (max-width: 768px) {
	.ms-single__content h2 {
		margin-top: 36px;
		font-size: 19px;
	}
	.ms-single__content h3 {
		margin-top: 28px;
		font-size: 16px;
	}
	.ms-single__content p,
	.ms-single__content li {
		font-size: 14px;
	}
	.ms-single__content table {
		font-size: 12px;
	}
	.ms-single__content th,
	.ms-single__content td {
		padding: 8px 10px;
	}
}

/* ============================================================
   求人一覧
   ============================================================ */
.ms-recruit-jobs {
	padding: 48px 0 72px;
}
body.mirai-renewal h1.ms-recruit-jobs__title {
	margin: 0 0 40px;
	padding: 0;
	font-family: var(--ff-sans);
	font-size: 28px;
	font-weight: 700;
	color: var(--c-navy);
	text-align: center;
	letter-spacing: .08em;
}
.ms-job-list {
	max-width: 760px;
	margin: 0 auto;
}
.ms-job-group {
	margin-bottom: 40px;
}
.ms-job-group:last-child {
	margin-bottom: 0;
}
body.mirai-renewal h2.ms-job-group__dept {
	font-family: var(--ff-sans);
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	background: var(--c-navy);
	padding: 13px 22px;
	margin: 0;
	border-radius: 6px 6px 0 0;
	letter-spacing: .08em;
}
.ms-job-group__pos {
	border-left: 1px solid #e0e0e0;
	border-right: 1px solid #e0e0e0;
}
.ms-job-group__pos:last-child {
	border-bottom: 1px solid #e0e0e0;
	border-radius: 0 0 6px 6px;
	overflow: hidden;
}
body.mirai-renewal h3.ms-job-group__pos-name {
	margin: 0;
	padding: 9px 22px;
	font-family: var(--ff-sans);
	font-size: 13px;
	font-weight: 700;
	color: var(--c-navy);
	background: #eef2f7;
	border-top: 1px solid #e0e0e0;
	border-bottom: 1px solid #e0e0e0;
	letter-spacing: .04em;
}
.ms-job-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 22px 14px 34px;
	border-bottom: 1px solid #f0f0f0;
	text-decoration: none;
	color: var(--c-text);
	transition: background .15s;
}
.ms-job-card:last-child {
	border-bottom: none;
}
.ms-job-card:hover {
	background: #f6f8fa;
}
.ms-job-card--closed {
	opacity: .6;
}
.ms-job-card__title {
	flex: 1;
	margin: 0;
	font-family: var(--ff-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: #333;
}
.ms-job-card__status {
	font-size: 10px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 20px;
	background: #f0f0f0;
	color: #aaa;
	white-space: nowrap;
	flex-shrink: 0;
}
.ms-job-card__status--open {
	background: #E8F5E9;
	color: #2E7D32;
}
.ms-job-card__arrow {
	font-size: 16px;
	color: #ddd;
	flex-shrink: 0;
	line-height: 1;
	transition: color .15s, transform .15s;
}
.ms-job-card:hover .ms-job-card__arrow {
	color: var(--c-navy);
	transform: translateX(2px);
}
@media (max-width: 768px) {
	.ms-recruit-jobs { padding: 36px 0 48px; }
	.ms-job-group { margin-bottom: 32px; }
	body.mirai-renewal h2.ms-job-group__dept { font-size: 14px; padding: 11px 16px; }
	body.mirai-renewal h3.ms-job-group__pos-name { font-size: 12px; padding: 8px 16px; }
	.ms-job-card { padding: 12px 16px 12px 24px; gap: 10px; }
	.ms-job-card__title { font-size: 13px; }
	.ms-job-card__status { font-size: 10px; padding: 2px 8px; }
}

/* ============================================================
   News 投稿詳細
   ============================================================ */
body.mirai-renewal .ms-post {
	padding: 64px 0;
}
body.mirai-renewal .ms-post__head {
	border-bottom: 2px solid var(--c-navy);
	padding: 0 0 20px;
	margin: 0 0 32px;
}
body.mirai-renewal .ms-post__date {
	display: block;
	color: #888;
	font-size: 13px;
	letter-spacing: .04em;
	margin: 0 0 8px;
}
body.mirai-renewal .ms-post__title {
	font-family: var(--ff-sans);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 700;
	color: var(--c-text);
	line-height: 1.6;
	margin: 0;
}
.ms-post__content a {
	color: var(--c-navy);
	text-decoration: underline;
}
.ms-post__content img {
	max-width: 100%;
	height: auto;
}
body.mirai-renewal .ms-post__foot {
	margin: 56px 0 0;
	padding: 0;
	text-align: center;
}
@media (max-width: 768px) {
	body.mirai-renewal .ms-post { padding: 40px 0; }
	body.mirai-renewal .ms-post__title { font-size: 18px; }
}

/* ============================================================
   Scroll Animations (Intersection Observer)
   ============================================================ */
.ms-anim-fade-up,
.ms-anim-fade-in,
.ms-anim-stagger > * {
	opacity: 0;
	will-change: opacity, transform;
}
.ms-anim-fade-up {
	transform: translateY(24px);
}
.ms-anim-stagger > * {
	transform: translateY(24px);
}
.ms-anim-fade-up.is-visible,
.ms-anim-fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 600ms cubic-bezier(.22,.61,.36,1),
	            transform 600ms cubic-bezier(.22,.61,.36,1);
}
.ms-anim-fade-in.is-visible {
	transform: none;
}
.ms-anim-stagger.is-visible > * {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 600ms cubic-bezier(.22,.61,.36,1),
	            transform 600ms cubic-bezier(.22,.61,.36,1);
	transition-delay: calc(var(--stagger-i, 0) * 120ms);
}
@media (max-width: 768px) {
	.ms-anim-fade-up { transform: translateY(16px); }
	.ms-anim-stagger > * { transform: translateY(16px); }
	.ms-anim-fade-up.is-visible,
	.ms-anim-stagger.is-visible > * { transition-duration: 450ms; }
}
@media (prefers-reduced-motion: reduce) {
	.ms-anim-fade-up,
	.ms-anim-fade-in,
	.ms-anim-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		will-change: auto !important;
	}
}
.no-js .ms-anim-fade-up,
.no-js .ms-anim-fade-in,
.no-js .ms-anim-stagger > * {
	opacity: 1 !important;
	transform: none !important;
}

/* ============================================================
   転職者成功事例 詳細（single-story 会話デザイン）
   design-spec/story.md（0509会話.ai 768px幅）準拠
   ============================================================ */
.ms-story-body {
	--story-bg: #F3F8FA;
	--story-card: #FFFFFF;
	--story-box: #DDF0F6;
	--story-navy: #083D5F;
	--story-a-border: #053367;
	--story-btn: #109ABA;
	background: var(--story-bg);
	padding: 48px 0 72px;
}
.ms-container--story {
	max-width: 768px;
	margin: 0 auto;
	padding: 0 var(--gutter);
}
/* デザイン: 768px背景の中にカード幅582px */
.ms-story-body .ms-single__meta,
.ms-story-body .ms-story-profile,
.ms-story-body .ms-story-chat,
.ms-story-body .ms-post-nav {
	max-width: 582px;
	margin-left: auto;
	margin-right: auto;
}
.ms-story-body .ms-single__meta { margin-bottom: 20px; }

/* 長いタイトルでもHero内で折り返す（story のみ） */
.ms-page-hero--story .ms-page-hero__inner {
	max-width: 100%;
	padding: 0 24px;
	box-sizing: border-box;
}
.ms-page-hero--story .ms-page-hero__jp {
	line-height: 1.4;
	white-space: normal; /* 既存の nowrap を解除して長いタイトルを折り返す */
	text-align: center;
}

/* ---- プロフィールカード ---- */
.ms-story-profile {
	background: var(--story-card);
	border-radius: 16px;
	padding: 32px 42px 36px;
}
/* ※ body.mirai-renewal h2/p/ul リセット(0,1,1)に勝つため .ms-story-body を前置 */
.ms-story-body .ms-story-profile__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--story-navy);
	margin-bottom: 24px;
}
.ms-story-profile__row {
	display: flex;
	align-items: flex-start;
	gap: 40px;
}
.ms-story-profile__avatar {
	flex: 0 0 auto;
	text-align: center;
}
.ms-story-profile__avatar img {
	width: 82px;
	height: 82px;
	border-radius: 50%;
	display: block;
}
.ms-story-profile__avatar figcaption {
	margin-top: 8px;
	font-size: 12px;
	color: var(--c-text);
}
.ms-story-profile__list {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--c-text);
}
.ms-story-profile__list li {
	position: relative;
	padding-left: 16px;
}
.ms-story-profile__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--story-btn);
}
.ms-story-profile__label { font-weight: 600; }

/* ---- 会話カード ---- */
.ms-story-chat {
	background: var(--story-card);
	border-radius: 16px;
	padding: 40px 42px 44px;
	margin-top: 13px;
}
.ms-story-body .ms-story-chat__intro {
	font-size: 13px;
	line-height: 1.55;
	color: var(--c-text);
	margin-bottom: 24px;
}
.ms-story-chat__summary {
	background: var(--story-box);
	border-radius: 12px;
	padding: 22px 24px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--c-text);
	margin-bottom: 40px;
}

/* ---- Q&A 吹き出し ---- */
.ms-chat {
	display: flex;
	flex-direction: column;
	gap: 27px;
}
.ms-chat__turn {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}
.ms-chat__turn--a { justify-content: flex-end; }
.ms-chat__turn + .ms-chat__turn--q { margin-top: 17px; }
.ms-chat__avatar { flex: 0 0 auto; }
.ms-chat__avatar img {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: block;
}
.ms-chat__bubble {
	position: relative;
	max-width: calc(100% - 184px);
	font-size: 13px;
	line-height: 1.55;
}
/* Q: ネイビー塗り・白文字（リセット対策で .ms-story-body 前置） */
.ms-story-body .ms-chat__bubble--q {
	background: var(--story-navy);
	color: var(--c-white);
	font-weight: 700;
	border-radius: 20px;
	padding: 11px 22px;
	margin-top: 4px;
}
.ms-story-body .ms-chat__bubble--q::before {
	content: "";
	position: absolute;
	left: -12px;
	top: 16px;
	border-style: solid;
	border-width: 7px 14px 7px 0;
	border-color: transparent var(--story-navy) transparent transparent;
}
/* A: 白地・ネイビー枠 */
.ms-story-body .ms-chat__bubble--a {
	background: var(--story-card);
	color: var(--c-text);
	border: 2px solid var(--story-a-border);
	border-radius: 16px;
	padding: 18px 22px;
}
.ms-story-body .ms-chat__bubble--a::before,
.ms-story-body .ms-chat__bubble--a::after {
	content: "";
	position: absolute;
	border-style: solid;
}
.ms-story-body .ms-chat__bubble--a::before {
	right: -15px;
	top: 22px;
	border-width: 8px 0 8px 15px;
	border-color: transparent transparent transparent var(--story-a-border);
}
.ms-story-body .ms-chat__bubble--a::after {
	right: -9px;
	top: 25px;
	border-width: 5px 0 5px 10px;
	border-color: transparent transparent transparent var(--story-card);
}

/* ---- CTA ---- */
.ms-story-cta {
	background: var(--story-box);
	border-radius: 16px; /* AI実測 約16px */
	padding: 29px 24px 16px; /* 上29 / 横24 / 下16（ボタン下余白） */
	margin-top: 44px;
	text-align: center;
}
.ms-story-body .ms-story-cta__title {
	font-size: 17px; /* AI: glyph15.3px → font約17px */
	font-weight: 700;
	color: var(--story-navy);
	margin-bottom: 18px; /* タイトル→本文 約19px */
	padding-left: 4px;   /* タイトルは本文より約4px字下げ */
	line-height: 1.4;
	text-align: left;
}
.ms-story-body .ms-story-cta__body {
	font-size: 13px;     /* AI実測: 漢字インク11.4px → font 13px */
	line-height: 1.54;   /* AI実測 行ピッチ 約20px (20/13) */
	color: var(--c-text);
	text-align: left;
	margin-bottom: 16px; /* 本文→ボタン 約15px */
}
/* ※ body.mirai-renewal a{color:inherit}(0,1,1)に勝つため .ms-story-body を前置 */
.ms-story-body .ms-story-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 292px;     /* AI: ボタン幅292px */
	min-height: 58px;     /* AI: ボタン高さ58px */
	padding: 6px 32px;
	box-sizing: border-box;
	border-radius: 999px; /* 58px高のピル */
	background: var(--story-btn);
	color: #fff;          /* AI実測: ボタンラベル #FFFFFF */
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	box-shadow: 0 8px 14px rgba(0, 0, 0, .22); /* AI: ボタン下のドロップシャドウ */
	transition: opacity .2s ease, box-shadow .2s ease;
}
.ms-story-body .ms-story-cta__btn:hover { opacity: .9; box-shadow: 0 5px 10px rgba(0, 0, 0, .22); }

.ms-story-body .ms-post-nav { margin-top: 48px; }

/* ---- SP ---- */
@media (max-width: 768px) {
	.ms-story-body { padding: 32px 0 56px; }
	.ms-story-profile { padding: 24px 20px 28px; border-radius: 12px; }
	.ms-story-profile__row { gap: 20px; }
	.ms-story-profile__avatar img { width: 64px; height: 64px; }
	.ms-story-chat { padding: 28px 20px 32px; border-radius: 12px; }
	.ms-chat__turn { gap: 12px; }
	.ms-chat__avatar img { width: 52px; height: 52px; }
	.ms-chat__bubble { max-width: calc(100% - 76px); }
	.ms-story-cta__btn { min-width: 0; width: 100%; max-width: 292px; }
}
@media (max-width: 380px) {
	.ms-story-profile__row { flex-direction: column; align-items: center; }
	.ms-story-profile__list { width: 100%; }
}

/* ============================================================
   PC(≥769px) ヘッダーを全ページ「白帯・固定(sticky)」で統一
   （TOP/事業紹介/会社概要/採用 等の透過オーバーレイを廃し、Heroは下に降ろす）
   ※ body overflow 修正は header.php の critical CSS（全幅）で対応済み
   ============================================================ */
@media (min-width: 769px) {
	body.mirai-renewal .ms-header,
	body.home.mirai-renewal .ms-header,
	body.mirai-renewal.page-template-page-business .ms-header,
	body.mirai-renewal.page-template-page-company .ms-header,
	body.mirai-renewal.page-template-page-contact .ms-header,
	body.mirai-renewal.page-template-page-recruit .ms-header,
	body.mirai-renewal.page-template-page-recruit-contact .ms-header {
		position: sticky !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		background: #fff !important;
		border-bottom: 1px solid var(--c-border, #e5e5e5) !important;
		box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
		z-index: var(--z-header, 1000);
	}
}
