/* Governança & Capital Allocation — interactive prototype styles
 * Extends biomas.css + borrows lang-toggle from piracanga.css.
 * Owns: gov-step layout, signal chart, council mockup, allocation card, tracker.
 * Does NOT own: nav, .container, root variables — those live in biomas.css.
 */

/* ── Body ── */
.gov-body {
  background: var(--cream);
}

/* Shared hidden utility (piracanga.css defines it; restate here for isolation) */
.hidden { display: none !important; }

/* ── Lang toggle (mirrors piracanga.css) ── */
.lang-toggle {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  background: none;
  border: 1px solid var(--sand);
  border-radius: var(--radius);
  padding: 0.25rem 0.6rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--clay);
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.lang-toggle:hover { border-color: var(--leaf); color: var(--leaf); }
.lang-active { color: var(--soil); font-weight: 700; }
.lang-sep { opacity: 0.4; }

/* ── Prototype banner ── */
.proto-banner {
  background: var(--bark);
  border-bottom: 1px solid var(--humus);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;
  padding: 0.4rem 1rem;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--clay);
  letter-spacing: 0.06em;
}
.proto-icon { color: var(--leaf-lt); }

/* ── Page header ── */
.gov-header {
  background: var(--bark);
  padding: var(--space-lg) 0 var(--space-md);
  border-bottom: 2px solid var(--humus);
}
.gov-header-inner { max-width: 920px; }

.gov-eyebrow { margin-bottom: var(--space-sm); }
.gov-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--leaf-lt);
  border: 1px solid var(--leaf-lt);
  padding: 0.2rem 0.6rem;
  border-radius: 1px;
}

.gov-headline {
  font-family: var(--font-sans);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 700;
  color: var(--linen);
  line-height: 1.1;
  margin-bottom: 0.75rem;
}

.gov-subheadline {
  font-size: 1.05rem;
  color: var(--sand);
  max-width: 600px;
  margin-bottom: var(--space-md);
  line-height: 1.6;
}

/* ── Step dots nav ── */
.gov-steps-nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  margin-top: var(--space-md);
}

.step-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  background: none;
  border: 1px solid var(--humus);
  border-radius: 50px;
  padding: 0.3rem 0.8rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  color: var(--clay);
  font-family: var(--font-mono);
  font-size: 0.65rem;
}
.step-dot:hover { border-color: var(--leaf-lt); color: var(--sand); }
.step-dot.active {
  background: var(--leaf);
  border-color: var(--leaf);
  color: var(--linen);
}
.dot-num {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.dot-label {
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.8;
}
.step-connector {
  width: 24px;
  height: 1px;
  background: var(--humus);
  flex-shrink: 0;
}

/* ── Generic step section ── */
.gov-step {
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--linen);
}
.gov-step.step-alt {
  background: var(--linen);
}
.gov-step.step-why {
  background: var(--bark);
  color: var(--sand);
  border-bottom: none;
}

.gov-step-inner { max-width: 1100px; margin: 0 auto; padding: 0 var(--space-md); }

.step-label-row {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: var(--space-md);
}
.step-num {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  color: var(--leaf-lt);
  background: rgba(90,128,96,0.1);
  padding: 0.15rem 0.5rem;
  border-radius: 1px;
}
.step-name {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clay);
}

.step-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  align-items: start;
}
.step-layout-rev { direction: rtl; }
.step-layout-rev > * { direction: ltr; }

.step-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--soil);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}
.step-alt .step-title { color: var(--bark); }
.step-why .step-title { color: var(--linen); }

.step-body {
  font-size: 1rem;
  color: var(--humus);
  line-height: 1.75;
  margin-bottom: var(--space-sm);
}
.step-alt .step-body { color: var(--humus); }
.step-why .step-body { color: var(--sand); }

/* ── STEP 1 — Signal card & chart ── */
.signal-alert {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  background: rgba(192,57,43,0.08);
  border: 1px solid rgba(192,57,43,0.3);
  border-radius: var(--radius);
  padding: 0.875rem 1rem;
  margin-top: var(--space-sm);
}
.alert-icon {
  font-size: 1.1rem;
  color: #c0392b;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.alert-title {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #c0392b;
  margin-bottom: 0.3rem;
}
.alert-text { font-size: 0.875rem; color: var(--humus); line-height: 1.5; }
.alert-timestamp {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--clay);
  margin-top: 0.4rem;
  letter-spacing: 0.06em;
}

