#site-nav {
    position: sticky;
    top: 0;
    z-index: 900;
}

.navbar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 0.75rem 1.5rem;
	background: var(--background);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid rgba(var(--border), 0.08);
	gap: 0.5rem;
	min-width: 0;
}

.navbar__left {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	margin-right: 1.5rem;
	min-width: 0;
}

.navbar__center {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 1 1 auto;
	min-width: 0;
}

.navbar__right {
	display: flex;
	align-items: center;
	margin-left: 1.5rem;
	min-width: 0;
}

.navbar__right .nav-item--has-menu .nav-mega {
	left: auto;
	right: 0;
	width: auto;
	justify-content: flex-end;
	top: calc(100% + 0.35rem);
}

.navbar__center .nav-item--has-menu .nav-mega {
	left: 0;
	right: 0;
	justify-content: center;
}

.navbar__right .nav-item--has-menu {
	position: relative;
}

.navbar__right .nav-item--has-menu .nav-mega {
	left: auto;
	right: 0;
	width: auto;
	justify-content: flex-end;
	top: calc(100% + 0.75rem);
}

.navbar__right .nav-mega__panel {
	min-width: 280px;
	max-width: min(360px, calc(100vw - 2rem));
	grid-template-columns: 1fr;
	gap: 1rem;
	padding: 1rem 1.1rem;
}

.nav-mega {
	position: absolute;
	top: calc(100% + 0.35rem);
	left: 0;
	right: 0;

	pointer-events: none;
	opacity: 0;
	display: flex;
	justify-content: center;
	z-index: 1000;

	transition: opacity 0.15s ease, transform 0.15s ease;
	transform: translateY(-4px);
}

.nav-item--open .nav-mega {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.navbar__logo {
    font-family: var(--font-logo, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--default, #f5f5f5);
    text-decoration: none;
}

.nav-list {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
	min-width: 0;
}

.nav-link {
    border: 0;
    background: color-mix(in srgb, var(--contents) 85%, transparent);
    color: var(--default, #f5f5f5);
    text-decoration: none;
    font-family: var(--font-base);
    font-size: 0.9rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(var(--default), 0.12);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.navbar__logo:hover, .nav-link:hover, .nav-account:hover {
	color: var(--dark_blue);
	background: color-mix(in srgb, var(--dark_blue) 14%, transparent);
	transform: translateY(-1px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

.nav-link--trigger {
    background: color-mix(in srgb, var(--contents) 70%, transparent);
	border: 1px solid rgba(var(--default), 0.18);
	position: relative;
	padding-right: 1.1rem;
}

.nav-item--open .nav-mega {
	opacity: 1;
	pointer-events: auto;
}

.nav-mega__panel {
	min-width: 640px;
	max-width: min(720px, calc(100vw - 2rem));
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
	padding: 1.5rem 1.75rem;
	border-radius: 1rem;
	background: var(--contents);
	box-shadow: 0 22px 60px var(--background);
}

@media (max-width: 900px) {
	#site-nav {
		overflow-x: clip;
	}

	.nav-item--has-menu {
		position: static;
	}

	.nav-item--has-menu .nav-mega,
	.navbar__right .nav-item--has-menu .nav-mega,
	.navbar__center .nav-item--has-menu .nav-mega {
		left: 0;
		right: 0;
		width: 100%;
		max-width: 100%;
		padding-inline: 0.5rem;
		box-sizing: border-box;
		justify-content: center;
	}

    .nav-mega__panel {
		min-width: 0;
		width: min(100%, calc(100vw - 1rem));
		max-width: calc(100vw - 1rem);
		grid-template-columns: 1fr;
		gap: 1rem;
		padding: 1rem 1.25rem;
		box-sizing: border-box;
		overflow-x: hidden;
	}

	.navbar {
		flex-wrap: wrap;
	}

	.navbar__left {
		order: 1;
		width: auto;
		margin-right: 1rem;
	}

	.navbar__right {
		order: 2;
		margin-left: auto;
	}

	.navbar__center {
		order: 3;
		width: 100%;
		justify-content: flex-start;
		margin-top: 0.5rem;
		overflow: hidden;
	}

	.nav-list {
		flex-wrap: nowrap;
		gap: 1.5rem;
		width: 100%;
		white-space: nowrap;
	}

	.mega-section,
	.mega-section__items,
	.mega-item,
	.mega-item__label,
	.mega-item__desc {
		max-width: 100%;
		min-width: 0;
	}

	.mega-item__label,
	.mega-item__desc {
		white-space: normal;
		overflow-wrap: anywhere;
		word-break: break-word;
	}
}

@media (max-width: 560px) {
	.navbar {
		padding: 0.65rem 0.75rem;
	}

	.navbar__left {
		margin-right: 0.5rem;
	}

	.navbar__right {
		margin-left: auto;
	}

	.navbar__logo {
		font-size: 1.05rem;
	}
}

/* Dynamic compaction for row-2 nav items on mobile only. */
@media (max-width: 900px) {
	.navbar.navbar--mobile-compact-1 .navbar__center .nav-list {
		gap: 0.9rem;
	}

	.navbar.navbar--mobile-compact-1 .navbar__center .nav-link {
		font-size: 0.84rem;
		padding: 0.34rem 0.62rem;
	}

	.navbar.navbar--mobile-compact-2 .navbar__center .nav-list {
		gap: 0.55rem;
	}

	.navbar.navbar--mobile-compact-2 .navbar__center .nav-link {
		font-size: 0.78rem;
		padding: 0.28rem 0.52rem;
	}

	.navbar.navbar--mobile-compact-3 .navbar__center .nav-list {
		gap: 0.35rem;
	}

	.navbar.navbar--mobile-compact-3 .navbar__center .nav-link {
		font-size: 0.72rem;
		padding: 0.22rem 0.4rem;
	}
}

.mega-section__title {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(var(--default), 0.5);
    margin-bottom: 0.6rem;
}

.mega-item {
    display: block;
    padding: 0.5rem 0.75rem;
    border-radius: 0.75rem;
    text-decoration: none;
    color: inherit;
}

.mega-item__label {
    display: block;
    font-size: 0.85rem;
	color: var(--dark_blue)
}

.mega-item__desc {
    display: block;
    font-size: 0.75rem;
    color: rgba(var(--default), 0.6);
}

.nav-account {
    border: 1px solid rgba(var(--default), 0.2);
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    font-size: 0.9rem;
    text-decoration: none;
    color: var(--default, #f5f5f5);
    font-family: var(--font-base);
	background: color-mix(in srgb, var(--contents) 75%, transparent);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
    transition: background 0.2s ease, border-color 0.2s ease;
}
