@charset "UTF-8";
/* ---------------------------
 * 全体の基本設定
 * --------------------------- */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
body {
	font-family: "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
	line-height: 1.8;
	color: #333;
	background: #f9f9f9;
	margin-top: 110px;
	/* ヘッダーの高さ分だけ下げる */
}

a{
	transition: .3s;//アニメーションすることを想定して追加しておきます
}

/* ---------------------------
 * ヘッダー
 * --------------------------- */
.header {
	background: #c7525b;
	color: #fff;
	padding: 0 1rem;
	/*  padding: 1rem;*/
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 2;
	height: 90px;
}
.header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}
.header-inner>div:first-of-type {
	margin-right: auto;
}
@media (max-width: 768px) {
	.header-inner>div:first-of-type {
		margin-left: auto;
	}
	.header-inner .btn_bak{display:none;}
}
.site-title {
	font-size: 1.2rem;
}
.site-title img {
	width: auto;
	height: 80px;
}

@media (max-width: 420px) {
.site-title img {
/*	width: 240px;*/
	height:70px;
}
}

.search-form {
	display: flex;
	align-items: center;
	gap: 0.3rem;
}
.search-form input[type="text"] {
	padding: 0.4rem 0.6rem;
	border-radius: 4px 0 0 4px;
	border: none;
	outline: none;
}
.search-form input[type="submit"] {
	padding: 0.4rem 0.8rem;
	border: none;
	/*    background: #1abc9c;*/
	background: #000;
	color: #fff;
	border-radius: 0 4px 4px 0;
	cursor: pointer;
}
.search-form input[type="submit"]:hover {
	/*  background: #16a085;*/
	background: #444;
}
/* モバイル対応 */
@media (max-width: 768px) {
	.header-inner {
		flex-direction: column;
		gap: 0.5rem;
		/*text-align: center;*/
	}
	.search-form {
		width: 100%;
		justify-content: center;
	}
	.search-form input[type="text"] {
		width: 60%;
	}
}
/* PC時は従来のまま表示 */
.search-form {
	display: flex;
	align-items: center;
	gap: 0.3rem;
}
/* スマホ時は上に隠しておく */
@media (max-width: 768px) {
	.search-form {
		position: absolute;
		top: -90px;
		/* ヘッダー上に隠す */
		/*right: 1rem;*/
		background: #666;
		padding: 0.5rem;
		border-radius: 8px;
		transition: top 0.4s ease;
	}
	/* 出現時 */
	.search-form.active {
		top: 90px;
		/* ヘッダー下に表示 */
	}
}
/* PCでは非表示 */
.search-btn {
	position: absolute;
	top: 20px;
	/* ヘッダー内での上下位置調整 */
	right: 20px;
	/* ヘッダー右端からの距離 */
	background: none;
	border: none;
	color: #fff;
	font-size: 1.5rem;
	cursor: pointer;
	display: none;
	/* PC時は非表示 */
}
/* スマホでは表示 */
@media (max-width: 768px) {
	.search-btn {
		display: block;
	}
}
.sp_off{
		display: block;
}
@media (max-width: 768px) {
	.sp_off{
			display: none;
	}
}
.pc_off{
		display: none;
}
@media (max-width: 768px) {
	.pc_off{
			display: block;
	}
}

/* ---------------------------
   ナビゲーション
--------------------------- */
/* nav全体 */
nav {
	/* background: #34495e; */
}
nav ul {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: nowrap;
	/* PCは1行に固定 */
	padding: 0;
	margin: 0;
}
nav li {
	margin: 0;
}
nav a {
	display: block;
	margin: 5px;
	border-radius: 20px;
	padding: 0.8rem 1.2rem;
	font-size: 1.5em;
	font-weight: 700;
	color: #fff;
	text-align: center;
	text-decoration: none;
	transition: background 0.3s;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}