.chart-card {
  background: var(--bark);
  border-radius: var(--radius);
  border: 1px solid var(--humus);
  padding: 1.25rem;
}
.chart-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.chart-title {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--sand);
}
.chart-badge {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  letter-spacing: 0.06em;
  font-style: italic;
}
.chart-area { margin-bottom: 1rem; }
.signal-chart { width: 100%; }
.chart-label {
  font-family: var(--font-mono);
  font-size: 8px;
  fill: var(--clay);
}
.chart-grid { stroke: var(--humus); stroke-width: 0.5; opacity: 0.5; }
.chart-alert-label {
  font-family: var(--font-mono);
  font-size: 8px;
  fill: #c0392b;
}
.chart-val-label {
  font-family: var(--font-mono);
  font-size: 9px;
  fill: var(--sand);
}
.chart-week {
  font-family: var(--font-mono);
  font-size: 7px;
  fill: var(--clay);
}
.chart-monitoring-points {}
.mp-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--clay);
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}
.mp-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(74,69,60,0.3);
  font-size: 0.82rem;
}
.mp-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.mp-dot.red { background: #c0392b; }
.mp-dot.yellow { background: #c4a060; }
.mp-name { flex: 1; color: var(--sand); font-size: 0.78rem; }
.mp-val {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--leaf-lt);
}

/* ── STEP 2 — Priorities ── */
.priorities-card {
  background: var(--soil);
  border: 1px solid var(--humus);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.priorities-header {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  color: var(--clay);
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.priority-item {
  display: flex;
  gap: 0.75rem;
  background: var(--bark);
  border: 1px solid var(--humus);
  border-radius: var(--radius);
  padding: 0.875rem;
  margin-bottom: 0.625rem;
  cursor: pointer;
  transition: border-color 0.15s;
}
.priority-item:hover { border-color: var(--leaf-lt); }
.priority-item.expanded { border-color: var(--leaf); }

.prio-badge {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}
.priority-a .prio-badge { background: rgba(90,128,96,0.3); color: var(--leaf-lt); }
.priority-b .prio-badge { background: rgba(90,128,96,0.6); color: var(--linen); }
.priority-c .prio-badge { background: rgba(74,69,60,0.5); color: var(--sand); }

.prio-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.prio-meta {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 0.4rem;
}
.prio-cost {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--leaf-lt);
  background: rgba(61,90,64,0.15);
  padding: 0.1rem 0.4rem;
  border-radius: 1px;
}
.prio-impact {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--clay);
}
.prio-rationale {
  font-size: 0.78rem;
  color: var(--clay);
  line-height: 1.5;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.priority-item.expanded .prio-rationale { max-height: 100px; }

.translation-note {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  background: rgba(90,128,96,0.08);
  border-left: 2px solid var(--leaf-lt);
  padding: 0.75rem 1rem;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 0.875rem;
  color: var(--humus);
  margin-top: var(--space-sm);
}
.tn-icon { color: var(--leaf-lt); flex-shrink: 0; }

/* ── STEP 3 — Council ── */
.deliberation-stats {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-top: var(--space-sm);
}
.dstat {
  background: var(--linen);
  border: 1px solid var(--sand);
  border-radius: var(--radius);
  padding: 0.75rem 1.25rem;
  text-align: center;
  min-width: 90px;
}
.dstat-num {
  font-family: var(--font-mono);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--leaf);
  line-height: 1;
}
.dstat-label {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  color: var(--clay);
  text-transform: uppercase;
  margin-top: 0.2rem;
}

.council-card {
  background: var(--soil);
  border: 1px solid var(--humus);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.council-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.875rem;
}
.council-title {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sand);
}
.council-date {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--clay);
}
.council-question {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--linen);
  margin-bottom: 0.875rem;
}
.council-members { margin-bottom: 1rem; }
.cm {
  display: flex;
  gap: 0.625rem;
  align-items: flex-start;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(74,69,60,0.3);
}
.cm-avatar {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--bark);
  border: 1px solid var(--humus);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--sand);
  flex-shrink: 0;
}
.cm-yes .cm-avatar { border-color: var(--leaf-lt); }
.cm-no .cm-avatar { border-color: #c0392b; }
.cm-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--linen);
}
.cm-role {
  font-size: 0.7rem;
  color: var(--clay);
  margin-bottom: 0.2rem;
}
.cm-vote {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--sand);
}
.vote-b { color: var(--leaf-lt); }
.vote-a { color: #c4a060; }
.cm-collapsed { opacity: 0.7; }

/* Threaded discussion */
.council-thread {
  background: var(--bark);
  border-radius: var(--radius);
  padding: 0.875rem;
  margin-bottom: 0.875rem;
}
.thread-header {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  color: var(--clay);
  text-transform: uppercase;
  margin-bottom: 0.625rem;
}
.thread-msg {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.78rem;
  line-height: 1.5;
}
.tm-who {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--leaf-lt);
  flex-shrink: 0;
  margin-top: 0.1rem;
  min-width: 24px;
}
.tm-text { color: var(--sand); }

