/* ==================================================
   50周年記念サイト専用CSS
   白基調のエディトリアル調・紺と金は文字と罫線のみに使う
   （page-anniversary.php テンプレートでのみ読み込まれる）
================================================== */

:root {
	/* 原田産業100周年風のモノクロ基調 */
	--navy: #1A1A1A;      /* 見出し・強調（墨色） */
	--blue: #1A1A1A;      /* 年表テキスト（墨色） */
	--gold: #8A8A84;      /* 欧文ラベル等の控えめなアクセント（暖灰） */
	--gold-light: #BDBDB6;
	--paper: #FCFBF7;    /* ほぼ白。ごく僅かにセピア寄りの紙色 */
	--paper-warm: #F7F7F4;
	--ink: #2B2B2B;      /* 本文・見出しの基本色 */
	--ink-2: #5F5F59;    /* 補足・リード等の第2階層 */
	--ink-3: #94948D;    /* ラベル・キャプション等の控えめな第3階層 */
	--line: #E3E3DE;
	--world: #9A9A94;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
	overflow-y: scroll;
	scrollbar-gutter: stable;
	/* ここに background を置くと body 背景のキャンバス伝播が止まり、
	   z-index:-1 の .bg-stage が body 背景の裏に隠れる。置かないこと。 */
}
/* モーダル・メニュー展開中は背景をスクロールさせない。
   html に overflow-y: scroll がある関係で body 側の overflow:hidden は
   ビューポートへ伝播しないため、html 側で止める必要がある */
html:has(body.wm-lock),
html:has(body.anniv-menu-open) { overflow-y: hidden; }

body.anniv {
	font-family: "Noto Sans JP", sans-serif;
	color: var(--ink);
	background: var(--paper);
	line-height: 2;
}

/* ==================================================
   オープニングロゴアニメーション
   薄いロゴの上をカラー版が左から満たしていく
================================================== */
.an-opening {
	position: fixed;
	inset: 0;
	z-index: 10000;
	overflow: hidden;
	background: #090b0e;
	opacity: 1;
	visibility: visible;
	transition: opacity .65s ease, visibility .65s ease;
}
.an-opening::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(5,7,10,.72), rgba(8,10,13,.92));
	opacity: 0;
	filter: grayscale(48%) contrast(1.08);
	animation: an-opening-photo 2.8s .25s ease forwards;
}
.an-opening::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 0 48%, rgba(153,190,220,.14) 48% 50%, rgba(255,255,255,.2) 50% 50.35%, transparent 52%);
	transform: scaleX(0);
	animation: an-opening-sweep 2.45s cubic-bezier(.7,0,.2,1) forwards;
}
.an-opening.is-finished {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.an-opening__inner {
	position: absolute;
	z-index: 2;
	left: 50%;
	transform: translateX(-50%);
	width: min(72vw, 560px);
	text-align: center;
}
.an-opening__history {
	position: absolute;
	z-index: 2;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	align-items: baseline;
	gap: 12px;
	font-family: "EB Garamond", serif;
	font-size: 12px;
	letter-spacing: .24em;
	color: rgba(255,255,255,.88);
	white-space: nowrap;
	margin: 0;
	opacity: 0;
	animation: an-opening-history .65s .12s ease forwards;
}
.an-opening__history-start,
.an-opening__history-year {
	font-size: 18px;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	min-width: 4.5em;
}
.an-opening__history-start { text-align: right; }
.an-opening__history-year { text-align: left; }
.an-opening__history-line {
	position: relative;
	display: block;
	width: clamp(72px, 12vw, 150px);
	height: 1px;
	background: rgba(255,255,255,.25);
	overflow: hidden;
}
.an-opening__history-line::after {
	content: "";
	position: absolute;
	inset: 0;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	animation: an-opening-timeline 2.05s cubic-bezier(.65,0,.2,1) forwards;
}
.an-opening__history-label {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .3em;
	color: #a9c9e1;
}
.an-opening__logo {
	position: relative;
	width: 100%;
	aspect-ratio: 2517 / 503;
}
.an-opening__logo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.an-opening__base {
	filter: brightness(0) invert(1);
	opacity: .14;
}
.an-opening__color {
	filter: brightness(0) invert(1);
	opacity: .94;
	clip-path: inset(0 100% 0 0);
	animation: an-logo-fill 1.75s cubic-bezier(.65, 0, .2, 1) .2s forwards;
}
.an-opening__caption {
	margin-top: 26px;
	font-family: "EB Garamond", serif;
	font-size: 12px;
	letter-spacing: .36em;
	color: rgba(255,255,255,.62);
	opacity: 0;
	transform: translateY(8px);
	animation: an-opening-caption .6s ease 1.15s forwards;
}
/* Webフォント確定前の一瞬だけ描画を止め、字形・位置の切り替わりを見せない */
html.fonts-loading .an-opening__inner,
html.fonts-loading .an-opening__history,
html.fonts-loading .an-hero .num50 {
	visibility: hidden;
}
html.fonts-loading .an-opening::before,
html.fonts-loading .an-opening::after,
html.fonts-loading .an-opening__color,
html.fonts-loading .an-opening__caption,
html.fonts-loading .an-opening__history {
	animation-play-state: paused;
}
html.fonts-loading .an-opening__history-line::after {
	animation-play-state: paused;
}
html.an-opening-lock,
body.an-opening-lock {
	overflow: hidden;
	overscroll-behavior: none;
}
@keyframes an-logo-fill {
	to { clip-path: inset(0 0 0 0); }
}
@keyframes an-opening-caption {
	to { opacity: 1; transform: none; }
}
@keyframes an-opening-history {
	to { opacity: 1; }
}
@keyframes an-opening-timeline {
	to { transform: scaleX(1); }
}
@keyframes an-opening-sweep {
	0% { transform: scaleX(0); }
	48% { transform: scaleX(1); }
	100% { transform: translateX(100%); }
}
@keyframes an-opening-photo {
	0% { opacity: 0; transform: scale(1.025); }
	42%, 78% { opacity: .78; }
	100% { opacity: .48; transform: scale(1); }
}
@media (max-width: 700px) {
	.an-opening__inner { width: min(84vw, 420px); }
	.an-opening__history { transform: translateX(-50%); }
	.an-opening__caption { margin-top: 20px; font-size: 10px; letter-spacing: .28em; }
}
@media (prefers-reduced-motion: reduce) {
	.an-opening::before { opacity: .25; transform: none; animation: none; }
	.an-opening::after { display: none; }
	.an-opening__color { clip-path: none; animation: none; }
	.an-opening__history { opacity: 1; animation: none; }
	.an-opening__caption { opacity: 1; transform: none; animation: none; }
}
/* 比較用：白背景オープニング */
html.opening-light .an-opening {
	background: #fff;
}
html.opening-light .an-opening::before {
	display: none;
}
html.opening-light .an-opening::after {
	display: none;
}
html.opening-light .an-opening__history {
	color: var(--navy);
}
html.opening-light .an-opening__history-label {
	color: #0068b7;
}
html.opening-light .an-opening__history-line {
	background: rgba(0,104,183,.18);
	color: #0068b7;                 /* 伸びていく線もブルー */
}
html.opening-light .an-opening__base {
	filter: grayscale(1);
	opacity: .12;
}
html.opening-light .an-opening__color {
	filter: none;
	opacity: 1;
}
html.opening-light .an-opening__caption {
	color: var(--ink-3);
}
html.opening-light body.an-opening-lock .an-hero .num50 {
	color: #0068b7;                 /* オープニング時の「50」はブルー */
}
html.opening-light body.an-opening-lock .an-hero .num50 small {
	color: var(--gold);
}
/* ==================================================
   セクション別の固定背景（bg-stage）
   ・オープニング / ヒーロー: 画像なし＝真っ白
   ・#greeting: 自社ビルをうっすら
   ・#history 以降（#future・フッター）: 大樹をうっすら
   物理レイヤーは2枚（クロスフェード用に交互使用）。
   セクション→画像の対応は末尾 JS の SECTION_BG マップで管理（枚数無制限）。
================================================== */
.bg-stage {
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
}
.bg-stage__layer {
	position: absolute;
	inset: 0;
	background-position: var(--bg-position, center top);
	background-size: var(--bg-size, cover);
	background-repeat: no-repeat;
	opacity: 0;
	filter: grayscale(45%);
	transition: opacity .8s ease;
}
/* 既定は写真用の .07。線画（#future）は JS 側で --bg-opacity / --bg-size /
   --bg-filter を個別に指定し、ここではそれを拾うだけにする */
.bg-stage__layer.is-on { opacity: var(--bg-opacity, .07); }
@media (prefers-reduced-motion: reduce) {
	.bg-stage__layer { transition: none; }
}
.anniv img { max-width: 100%; height: auto; display: block; }
.anniv a { color: inherit; text-decoration: none; }

/* 参考周年ページ準拠: 固定レールと中央のコンテンツ領域 */
.an-main,
.an-footer {
	margin-inline: 0;
}
.an-inner { max-width: 1180px; }
.an-inner--narrow { max-width: 840px; }
.anniv-rail {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: 90;
	width: 92px;
	background: transparent;
	pointer-events: none;
}
.anniv-rail::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	background: rgba(16,16,16,.12);
}
.anniv-rail--left { left: 0; }
.anniv-rail--left::before { right: 0; }
.anniv-rail--right { right: 0; }
.anniv-rail--right::before { left: 0; }
.anniv-rail span {
	position: absolute;
	top: 50%;
	font-family: "EB Garamond", serif;
	font-size: 10px;
	letter-spacing: .18em;
	color: #4c5052;
	writing-mode: vertical-rl;
	transform: translateY(-50%);
}
.anniv-rail--left span { left: 31px; }
.anniv-rail--right span { right: 31px; }
.anniv-wordmark {
	position: fixed;
	top: 24px;
	left: 24px;
	z-index: 101;
	display: block;
	width: 44px;
	line-height: 0;
}
.anniv-wordmark img {
	width: 100%;
	height: auto;
}
.anniv-wordmark__group {
	margin-top: 2px;
	transform: translateX(-2px);
}
.anniv-menu {
	position: fixed;
	top: 29px;
	right: 31px;
	z-index: 111;
	display: block;
	width: 29px;
	height: 18px;
	padding: 0;
	border: 0;
	background: transparent;
}
.anniv-menu::before,
.anniv-menu::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background: #111;
	transition: transform .4s ease, top .4s ease;
}
.anniv-menu::before { top: 3px; }
.anniv-menu::after { top: 14px; }
.anniv-menu[aria-expanded="true"]::before { top: 8px; transform: rotate(45deg); }
.anniv-menu[aria-expanded="true"]::after { top: 8px; transform: rotate(-45deg); }
.anniv-menu-panel {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	background: rgba(255,255,255,.98);
	transition: opacity .45s ease, visibility .45s ease;
}
.anniv-menu-panel.is-open { opacity: 1; visibility: visible; }
.anniv-menu-panel nav { display: flex; flex-direction: column; gap: 24px; text-align: center; }
.anniv-menu-panel a {
	font-family: "EB Garamond", "Noto Serif JP", serif;
	font-size: clamp(32px, 4vw, 62px);
	line-height: 1.1;
	letter-spacing: .05em;
	color: #111;
	transition: color .3s ease;
}
.anniv-menu-panel a:hover,
.anniv-menu-panel a:focus-visible { color: #0068b7; }
body.anniv-menu-open { overflow: hidden; }

/* トップへ戻るボタン（右下固定・丸＋シェブロン。1画面分スクロールしたら表示） */
.to-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 105;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	border: 1px solid rgba(0, 0, 0, .2);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease, box-shadow .3s ease;
}
.to-top.is-shown { opacity: 1; visibility: visible; }
.to-top:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .14); }
.to-top::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 55%;
	width: 12px;
	height: 12px;
	border-top: 2px solid var(--ink);
	border-left: 2px solid var(--ink);
	transform: translate(-50%, -50%) rotate(45deg);
}
@media (max-width: 700px) {
	.to-top { right: 28px; bottom: 28px; width: 42px; height: 42px; }
}
@media (min-width: 1260px) {
	.an-main > section {
		padding-left: max(92px, env(safe-area-inset-left));
		padding-right: max(92px, env(safe-area-inset-right));
	}
	.an-footer { padding-left: 116px; padding-right: 116px; }
}
@media (max-width: 1259px) {
	.an-main, .an-footer { margin-inline: 0; }
	/* タブレット幅では両サイドの縦線（レール）は出さず、
	   本文は線があった位置（48pxパディング）まで全幅で使う */
	.anniv-rail { display: none; }
	.anniv-wordmark { top: 18px; left: 9px; width: 30px; }
	.anniv-menu { right: 16px; }
}
@media (min-width: 701px) and (max-width: 1259px) {
	.an-main > section { padding-left: 48px; padding-right: 48px; }
	.an-footer { padding-left: 72px; padding-right: 72px; }
}
@media (max-width: 700px) {
	.an-main, .an-footer { margin-inline: 0; }
	.anniv-rail { display: none; }
	.anniv-wordmark { top: 18px; left: 18px; width: 38px; }
	.anniv-menu { top: 20px; right: 18px; }
}

/* スクロール出現（控えめ） */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
}

/* ==================================================
   日本語の大見出し: 左→右へ一文字ずつ、かすれながら出現
   対象は .op-heading h2（50周年を迎えて／50年のあゆみ／これからの北摂…）と
   .sec-label--center h2（これからの北摂／これからの社会の課題と…）。
   JS が各文字を <span class="h-char"> に分割し --h-i に通し番号を振る。
   JS 無効時は .has-h-wipe が付かず、通常の .reveal 挙動にフォールバックする。
================================================== */
.op-heading.has-h-wipe,
.sec-label--center.has-h-wipe {
	opacity: 1;            /* ブロック単位の .reveal を打ち消し、子を個別に出す */
	transform: none;
}
.has-h-wipe .en,
.has-h-wipe .sub {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .7s ease, transform .7s ease;
}
.has-h-wipe.is-in .en { opacity: 1; transform: none; }
.has-h-wipe.is-in .sub { opacity: 1; transform: none; transition-delay: .18s; }

.h-wipe .h-char {
	display: inline-block;
	opacity: 0;
	filter: blur(6px);
	transform: translateY(0.14em);
	transition: opacity .8s ease, filter .8s ease, transform .8s ease;
	transition-delay: calc(var(--h-i, 0) * 0.085s);
	will-change: opacity, filter;
}
.h-wipe.is-in .h-char {
	opacity: 1;
	filter: blur(0);
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.has-h-wipe .en,
	.has-h-wipe .sub,
	.h-wipe .h-char {
		opacity: 1;
		filter: none;
		transform: none;
		transition: none;
		transition-delay: 0s;
	}
}

/* ==================================================
   専用フッター
================================================== */
.an-footer {
	text-align: center;
	padding: 56px 24px 48px;
	color: var(--ink-3);
	font-size: 11.5px;
	letter-spacing: .14em;
}
.an-footer__logo { display: inline-block; margin-bottom: 18px; }
.an-footer__logo img { width: min(320px, 78vw); height: auto; margin: 0 auto; }
.an-footer__anniv {
	font-family: "EB Garamond", serif;
	font-size: 12px;
	letter-spacing: .32em;
	color: var(--gold);
	margin-bottom: 30px;
}
.an-footer__corp { margin-bottom: 20px; font-size: 12px; }
.an-footer__corp a {
	color: var(--ink-2);
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	transition: .3s;
}
.an-footer__corp a:hover { color: var(--navy); }
.an-footer__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 28px;
	margin-bottom: 18px;
	font-size: 12px;
}
.an-footer__nav a { color: var(--ink-2); transition: .3s; }
.an-footer__nav a:hover { color: var(--navy); }

/* ==================================================
   共通パーツ
================================================== */
.an-section { padding: 100px 24px; }
.an-inner { max-width: 1180px; margin: 0 auto; }
.an-inner--narrow { max-width: 840px; margin: 0 auto; }

