.pathwayslxp-journey-map-wrap {
	margin: 1.5em 0;
}

.pathwayslxp-journey-map-heading {
	margin: 0 0 0.75rem;
	font-size: 1.15rem;
}

.pathwayslxp-journey-map-toggle {
	display: inline-flex;
	gap: 0;
	margin: 0 0 1rem;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.pathwayslxp-journey-map-toggle__btn {
	border: 0;
	background: transparent;
	padding: 0.55rem 1rem;
	min-height: 44px;
	font-weight: 600;
	color: #50575e;
	cursor: pointer;
}

.pathwayslxp-journey-map-toggle__btn.is-active {
	background: #f0f6fc;
	color: #2271b1;
}

.pathwayslxp-journey-map-panel {
	display: none;
}

.pathwayslxp-journey-map-panel.is-active {
	display: block;
}

.pathwayslxp-journey-map-empty {
	color: #646970;
}

.pathwayslxp-journey-map-viewport {
	overflow: auto;
	border: 1px solid #dcdcde;
	border-radius: 10px;
	background: #f6f7f7;
	-webkit-overflow-scrolling: touch;
}

.pathwayslxp-journey-map-canvas {
	position: relative;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.pathwayslxp-journey-map-edges {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.pathwayslxp-journey-map-edges line {
	stroke: #1d2327;
	stroke-width: 2.5;
	stroke-dasharray: 2 8;
	stroke-linecap: round;
	opacity: 0.72;
}

.pathwayslxp-journey-map-nodes {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.pathwayslxp-journey-map-node {
	position: absolute;
	width: 48px;
	height: 48px;
	z-index: 1;
}

.pathwayslxp-journey-map-node__pin {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	position: relative;
}

a.pathwayslxp-journey-map-node__pin {
	-webkit-tap-highlight-color: transparent;
}

.pathwayslxp-journey-map-node__pin-surface {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: #2271b1;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pathwayslxp-journey-map-node__icon {
	width: 22px;
	height: 22px;
	display: block;
}

.pathwayslxp-journey-map-node--available .pathwayslxp-journey-map-node__pin-surface {
	background: #2271b1;
}

.pathwayslxp-journey-map-node--current .pathwayslxp-journey-map-node__pin-surface {
	background: #2271b1;
	box-shadow: 0 0 0 4px rgba(34, 113, 177, 0.28), 0 4px 14px rgba(0, 0, 0, 0.22);
}

.pathwayslxp-journey-map-node--current::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 999px;
	border: 2px solid rgba(34, 113, 177, 0.45);
	animation: pathwayslxp-journey-map-pulse 2s ease-out infinite;
	pointer-events: none;
}

.pathwayslxp-journey-map-node--complete .pathwayslxp-journey-map-node__pin-surface {
	background: #00a32a;
}

.pathwayslxp-journey-map-node--locked .pathwayslxp-journey-map-node__pin-surface {
	background: #b32d2e;
}

.pathwayslxp-journey-map-node--branch .pathwayslxp-journey-map-node__pin-surface {
	background: #6b4bb3;
}

.pathwayslxp-journey-map-node__pin:hover .pathwayslxp-journey-map-node__pin-surface,
.pathwayslxp-journey-map-node__pin:focus-visible .pathwayslxp-journey-map-node__pin-surface {
	transform: scale(1.08);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}

.pathwayslxp-journey-map-node__pin:focus-visible {
	outline: 2px solid #2271b1;
	outline-offset: 3px;
}

.pathwayslxp-journey-map-node__tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 10px);
	transform: translateX(-50%);
	min-width: 160px;
	max-width: 220px;
	padding: 0.55rem 0.7rem;
	border-radius: 8px;
	background: rgba(29, 35, 39, 0.94);
	color: #fff;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease, visibility 0.15s ease;
	z-index: 5;
}

.pathwayslxp-journey-map-node__tooltip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 6px solid transparent;
	border-top-color: rgba(29, 35, 39, 0.94);
}

.pathwayslxp-journey-map-node__tooltip-label {
	display: block;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.35;
}

.pathwayslxp-journey-map-node__tooltip-status {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.72rem;
	opacity: 0.82;
	text-transform: capitalize;
}

.pathwayslxp-journey-map-node:hover .pathwayslxp-journey-map-node__tooltip,
.pathwayslxp-journey-map-node:focus-within .pathwayslxp-journey-map-node__tooltip,
.pathwayslxp-journey-map-node.is-tooltip-open .pathwayslxp-journey-map-node__tooltip {
	opacity: 1;
	visibility: visible;
}

.pathwayslxp-journey-map-wrap--capture .pathwayslxp-journey-map-node__tooltip {
	opacity: 1;
	visibility: visible;
	bottom: auto;
	top: calc(100% + 8px);
}

.pathwayslxp-journey-map-wrap--capture .pathwayslxp-journey-map-node__tooltip::after {
	top: auto;
	bottom: 100%;
	border-top-color: transparent;
	border-bottom-color: rgba(29, 35, 39, 0.94);
}

.pathwayslxp-learner-player__sidebar .pathwayslxp-journey-map-wrap {
	margin: 0;
}

.pathwayslxp-journey-map-wrap--capture .pathwayslxp-journey-map-panel--list,
.pathwayslxp-journey-map-wrap--capture .pathwayslxp-journey-map-toggle {
	display: none !important;
}

.pathwayslxp-journey-map-wrap--capture .pathwayslxp-journey-map-panel--map {
	display: block !important;
}

.pathwayslxp-learner-player__sidebar .pathwayslxp-journey-map-heading {
	font-size: 1rem;
}

.pathwayslxp-learner-player__sidebar .pathwayslxp-journey-map-viewport {
	max-height: calc(100vh - 220px);
}

@keyframes pathwayslxp-journey-map-pulse {
	0% {
		transform: scale(0.95);
		opacity: 0.8;
	}
	70% {
		transform: scale(1.2);
		opacity: 0;
	}
	100% {
		transform: scale(1.2);
		opacity: 0;
	}
}

@media (max-width: 782px) {
	.pathwayslxp-journey-map-viewport {
		max-height: 70vh;
	}

	.pathwayslxp-journey-map-node {
		width: 48px;
		height: 48px;
	}

	.pathwayslxp-journey-map-node__pin,
	.pathwayslxp-journey-map-node__pin-surface {
		width: 48px;
		height: 48px;
	}

	.pathwayslxp-journey-map-node__icon {
		width: 24px;
		height: 24px;
	}

	.pathwayslxp-journey-map-node__tooltip {
		min-width: 140px;
		max-width: min(220px, 70vw);
	}
}

@media (hover: none) and (pointer: coarse) {
	.pathwayslxp-journey-map-node:not(.is-tooltip-open) .pathwayslxp-journey-map-node__tooltip {
		opacity: 0;
		visibility: hidden;
	}
}