.council-vote-result {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding-top: 0.625rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
}
.vr-yes { color: var(--leaf-lt); font-weight: 700; }
.vr-sep { color: var(--clay); }
.vr-no { color: #c0392b; font-weight: 700; }
.vr-outcome { color: var(--linen); margin-left: 0.5rem; }

/* ── STEP 4 — Allocation card ── */
.allocation-card {
  background: var(--soil);
  border: 2px solid var(--leaf);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
}
.alloc-stamp {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--leaf-lt);
  border: 1px solid var(--leaf-lt);
  display: inline-block;
  padding: 0.2rem 0.75rem;
  border-radius: 1px;
  margin-bottom: 1rem;
}
.alloc-amount {
  font-family: var(--font-sans);
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--linen);
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.alloc-project {
  font-size: 0.9rem;
  color: var(--sand);
  margin-bottom: 1.25rem;
}
.alloc-rows { text-align: left; margin-bottom: 1rem; }
.alloc-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--humus);
  font-size: 0.82rem;
}
.ar-label { color: var(--clay); }
.ar-val {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--sand);
  font-weight: 700;
}
.alloc-hash {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: center;
  margin: 0.875rem 0 0.25rem;
}
.hash-label {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.hash-val {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--leaf-lt);
  background: rgba(90,128,96,0.1);
  padding: 0.15rem 0.5rem;
  border-radius: 1px;
}
.alloc-timestamp {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  margin-bottom: 1rem;
}
.alloc-sigs { text-align: left; }
.sig-label {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.4rem;
}
.sig-dots { display: flex; gap: 0.375rem; flex-wrap: wrap; margin-bottom: 0.3rem; }
.sig-dot {
  width: 14px; height: 14px;
  border-radius: 50%;
  display: inline-block;
}
.sig-dot.filled { background: var(--leaf); }
.sig-dot.dissent { background: transparent; border: 1.5px solid #c0392b; }
.sig-dot.small { width: 9px; height: 9px; vertical-align: middle; }
.sig-legend {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  color: var(--clay);
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.decision-note {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  background: rgba(90,128,96,0.08);
  border-left: 2px solid var(--leaf-lt);
  padding: 0.75rem 1rem;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 0.875rem;
  color: var(--humus);
  margin-top: var(--space-sm);
}
.dn-icon { color: var(--leaf-lt); flex-shrink: 0; }

/* ── STEP 5 — Execution tracker ── */
.loop-closed {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(61,90,64,0.1);
  border: 1px solid var(--leaf);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-top: var(--space-sm);
  flex-wrap: wrap;
}
.lc-before, .lc-after {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lc-label {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.2rem;
}
.lc-val {
  font-family: var(--font-sans);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}
.lc-val.red { color: #c0392b; }
.lc-val.green { color: var(--leaf-lt); }
.lc-arrow {
  font-size: 1.5rem;
  color: var(--clay);
}

.tracker-card {
  background: var(--soil);
  border: 1px solid var(--humus);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.tracker-header { margin-bottom: 1rem; }
.tracker-title {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: var(--clay);
}
.tracker-milestones { margin-bottom: 1rem; }
.milestone {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(74,69,60,0.3);
}
.ms-check {
  font-family: var(--font-mono);
  font-size: 0.9rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  width: 20px;
  text-align: center;
}
.milestone.done .ms-check { color: var(--leaf-lt); }
.milestone.in-progress .ms-check { color: #c4a060; }
.milestone.pending .ms-check { color: var(--humus); }

.ms-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--linen);
  margin-bottom: 0.15rem;
}
.milestone.pending .ms-title { color: var(--clay); }
.ms-date {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--clay);
  margin-bottom: 0.2rem;
}
.ms-detail { font-size: 0.78rem; color: var(--sand); line-height: 1.5; }
.ms-budget {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--leaf-lt);
  margin-top: 0.2rem;
}
.milestone.pending .ms-budget { color: var(--clay); }

/* Budget burn */
.budget-burn { margin-top: 0.875rem; }
.bb-label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  color: var(--clay);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.bb-pct { color: var(--sand); }
.bb-bar {
  height: 6px;
  background: var(--bark);
  border-radius: 3px;
  overflow: hidden;
}
.bb-fill {
  height: 100%;
  background: var(--leaf-lt);
  border-radius: 3px;
  transition: width 0.8s ease;
}

/* ── STEP 6 — Why it matters ── */
.why-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  align-items: start;
}
.why-headline {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--linen);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}
.why-body {
  font-size: 1rem;
  color: var(--sand);
  line-height: 1.8;
  margin-bottom: 1rem;
}
.why-quote {
  font-size: 1.3rem;
  font-style: italic;
  color: var(--leaf-lt);
  border-left: 2px solid var(--leaf-lt);
  padding-left: 1rem;
  margin-top: 1.5rem;
  line-height: 1.5;
}
.proof-cards { display: flex; flex-direction: column; gap: 0.875rem; margin-bottom: var(--space-sm); }
.proof-card {
  background: var(--bark);
  border: 1px solid var(--humus);
  border-radius: var(--radius);
  padding: 1rem;
}
.pc-icon {
  font-size: 1rem;
  color: var(--leaf-lt);
  margin-bottom: 0.4rem;
}
.pc-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--linen);
  margin-bottom: 0.4rem;
}
.pc-text {
  font-size: 0.82rem;
  color: var(--sand);
  line-height: 1.6;
}

