/* NCB Hamburger Menu
   Colors come from CSS variables injected by the plugin:
   --ncbhm-accent, --ncbhm-panel-bg, --ncbhm-panel-text,
   --ncbhm-burger-bg, --ncbhm-burger-color */

/* ---- Shared icon (three bars → X) ---- */
.ncbhm-bars{display:flex;flex-direction:column;justify-content:center;gap:5px;width:22px;height:16px}
.ncbhm-bars span{
	display:block;width:100%;height:2px;border-radius:2px;
	background:var(--ncbhm-burger-color,#f5f2ec);
	transition:transform .3s ease,opacity .3s ease;
}
.ncbhm-open .ncbhm-bars span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ncbhm-open .ncbhm-bars span:nth-child(2){opacity:0}
.ncbhm-open .ncbhm-bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---- Shared menu list ---- */
.ncbhm-menu{list-style:none;margin:0;padding:0}
.ncbhm-menu li{margin:0}
.ncbhm-menu a{
	display:block;color:var(--ncbhm-panel-text,#f5f2ec);text-decoration:none;
	padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.14);
	transition:color .2s ease,padding-left .2s ease;
}
.ncbhm-menu a:hover,.ncbhm-menu a:focus{color:var(--ncbhm-accent,#c2552f);padding-left:.4rem}
.ncbhm-menu .sub-menu{list-style:none;margin:0;padding:0 0 0 1rem}
.ncbhm-menu .sub-menu a{font-size:.95em;opacity:.85}

/* ---- Accordion mode (collapsed sub-menus); needs JS (.ncbhm-js) ---- */
.ncbhm-mode-accordion.ncbhm-js .sub-menu{display:none}
.ncbhm-mode-accordion.ncbhm-js li.ncbhm-expanded > .sub-menu{display:block}
.ncbhm-mode-accordion .menu-item-has-children{position:relative}
.ncbhm-mode-accordion .menu-item-has-children > a{padding-right:3rem}
.ncbhm-toggle{
	position:absolute;top:.3rem;right:0;width:3rem;height:2.4rem;
	display:flex;align-items:center;justify-content:center;
	background:none;border:none;cursor:pointer;
}
.ncbhm-caret{
	display:block;width:9px;height:9px;
	border-right:2px solid var(--ncbhm-panel-text,#f5f2ec);
	border-bottom:2px solid var(--ncbhm-panel-text,#f5f2ec);
	transform:rotate(45deg);transition:transform .2s ease;
}
li.ncbhm-expanded > .ncbhm-toggle .ncbhm-caret{transform:rotate(-135deg)}
.ncbhm-toggle:focus-visible{outline:2px solid var(--ncbhm-accent,#c2552f);outline-offset:2px}

/* =========================================================
   OFF-CANVAS MODE
   ========================================================= */
.ncbhm-burger{
	position:fixed;top:1rem;right:1rem;   /* fallback; overridden per-device by the plugin */
	z-index:99999;width:48px;height:48px;
	display:flex;align-items:center;justify-content:center;
	border:none;border-radius:50%;
	background:var(--ncbhm-burger-bg,#1a1a1a);
	box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer;
}
.ncbhm-panel{
	position:fixed;top:0;
	width:320px;max-width:82vw;height:100vh;height:100dvh;
	z-index:99998;padding:var(--ncbhm-panel-top,5.5rem) 2.25rem 2rem;
	background:var(--ncbhm-panel-bg,#1a1a1a);color:var(--ncbhm-panel-text,#f5f2ec);
	overflow-y:auto;
	right:0;transform:translateX(100%);   /* fallback; overridden per-device by the plugin */
	transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.ncbhm-panel .ncbhm-menu a{font-size:1.25rem}
.ncbhm-panel.ncbhm-open{transform:translateX(0)}
.ncbhm-overlay{
	position:fixed;inset:0;z-index:99997;background:rgba(0,0,0,.45);
	opacity:0;visibility:hidden;transition:opacity .35s ease;
}
.ncbhm-overlay.ncbhm-open{opacity:1;visibility:visible}
body.ncbhm-lock{overflow:hidden}
.ncbhm-burger:focus-visible{outline:2px solid var(--ncbhm-accent,#c2552f);outline-offset:3px}

/* =========================================================
   INLINE MODE (shortcode dropdown)
   ========================================================= */
.ncbhm-inline{position:relative;display:inline-block}
.ncbhm-inline-burger{
	display:inline-flex;align-items:center;gap:.5rem;
	padding:.5rem .75rem;border:none;border-radius:6px;cursor:pointer;
	background:var(--ncbhm-burger-bg,#1a1a1a);
	color:var(--ncbhm-burger-color,#f5f2ec);
	font:inherit;line-height:1;
}
.ncbhm-inline-label{color:var(--ncbhm-burger-color,#f5f2ec)}
.ncbhm-inline-panel{
	position:absolute;top:calc(100% + 8px);z-index:9999;
	min-width:240px;max-width:90vw;
	padding:.75rem 1.25rem;
	background:var(--ncbhm-panel-bg,#1a1a1a);color:var(--ncbhm-panel-text,#f5f2ec);
	border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.28);
}
.ncbhm-align-left .ncbhm-inline-panel{left:0}
.ncbhm-align-right .ncbhm-inline-panel{right:0}
.ncbhm-align-center .ncbhm-inline-panel{left:50%;transform:translateX(-50%)}
/* Hidden until opened — only once JS is active, so no-JS shows the menu. */
.ncbhm-inline.ncbhm-js .ncbhm-inline-panel{display:none}
.ncbhm-inline.ncbhm-js.ncbhm-open .ncbhm-inline-panel{display:block}
.ncbhm-inline-burger:focus-visible{outline:2px solid var(--ncbhm-accent,#c2552f);outline-offset:2px}

/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
	.ncbhm-panel,.ncbhm-overlay,.ncbhm-bars span,.ncbhm-menu a,.ncbhm-caret{transition:none}
}