.sec-label { margin-bottom: 48px; }
.sec-label .en {
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 15px;
	letter-spacing: .4em;
	color: var(--gold);
}
.sec-label h2 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: clamp(23px, 3.2vw, 31px);
	letter-spacing: .14em;
	color: var(--navy);
	margin-top: 4px;
	line-height: 1.7;
}
.sec-label--center { text-align: center; }

/* 汎用ボタン */
.an-btn {
	display: inline-block;
	padding: 14px 50px;
	border: 1px solid var(--navy);
	border-radius: 999px;
	color: var(--navy);
	font-size: 13px;
	letter-spacing: .28em;
	background: #fff;
	transition: .3s;
}
.an-btn:hover { background: var(--navy); color: #fff; }

/* 仮文マーカー（お客様確認待ちの文章に付ける） */
.tbd {
	display: inline-block;
	margin-top: 10px;
	font-size: 11px;
	color: #b05050;
	border: 1px dashed #d8b0b0;
	border-radius: 4px;
	padding: 2px 10px;
	letter-spacing: .1em;
}

/* ==================================================
   トップ: ヒーロー
================================================== */
.an-hero {
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 84px 24px 170px; /* 下余白を拡大: リード文とSCROLLサインの重なり防止（低いウィンドウ＋センターシフト時） */
	position: relative;
	overflow: hidden;
	background: radial-gradient(60% 50% at 50% 38%, rgba(255, 255, 255, .85) 0%, transparent 100%);
}
.an-hero .ghost {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: min(60vw, 670px);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(0, 0, 0, .06);
	transform: translate(-34px, -180px);
	pointer-events: none;
}
/* ヒーローの建物ラフイラスト（左＝旧本社玄関 / 右＝現本社ビル）
   左右で「高さ」を揃えたペア。イラストは全体を表示（トリミングなし）。
   装飾レール(約92px)の外側〜中央テキストの手前に収める */
.an-hero__art {
	--art-h: clamp(280px, 40vh, 400px);   /* 左右で揃える表示高さ */
	position: absolute;
	top: 50%;
	z-index: 95;            /* 装飾レール(90)より前・メニュー(100+)より後ろ */
	color: var(--ink);
	opacity: .9;
	pointer-events: none;
	transform: translateY(-52%);
	/* 下端を本文にかかる手前でフェード（左右共通） */
	-webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 96%);
	        mask-image: linear-gradient(to bottom, #000 70%, transparent 96%);
}
.an-hero__art svg { display: block; width: 100%; height: auto; }
/* 幅 = 揃えた高さ × 各イラストの縦横比（左 1064:1478 / 右 1505:1045）。
   左（旧本社）は大きめ＆中央寄り */
.an-hero__art--left {
	left: clamp(88px, 6vw, 124px);
	width: calc(var(--art-h) * 0.72 * 1.7);
	transform: translateY(-58%);
}
.an-hero__art--right {
	right: clamp(112px, 8vw, 164px);
	width: calc(var(--art-h) * 1.44);
	/* 右（現本社）は上端も画面内に入るので、上下ともフェード */
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 13%, #000 72%, transparent 97%);
	        mask-image: linear-gradient(to bottom, transparent 0, #000 13%, #000 72%, transparent 97%);
}
/* 左右フリップ配置は大型モニターのみ。1601〜1900px は少し小さめに */
@media (min-width: 1601px) and (max-width: 1900px) {
	.an-hero__art { --art-h: clamp(224px, 30vh, 300px); }
	.an-hero__art--left  { left:  clamp(96px, 5vw, 112px); }
	.an-hero__art--right { right: clamp(96px, 6vw, 116px); }
}
/* 1600px 以下（＝大型モニター以外）: 左右配置をやめ、うっすら背景として
   左のイラスト＝左上 ／ 右のイラスト＝右下 に配置（本文の背面） */
@media (max-width: 1600px) {
	.an-hero__art {
		z-index: 0;               /* 本文（.an-hero__inner）の背面 */
		opacity: .12;
		transform: none;
		top: auto;
		bottom: auto;
	}
	.an-hero__art--left {
		top: -5%;
		left: -12%;
		right: auto;
		width: min(62vw, 360px);
	}
	.an-hero__art--right {
		bottom: -3%;
		right: -12%;
		left: auto;
		width: min(80vw, 440px);
	}
}
/* うっすら背景モードの広い帯（1161〜1600px）: 端に寄りすぎないよう
   一回り大きく＆はみ出しを減らして、背景イラストをしっかり見せる */
@media (min-width: 1161px) and (max-width: 1600px) {
	.an-hero__art { opacity: .1; }
	.an-hero__art--left {
		top: -8%;
		left: -9%;
		width: clamp(320px, 34vw, 480px);
	}
	.an-hero__art--right {
		bottom: -6%;
		right: -9%;
		width: clamp(400px, 42vw, 580px);
	}
}
@media (max-width: 560px) {
	.an-hero__art { opacity: .11; }
	.an-hero__art--left  { width: 66vw; left: -15%; top: -3%; }
	.an-hero__art--right { width: 92vw; right: -18%; bottom: -2%; }
}

.an-hero__inner {
	position: relative;
	z-index: 96;           /* ヒーローのイラスト(95)より前 */
	width: min(100%, 980px);
	translate: 0 var(--hero-center-shift, 0px);
}
.an-hero .en {
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 14px;
	letter-spacing: .5em;
	color: var(--gold);
}
.an-hero .num50 {
	display: flex;
	justify-content: center;
	font-family: "EB Garamond", serif;
	font-size: clamp(126px, min(22vw, 28vh), 280px);
	font-weight: 500;
	line-height: .82;
	color: var(--navy);
	margin: 20px 0 0;
	transition: color .6s ease;   /* オープニングのブルー → FVの黒 をなめらかに */
}
.an-hero .num50__core {
	display: inline-block;
	position: relative;
	width: max-content;
}
/* オープニング中もFV本体の同じ文字要素を前面に表示する */
body.an-opening-lock .an-hero .num50 {
	z-index: 10001;
	opacity: 1;
	transform: none;
	color: #f5f6f7;
	transition: color .65s ease;
}
body.an-opening-lock .an-hero__inner {
	z-index: 10001;
}
/* オープニング中は「50」以外の文字を出さず、FV表示（ロック解除）で
   「th」と同じくフェードイン（.reveal の挙動に戻す）。少しずつ時間差 */
body.an-opening-lock .an-hero__inner > :not(.num50) {
	opacity: 0;
	transform: none;
	transition: none;
}
.an-hero .en    { transition-delay: .04s; }
.an-hero h1     { transition-delay: .12s; }
.an-hero .years { transition-delay: .20s; }
.an-hero .lead  { transition-delay: .28s; }
body.an-opening-lock .an-hero .num50 small {
	color: #c8d4dc;
	transition: color .65s ease;
}
html.opening-light body.an-opening-exiting .an-hero .num50 {
	color: var(--navy);           /* 退場時にブルー→黒へ */
}
body.an-opening-exiting .an-hero .num50 small {
	color: var(--gold);
}
/* 「th」はオープニング中は出さず、FV表示（ロック解除）で他の要素と同じくフェードで出す */
body.an-opening-lock .an-hero .num50__th {
	opacity: 0;
	transition: none;
}
.an-hero .num50__th {
	position: absolute;
	left: calc(100% - .07em);
	bottom: .03em;
	font-size: .2em;
	line-height: 1;
	letter-spacing: .05em;
	color: var(--gold);
	white-space: nowrap;
	transition: opacity .7s ease .12s;
}
@media (prefers-reduced-motion: reduce) {
	.an-hero .num50__th { transition: none; }
}
.an-hero h1 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: clamp(21px, 3.2vw, 30px);
	letter-spacing: .22em;
	text-indent: .22em;
	color: var(--navy);
	margin-top: 24px;
}
.an-hero .years {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	margin-top: 14px;
	font-family: "EB Garamond", serif;
	font-size: 15px;
	letter-spacing: .35em;
	color: var(--ink-3);
}
.an-hero .years::before,
.an-hero .years::after { content: ""; width: 60px; height: 1px; background: var(--gold-light); }
.an-hero .lead {
	max-width: 680px;
	margin: 22px auto 0;
	font-family: "Noto Serif JP", serif;
	font-weight: 500;
	font-size: 16px;
	letter-spacing: .04em;
	line-height: 2.1;
	text-align: center;
}
@media (max-width: 700px) {
	.an-hero { padding: 72px 20px 150px; } /* リード文がSCROLLサインに被らないよう下を広く */
	.an-hero .ghost { transform: translate(-18px, -108px); }
	.an-hero .num50 { font-size: clamp(120px, min(44vw, 30vh), 190px); margin-top: 18px; }
	.an-hero h1 { margin-top: 26px; font-size: 20px; letter-spacing: .13em; text-indent: .13em; }
	.an-hero .lead { margin-top: 24px; line-height: 2; text-align: left; }
	.an-hero .lead br { display: none; } /* スマホは指定改行を解除して自然に折り返す */
	.an-article .serif br { display: none; } /* 迎えて本文も同様 */
}
.scroll-cue {
	position: absolute;
	bottom: 10px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 10px;
	letter-spacing: .35em;
	color: var(--ink-3);
}
.scroll-cue::after {
	content: "";
	display: block;
	width: 1px;
	height: 34px;
	margin: 7px auto 0;
	background: linear-gradient(var(--gold), transparent);
	transform-origin: top;
	animation: scrollcue 2.2s cubic-bezier(.45, 0, .2, 1) infinite;
}
@keyframes scrollcue {
	0% { transform: scaleY(0); opacity: 1; }
	55% { transform: scaleY(1); opacity: 1; }
	100% { transform: scaleY(1); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.scroll-cue::after { animation: none; }
}

/* ==================================================
   トップ: ごあいさつ抜粋
================================================== */
.an-greeting { background: rgba(255, 255, 255, .8); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.an-greeting .grid {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 56px;
	align-items: start;
}
.an-greeting .body {
	font-family: "Noto Serif JP", serif;
	font-size: 15.5px;
	line-height: 2.6;
	color: var(--ink);
}
.an-greeting .sign { margin-top: 30px; font-size: 13px; letter-spacing: .1em; color: var(--navy); }
.an-greeting .more {
	display: inline-block;
	margin-top: 24px;
	font-size: 12px;
	letter-spacing: .28em;
	color: var(--gold);
	border-bottom: 1px solid var(--gold-light);
	padding-bottom: 4px;
	transition: .3s;
}
.an-greeting .more:hover { color: var(--navy); border-color: var(--navy); }

/* ==================================================
   トップ: コンテンツ入口
================================================== */
.gate-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
}
.gate { display: block; }
.gate .ph {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	border-radius: 4px;
	transition: .4s;
	filter: saturate(.9);
}
.gate:hover .ph {
	filter: saturate(1);
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(16, 37, 78, .13);
}
.gate .no {
	display: block;
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 14px;
	letter-spacing: .3em;
	color: var(--gold);
	margin-top: 18px;
}
.gate h3 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 18px;
	letter-spacing: .08em;
	color: var(--navy);
	margin-top: 4px;
	line-height: 1.7;
}
.gate p { font-size: 12.5px; color: var(--ink-2); margin-top: 8px; line-height: 1.9; }
.gate .more { display: inline-block; margin-top: 10px; font-size: 11px; letter-spacing: .28em; color: var(--navy); }
.gate .more::after { content: "→"; margin-left: 8px; color: var(--gold); }

/* ==================================================
   トップ: 年表ティザー
================================================== */
.an-teaser { background: rgba(247, 247, 244, .8); }
.tl-strip {
	position: relative;
	display: flex;
	justify-content: space-between;
	max-width: 860px;
	margin: 0 auto;
	padding: 26px 0 6px;
}
.tl-strip::before {
	content: "";
	position: absolute;
	top: 37px; left: 0; right: 0;
	height: 1px;
	background: var(--gold-light);
}
.tl-node {
	text-align: center;
	font-family: "EB Garamond", serif;
	font-size: 18px;
	letter-spacing: .08em;
	color: var(--navy);
}
.tl-node::before {
	content: "";
	display: block;
	width: 10px; height: 10px;
	margin: 0 auto 14px;
	border-radius: 50%;
	background: var(--paper-warm);
	border: 2px solid var(--gold);
}
.tl-node.now::before { background: var(--gold); box-shadow: 0 0 0 6px rgba(160, 138, 82, .14); }
.an-teaser .note { text-align: center; margin-top: 36px; font-size: 13.5px; color: var(--ink-2); letter-spacing: .06em; }
.an-teaser .center { text-align: center; margin-top: 22px; }

/* ==================================================
   下層共通: ページヒーロー（小）
================================================== */
.an-pagehero {
	text-align: center;
	padding: 80px 24px 52px;
}
.an-pagehero .en {
	font-family: "EB Garamond", serif;
	font-style: italic;
	letter-spacing: .5em;
	font-size: 15px;
	color: var(--gold);
}
.an-pagehero h1 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: clamp(24px, 3.8vw, 34px);
	letter-spacing: .24em;
	text-indent: .24em;
	color: var(--navy);
	margin-top: 8px;
	line-height: 1.8;
}
.an-pagehero .sub { margin-top: 10px; font-size: 13px; letter-spacing: .14em; color: var(--ink-3); }

/* ==================================================
   1枚もの: セクション見出しと区画
================================================== */
.op-section { scroll-margin-top: 80px; }
.op-section--greeting { padding-bottom: 220px; position: relative; }
/* 「50周年を迎えて」見出しの左上にうっすら置く、施工中の建物のラフイラスト
   （Figma「外壁工事」644-2 系列。ヒーローの左右イラストと同じ流儀＝インライン SVG、
   fill="currentColor" で色は CSS 側の color に委ねる。背景矩形は書き出し時に除去済み）。
   足跡のように控えめに。.op-heading より前に置き、双方に position を与えて
   DOM順＝描画順にする（見出しテキストが上、イラストは背面に沈む） */
.greeting-art {
	position: absolute;
	top: clamp(16px, 4vh, 64px); /* もう少し下げた */
	left: clamp(112px, 8vw, 160px); /* 左の装飾レール（帯・幅92px）にかからないよう内側へ */
	width: clamp(200px, 24vw, 320px);
	margin: 0;
	color: var(--ink);
	opacity: .45; /* PCはうっすらさせすぎず、はっきり見せる */
	pointer-events: none;
}
.greeting-art svg { display: block; width: 100%; height: auto; }
/* .reveal.is-in（opacity:1）はクラス2つ分の詳細度があり、.greeting-art 単体の
   opacity より強い。フェードイン後もこの濃さのままにするため、同じ強さで明示的に上書きする */
.greeting-art.reveal.is-in { opacity: .45; }
/* このイラストのせいで直後の見出しに縦リズム（--greet-flow）の余白が
   二重に乗らないよう、この並びだけ打ち消す（イラストは absolute で高さを持たないため） */
.op-section--greeting > .greeting-art + .op-heading { margin-top: 0; }
/* モバイルは非表示にせず、ヒーローの .an-hero__art と同じ考え方＝
   一回り大きく・もっと薄く・角に寄せた「背景の模様」として残す（FVと同じ演出）。
   位置はこのセクションのリード文（.sub）の右下に合わせる */
@media (max-width: 700px) {
	.greeting-art {
		top: clamp(340px, 52vh, 400px);
		left: auto;
		right: 22px;
		width: min(70vw, 300px);
		opacity: .08;
	}
	.greeting-art.reveal.is-in { opacity: .08; }
}
.op-heading {
	text-align: center;
	padding: 90px 24px 30px;
}
.op-heading .en {
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 15px;
	letter-spacing: .2em;
	color: var(--gold);
}
.op-heading h2 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: clamp(24px, 3.4vw, 32px);
	letter-spacing: .22em;
	text-indent: .22em;
	color: var(--navy);
	margin-top: 8px;
	line-height: 1.8;
}
.op-heading .sub { margin-top: 8px; font-size: 13px; letter-spacing: .12em; color: var(--ink-3); }
.op-lead {
	max-width: 720px;
	margin: 0 auto;
	line-height: 2.5;
	text-align: center;
}

