/**
 * Hidden Navigation Menu Styles
 * Hamburger menu system with slide-in animation
 *
 * @package Nullbound
 * @since 1.0.0
 */

/* Hover Trigger Zone (top-right corner, 100px x 100px) */
.nav-trigger-zone {
	position: fixed;
	top: 0;
	right: 0;
	width: 100px;
	height: 100px;
	z-index: 1000;
	pointer-events: auto;
	cursor: pointer;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: transparent !important;
}

/* Remove old hamburger icon pseudo-elements - using SVG instead */
.nav-trigger-zone::before,
.nav-trigger-zone::after {
	display: none !important;
	content: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
}

/* Hamburger Menu Icon - Override any legacy hidden styles */
.nav-trigger-zone .hamburger-menu,
#nav-trigger-zone .hamburger-menu,
.nav-trigger-zone #hamburger-menu {
	position: relative !important;
	width: 40px !important;
	height: 40px !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out !important;
	z-index: 1001 !important;
	top: auto !important;
	right: auto !important;
}

/* Hide icon in trigger zone when menu is open - higher specificity to override base styles */
body.nav-open .nav-trigger-zone .hamburger-menu,
body.nav-open #nav-trigger-zone .hamburger-menu,
body.nav-open .nav-trigger-zone #hamburger-menu,
body.nav-open #nav-trigger-zone #hamburger-menu,
.hidden-navigation.active ~ .nav-trigger-zone .hamburger-menu,
.hidden-navigation.active ~ #nav-trigger-zone .hamburger-menu {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	display: none !important;
}

.nav-trigger-zone .hamburger-menu svg {
	width: 100%;
	height: 100%;
	color: #00FFFF;
	fill: #00FFFF;
	stroke: #00FFFF;
	filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.5));
	animation: pulse-glow 4s ease-in-out infinite;
	transition: all 0.3s ease;
}

.nav-trigger-zone .hamburger-menu svg * {
	fill: #00FFFF !important;
	stroke: #00FFFF !important;
}

.nav-trigger-zone .hamburger-menu svg circle {
	fill: transparent !important;
	stroke: #00FFFF !important;
}

.nav-trigger-zone:hover .hamburger-menu svg,
.nav-trigger-zone .hamburger-menu:hover svg {
	filter: drop-shadow(0 0 15px rgba(0, 255, 255, 0.8));
	animation-duration: 2s;
}

@keyframes pulse-glow {
	0%, 100% {
		opacity: 0.7;
		filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.4));
		transform: scale(1);
	}
	50% {
		opacity: 1;
		filter: drop-shadow(0 0 12px rgba(0, 255, 255, 0.7));
		transform: scale(1.02);
	}
}

/* Navigation Overlay - semi-transparent to darken background */
.nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 9998;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
	pointer-events: none;
}

.nav-overlay.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Hidden Navigation Menu */
.hidden-navigation {
	position: fixed;
	top: 0;
	right: -400px;
	width: 400px;
	max-width: 90vw;
	height: 100vh;
	background-color: #000000 !important;
	background: #000000 !important;
	border-left: 2px solid #00FFFF;
	z-index: 9999;
	transition: right 0.3s ease-in-out;
	overflow-y: auto;
	overflow-x: hidden;
	box-shadow: -5px 0 20px rgba(0, 0, 0, 0.5);
}

.hidden-navigation.active {
	right: 0;
	background-color: #000000 !important;
	background: #000000 !important;
}

/* Navigation Header */
.nav-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.5rem 2rem;
	border-bottom: 1px solid rgba(0, 255, 255, 0.2);
	position: relative;
}

/* Icon in navigation header - appears when menu opens */
.nav-header-icon {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transform: translateX(-20px);
	transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Show icon in menu header when menu is active */
.hidden-navigation.active .nav-header-icon,
body.nav-open .nav-header-icon {
	opacity: 1;
	transform: translateX(0);
	pointer-events: auto;
}

.nav-header-icon {
	background: transparent !important;
}

.nav-header-icon svg {
	width: 100%;
	height: 100%;
	color: #00FFFF;
	fill: #00FFFF;
	stroke: #00FFFF;
	filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.5));
	background: transparent !important;
}

.nav-header-icon svg * {
	fill: #00FFFF !important;
	stroke: #00FFFF !important;
	background: transparent !important;
}

