/* ハンバーガーメニューのCSS */
/* デスクトップとタブレットではハンバーガーメニューを非表示 */
@media screen and (min-width: 769px) {
	.mobile-menu {
		display: none;
	}
}

/* スマートフォン表示 */
@media screen and (max-width: 768px) {
	/* スマホ専用ハンバーガーメニュー */
	.mobile-menu {
		position: fixed;
		top: 10px;
		right: 10px;
		z-index: 1001;
		display: block !important; /* 強制的に表示 */
	}
	
	.mobile-menu-toggle {
		background: #18385F;
		border: none;
		padding: 8px;
		cursor: pointer;
		border-radius: 4px;
		display: flex;
		flex-direction: column;
		justify-content: space-around;
		width: 40px;
		height: 40px;
		transition: background-color 0.3s ease;
	}
	
	.mobile-menu-toggle:hover {
		background: #142B4A;
	}
	
	.mobile-menu-toggle.active {
		background: #dc3545;
	}
	
	.hamburger-line {
		width: 25px;
		height: 3px;
		background-color: white;
		transition: all 0.3s ease;
		border-radius: 2px;
	}
	
	.mobile-menu-toggle.active .hamburger-line:nth-child(1) {
		transform: rotate(45deg) translate(6px, 6px);
	}
	
	.mobile-menu-toggle.active .hamburger-line:nth-child(2) {
		opacity: 0;
	}
	
	.mobile-menu-toggle.active .hamburger-line:nth-child(3) {
		transform: rotate(-45deg) translate(6px, -6px);
	}
	
	.mobile-menu-content {
		position: fixed;
		top: 0;
		right: -100%;
		width: min(160px, 50vw);
		height: calc(100vh - 20px);
		max-height: calc(100vh - 20px);
		background: linear-gradient(135deg, #18385F, #4a90e2);
		box-shadow: -5px 0 15px rgba(0,0,0,0.3);
		transition: right 0.3s ease;
		overflow-y: auto;
		z-index: 1000;
	}
	
	.mobile-menu-content.active {
		right: 0;
	}
	
	.mobile-menu-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20px;
		border-bottom: 2px solid rgba(255,255,255,0.2);
		background: rgba(0,0,0,0.1);
	}
	
	.mobile-menu-header h3 {
		color: white;
		font-size: 18px;
		margin: 0;
		font-weight: bold;
	}
	
	.mobile-menu-close {
		background: none;
		border: none;
		color: white;
		font-size: 24px;
		cursor: pointer;
		padding: 0;
		width: 30px;
		height: 30px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		transition: background-color 0.3s ease;
	}
	
	.mobile-menu-close:hover {
		background: rgba(255,255,255,0.2);
	}
	
	.mobile-menu-items {
		padding: 5px 0;
		max-height: calc(100vh - 60px);
		overflow-y: auto;
	}
	
	.mobile-menu-item {
		display: block;
		padding: 2px 2px;
		color: white;
		text-decoration: none;
		font-size: 12px;
		font-weight: 500;
		border-bottom: 1px solid rgba(255,255,255,0.1);
		transition: all 0.3s ease;
		position: relative;
		min-height: 32px;
		line-height: 1.1;
		text-align: center;
	}
	
	.mobile-menu-item:hover {
		background: rgba(255,255,255,0.1);
		padding-left: 15px;
		color: #feca57;
	}
	
	.mobile-menu-item.current {
		background: rgba(255,255,255,0.2);
		color: #feca57;
		font-weight: bold;
	}
	
	.mobile-menu-item.current::before {
		content: "▶";
		position: absolute;
		left: 10px;
		color: #feca57;
	}
	
	/* メニューオーバーレイ */
	.mobile-menu-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.5);
		z-index: 999;
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s ease;
	}
	
	.mobile-menu-overlay.active {
		opacity: 1;
		visibility: visible;
	}
}
