@charset "UTF-8";

/* CSS Document */
body {
	font-family: sans-serif;
	margin: 0;
	padding: 0;
	background: #f9f9f9;
	color: #333;
	overflow-x: hidden;
	/* 横スクロール防止 */
}

header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px;
	background: #fff;
	border-bottom: 1px solid #ddd;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	box-sizing: border-box;
	z-index: 999;
}

.blink {
	display: inline-block;
	animation: blink 4s infinite;
	transform-origin: center;
}

@keyframes blink {

	0%,
	90%,
	100% {
		transform: scaleY(1);
		/* 開いた状態 */
	}

	92%,
	96% {
		transform: scaleY(0.1);
		/* 閉じた状態（まばたき） */
	}
}

nav {
	display: flex;
	gap: 20px;
}

nav a {
	color: #333;
	text-decoration: none;
	padding: 8px 12px;
	transition: color 0.3s ease, transform 0.2s ease;
}

nav a:hover {
	color: #43C060;
	transform: translateY(-3px);
	/* ほんの少し上に移動 */
}

/* ハンバーガーボタン */
.menu-toggle {
	display: none;
	font-size: 1.8rem;
	background: none;
	border: none;
	cursor: pointer;
	z-index: 1001;
}

.container {
	max-width: 960px;
	margin: 0 auto;
	padding: 40px 20px;
}

h1,
h2 {
	text-align: center;
}

img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
}

table {
	width: 100%;
	border-collapse: collapse;
	margin: 30px 0;
	background-color: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

th,
td {
	border: 1px solid #ddd;
	padding: 13px;
	font-size: 10px;
	text-align: left;
	vertical-align: top;
}

th {
	background-color: #f8f8f8;
	font-weight: bold;
	color: #333;
	width: 25%;
}

td {
	color: #555;
}

@media (max-width: 600px) {

	table,
	thead,
	tbody,
	th,
	td,
	tr {
		display: block;
		width: 100%;
	}

	th {
		background-color: transparent;
		color: #111;
		padding-top: 10px;
	}

	td {
		border-top: none;
		padding-bottom: 20px;
	}
}

.contact {
	text-align: center;
	margin-top: 60px;
}

footer {
	text-align: center;
	padding: 20px;
	background: #f0f0f0;
	margin-top: 40px;
}

#toTop {
	position: fixed;
	bottom: 30px;
	right: 30px;
	z-index: 100;

	width: 60px;
	height: 60px;
	/* 完全な正円 */
	border-radius: 50%;
	background-color: #43C060;
	color: #fff;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);

	display: flex;
	flex-direction: column;
	/* 縦2列 */
	align-items: center;
	/* 横中央 */
	justify-content: center;
	/* 縦中央 */
	gap: 0;
	/* 文字間の隙間は個別で調整 */
	padding: 0;
}

.k-rotated {
	transform: rotate(90deg);
	font-size: 22px;
	line-height: 1;
	/* 高さを詰める */
	margin: 0;
}

.top-text {
	font-size: 12px;
	line-height: 1;
	/* 高さを詰める */
	margin: 0;
}

section[id] {
	scroll-margin-top: 80px;
	/* ヘッダーの高さに合わせて調整 */
}

/* レスポンシブ対応：画面が狭いときは1列に */
@media (max-width: 600px) {
	.menu-toggle {
		display: block;
		position: absolute;
		/* ヘッダー内で絶対位置 */
		top: 40px;
		/* 上からの距離 */
		transform: translateY(-50%);
		/* 中央揃え */
		right: 20px;
		/* 右からの距離 */
		font-size: 1.8rem;
		background: none;
		border: none;
		cursor: pointer;
		z-index: 1002;
		/* ナビより前面 */
	}

	/* ナビを右から隠しておく */
	.nav {
		position: fixed;
		top: 0;
		right: 0;
		width: 150px;
		height: 100%;
		background-color: rgba(255, 255, 255, 0.8);
		/*半透明*/
		border-left: 1px solid #ddd;
		padding-top: 80px;
		/* ヘッダー分のスペース */
		padding-left: 20px;
		gap: 20px;
		box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		/* ← 上から順に並べる */
		align-items: flex-start;
		/* ← 左寄せに */
		transform: translateX(100%);
		/* 初期状態 → 完全に右に隠れる */
		transition: transform 0.3s ease-in-out;
		z-index: 1001;
	}

	header nav a {
		display: block;
		color: #333;
		text-decoration: none;
		font-size: 1rem;
		line-height: 1.8;
	}

	.nav.active {
		transform: translateX(0);
		/* アクティブで表示 */
	}
}