Header navigation (no Bootstrap)

Utility-first main nav: no Bootstrap JS, no Popover API. Mobile Menu row stays put; tab list overlays under it; submenus expand in-flow. Desktop tabs stay visible; panels anchor under .nav-tab-trigger. Open via fine-pointer hover or .is-open / .is-menu-open on tap. Full recipes below the demo.

Rules (current pattern)

Source of truth for backend / CMS. Utilities live on the DOM. Scoped <style> is state + positioning only (no Popover API, no Bootstrap JS). Breakpoint family: md = 768px (:md utilities / min-width: 768px).

Tab map (DOM order)

0. Shell (once per page)

IDs & hooks (every tab)

Backend decision

  1. Title contains REGISTER NOWD (pull out of order; render last)
  2. No children / !SubPagesExistA
  3. 1–5 children → B
  4. > 5 children → C (B + 2-col additives)

D. Register CTA (always last)

A. Plain link (no children)

B. Dropdown — 1 column (1–5 children)

C. Dropdown — 2 columns (> 5 children) — additives on B

Child link (inside every .dropdown_column)

Behavior (JS + CSS)

Scoped <style> — keep only

Utilities on DOM (not in <style>)