@charset "UTF-8";

/*---共通設定---*/

:root {
	--color-primary: #3366ff;
	--color-accent: #ff00cc;
	--color-back: #f0f0ff;
	--spacing-base: 1rem;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: "Meiryo", "Yu Gothic UI", "Hiragino Kaku Gothic ProN", "Noto Sans CJK JP", "VL Gothic", sans-serif;
	line-height: 1.5;
	width: 1000px;
	margin: 0 auto;
	background: var(--color-back);
}

/*---固定ヘッダー---*/

.site-header {
	position: fixed;
	width: 1000px;
	z-index: 1000;
	background: #ffffff;
	border-bottom: 5px solid var(--color-back);
}

.site-header img {
	display: block;
	margin: 0 auto;
}

.site-nav {
	list-style: none;
	width: 1000px;
}

.site-nav ul {
	list-style: none;
	display: flex;
	justify-content: flex-start;
	background: #ffffff;
	gap: 3rem;
	padding: 0.5rem 2.5rem;
}

.site-nav a:hover,
site-nav a:focus {
	color: #ffd700;
}

/*---メニュー---*/

.menu-item {
	text-decoration: none;
	color: #0033a0;
	display: inline-block;
	text-align: center;
}

.menu-item strong {
	display: block;
	font-weight: bold;
}

.menu-item small {
	display: block;
	font-weight: bold;
	font-size: 0.75rem;
	color: #666666;
	margin-top: 0.25rem;
}

/*---ハンバーガーメニュー---*/

.hamburger {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	user-select: none;
	padding: 0.5rem;
	background: #ffffff;
}

.hamburger .line {
	width: 24px;
	height: 3px;
	background: #333;
	margin: 3px 0;
	transition: transform 0.5s ease, opacity 0.5s ease;
}

.hamburger .menu-label {
	font-size: .75rem;
	margin-top: .25rem;
	letter-spacing: .05em;
}

.nav-toggle {
	display: none;
}

/*---開閉アニメーション---*/
.nav-toggle:checked+.hamburger .line:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
}

.nav-toggle:checked+.hamburger .line:nth-child(2) {
	opacity: 0;
}

.nav-toggle:checked+.hamburger .line:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

@media (max-width: 850px) {

	/* ハンバーガーを表示、通常メニューを折りたたむ */
	.hamburger {
		display:inline-flex;
		margin-left: 3rem;
	}

	.site-nav {
		/* 折りたたむために高さを 0 → 自動展開へ */
		position: absolute;
		left: 0;
		right: 0;
		overflow: hidden;
		max-height: 0;
		transition: max-height .3s ease;
		opacity: 0.95;
	}

	.site-header img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		
	}

	/* 縦並びレイアウト */
	.site-nav ul {
		flex-direction:column;
		gap: 0;
		padding: 0.5rem 0;
		width: 10rem;
	}

	.site-nav a {
		display: block;
		padding: .75rem 1rem;
	}

	/* チェックが入ったら展開 */
	.nav-toggle:checked~.site-nav {
		/* 十分大きめに取れば自動的に高さが決定 */
		max-height: 600px;
	}
}

/*---コンテンツ部分---*/
main {
	position: relative;
	top: calc(60px + 2rem);
	width: 1000px;
	height: 100%;
	padding: 2rem;
	background-color: #ffffff;
}

/*---メインコンテンツであるarticle内の書式設定---*/
/*---標準的なフォントサイズの指定---*/
article {
	font-size: 14px;
}

/*---見出しの書式設定---*/
/*---h1見出し(グラデーションライン対応)、1回しか使わないのでID指定---*/
h1#deco {
	width: 100%;
	height: 100%;
	padding-left: 15px;
	margin: 0.5em auto;
	font-size: 125%;
	position: relative;
}

h1#deco:before {
	content: "";
	display: block;
	height: 100%;
	width: 8px;
	background: -webkit-gradient(linear, left top, left bottom, from(#0000ff), to(#ff99ff));
	background: -moz-linear-gradient(top, #6666ff, #ff99ff);
	background: linear-gradient(to bottom, #0000ff, #ff99ff);
}

h1#deco:before {
	position: absolute;
	left: 0;
}

h1#deco em {
	font-size: 85%;
	font-style: normal;
	font-family: sans-serif;
	color: #666666;
}


/*---h2およびh3見出し、複数回使うのでclass指定---*/
h2.deco2 {
	margin: 0.25em 0;
	font-size: 110%;
}

h2.deco2:before {
	content: "> ";
	font-weight: bold;
	color: #ff00cc;
}

h2 em {
	font-size: 85%;
	font-style: normal;
	font-family: sans-serif;
	color: #666666;
}

h3.deco3 {
	font-size: 100%;
	color: #3333ff;
}

h3 em {
	font-size: 85%;
	font-style: normal;
	font-family: sans-serif;
	color: #666666;
}

/*---セクション内の書式設定---*/
/*---文献リスト用---*/
section.pub {
	margin-bottom: 3em;
}

section.pub ol {
	margin: 0.5em 1em 1em 1.5em;
	font-size: small;
}

section.pub li {
	margin-bottom: 0.5em;
}

section.pub p {
	text-align: right;
	font-size: small;
}


/*---定義済みリストの書式---*/
dl.dlist dt {
	float: left;
	font-weight: bold;
	color: #009900;
}

dl.dlist dd {
	margin-left: 8em;
}


/*---メンバーリスト表の書式---*/
div.ml {
	display: table;
	border-collapse: separate;
	border-spacing: 4px 12px;
}

div.mlrow {
	display: table-row;
}

div.mlrow div {
	display: table-cell;
	vertical-align: middle;
	border-bottom: 2px solid #cccccc;
	width: 15em
}

div.mlrow img {
	margin-right: 4px;
}

div.mlrow em {
	font-size: 85%;
	font-style: normal;
	font-family: sans-serif;
	color: #666666;
}


/*---装置リスト表の書式---*/
div.fl {
	display: table;
	border-collapse: separate;
	border-spacing: 8px 8px;
	margin-bottom: 1em;
}

div.flrow {
	display: table-row;
}

div.flrow div {
	display: table-cell;
	vertical-align: top;
	width: 210px;
}


/*---リンクページで使用するリンクリスト---*/
ul.rlink {
	list-style: disc inside;
	color: #9933ff;
}

ul.rlink-h {
	list-style: disc inside;
	color: #9933ff;
}

ul.rlink-h li {
	display: inline-block;
	margin-right: 1em;
}


/*---ヘッダ出し用---*/
#a0,
#a1,
#a2,
#a3,
#a4,
#a5,
#a6 {
	padding-top: 100px;
	margin-top: -100px;
}