/* ==========================================================================
   NOVARIC® Design Tokens — Phase B (reconstructed 2026-08-11)
   STATUS: RECONSTRUCTED — reconcile with official Phase B record when provided.
   Sources: NOVARIC® rebuild brief §9 (approved palette), Phase C instruction §2.

   HYBRID RE-SKIN (Decision D-23, 2026-08-12 — approved by Dr. Alban Gj. THIKA):
   navy/cyan aligned to novaric.co Brand Guidelines v4.1 (navy #1B2A3B, cyan
   #009AE4, light grey #F4F6F8, article tint #F0F7FD); accessible text variants
   derived and WCAG-verified. Red CTA #861A1B superseded by D-26 navy/cyan actions.
   Brand colours: red #861A1B · cyan #009AE4 · navy #1B2A3B
   Font: Helvetica (locally installed) with Arial fallback. WCAG 2.2 AA minimum.
   ========================================================================== */

:root {
  /* --- Brand --- */
  /* D-26 (2026-08-12, supersedes D-23 CTA colour): red is NOT a routine action colour.
     Primary actions = navy; action accents = accessible cyan. Red retained for
     fraud/gated/alert semantics and the official Recruitment logo only. */
  --nv-red: #861A1B;           /* semantic only: fraud/gated/alert borders */
  --nv-red-dark: #6B1415;
  --nv-red-on: #FFFFFF;
  --nv-primary: #1B2A3B;       /* primary action bg (navy) — white on navy 14.6:1 ✓ */
  --nv-primary-hover: #14202C;
  --nv-primary-on: #FFFFFF;
  --nv-action: #0072A9;        /* accessible cyan action accent — 5.3:1 on white ✓ */
  --nv-action-hover: #005E8C;
  --nv-cyan: #009AE4;          /* D-23: v4.1 cyan — accent/borders (3.1:1 on white, decorative use) */
  --nv-cyan-dark: #0072A9;     /* D-23: v4.1 cyan darkened for text/links — 5.3:1 white · 4.9:1 surface · 4.7:1 gated/warning tints ✓ */
  --nv-cyan-on: #0B2239;       /* text on cyan bg — 5.2:1 ✓ */
  --nv-navy: #1B2A3B;          /* D-23: v4.1 navy — on white 14.6:1 ✓ */
  --nv-navy-dark: #14202C;
  --nv-navy-on: #FFFFFF;

  /* --- Neutrals (light institutional direction — PRIMARY) --- */
  --nv-bg: #FFFFFF;
  --nv-surface: #F4F6F8;       /* D-23: v4.1 light grey (meta/section bg) */
  --nv-surface-2: #F0F7FD;     /* D-23: v4.1 article tint */
  --nv-border: #D9DFE7;
  --nv-text: #1E2732;          /* on white — 14.7:1 ✓ · on surface 13.9:1 ✓ */
  --nv-text-muted: #4D5A6B;    /* on white — 7.4:1 ✓ · on surface 6.5:1 ✓ */
  --nv-focus: #0072A9;         /* visible focus ring (D-23 accessible cyan) */

  /* --- Dark premium direction (ONLY where approved in PHASEB-REPORT) --- */
  --nv-dark-bg: #1C232D;       /* lifted from navy; not near-black */
  --nv-dark-surface: #242E3B;
  --nv-dark-surface-2: #2D3947;
  --nv-dark-border: #3D4C5E;
  --nv-dark-text: #F2F5F8;     /* on --nv-dark-bg — 13.9:1 ✓ */
  --nv-dark-text-muted: #B9C4D0; /* on --nv-dark-bg — 8.2:1 ✓ */
  --nv-dark-red: #B44A4C;      /* red accent readable on dark — 4.6:1 ✓ */
  --nv-dark-cyan: #30ADE9;     /* D-23: v4.1 cyan tinted for dark — 6.2:1 on dark-bg, 5.4:1 on dark-surface ✓ */

  /* --- Semantic --- */
  --nv-success: #1F7A4D;
  --nv-warning-bg: #FFF6E5;
  --nv-warning-border: #B8791A;
  --nv-warning-text: #6B4A0E;  /* 7.1:1 on warning bg ✓ */
  --nv-error: #B3261E;
  --nv-gated-bg: #FBEFEF;
  --nv-gated-border: #861A1B;

  /* --- Neutrals (design brief 2026-08-12) --- */
  --nv-offwhite: #F6F7F5;      /* warm off-white editorial bg */
  --nv-neutral: #E8EBED;       /* light neutral */
  --nv-text-secondary: #56616D;
  --nv-text-dark: #17212B;

  /* --- Typography (Helvetica 400/700, 300 sparingly; Arial fallback) --- */
  --nv-font: "Helvetica", Arial, sans-serif; /* official typeface 2026-08-12; Arial immediate fallback; no webfont packaged pending licence verification */
  --nv-fs-display: clamp(3rem, 6vw, 6.25rem);
  --nv-fs-hero: clamp(2.5rem, 5vw, 4rem);   /* H1 (brief cap 5rem reserved for display) */
  --nv-fs-h2: clamp(1.75rem, 3vw, 2.75rem);
  --nv-fs-h3: clamp(1.2rem, 2vw, 1.5rem);
  --nv-fs-body-lg: 1.25rem;
  --nv-fs-body: 1.0625rem;
  --nv-fs-small: 0.875rem;
  --nv-fs-label: 0.8125rem;
  --nv-lh-body: 1.65;
  --nv-lh-head: 1.15;
  --nv-ls-head: -0.015em;      /* compact letter spacing on major headlines */

  /* --- Spacing scale (8pt) --- */
  --nv-sp-1: 0.5rem;  --nv-sp-2: 1rem;  --nv-sp-3: 1.5rem;
  --nv-sp-4: 2rem;    --nv-sp-5: 3rem;  --nv-sp-6: 4.5rem;
  --nv-sp-7: 6rem;

  /* --- Layout (12-col responsive grid; brief widths) --- */
  --nv-maxw: 80rem;            /* ~1280px content */
  --nv-maxw-wide: 90rem;       /* ~1440px editorial sections */
  --nv-maxw-text: 46rem;
  --nv-radius: 6px;            /* brief: 0–8px */
  --nv-radius-lg: 8px;
  --nv-shadow: 0 1px 2px rgba(30, 39, 50, .06), 0 4px 16px rgba(30, 39, 50, .08);

  /* --- Motion (160–240ms; honour prefers-reduced-motion) --- */
  --nv-trans: 200ms ease-in-out;
  --nv-trans-fast: 160ms ease-in-out;
}

/* ============ Base ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body {
  margin: 0; font-family: var(--nv-font); font-size: var(--nv-fs-body);
button, input, select, textarea { font-family: var(--nv-font); }
  line-height: var(--nv-lh-body); color: var(--nv-text); background: var(--nv-bg);
}
img, svg, video { max-width: 100%; height: auto; }
h1, h2, h3, h4 { line-height: var(--nv-lh-head); color: var(--nv-navy); margin: 0 0 var(--nv-sp-2); }
h1 { font-size: var(--nv-fs-hero); letter-spacing: -0.015em; }
h2 { font-size: var(--nv-fs-h2); letter-spacing: -0.01em; }
h3 { font-size: var(--nv-fs-h3); }
p { margin: 0 0 var(--nv-sp-2); max-width: var(--nv-maxw-text); }
a { color: var(--nv-cyan-dark); text-underline-offset: 2px; }
a:hover { color: var(--nv-action); }
:focus-visible { outline: 3px solid var(--nv-focus); outline-offset: 2px; border-radius: 2px; }
ul, ol { max-width: var(--nv-maxw-text); }
li { margin-bottom: var(--nv-sp-1); }
small, .nv-small { font-size: var(--nv-fs-small); }
hr { border: 0; border-top: 1px solid var(--nv-border); margin: var(--nv-sp-5) 0; }

/* Skip link */
.nv-skip {
  position: absolute; left: -9999px; top: 0; background: var(--nv-navy);
  color: #fff; padding: var(--nv-sp-1) var(--nv-sp-2); z-index: 200;
}
.nv-skip:focus { left: 0; }