.why-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: var(--space-sm);
}

/* ── Button styles (from biomas.css context) ── */
.btn-primary {
  display: inline-block;
  background: var(--leaf);
  color: var(--linen);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: background 0.15s;
}
.btn-primary:hover { background: var(--leaf-lt); opacity: 1; }
.btn-secondary {
  display: inline-block;
  border: 1px solid var(--humus);
  color: var(--sand);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: border-color 0.15s;
}
.btn-secondary:hover { border-color: var(--leaf-lt); opacity: 1; }

/* ── Piracanga footer reuse ── */
.pir-footer {
  background: var(--soil);
  border-top: 1px solid var(--bark);
  padding: var(--space-md) 0;
}
.pir-footer-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--space-md);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-md);
  align-items: start;
}
.pir-footer-col {}
.pir-footer-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--clay);
  margin-bottom: 0.75rem;
}
.pir-footer-text { font-size: 0.82rem; color: var(--humus); line-height: 1.6; }
.pir-footer-right { text-align: right; }
.pir-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
}
.pir-footer-addr { margin-bottom: 0.75rem; }
.pir-contact-btn { display: inline-block; }
.nav-logo { display: flex; align-items: center; gap: 0.4rem; text-decoration: none; }
.logo-mark {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  background: var(--leaf);
  color: var(--linen);
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 2px;
}
.logo-name {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--linen);
}
.logo-sub {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  color: var(--clay);
  letter-spacing: 0.1em;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .step-layout,
  .step-layout-rev,
  .why-layout,
  .pir-footer-inner {
    grid-template-columns: 1fr;
    direction: ltr;
  }
  .step-layout-rev > * { direction: ltr; }
  .pir-footer-right { text-align: left; }
  .gov-steps-nav {
    gap: 0.25rem;
  }
  .step-connector { width: 12px; }
  .alloc-amount { font-size: 2rem; }
}
