/* 横スクロールバー防止のグローバルスタイル */
* {
	box-sizing: border-box;
}

html,
body {
	/* グローバルな横スクロール防止は削除（他のUIに影響するため） */
	max-width: 100%;
}

/* 基本のPCレイアウト */
.container {
	display: flex;
	height: 100vh;
	overflow: hidden;
	max-width: 100%;
}

.site-header {
	flex: 1;
	background: #fffaf2;
	height: 100vh;
	overflow-y: auto;
	padding: 70px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.header-content {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.site-main {
	width: 40%;
	flex-shrink: 0;
	background: #fff4e5;
	overflow-y: auto;
	padding-top: 50px;
	padding-left: 25px;
	padding-right: 25px;
}

.site-footer {
	flex: 1;
	background: #fffaf2;
	height: 100vh;
	overflow-y: auto;
	padding: 70px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.site-header .site-title {
	font-size: 24px;
	font-weight: 600;
	margin-bottom: 40px;
}

.site-header .site-title a {
	text-decoration: none;
	text-align: center;
	display: block;
	width: 100%;
}

.site-header .site-title .site-logo {
	width: 74px !important;
	height: 90px !important;
	max-width: 74px !important;
	min-width: 74px !important;
	display: block;
	margin: 0 auto;
	flex-shrink: 0;
}

.site-main h1 {
	text-align: center;
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 20px;
}

.site-main h2 {
	text-align: left;
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 20px;
}

.site-footer p {
	font-size: 10px;
}

/* ===== タブレット ===== */
@media (max-width: 1140px) {
	.site-footer {
		display: none; /* フッター非表示 */
	}
	.site-main {
		width: 60%;
		/* width: 390px; */
		flex-shrink: 0;
		margin-left: 0; /* オフセットをリセット */
	}

	.site-header {
		flex: 1;
		position: static; /* 固定を解除 */
		width: auto;
		left: auto;
		top: auto;
	}

	.site-header .site-title a {
		text-align: left;
	}

	.site-header .site-title .site-logo {
		width: 74px !important;
		height: auto !important;
		max-width: 74px !important;
		min-width: 74px !important;
		flex-shrink: 0;
	}

	#primary-menu.menu {
		margin: 0 auto;
		align-items: flex-start;
	}
}

/* ===== スマホ ===== */
@media (max-width: 540px) {
	.container {
		display: block;
		height: auto;
		overflow: visible;
	}
	.site-header,
	.site-footer {
		display: none; /* 非表示 */
	}
	.site-main {
		width: 100%;
		max-width: none;
		min-height: 100vh;
		padding-top: 80px; /* トグルボタンの下にスペース */
		margin-left: 0; /* オフセットをリセット */
		height: auto; /* 高さを自動に */
	}

	/* ハンバーガーメニューボタン */
	.hamburger-menu {
		display: block;
	}
}