/* ==================================================
   MESSAGE / HISTORY 扉（.anniv-gate）
   2026-08-27: 先方指示でセクションごと撤去（背景写真だけでなく扉自体を廃止）。
   #greeting はヒーロー直後、#history は #greeting 直後に戻した。
   復活する可能性があるため CSS はコメントとして保持。
================================================== */
/*
.anniv-gate {
	position: relative;
	min-height: 92svh;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: var(--paper-warm);
}
.anniv-gate img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 55%;
	filter: grayscale(1) contrast(.92) brightness(1.04);
	opacity: .6;
	transform: scale(1.06);
	transition: transform 2.4s ease;
}
.anniv-gate.is-in img { transform: scale(1); }
.anniv-gate::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.4) 45%, rgba(255,255,255,.82));
}
.anniv-gate--plain::after { display: none; }
.anniv-gate__copy {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 0 24px;
}
.anniv-gate__copy .en {
	font-family: "EB Garamond", serif;
	font-weight: 500;
	font-size: clamp(72px, 12vw, 168px);
	line-height: .88;
	letter-spacing: .06em;
	color: var(--ink);
}
.anniv-gate__copy .sub {
	margin-top: 22px;
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 13px;
	letter-spacing: .18em;
	color: var(--gold);
}
@media (max-width: 700px) {
	.anniv-gate { min-height: 78svh; }
	.anniv-gate__copy .en { font-size: clamp(56px, 17vw, 96px); }
}
@media (prefers-reduced-motion: reduce) {
	.anniv-gate img { transform: none; transition: none; }
}
*/

/* ==================================================
   あゆみ: 年代セクション（時代バンドなし）
   背景には森・木々のイメージをごく薄く敷く
================================================== */
.history-zone { position: relative; }
.era-sec {
	position: relative;
	scroll-margin-top: 90px;
}
/* 年代の最後のエントリは下余白を縮める（年代境目の隙間が
   通常の年間隔と大差なく見えるように） */
.timeline > .t-entry:last-child { padding-bottom: 4px; }
/* ==================================================
   あゆみ: タイムライン（原田産業式・左レール年号＋写真×文章の2カラム）
================================================== */
.timeline {
	max-width: 1080px;
	margin: 0 auto;
	padding: 10px 20px 16px;
	position: relative;
}
.timeline::before {
	content: "";
	position: absolute;
	top: -72px; /* 年代セクション間の余白ぶん上へ延長し、線を途切れさせない */
	bottom: 0;
	left: 158px;
	width: 1px;
	background: #C9C9C2; /* レールは罫線よりひと段濃く */
}
.era-sec:first-of-type .timeline::before { top: 0; }
/* 年表の終端: 最後の年代のレールを少し延ばし、「育った若葉」で締める
   （頭の .tl-sprout ＝芽 と対になるブックエンド。線 → 若葉 → NEXT 50 YEARS の流れ） */
.era-sec:last-of-type .timeline { --tl-tail: clamp(44px, 6vh, 72px); }
.era-sec:last-of-type .timeline::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 158px;
	width: 1px;
	height: var(--tl-tail);
	background: #C9C9C2;
	pointer-events: none;
}
@media (max-width: 700px) {
	.era-sec:last-of-type .timeline::after { left: 16px; }
}

/* 線の頭／終端の若葉（一筆書き風の線画） */
.tl-sprout {
	position: absolute;
	top: -42px;
	left: 158.5px; /* レール（1px線）の中心に合わせる */
	transform: translateX(-50%);
	color: #C9C9C2; /* レールと同色 */
	pointer-events: none;
}
.tl-sprout--end {
	top: auto;
	bottom: calc(-1 * var(--tl-tail) - 46px); /* 終端線の先に接続 */
	color: #C9C9C2; /* 頭の芽・レールと同色 */
	transform: translateX(-50%) scale(1.15);
}
@media (max-width: 700px) {
	.tl-sprout { left: 16px; transform: translateX(-50%) scale(.8); }
	.tl-sprout--end { left: 16px; transform: translateX(-50%) scale(1); }
}
.t-entry {
	position: relative;
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr); /* minmax(0,…): 狭い画面でトラックが縮めるように */
	gap: 0 56px;
	padding: 0 0 44px; /* 次の年との間隔 */
}

/* 左レールの年号（大きなセリフ数字＋和暦）
   施工実績ボタンはセル下端（次の年号との間）に置く */
.t-year {
	text-align: left;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.t-year .y {
	font-family: "EB Garamond", serif;
	font-weight: 500;
	font-size: 40px;
	letter-spacing: .04em;
	line-height: 1;
	color: var(--ink);
	display: block;
}
.t-year .era {
	display: block;
	font-size: 11px;
	letter-spacing: .1em;
	color: var(--gold);
	margin-top: 8px;
}

/* 本文: テキスト（左）×写真（右）
   テキスト列は内容幅（最大520px）に縮み、写真がテキストのすぐ右に付く */
.t-body {
	display: grid;
	/* 写真列は固定340px: 原本が小さい写真でも列がつぶれないように（画像側は width:100% で列幅まで拡大）。
	   注意: fit-content() を minmax() の中に書くと宣言ごと無効になる（旧記述の不具合） */
	grid-template-columns: fit-content(560px) 340px;
	justify-content: start;
	gap: 8px 80px;
	grid-auto-flow: dense;
	align-items: start;
	min-width: 0;
}
.t-body > .t-photos { grid-column: 2; }
.t-body > .t-item,
.t-body > .t-topic { grid-column: 1; }

/* 写真がない年は本文を左端から全幅で */
.t-entry--nophoto .t-body { grid-template-columns: minmax(0, 1fr); }
.t-entry--nophoto .t-body > .t-item,
.t-entry--nophoto .t-entry--nophoto .t-body > .t-topic { grid-column: 1; }

.t-item + .t-item { margin-top: 10px; }
/* 月はレールの左側に置き、レールから右へ伸びる枝線の先に見出し（h3）が来る */
.t-item { position: relative; }
.t-item .month {
	position: absolute;
	top: 7px;
	right: calc(100% + 46px); /* 右端がレールの8px手前（レール＝見出し左端-38px） */
	font-size: 12px;
	letter-spacing: .16em;
	color: var(--ink-3);
	white-space: nowrap;
	line-height: 1.6;
}
/* 枝線は見出し（h3）ごとに、1行目の高さに合わせて出す */
.t-item h3 { position: relative; }
.t-item h3::before {
	content: "";
	position: absolute;
	top: 16px;      /* h3 1行目の中心（line-height 1.666 × 19px ÷ 2） */
	left: -38px;    /* ちょうどレールの位置から */
	width: 30px;    /* 見出しの8px手前まで */
	height: 1px;
	background: var(--gold-light);
}
.t-item h3 {
	margin-bottom: 4px;
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 19px;
	letter-spacing: .05em;
	color: var(--ink);
	line-height: 1.666;
}
.t-item .note { font-size: 12.5px; color: var(--ink-2); line-height: 2.1; }
/* トピックス（囲み記事） */
.t-topic {
	margin-top: 16px;
	border: 2px dotted rgba(0, 0, 0, .22);
	background: #fff;
	padding: 14px 18px;
	font-size: 13px;
	color: var(--ink);
	line-height: 2;
	text-align: left;
}

/* 写真（原田産業式: 1枚目を大きく、2枚目を対角に重ねるコラージュ配置） */
.t-photos { margin-top: 0; }
.t-photos figure { margin: 0; }
.t-photos figure:nth-child(odd) { width: min(84%, 400px); }
.t-photos figure:nth-child(even) {
	width: min(58%, 290px);
	margin-left: auto;
	margin-top: -48px;
	position: relative;
	z-index: 1;
}
.t-photos figure:nth-child(odd):not(:first-child) { margin-top: 26px; }
.t-photos img { width: 100%; }
.t-photos figcaption {
	font-family: "Noto Serif JP", serif;
	font-size: 11.5px;
	color: var(--blue);
	margin-top: 7px;
	letter-spacing: .04em;
	line-height: 1.7;
	text-align: left;
}
/* 施工実績アコーディオン */
/* 施工実績ボタン（年号の下）＋モーダル */
.works-btn {
	display: inline-block;
	position: relative;
	align-self: flex-end;
	margin: 14px 0 0 0; /* 右端はレールの18px手前（少し離す） */
	padding: 7px 12px 22px; /* 下は click ラベル行ぶん */
	width: 140px; /* 年号〜月の並びとほぼ同じ幅 */
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .2);
	border-radius: 4px;
	box-shadow: 0 1px 6px rgba(0, 0, 0, .05);
	font-family: inherit;
	font-size: 12px;
	letter-spacing: 0;
	line-height: 1.9;
	color: var(--blue);
	cursor: pointer;
	text-align: center;
	transition: .25s;
}
/* 実績ボタンの行（年表フロー内・左カラム位置） */
.works-row { padding: 0 0 44px; }

/* 同じ年のチップ行の左（年号カラム位置）に添える実績ボタン */
.t-world .works-side {
	position: absolute;
	left: 0;
	top: 0;
}
.t-world .works-side .works-btn { margin: 0 0 0 -36px; }

/* 右下の直角三角形（押せる感の角折り） */
.works-btn::after {
	content: "";
	position: absolute;
	right: 4px;
	bottom: 4px;
	width: 0;
	height: 0;
	border-left: 9px solid transparent;
	border-bottom: 9px solid #0039A8;
}
/* 三角の左に「click」テキスト（押せることが分かるように） */
.works-btn::before {
	content: "click";
	position: absolute;
	right: 17px;
	bottom: 4px;
	font-size: 10px;
	letter-spacing: .12em;
	line-height: 1;
	color: #0039A8;
}
/* セミナーカード（年表内で講演会・セミナーを区別して見せる。
   右端の固定カラム・年号と同じ高さに置く） */
.t-entry--sem .t-body { grid-template-columns: minmax(0, 1fr) 320px; } /* 固定幅: 「開催」込みの演題が折り返さない幅 */
.t-entry--sem-wide .t-body { grid-template-columns: minmax(0, 1fr) 380px; } /* 演題が長いカードは広めに */
.t-body > .t-item--sem {
	grid-column: 2;
	grid-row: 1 / span 9;
	align-self: start;
	width: 100%;
}
/* カードより上の行の見出しは全幅にして折り返しを防ぐ（1998年など） */
.t-body > .t-item--wide { grid-column: 1 / -1; }
.sem-card {
	position: relative;
	margin: 0;
	padding: 14px 18px 12px;
	background: linear-gradient(135deg, #FCFCFA 0%, #F4F4F0 100%);
	border: 1px solid var(--line);
	border-radius: 6px;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .05);
	overflow: hidden;
}
.sem-card .sem-title {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .04em;
	color: var(--navy);
	line-height: 1.9;
}
.sem-card .note {
	font-size: 12px;
	color: var(--ink-2);
	line-height: 1.9;
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dotted rgba(0, 0, 0, .14);
}

.nw { white-space: nowrap; } /* 名前・件数などを途中で折り返さない汎用クラス */
@media (max-width: 700px) {
	.nw { white-space: normal; } /* スマホは幅が足りず横スクロールの原因になるため折り返す */
}
.note-name { display: inline-block; margin-right: 1em; } /* 名簿の名前間隔（区切り文字なし） */
.works-btn:hover { color: var(--ink); border-color: var(--navy); box-shadow: 0 2px 10px rgba(0, 0, 0, .1); }

.wm-overlay {
	position: fixed;
	inset: 0;
	z-index: 300;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(20, 20, 20, .45);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.wm-overlay.is-open { opacity: 1; visibility: visible; }
.wm-panel {
	position: relative;
	background: #fff;
	width: min(100%, 760px);
	max-height: 82vh;
	overflow-y: auto;
	padding: 40px 44px 36px;
	border-radius: 6px;
	transform: translateY(14px);
	transition: transform .3s ease;
}
.wm-overlay.is-open .wm-panel { transform: none; }
.wm-close {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 34px; height: 34px;
	background: none;
	border: 1px solid var(--line);
	border-radius: 50%;
	font-size: 17px;
	line-height: 1;
	color: var(--ink-2);
	cursor: pointer;
	transition: .25s;
}
.wm-close:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.wm-title {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: .08em;
	color: var(--navy);
	padding-bottom: 14px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--line);
}
.wm-body { font-size: 12.5px; color: var(--ink-2); line-height: 2.1; text-align: left; }
/* 実績一覧のカテゴリ見出し（＜法人＞＜マンション＞＜個人宅＞など） */
.wm-body .works-cat {
	display: inline-block;
	margin-top: 10px;
	font-weight: 600;
	color: var(--ink);
}
body.wm-lock { overflow: hidden; }

/* 世の中チップ（時間軸のマーカーとして縦線にまたがせる。
   地球儀アイコンの中心がレール＝left:158px に乗るよう配置） */
.t-world { position: relative; text-align: left; padding: 4px 0 64px; }
/* 出来事＋影響＋取り組みをひとまとめにした白枠カード */
.t-world .chip-group {
	display: block;
	width: fit-content;
	background: #E9F1FA; /* 薄い青＝世の中の出来事レイヤー */
	border: 1px solid rgba(0, 57, 168, .28);
	border-radius: 8px;
	overflow: hidden; /* 左端の金帯を角丸に合わせてクリップ */
	padding: 12px 26px 14px 14px;
	position: relative;
	z-index: 1;
	margin-left: 116px; /* 158px(レール) - 20px(timeline左padding) - 22px(アイコン中心)。単独表示（時代の境目）のみ効く。.t-world--in 側は下で0に打ち消す */
	box-shadow: 0 1px 6px rgba(0, 0, 0, .05);
}
.t-world .chip-group::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0; /* 上下端まで。角の部分はカードの overflow:hidden（角丸）でクリップ */
	width: 4px;
	background: #0039A8;
}
.t-world .chip-group + .chip-group { margin-top: 14px; }
.t-world .chip {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12.5px;
	color: var(--ink-2);
	letter-spacing: .05em;
}
/* 影響はヘッダーの直下（仕切り線の上）に置き、
   点線の仕切りは協同の取り組みの手前に入れる */
.t-world .chip-group .chip:not(:only-child) { margin-bottom: 6px; }
.t-world .chip-effect--impact + .chip-effect--action {
	border-top: 1px dotted rgba(0, 0, 0, .18);
	padding-top: 10px;
	margin-top: 10px;
}
.t-world .chip::before { content: "🌐"; }
.t-world .chip b {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 14px;
	color: var(--blue);
	letter-spacing: .1em;
}
/* エントリ内チップ（年表に同じ年がある場合、年号の横の行に表示） */
.t-body > .t-world--in {
	grid-column: 1 / -1;
	margin-left: -60px; /* アイコン中心をレールに合わせる（本文列の開始位置ぶん戻す） */
}
.t-world--in .chip-group { margin-left: 0; }
/* タブレット幅では時事チップをmain幅いっぱいに広げる */
@media (min-width: 701px) and (max-width: 1259px) {
	.t-world .chip-group { width: 100%; margin-left: 0; }
	/* エントリ内チップは年号列（120px＋間隔36px）のぶん左へ引き出して全幅に */
	.t-body > .t-world--in { margin-left: -156px; width: calc(100% + 156px); }
}
/* ==================================================
   記事系（迎えて・これから）
================================================== */
.an-article {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 20px 40px;
}
.an-article > p {
	font-size: 15px;
	line-height: 2.5;
	color: var(--ink);
	margin-bottom: 1.8em;
}
.an-article .serif { font-family: "Noto Serif JP", serif; }
.an-article .sign { text-align: right; font-size: 13.5px; letter-spacing: .1em; color: var(--navy); }