.info,
.collections,
.events,
.publications,
.education {
	position: relative;
	overflow: hidden;
	flex: 1 1 200px;
	max-width: 300px;
	height: 150px;
	margin: 5px;
	border-radius: 20px;
}
/* PC縮小 1400px→1200px：文字とパディングを少し縮小 */
@media screen and (max-width: 1400px) {
	nav a {
		font-size: 1.3em;
		padding: 0.7rem 1rem;
	}
}
@media screen and (max-width: 1200px) {
	nav ul {
		flex-wrap: wrap;
		/* 2行にする */
	}
	nav li {
		flex: 0 0 calc(33.333% - 10px);
		/* 3列 */
		margin: 5px;
	}
	.info,
	.collections,
	.events,
	.publications,
	.education {
		height: 100px;
	}
	nav a {
		font-size: 1.1em;
		padding: 0.6rem 0.8rem;
	}
}
/* タブレット 900px以下：2行3列、ボタン細長く */
@media screen and (max-width: 900px) {
	nav ul {
		flex-wrap: wrap;
		/* 2行にする */
	}
	nav li {
		flex: 0 0 calc(33.333% - 10px);
		/* 3列 */
		margin: 5px;
	}
	.info,
	.collections,
	.events,
	.publications,
	.education {
		height: 80px;
	}
	nav a {
		padding: 0.3rem 0.5rem;
		font-size: 1.2em;
	}
}
/* 645px以下：2列 */
@media screen and (max-width: 645px) {
	nav li {
		flex: 0 0 calc(50% - 10px);
		/* 2列 */
		margin: 5px;
		height: 50px !important;
	}
	.info,
	.collections,
	.events,
	.publications,
	.education {}
	nav a {
		font-size: 1.1em;
		margin-top:0;
	}
}
/* スマホ 450px以下：1列、さらに高さを縮小 */
@media screen and (max-width: 450px) {
	nav li {
		flex: 0 0 100%;
		margin: 5px 0;
	}
	.info,
	.collections,
	.events,
	.publications,
	.education {}
	nav a {
		font-size: 0.9em;
		padding: 0.25rem 0.5rem;
		transition: .3s;//アニメーションすることを想定して追加しておきます
	}
}
.info:after,
.collections:after,
.events:after,
.publications:after,
.education:after {
	position: absolute;
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-ms-background-size: cover;
	background-size: cover;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	-ms-transition: all .3s ease-out;
	transition: all .3s ease-out;
	border-radius: 20px;
}
.info:after {
	background: url(bg_menu01.png) no-repeat center center;
}
.collections:after {
	background: url(bg_menu02.png) no-repeat center center;
}
.events:after {
	background: url(bg_menu03.png) no-repeat center center;
}
.publications:after {
	background: url(bg_menu04.png) no-repeat center center;
}
.education:after {
	background: url(bg_menu05.png) no-repeat center center;
}
.info:hover:after,
.collections:hover:after,
.events:hover:after,
.publications:hover:after,
.education:hover:after {
	opacity: .8;
	-moz-transform: scale(1.1);
	-webkit-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
}
.info a,
.collections a,
.events a,
.publications a,
.education a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
	height: 100%;
	text-decoration: none;
	color: #fff
}
/* スマホ 645px以下：背景色 */
@media screen and (max-width: 645px) {
	.info:after {
		background: #b5689c;
	}
	.collections:after {
		background: #8b5328;
	}
	.events:after {
		background: #769231;
	}
	.publications:after {
		background: #b39243;
	}
	.education:after {
		background: #3876bc;
	}
}
/* ---------------------------
   テキストの装飾
--------------------------- */
.small {
	font-size: 0.9rem;
}
.large {
	font-size: 1.1rem;
}
.red {
	color: red;
}
.bold {
	font-weight: 700;
}
.center {
	text-align: center;
}
.right {
	text-align: right;
}
/* 見出しの装飾1 */
.page-title-1 {
	position: relative;
	padding-bottom: 0.5em;
	font-size: 1.7rem;
	color: #444;
}
/* 見出しの装飾2 */
.page-title-2 {
	border-bottom: solid 3px #ec6771;
}
/* 見出しの装飾3 */
.page-title-3 {
	position: relative;
	padding: 0.25em 0;
	line-height: 1.5;
}
.page-title-3:after {
	content: "";
	display: block;
	height: 4px;
	background: linear-gradient(90deg, #ec6771, #f4d7d4);
}

.page-title-3 span {
	font-size:60%;
}

/* 見出しの装飾4 */
.page-title-4 {
	text-align: center;
	font-size: 3rem;
	color: #ec6771;
	position: relative;
}
.page-title-4:after {
	content: '';
	position: absolute;
	bottom: -10px;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: linear-gradient(90deg, #ec6771, #f4d7d4);
}
/* 見出しの装飾5 */
.page-title-5 {
	position: relative;
	padding-left: 1.2em;
	/* 丸と文字の間隔 */
	line-height: 1.5;
}
.page-title-5::before {
	content: "";
	position: absolute;
	left: 0;
	/* 行頭に配置 */
	top: 50%;
	transform: translateY(-50%);
	width: 0.6em;
	/* 丸の大きさ（文字サイズに連動） */
	height: 0.6em;
	border-radius: 50%;
	background: #ec6771;
	border: 1px solid rgba(0, 0, 0, 0.08);
	/* 見えづらい場合の薄い枠線 */
}
/* 見出しの装飾6 */
.page-title-6 {
	position: relative;
	line-height: 1.5;
	margin-top: 1em;
}
/* ---------------------------
  table
--------------------------- */
table {
	background: #fff;
	overflow: hidden;
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
	margin: 1.5em auto;
	border:1px solid #000;
}
table {
	width: 100%;
	border-collapse: collapse;
	color:#000;
}
th, td {
	padding: 15px;
	border: 1px solid #000;
}
th {
	background: #ccc;
	font-weight: 600;
	text-align: center;
}
td {}
tr:last-child th,
tr:last-child td {
	border-bottom: none;
}
td a {
	text-decoration: none;
}
td :hover {
	opacity: 0.85;
	text-decoration: underline;
}
/* Responsive Design */
@media screen and (max-width: 768px) {
	table {
		width: 100%;
	}
	th,
	td {
		padding: 15px;
	}
	th {
		width: 35%;
	}
}

.table_wrap {
	overflow: auto;
	margin:5px;
}

.table_wrap table {
	border-collapse: collapse;
	width: 100%;
	min-width: 600px;
	text-align: center;
}

/* ---------------------------
 * CSV Table
 * --------------------------- */
.itiran input[type="text"] {
	margin-bottom: 1rem;
	padding: 0.5rem;
	width: 300px;
}
/*
#csvTable{
	table-layout: fixed;
}
*/

#csvTable table {
	border-collapse: collapse;
	width: 100%;
	margin-top: 1rem;
	color:#000;
}
#csvTable tr{
	border: 1px solid #000;
}
#csvTable th,
#csvTable td {
	border: 1px solid #000;
	padding: 0.5rem;
	text-align: left;
	min-width:50px;
}
#csvTable th {
	background-color: #f2f2f2;
	cursor: pointer;
	position: relative;
	text-align:center;
	white-space: nowrap;
	white-space: nowrap;
}
#csvTable th .sort-ind {
	position: absolute;
	right: 8px;
	font-size: 0.8em;
	color: #555;
}
#csvTable tr:nth-child(even) {
	background-color: #fafafa;
}
/* ページャー
 * --------------------------- */