.nav-header-icon svg circle {
	fill: none !important;
	stroke: #00FFFF !important;
}

.nav-header-icon svg path {
	fill: #00FFFF !important;
	stroke: #00FFFF !important;
}

/* This rule is now handled above - removed duplicate */

/* Removed conflicting rule - base styles handle visibility when menu is closed */

/* Close Button */
.nav-close {
	background: transparent;
	border: none;
	color: #00FFFF;
	cursor: pointer;
	padding: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	line-height: 1;
}

.nav-close:hover {
	color: #00FFFF;
	transform: rotate(90deg);
	opacity: 0.8;
}

.nav-close:focus {
	outline: 2px solid #00FFFF;
	outline-offset: 2px;
}

.nav-close svg {
	width: 24px;
	height: 24px;
	filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.5));
}

.nav-close:hover svg {
	filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.8));
}

/* Navigation Content */
.nav-content {
	padding: 2rem;
}

/* Navigation Menu List */
.nav-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-menu-list .menu-item {
	margin-bottom: 0.5rem;
}

.nav-menu-list .menu-item:last-child {
	margin-bottom: 0;
}

/* Navigation Links */
.nav-link {
	display: block;
	padding: 1rem 1.5rem;
	color: #00FFFF;
	text-decoration: none;
	font-family: 'JetBrains Mono', monospace;
	font-size: 1.125rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: all 0.3s ease;
	border-left: 3px solid transparent;
	position: relative;
	overflow: hidden;
}

.nav-link::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.1), transparent);
	transition: left 0.5s ease;
}

.nav-link:hover::before {
	left: 100%;
}

.nav-link:hover,
.nav-link:focus {
	color: #00FFFF;
	border-left-color: #00FFFF;
	background-color: rgba(0, 255, 255, 0.05);
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
	padding-left: 2rem;
}

.nav-link:focus {
	outline: 2px solid #00FFFF;
	outline-offset: -2px;
}

/* Active/Current Menu Item */
.nav-menu-list .menu-item.current-menu-item > .nav-link,
.nav-menu-list .menu-item.current-page-ancestor > .nav-link {
	border-left-color: #00FFFF;
	background-color: rgba(0, 255, 255, 0.1);
	color: #00FFFF;
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
}

/* Mobile Styles */
@media screen and (max-width: 768px) {
	/* Always show hamburger icon on mobile, no hover required */
	.nav-trigger-zone {
		width: 60px;
		height: 60px;
		background-color: rgba(0, 255, 255, 0.1);
		border-bottom-left-radius: 8px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* Remove old hamburger icon pseudo-elements - using SVG instead */
	.nav-trigger-zone::before,
	.nav-trigger-zone::after {
		display: none !important;
		content: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		width: 0 !important;
		height: 0 !important;
	}
	
	.nav-trigger-zone .hamburger-menu {
		width: 35px;
		height: 35px;
	}

	.hidden-navigation {
		width: 100%;
		max-width: 100vw;
		right: -100%;
		border-left: none;
		border-right: 2px solid #00FFFF;
		background-color: #000000 !important;
		background: #000000 !important;
	}

	.nav-content {
		padding: 1.5rem 1rem;
	}

	.nav-link {
		font-size: 1rem;
		padding: 0.875rem 1.25rem;
	}

	.nav-header {
		padding: 1rem 1.5rem;
	}
}

@media screen and (max-width: 480px) {
	.nav-trigger-zone {
		width: 50px;
		height: 50px;
	}

	/* SVG icon handles sizing on mobile */
	.nav-trigger-zone .hamburger-menu {
		width: 30px;
		height: 30px;
	}

	.hidden-navigation {
		background-color: #000000 !important;
		background: #000000 !important;
	}

	.nav-link {
		font-size: 0.875rem;
		padding: 0.75rem 1rem;
	}
}

/* Prevent body scroll when menu is open */
body.nav-open {
	overflow: hidden;
}

/* Smooth scrollbar styling */
.hidden-navigation::-webkit-scrollbar {
	width: 6px;
}

.hidden-navigation::-webkit-scrollbar-track {
	background: rgba(10, 10, 10, 0.5);
}

.hidden-navigation::-webkit-scrollbar-thumb {
	background: rgba(0, 255, 255, 0.3);
	border-radius: 3px;
}

.hidden-navigation::-webkit-scrollbar-thumb:hover {
	background: rgba(0, 255, 255, 0.5);
}