/* 代表写真＋署名 */
.an-portrait {
	max-width: 760px;
	margin: 48px auto 0;
	padding: 0 24px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 36px;
}
.an-portrait figure { margin: 0; width: min(44%, 250px); }
.an-portrait figure img { width: 100%; }
.an-portrait__names {
	font-family: "Noto Serif JP", serif;
	font-size: 14px;
	line-height: 2.2;
	color: var(--navy);
	letter-spacing: .08em;
	padding-bottom: 6px;
}
.an-portrait .daihyo {
	margin-top: 14px;
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.an-portrait .daihyo span { font-size: 13px; }
.an-portrait .daihyo img {
	display: inline-block;
	width: auto;
	height: 30px;
	vertical-align: middle;
}
@media (max-width: 700px) {
	.an-portrait { flex-direction: column; align-items: center; gap: 20px; }
	.an-portrait figure { width: min(70%, 250px); }
	.an-portrait__names { text-align: center; }
	.an-portrait .daihyo { justify-content: center; }
}

/* 誓い・方針の番号付きブロック */
.pledge { counter-reset: pledge; max-width: 760px; margin: 0 auto; padding: 0 20px; }
.pledge__item {
	position: relative;
	padding: 26px 0 26px 74px;
	border-bottom: 1px solid var(--line);
}
.pledge__item:first-child { border-top: 1px solid var(--line); }
.pledge__item::before {
	counter-increment: pledge;
	content: "0" counter(pledge);
	position: absolute;
	left: 6px;
	top: 24px;
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 34px;
	color: var(--gold);
	line-height: 1;
}
.pledge__item h3 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 18px;
	letter-spacing: .08em;
	color: var(--navy);
	line-height: 1.8;
}
.pledge__item p { font-size: 16px; color: var(--ink-2); margin-top: 6px; line-height: 2.1; }

/* ==================================================
   #greeting エディトリアル強調（模倣版に合わせる）
   ・見出し「50周年を迎えて」を大きなセリフ見出しに
   ・方針リストを天地の罫線で囲み、本文・代表写真も大きめに
   ・縦の間隔は 1 つのリズム（--greet-flow）で全ブロック統一する。
     唯一 .pledge（天地を罫線で囲った枠）の前後だけ 1 段広く取る＝
     罫線が隣の本文に貼り付いて「枠」に見えなくなるのを防ぐため。
   ※ #history / #future の見出しには効かせない（#greeting 限定）
================================================== */
.op-section--greeting {
	--greet-flow: clamp(56px, 7vh, 88px);        /* ブロック間の基本リズム */
	--greet-flow-wide: clamp(80px, 10vh, 124px); /* 罫線枠（.pledge）の前後だけ */
	padding-bottom: clamp(88px, 12vh, 140px);
}
.op-section--greeting > * + * { margin-top: var(--greet-flow); }
.op-section--greeting .pledge { margin-top: var(--greet-flow-wide); }
.op-section--greeting .pledge + * { margin-top: var(--greet-flow-wide); }

.op-section--greeting .op-heading {
	padding: clamp(88px, 15vh, 168px) 24px 0; /* 上＝セクションの入り。下は --greet-flow に任せる */
	position: relative; /* .greeting-art（absolute）より DOM 順で後ろ＝手前に描画するため */
}
.op-section--greeting .op-heading h2 {
	font-size: clamp(24px, 3.6vw, 38px);
	line-height: 1.5;
	letter-spacing: .1em;
	text-indent: 0;
	margin-top: 12px;
}
.op-section--greeting .op-heading .sub {
	margin-top: 22px;
	font-family: "Noto Serif JP", serif; /* 大きな明朝見出しに合わせて本文リードも明朝に */
	font-size: 14px;
	letter-spacing: .08em;
	color: var(--ink-2);
}
.op-section--greeting .an-article { max-width: 720px; padding: 0 20px; }
.op-section--greeting .an-article > p { font-size: 16px; line-height: 2; }
/* 冒頭の2段落（見出し直後の記事）だけセンター揃え。「最後に…」は左揃えのまま */
.op-section--greeting .op-heading + .an-article > p { text-align: center; }
/* スマホは指定改行を解除して自然に折り返すため、センターではなく両端揃えに */
@media (max-width: 700px) {
	.op-section--greeting .op-heading + .an-article > p { text-align: justify; }
}
/* サブ文の指定改行（北摂の地で50年。等）はスマホのみ。広い画面では1行のまま */
@media (min-width: 701px) {
	.op-heading .sub br { display: none; }
}
/* スマホのみ有効な改行（見出しの折り返し位置指定用） */
br.sp-br { display: none; }
@media (max-width: 700px) {
	br.sp-br { display: inline; }
	.h2-dot { display: none; } /* future見出しの「・」はスマホでは出さない */
}
.op-section--greeting .an-article > p:last-child { margin-bottom: 0; }
.op-section--greeting .pledge {
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
	border-top: 1px solid var(--navy);
	border-bottom: 1px solid var(--navy);
}
.op-section--greeting .pledge__item { padding: 42px 20px 42px 74px; }
.op-section--greeting .pledge__item:first-child { border-top: 0; }
.op-section--greeting .pledge__item:last-child { border-bottom: 0; }
.op-section--greeting .pledge__item::before { top: 40px; }
.op-section--greeting .an-portrait { max-width: 860px; margin-left: auto; margin-right: auto; }
@media (max-width: 700px) {
	.op-section--greeting {
		--greet-flow: clamp(38px, 6vh, 60px);
		--greet-flow-wide: clamp(54px, 8vh, 80px);
	}
	.op-section--greeting .op-heading { padding: clamp(56px, 11vh, 100px) 22px 0; }
	.op-section--greeting .op-heading h2 { font-size: clamp(21px, 5.4vw, 28px); }
	.op-section--greeting .pledge__item { padding: 32px 12px 32px 64px; }
}

/* ==================================================
   #history 見出しゾーン（#greeting と同じエディトリアル強調）
   ・「50年のあゆみ」を大きなセリフ見出しに、サブ／リード文も明朝
   ・見出し→リード→年表ツリー の縦間隔を 1 つのリズムに
   ※ 年表ツリー（.history-zone 以下）は一切変更しない
================================================== */
#history { --hist-flow: clamp(64px, 8vh, 104px); }
#history .op-heading {
	padding: clamp(84px, 14vh, 156px) 24px 0;
}
#history .op-heading h2 {
	font-size: clamp(24px, 3.6vw, 38px);
	line-height: 1.5;
	letter-spacing: .1em;
	text-indent: 0;
	margin-top: 12px;
}
#history .op-heading .sub {
	margin-top: 22px;
	font-family: "Noto Serif JP", serif;
	font-size: 14px;
	letter-spacing: .08em;
	color: var(--ink-2);
}
#history .op-lead {
	margin-top: var(--hist-flow);
	padding: 0 24px 14vh;
	font-family: "Noto Serif JP", serif;
	font-size: 16px;
}
@media (max-width: 700px) {
	#history { --hist-flow: clamp(44px, 7vh, 72px); }
	#history .op-heading { padding: clamp(52px, 10vh, 92px) 22px 0; }
	#history .op-heading h2 { font-size: clamp(21px, 5.4vw, 28px); }
	#history .op-lead { line-height: 2; text-align: justify; } /* スマホは16pxのまま・自然折り返しで両端揃え */
}