.pager {
	margin: 10px 0;
	text-align: center;
}
.pager button {
	margin: 0 2px;
	padding: 4px 8px;
	background:#000;
	color:#fff;
	border-radius:5px;
}
.pager button:hover {
	background:#fff;
	color:#333;
}
.pager-current {
	margin: 0 6px;
	font-weight: bold;
	font-size: 1.05em;
}
.pager-dots {
	margin: 0 6px;
}
.result-info {
	margin: 8px 0;
	font-size: 0.9em;
	color: #333;
	text-align:center;
}

/* ---------------------------
  リスト ul li
--------------------------- */
.list-circle {
	margin-top: 0.5em;
	padding-left: 1.6em;
	list-style: disc;
	/* お好みで circle/square に変更可 */
}
.list-circle li {
	line-height: 1.5;
	margin: 0;
}

.list-none {
	padding-left: 0em;
	list-style: none;
}
.list-circle li {
	line-height: 1.5;
	margin: 0;
}
/* ---------------------------
  リスト ol li（<ol class="list-number"> に対応させる） 
--------------------------- */
.list-number {
	margin-top: 0.5em;
	padding-left: 1.8em;
	/* ← 番号ぶんのインデント */
	list-style: decimal;
}
.list-number li {
	line-height: 1.6;
	margin-buttom: 3em;
}
/* ---------------------------
 * dl dd 横並び
 * --------------------------- */
