/* ==========================================================================
   NEXIRA: Governance & Regulatory Assurance page only (Stage 06A).
   Stage 06B refinement; approved and locked at Stage 07A (13 sections). Loaded after nexira.css and service-detail.css by
   governance-regulatory-assurance.html. Never loaded elsewhere.
   All classes prefixed "gv-". Does not affect any other page.
   Visual intent: controlled, calm, precise. Ledgers and fine rules rather
   than photography or process diagrams; no arrows.
   ========================================================================== */

/* ---------- 01 HERO: copy + typographic oversight panel ---------------- */
.gv-hero .sd-crumbs { margin-bottom: var(--s-7); }
.gv-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 1rem + 4vw, 5.5rem); align-items: center; }
.gv-hero h1 { max-width: 16ch; }
.gv-panel { position: relative; padding: var(--s-7) var(--s-6) var(--s-6); background: var(--ink-2); border: 1px solid var(--line-dark-2); border-top: 2px solid var(--gold); }
.gv-panel__k { margin: 0 0 var(--s-5); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-soft); }
.gv-panel__list { list-style: none; margin: 0; padding: 0; }
.gv-panel__list li { padding: var(--s-4) 0; border-top: 1px solid var(--line-dark-2); font-family: var(--serif); font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.45rem); line-height: 1.3; color: var(--on-dark); }
.gv-panel__list li:first-child { border-top: 0; padding-top: 0; }
.gv-panel__f { margin: var(--s-4) 0 0; padding-top: var(--s-4); border-top: 1px solid var(--line-dark-2); font-family: var(--serif); font-style: italic; font-size: 1rem; color: var(--gold-soft); }

/* ---------- 02 GOVERNANCE GAP + activity/assurance ledger -------------- */
.gv-gap { background: var(--paper); padding-block: var(--section-y); }
.gv-gap__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-5) clamp(2rem, 1rem + 4vw, 5rem); align-items: start; margin-bottom: var(--s-8); }
.gv-gap h2 { margin: 0; font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); }
.gv-gap__body p { margin: 0 0 var(--s-4); color: var(--text-muted); font-size: var(--fs-md); line-height: 1.65; max-width: 40rem; }
.gv-gap__body p:last-child { margin-bottom: 0; }
.gv-ledger { border-top: 2px solid var(--ink); }
.gv-ledger__head, .gv-ledger__row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-6); }
.gv-ledger__head { padding: var(--s-3) 0; border-bottom: 1px solid var(--line-strong); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); }
.gv-ledger__head span:last-child { color: var(--gold-text); }
.gv-ledger__row { padding: var(--s-4) 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.gv-ledger__row span:first-child { font-size: 1rem; color: var(--text-muted); }
.gv-ledger__row span:last-child { font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.45vw, 1.35rem); line-height: 1.35; color: var(--ink); }
.gv-gap__close { margin: var(--s-7) 0 0; font-family: var(--serif); font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.9rem); line-height: 1.3; color: var(--ink); max-width: 44rem; }
.gv-gap__close em { color: var(--gold-text); }

/* ---------- 03 ROUTES TO LEADERSHIP: three-column ledger --------------- */
.gv-routes { background: var(--ivory); padding-block: var(--section-y); }
.gv-src { border-top: 2px solid var(--ink); }
.gv-src__head, .gv-src__row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 4fr); gap: var(--s-6); }
.gv-src__head { padding: var(--s-3) 0; border-bottom: 1px solid var(--line-strong); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); }
.gv-src__row { padding: var(--s-5) 0; border-bottom: 1px solid var(--line-strong); font-size: 0.97rem; line-height: 1.55; color: var(--text-muted); }
.gv-src__row .gv-src__k { font-family: var(--serif); font-size: 1.3rem; line-height: 1.2; color: var(--ink); }
.gv-src__row span:last-child { color: var(--ink); font-style: italic; }
.gv-tri { margin-top: var(--s-7); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-4) clamp(2rem, 1rem + 4vw, 5rem); padding-top: var(--s-6); border-top: 1px solid var(--gold); }
.gv-tri__k { margin: 0; font-family: var(--serif); font-size: clamp(1.4rem, 1.15rem + 0.9vw, 2rem); line-height: 1.2; color: var(--gold-text); }
.gv-tri__p { margin: 0; color: var(--text-muted); font-size: var(--fs-md); line-height: 1.6; max-width: 40rem; }