/* ==================================================
   #history 導入部の右に足跡トレイル（装飾）。
   エリアが見えたら上から順に片足ずつ表示する（一度きり）
================================================== */
.hist-intro { position: relative; }
.hist-steps {
	position: absolute;
	top: auto;
	bottom: clamp(24px, 3vh, 64px); /* さらに上げた（年表の頭を越えて上へ） */
	right: clamp(8px, 6vw, 120px); /* 本文からもう少し外側（右）へ寄せた */
	width: 96px;
	display: flex;
	flex-direction: column;
	align-items: center;
	pointer-events: none;
	z-index: -1;   /* 年表要素と重なったら足跡は背面へ */
}
.hist-step {
	width: clamp(34px, 3vw, 46px);
	background: center / contain no-repeat;
	opacity: 0;
	/* 上から順に、左右交互に */
	transform: translate(calc(var(--i, 0) * -11px), -12px) rotate(var(--rot, 0deg));
	transition: opacity .55s ease, transform .55s cubic-bezier(.2, .7, .2, 1);
	transition-delay: calc(var(--i, 0) * .34s);
}
.hist-step + .hist-step { margin-top: -6px; }
.hist-step--l {
	--rot: 11deg;
	align-self: flex-start;
	aspect-ratio: 312 / 660;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20312%20660'%3E%3Cpath%20d='M206%2056.9997C207.75%2057.5197%20209.5%2058.0197%20211.25%2058.4997C219.58%2061.0197%20226.29%2064.4597%20233%2069.9997C233.34%2070.2697%20233.34%2070.2697%20235.03%2071.6197C245.68%2080.4697%20252.51%2091.8997%20256.36%20105.16C257%20107%20257%20107%20258.02%20108.43C261.01%20113.2%20260.22%20119.77%20260.25%20125.19C260.27%20126.08%20260.29%20126.98%20260.31%20127.9C260.35%20134.45%20259.1%20139.83%20257%20146C256.65%20147.24%20256.3%20148.48%20255.97%20149.72C254.36%20155.63%20252.62%20161.26%20250%20166.81C248.48%20170.14%20247.3%20173.58%20246.07%20177.02C244.89%20180.32%20243.67%20183.6%20242.44%20186.88C242.24%20187.4%20242.24%20187.4%20241.25%20190.05C240.04%20192.9%20238.61%20195.36%20237%20198C235.97%20200.14%20234.97%20202.27%20234%20204.44C233.25%20206.09%20232.51%20207.74%20231.75%20209.38C231.25%20210.46%20230.76%20211.55%20230.29%20212.64C228.2%20217.27%20225.76%20218.96%20221.36%20221.23C217.6%20222.45%20215.54%20221.58%20212%20220C210.97%20223.08%20210.93%20225.03%20211%20228.25C211.05%20233.76%20210.77%20239.19%20210.35%20244.68C210.1%20248.08%20209.97%20251.41%20210.06%20254.81C210%20258%20210%20258%20208%20260C208.35%20262.08%20208.98%20263.95%20209.69%20265.94C210%20268%20210%20268%20208.88%20270.5C208.73%20270.91%20208.73%20270.91%20208%20273C208.97%20274.35%20209.97%20275.69%20211%20277C211.06%20279.56%20211.06%20279.56%20210%20282C208.02%20283.03%20206.02%20284.03%20204%20285C202.94%20286.88%20202.94%20286.88%20203%20289C204.38%20291.83%20206.03%20294.03%20208.06%20296.44C211.62%20301.14%20212.15%20305.61%20212.19%20311.38C212.61%20318.4%20215.04%20321.34%20220%20326C225.09%20332.28%20228.49%20340.27%20230.94%20347.94C231.79%20350.38%20232.7%20352.46%20233.88%20354.75C235.73%20358.39%20237.34%20362.07%20238.8%20365.89C239.73%20368.29%20240.7%20370.65%20241.7%20373.02C253.75%20402.3%20252.61%20436.39%20243.97%20466.46C242.94%20470.09%20242.18%20473.75%20241.44%20477.44C240.54%20481.83%20239.46%20485.99%20237.75%20490.14C236.89%20492.27%20236.2%20494.43%20235.5%20496.62C234.3%20500.28%20232.75%20503.57%20231%20507C230.49%20508.35%20229.99%20509.7%20229.5%20511.06C228.65%20513.42%20227.83%20515.28%20226.5%20517.44C225.1%20519.83%20224.33%20521.88%20223.5%20524.5C222.38%20528.03%20220.95%20530.84%20219%20534C218.5%20535.26%20218.02%20536.53%20217.56%20537.81C216.02%20542.06%20214.11%20546.01%20212%20550C211.78%20550.42%20211.78%20550.42%20210.66%20552.56C205.01%20563.13%20198.7%20572.81%20191%20582C190.45%20582.66%20189.9%20583.32%20189.34%20584C180.44%20594.56%20169.59%20605.11%20157%20611C156.12%20611.53%20155.24%20612.05%20154.34%20612.6C150.23%20614.65%20146.07%20614.44%20141.56%20614.38C140.74%20614.39%20139.92%20614.4%20139.08%20614.41C129.18%20614.36%20123.4%20610.23%20116%20604C115.15%20603.28%20114.29%20602.56%20113.41%20601.82C108.2%20597.29%20103.85%20592.73%20100%20587C99.76%20586.65%2099.76%20586.65%2098.52%20584.85C96.98%20582.59%2095.48%20580.3%2094%20578C93.52%20577.25%2093.03%20576.5%2092.54%20575.73C88.34%20569.01%2085.05%20561.95%2081.8%20554.74C81.12%20553.26%2080.41%20551.79%2079.69%20550.33C75.92%20542.55%2073.37%20534.38%2070.7%20526.17C69.31%20521.91%2067.81%20517.7%2066.25%20513.5C64.24%20508.05%2062.9%20502.63%2061.68%20496.96C61.08%20494.34%2060.34%20491.9%2059.44%20489.38C57.98%20485.27%2057.25%20481.18%2056.62%20476.87C56.1%20474.48%2055.45%20472.58%2054.53%20470.34C52.61%20465.38%2052.09%20460.38%2051.5%20455.12C50.78%20448.72%2049.84%20442.78%2047.7%20436.68C45.43%20428.02%2045.84%20418.95%2045.83%20410.06C45.83%20408.61%2045.83%20407.17%2045.82%20405.72C45.82%20402.69%2045.81%20399.66%2045.81%20396.63C45.81%20393.56%2045.81%20390.49%2045.79%20387.41C45.71%20367.42%2046.35%20348.4%2050.29%20328.73C50.96%20325.33%2051.45%20321.93%2051.94%20318.5C52.64%20314.14%2053.86%20310.97%2056.01%20307.16C57.23%20304.49%2057.7%20301.94%2058.25%20299.06C59.6%20292.59%2062.15%20287.15%2065.09%20281.26C67.67%20275.99%2069.12%20271.12%2070.37%20265.39C71.28%20261.93%2072.32%20260.37%2075%20258C75.99%20257.55%2076.98%20257.09%2078%20256.62C81.91%20254.51%2083.17%20251.94%2085%20248C87.12%20248.06%2087.12%20248.06%2090%20249C91.62%20250.72%2093.04%20252.55%2094.51%20254.41C96%20256%2096%20256%2098.88%20256.94C99.58%20256.96%20100.28%20256.98%20101%20257C101.23%20256.6%20101.23%20256.6%20102.38%20254.56C104%20252%20104%20252%20106%20251C106.6%20248.3%20106.6%20248.3%20107.06%20244.88C107.15%20244.28%20107.23%20243.69%20107.32%20243.09C107.67%20240.62%20107.99%20238.17%20108.21%20235.69C108.38%20233.88%20108.38%20233.88%20109%20231C110.3%20229.96%20111.64%20228.96%20113%20228C113.79%20226.3%20113.79%20226.3%20114.5%20224.38C115.21%20222.52%20115.21%20222.52%20116%20221C118.19%20220.06%20118.19%20220.06%20120%20220C121.37%20222.38%20122.23%20224.08%20121.54%20226.82C120.31%20229.74%20119.26%20231.74%20117%20234C116.54%20236.93%20116.21%20239.82%20115.96%20242.77C115.6%20246%20115.12%20247.85%20113.12%20250.45C111%20252%20111%20252%20108%20252C107.6%20258.17%20109.03%20263.18%20111%20269C114.06%20267.47%20114.73%20265.19%20116.07%20262.12C117.25%20258.15%20117.55%20254.3%20117.88%20250.19C118.54%20242.42%20119.89%20235.18%20125%20229C127.64%20228.13%20127.64%20228.13%20130%20228C131.49%20229.49%20131.24%20230.74%20131.31%20232.81C131.33%20233.16%20131.33%20233.16%20131.43%20234.89C131%20237%20131%20237%20129.02%20238.61C125.79%20242.44%20126.36%20246.64%20126.31%20251.5C126.27%20253.39%20126.22%20255.27%20126.18%20257.16C126.16%20257.99%20126.15%20258.82%20126.14%20259.68C126%20261.92%20125.57%20263.84%20125%20266C124.45%20272.1%20124.45%20272.1%20126.69%20275.75C130.09%20279.06%20132.82%20280.98%20137.56%20281.44C141.58%20282.09%20142.3%20283.12%20145%20286C146.98%20286.66%20148.96%20287.32%20151%20288C151.33%20290.31%20151.33%20290.31%20153%20302C153.31%20300.62%20153.62%20299.24%20153.94%20297.81C154.12%20296.99%20154.31%20296.18%20154.5%20295.33C154.88%20293.56%20155.2%20291.78%20155.5%20290C155.67%20289.34%20155.83%20288.68%20156%20288C158.62%20286.69%20160.23%20287.1%20163.12%20287.44C164.04%20287.54%20164.95%20287.64%20165.88%20287.75C166.58%20287.83%20167.28%20287.91%20168%20288C168.33%20289.32%20168.66%20290.64%20169%20292C169.99%20292%20170.98%20292%20172%20292C172.16%20291.01%20172.16%20291.01%20173%20286C174.98%20286.33%20176.96%20286.66%20179%20287C179.34%20288.42%20179.67%20289.83%20180%20291.25C180.19%20292.04%20180.37%20292.83%20180.56%20293.64C180.97%20295.83%20181.08%20297.78%20181%20300C181.99%20299.67%20182.98%20299.34%20184%20299C184.34%20297.44%20184.67%20295.88%20185%20294.31C185.19%20293.44%20185.37%20292.57%20185.56%20291.68C185.99%20289.06%20186.08%20286.64%20186%20284C184.02%20283.01%20182.04%20282.02%20180%20281C180.31%20278.62%20180.31%20278.62%20181%20276C181.98%20275.31%20182.98%20274.64%20184%20274C184.97%20271%20185.23%20268.03%20185.46%20264.9C185.54%20263.94%20185.62%20262.97%20185.7%20261.97C185.86%20259.95%20186.01%20257.92%20186.16%20255.89C186.2%20255.41%20186.2%20255.41%20186.4%20252.96C186.44%20252.52%20186.44%20252.52%20186.61%20250.3C187%20247.99%20187.55%20246.8%20189%20245C191.61%20253.53%20192.24%20261.74%20192.62%20270.62C192.68%20271.65%20192.73%20272.67%20192.78%20273.73C192.8%20274.22%20192.8%20274.22%20192.91%20276.73C192.95%20277.62%20193%20278.51%20193.04%20279.43C193%20282.08%20192.53%20284.42%20192%20287C192.34%20290.11%20192.34%20290.11%20192.94%20293.31C193.13%20294.38%20193.33%20295.45%20193.53%20296.55C193.68%20297.36%20193.84%20298.17%20194%20299C194.99%20298.67%20195.98%20298.34%20197%20298C198.29%20295.43%20198.17%20293.5%20198.19%20290.62C198.2%20289.67%20198.22%20288.71%20198.23%20287.73C197.99%20284.94%20197.3%20283.42%20196%20281C196.25%20278.49%20196.46%20276.69%20198.04%20274.68C199.41%20272.27%20199.16%20270.39%20199.05%20267.63C199.03%20266.58%20199.01%20265.53%20198.98%20264.45C198.91%20262.24%20198.83%20260.03%20198.75%20257.82C198.56%20248.81%20198.56%20248.81%20201.02%20245.94C201.68%20245.3%20202.33%20244.66%20203%20244C202.75%20240.88%20202.75%20240.88%20202.37%20239.07C201.15%20232.19%20201.97%20224.95%20202.98%20218.09C203%20216%20203%20216%20202.21%20214.22C201.81%20213.82%20201.41%20213.41%20201%20213C200.01%20213%20199.02%20213%20198%20213C198.01%20213.75%20198.02%20214.49%20198.03%20215.26C198.07%20218.03%20198.09%20220.8%20198.11%20223.57C198.12%20224.77%20198.13%20225.97%20198.15%20227.17C198.18%20228.89%20198.19%20230.61%20198.2%20232.34C198.21%20233.37%20198.22%20234.41%20198.23%20235.48C198%20238%20198%20238%20196%20240C195.01%20240%20194.02%20240%20193%20240C192.98%20239.63%20192.98%20239.63%20192.89%20237.77C192.52%20232.36%20192.24%20228.49%20189%20224C186.97%20220.06%20185.29%20216.51%20186%20212C187.5%20209.19%20187.5%20209.19%20189%20207C188.26%20206.73%20187.51%20206.46%20186.75%20206.19C184%20205%20184%20205%20182.15%20203.52C179.05%20201.33%20175.79%20200.74%20172.14%20199.84C171.79%20199.7%20171.79%20199.7%20170%20199C169.67%20198.01%20169.34%20197.02%20169%20196C168.31%20195.99%20167.62%20195.97%20166.91%20195.96C160.66%20195.64%20156.72%20194.56%20151.45%20191.27C147.52%20189.23%20143.33%20188.57%20139.02%20187.69C136.51%20187.12%20134.44%20186.46%20132.12%20185.38C127.7%20183.43%20123.91%20182.9%20119.14%20183.16C109.91%20183.62%20109.91%20183.62%20105.81%20180.19C102.65%20177.07%20101.84%20174.19%20101.75%20169.81C101.81%20163.11%20103.2%20156.66%20104.57%20150.12C104.87%20148.63%20105.16%20147.13%20105.43%20145.63C106.56%20139.51%20108.27%20133.79%20110.38%20127.94C110.67%20127.1%20110.96%20126.27%20111.26%20125.41C116.73%20110%20124.12%2096.0097%20134%2082.9997C135.17%2081.3197%20136.34%2079.6297%20137.5%2077.9397C146.3%2065.3497%20153.32%2056.8997%20168.54%2053.4297C181.37%2051.1997%20193.93%2052.2897%20206%2056.9997ZM99%20270C98.67%20271.32%2098.34%20272.64%2098%20274C98.33%20274.16%2098.33%20274.16%20100%20275C100%20273.35%20100%20271.7%20100%20270C99.67%20270%2099.34%20270%2099%20270ZM104%20288C104%20289.65%20104%20291.3%20104%20293C104.33%20293.16%20104.33%20293.16%20106%20294C106%20292.02%20106%20290.04%20106%20288C105.34%20288%20104.68%20288%20104%20288ZM140%20289C138%20293.89%20137.87%20297.66%20138.38%20302.88C138.43%20303.56%20138.49%20304.25%20138.55%20304.96C138.69%20306.64%20138.84%20308.32%20139%20310C140.94%20310.56%20140.94%20310.56%20143%20311C144%20310%20144%20310%20144.02%20307.96C143.97%20307.08%20143.93%20306.21%20143.88%20305.31C143.83%20304.36%20143.78%20303.42%20143.73%20302.45C143.68%20301.45%20143.62%20300.46%20143.56%20299.44C143.51%20298.44%20143.46%20297.44%20143.4%20296.42C143.27%20293.94%20143.14%20291.47%20143%20289C142.01%20289%20141.02%20289%20140%20289ZM92%20293C92%20293.66%2092%20294.32%2092%20295C92.66%20295%2093.32%20295%2094%20295C94%20294.34%2094%20293.68%2094%20293C93.34%20293%2092.68%20293%2092%20293ZM128%20297C128%20298.98%20128%20300.96%20128%20303C128.66%20302.67%20129.32%20302.34%20130%20302C129.67%20300.35%20129.34%20298.7%20129%20297C128.67%20297%20128.34%20297%20128%20297ZM164%20299C164%20301.97%20164%20304.94%20164%20308C164.66%20307.67%20165.32%20307.34%20166%20307C166%20304.36%20166%20301.72%20166%20299C165.34%20299%20164.68%20299%20164%20299ZM176%20303C176%20305.97%20176%20308.94%20176%20312C176.66%20311.67%20177.32%20311.34%20178%20311C178.41%20309.15%20178.41%20309.15%20178.62%20306.94C178.7%20306.2%20178.77%20305.47%20178.85%20304.71C178.9%20304.15%20178.95%20303.58%20179%20303C178.01%20303%20177.02%20303%20176%20303ZM99%20306C98.67%20307.32%2098.34%20308.64%2098%20310C98.66%20310%2099.32%20310%20100%20310C99.67%20308.68%2099.34%20307.36%2099%20306ZM188%20306C188%20308.97%20188%20311.94%20188%20315C188.99%20315.33%20189.98%20315.66%20191%20316C192.08%20313.83%20192.11%20312.76%20192.06%20310.38C192.04%20309.26%20192.02%20308.15%20192%20307C190.68%20306.67%20189.36%20306.34%20188%20306ZM110%20311C110%20311.99%20110%20312.98%20110%20314C110.66%20314%20111.32%20314%20112%20314C112%20313.01%20112%20312.02%20112%20311C111.34%20311%20110.68%20311%20110%20311Z'%20fill='%23222'/%3E%3Cpath%20d='M104%20187C105.94%20187.38%20105.94%20187.38%20108%20188C109.05%20190.1%20109.16%20191.19%20109.19%20193.5C109.2%20194.11%20109.22%20194.72%20109.23%20195.34C109%20197%20109%20197%20107%20199C104.38%20198.62%20104.38%20198.62%20102%20198C100.92%20194.66%20100.87%20192.77%20102.44%20189.69C102.95%20188.8%20103.47%20187.91%20104%20187Z'%20fill='%23222'/%3E%3Cpath%20d='M145%20194C146.32%20194%20147.64%20194%20149%20194C150.01%20197.04%20150.17%20199.25%20150.25%20202.44C150.28%20203.5%20150.31%20204.56%20150.35%20205.65C150.41%20207.88%20150.46%20210.12%20150.52%20212.35C150.53%20212.88%20150.53%20212.88%20150.62%20215.56C150.65%20216.53%20150.67%20217.5%20150.7%20218.5C151%20220.98%20151.42%20222.12%20153%20224C153.99%20223.67%20154.98%20223.34%20156%20223C156.33%20215.08%20156.66%20207.16%20157%20199C158.32%20199.33%20159.64%20199.66%20161%20200C161.2%20203.15%20161.38%20206.29%20161.56%20209.44C161.62%20210.32%20161.67%20211.19%20161.73%20212.1C162.17%20220.04%20162.53%20227.55%20158.19%20234.5C157.69%20235.34%20157.18%20236.17%20156.67%20237.03C154.81%20239.23%20153.81%20239.66%20151%20240C151.02%20241.04%20151.05%20242.08%20151.07%20243.15C151.19%20251.01%20151.06%20258.34%20149%20266C148.01%20266%20147.02%20266%20146%20266C144.13%20256.9%20142.63%20248.87%20146%20240C146.51%20239.7%20147.01%20239.4%20147.53%20239.09C149%20238%20149%20238%20149.51%20235.84C149.57%20235.02%20149.63%20234.21%20149.69%20233.38C149.75%20232.56%20149.82%20231.74%20149.89%20230.9C149.92%20230.27%20149.96%20229.65%20150%20229C148.35%20229%20146.7%20229%20145%20229C144.67%20231.64%20144.34%20234.28%20144%20237C140.25%20238.12%20140.25%20238.12%20138%20237C137.86%20235.46%20137.77%20233.92%20137.69%20232.38C137.63%20231.52%20137.57%20230.66%20137.51%20229.77C138.04%20226.75%20138.4%20226.45%20140.47%20224.43C144.47%20220.02%20143.74%20214.45%20143.75%20208.81C143.78%20206.65%20143.82%20204.49%20143.86%20202.33C143.86%20201.38%20143.87%20200.43%20143.87%20199.45C144%20197%20144%20197%20145%20194Z'%20fill='%23222'/%3E%3Cpath%20d='M133%20196C135.06%20196.44%20135.06%20196.44%20137%20197C137.99%20202.92%20138.23%20207.37%20136%20213C135.34%20213.33%20134.68%20213.66%20134%20214C132.17%20210.1%20131.75%20207.04%20131.81%20202.75C131.82%20201.69%20131.83%20200.64%20131.83%20199.55C132%20197%20132%20197%20133%20196Z'%20fill='%23222'/%3E%3Cpath%20d='M121%20198C122.67%20198.69%20122.67%20198.69%20124%20200C124.36%20202.43%20124.36%20202.43%20124.31%20205.31C124.31%20206.26%20124.3%20207.2%20124.3%20208.18C123.99%20211.14%20123.32%20213.33%20122%20216C120.12%20217.06%20120.12%20217.06%20118%20217C115.46%20215.12%20114.23%20213.7%20113.25%20210.69C112.49%20202.57%20112.49%20202.57%20113.62%20199.06C115.97%20197.25%20118.16%20197.71%20121%20198Z'%20fill='%23222'/%3E%3Cpath%20d='M175%20207C176.93%20207.61%20176.93%20207.61%20179%20209C179.76%20211.83%20179.76%20211.83%20180.12%20215.25C180.64%20219.78%20181.47%20223.71%20183%20228C183.35%20229.33%20183.69%20230.66%20184%20232C184.18%20232.71%20184.35%20233.41%20184.54%20234.14C185.02%20236.09%20185.51%20238.05%20186%20240C184.68%20240%20183.36%20240%20182%20240C181.95%20239.69%20181.95%20239.69%20181.7%20238.14C181.55%20237.33%20181.4%20236.52%20181.25%20235.69C181.11%20234.89%20180.97%20234.09%20180.83%20233.26C180%20231%20180%20231%20178%20229.57C174.57%20226.88%20174.87%20223.13%20174.31%20219.02C173.41%20210.19%20173.41%20210.19%20175%20207Z'%20fill='%23222'/%3E%3Cpath%20d='M98%20234C99.32%20234.66%20100.64%20235.32%20102%20236C102%20240.29%20102%20244.58%20102%20249C100.35%20248.67%2098.7%20248.34%2097%20248C96.07%20245.2%2095.84%20243.35%2095.81%20240.44C95.8%20239.65%2095.78%20238.87%2095.77%20238.06C96%20236%2096%20236%2098%20234Z'%20fill='%23222'/%3E%3Cpath%20d='M133%20240C134.32%20240.33%20135.64%20240.66%20137%20241C138.27%20246.54%20138.26%20252.04%20138.3%20257.69C138.31%20258.94%20138.33%20260.19%20138.36%20261.44C138.4%20263.25%20138.42%20265.06%20138.43%20266.88C138.44%20267.96%20138.45%20269.04%20138.47%20270.15C137.89%20273.64%20136.69%20274.79%20134%20277C131.51%20274.51%20131.7%20273.58%20131.55%20270.12C131.51%20269.14%20131.46%20268.15%20131.42%20267.14C131.38%20266.1%20131.35%20265.07%20131.31%20264C131.27%20263%20131.22%20261.99%20131.17%20260.96C130.54%20244.93%20130.54%20244.93%20133%20240Z'%20fill='%23222'/%3E%3Cpath%20d='M159%20245C159.66%20245.33%20160.32%20245.66%20161%20246C161.03%20249.19%20161.05%20252.37%20161.06%20255.56C161.07%20256.46%20161.08%20257.35%20161.09%20258.28C161.11%20263.3%20160.86%20268.05%20160%20273C158%20272%20158%20272%20156.88%20268.69C155.03%20260.46%20154.92%20252.48%20159%20245Z'%20fill='%23222'/%3E%3Cpath%20d='M170%20246C171.94%20247.01%20172.85%20247.58%20173.59%20249.67C174.11%20252.64%20174.13%20255.48%20174.12%20258.5C174.13%20259.62%20174.13%20260.75%20174.13%20261.91C174.02%20264.47%20173.75%20266.56%20173%20269C171.06%20268.69%20171.06%20268.69%20169%20268C167.69%20264.08%20167.82%20260.54%20167.81%20256.44C167.8%20255.66%20167.79%20254.88%20167.78%20254.07C167.77%20253.33%20167.77%20252.58%20167.77%20251.81C167.77%20251.13%20167.76%20250.44%20167.76%20249.74C168%20248%20168%20248%20170%20246Z'%20fill='%23222'/%3E%3C/svg%3E");
}
.hist-step--r {
	--rot: 11deg;
	align-self: flex-end;
	aspect-ratio: 372 / 654;
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20372%20654'%3E%3Cpath%20d='M147%2051.0003C147.64%2051.2703%20148.27%2051.5503%20148.93%2051.8303C158.42%2056.0203%20166.38%2060.9403%20174%2068.0003C174.67%2068.6103%20175.33%2069.2203%20176.02%2069.8403C180.21%2073.8603%20183.61%2078.3003%20187%2083.0003C187.98%2084.2903%20188.96%2085.5803%20189.94%2086.8803C197.08%2096.4203%20203.74%20106.16%20208.95%20116.9C210.15%20119.31%20211.45%20121.65%20212.75%20124C215.32%20128.69%20217.78%20133.42%20220.19%20138.19C220.52%20138.84%20220.85%20139.49%20221.2%20140.17C223.16%20144.09%20224.84%20148.04%20226.31%20152.18C227.01%20154.03%20227.85%20155.75%20228.75%20157.5C230.44%20161.45%20230.38%20164.94%20229%20169C227.86%20170.73%20226.63%20172.18%20225.21%20173.68C223.73%20175.29%20222.85%20176.99%20222%20179C218.62%20178.46%20215.3%20177.89%20212%20177C211.67%20178.32%20211.34%20179.64%20211%20181C212.32%20181.33%20213.64%20181.66%20215%20182C215.33%20184.97%20215.66%20187.94%20216%20191C217.32%20191%20218.64%20191%20220%20191C220.66%20187.37%20221.32%20183.74%20222%20180C226.03%20180.1%20228.23%20180.76%20231.06%20183.69C236.33%20190.39%20238.31%20199.41%20240.5%20207.5C241.79%20211.96%20243.78%20214.73%20247%20218C250.47%20221.77%20251.83%20225.03%20253.09%20229.91C254%20232%20254%20232%20256.11%20233.32C256.73%20233.87%20257.36%20234.43%20258%20235C258.08%20237.55%20257.99%20239.8%20257.75%20242.31C257.4%20249.17%20257.4%20249.17%20259.59%20252.18C261.66%20253.67%20263.72%20254.86%20266%20256C270.18%20258.97%20271.9%20261.33%20274%20266C274.66%20267.15%20275.32%20268.3%20276%20269.44C277.63%20272.27%20278.98%20275.12%20280.23%20278.13C281.08%20280.19%20281.97%20282.22%20282.88%20284.25C283.21%20285.01%20283.55%20285.77%20283.9%20286.55C285.08%20289.19%20286.29%20291.81%20287.5%20294.44C291.32%20302.86%20294.48%20311.22%20296.97%20320.12C297.99%20322.97%20299.16%20324.64%20301%20327C303.85%20332.99%20306.17%20339.21%20308.19%20345.53C309.02%20348.06%20309.92%20350.56%20310.84%20353.06C312.93%20358.78%20314.8%20364.49%20316.32%20370.4C316.76%20372.06%20317.21%20373.71%20317.71%20375.35C319.63%20381.82%20320.9%20388.37%20322.12%20395C322.3%20395.91%20322.47%20396.83%20322.64%20397.77C322.72%20398.22%20322.72%20398.22%20323.13%20400.5C323.2%20400.9%20323.2%20400.9%20323.57%20402.91C324.76%20411.42%20325.15%20419.86%20325.13%20428.46C325.13%20428.99%20325.13%20428.99%20325.14%20431.68C325.14%20433.92%20325.13%20436.17%20325.13%20438.41C325.13%20441.77%20325.13%20445.12%20325.14%20448.47C325.14%20458.99%20325.03%20469.49%20324.58%20480C324.55%20480.86%20324.51%20481.73%20324.48%20482.61C324.11%20490.21%20323%20497.64%20321.74%20505.13C321.09%20509.15%20320.7%20513.14%20320.38%20517.19C318.72%20537.5%20310.92%20555.59%20299%20572C298.47%20572.75%20297.94%20573.49%20297.39%20574.26C287.52%20587.6%20271.95%20598.71%20255.29%20601.45C241.41%20602.32%20227.26%20595.53%20216%20588C215.13%20587.42%20214.26%20586.84%20213.36%20586.25C210.87%20584.54%20208.43%20582.78%20206%20581C205.3%20580.5%20204.59%20580.01%20203.87%20579.5C187.7%20567.62%20175.7%20552.39%20167.13%20534.4C165.17%20530.28%20163.03%20526.27%20160.88%20522.26C155.9%20512.96%20151.58%20503.6%20147.72%20493.79C145.98%20489.46%20143.97%20485.24%20142%20481C141.5%20479.91%20141%20478.82%20140.5%20477.72C137.77%20471.76%20134.97%20465.84%20132%20460C130.72%20457.44%20129.44%20454.87%20128.16%20452.3C127.27%20450.53%20126.36%20448.76%20125.44%20447C117.16%20429.73%20113.83%20411.66%20117.25%20392.75C117.36%20392.13%20117.47%20391.5%20117.58%20390.86C118.33%20387.07%20119.5%20383.75%20121.05%20380.21C123.65%20373.94%20123.82%20367.83%20124.13%20361.12C124.5%20355.41%20125.5%20351.02%20128.09%20345.9C130.73%20340.4%20130.08%20334.09%20129.88%20328.15C129.79%20324.03%20130.57%20320.85%20132%20317C132.19%20314.69%20132.19%20314.69%20132%20313C131.67%20312.67%20131.34%20312.34%20131%20312C130.62%20309.62%20130.62%20309.62%20131%20307C133.27%20305.25%20135.67%20304.15%20138.27%20302.95C144.52%20299.85%20144.52%20299.85%20146.02%20297.19C146.71%20294.8%20147%20292.49%20147%20290C146.34%20290%20145.68%20290%20145%20290C142.96%20287.06%20141.78%20284.47%20141%20281C140.75%20281.65%20140.49%20282.3%20140.23%20282.98C139.52%20284.78%20138.8%20286.58%20138.07%20288.38C137.45%20289.9%20136.84%20291.42%20136.28%20292.96C135.62%20294.56%20135.62%20294.56%20134%20297C130.81%20297.88%20130.81%20297.88%20128%20298C126.65%20295.29%20126.93%20292.99%20127%20290C127.99%20289.67%20128.98%20289.34%20130%20289C130.66%20283.72%20131.32%20278.44%20132%20273C131.34%20272.67%20131.34%20272.67%20128%20271C125.12%20267.1%20125.65%20262.23%20125.61%20257.58C125.43%20252.69%20124.16%20250.83%20121%20247C120.03%20244.35%20119.45%20241.64%20118.88%20238.88C118.57%20237.45%20118.25%20236.04%20117.93%20234.62C117.8%20233.99%20117.67%20233.37%20117.53%20232.73C116.96%20230.87%20116.08%20229.61%20115%20228C114.8%20225.52%20114.8%20225.52%20114.88%20222.81C114.89%20221.91%20114.91%20221.01%20114.93%20220.08C114.95%20219.39%20114.98%20218.71%20115%20218C116.92%20218.32%20116.92%20218.32%20119%20219C119.65%20220.5%20120.31%20222.01%20120.95%20223.51C122.72%20226.02%20125.3%20226.48%20128.16%20227.26C130%20228%20130%20228%20131.29%20229.32C132.95%20233.26%20130.63%20238.33%20129.19%20242.14C128.5%20243.78%20127.75%20245.39%20127%20247C129.28%20244.83%20131.16%20242.54%20133%20240C134.87%20240.63%20134.87%20240.63%20137%20242C138.16%20244.71%20138.16%20244.71%20139.06%20247.94C140.69%20253.7%20140.69%20253.7%20142.52%20255.49C144.73%20257.75%20145%20260.14%20145.69%20263.19C145.94%20264.27%20146.19%20265.36%20146.45%20266.48C146.63%20267.31%20146.81%20268.14%20147%20269C147.33%20269%20147.66%20269%20148%20269C148.22%20260.09%20148.14%20251.71%20146%20243C145.86%20242.42%20145.72%20241.85%20145.58%20241.25C145.11%20239.37%20144.62%20237.5%20144.12%20235.62C143.98%20235.04%20143.83%20234.46%20143.67%20233.86C142.52%20229.78%20140.72%20227.2%20138%20224C136.84%20221.82%20136.84%20221.82%20135.94%20219.69C135.61%20218.92%20135.29%20218.15%20134.95%20217.36C133.57%20213.93%20132.25%20210.48%20131%20207C127.47%20206.51%20124.3%20206.11%20121.26%20208.2C120.14%20209.26%20119.03%20210.34%20117.93%20211.42C115.66%20213.28%20113.57%20214.05%20110.81%20215C107.39%20216.22%20105.58%20216.97%20103.81%20220.19C102%20223%20102%20223%2098.81%20224.06C94.1%20224.27%2090.06%20223.42%2086%20221C68.28%20204.03%2059.67%20177.04%2054.39%20153.7C54.05%20152.23%2053.7%20150.77%2053.35%20149.3C50.66%20137.43%2050.81%20124.87%2050.81%20112.75C50.81%20110.67%2050.79%20108.6%2050.78%20106.52C50.71%2090.8603%2053.71%2081.1603%2064.88%2069.7503C71.62%2063.1403%2078.33%2058.8803%2087.32%2055.9603C90%2055.0003%2090%2055.0003%2092.93%2053.5203C96.06%2051.9703%2099.1%2050.8903%20102.44%2049.8803C103.51%2049.5403%20104.58%2049.2103%20105.68%2048.8703C119.2%2045.3303%20134.11%2045.4403%20147%2051.0003ZM194%20181C193.55%20181.52%20193.09%20182.03%20192.62%20182.56C192.09%20183.04%20191.55%20183.51%20191%20184C188.5%20183.74%20186.37%20183.13%20184%20182.31C181.08%20181.86%20179.52%20182.5%20177%20184C176.36%20186.59%20176.36%20186.59%20176%20189C175.17%20188.95%20174.34%20188.91%20173.48%20188.86C172.39%20188.82%20171.31%20188.79%20170.19%20188.75C169.11%20188.7%20168.03%20188.66%20166.92%20188.61C164%20189%20164%20189%20162.11%20190.89C161%20193%20161%20193%20161%20195C160.01%20194.67%20159.02%20194.34%20158%20194C156.5%20193.88%20155%20193.83%20153.5%20193.81C152.73%20193.8%20151.95%20193.78%20151.16%20193.77C149%20194%20149%20194%20146%20196C146.66%20199.63%20147.32%20203.26%20148%20207C146%20206%20146%20206%20144.88%20202.94C144.59%20201.97%20144.3%20201%20144%20200C142.02%20200.33%20140.04%20200.66%20138%20201C137%20204%20137%20204%20138.19%20206.62C140.21%20209.27%20140.88%20209.42%20144%20210C144.1%20210.6%20144.2%20211.21%20144.3%20211.83C145.21%20216.71%20145.86%20219.87%20150%20223C150.51%20223.26%20151.01%20223.52%20151.54%20223.79C154.19%20225.99%20154.37%20229.45%20155.16%20232.69C156.07%20235.18%20156.66%20235.86%20159%20237C161.12%20234.88%20160.19%20230.41%20160.19%20227.56C160.19%20227.17%20160.19%20227.17%20160.22%20225.17C160.23%20224.41%20160.23%20223.66%20160.23%20222.88C160.23%20222.53%20160.23%20222.53%20160.24%20220.77C160%20219%20160%20219%20158%20217C156.8%20213.07%20157.16%20209.99%20158%20206C160.63%20208.28%20161.53%20210.1%20162.44%20213.44C163.76%20217.77%20163.76%20217.77%20166.06%20219.94C168.8%20222.85%20168.87%20225.76%20169.5%20229.62C170%20232%20170%20232%20171.5%20234.44C173.56%20237.96%20173.85%20241.46%20174.38%20245.48C175.07%20248.29%20175.92%20249.08%20178%20251C178.69%20254.19%20178.69%20254.19%20179%20257C178.2%20257.43%20177.39%20257.87%20176.56%20258.31C174%20260%20174%20260%20173%20263C172.6%20269.95%20172.56%20276.43%20175%20283C175.99%20283%20176.98%20283%20178%20283C178.18%20282.14%20178.36%20281.29%20178.55%20280.4C178.8%20279.25%20179.06%20278.09%20179.31%20276.94C179.56%20275.81%20179.8%20274.69%20180.05%20273.53C180.65%20271.05%20181.47%20268.88%20182.55%20266.58C184.29%20262.7%20184.65%20259.02%20184.88%20254.81C184.9%20254.46%20184.9%20254.46%20185.05%20252.7C185.37%20247.59%20185.37%20247.59%20183.57%20244.7C183.05%20244.14%20182.53%20243.58%20182%20243C180.61%20238.82%20180.06%20235.08%20181.89%20231.01C182.63%20229.67%20183.37%20228.34%20184.11%20227C185.5%20223.88%20185.28%20221.36%20185%20218C183.35%20217.67%20181.7%20217.34%20180%20217C179.84%20218.65%20179.84%20218.65%20179%20227C178.01%20227%20177.02%20227%20176%20227C176%20224.03%20176%20221.06%20176%20218C176.99%20217.67%20177.98%20217.34%20179%20217C179.55%20214.57%20180.01%20212.34%20179.94%20209.84C179.94%20207.26%20180.05%20205.41%20181%20203C183.44%20201.34%20185.89%20200.31%20188.62%20199.19C192.13%20197.43%20192.62%20195.56%20194%20192C194.99%20191.67%20195.98%20191.34%20197%20191C197.12%20191.49%20197.24%20191.99%20197.37%20192.5C197.53%20193.14%20197.7%20193.78%20197.88%20194.44C197.96%20194.76%20197.96%20194.76%20198.37%20196.37C199%20198%20199%20198%20201%20199C201.25%20197.57%20201.47%20196.13%20201.69%20194.69C201.82%20193.89%20201.94%20193.09%20202.07%20192.26C202%20190%20202%20190%20200.59%20188.41C200.07%20187.94%20199.54%20187.48%20199%20187C197.81%20183.81%20197.81%20183.81%20197%20181C196.01%20181%20195.02%20181%20194%20181ZM213%20194C211.2%20196.76%20210.99%20197.89%20211.38%20201.25C211.58%20202.16%20211.79%20203.06%20212%20204C212.66%20204%20213.32%20204%20214%20204C215.23%20197.48%20215.23%20197.48%20214.06%20195.06C213.71%20194.71%20213.36%20194.36%20213%20194ZM236%20218C233.99%20222.01%20233.8%20226.57%20234%20231C235.25%20234.02%20237.04%20236.4%20239%20239C240.08%20240.97%20241.04%20242.97%20242%20245C244.73%20244.03%20245.78%20243.42%20247.12%20240.81C246.98%20237.49%20246.5%20237.26%20244.25%20235C239.69%20230.24%20239.08%20224.28%20238%20218C237.34%20218%20236.68%20218%20236%20218ZM194%20222C194%20224.64%20194%20227.28%20194%20230C194.66%20230%20195.32%20230%20196%20230C196.8%20226.71%20197.1%20225.29%20196%20222C195.34%20222%20194.68%20222%20194%20222ZM224%20225C223.16%20228.38%20222.89%20230.67%20224%20234C224.99%20233.67%20225.98%20233.34%20227%20233C226.88%20231.87%20226.75%20230.73%20226.62%20229.56C226.56%20228.92%20226.49%20228.29%20226.41%20227.63C226.28%20227.09%20226.14%20226.55%20226%20226C225.34%20225.67%20224.68%20225.34%20224%20225ZM213%20231C210.37%20236.26%20209.59%20240.15%20210%20246C210.99%20246.33%20211.98%20246.66%20213%20247C215.74%20244.69%20216.46%20243.12%20216.81%20239.56C216.9%20238.8%20216.99%20238.04%20217.08%20237.25C216.99%20234.69%20216.29%20233.19%20215%20231C214.34%20231%20213.68%20231%20213%20231ZM204.94%20250.88C202.53%20253.52%20202.04%20254.41%20201.81%20258C202%20261%20202%20261%20204%20263C206.56%20263.19%20206.56%20263.19%20209%20263C210%20262%20210%20262%20210.13%20260.07C210.13%20259.68%20210.13%20259.68%20210.12%20257.69C210.13%20256.91%20210.13%20256.13%20210.13%20255.32C210%20253.09%20209.62%20251.15%20209%20249C207%20249%20207%20249%20204.94%20250.88ZM231%20251C232%20254%20232%20254%20232%20254L231%20251ZM134%20261C131.62%20264.73%20131.84%20267.71%20132%20272C133.32%20271.67%20134.64%20271.34%20136%20271C136%20267.7%20136%20264.4%20136%20261C135.34%20261%20134.68%20261%20134%20261ZM188%20268C186.57%20270.87%20187.15%20273.53%20187.44%20276.62C187.49%20277.24%20187.54%20277.85%20187.6%20278.48C187.73%20279.98%20187.86%20281.49%20188%20283C188.99%20283%20189.98%20283%20191%20283C191.08%20281.06%20191.14%20279.13%20191.19%20277.19C191.22%20276.11%20191.26%20275.03%20191.29%20273.92C191%20271%20191%20271%20189.49%20269.11C189%20268.75%20188.51%20268.38%20188%20268ZM157%20277C156.67%20278.32%20156.34%20279.64%20156%20281C157.32%20281.33%20158.64%20281.66%20160%20282C160.33%20280.35%20160.66%20278.7%20161%20277C159.68%20277%20158.36%20277%20157%20277ZM158%20290C157.67%20290.33%20157.34%20290.66%20157%20291C157.12%20292.85%20157.12%20292.85%20157.44%20295.06C157.54%20295.8%20157.64%20296.53%20157.75%20297.29C157.83%20297.85%20157.91%20298.42%20158%20299C160%20297%20160%20297%20160.12%20293.88C160.1%20293.4%20160.1%20293.4%20160%20291C159.34%20290.67%20158.68%20290.34%20158%20290ZM182%20294C181.06%20296.83%20180.87%20298.63%20180.88%20301.56C180.87%20302.35%20180.87%20303.13%20180.87%20303.94C181%20306%20181%20306%20182%20308C182.66%20308%20183.32%20308%20184%20308C185.24%20305.51%20185.13%20303.77%20185.12%20301C185.13%20300.56%20185.13%20300.56%20185.13%20298.31C185%20296%20185%20296%20184%20294C183.34%20294%20182.68%20294%20182%20294ZM212%20295C210.88%20298.75%20210.88%20298.75%20212%20301C212.66%20301%20213.32%20301%20214%20301C214%20299.02%20214%20297.04%20214%20295C213.34%20295%20212.68%20295%20212%20295ZM170%20296C169.07%20298.8%20168.84%20300.65%20168.81%20303.56C168.8%20304.35%20168.78%20305.13%20168.77%20305.94C169%20308%20169%20308%20171%20310C173.62%20305.22%20172.83%20301.16%20172%20296C171.34%20296%20170.68%20296%20170%20296ZM140%20312C139.34%20312.66%20138.68%20313.32%20138%20314C138.29%20315.34%20138.63%20316.68%20139%20318C139.09%20320.14%20139.13%20322.28%20139.13%20324.42C139.13%20325.03%20139.13%20325.65%20139.14%20326.29C139.14%20327.59%20139.13%20328.89%20139.13%20330.2C139.13%20332.16%20139.13%20334.13%20139.14%20336.1C139.14%20342.78%20138.98%20349.37%20138%20356C140.65%20355.63%20141.81%20355.19%20143.73%20353.27C145.27%20350.53%20145.39%20348.77%20145.4%20345.63C145.4%20344.59%20145.41%20343.54%20145.42%20342.47C145.41%20341.92%20145.41%20341.92%20145.38%20339.12C145.37%20338%20145.36%20336.88%20145.36%20335.73C145.23%20327.48%20144.38%20319.91%20142%20312C141.34%20312%20140.68%20312%20140%20312ZM164%20322C162%20324%20162%20324%20161.75%20327.38C161.82%20330.37%20162.36%20332.44%20164%20335C164.66%20335%20165.32%20335%20166%20335C166%20331.04%20166%20327.08%20166%20323C165.34%20322.67%20164.68%20322.34%20164%20322ZM152%20324C149.6%20328.77%20149.49%20333.46%20149.25%20338.69C149.19%20339.55%20149.14%20340.42%20149.08%20341.31C149.04%20342.14%20149%20342.97%20148.95%20343.82C148.93%20344.2%20148.93%20344.2%20148.83%20346.11C149%20348%20149%20348%20151%20350C154.57%20350.37%20156.11%20349.94%20159%20348C161.31%20347.2%20163.64%20346.62%20166%20346C165.84%20345.18%20165.84%20345.18%20165%20341C163.89%20341.21%20162.77%20341.41%20161.62%20341.62C159.73%20341.98%20159.73%20341.98%20158%20342C155.57%20339.57%20155.65%20338.6%20155.38%20335.25C155.3%20334.36%20155.23%20333.47%20155.15%20332.55C154.98%20329.69%20154.92%20326.87%20155%20324C154.01%20324%20153.02%20324%20152%20324Z'%20fill='%23222'/%3E%3Cpath%20d='M170%20212C170.66%20212%20171.32%20212%20172%20212C172%20212.99%20172%20213.98%20172%20215C171.34%20215%20170.68%20215%20170%20215C170%20214.01%20170%20213.02%20170%20212Z'%20fill='%23222'/%3E%3C/svg%3E");
}
.hist-intro.is-walking .hist-step {
	opacity: .55;
	transform: translate(calc(var(--i, 0) * -11px), 0) rotate(var(--rot, 0deg));
}
/* タブレット〜モバイル: 本文の右に並べる余白が無いので、非表示にする代わりに
   ヒーローの .an-hero__art と同じ考え方＝もっと薄い背景の飾りとして残す */