/* dt 250px --- */
.info-list_w250 {
	display: grid;
	grid-template-columns: 120px 1fr;
	/* PC: 左dt・右dd */
	gap: 8px 16px;
	margin-top: 1em;
	padding: 0.5em;
	grid-template-columns: 250px 1fr;
	line-height: 1.8;
}
.info-list_w250 dt {
	font-weight: bold;
	text-align: left;
}
.info-list_w250 dd {
	margin-bottom: 0.5em;
}
/* --- スマホ時（900px以下で上下表示に変更） --- */
@media screen and (max-width: 900px) {
	.info-list_w250 {
		grid-template-columns: 1fr;
		/* 1列だけ */
	}
}
/* dt 100px --- */
.info-list_w100 {
	display: grid;
	grid-template-columns: 120px 1fr;
	/* PC: 左dt・右dd */
	gap: 8px 16px;
	margin-top: 1em;
	padding: 0.5em;
	grid-template-columns: 100px 1fr;
	line-height: 1.6;
}
.info-list_w100 dt {
	font-weight: bold;
	text-align: left;
}
.info-list_w100 dd {
	margin-bottom: 0.5em;
}
/* --- スマホ時（900px以下で上下表示に変更） --- */
@media screen and (max-width: 900px) {
	.info-list_w100 {
		grid-template-columns: 1fr;
		/* 1列だけ */
	}
}
.info-list {
	margin: 0;
	padding: 0;
}
.info-list dt {
	font-weight: bold;
	font-size: 1.1em;
	background: #f0f0f0;
	padding: 0.6em 0.8em;
	border-radius: 6px 6px 0 0;
	margin-top: 1em;
}
.info-list dd {
	margin: 0;
	padding: 0.8em;
	background: #fff;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 6px 6px;
	line-height: 1.6;
}
/* ---------------------------
 * dl dd 申請フォーム
 * --------------------------- */
/* 共通設定 
*, *::before, *::after {
  box-sizing: border-box;
}*/
.form-shinsei {
	margin: 1em auto;
	padding: 0.5em 1.5em 2.0em 1.5em;
	border: 1px solid #ccc;
	text-align: left;
	font-size: 1em;
	line-height: 1.6;
	width: 100%;
	background-color: #fcfcfc;
}
/* dl全体 */
.form-shinsei dl {
	display: flex;
	border-bottom: 1px solid #ccc;
	padding: 0.8em 0;
}
/* 項目名 */
.form-shinsei dt {
	width: 18em;
	/* 固定幅 */
	font-weight: 700;
	color: #333;
	flex-shrink: 0;
	/* 幅が縮まないように */
}
/* 内容ラッパー（複数のddを縦並びにする） */
.form-shinsei .dd-group {
	flex: 1;
	display: flex;
	flex-direction: column;
	/* 縦に積む */
	gap: 0.5em;
	/* dd間の余白 */
}
/* 各dd */
.form-shinsei dd {
	margin: 0.;
	padding: 0;
}
/* リンク 
.form-shinsei a {
	text-decoration: none;
	color: #444;
}
.form-shinsei a:hover {
	text-decoration: underline;
	opacity: 0.85;
}*/
/* スマホ用：縦並び */
@media screen and (max-width: 600px) {
	.form-shinsei dl {
		display: block;
		/* 横並びを解除 */
	}
	.form-shinsei dt {
		width: 100%;
		/* 全幅 */
		margin-bottom: 0.4em;
	}
	.form-shinsei dd {
		padding-left: 0;
		/* 左余白をリセット */
	}
}
/* ---------------------------
 * dl dd 閲覧等のご案内
 * --------------------------- */
