/* Jazi Site Suite — Nav Menu widget
   Scoped under .jss-nav so it never leaks into theme menus. */

.jss-nav {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}
.jss-nav__notice {
	padding: 12px 16px;
	border: 1px dashed #c9ccd1;
	border-radius: 8px;
	color: #646970;
	font-size: 13px;
}

/* Panel wraps the list; in horizontal mode it IS the bar. */
.jss-nav__panel {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
}

.jss-nav__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
}
.jss-nav__menu li { position: relative; margin: 0; }

.jss-nav a {
	display: flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
	color: inherit;
	line-height: 1.3;
	position: relative;
	transition: color .18s ease, background-color .18s ease;
}

/* ---- Pointer (hover / active) effects ---- */
.jss-nav[class*="jss-nav-ptr-"] .jss-nav__menu > li > a { position: relative; z-index: 0; }

/* Line pointers: underline / overline / double */
.jss-nav-ptr-underline .jss-nav__menu > li > a::after,
.jss-nav-ptr-overline .jss-nav__menu > li > a::after,
.jss-nav-ptr-double .jss-nav__menu > li > a::after,
.jss-nav-ptr-double .jss-nav__menu > li > a::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: var(--jss-ptr-w, 2px);
	background: var(--jss-ptr, #6129d4);
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}
.jss-nav-ptr-underline.jss-nav-ptr-bottom .jss-nav__menu > li > a::after { bottom: 0; }
.jss-nav-ptr-underline.jss-nav-ptr-top .jss-nav__menu > li > a::after { top: 0; }
.jss-nav-ptr-overline .jss-nav__menu > li > a::after { top: 0; }
.jss-nav-ptr-double .jss-nav__menu > li > a::after { bottom: 0; }
.jss-nav-ptr-double .jss-nav__menu > li > a::before { top: 0; }

/* Framed pointer */
.jss-nav-ptr-framed .jss-nav__menu > li > a::after {
	content: "";
	position: absolute;
	inset: 0;
	border: var(--jss-ptr-w, 2px) solid var(--jss-ptr, #6129d4);
	border-radius: inherit;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}

/* Background pointer */
.jss-nav-ptr-background .jss-nav__menu > li > a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--jss-ptr, #6129d4);
	border-radius: inherit;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease, transform .25s ease;
}

/* Show on hover / active */
.jss-nav[class*="jss-nav-ptr-"] .jss-nav__menu > li > a:hover::after,
.jss-nav[class*="jss-nav-ptr-"] .jss-nav__menu > li.current-menu-item > a::after,
.jss-nav[class*="jss-nav-ptr-"] .jss-nav__menu > li.current-menu-ancestor > a::after,
.jss-nav-ptr-double .jss-nav__menu > li > a:hover::before,
.jss-nav-ptr-double .jss-nav__menu > li.current-menu-item > a::before {
	opacity: 1;
	transform: none;
}

/* Animations (initial state of the pseudo) */
.jss-nav-anim-none .jss-nav__menu > li > a::after,
.jss-nav-anim-none .jss-nav__menu > li > a::before { transition: none; }
.jss-nav-anim-grow .jss-nav__menu > li > a::after,
.jss-nav-anim-grow .jss-nav__menu > li > a::before { transform: scaleX(0); transform-origin: center; }
.jss-nav-anim-slide .jss-nav__menu > li > a::after,
.jss-nav-anim-slide .jss-nav__menu > li > a::before { transform: scaleX(0); transform-origin: left center; }
.jss-nav-anim-drop .jss-nav__menu > li > a::after,
.jss-nav-anim-drop .jss-nav__menu > li > a::before { transform: translateY(-6px); }
/* Framed/background grow from centre on both axes */
.jss-nav-anim-grow.jss-nav-ptr-framed .jss-nav__menu > li > a::after,
.jss-nav-anim-grow.jss-nav-ptr-background .jss-nav__menu > li > a::after { transform: scale(.6); }

/* Parent items: keep link + indicator on one row, submenu below */
.jss-nav .menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
.jss-nav .menu-item-has-children > a { flex: 1 1 auto; }
.jss-nav .menu-item-has-children > .sub-menu { flex-basis: 100%; }

/* Submenu indicator: plus / minus glyph */
.jss-nav__pm { position: relative; display: inline-block; width: .72em; height: .72em; }
.jss-nav__pm::before, .jss-nav__pm::after { content: ""; position: absolute; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.jss-nav__pm::before { left: 0; right: 0; top: 50%; height: 2px; transform: translateY(-50%); }
.jss-nav__pm::after { top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); }
.jss-nav li.is-expanded > .jss-nav__caret .jss-nav__pm::after { opacity: 0; }

