#nav-main--drawer {
	background: var(--bg-menu-gradient);
	box-shadow: 0 0 0 rgba(0, 0, 0, 0);
	position: fixed;
	top: 0;
	left: 100%;
	right: auto;
	bottom: 0;
	height: 100vh;
	width: 380px;
	overflow: hidden;
	z-index: 10000;
	transition: transform 0.3s cubic-bezier(.25, -0.5, 0, 1.45), box-shadow 0.3s;
}

#nav-main--drawer .content-area {
	position: absolute;
	display: flex;
	flex-flow: column nowrap;
	align-items: stretch;
	top: 1rem;
	right: calc(40px + 1rem);
	bottom: 1rem;
	left: 0;
	overflow: hidden;
}

.nav-active #nav-main--drawer {
	transform: translateX(-340px);
	box-shadow: 0 0 var(--bg-shadow-blur-active), rgba(0, 0, 0, var(--bg-shadow-color-alpha-active));
}

.toggle-tree-open-all,
.toggle-tree-close-all {
	display: inline-block;
	position: relative;
}

.toggle-tree-open-all.hidden,
.toggle-tree-close-all.hidden {
	display: none;
}

/* Set margin-top to auto to make it stay at the bottom all the time */
/* due to flex... */
#nav-main--drawer .footer {
	margin-top: auto;
}

.nav-link {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: 0;
}

.nav-icon {
	width: 1.8rem;
	height: 1.8rem;
	cursor: pointer;
	color: var(--grey-light);
	transition: color .2s ease-in-out;
}

.nav-icon:hover {
	color: var(--primary);
}

@media (min-width: 992px) {
	.nav-icon {
		width: 2rem;
		height: 2rem;
	}
}

.nav-divider {
	width: 1px;
	height: 2rem;
	position: relative;
	top: 0;
	bottom: 0;
	background-color: var(--tertiary)
}

/** ----------------------- TREE ----------------------------- */

.tree-menu-item {}

.tree-menu-icon {
	width: 1.5rem;
	height: 1.5rem;
	margin-right: 0.75rem;
	cursor: pointer;
	transition: transform .2s;
}

.primary .tree-menu-icon {
	width: 1.125rem;
	height: 1.125rem;
	color: var(--primary);
	margin: 0 .25rem;
}

.tree-menu-item--anchor {
	color: var(--text-color-light);
	transition: color .2s;
}

.tree-menu-item--anchor:hover {
	color: var(--department);
	text-decoration: none;
}

.tree-menu-item--anchor p {
	margin-bottom: 0;
}

.tree-menu-item--anchor svg {
	vertical-align: middle;
}

.tree-menu-item--level-2--indent {
	margin-left: 2.5rem;
}

.active-tree-section {
	color: var(--department) !important;
}

#nav-main--drawer .active-tree-section {
	color: white !important;
}

#nav-main--drawer .tree-menu-item--anchor:hover {
	color: var(--txt-lighter) !important;
}

.level-2 {
	transition: height .5s;
	will-change: height, opacity;
}

.closed .level-2 {
	height: 0;
}

@media (min-width: 768px) {

	/* On course pages, do not show hamburger */
	.is-subpage .d-md-none--subpage {
		display: none;
	}

	/* On basket-related pages, do */
	.is-subpage.show-navigation-toggle .d-md-none--subpage {
		display: inherit;
	}
}

/** ----- Form Elements ----- */

.form-control:focus {
	color: #495057;
	background-color: #fff;
	border-color: var(--primary);
	outline: 0;
	box-shadow: 0 0 0 0.1rem rgba(var(--primary-rgb, .35));
}