/* dt 狭く */
.annai {
	margin: 1em auto;
	padding: 0.5em 1.5em 2.0em 1.5em;
	border: 1px solid #ccc;
	text-align: left;
	font-size: 1em;
	line-height: 1.6;
	width: 100%;
	background-color: #fcfcfc;
}
/* dl全体 */
.annai dl {
	display: flex;
	border-bottom: 1px solid #ccc;
	padding: 0.8em 0;
}
/* 項目名 */
.annai dt {
	width: 12em;
	/* 固定幅 */
	font-weight: 700;
	color: #333;
	flex-shrink: 0;
	/* 幅が縮まないように */
}
/* 内容ラッパー（複数のddを縦並びにする） */
.annai .dd-group {
	flex: 1;
	display: flex;
	flex-direction: column;
	/* 縦に積む */
	gap: 0.5em;
	/* dd間の余白 */
}
/* 各dd */
.annai dd {
	margin: 0.;
	padding: 0;
}
/* リンク 
.annai a {
	text-decoration: none;
	color: #444;
}
.annai a:hover {
	text-decoration: underline;
	opacity: 0.85;
}*/
/* スマホ用：縦並び */
@media screen and (max-width: 600px) {
	.annai dl {
		display: block;
		/* 横並びを解除 */
	}
	.annai dt {
		width: 100%;
		/* 全幅 */
		margin-bottom: 0.4em;
	}
	.annai dd {
		padding-left: 0;
		/* 左余白をリセット */
	}
}
/* ---------------------------
article メインエリア
--------------------------- */
article {
	max-width: 1200px;
	margin: 2rem auto;
	padding: 0 1rem;
}
article h1 {
	font-size: 2rem;
	text-align: center;
	color: #332525;
}
/* ---------------------------
カラム
--------------------------- */
/* 2カラム構造（ラッパー方式）左広い、右狭い */
.columns-two {
	display: grid;
	grid-template-columns: 2fr 1fr;
	/* 左広い、右狭い */
	gap: 2rem;
}
/* 左右カラムラッパー */
.left-column,
.right-column {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}
/* レスポンシブ：画面幅が768px以下のとき1カラムに変更 */
@media screen and (max-width: 768px) {
	.columns-two {
		grid-template-columns: 1fr;
		/* 1カラムに変更 */
		gap: 1.5rem;
		/* 上下の間隔調整 */
	}
	/* 画像の最大幅を少し大きくして見やすくする */
	.left-column img,
	.right-column img {
		max-width: 100%;
	}
}
/* 2カラム構造（ラッパー方式）左狭い、右広い */
.columns-two2 {
	display: grid;
	grid-template-columns: 1fr 2fr;
	/* 左狭い、右広い */
	gap: 2rem;
}
/* 左右カラムラッパー */
.left-column,
.right-column {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}
/* レスポンシブ：画面幅が768px以下のとき1カラムに変更 */
@media screen and (max-width: 768px) {
	.columns-two2 {
		grid-template-columns: 1fr;
		/* 1カラムに変更 */
		gap: 1.5rem;
		/* 上下の間隔調整 */
	}
	/* 画像の最大幅を少し大きくして見やすくする */
	.left-column img,
	.right-column img {
		max-width: 100%;
	}
}
/* 2カラム50:50構造（ラッパー方式） */
.columns-half {
	display: grid;
	grid-template-columns: 1fr 1fr;	/* 左50%、右50% */
	gap: 2rem;			/* カラム間の間隔 */
}
/* 左右カラムラッパー */
.left-column,
.right-column {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}
/* 画像のレスポンシブ対応 */
.left-column img,
.right-column img {
	width: auto;	/* 元の幅を維持 */
	max-width: 80%;	/* カラム幅の80%まで拡大 */
	height: auto;	/* アスペクト比維持 */
	display: block;	/* 下の余白が不自然にならないように */
	margin: 0 auto;	/* 中央寄せ */
}
/* レスポンシブ：画面幅が768px以下のとき1カラムに変更 */
@media screen and (max-width: 768px) {
	.columns-half {
		grid-template-columns: 1fr;	/* 1カラムに変更 */
		gap: 1.5rem;			/* 上下の間隔調整 */
	}
	/* 画像の最大幅を少し大きくして見やすくする */
	.left-column img,
	.right-column img {
		max-width: 100%;
	}
}
/* 3カラム構造 */
.columns-three {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr; 	/* 左中右を均等に3分割 */
	gap: 2rem;				/* カラム間の余白 */
}
.column {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	/* text-align: center;*/
}

.column img{
	display: block;
	margin: 0 auto;
	max-width: 100%; /* 元の max-width を残す */
}