@media (max-width: 1259px) {
	.hist-steps { right: 0; }
	.hist-intro.is-walking .hist-step { opacity: .45; }
}
@media (max-width: 700px) {
	.hist-steps { right: 3%; width: 88px; bottom: clamp(0px, 1vh, 24px); } /* もう少し小さく・下げた */
	.hist-step { width: clamp(30px, 7vw, 40px); }
	.hist-intro.is-walking .hist-step { opacity: .3; } /* FVの装飾イラストと同程度にうっすら */
}
@media (prefers-reduced-motion: reduce) {
	.hist-step { transition: none; transform: translate(calc(var(--i, 0) * -11px), 0) rotate(var(--rot, 0deg)); }
}

/* ==================================================
   #future 見出しゾーン（#greeting / #history と同じ方向に寄せる）
   ・背景に「NEXT 50 YEARS」のゴースト英字（ヒーローの "50" と同じ発想）。
     見出しには重ねず、見出しの「上」に置く。セクション頭に余白を取ってその中に収める
   ・スポット4件（これからの北摂）を天地の墨罫線で囲った一覧に（#greeting の pledge と同じ手）
   ※ 課題／取り組みの dl リスト、リンク等の中身は変更しない
================================================== */
#future {
	position: relative;
	overflow: hidden;
	padding-top: clamp(250px, 34vh, 380px); /* 年表終端の若葉ブックエンドのあとの余白＋ゴースト置き場 */
}
#future > * { position: relative; z-index: 1; }
#future .op-heading {
	padding: clamp(26px, 4vh, 52px) 24px;
}
#future .op-heading h2 {
	font-size: clamp(22px, 3.3vw, 34px);
	line-height: 1.55;
	letter-spacing: .08em;
	text-indent: 0;
	margin-top: 12px;
}
#future .op-heading .sub {
	margin-top: 22px;
	font-family: "Noto Serif JP", serif;
	font-size: 14px;
	letter-spacing: .08em;
	color: var(--ink-2);
}
#future .sec-label h2 { font-size: clamp(24px, 4vw, 36px); }
/* 北摂の街づくりの線画イラストは、インライン画像をやめて .bg-stage の
   スクロール連動背景（#future 専用）に統合した（§JS SECTION_BG）。CSS はここでは不要 */
