@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');

/* 全体リセット */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 16px;
}

/* ヘッダー */
.site-header {
	width: 100%;
}

/* サイト名 */
.site-title {
	text-align: center;
	padding: 30px 0;
}

.site-title img {
	width: 300px;
	height: auto;
}

header {
	margin-bottom: 80px;
}


/* =========================
  PC：ナビゲーション
========================= */

.global-nav {
	width: 100%;
	background-color: #28366b;
}

.global-nav ul {
	display: flex;
	justify-content: center;
	list-style: none;
}

.global-nav li {
	flex: 1;
	max-width: 180px;
}

.global-nav a {
	display: flex;
	justify-content: center;
	align-items: center;

	height: 70px;

	color: white;
	text-decoration: none;

	font-size: 20px;
	font-weight: bold;

	transition: 0.3s;
}

/* 日本語は最初は非表示 */
.global-nav .ja {
	display: none;
}

/* マウスを乗せたとき */
.global-nav a:hover,
.warning-button:hover {
	background-color: #6fc7df;
}

/* 英語 → 日本語 */
.global-nav a:hover .en {
	display: none;
}

.global-nav a:hover .ja {
	display: inline;
}

/* =========================
  ハンバーガーボタン
  PCでは表示しない
========================= */

.hamburger {
	display: none;
}

#menu-toggle {
	display: none;
}

/*Link*/
.link-grid {
	width: 900px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	grid-auto-rows: 200px;
	font-size: 14px;
	place-content: center;

}

.link-title {
	display: flex;
	/* imgとspanは横並び */
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-weight: bold;
}

.text {
	font-size: 14px;
	line-height: 1.6;
}

.item {
	display: flex;
	/* 中央寄せ用 */
	align-items: center;
	justify-content: center;
	flex-direction: column;
	text-align: center;
	/* ← 縦に並べる */
	padding: 40px;
	background-image: url(../img/item-bg2.png);
	color: #333;
	text-decoration: none;
	/* 下線を消す */
	border-radius: 8px;
	max-width: 300px;
	transition: background-color 0.3s, transform 0.3s;
}

.item:hover {
	background-image: url(../img/item-bg.png);
	transform: translateY(-4px);
}

.item img {
    width: 30px;
    height: auto;
    margin: 5px 15px 5px 5px;
    vertical-align: middle;
}

/*-----------
上に戻るボタン
------------*/
.back-to-top {
	position: fixed;

	right: 30px;
	bottom: 30px;

	width: 50px;
	height: 50px;

	border: none;
	border-radius: 50%;

	background-color: rgb(46, 51, 107);
	color: white;

	font-size: 24px;

	cursor: pointer;

	/* 最初は見えない */
	opacity: 0;
	transform: translateY(20px);

	/* クリックできないようにする */
	pointer-events: none;

	/* アニメーション */
	transition:
		opacity 0.4s ease,
		transform 0.4s ease;

	z-index: 1000;
}

/* 表示された状態 */
.back-to-top.show {
	opacity: 1;
	transform: translateY(0);

	pointer-events: auto;
}

.back-to-top:hover {
		background-color: rgba(46, 51, 107, 0.5);
}

/*-------------
トップページ
--------------*/
.top-text {
	text-align: center;
	line-height: 2.0;
}

/* 画像 */
.top-text img {
	display: block;
	width: 500px;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

/* 文字部分 */
.top-text .rupisho-text {
	width: 600px;
	max-width: calc(100% - 40px);
	margin-left: auto;
	margin-right: auto;
}

.rupisho-text {
	margin: 50px 0;
}

.last-text {
	margin-bottom: 80px;
}

/*イベントページ*/
.container {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 30px;
}

/* リスト全体 */
.event-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* 1件分 */
.event-item {
	display: flex;
	align-items: center;
	gap: 30px;
	max-width: 700px;
	width: 100%;
	margin: 0 auto 30px;

}

/* 日付の丸 */
.event-date {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: #28366b;

	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;

	flex-shrink: 0;
	color: white;
}

.event-date .year {
	position: relative;
	font-size: 20px;
	font-weight: bold;
	padding-bottom: 8px;
}

.event-date .year::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);

	width: 70px;
	height: 2px;
	background: white;
}

.event-date .day {
	font-size: 24px;
	margin-top: 5px;
}

/* 内容 */
.event-content {
	border-radius: 8px;
	padding: 18px 20px;
	width: 500px;
	background: #d0eefe;
}

.event-content h3 {
	margin: 0 0 10px;
	font-size: 20px;
}

.event-content p {
	margin: 6px 0;
	line-height: 1.3;
}

.event-content .new-book {
	display: inline-block;
	background-color: #f7a7a7;
	/* 淡い赤 */
	color: #fff;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: 0.9em;
	font-weight: bold;
}

/*-------------
コピー禁止
---------------*/
#copy-warning {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);

	padding: 14px 28px;
	background: rgba(255, 255, 255, 0.9);
	color: #333;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 30px;
	box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);

	font-size: 15px;
	letter-spacing: 0.08em;

	opacity: 0;
	visibility: hidden;

	transition:
		opacity 0.4s ease,
		visibility 0.4s ease;

	z-index: 9999;
}

#copy-warning.show {
	opacity: 1;
	visibility: visible;
}


/*タブレット*/
@media screen and (max-width:768px) {
	body {
		font-size: 14px;
	}

	.link-grid {
		width: auto;
		margin: 0 10px;
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
		grid-auto-rows: auto;
	}

	.item {
		width: 100%;
		max-width: none;
		min-width: 0;
		padding: 20px 10px;
	}

	.item .text,
	.link-title {
		font-size: 11px;
	}



	/* サイト名 */
	.site-title {
		padding: 20px 0;
	}

	.site-title img {
		width: 70%;
		max-width: 300px;
	}

	/* ヘッダーを基準にする */
	.site-header {
		position: relative;
	}

	/* ハンバーガーボタン */
	.hamburger {
		display: flex;

		position: relative;

		width: 50px;
		height: 50px;

		margin: 0 20px 20px auto;

		background-color: #28366b;

		flex-direction: column;
		justify-content: center;
		align-items: center;

		gap: 6px;

		cursor: pointer;
	}


	/* 3本の線 */
	.hamburger span {
		display: block;

		width: 28px;
		height: 3px;

		background-color: white;

		transition: 0.3s;
	}


	/* =========================
      メニューを開いたとき
    ========================= */

	/* 真ん中の線を消す */
	#menu-toggle:checked+.hamburger span:nth-child(2) {
		opacity: 0;
	}


	/* 1本目を斜めにする */
	#menu-toggle:checked+.hamburger span:nth-child(1) {
		transform: translateY(9px) rotate(45deg);
	}


	/* 3本目を逆方向に斜めにする */
	#menu-toggle:checked+.hamburger span:nth-child(3) {
		transform: translateY(-9px) rotate(-45deg);
	}


	/* =========================
      ナビゲーション
    ========================= */

	/* 最初は非表示 */
	.global-nav {
		display: none;
	}


	/* ボタンを押したら表示 */
	#menu-toggle:checked~.global-nav {
		display: block;
	}


	/* 縦並び */
	.global-nav ul {
		display: block;
	}

	.global-nav li {
		max-width: none;
	}

	.global-nav a {
		height: 60px;

		border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	}


	/* スマホでは日本語を表示 */
	.global-nav .en {
		display: none;
	}

	.global-nav .ja {
		display: inline;
	}
}