/* レスポンシブ：スマホで1カラム */
@media screen and (max-width: 768px) {
	.columns-three {
		grid-template-columns: 1fr;	/* 1カラム表示 */
		gap: 1.5rem;
	}
}
/* 共通セクションデザイン */
section {
	background: #fff;
	padding: 1.5rem;
	border-radius: 10px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
section h2 {
	font-size: 1.3rem;
	margin-bottom: 10px;
	border-left: 5px solid #ec6771;
	padding-left: 0.5rem;
}
.jps-curation-list-title,
.jps-curation-section-title {
	border-left: none;
}

section h3 {
	font-size: 1.2rem;
	margin-top: 1em;
	margin-bottom: 5px;
}
section p {
	margin-top: 0.5rem;	/* 上を少しだけ空ける */
}
.curation-body section{
	background: none;
	padding: 1.5rem;
	border-radius: 0;
	box-shadow: none;
}

.bordered {
	border: 1px solid #ccc;
	padding: 4px;/* 枠線を見やすくする */
}

/* バナーは横幅いっぱい */
.banners {
	max-width: 1200px;
	margin: 2rem auto 0;
	background: #fff;
	padding: 1.5rem;
	border-radius: 10px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.archive img {
	max-width: 100%;
}
/* ---------------------------
 * 1カラム
 * --------------------------- */
.col_1 {
	max-width: 1200px;
	margin: 2rem auto 0;
	background: #fff;
	padding: 1.5rem;
	border-radius: 10px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.col_1 .left-column h2+p {
	margin-top: 0.0rem;
}

.col_1 ul{
	margin-left:2em;
}

/* ---------------------------
 * 2カラム
 * --------------------------- */
.col_2 {
	max-width: 1200px;
	display: flex;
	gap: 2rem; /* カラム間の余白 */
}
/* 左カラム（メイン） */
.col_2 .left-column {
	flex: 2;
}
/* 右カラム（サイド） */
.col_2 .right-column {
	flex: 1;
}
/* h2の直後のp調整（1カラム版の引き継ぎ） */
.col_2 .left-column h2 + p {
	margin-top: 0.0rem;
}

/* ---------------------------
 * レスポンシブ（スマホ時）
 * --------------------------- */
@media screen and (max-width: 767px) {
	.col_1 {
		padding:1rem 0.5rem;
	}
	.col_2 {
		flex-direction: column; /* 縦並び */
	}
	.col_2 .left-column,
	.col_2 .right-column {
		flex: 1;
	}
}

/* ---------------------------
 * フッター
 * --------------------------- */
footer {
	background: #332525;
	color: #fff;
	text-align: center;
	padding: 2rem 1rem;
	margin-top: 2rem;
}
footer h2 {
	font-size: 1.2rem;
}
/* ページトップに戻るボタン */
#backToTop {
	position: fixed;
	bottom: 5px;
	right: 20px;
	z-index: 999;
	background-color: #666;
	/* ボタン色 */
	color: white;
	border: none;
	padding: 10px 16px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 16px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	transition: opacity 0.3s ease, background-color 0.3s ease;
	text-decoration: none;
}
#backToTop:hover {
	background-color: #8e8b2b;
}
/* ---------------------------
 * レスポンシブ対応
 * --------------------------- */
@media (max-width: 768px) {
	.columns {
		grid-template-columns: 1fr;
		/* 1カラム化 */
	}
	/* 左右カラムも縦に並ぶ */
	.left-column,
	.right-column {
		gap: 1rem;
	}
	/* アーカイブは非表示 */
	/*	.archive { display: none; }*/
}
/* ---------------------------
 * 新着情報
 * --------------------------- */
.news-list {
	list-style: none outside;
	margin: 0;
	padding: 0;
}
.news-list .item a {
	display: flex;
	flex-wrap: wrap;
	flex-wrap: nowrap;
	text-decoration: none;
	color: #333;
	border-bottom: 1px solid #CCC;
	padding: 20px 20px;
	width:100%;
}
.news-list .item:first-child a {
	border-top: 1px solid #CCC;
}
.news-list .item .date {
	margin: 0;
	min-width: 120px;
	font-size: 16px;
	color: #999;
	padding: 0 20px 0 0;
}
.news-list .item .title {
	margin: 0;
	width: 100%;
	font-weight:bold;
}
.news-list .item a:hover .title {
	color: #00f;
}
@media screen and (max-width: 767px) {
	.news-list .item a {
		flex-wrap: wrap;
	}
	.news-list .item .date {
		min-width: 100px;
	}
	.news-list .item .title {
		margin-top: 10px;
	}
}
/* ---------------------------
 * バナー
 * --------------------------- */
.topbn {
	text-align: center;
}
@media screen and (max-width:767px) {
	.topbn {
		margin-top: 5px !important;
	}
}
.topbn li {
	display: inline-block;
	margin: 5px 2px;
	max-width: 100%;
	width: auto;
	width: 20%;
}
.topbn li img {
	background: #333;
}
.topbn li img:hover {
	opacity: 0.5;
	transition: 0.3s;
}
@media screen and (max-width:767px) {
	.topbn li {
		margin: 5px 2px;
		max-width: 200px;
		width: calc(50% - 10px);
	}
}
.topbn li img {
	border: solid 1px #ccc;
	width: 100%;
}
@media screen and (max-width:767px) {
	.topbn li img {
		width: 100%;
	}
}
.btn {
	display: inline-block;
	margin: 10px 0;
	padding: 5px 15px;
	border: 1px solid #000;
	border-radius: 10px;
	background: #000;
	color: #fff;
	text-decoration: none;
}
.btn:hover {
	background: #fff;
	color: #000;
}
@media screen and (max-width:767px) {
	.btn_wrap{}
	.btn_wrap .btn{
		display: block;
		margin-bottom: -2em;
	}
	.btn_wrap .btn:last-child{
		margin-bottom: 0;
	}
}
.btn_bak {
	margin-left: 0.5em;
	padding: 5px 10px;
	border: 1px solid #000;
	border-radius: 10px;
	background: #000;
	color: #fff;
	text-decoration: none;
}
@media (max-width: 768px) {
	.btn_bak {
		position: absolute;
		top: 20px;
		/* ヘッダー内での上下位置調整 */
		left: 0;
		/* ヘッダー左端からの距離 */
	}
}
.btn_bak:hover {
	background: #fff;
	color: #000;
}
.btn_pdf {
	display: inline-block;
	margin: 5px 0;
	padding: 1px 15px;
	border: 1px solid #c7525b;
	border-radius: 10px;
	background: #c7525b;
	color: #fff;
	font-size:0.8em;
	text-decoration: none;
}
.btn_pdf:hover {
	background: #fff;
	color: #c7525b;
}
.hours {
	width: min(640px, 100%);
	border-collapse: collapse;
	margin: 1rem 0;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
	font-size: 16px;
	line-height: 1.6;
}
.hours caption {
	text-align: left;
	font-weight: 700;
	font-size: 1.1rem;
	margin-bottom: .5rem;
}
.hours th,
.hours td {
	border: 1px solid #000;
	padding: .6rem .8rem;
	vertical-align: middle;
}
.hours thead th {
	background: #f5f5f7;
}
.hours tbody th {
	background: #fafafa;
	text-wrap: balance;
}
/* スマホで2段組み風に */
@media (max-width: 480px) {
	.hours thead {
		display: none;
	}
	.hours tr {
		display: grid;
		grid-template-columns: 1fr;
/		border: 1px solid #000;
		margin-bottom: .5rem;
	}
	.hours tbody th {
		border: none;
		border-bottom: 1px dashed #000;
		background: #fff;
		padding-bottom: .3rem;
	}
	.hours tbody td {
		border: none;
		padding-top: .3rem;
	}
}
/* 沿革 */
.timeline-box {
	width: 100%;
	margin-bottom: 20px;
}
.timeline-box * {
	box-sizing: border-box;
}
.timeline-box .timeline {
	list-style: none;
	padding: 0;
	margin: 0;
}
.timeline-title {
	font-weight: bold;
	font-size: 1.1em;
	text-align: center;
}
.timeline>li {
	margin-bottom: 60px;
	list-style: none;
}
.timeline>li.timeline-item {
	overflow: hidden;
	margin: 0;
	position: relative;
}
.timeline-item-label {
	width: 170px;
	float: left;
	padding-top: 18px;
	text-align: right;
	padding-right: 1em;
	font-size: 14px;
}
.timeline-item-title {
	font-weight: bold;
}
.timeline-item-content {
	width: calc(100% - 170px);
	float: left;
	padding: .8em 1.4em;
	border-left: 3px #e5e5d1 solid;
}
.timeline-item:before {
	content: '';
	width: 12px;
	height: 12px;
	background: #6fc173;
	position: absolute;
	left: 165px;
	top: 24px;
	border-radius: 100%;
}
/* for Smartphone */
@media screen and (max-width: 480px) {
	.timeline-box .timeline {
		padding-left: 10px;
	}
	.timeline>li.timeline-item {
		overflow: visible;
		border-left: 3px #e5e5d1 solid;
	}
	.timeline-item-label {
		width: auto;
		float: none;
		text-align: left;
		padding-left: 16px;
	}
	.timeline-item-content {
		width: auto;
		padding: 8px;
		float: none;
		border: none;
	}
	.timeline-item::before {
		left: -12px;
		top: 19px;
		width: 21px;
		height: 21px;
	}
}

/* ---------------------------
 * 囲み枠
 * --------------------------- */
.box-020 {
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    padding: 1em 1.5em;
    background-color: #faf9e4;
    color: #333;
}

.box-020::after {
    position: absolute;
    top: 0;
    right: 0;
    border-width: 0 20px 20px 0;
    border-style: solid;
    border-color: #faf9e4 #fff;
    box-shadow: -1px 1px 1px rgb(0 0 0 / 5%);
    content: '';
}

/* ---------------------------
 * バックナンバー：文書館だより
 * --------------------------- */
/* カード */
#list .item {
	display: flex;
	align-items: flex-start;
	border: 1px solid #ccc;
	padding: 12px;
	margin-bottom: 16px;
	border-radius: 6px;
	background: #fafafa;
	gap: 16px;
}