#future .spot {
	max-width: 980px;
	margin: 0 auto;
	padding: clamp(34px, 5vh, 50px) 24px;
	border-top: 1px solid var(--navy);
}
#future .an-inner .spot:last-child { border-bottom: 1px solid var(--navy); }
/* 白背景セクションの左右マージン（インラインの margin: 0 100px）は
   狭い画面では全幅に戻す（細い帯状の背景が覗くのを避け、他セクションと揃える） */
@media (max-width: 1259px) {
	#future .an-section { margin: 0 !important; }
}
/* スポットの色付け: 旧 /50th/after/ の配色（地図ピンの色と対応）を参考に、
   番号を色付き円バッジ・見出しを青・箇条書きの点と下線をスポット色に */
#spot-001 { --spot-c: #EC8377; }
#spot-002 { --spot-c: #009E54; }
#spot-003 { --spot-c: #EDC800; }
#spot-004 { --spot-c: #2D41E4; }
#future .spot__head { align-items: center; }
#future .spot__no {
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--spot-c, var(--gold));
	color: #fff;
	font-style: normal;
	font-size: 15px;
	letter-spacing: .02em;
}
#future .spot__head h3 { color: #0039A8; }
#future .spot ul li { border-bottom: 1px solid color-mix(in srgb, var(--spot-c, var(--gold)) 30%, transparent); }
#future .spot ul li::before { background: var(--spot-c, var(--gold-light)); }
/* 図版がある spot はテキスト左・画像右の2カラム */
#future .spot:has(> figure) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
	gap: 0 44px;
	align-items: start;
}
#future .spot:has(> figure) > * { grid-column: 1; }
#future .spot:has(> figure) > figure { grid-column: 2; grid-row: 1 / span 8; margin: 0; max-width: none; }
@media (max-width: 1259px) {
	#future .spot:has(> figure) { display: block; }
	#future .spot:has(> figure) > figure { margin: 18px 0 0; }
}
/* これからの北摂: 開発スポットマップ（旧 /50th/after/ の #gmap を移植） */
#gmap { width: 100%; height: 400px; margin: 0 0 44px; }
@media (max-width: 700px) {
	#gmap { height: 320px; margin-bottom: 32px; }
}

