@charset "UTF-8";
/* ==========================================================================
   研究業績（archive）ページ専用スタイル
   目的：一覧が縦に非常に長く、下部の項目へ到達しにくい問題の解消
     - 年単位のアコーディオン（details/summary）で初期表示を短くする
     - Contents ナビの追従（style.css の sticky 指定）と併用
     - スマートフォンではセクション見出しへのジャンプバーを表示
   ========================================================================== */

/* ==== 見出しの件数バッジ ================================================= */
.archive .sec_count {
	float: right;
	margin-right: 0.8em;
	font-size: 0.62em;
	font-weight: normal;
	letter-spacing: 0.05em;
	opacity: 0.85;
}
.archive .year_count {
	display: inline-block;
	margin-left: 0.7em;
	padding: 0.1em 0.6em;
	border-radius: 999px;
	background: #e7edf3;
	color: #002040;
	font-size: 0.72em;
	line-height: 1.6;
	vertical-align: 0.1em;
}

/* ==== 操作パネル ========================================================= */
.archive_tools {
	margin: 14px 0 18px;
	padding: 12px 14px;
	border: 1px solid #cfd8e2;
	border-left: 6px solid #002040;
	background: #f7f9fb;
}
.archive_note {
	margin: 0 0 8px;
	padding: 0;
	font-size: 0.9em;
	color: #40536a;
}
.archive_filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.archive_filter label {
	font-weight: bold;
	font-size: 0.92em;
	color: #002040;
}
.archive_filter input[type="search"] {
	flex: 1 1 240px;
	min-width: 0;
	padding: 8px 10px;
	border: 1px solid #9fb0c2;
	border-radius: 4px;
	background: #fff;
	font-size: 1em;
}
.archive_filter input[type="search"]:focus {
	border-color: #16AAC9;
	outline: 2px solid rgba(22, 170, 201, 0.35);
	outline-offset: 1px;
}
.archive_actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}
.archive_btn {
	padding: 7px 14px;
	border: 1px solid #002040;
	border-radius: 4px;
	background: #fff;
	color: #002040;
	font-size: 0.9em;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.archive_btn:hover {
	background: #002040;
	color: #fff;
}
.archive_status {
	margin: 8px 0 0;
	padding: 0;
	font-size: 0.9em;
	font-weight: bold;
	color: #00557f;
	min-height: 1.5em;
}

/* ==== セクションジャンプバー（スマートフォン向け） ======================= */
.archive_jump {
	display: none;
}
.archive_jump ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0 !important;
	margin: 0;
	list-style: none;
}
.archive_jump li {
	padding: 0 !important;
	border: none !important;
	list-style: none;
}
.archive_jump li::before {
	content: none !important;
}
.archive_jump a {
	display: block;
	padding: 6px 12px;
	border: 1px solid #002040;
	border-radius: 999px;
	background: #fff;
	color: #002040;
	font-size: 0.85em;
	text-decoration: none;
	white-space: nowrap;
}

/* ==== 年別アコーディオン ================================================= */
.archive details.year {
	margin: 0 0 6px;
	border-bottom: 1px solid #e3e8ee;
}
.archive details.year > summary {
	display: block;
	position: relative;
	padding: 2px 2.2em 2px 0;
	cursor: pointer;
	list-style: none;
}
.archive details.year > summary::-webkit-details-marker {
	display: none;
}
.archive details.year > summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0.6em;
	width: 8px;
	height: 8px;
	margin-top: -6px;
	border-right: 2px solid #002040;
	border-bottom: 2px solid #002040;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}
.archive details.year[open] > summary::after {
	transform: rotate(-135deg);
	margin-top: -2px;
}
.archive details.year > summary:hover h4 {
	color: #00557f;
}
.archive details.year > summary h4 {
	display: block;
}
.archive details.year[open] > summary {
	background: #f2f5f8;
}

/* 絞り込みで一致しなかった項目・年ブロックを隠す */
.archive li[hidden],
.archive details.year[hidden] {
	display: none !important;
}

/* アンカーで飛んだときに見出しが隠れないようにする */
.archive h3[id] {
	scroll-margin-top: 12px;
}

/* ==== スマートフォン ===================================================== */
@media screen and (max-width: 768px) {
	.archive_tools {
		margin: 10px 10px 14px;
	}
	.archive_jump {
		display: block;
		position: sticky;
		top: 0;
		z-index: 90;
		margin: 0 0 12px;
		padding: 8px 10px;
		background: rgba(255, 255, 255, 0.96);
		border-bottom: 1px solid #cfd8e2;
		overflow-x: auto;
	}
	.archive_jump ul {
		flex-wrap: nowrap;
	}
	.archive .sec_count {
		float: none;
		display: block;
		margin: 0;
		font-size: 0.55em;
	}
	.archive h3[id] {
		scroll-margin-top: 52px;
	}
}