/* 画像 */
#list .item img {
	width: 137px;
	height: auto;
	cursor: pointer;
	flex-shrink: 0;
}

/* テキスト部分 */
.text-container {
	flex: 1;
}
.text-container h2 {
	margin: 0 0 6px 0;
}
.text-container .content {
	line-height: 1.5;
	white-space: normal;
}

/* スマホ対応 */
@media screen and (max-width: 600px) {
	.text-container h2 {
		font-size: 16px;
	}
	#list .item {
		flex-direction: column;
		align-items: flex-start;
	}
	#list .item img {
		max-width:138px;
		width: 100%;
		height: auto;
	}
}

/* 検索ボックス */
#searchBox {
	margin-bottom: 10px;
	width: 100%;
	padding: 6px;
	font-size: 14px;
}

/* ---------------------------
 * セクションアンカーの位置調整
 * --------------------------- */
[id] {
	scroll-margin-top: 100px;
}



ul.btn_look {
	list-style: none;  /* 点を消す */
	padding-left: 0;  /* 左の余白を消す（任意） */
	margin: 0;        /* 不要ならマージンもリセット */
}
ul.btn_look li a{
	display:block;
	margin: 10px 0;
	padding: 5px 15px;
	border: 1px solid #000;
	border-radius: 10px;
	background: #000;
	color: #fff;
	text-decoration: none;
}
ul.btn_look li a:hover {
	background: #fff;
	color: #000;
}