/* ---- Submenus (shared) ---- */
.jss-nav .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.jss-nav .sub-menu a { width: 100%; }

/* ---- Caret toggle (added by JS to parent items) ---- */
.jss-nav__caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	cursor: pointer;
	color: currentColor;
	padding: 0 6px;
	line-height: 0;
}
.jss-nav__caret svg { transition: transform .2s ease; width: 14px; height: 14px; fill: currentColor; }
.jss-nav li.is-expanded > .jss-nav__caret svg { transform: rotate(180deg); }
/* "None" indicator: keep the toggle only where it's needed (mobile / vertical) */
.jss-nav--horizontal:not(.is-collapsed) .jss-nav__caret--hidden { display: none; }

/* ================= HORIZONTAL ================= */
.jss-nav--horizontal .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 99;
	min-width: 220px;
	display: none;
	flex-direction: column;
	padding: 6px 0;
	overflow: hidden;
}
.jss-nav--horizontal .sub-menu .sub-menu { top: -6px; left: 100%; }

/* Hover to open (desktop, non-collapsed) */
.jss-nav--horizontal[data-submenu="hover"]:not(.is-collapsed) li:hover > .sub-menu {
	display: flex;
}
/* Click to open */
.jss-nav--horizontal[data-submenu="click"]:not(.is-collapsed) li.is-expanded > .sub-menu {
	display: flex;
}

/* ================= VERTICAL ================= */
.jss-nav--vertical { align-items: stretch; }
.jss-nav--vertical .jss-nav__panel { flex-direction: column; }
.jss-nav--vertical .jss-nav__menu {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
}
.jss-nav--vertical .jss-nav__menu > li > a { justify-content: space-between; }
.jss-nav--vertical .sub-menu {
	display: none;
	flex-direction: column;
	padding-left: 14px;
}
.jss-nav--vertical li.is-expanded > .sub-menu { display: flex; }
.jss-nav--vertical .menu-item-has-children > .jss-nav__caret { display: inline-flex; }
.jss-nav--vertical .menu-item-has-children > a { position: relative; }

/* ================= HAMBURGER / COLLAPSED ================= */
.jss-nav__burger {
	display: none;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	cursor: pointer;
	line-height: 0;
}
.jss-nav__bars,
.jss-nav__bars::before,
.jss-nav__bars::after {
	display: block;
	width: 24px;
	height: 2px;
	background: #191225;
	border-radius: 2px;
	transition: transform .25s ease, opacity .2s ease;
}
.jss-nav__bars { position: relative; }
.jss-nav__bars::before,
.jss-nav__bars::after { content: ""; position: absolute; left: 0; }
.jss-nav__bars::before { top: -7px; }
.jss-nav__bars::after { top: 7px; }

/* burger → X when open */
.jss-nav.is-open .jss-nav__bars { background: transparent; }
.jss-nav.is-open .jss-nav__bars::before { transform: translateY(7px) rotate(45deg); }
.jss-nav.is-open .jss-nav__bars::after { transform: translateY(-7px) rotate(-45deg); }

/* Collapsed layout (class toggled by JS at the chosen breakpoint) */
.jss-nav.is-collapsed .jss-nav__burger { display: inline-flex; }
.jss-nav.is-collapsed .jss-nav__panel {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 240px;
	flex-direction: column;
	display: none;
	z-index: 999;
	border-radius: 10px;
	box-shadow: 0 16px 40px rgba(16, 24, 40, 0.16);
	overflow: hidden;
}
.jss-nav.is-collapsed.jss-nav--panel-full .jss-nav__panel { left: 0; right: 0; min-width: 0; }
.jss-nav.is-collapsed.is-open .jss-nav__panel { display: flex; }
.jss-nav.is-collapsed .jss-nav__menu {
	flex-direction: column;
	align-items: stretch;
	flex-wrap: nowrap;
	width: 100%;
}
.jss-nav.is-collapsed .jss-nav__menu > li > a { justify-content: space-between; }
.jss-nav.is-collapsed .sub-menu {
	position: static;
	display: none;
	min-width: 0;
	padding: 0 0 0 14px;
	box-shadow: none;
	border-radius: 0;
}
.jss-nav.is-collapsed li.is-expanded > .sub-menu { display: flex; flex-direction: column; }
.jss-nav.is-collapsed .menu-item-has-children > .jss-nav__caret { display: inline-flex; }
.jss-nav.is-collapsed .jss-nav__menu > li > a::after { display: none; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.jss-nav a,
	.jss-nav__bars,
	.jss-nav__bars::before,
	.jss-nav__bars::after,
	.jss-nav__caret svg,
	.jss-nav__menu > li > a::after { transition: none; }
}
