:root {
	--corp-ink: #1e2d28;
	--corp-green: #294c3b;
	--corp-leaf: #7e9b72;
	--corp-paper: #f6f5ef;
	--corp-line: #d8ddd5;
	--corp-serif: Georgia, 'Times New Roman', 'Hiragino Mincho ProN', serif;
}

body { color: var(--corp-ink); background: var(--corp-paper); }
.ec-layoutRole__header { background: rgba(246, 245, 239, .96); border-bottom: 1px solid var(--corp-line); }
.ec-headerRole { padding: 20px 0 12px; }
.corp-logoName { display: block; font-family: var(--corp-serif); font-size: 22px; letter-spacing: .08em; }
.corp-logoSub { display: block; margin-top: 4px; color: var(--corp-leaf); font-size: 10px; letter-spacing: .28em; }
.ec-headerNaviRole { position: relative; }
.corp-headerNav { display: flex; justify-content: flex-end; gap: 24px; padding: 12px 0 0; font-size: 12px; letter-spacing: .08em; }
.corp-headerNav a { color: var(--corp-ink); }
.corp-headerNav a:hover, .corp-homeLinks a:hover, .corp-arrowLink:hover { color: var(--corp-leaf); }
.corp-homeHero { position: relative; overflow: hidden; background: #536b57; }
.corp-homeHero .main_visual { margin: 0; }
.corp-homeHero .main_visual .item { position: relative; }
.corp-homeHero .main_visual img { display: block; width: 100%; }
.corp-homeHero .main_visual img { height: min(62vw, 620px); min-height: 420px; object-fit: cover; filter: saturate(.78); }
.corp-homeHero__copy { position: absolute; left: max(5vw, calc((100% - 1130px) / 2)); top: 50%; z-index: 2; max-width: 460px; color: #fff; transform: translateY(-50%); text-shadow: 0 2px 18px rgba(0,0,0,.28); }
.corp-homeHero__copy h1 { margin: 12px 0 20px; font-family: var(--corp-serif); font-size: clamp(38px, 5vw, 72px); font-weight: 400; line-height: 1.18; letter-spacing: .05em; }
.corp-homeHero__copy p:last-child { max-width: 360px; font-size: 15px; line-height: 2; }
.corp-kicker { color: var(--corp-leaf); font-size: 11px; font-weight: 600; letter-spacing: .22em; }
.corp-homeHero .corp-kicker { color: #dce8c7; }
.corp-homeIntro { max-width: 860px; margin: 0 auto; padding: 100px 24px 90px; text-align: center; }
.corp-homeIntro h2 { margin: 16px 0 26px; font-family: var(--corp-serif); font-size: clamp(30px, 4vw, 52px); font-weight: 400; line-height: 1.35; }
.corp-homeIntro > p:not(.corp-kicker) { max-width: 600px; margin: 0 auto; color: #5c6861; line-height: 2; }
.corp-homeLinks { display: flex; justify-content: center; gap: 12px; margin-top: 44px; flex-wrap: wrap; }
.corp-homeLinks a, .corp-arrowLink { display: inline-flex; justify-content: space-between; gap: 40px; min-width: 170px; padding: 15px 18px; border-top: 1px solid var(--corp-ink); border-bottom: 1px solid var(--corp-ink); color: var(--corp-ink); font-size: 13px; letter-spacing: .08em; }
.corp-page { background: var(--corp-paper); }
.corp-pageHero { position: relative; height: min(42vw, 480px); min-height: 300px; overflow: hidden; }
.corp-pageHero img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.corp-pageHero__veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,37,29,.65), rgba(20,37,29,.08)); }
.corp-pageHero__copy { position: absolute; left: max(5vw, calc((100% - 980px) / 2)); top: 50%; color: #fff; transform: translateY(-50%); }
.corp-pageHero__copy h1 { margin: 10px 0; font-family: var(--corp-serif); font-size: clamp(36px, 5vw, 68px); font-weight: 400; }
.corp-pageHero__copy p:last-child { font-size: 15px; letter-spacing: .06em; }
.corp-pageBody { max-width: 980px; margin: auto; padding: 82px 24px 120px; }
.corp-lead { max-width: 720px; margin: 0 0 78px; font-family: var(--corp-serif); font-size: clamp(22px, 3vw, 34px); line-height: 1.75; }
.corp-section { border-top: 1px solid var(--corp-line); padding-top: 30px; }
.corp-section h2, .corp-callout h2, .corp-storyGrid h2, .corp-imageBand h2 { margin: 10px 0 30px; font-family: var(--corp-serif); font-size: clamp(28px, 3vw, 42px); font-weight: 400; }
.corp-definitionList { margin: 0; border-top: 1px solid var(--corp-line); }
.corp-definitionList div { display: grid; grid-template-columns: 180px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--corp-line); line-height: 1.9; }
.corp-definitionList dt { color: #65756a; font-size: 13px; letter-spacing: .1em; }
.corp-definitionList dd { margin: 0; }
.corp-callout { margin-top: 100px; padding: 42px; background: #e8ede3; }
.corp-storyGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin: 20px 0 90px; }
.corp-storyGrid article { padding: 28px 0; border-top: 1px solid var(--corp-ink); }
.corp-storyGrid span { color: var(--corp-leaf); font-size: 12px; letter-spacing: .12em; }
.corp-storyGrid h2 { margin: 18px 0 12px; font-size: 32px; }
.corp-storyGrid p, .corp-imageBand p { color: #5c6861; line-height: 2; }
.corp-imageBand { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 52px; }
.corp-imageBand img { width: 100%; height: 340px; object-fit: cover; }
.corp-imageBand h2 { line-height: 1.45; }
.corporate_page .ec-layoutRole__main { width: 100%; max-width: none; }
@media (max-width: 767px) {
	.corp-headerNav { justify-content: flex-start; gap: 14px; padding: 8px 16px 12px; overflow-x: auto; white-space: nowrap; }
	.corp-homeHero .main_visual img { height: 86vw; min-height: 360px; }
	.corp-homeHero__copy { left: 24px; right: 24px; }
	.corp-homeHero__copy h1 { font-size: 42px; }
	.corp-homeIntro { padding: 72px 24px; }
	.corp-pageHero { height: 66vw; min-height: 280px; }
	.corp-pageHero__copy { left: 24px; right: 24px; }
	.corp-pageHero__copy h1 { font-size: 42px; }
	.corp-pageBody { padding: 58px 20px 80px; }
	.corp-definitionList div { grid-template-columns: 1fr; gap: 4px; }
	.corp-storyGrid, .corp-imageBand { grid-template-columns: 1fr; gap: 24px; }
	.corp-imageBand img { height: 240px; }
	.corp-callout { margin-top: 64px; padding: 28px 22px; }
}