.w100{
	max-width:100%;
}

.footer_sub{
	display:block;
	max-width:1200px;
	margin:4em auto 0 auto;
	line-height:1.5;
	font-size:15px;
	padding:1em;
}
@media (max-width: 768px) {
.footer_sub{}
}

/* ---------------------------
 * 左 */
.footer_info-logo img{
	max-width:200px;
	margin:0 auto 0 0;
}
@media (max-width: 768px) {
	.footer_info-logo img{
		margin:0 auto;
	}
}

/* ---------------------------
 * 右 */
.footer_nav-body{
	display: grid; /* グリッドレイアウトを有効にする */
	grid-template-columns: 1fr 1fr 1fr; /* カラムの比率を設定 */
	gap: 20px; /* カラム間のスペースを設定 */
	width: 100%;
}

@media (max-width: 768px) {
	.footer_nav-body{
		/*grid-template-columns: 1fr; /* カラムの比率を設定 */
		display:none; /* カラムの比率を設定 */
	}
}

ul .footer_nav-list,
.footer_nav-list li{
	list-style: none;
	margin-top:10px;
	margin-bottom:10px;
} 
.footer_nav-list{
	 box-sizing: border-box; /* パディングとボーダーを含めてサイズを計算 */
}
.footer_nav-list li a{
	text-decoration: none;
	color:#000;
}

.footer_sub .columns-two{
	grid-template-columns:1fr 1fr;
	width:100%;
}
@media (max-width: 768px) {
	.footer_sub .columns-two{
		grid-template-columns:1fr;
	}
}
.underline {
	display: inline-block;
	padding-bottom: 4px;
	position: relative;
}

.underline::after {
	background-color: #333;
	bottom: 0;
	content: '';
	display: block;
	height: 1px;
	left: 0;
	position: absolute;
	transition: .5s all;
	width: 0;
}
.underline:hover::after {
	width: 100%;
}
/* GoogleMap の配置調整（コンテナ化） */
.footer_info-access {
	display: flex;
}
@media print {
	*{
		-webkit-print-color-adjust: exact;
	}
	body{
		margin-top:0;
	}
	.header{
		position: static;
	}
}