/* ---------- 04 SCOPE + what Nexira does + outputs ---------------------- */
.gv-scope { background: var(--paper); padding-block: var(--section-y); }
.gv-scope__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.gv-scope__lead { position: sticky; top: calc(var(--header-h) + 2rem); }
.gv-scope__lead h2 { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); }
.gv-scope__p { margin: 0; color: var(--text-muted); font-size: var(--fs-md); line-height: 1.6; }
.gv-work { margin-top: var(--s-9); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.gv-work__item { padding: var(--s-5) var(--s-5) var(--s-5) 0; }
.gv-work__item + .gv-work__item { padding-left: var(--s-5); border-left: 1px solid var(--line-strong); }
.gv-work__v { margin: 0 0 var(--s-2); font-family: var(--serif); font-size: 1.7rem; line-height: 1.1; color: var(--ink); }
.gv-work__item p:last-child { margin: 0; color: var(--text-muted); font-size: 0.95rem; line-height: 1.55; }
.gv-receive { margin-top: var(--s-7); padding: var(--s-6); background: var(--ivory); }
.gv-receive .sd-dots--two { margin-bottom: 0; }

/* ---------- 05 AUDITS, MEETINGS AND MEASURES (dark) -------------------- */
.gv-tools { background: var(--ink); color: var(--on-dark); padding-block: var(--section-y); }
.gv-tools .sd-head__lede { color: var(--on-dark-muted); }
.gv-tools__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6); }
.gv-tool { padding: var(--s-6); border: 1px solid var(--line-dark-2); border-top: 2px solid var(--gold); background: var(--ink-2); }
.gv-tool__h { margin: 0 0 var(--s-2); font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.75rem); color: var(--on-dark); }
.gv-tool__l { margin: 0 0 var(--s-3); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-soft); }
.gv-tool__list { list-style: none; margin: 0; padding: 0; }
.gv-tool__list li { padding: 0.7rem 0; border-top: 1px solid var(--line-dark); color: var(--on-dark); line-height: 1.45; }
.gv-tool__list li:first-child { border-top: 0; }
.gv-tools__note { margin: var(--s-7) 0 0; padding-top: var(--s-5); border-top: 1px solid var(--line-dark-2); max-width: 52rem; font-family: var(--serif); font-size: 1.2rem; line-height: 1.5; color: var(--on-dark); }

/* ---------- 06 RISK ---------------------------------------------------- */
.gv-risk { background: var(--ivory); padding-block: var(--section-y); }
.gv-risk__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-6) clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.gv-risk h2 { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); }
.gv-risk__p { margin: 0; color: var(--text-muted); font-size: var(--fs-md); line-height: 1.65; }
.gv-risk__body { padding-top: var(--s-2); }
.gv-qs { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); }
.gv-qs li { padding: var(--s-4) 0; border-bottom: 1px solid var(--line-strong); font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.45vw, 1.35rem); line-height: 1.35; color: var(--ink); }

/* ---------- 07 VERIFICATION + principle -------------------------------- */
.gv-verify { background: var(--paper); padding-block: var(--section-y); }
.gv-principle { background: var(--ink); color: var(--on-dark); padding: var(--s-7); }
.gv-principle__line { margin: 0 0 var(--s-6); font-family: var(--serif); font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.6rem); line-height: 1.2; }
.gv-principle__line .nw { white-space: nowrap; }
.gv-principle__line b { color: var(--gold); font-weight: 300; font-family: var(--sans); margin: 0 0.2em; }
.gv-principle__line em { color: var(--gold-soft); }
.gv-defs { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-dark-2); }
.gv-defs > div { padding: var(--s-5) var(--s-5) 0 0; }
.gv-defs > div + div { padding-left: var(--s-5); border-left: 1px solid var(--line-dark); }
.gv-defs dt { margin: 0 0 var(--s-2); font-family: var(--serif); font-size: 1.3rem; color: var(--gold-soft); }
.gv-defs dd { margin: 0; font-size: 0.93rem; line-height: 1.55; color: var(--on-dark-muted); }

/* ---------- 08 SUSTAINED ASSURANCE: two-way flow + continued monitoring */
.gv-sustain { background: var(--ivory); padding-block: var(--section-y); }
.gv-flow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.gv-flow__col { padding: var(--s-6) var(--s-6) var(--s-5) 0; }
.gv-flow__col + .gv-flow__col { padding: var(--s-6) 0 var(--s-5) var(--s-6); border-left: 1px solid var(--line-strong); }
.gv-flow__h { margin: 0 0 var(--s-1); font-size: clamp(1.45rem, 1.2rem + 0.7vw, 1.85rem); }
.gv-flow__l { margin: 0 0 var(--s-4); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-text); }
.gv-flow__list { list-style: none; margin: 0; padding: 0; }
.gv-flow__list li { position: relative; padding: 0.65rem 0 0.65rem 1.35rem; border-top: 1px solid var(--line); line-height: 1.45; color: var(--ink); }
.gv-flow__list li::before { content: ""; position: absolute; left: 0.1rem; top: calc(0.65rem + 0.55em); width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.gv-keep { margin-top: var(--s-8); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-5) clamp(2rem, 1rem + 4vw, 5rem); align-items: start; padding: var(--s-7); background: var(--paper); border-top: 2px solid var(--gold); }
.gv-keep__h { margin: 0 0 var(--s-3); font-size: clamp(1.45rem, 1.2rem + 0.7vw, 1.85rem); }
.gv-keep__lead p { margin: 0; color: var(--text-muted); font-size: 1rem; line-height: 1.65; }