/* ==================================================
   これからの社会の課題と当社が取り組む近未来ニーズ:
   旧 /50th/after/ の2カラム比較レイアウト（青＝課題／金＝取り組み）を移植
================================================== */
.issues {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	max-width: 1100px;
	margin: 40px auto 0;
	padding: 0 20px;
}
.issues__col { width: calc(50% - 12px); }
.issues__label {
	display: block;
	width: 60%;
	margin: 0 auto 40px;
	padding: 10px;
	border: 1px solid #0039A8;
	background: #f2f8ff;
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	color: #0039A8;
}
.issues__col--kyodo .issues__label {
	border-color: #C9A227;
	background: #fff9e6;
	color: #7e6500;
}
.iss-card {
	position: relative;
	background: #f2f8ff;
	border: 1px solid #0039A8;
	border-radius: 3px;
	padding: 20px 24px;
	margin: 0 0 16px;
}
.issues__col--kyodo .iss-card {
	background: #fff9e6;
	border-color: #C9A227;
}
.iss-nums {
	position: absolute;
	top: -12px;
	left: -12px;
	display: flex;
	gap: 6px;
}
.iss-num {
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(135deg, #4fa3ff, #0039A8);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
}
.issues__col--kyodo .iss-num { background: linear-gradient(135deg, #ffd84a, #ffb800); }
.iss-card h4 {
	margin: 0 0 10px;
	line-height: 1.666;
	font-weight: 700;
	color: #0039A8;
}
.issues__col--kyodo .iss-card h4 { color: #7e6500; }
.iss-card ul { list-style: none; margin: 0; padding: 0; }
.iss-card li {
	position: relative;
	padding-left: 1em;
	font-size: 12px;
	line-height: 1.666;
	text-align: justify;
	font-feature-settings: "palt";
	padding-bottom: 4px;
}
.iss-card li::before { content: "・"; position: absolute; left: 0; top: 0; }
@media (max-width: 1259px) {
	.issues { flex-direction: column; gap: 0; }
	.issues__col { width: 100%; }
	.issues__col--kyodo { margin-top: 48px; }
	.issues__label { width: 80%; }
}
@media (max-width: 700px) {
	.issues { padding: 0; } /* スマホは左右パディングなし（カード側の余白に任せる） */
}
@media (max-width: 700px) {
	#future { padding-top: clamp(160px, 26vh, 240px); }
	#future .op-heading { padding: 20px 0; }
	#future .op-heading h2 { font-size: clamp(19px, 4.8vw, 26px); }
	#future .spot { padding: 28px 14px; }
}

/* 課題・取り組みリスト（これから） */
.an-list { max-width: 860px; margin: 0 auto; padding: 0 20px; }
.an-list dl {
	border-bottom: 1px solid var(--line);
	padding: 20px 0;
}
.an-list dl:first-of-type { border-top: 1px solid var(--line); }
.an-list dt {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: .06em;
	color: var(--navy);
	line-height: 1.9;
	position: relative;
	padding-left: 20px;
}
.an-list dt::before {
	content: "";
	position: absolute;
	left: 0; top: .75em;
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--gold);
}
.an-list dd { font-size: 13.5px; color: var(--ink-2); margin-top: 6px; padding-left: 20px; line-height: 2.1; }

/* 数字見出しブロック（これからの北摂 1〜4） */
.spot { max-width: 860px; margin: 0 auto 30px; padding: 0 20px; }
.spot__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 10px; }
.spot__no {
	font-family: "EB Garamond", serif;
	font-style: italic;
	font-size: 34px;
	color: var(--gold);
	line-height: 1;
}
.spot__head h3 {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 19px;
	letter-spacing: .08em;
	color: var(--navy);
	line-height: 1.8;
}
@media (max-width: 700px) {
	.spot__head h3 { font-size: 17px; }
}
.spot ul { list-style: none; margin: 6px 0 0; }
.spot ul li {
	position: relative;
	padding-left: 18px;
	line-height: 2.5;
}
.spot ul li::before {
	content: "";
	position: absolute;
	left: 2px; top: .85em;
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--gold-light);
}
.spot p { }
.spot figure { margin: 18px 0 0; }
.spot figure img { border: 1px solid var(--line); }
.spot figcaption { font-size: 11px; color: var(--ink-3); margin-top: 6px; letter-spacing: .04em; }
.spot .ext {
	display: inline-block;
	margin-top: 12px;
	color: var(--blue);
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
.spot .ext::after { content: " ↗"; font-size: 11px; }

/* 次ページ導線 */
.next-page { text-align: center; padding: 30px 20px 100px; }

/* ==================================================
   レスポンシブ
================================================== */
@media (max-width: 860px) {
	.an-section { padding: 76px 20px; }
	.an-greeting .grid { grid-template-columns: 1fr; gap: 28px; }
	.gate-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
	.tl-strip { flex-wrap: wrap; gap: 20px 0; }
	.tl-node { width: 25%; font-size: 15px; }
}
@media (max-width: 700px) {

	/* スマホは左端の細いレール＋1カラム */
	.timeline::before { left: 16px; }
	.t-entry {
		grid-template-columns: minmax(0, 1fr); /* スライダー等のmin-contentで広がらないように */
		gap: 10px;
		padding: 0 0 36px 8px; /* 左はレールぶん・下は年同士の間隔 */
	}
	.t-year { display: block; }
	.t-year .y { font-size: 30px; display: inline; }
	.t-year .era { display: inline; margin-left: 10px; }
	.works-btn { display: block; align-self: flex-start; margin: 12px 0 0; width: fit-content; } /* 年号の下の行・幅は文字なり */
	.works-btn br { display: none; } /* スマホは改行なしの1行表示 */
	.works-btn .nw { white-space: nowrap; } /* ボタン内は折り返さない */
	.t-item h3 { font-size: 16px; } /* スマホは見出しを一回り小さく */
	.t-world .works-side { position: static; margin-bottom: 12px; }
	.t-world .works-side .works-btn { margin: 0; }
	/* スマホは月をインラインに戻す（左に置くスペースがない） */
	.t-item .month { position: static; display: inline-block; }
	.t-entry--sem .t-body { grid-template-columns: minmax(0, 1fr); }
	.t-body > .t-item--sem { grid-row: auto !important; justify-self: stretch; max-width: none; order: 1; } /* 行指定を打ち消し・写真の下＝一番下に */
	.t-photos--under { flex-wrap: wrap; }
	.t-photos--under figure,
	.t-photos--under figure:nth-child(odd),
	.t-photos--under figure:nth-child(even) { width: 74%; }
	.t-item h3::before { display: none; }
	.t-body { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.t-body > .t-photos,
	.t-body > .t-item,
		.t-body > .t-topic { grid-column: 1; }
	.op-lead br { display: none; }
	.t-world { padding: 24px 0 48px; } /* 前の年のテキストとの間隔を確保 */
	.t-world .chip-effect { margin-left: 0; }
	/* レール(16px)接続で整える: 左角は四角（0 14px 14px 0）、
	   カード左端をレールに付け、右端は本文右端まで伸ばす */
	.t-world .chip-group { width: calc(100% + 4px); margin-left: -4px; border-radius: 0 8px 8px 0; }
	.t-body > .t-world--in { margin-left: -12px; padding: 0 0 14px; }
	.t-world--in .chip-group { margin-left: 0; }

	.pledge__item { padding-left: 58px; }
	.pledge__item::before { font-size: 28px; }
}

/* 校正PDFに載っていない既存チップ（要確認）は赤枠で示す */
.t-world .chip--check { border: 1px dashed #C0392B; }

/* カード内の補足行（経済への影響 → 協同の取り組みを主役に） */
.t-world .chip-effect {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 16px;
	margin: 0 0 0 20px;
}
.t-world .chip-effect + .chip-effect {
	margin-top: 6px;
	line-height: 2;
	text-align: left;
}
/* 上の段＝影響・下の段＝取り組みで1組。組と組の間は広めに空ける */
.t-world .chip-effect--action { margin-top: 4px; }
.t-world .chip-effect--action + .chip-effect--impact { margin-top: 14px; }
.chip-effect .ce-label {
	display: inline-block;
	margin-right: 8px;
	padding: 0 8px;
	border: 1px solid var(--line);
	border-radius: 3px;
	background: #fff;
	font-size: 10.5px;
	font-weight: 400;
	color: var(--gold);
	letter-spacing: .08em;
	vertical-align: 1px;
}
.chip-effect .ce-impact { font-size: 13px; color: var(--ink-2); } /* 薄すぎて読みづらかったため第2階層色に */
.chip-effect .ce-action { font-size: 13.5px; color: var(--navy); }
.chip-effect .ce-label--kyodo {
	background: #0039A8; /* 世の中＝金、協同の動き＝紺の対比 */
	border-color: #0039A8;
	color: #fff;
}
/* タブレット幅では「影響」「協同の取り組み」ラベルを1行目に置き、テキストは改行してその下から */
@media (min-width: 701px) and (max-width: 1259px) {
	.chip-effect .ce-label { display: block; width: fit-content; margin: 0 0 6px; }
}

/* 世の中チップの注記（為替・株価など） */
.t-world .chip .sub {
	margin-left: 8px;
	font-size: 11px;
	color: var(--ink-3);
	letter-spacing: .03em;
}
/* スマホ: チップの1行目は年号（＋アイコン）だけにし、出来事はその下の行から。
   影響・取り組み行の左インデントも解除（基本ルールより後ろに置く） */
@media (max-width: 700px) {
	.t-world .chip { display: block; }
	.t-world .chip::before { margin-right: 8px; }
	.t-world .chip b::after { content: ""; display: block; height: 4px; }
	.t-world .chip-effect { margin-left: 0; }
}

/* ==================================================
   イラスト画像（p001 旧本社など）: トリミングせず単独で大きく配置
================================================== */
.t-entry--illust .t-body {
	grid-template-columns: minmax(0, fit-content(560px)) minmax(0, 260px);
}
.t-entry--illust .t-body > .t-item,
.t-entry--illust .t-body > .t-topic { grid-column: 1; }
.t-entry--illust .t-body > .t-photos--illust {
	grid-column: 2;
	grid-row: 1 / span 4;
	align-self: start;
	margin-top: 0;
	margin-bottom: -140px; /* 下側はフロー外にして次のチップを引き寄せる（右カラムなので重ならない） */
	text-align: left;
}
.t-photos--illust figure { width: auto !important; margin: 0 !important; }
.t-photos--illust figure img {
	width: auto;
	max-width: 100%;
	aspect-ratio: auto;
	object-fit: contain;
}
/* スマホ: 1カラムでは下側フロー外はみ出しが次の年に重なるため解除
   （基本ルールより後ろに置かないと効かない点に注意） */
@media (max-width: 700px) {
	.t-entry--illust .t-body > .t-photos--illust { margin-bottom: 0; }
}

/* 施工実績アコーディオン内の付随写真 */
.works-photos {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 6px 0 16px;
}
.works-photos figure { margin: 0; width: min(46%, 230px); }
.works-photos figure img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.works-photos figcaption {
	font-family: "Noto Serif JP", serif;
	font-size: 11.5px;
	color: var(--blue);
	margin-top: 6px;
	letter-spacing: .04em;
	line-height: 1.7;
}

/* ==================================================
   写真サイズの統一（4:3トリミング・ひと回り小さく）
   ※ イラスト（.t-photos--illust）はトリミングしない
================================================== */
.t-photos:not(.t-photos--illust) figure img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.t-photos figure:nth-child(odd) { width: min(72%, 300px); }
.t-photos figure:nth-child(even) { width: min(52%, 220px); margin-top: -36px; }
.spot figure { max-width: 560px; }

/* セミナーカードの年: 右カラムはカードが占有するので、
   1枚ものの写真は見出しの下（本文カラム内）に通常サイズで置く。
   複数あるときは横並び */
.t-body > .t-photos--under {
	grid-column: 1;
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin: 0 0 10px;
}
.t-photos--under figure,
.t-photos--under figure:nth-child(odd),
.t-photos--under figure:nth-child(even),
.t-photos--under figure:nth-child(odd):not(:first-child) {
	width: 245px;
	flex: 0 1 auto;
	margin: 0;
	position: static;
}
/* 複数枚の横並びは本文カラム内・最後の見出しの直後に置く（サイズだけ指定サイズに） */
.t-photos--under-multi figure,
.t-photos--under-multi figure:nth-child(odd),
.t-photos--under-multi figure:nth-child(even) { width: 204px; }
.t-photos--under-multi figure img { height: 153px; }
/* 横並びのまま右側に絶対配置する変種（行の高さに影響させない） */
.t-body { position: relative; }
/* 絶対配置の写真が下の年の写真カラムへはみ出す年は、生成側の --entry-pad で
   エントリ下余白を広げる（絶対配置が効く広い幅のみ。狭い幅ではフローに戻るため不要） */
@media (min-width: 1260px) {
	.timeline .t-entry { padding-bottom: var(--entry-pad, 44px); }
}
.t-body > .t-photos--under-float {
	position: absolute;
	top: var(--float-t, 0px);
	right: var(--float-r, 0px);
	margin: 0;
	width: max-content;
	grid-column: auto;
}
/* セミナー年の時代チップはエントリ先頭（1行目）に置く。
   カード側を生成側の style="grid-row" で1行ぶん下げている */

/* 1枚ものの写真は右カラムに縦積み（1〜9行目を占有）。
   写真の高さが見出し同士の間隔に影響しないよう、テキストの行フローから切り離す */
.t-body > .t-photos--stack {
	grid-column: 2;
	grid-row: 1 / span 9;
	align-self: start;
	margin: 0;
}
.t-photos--stack figure,
.t-photos--stack figure:nth-child(odd),
.t-photos--stack figure:nth-child(even),
.t-photos--stack figure:nth-child(odd):not(:first-child) {
	width: min(88%, 300px); /* 固定340px列で従来どおり約300pxになるよう調整 */
	margin: 0 0 20px;
	position: static;
}
.t-photos--stack figure:last-child { margin-bottom: 0; }
/* 原本が小さい古い写真（1990 教育研修所・1992 第1ムロオ等）も列幅まで拡大して揃える */
.t-photos--stack figure img { width: 100%; }

/* 連続する年の1枚写真をまとめた横並び行（右寄せ・タイムライン直下） */
.t-photos--merged {
	display: flex;
	justify-content: flex-end;
	gap: 16px;
	margin: -24px 0 64px;
	padding-left: 180px;
}
.t-photos--merged figure,
.t-photos--merged figure:nth-child(odd),
.t-photos--merged figure:nth-child(even),
.t-photos--merged figure:nth-child(odd):not(:first-child) {
	width: 224px;
	margin: 0;
	position: static;
}
.t-photos--merged figure img { width: 100%; height: 168px; object-fit: cover; }
/* まとめ写真の年号ラベル（年との対応を明示） */
.t-photos--merged .mp-year {
	display: block;
	font-family: "EB Garamond", "Noto Serif JP", serif;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .06em;
	color: var(--ink);
}

/* 1見出し1枚の連続年: 写真を項目に絶対配置（行の高さに影響させない）。
   右端からのオフセットは年ごとに生成側の --float-r で指定（並びすぎ防止） */
.t-item .t-photos--float {
	position: absolute;
	top: calc(-4px + var(--float-t, 0px));
	right: var(--float-r, 0px);
	width: 224px;
	margin: 0;
}
.t-photos--float figure,
.t-photos--float figure:nth-child(odd),
.t-photos--float figure:nth-child(even) {
	width: 100%;
	margin: 0;
	position: static;
}
.t-photos--float figure img { width: 100%; height: 150px; object-fit: cover; }
/* 縦長の建物写真はトリミングせず縦長のまま表示する変種 */
.t-photos.t-photos--float--tall figure img {
	width: auto;
	height: 240px;
	aspect-ratio: auto;
	object-fit: contain;
}
/* 中間幅はジグザグの余地が無いので写真を小さくして右端に整列させる
   （キャプションは次の写真に重なるため出さない。対応は位置で分かる） */
@media (min-width: 701px) and (max-width: 1259px) {
	.t-item .t-photos--float { width: 150px; right: 0; }
	.t-photos--float figure img { height: 100px; }
	.t-photos--float figcaption { display: none; }
	/* 中間幅では2カラムのトラック幅が画面を超えるので、
	   両カラムを可変（minmax(0,…)）にして横スクロールを防ぐ。
	   ＋右側に絶対配置する横並び写真は本文フローに戻す */
	.t-entry { column-gap: 36px; }
	.t-body { grid-template-columns: minmax(0, 1fr) 240px; column-gap: 40px; }
	.t-entry--nophoto .t-body { grid-template-columns: minmax(0, 1fr); }
	.t-entry--sem .t-body { grid-template-columns: minmax(0, 1fr) minmax(0, 260px); }
	.t-entry--sem-wide .t-body { grid-template-columns: minmax(0, 1fr) minmax(0, 280px); }
	.t-entry--illust .t-body { grid-template-columns: minmax(0, 1fr) minmax(0, 220px); }
	.t-body > .t-photos--under-float { position: static; width: auto; margin: 0 0 10px; }
}

/* タブレット幅（701〜900px）: 2カラムだと見出しが折り返すため、
   本文は1カラムにして写真・セミナーカードは本文の下に流す */
@media (min-width: 701px) and (max-width: 1259px) {
	.t-body,
	.t-entry--sem .t-body,
	.t-entry--sem-wide .t-body,
	.t-entry--illust .t-body { grid-template-columns: minmax(0, 1fr); }
	.t-body > .t-photos--stack,
	.t-entry--illust .t-body > .t-photos--illust { grid-column: 1; grid-row: auto !important; margin-top: 14px; }
	.t-body > .t-item--sem {
		grid-column: 1;
		grid-row: auto !important;
		justify-self: stretch;
		width: auto;
		max-width: none;
		margin-top: 14px;
	}
	/* 項目内の絶対配置写真（2000年代）も本文の下の通常フローに戻す */
	.t-item .t-photos--float { position: static; width: min(88%, 300px); margin: 12px 0 0; }
	.t-photos--float figure img { height: auto; }
	.t-photos--float figcaption { display: block; }
	/* イラストの下側フロー外はみ出し（右カラム前提）は1カラムでは次の年に重なるため解除 */
	.t-entry--illust .t-body > .t-photos--illust { margin-bottom: 0; }
	/* 年号は少し小さく（月ラベルと被らないように） */
	.t-year .y { font-size: 32px; }
	/* セミナーカードは写真より後ろ（一番下）に置く */
	.t-body > .t-item--sem { order: 1; }
}

@media (max-width: 700px) {
	.t-photos figure:nth-child(odd) { width: 74%; }
	.t-photos figure:nth-child(even) { width: 54%; margin-top: -26px; }

	/* セミナー年の時代チップはスマホでは1カラムの自動配置に戻す */
	.t-entry--sem .t-body > .t-world--in { grid-row: auto !important; }
	/* 写真スタックもスマホでは1カラムの通常フローに戻す */
	.t-body > .t-photos--stack { grid-column: 1; grid-row: auto !important; }
	/* まとめ横並びはスマホでは折り返して左寄せ */
	.t-photos--merged { flex-wrap: wrap; justify-content: flex-start; padding-left: 0; margin: 0 0 48px; }
	/* 絶対配置写真はスマホでは通常フロー（テキストの下）に戻す */
	.t-item .t-photos--float { position: static; width: 100%; margin: 12px 0 0; }
	.t-photos--float figure,
	.t-photos--float figure:nth-child(odd),
	.t-photos--float figure:nth-child(even) { width: 100%; margin: 0; }
	.t-body > .t-photos--under-float { position: static; width: auto; }
	/* 1枚で表示される画像は横いっぱいに */
	.t-photos--stack figure,
	.t-photos--stack figure:nth-child(odd),
	.t-photos--stack figure:nth-child(even),
	.t-photos--stack figure:nth-child(odd):not(:first-child) { width: 100%; margin: 0 0 16px; }
	/* 複数枚の横並びは1枚表示＋横スワイプのスライドに（.t-photos--row と同じ挙動） */
	.t-photos--under {
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 12px;
		scrollbar-width: none;
	}
	.t-photos--under::-webkit-scrollbar { display: none; }
	.t-photos--under figure,
	.t-photos--under figure:nth-child(odd),
	.t-photos--under figure:nth-child(even),
	.t-photos--under figure:nth-child(odd):not(:first-child) { flex: 0 0 86%; width: auto; max-width: none; margin: 0; scroll-snap-align: center; }
	.t-photos--under figure:only-child { flex: 0 0 100%; } /* 1枚だけの場合は全幅 */
	.t-photos--under-multi figure img { height: auto; }

	/* イラスト入りエントリはスマホでは1カラムに戻す */
	.t-entry--illust .t-body { grid-template-columns: minmax(0, 1fr); }
	.t-entry--illust .t-body > .t-photos--illust { grid-column: 1; grid-row: auto; margin-top: 16px; }
}

/* ==================================================
   同グループ写真3枚以上: 本文下に横並び（スマホは1枚ずつスライド）
================================================== */
.t-body > .t-photos--row {
	grid-column: 1 / -1;
	display: flex;
	gap: 16px;
	margin: 0 0 24px;
}
.t-photos--row figure,
.t-photos--row figure:nth-child(odd),
.t-photos--row figure:nth-child(even),
.t-photos--row figure:nth-child(odd):not(:first-child) {
	/* 枚数に関わらず4枚並びと同じ幅（1/4）で左詰め */
	width: auto;
	flex: 0 0 calc((100% - 48px) / 4);
	min-width: 0;
	margin: 0;
	position: static;
}
.t-photos--row figure img { width: 100%; }
/* タブレット幅は4枚並びだと小さすぎるため2枚×2段にする */
@media (min-width: 701px) and (max-width: 1259px) {
	.t-photos--row { flex-wrap: wrap; }
	.t-photos--row figure,
	.t-photos--row figure:nth-child(odd),
	.t-photos--row figure:nth-child(even),
	.t-photos--row figure:nth-child(odd):not(:first-child) { flex: 0 0 calc((100% - 16px) / 2); }
}
@media (max-width: 700px) {
	/* スマホは1枚表示＋横スワイプのスライド */
	.t-photos--row {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 12px;
		scrollbar-width: none;
	}
	.t-photos--row::-webkit-scrollbar { display: none; }
	.t-photos--row figure,
	.t-photos--row figure:nth-child(odd),
	.t-photos--row figure:nth-child(even),
	.t-photos--row figure:nth-child(odd):not(:first-child) {
		flex: 0 0 86%;
		width: auto;
		max-width: none;
		margin: 0;
		scroll-snap-align: center;
	}
}