/* ============ Layout ============ */
.nv-wrap { max-width: var(--nv-maxw); margin: 0 auto; padding: 0 var(--nv-sp-2); }
.nv-section { padding: var(--nv-sp-6) 0; }
.nv-section--tint { background: var(--nv-surface); }
.nv-section--navy { background: var(--nv-navy); }
.nv-section--navy h2, .nv-section--navy h3 { color: #fff; }
.nv-section--navy p, .nv-section--navy li { color: #DCE3EB; }
.nv-grid { display: grid; gap: var(--nv-sp-3); }
.nv-grid--4 { grid-template-columns: repeat(4, 1fr); }
.nv-grid--3 { grid-template-columns: repeat(3, 1fr); }
.nv-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 60em) { .nv-grid--4, .nv-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 40em) { .nv-grid--4, .nv-grid--3, .nv-grid--2 { grid-template-columns: 1fr; } }

.nv-eyebrow {
  display: inline-block; font-size: var(--nv-fs-small); font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: var(--nv-action);
  margin-bottom: var(--nv-sp-2);
}
.nv-lede { font-size: 1.1875rem; color: var(--nv-text-muted); }

/* ============ Header ============ */
.nv-header { background: var(--nv-bg); border-bottom: 1px solid var(--nv-border); position: sticky; top: 0; z-index: 100; }
.nv-header__bar { display: flex; align-items: center; gap: var(--nv-sp-3); padding: var(--nv-sp-1) 0; }
.nv-brand { font-weight: 800; font-size: 1.25rem; color: var(--nv-navy); text-decoration: none; letter-spacing: .02em; }
.nv-brand sup { color: var(--nv-action); font-size: .6em; }
.nv-nav { margin-left: auto; }
.nv-nav ul { display: flex; gap: var(--nv-sp-3); list-style: none; margin: 0; padding: 0; max-width: none; }
.nv-nav a { color: var(--nv-navy); text-decoration: none; font-weight: 600; font-size: .95rem; }
.nv-nav a[aria-current="page"] { color: var(--nv-action); border-bottom: 2px solid var(--nv-action); }
.nv-nav li { margin: 0; }
.nv-utility { background: var(--nv-surface); font-size: var(--nv-fs-small); border-bottom: 1px solid var(--nv-border); }
.nv-utility .nv-wrap { display: flex; gap: var(--nv-sp-3); align-items: center; padding-top: .35rem; padding-bottom: .35rem; }
@media (max-width: 40em) { .nv-utility .nv-wrap { flex-wrap: wrap; gap: .15rem var(--nv-sp-2); } .nv-utility .nv-utility__right { margin-left: 0; flex-wrap: wrap; } }
.nv-utility a { color: var(--nv-navy); text-decoration: none; font-weight: 600; }
.nv-utility .nv-utility__right { margin-left: auto; display: flex; gap: var(--nv-sp-2); align-items: center; }
.nv-nav-toggle { display: none; margin-left: auto; background: none; border: 1px solid var(--nv-border); border-radius: var(--nv-radius); padding: .5rem .75rem; font: inherit; font-weight: 600; color: var(--nv-navy); cursor: pointer; }
@media (max-width: 52em) {
  .nv-nav-toggle { display: block; }
  .nv-nav { display: none; width: 100%; margin: 0; }
  .nv-nav[data-open] { display: block; }
  .nv-nav ul { flex-direction: column; gap: 0; }
  .nv-nav li { border-top: 1px solid var(--nv-border); }
  .nv-nav a { display: block; padding: var(--nv-sp-1); }
  .nv-header__bar { flex-wrap: wrap; }
}
.nv-external::after { content: "↗"; font-size: .8em; margin-left: .25em; }
.nv-tag-external {
  display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .04em;
  border: 1px solid var(--nv-border); border-radius: 999px; padding: .05rem .5rem;
  color: var(--nv-text-muted); vertical-align: middle; margin-left: .4rem; text-transform: uppercase;
}

/* ============ Buttons / CTAs ============ */
.nv-btn {
  display: inline-block; font: inherit; font-weight: 700; text-decoration: none;
  padding: .8rem 1.5rem; border-radius: var(--nv-radius); cursor: pointer;
  border: 2px solid transparent; transition: background var(--nv-trans), color var(--nv-trans);
}
.nv-btn--primary { background: var(--nv-primary); color: var(--nv-primary-on); }
.nv-btn--primary:hover { background: var(--nv-primary-hover); color: #fff; }
.nv-btn--secondary { background: transparent; color: var(--nv-navy); border-color: var(--nv-navy); }
.nv-btn--secondary:hover { background: var(--nv-navy); color: #fff; }
.nv-btn--ghost-light { color: #fff; border-color: rgba(255,255,255,.6); }
.nv-btn--ghost-light:hover { background: rgba(255,255,255,.12); color: #fff; }
.nv-cta-row { display: flex; gap: var(--nv-sp-2); flex-wrap: wrap; align-items: center; margin-top: var(--nv-sp-3); }
.nv-textlink { font-weight: 600; }

/* ============ Cards ============ */
.nv-card {
  background: var(--nv-bg); border: 1px solid var(--nv-border); border-radius: var(--nv-radius-lg);
  padding: var(--nv-sp-3); display: flex; flex-direction: column; gap: var(--nv-sp-1);
}
.nv-card h3 { margin-bottom: .25rem; }
.nv-card p { color: var(--nv-text-muted); margin: 0; flex: 1; }
.nv-card a { font-weight: 700; text-decoration: none; margin-top: var(--nv-sp-1); }
.nv-card--link:hover { border-color: var(--nv-cyan); box-shadow: var(--nv-shadow); }

/* ============ Hero ============ */
.nv-hero { padding: var(--nv-sp-7) 0 var(--nv-sp-6); background: linear-gradient(180deg, var(--nv-surface) 0%, var(--nv-bg) 100%); }
.nv-hero h1 { max-width: 22ch; }
.nv-hero .nv-lede { max-width: 52ch; }

/* ============ Trust strip ============ */
.nv-trust { border-top: 1px solid var(--nv-border); border-bottom: 1px solid var(--nv-border); background: var(--nv-bg); }
.nv-trust ul { display: flex; flex-wrap: wrap; gap: var(--nv-sp-4); list-style: none; margin: 0; padding: var(--nv-sp-3) 0; max-width: none; }
.nv-trust li { margin: 0; font-size: var(--nv-fs-small); color: var(--nv-text-muted); }
.nv-trust strong { display: block; color: var(--nv-navy); font-size: 1.05rem; }

/* ============ Steps (How NOVARIC works) ============ */
.nv-steps { counter-reset: step; list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-sp-3); max-width: none; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 52em) { .nv-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 32em) { .nv-steps { grid-template-columns: 1fr; } }
.nv-steps li { counter-increment: step; background: var(--nv-bg); border: 1px solid var(--nv-border); border-radius: var(--nv-radius-lg); padding: var(--nv-sp-3); margin: 0; }
.nv-steps li::before {
  content: counter(step); display: inline-flex; align-items: center; justify-content: center;
  width: 2rem; height: 2rem; border-radius: 50%; background: var(--nv-primary); color: #fff;
  font-weight: 800; margin-bottom: var(--nv-sp-1);
}
.nv-steps h3 { font-size: 1.05rem; margin: 0 0 .25rem; }
.nv-steps p { margin: 0; font-size: .95rem; color: var(--nv-text-muted); }

/* ============ Notices ============ */
.nv-note {
  border: 1px solid var(--nv-border); border-left: 4px solid var(--nv-cyan);
  background: var(--nv-surface); border-radius: var(--nv-radius);
  padding: var(--nv-sp-2) var(--nv-sp-3); margin: var(--nv-sp-3) 0; font-size: .95rem;
}
.nv-note--verify { border-left-color: var(--nv-warning-border); background: var(--nv-warning-bg); color: var(--nv-warning-text); }
.nv-note--gated { border-left-color: var(--nv-gated-border); background: var(--nv-gated-bg); color: var(--nv-text); }
.nv-note--fraud { border-left-color: var(--nv-red); background: var(--nv-gated-bg); }
.nv-verify-tag {
  display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .05em;
  background: var(--nv-warning-bg); color: var(--nv-warning-text);
  border: 1px dashed var(--nv-warning-border); border-radius: 4px; padding: .05rem .4rem;
}

/* ============ Breadcrumb ============ */
.nv-breadcrumb { font-size: var(--nv-fs-small); padding: var(--nv-sp-2) 0 0; }
.nv-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; max-width: none; }
.nv-breadcrumb li { margin: 0; color: var(--nv-text-muted); }
.nv-breadcrumb li + li::before { content: "/"; margin-right: .5rem; color: var(--nv-border); }
.nv-breadcrumb a { color: var(--nv-text-muted); }
/* WCAG 2.5.8 target size: inline breadcrumb links padded to 24px min target (spacing exception no longer relied on after overlap-logo spacing change) */
.nv-breadcrumb li { display: flex; align-items: center; min-height: 24px; }
.nv-breadcrumb a { display: inline-flex; align-items: center; min-height: 24px; min-width: 24px; }

/* ============ Forms ============ */
.nv-form { background: var(--nv-surface); border: 1px solid var(--nv-border); border-radius: var(--nv-radius-lg); padding: var(--nv-sp-4); max-width: 40rem; }
.nv-field { margin-bottom: var(--nv-sp-3); }
.nv-field label { display: block; font-weight: 700; color: var(--nv-navy); margin-bottom: .35rem; }
.nv-field .nv-hint { font-size: var(--nv-fs-small); color: var(--nv-text-muted); margin: .25rem 0 0; }
.nv-field input, .nv-field select, .nv-field textarea {
  width: 100%; font: inherit; padding: .7rem .8rem; border: 1px solid var(--nv-border);
  border-radius: var(--nv-radius); background: #fff; color: var(--nv-text);
}
.nv-field input:focus, .nv-field select:focus, .nv-field textarea:focus { outline: 3px solid var(--nv-focus); outline-offset: 1px; border-color: var(--nv-focus); }
.nv-check { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: var(--nv-sp-2); }
.nv-check input { width: auto; margin-top: .3rem; }
.nv-check label { font-weight: 400; }
.nv-form__meta { font-size: var(--nv-fs-small); color: var(--nv-text-muted); }

/* ============ Tables (document index) ============ */
.nv-table-wrap { overflow-x: auto; }
table.nv-table { border-collapse: collapse; width: 100%; font-size: .95rem; max-width: none; }
.nv-table th, .nv-table td { text-align: left; padding: .6rem .8rem; border-bottom: 1px solid var(--nv-border); vertical-align: top; }
.nv-table th { background: var(--nv-surface); color: var(--nv-navy); }
.nv-table caption { text-align: left; font-weight: 700; padding-bottom: .5rem; color: var(--nv-navy); }
.nv-filterbar { display: flex; gap: var(--nv-sp-2); flex-wrap: wrap; margin-bottom: var(--nv-sp-3); }
.nv-filterbar input, .nv-filterbar select { font: inherit; padding: .6rem .8rem; border: 1px solid var(--nv-border); border-radius: var(--nv-radius); }
.nv-pill { display: inline-block; font-size: .72rem; font-weight: 700; padding: .1rem .5rem; border-radius: 999px; background: var(--nv-surface-2); color: var(--nv-navy); }
.nv-pill--current { background: #E5F2E9; color: var(--nv-success); }

/* ============ Footer (6 columns) ============ */
.nv-footer { background: var(--nv-navy); color: #DCE3EB; margin-top: var(--nv-sp-7); }
.nv-footer a { color: #C9E2F7; }
.nv-footer a:hover { color: #fff; }
.nv-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(5, 1fr); gap: var(--nv-sp-3); padding: var(--nv-sp-6) 0 var(--nv-sp-4); }
@media (max-width: 60em) { .nv-footer__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 40em) { .nv-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 26em) { .nv-footer__grid { grid-template-columns: 1fr; } }
.nv-footer h2, .nv-footer h3 { color: #fff; font-size: .95rem; letter-spacing: .04em; text-transform: uppercase; }
.nv-footer ul { list-style: none; margin: 0; padding: 0; max-width: none; }
.nv-footer li { margin-bottom: .4rem; font-size: .92rem; }
.nv-footer__legal { border-top: 1px solid var(--nv-dark-border); padding: var(--nv-sp-3) 0; font-size: var(--nv-fs-small); }
.nv-footer__legal nav ul { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-bottom: var(--nv-sp-2); }
.nv-footer__trustline { color: #9FB0C2; }

/* ============ Cookie / consent banner (placeholder) ============ */
.nv-consent {
  position: fixed; inset: auto 0 0 0; background: var(--nv-navy); color: #fff;
  padding: var(--nv-sp-2) 0; z-index: 300; box-shadow: 0 -4px 20px rgba(0,0,0,.25);
}
.nv-consent[hidden] { display: none; }
.nv-consent .nv-wrap { display: flex; gap: var(--nv-sp-2); align-items: center; flex-wrap: wrap; }
.nv-consent p { margin: 0; font-size: var(--nv-fs-small); color: #DCE3EB; flex: 1 1 26rem; }
.nv-consent a { color: #C9E2F7; }

/* ============ Dark premium direction (approved areas only) ============ */
.nv-dark { background: var(--nv-dark-bg); color: var(--nv-dark-text); }
.nv-dark h1, .nv-dark h2, .nv-dark h3, .nv-dark h4 { color: var(--nv-dark-text); }
.nv-dark p, .nv-dark li { color: var(--nv-dark-text-muted); }
.nv-dark a { color: var(--nv-dark-cyan); }
.nv-dark .nv-card { background: var(--nv-dark-surface); border-color: var(--nv-dark-border); }
.nv-dark .nv-card p { color: var(--nv-dark-text-muted); }
.nv-dark .nv-section--tint { background: var(--nv-dark-surface); }
.nv-dark .nv-hero { background: linear-gradient(180deg, var(--nv-dark-surface) 0%, var(--nv-dark-bg) 100%); }
.nv-dark .nv-eyebrow { color: var(--nv-dark-cyan); }
.nv-dark .nv-lede { color: var(--nv-dark-text-muted); }
.nv-dark .nv-trust { background: var(--nv-dark-surface); border-color: var(--nv-dark-border); }
.nv-dark .nv-trust strong { color: var(--nv-dark-text); }
.nv-dark .nv-trust li { color: var(--nv-dark-text-muted); }
.nv-dark .nv-steps li { background: var(--nv-dark-surface); border-color: var(--nv-dark-border); }
.nv-dark .nv-steps p { color: var(--nv-dark-text-muted); }
.nv-dark .nv-header { background: var(--nv-dark-bg); border-color: var(--nv-dark-border); }
.nv-dark .nv-brand, .nv-dark .nv-nav a { color: var(--nv-dark-text); }
.nv-dark .nv-utility { background: var(--nv-dark-surface); border-color: var(--nv-dark-border); }
.nv-dark .nv-utility a { color: var(--nv-dark-text-muted); }
.nv-dark .nv-btn--secondary { color: var(--nv-dark-text); border-color: var(--nv-dark-text-muted); }
.nv-dark .nv-btn--secondary:hover { background: var(--nv-dark-surface-2); color: #fff; }
/* D-23: keep button text colours ahead of .nv-dark a (specificity) */
.nv-dark .nv-btn--primary { color: var(--nv-primary-on); }
.nv-dark .nv-btn--primary:hover { color: #fff; }
.nv-dark .nv-btn--ghost-light { color: #E8F0F8; }
.nv-dark .nv-btn--ghost-light:hover { color: #fff; }
.nv-dark .nv-note { background: var(--nv-dark-surface); border-color: var(--nv-dark-border); color: var(--nv-dark-text-muted); }
.nv-dark .nv-breadcrumb a, .nv-dark .nv-breadcrumb li { color: var(--nv-dark-text-muted); }



/* --- Phase D QA fixes: contrast (axe color-contrast) --- */
/* ghost-light button on navy: white text/border -> navy-tinted for AA (D-23: lifted from v4.1 navy) */
.nv-btn--ghost-light { color: #E8F0F8; border-color: #A9BBCC; background: #2A3C50; }
.nv-btn--ghost-light:hover { background: #354960; color: #fff; }
/* external-link pill: navy text + stronger border on light bg */
.nv-tag-external { color: #1B2A3B; border-color: #8B99A9; }
/* dark direction: keep pill readable */
.nv-dark .nv-tag-external { color: #E8F0F8; border-color: #6B7C90; }
/* utility brand mark: navy instead of red on light surface */
.nv-utility span[aria-hidden="true"] { color: #1B2A3B !important; }

/* dark direction: utility brand mark on dark surface */
.nv-dark .nv-utility span[aria-hidden="true"] { color: #E8F0F8 !important; }

/* --- CORPORATE-HUB-02 additions --- */
.nv-hero__slogan { font-weight: 600; letter-spacing: 0.01em; color: var(--nv-cyan-dark); margin: 0 0 var(--nv-sp-3); }
.nv-card__q { font-style: normal; font-weight: 600; color: var(--nv-navy); margin: 0 0 var(--nv-sp-1); }
.nv-card__meta { font-size: 0.8125rem; color: var(--nv-muted); margin: auto 0 var(--nv-sp-1); }
.nv-tag-internal { display: inline-block; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; color: var(--nv-navy); background: var(--nv-surface-2); border: 1px solid #C9DCEC; border-radius: 999px; padding: 0.1em 0.55em; margin-left: 0.35em; vertical-align: middle; }
.nv-small--dark { color: #C9D6E4; }
.nv-small--dark a { color: var(--nv-dark-cyan); }
.nv-dark .nv-hero__slogan { color: var(--nv-dark-cyan); }
.nv-dark .nv-card__q { color: var(--nv-dark-text, #E8EEF4); }
.nv-dark .nv-card__meta { color: #B9C6D3; }
.nv-dark .nv-tag-internal { color: #DCE7F2; background: #24374B; border-color: #3A506B; }

/* Accessible print styles (Wave 1) */
@media print {
  .nv-header, .nv-footer, .nv-consent, .nv-cta-row .nv-btn, [data-copy-link], .nv-filterbar { display: none !important; }
  body { color: #000; background: #fff; font-size: 11pt; }
  .nv-section, .nv-hero { padding: 0.6em 0 !important; background: #fff !important; color: #000 !important; }
  .nv-card, .nv-note { border: 1px solid #999 !important; box-shadow: none !important; background: #fff !important; color: #000 !important; break-inside: avoid; }
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
  .nv-dark, .nv-dark * { background: #fff !important; color: #000 !important; }
}

.nv-filter-status { flex-basis: 100%; margin: var(--nv-sp-1) 0 0; font-size: 0.8125rem; color: var(--nv-muted); }
.nv-copylink { display: inline-flex; align-items: center; gap: 0.4em; font: inherit; font-size: 0.8125rem; font-weight: 600; color: var(--nv-cyan-dark); background: none; border: 1px solid #C9DCEC; border-radius: 999px; padding: 0.25em 0.8em; cursor: pointer; }
.nv-copylink:hover { background: var(--nv-surface-2); }
.nv-copylink:focus-visible { outline: 3px solid var(--nv-focus); outline-offset: 2px; }
.nv-checklist { list-style: none; padding-left: 0; }
.nv-checklist li { padding-left: 1.9em; position: relative; margin-bottom: 0.5em; }
.nv-checklist input[type="checkbox"] { position: absolute; left: 0; top: 0.2em; width: 1.05em; height: 1.05em; accent-color: var(--nv-cyan-dark); }
.nv-faq details { border-bottom: 1px solid var(--nv-border, #D8E0E8); padding: 0.6em 0; }
.nv-faq summary { font-weight: 600; cursor: pointer; color: var(--nv-navy); }
.nv-faq summary:focus-visible { outline: 3px solid var(--nv-focus); outline-offset: 2px; }
.nv-faq details p { margin: 0.5em 0 0.2em; }
.nv-dark .nv-copylink { color: var(--nv-dark-cyan); border-color: #3A506B; }
.nv-dark .nv-copylink:hover { background: #24374B; }
.nv-dark .nv-faq summary { color: var(--nv-dark-text, #E8EEF4); }
.nv-dark .nv-faq details { border-color: #2E4257; }

.nv-external-dark .nv-tag-external { color: #E8F0F8; border-color: #A9BBCC; }

/* --- Design refinement 2026-08-12 (design brief) --- */
.nv-hero__aux { margin: var(--nv-sp-2) 0 0; font-size: var(--nv-fs-small); }
.nv-section--offwhite { background: var(--nv-offwhite); }
.nv-feature__body > .nv-eyebrow { margin-bottom: var(--nv-sp-1); }
.nv-feature__cta { margin-top: var(--nv-sp-3); }
.nv-reach { list-style: none; padding-left: 0; max-width: var(--nv-maxw-text); }
.nv-reach li { padding: var(--nv-sp-1) 0; border-bottom: 1px solid var(--nv-border); margin: 0; }
.nv-platform h3 { margin-bottom: var(--nv-sp-1); }
h1 { letter-spacing: var(--nv-ls-head); }
h2 { letter-spacing: -0.01em; }
.nv-dark .nv-section--offwhite { background: var(--nv-dark-surface); }
.nv-dark .nv-reach li { border-color: var(--nv-dark-border); }

/* --- Footer refinement (continuation brief 2026-08-12; D-27: navy footer kept per strict brand compliance) --- */
.nv-footer { background: var(--nv-navy); color: #DCE3EB; }
/* Footer links (owner direction 2026-08-12): light grey, no permanent underline on navigation links; prose links keep underline (axe link-in-text-block) */
.nv-footer__grid .nv-footgroup a,
.nv-footer__legal a,
.nv-footer__top { color: #F4F6F8; text-decoration: none; text-underline-offset: .18em; }
.nv-footer__grid .nv-footgroup a:hover,
.nv-footer__legal a:hover,
.nv-footer__top:hover { color: #fff; text-decoration: underline; }
.nv-footer__grid .nv-footgroup a:visited,
.nv-footer__legal a:visited,
.nv-footer__top:visited { color: #F4F6F8; }
.nv-footer__utility a, .nv-footer__meta a, .nv-footer__brand p a { color: #F4F6F8; text-decoration: underline; text-underline-offset: .18em; }
.nv-footer__utility a:hover, .nv-footer__meta a:hover, .nv-footer__brand p a:hover { color: #fff; }
.nv-footer__utility a:visited, .nv-footer__meta a:visited, .nv-footer__brand p a:visited { color: #F4F6F8; }
.nv-footer a:focus-visible { outline: 3px solid var(--nv-cyan); outline-offset: 3px; }
.nv-footer__feedback { background: var(--nv-cyan); color: var(--nv-cyan-on); }
.nv-footer__feedback .nv-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-sp-2) var(--nv-sp-4); padding: var(--nv-sp-2) 0; }
.nv-footer__feedback-text { flex: 1 1 26rem; margin-right: auto; }
.nv-footer__feedback-actions { display: flex; flex-wrap: wrap; gap: var(--nv-sp-1); }
@media (max-width: 40em) { .nv-footer__feedback-actions { flex-direction: column; align-items: stretch; } .nv-footer__feedback-actions .nv-btn { text-align: center; } }
.nv-footer__feedback p { margin: 0; color: var(--nv-cyan-on); }
.nv-footer__feedback-title { font-weight: 700; }
.nv-footer__feedback-sub { font-size: .85rem; margin-top: .2em; max-width: 70ch; }
.nv-footer__feedback .nv-btn { padding: .5rem 1rem; font-size: .9rem; }
/* scoped overrides: .nv-footer a (cyan) must not recolour strip buttons — keeps AA on cyan surface (QA v5 fix) */
.nv-footer__feedback .nv-btn--primary { color: #fff; background: var(--nv-primary); border-color: var(--nv-primary); }
.nv-footer__feedback .nv-btn--primary:hover { color: #fff; background: var(--nv-primary-hover); border-color: var(--nv-primary-hover); }
.nv-footer__feedback .nv-btn--ghost-light { color: #E8F0F8; background: #1B2A3B; border-color: #1B2A3B; }
.nv-footer__feedback .nv-btn--ghost-light:hover { color: #fff; background: var(--nv-primary-hover); border-color: var(--nv-primary-hover); }
.nv-footer__utility { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-sp-2) var(--nv-sp-3); padding: var(--nv-sp-2) 0; border-top: 1px solid #2E4257; font-size: var(--nv-fs-small); }
.nv-footer__utility .nv-footer__top { margin-left: auto; }
.nv-footer__meta { border-top: 1px solid #2E4257; padding: var(--nv-sp-2) 0 var(--nv-sp-4); font-size: .78rem; color: #9FB0C2; }
.nv-footer__meta p { margin: .2em 0; }
.nv-footer__brand img { display: block; margin-bottom: var(--nv-sp-1); }
.nv-footer details.nv-footgroup { border: none; }
.nv-footer details.nv-footgroup summary { list-style: none; }
@media (min-width: 41em) {
  .nv-footer details.nv-footgroup summary { pointer-events: none; }
  .nv-footer details.nv-footgroup summary::after { display: none; }
  .nv-footer details.nv-footgroup:not([open]) ul { display: block; }
}
@media (max-width: 40em) {
  .nv-footer details.nv-footgroup summary { cursor: pointer; padding: .6em 0; display: flex; justify-content: space-between; align-items: center; }
  .nv-footer details.nv-footgroup summary::after { content: "+"; color: var(--nv-dark-cyan); font-weight: 700; }
  .nv-footer details.nv-footgroup[open] summary::after { content: "–"; }
}

/* --- Video hero --- */
.nv-hero-video { position: relative; background: var(--nv-navy-dark); color: #fff; overflow: hidden; }
.nv-hero-video__media { position: absolute; inset: 0; }
.nv-hero-video__media video { width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.nv-hero-video__inner { position: relative; padding: var(--nv-sp-7) 0; max-width: 40rem; }
.nv-hero-video h1 { color: #fff; }
.nv-hero-video .nv-lede { color: #D7E3EF; }
.nv-hero-video .nv-hero__slogan { color: var(--nv-dark-cyan); }
.nv-hero-video .nv-eyebrow { color: var(--nv-dark-cyan); }
.nv-hero-video__aux { color: #C9D6E4; }
.nv-hero-video__aux a { color: var(--nv-dark-cyan); }
/* reduced-motion hero video rule removed 2026-08-13 — hero is a static poster background for all users */
.nv-hero-figure { margin: 0; }
.nv-hero-figure video { width: 100%; height: auto; display: block; border-radius: var(--nv-radius-lg); }
.nv-hero-figure figcaption { font-size: var(--nv-fs-small); color: var(--nv-text-secondary); margin-top: .4em; }
.nv-dark .nv-hero-figure figcaption { color: #9FB0C2; } /* QA v5 fix: secondary token too dark on dark surface */

/* --- "I want to…" pathway selector --- */
.nv-pathways { display: flex; flex-wrap: wrap; gap: var(--nv-sp-1); align-items: center; }
.nv-pathways__label { font-weight: 700; color: var(--nv-navy); font-size: var(--nv-fs-body-lg); margin-right: var(--nv-sp-1); }
.nv-dark .nv-pathways__label { color: #DCE3EB; } /* QA v5 fix: navy label illegible on dark surface */
.nv-pathways a { display: inline-block; padding: .55em 1.1em; border: 1px solid var(--nv-border); border-radius: var(--nv-radius); text-decoration: none; color: var(--nv-navy); font-weight: 600; background: #fff; transition: var(--nv-trans-fast); }
.nv-pathways a:hover { border-color: var(--nv-cyan); color: var(--nv-action); }
.nv-pathways a:focus-visible { outline: 3px solid var(--nv-focus); outline-offset: 2px; }

/* --- Purpose statement --- */
.nv-statement { font-size: clamp(1.6rem, 3.2vw, 2.6rem); line-height: 1.3; letter-spacing: -0.01em; color: var(--nv-navy); font-weight: 700; max-width: 56rem; }

/* --- Service panels with logos --- */
.nv-svc { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--nv-sp-3); }
@media (max-width: 48em) { .nv-svc { grid-template-columns: 1fr; } }
.nv-svc article { display: flex; gap: var(--nv-sp-2); border-top: 3px solid var(--nv-cyan); padding-top: var(--nv-sp-2); }
.nv-svc img { flex: 0 0 auto; align-self: flex-start; } /* prevent flex-stretch distorting logo */
.nv-svc h3 { margin: 0 0 .3em; }

/* --- Contact band --- */
.nv-band { background: var(--nv-navy); color: #fff; }
.nv-band h2 { color: #fff; }
.nv-band .nv-cta-row { margin-top: var(--nv-sp-3); }

/* --- Featured insight --- */
.nv-insight-featured { border-left: 4px solid var(--nv-cyan); padding-left: var(--nv-sp-2); }

.nv-brand { display: inline-flex; align-items: center; }
.nv-brand img { display: block; }
.nv-header__bar { gap: var(--nv-sp-4); padding: var(--nv-sp-2) 0; }
.nv-utility { font-size: var(--nv-fs-label); }

.nv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nv-visually-compact { font-size: var(--nv-fs-h3); color: var(--nv-text-secondary); font-weight: 600; }

.nv-footer__printbtn { background: none; border: none; color: var(--nv-dark-cyan); font: inherit; font-size: var(--nv-fs-small); cursor: pointer; padding: 0; text-decoration: none; }
.nv-footer__printbtn:hover { color: #fff; }
.nv-footer__printbtn:focus-visible { outline: 3px solid var(--nv-dark-cyan); outline-offset: 2px; }
.nv-footer .nv-verify-tag { color: #F0C987; border-color: #8A6D2F; background: transparent; } /* gold on navy 8.4:1 (QA v5 fix: light warning bg removed) */

/* --- Owner design corrections 2026-08-12 (round 2) --- */
/* hero: brand wordmark + slogan over video; copy shifted below (item 5) */
.nv-hero-video__inner { text-align: center; }
.nv-hero-video__brand { color: #fff; font-size: clamp(3rem, 9vw, 6.5rem); line-height: 1.05; margin: 0 0 var(--nv-sp-1); letter-spacing: .01em; }
.nv-hero-video .nv-hero__slogan { margin: 0; font-size: clamp(1.05rem, 2.2vw, 1.5rem); color: #DCE3EB; }
/* registered mark reduced 30% (item 6) */
.nv-hero-video__brand .nv-reg, .nv-hero-video__brand sup.nv-reg { display: inline-block; font-size: .5em; line-height: 0; vertical-align: super; margin-left: .02em; letter-spacing: 0; } /* owner 2026-08-13: 50% of wordmark */ /* scoped to hero wordmark only — body-copy ® untouched */
/* intro section under the video (shifted hero copy) */
.nv-intro h2 { font-size: var(--nv-fs-h1, clamp(2.2rem, 4.5vw, 3.4rem)); letter-spacing: var(--nv-ls-head); margin: 0 0 var(--nv-sp-1); }
.nv-intro .nv-lede { max-width: 62ch; }
/* accurate logo aspect ratios (item 3): width attrs set presentational width, height derives from intrinsic ratio */
.nv-brand img, .nv-footer__brand img, .nv-svc img, .nv-platform img, .nv-academy-logo, .nv-hero-figure img { height: auto; }
/* platform tile titles on one line (item 4) */
.nv-platform h3 { white-space: nowrap; font-size: clamp(1.02rem, 1.15vw, 1.18rem); letter-spacing: -0.01em; }
@media (max-width: 34rem) { .nv-platform h3 { white-space: normal; } }

/* --- Owner design corrections round 6 (2026-08-13) --- */
/* hero: background video reinstated as per previous versions (poster attr + navy fallback); static-poster background rules removed */
.nv-hero-video { position: relative; }
.nv-hero-video__media video { display: block; }
/* hero height +35%: inner vertical padding 6rem -> 8.1rem (35% increase) */
/* hero height +35% then +30% on container (owner annotations 2026-08-13): 6rem -> 8.1rem -> 10.53rem */
.nv-hero-video__inner { position: relative; padding: 10.53rem 0; }
/* ® as <sup> site-wide (owner 2026-08-13) */
sup { font-size: .72em; line-height: 0; }
/* footer brand block: logo +50%, slogan under logo */
.nv-footer__brand img { width: 96px; margin-bottom: .35rem; }
/* utility row wrap fix retained */

/* --- Footer remediation (2026-08-13, six-layer architecture) --- */
.nv-footer__feedback-sub { color: #0B2239; }
.nv-footer__entities { line-height: 1.5; }
.nv-footer__contact { max-width: 34ch; }
.nv-footer .nv-tag-external { display: none; } /* pill removed per owner remediation — external platforms identified by ↗ + sr-only text */
/* utility row: three groups */
.nv-footer__utility { gap: var(--nv-sp-2) var(--nv-sp-4); }
.nv-footer__lang { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.nv-footer__lang label { font-weight: 600; color: #F4F6F8; }
.nv-footer__lang select { font: inherit; background: #14202C; color: #F4F6F8; border: 1px solid #4A5B6E; border-radius: var(--nv-radius); padding: .4em .6em; min-height: 40px; }
.nv-footer__lang select:focus-visible { outline: 3px solid var(--nv-cyan); outline-offset: 2px; }
.nv-footer__langnote { font-size: .8rem; color: #9FB0C2; }
.nv-footer__tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-sp-2); }
/* metadata lines */
.nv-footer__meta p { max-width: 95ch; }
.nv-footer__staging { color: #F0C987; font-size: .75rem; letter-spacing: .02em; }
/* assurance bar */
.nv-footer__assurance { border-top: 1px solid #2E4257; background: #16222F; padding: var(--nv-sp-2) 0; }
.nv-footer__assurance .nv-wrap { display: flex; flex-wrap: wrap; gap: .4em 1.6em; font-size: .78rem; color: #9FB0C2; }
.nv-footer__assurance span { white-space: nowrap; }
/* identity column slightly wider; tighter rhythm */
.nv-footer__grid { align-items: start; }
.nv-footer__grid .nv-footgroup ul { line-height: 1.65; }

/* --- Footer social row (2026-08-13, icon-only controls; no nav underline treatment) --- */
.nv-footer__social { margin-top: var(--nv-sp-2); }
.nv-footer__social-list { display: flex; flex-wrap: nowrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.nv-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 1.65rem; height: 1.65rem; color: #F4F6F8; background: rgba(255,255,255,.08); border: 1px solid rgba(244,246,248,.2); border-radius: 50%; text-decoration: none; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.nv-footer__social a:hover { color: #1B2A3B; background: var(--nv-cyan); border-color: var(--nv-cyan); text-decoration: none; }
.nv-footer__social a:focus-visible { outline: 3px solid var(--nv-cyan); outline-offset: 3px; }
.nv-footer__social svg { width: .75rem; height: .75rem; fill: currentColor; }
/* scope guard: social icons are exempt from the grid nav-link rule, but pin colour explicitly */
.nv-footer__grid .nv-footer__social a { color: #F4F6F8; text-decoration: none; }
.nv-footer__grid .nv-footer__social a:visited { color: #F4F6F8; }
.nv-footer__grid .nv-footer__social a:hover { color: #1B2A3B; }

/* --- Overlapping header logo (2026-08-13, owner correction: restrained overlap treatment) --- */
.nv-header { overflow: visible; }
.nv-brand { position: relative; z-index: 110; transform: translateY(24%); margin-bottom: -1.25rem; }
.nv-brand img { display: block; width: clamp(4rem, 5.5vw, 5.25rem); height: auto; max-width: none; object-fit: contain; filter: drop-shadow(0 4px 8px rgba(27,42,59,.18)); }
/* keep hero/page-hero content clear of the overlapping mark */
.nv-hero-video, .nv-page-hero, .nv-hero { position: relative; z-index: 1; }
.nv-hero .nv-wrap, .nv-page-hero .nv-wrap { padding-top: 1.25rem; }
/* breadcrumb sits directly above hero on inner pages: 24px clearance for WCAG 2.5.8 target spacing */
.nv-breadcrumb { padding-bottom: 24px; padding-top: 1.75rem; }
@media (max-width: 52em) {
  .nv-brand img { width: 3.5rem; }
  .nv-brand { transform: translateY(24%); margin-bottom: -1.25rem; }
}

/* mobile utility row (owner annotation 2026-08-13): full-width stacked tools, no crowding */
@media (max-width: 40em) {
  .nv-footer__utility { flex-direction: column; align-items: flex-start; gap: var(--nv-sp-2); }
  .nv-footer__tools { display: flex; flex-wrap: wrap; gap: .5rem 1rem; width: 100%; padding-top: .5rem; border-top: 1px solid #2E4257; }
  .nv-footer__utility .nv-footer__top { margin-left: 0; }
  .nv-footer__tools a, .nv-footer__printbtn { min-height: 24px; }
}

/* NOVARIC® registered-mark typography — 2026-08-18 */
.novaric-brand {
  display: inline;
  white-space: nowrap;
}
.novaric-registered {
  font-size: 45%;
  vertical-align: super;
  margin-left: 0.04em;
  line-height: 0;
  font-weight: inherit;
}
/* NOVARIC® Europe Governance & Knowledge Hub — Scoped CSS
   Scope: .nv-eu-governance | Tokens: design-tokens.css
   WCAG 2.2 AA compliant | Restored: 2026-08-18 */

/* ============================================================
   RESET / BASE
   ============================================================ */
.nv-eu-governance *,
.nv-eu-governance *::before,
.nv-eu-governance *::after { box-sizing: border-box; }

.nv-eu-governance {
  color: var(--nv-text, #1E2732);
  font-size: var(--nv-fs-body, 1rem);
  line-height: 1.6;
  background: var(--nv-bg, #FFFFFF);
  overflow-x: hidden;
}

.nv-eu-governance :focus-visible {
  outline: 3px solid var(--nv-focus, #0072A9);
  outline-offset: 2px;
  border-radius: var(--nv-radius, 4px);
}

/* ============================================================
   HERO
   ============================================================ */
.nv-eu-governance__hero {
  background: var(--nv-navy, #1B2A3B);
  color: #FFFFFF;
  padding: var(--nv-sp-4, 4rem) var(--nv-sp-2, 1.5rem);
  text-align: center;
}
.nv-eu-governance__hero h1 {
  font-size: var(--nv-fs-h1, clamp(2.2rem, 4.5vw, 3.4rem));
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 var(--nv-sp-1, 0.75rem);
  line-height: 1.15;
}
.nv-eu-governance__hero p {
  font-size: var(--nv-fs-body, 1rem);
  color: rgba(255,255,255,.85);
  max-width: 680px;
  margin: 0 auto var(--nv-sp-2, 1.5rem);
}
.nv-eu-governance__hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: var(--nv-sp-2, 1.5rem);
}

/* ============================================================
   INNER WRAPPER
   ============================================================ */
.nv-eu-governance__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--nv-sp-3, 2.5rem) var(--nv-sp-2, 1.5rem);
}

/* ============================================================
   SCOPE NOTICE
   ============================================================ */
.nv-eu-governance__scope {
  border: 1px solid var(--nv-border, #D9DFE7);
  border-left: 4px solid var(--nv-cyan, #009AE4);
  background: var(--nv-surface-2, #F0F7FD);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-1, 0.75rem) var(--nv-sp-2, 1.5rem);
  margin-bottom: var(--nv-sp-2, 1.5rem);
  font-size: var(--nv-fs-small, 0.85rem);
  color: var(--nv-text-muted, #4D5A6B);
}

/* ============================================================
   SECTION TITLES
   ============================================================ */
.nv-eu-governance__section-title {
  font-size: var(--nv-fs-h3, clamp(1.15rem, 1.8vw, 1.35rem));
  font-weight: 600;
  color: var(--nv-text, #1E2732);
  margin: var(--nv-sp-2, 1.5rem) 0 var(--nv-sp-1, 0.75rem);
}

/* ============================================================
   OWNERSHIP PARAGRAPH
   ============================================================ */
.nv-eu-governance__ownership {
  font-size: var(--nv-fs-small, 0.85rem);
  color: var(--nv-text-muted, #4D5A6B);
  border-top: 1px solid var(--nv-border, #D9DFE7);
  padding-top: var(--nv-sp-2, 1.5rem);
  margin-top: var(--nv-sp-3, 2.5rem);
}

/* ============================================================
   AUDIENCE BUTTONS
   ============================================================ */
.nv-eu-governance__audiences {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: var(--nv-sp-2, 1.5rem);
}
.nv-eu-governance__aud-btn {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.35rem 1rem;
  background: var(--nv-surface, #F4F6F8);
  color: var(--nv-text, #1E2732);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: 999px;
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  text-decoration: none;
  white-space: nowrap;
}
.nv-eu-governance__aud-btn:hover {
  background: var(--nv-surface-2, #F0F7FD);
  border-color: var(--nv-action, #0072A9);
  color: var(--nv-action, #0072A9);
}

/* ============================================================
   CATEGORY BUTTONS
   ============================================================ */
.nv-eu-governance__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: var(--nv-sp-2, 1.5rem);
}
.nv-eu-governance__cat-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 36px;
  padding: 0.35rem 0.9rem;
  background: var(--nv-surface, #F4F6F8);
  color: var(--nv-text, #1E2732);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap;
}
.nv-eu-governance__cat-btn:hover {
  background: var(--nv-surface-2, #F0F7FD);
  border-color: var(--nv-action, #0072A9);
  color: var(--nv-action, #0072A9);
}
.nv-eu-governance__cat-btn[aria-pressed="true"] {
  background: var(--nv-action, #0072A9);
  border-color: var(--nv-action, #0072A9);
  color: #FFFFFF;
}
.nv-eu-governance__cat-btn[aria-pressed="true"]:hover {
  background: var(--nv-action-hover, #005E8C);
  border-color: var(--nv-action-hover, #005E8C);
}
.nv-eu-governance__cat-count {
  font-size: var(--nv-fs-small, 0.85rem);
  opacity: 0.75;
}

/* ============================================================
   SEARCH / FILTER CONTROLS
   ============================================================ */
.nv-eu-governance__controls {
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-1, 0.75rem) var(--nv-sp-2, 1.5rem);
  margin-bottom: var(--nv-sp-2, 1.5rem);
}
.nv-eu-governance__search-row {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: var(--nv-sp-1, 0.75rem);
}
.nv-eu-governance__search-row input[type="search"],
.nv-eu-governance__search-row input[type="text"] {
  width: 100%;
  max-width: 480px;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  font-size: var(--nv-fs-body, 1rem);
  color: var(--nv-text, #1E2732);
  background: #FFFFFF;
  min-height: 44px;
}
.nv-eu-governance__search-row input:focus {
  border-color: var(--nv-focus, #0072A9);
  outline: 3px solid var(--nv-focus, #0072A9);
  outline-offset: 2px;
}
.nv-eu-governance__label {
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 600;
  color: var(--nv-text, #1E2732);
  display: block;
  margin-bottom: 0.25rem;
}
.nv-eu-governance__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}
.nv-eu-governance__filters > div { display: flex; flex-direction: column; gap: 0.25rem; }
.nv-eu-governance__filters select {
  padding: 0.45rem 2rem 0.45rem 0.75rem;
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  font-size: var(--nv-fs-label, 0.875rem);
  color: var(--nv-text, #1E2732);
  background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234D5A6B'/%3E%3C/svg%3E") no-repeat right 0.6rem center;
  -webkit-appearance: none;
  appearance: none;
  min-height: 36px;
  cursor: pointer;
}
.nv-eu-governance__filters select:focus {
  border-color: var(--nv-focus, #0072A9);
  outline: 3px solid var(--nv-focus, #0072A9);
  outline-offset: 2px;
}
.nv-eu-governance__filter-summary {
  font-size: var(--nv-fs-small, 0.85rem);
  color: var(--nv-text-muted, #4D5A6B);
  margin-top: var(--nv-sp-1, 0.75rem);
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.nv-eu-governance__clear {
  background: none;
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  color: var(--nv-action, #0072A9);
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 500;
  padding: 0.25rem 0.75rem;
  cursor: pointer;
  min-height: 32px;
  transition: background 0.15s, border-color 0.15s;
}
.nv-eu-governance__clear:hover {
  background: var(--nv-surface-2, #F0F7FD);
  border-color: var(--nv-action, #0072A9);
}

/* ============================================================
   NO-JS FALLBACK TABLE
   ============================================================ */
.nv-eu-governance__table-wrap {
  overflow-x: auto;
  margin-bottom: var(--nv-sp-2, 1.5rem);
}
.nv-eu-governance__table-fallback {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--nv-fs-label, 0.875rem);
}
.nv-eu-governance__table-fallback th,
.nv-eu-governance__table-fallback td {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--nv-border, #D9DFE7);
  text-align: left;
  vertical-align: top;
}
.nv-eu-governance__table-fallback th {
  background: var(--nv-surface, #F4F6F8);
  font-weight: 600;
  color: var(--nv-text, #1E2732);
}
.nv-eu-governance__table-fallback tr:nth-child(even) td {
  background: var(--nv-surface-2, #F0F7FD);
}

/* ============================================================
   TWO-PANEL EXPLORER
   ============================================================ */
.nv-eu-governance__explorer {
  display: flex;
  gap: 0;
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  overflow: hidden;
  min-height: 520px;
  margin-bottom: var(--nv-sp-3, 2.5rem);
}

/* LIST PANEL */
.nv-eu-governance__list {
  width: 300px;
  min-width: 260px;
  max-width: 340px;
  flex-shrink: 0;
  background: var(--nv-surface, #F4F6F8);
  border-right: 1px solid var(--nv-border, #D9DFE7);
  overflow-y: auto;
  max-height: 680px;
}
.nv-eu-governance__doc-item {
  padding: 0.75rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid var(--nv-border, #D9DFE7);
  transition: background 0.12s;
  outline: none;
}
.nv-eu-governance__doc-item:hover {
  background: var(--nv-surface-2, #F0F7FD);
}
.nv-eu-governance__doc-item:focus-visible {
  outline: 3px solid var(--nv-focus, #0072A9);
  outline-offset: -3px;
}
.nv-eu-governance__doc-item.gov-selected {
  background: var(--nv-navy, #1B2A3B);
  border-left: 4px solid var(--nv-cyan, #009AE4);
  color: #FFFFFF;
}
.nv-eu-governance__doc-item.gov-selected .nv-eu-governance__doc-title { color: #FFFFFF; }
.nv-eu-governance__doc-item.gov-selected .nv-eu-governance__doc-meta { color: rgba(255,255,255,.7); }
.nv-eu-governance__doc-title {
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 600;
  color: var(--nv-text, #1E2732);
  line-height: 1.35;
  margin-bottom: 0.25rem;
}
.nv-eu-governance__doc-meta {
  font-size: 0.78rem;
  color: var(--nv-text-muted, #4D5A6B);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.nv-eu-governance__no-results {
  padding: 1.5rem 1rem;
  font-size: var(--nv-fs-small, 0.85rem);
  color: var(--nv-text-muted, #4D5A6B);
  text-align: center;
}

/* DETAIL PANEL */
.nv-eu-governance__detail {
  flex: 1 1 0;
  background: #FFFFFF;
  padding: var(--nv-sp-2, 1.5rem);
  overflow-y: auto;
  max-height: 680px;
}
.nv-eu-governance__detail-empty {
  color: var(--nv-text-muted, #4D5A6B);
  font-size: var(--nv-fs-small, 0.85rem);
  padding: var(--nv-sp-2, 1.5rem) 0;
  text-align: center;
}
.nv-eu-governance__back-link {
  display: none;
  font-size: var(--nv-fs-label, 0.875rem);
  color: var(--nv-action, #0072A9);
  text-decoration: none;
  margin-bottom: var(--nv-sp-1, 0.75rem);
  padding: 0.25rem 0;
}
.nv-eu-governance__back-link:hover { text-decoration: underline; }
.nv-eu-governance__detail-title {
  font-size: var(--nv-fs-h2, clamp(1.6rem, 3vw, 2.2rem));
  font-weight: 700;
  color: var(--nv-text, #1E2732);
  margin: 0 0 var(--nv-sp-1, 0.75rem);
  line-height: 1.2;
}
.nv-eu-governance__detail-summary {
  font-size: var(--nv-fs-body, 1rem);
  color: var(--nv-text, #1E2732);
  margin: var(--nv-sp-1, 0.75rem) 0;
  max-width: 70ch;
  line-height: 1.65;
}
.nv-eu-governance__doc-action {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.6rem 1.4rem;
  background: var(--nv-navy, #1B2A3B);
  color: #FFFFFF;
  border-radius: var(--nv-radius, 4px);
  font-size: var(--nv-fs-body, 1rem);
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  margin: var(--nv-sp-1, 0.75rem) 0;
}
.nv-eu-governance__doc-action:hover { background: var(--nv-primary-hover, #14202C); }
.nv-eu-governance__cross-domain {
  font-size: var(--nv-fs-small, 0.85rem);
  color: #92400E;
  background: #FEF3C7;
  border: 1px solid #F59E0B;
  border-radius: var(--nv-radius, 4px);
  padding: 0.5rem 0.75rem;
  margin: var(--nv-sp-1, 0.75rem) 0;
}
.nv-eu-governance__meta-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--nv-fs-small, 0.85rem);
  margin: var(--nv-sp-2, 1.5rem) 0;
}
.nv-eu-governance__meta-table th,
.nv-eu-governance__meta-table td {
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--nv-border, #D9DFE7);
  text-align: left;
  vertical-align: top;
}
.nv-eu-governance__meta-table th {
  background: var(--nv-surface, #F4F6F8);
  font-weight: 600;
  color: var(--nv-text-muted, #4D5A6B);
  width: 36%;
}
.nv-eu-governance__related {
  margin-top: var(--nv-sp-2, 1.5rem);
  padding-top: var(--nv-sp-1, 0.75rem);
  border-top: 1px solid var(--nv-border, #D9DFE7);
}
.nv-eu-governance__related-label {
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 600;
  color: var(--nv-text, #1E2732);
  margin: 0 0 0.5rem;
}
.nv-eu-governance__related-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.nv-eu-governance__related-links a {
  font-size: var(--nv-fs-label, 0.875rem);
  color: var(--nv-action, #0072A9);
  text-decoration: none;
}
.nv-eu-governance__related-links a:hover { text-decoration: underline; }

/* ============================================================
   MOBILE CARD GRID
   ============================================================ */
.nv-eu-governance__cards { display: none; }
.nv-gov-card {
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-1, 0.75rem) var(--nv-sp-2, 1.5rem);
  background: #FFFFFF;
  margin-bottom: var(--nv-sp-1, 0.75rem);
}
.nv-gov-card__title {
  font-size: var(--nv-fs-body, 1rem);
  font-weight: 600;
  color: var(--nv-text, #1E2732);
  margin-bottom: 0.35rem;
}
.nv-gov-card__meta {
  font-size: 0.78rem;
  color: var(--nv-text-muted, #4D5A6B);
  margin-bottom: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.nv-gov-card__summary {
  font-size: var(--nv-fs-small, 0.85rem);
  color: var(--nv-text, #1E2732);
  margin-bottom: var(--nv-sp-1, 0.75rem);
  line-height: 1.55;
}
.nv-gov-card__action {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.35rem 1rem;
  background: var(--nv-surface, #F4F6F8);
  color: var(--nv-action, #0072A9);
  border: 1px solid var(--nv-action, #0072A9);
  border-radius: var(--nv-radius, 4px);
  font-size: var(--nv-fs-label, 0.875rem);
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s;
}
.nv-gov-card__action:hover {
  background: var(--nv-surface-2, #F0F7FD);
}

/* ============================================================
   STATUS PILLS & CATEGORY TAGS
   ============================================================ */
.nv-gov-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.nv-gov-pill--current  { background: #D1FAE5; color: #065F46; }
.nv-gov-pill--review   { background: #FEF3C7; color: #92400E; }
.nv-gov-pill--archived { background: #F3F4F6; color: #374151; }
.nv-gov-pill--local    { background: #DBEAFE; color: #1E40AF; }
.nv-gov-cat {
  font-size: 0.78rem;
  color: var(--nv-text-muted, #4D5A6B);
  font-style: italic;
}

/* ============================================================
   REPORTING ROUTES
   ============================================================ */
.nv-eu-governance__reporting {
  background: var(--nv-navy, #1B2A3B);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-2, 1.5rem);
  margin: var(--nv-sp-3, 2.5rem) 0;
  color: #FFFFFF;
}
.nv-eu-governance__reporting h2,
.nv-eu-governance__reporting h3 {
  color: #FFFFFF;
}
.nv-eu-governance__routes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--nv-sp-1, 0.75rem);
  margin-top: var(--nv-sp-1, 0.75rem);
}
.nv-eu-governance__route {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-1, 0.75rem);
}
.nv-eu-governance__route h4,
.nv-eu-governance__route strong { color: var(--nv-cyan, #009AE4); font-size: var(--nv-fs-label, 0.875rem); }
.nv-eu-governance__route p,
.nv-eu-governance__route a { font-size: var(--nv-fs-small, 0.85rem); color: rgba(255,255,255,.85); }
.nv-eu-governance__route a:hover { color: #FFFFFF; }

/* ============================================================
   STATUS LEGEND
   ============================================================ */
.nv-eu-governance__legend {
  background: var(--nv-surface, #F4F6F8);
  border: 1px solid var(--nv-border, #D9DFE7);
  border-radius: var(--nv-radius, 4px);
  padding: var(--nv-sp-1, 0.75rem) var(--nv-sp-2, 1.5rem);
  font-size: var(--nv-fs-small, 0.85rem);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  align-items: center;
  margin: var(--nv-sp-2, 1.5rem) 0;
}

/* ============================================================
   RESPONSIVE — MOBILE
   ============================================================ */
@media (max-width: 52em) {
  /* Switch to card grid; hide two-panel explorer */
  .nv-eu-governance__explorer { display: none; }
  .nv-eu-governance__cards { display: block; }

  .nv-eu-governance__back-link { display: block; }

  .nv-eu-governance__filters { flex-direction: column; gap: 0.5rem; }
  .nv-eu-governance__filters select { width: 100%; }

  .nv-eu-governance__routes { grid-template-columns: 1fr; }

  .nv-eu-governance__legend { flex-direction: column; gap: 0.4rem; }
}

/* ============================================================
   PRINT
   ============================================================ */
@media print {
  .nv-eu-governance__controls,
  .nv-eu-governance__cats,
  .nv-eu-governance__audiences,
  .nv-eu-governance__explorer,
  .nv-eu-governance__reporting,
  .nv-eu-governance__clear { display: none !important; }

  .nv-eu-governance__cards { display: block !important; }
  .nv-gov-card__action { display: none; }
  .nv-gov-card { border: none; padding: 0.25rem 0; page-break-inside: avoid; }
  .nv-gov-card__title { font-weight: bold; }
}