/* ---------- 09 MULTI-SITE (dark) --------------------------------------- */
.gv-multi { background: var(--ink); color: var(--on-dark); padding-block: var(--section-y); }
.gv-multi__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-6) clamp(2rem, 1rem + 4vw, 5rem); align-items: start; }
.gv-multi h2 { font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem); }
.gv-multi__p { margin: 0; color: var(--on-dark-muted); font-size: var(--fs-md); line-height: 1.6; }
.gv-multi__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gold); }
.gv-multi__list li { padding: var(--s-4) 0; border-bottom: 1px solid var(--line-dark-2); font-family: var(--serif); font-size: clamp(1.15rem, 1rem + 0.45vw, 1.35rem); line-height: 1.35; color: var(--on-dark); }

/* ---------- Cross-service routing line (under engagement routes) ------ */
.gv-routes__other { grid-column: 1 / -1; margin: var(--s-3) 0 0; padding-top: var(--s-4); border-top: 1px solid var(--line); font-size: 0.95rem; line-height: 1.6; color: var(--text-muted); max-width: 60rem; }
.gv-routes__other a { color: var(--ink); text-decoration-color: var(--gold); text-underline-offset: 0.2em; }

/* ---------- 11 BOUNDARIES: can / cannot -------------------------------- */
.gv-bounds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6); margin-bottom: var(--s-6); }
.gv-bounds__no li::before { background: transparent; border: 1px solid var(--gold); width: 7px; height: 7px; box-sizing: border-box; }

/* ---------- Responsive ------------------------------------------------- */
@media (max-width: 1100px) {
  .gv-work { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gv-work__item:nth-child(3) { padding-left: 0; border-left: 0; }
  .gv-work__item:nth-child(n+3) { border-top: 1px solid var(--line-strong); }
  .gv-defs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gv-defs > div:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 960px) {
  .gv-hero__grid, .gv-gap__grid, .gv-tri, .gv-scope__grid, .gv-risk__grid, .gv-keep, .gv-multi__grid { grid-template-columns: 1fr; }
  .gv-scope__lead { position: static; }
  .gv-panel { max-width: 560px; }
  .gv-tools__grid { grid-template-columns: 1fr; }
  .gv-flow { grid-template-columns: 1fr; }
  .gv-flow__col, .gv-flow__col + .gv-flow__col { padding: var(--s-5) 0; border-left: 0; }
  .gv-flow__col + .gv-flow__col { border-top: 1px solid var(--line-strong); }
  .gv-src__head { display: none; }
  .gv-src__row { grid-template-columns: 1fr; gap: var(--s-2); }
  .gv-src__row span:nth-child(2)::before { content: "How it reaches leadership: "; font-weight: 600; font-style: normal; color: var(--ink); }
  .gv-src__row span:nth-child(3)::before { content: "Where it can go wrong: "; font-weight: 600; font-style: normal; }
}
@media (max-width: 640px) {
  .gv-ledger__head { display: none; }
  .gv-ledger__row { grid-template-columns: 1fr; gap: var(--s-2); }
  .gv-ledger__row span:first-child::before { content: "Activity: "; font-weight: 600; }
  .gv-ledger__row span:last-child::before { content: "Assurance: "; font-family: var(--sans); font-size: 0.85rem; font-weight: 600; color: var(--gold-text); }
  .gv-work { grid-template-columns: 1fr; }
  .gv-work__item, .gv-work__item + .gv-work__item { padding: var(--s-4) 0; border-left: 0; }
  .gv-work__item + .gv-work__item { border-top: 1px solid var(--line-strong); }
  .gv-defs { grid-template-columns: 1fr; }
  .gv-defs > div, .gv-defs > div + div { padding: var(--s-4) 0; border-left: 0; }
  .gv-defs > div + div { border-top: 1px solid var(--line-dark); }
  .gv-principle, .gv-panel, .gv-tool, .gv-receive, .gv-keep { padding: var(--s-5); }
  .gv-bounds { grid-template-columns: 1fr; gap: var(--s-5); }
}
