/* GOVERNMENT SOLUTIONS — executive dashboard / strategic framework */

.gs-hero { background: var(--navy); color: var(--fg); padding-block: clamp(2rem, 4vw, 3.2rem) clamp(3.5rem, 7vw, 6.5rem); }
.gs-hero .crumbs { margin-bottom: clamp(2.2rem, 5vw, 4rem); }
.gs-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem 4.5rem; }
.gs-hero h1 { max-width: 15ch; }
.gs-hero .lead { max-width: 50ch; margin-bottom: 2rem; }
@media (min-width: 1100px) { .gs-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; } }

.board { background: var(--abyss); border: 1px solid var(--line-d2); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .7); }
.board__bar { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; border-bottom: 1px solid var(--line-d); font: 500 .66rem/1.4 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-3); }
.board__bar span:first-child { color: var(--copper-lt); }
.board__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.board__grid li { border-bottom: 1px solid var(--line-d); }
.board__grid li:nth-child(odd) { border-right: 1px solid var(--line-d); }
.board__grid a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding: 16px 18px; min-height: 86px; text-decoration: none; transition: background-color .25s; }
.board__grid a:hover { background: rgba(214, 154, 102, .08); }
.board__grid .c { font: 500 .66rem/1.4 var(--f-mono); letter-spacing: .1em; color: var(--copper-lt); }
.board__grid .ph { justify-self: end; font: 400 .6rem/1.4 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-3); border: 1px solid var(--line-d); padding: 2px 6px; }
.board__grid .t { grid-column: 1 / -1; font: 600 .98rem/1.3 var(--f-display); color: var(--on-dark); }
.board__foot { margin: 0; padding: 12px 18px; font: 400 .62rem/1.5 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-3); }
@media (max-width: 480px) {
  .board__grid { grid-template-columns: minmax(0, 1fr); }
  .board__grid li:nth-child(odd) { border-right: 0; }
  .board__grid a { min-height: 0; }
}

/* Phases */
.phases { margin-top: 2.2rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.phases li { padding: 18px 16px 20px 0; border-bottom: 1px solid var(--rule); position: relative; }
.phases li::after { content: ""; position: absolute; left: 0; top: -1px; height: 3px; background: var(--copper); width: 25%; }
.phases li:nth-child(2)::after { width: 50%; } .phases li:nth-child(3)::after { width: 75%; } .phases li:nth-child(4)::after { width: 100%; }
.phases__k { display: block; font: 400 .66rem/1.4 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--fg-3); }
.phases__t { display: block; margin: 6px 0; font: 700 1.5rem/1.1 var(--f-display); font-stretch: 116%; text-transform: uppercase; }
.phases__m { font: 400 .72rem/1.4 var(--f-mono); color: var(--acc); }
@media (min-width: 700px) and (max-width: 979px), (min-width: 1200px) { .phases { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gs-fig { max-width: 680px; }

/* Framework table */
.fw { border-top: 2px solid var(--ink); }
.fw__head { display: none; }
.fw__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 26px 0; border-bottom: 1px solid var(--rule-2); scroll-margin-top: calc(var(--hdr-h) + 20px); }
.fw__row:target { background: linear-gradient(90deg, rgba(184, 116, 64, .1), transparent 70%); }
.fw__cap { margin: 0; font: 650 1.2rem/1.2 var(--f-display); font-stretch: 106%; }
.fw__cap span { display: block; margin-bottom: 8px; font: 500 .7rem/1 var(--f-mono); letter-spacing: .12em; color: var(--acc); }
.fw__purpose { margin: 0; color: var(--fg); }
.fw__inc li { position: relative; padding: 3px 0 3px 18px; font-size: .94rem; color: var(--fg-2); }
.fw__inc li::before { content: ""; position: absolute; left: 0; top: .95em; width: 8px; height: 1px; background: var(--copper); }
.fw__gov { margin: 0; font-size: .94rem; color: var(--fg); padding: 10px 12px; border-left: 2px solid var(--copper); background: rgba(184, 116, 64, .07); }
.fw__gov::before { content: "Government retains — "; font: 500 .64rem/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--acc); }
@media (min-width: 1000px) {
  .fw__head { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 2.6fr) minmax(0, 3fr) minmax(0, 2.2fr); gap: 28px; padding: 14px 0; border-bottom: 1px solid var(--rule-2); font: 500 .66rem/1.4 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--fg-3); }
  .fw__row { grid-template-columns: minmax(0, 2.4fr) minmax(0, 2.6fr) minmax(0, 3fr) minmax(0, 2.2fr); gap: 28px; align-items: start; }
  .fw__gov { background: none; padding: 0 0 0 14px; }
  .fw__gov::before { content: none; }
}

/* Case study */
.case__head { max-width: 900px; margin-bottom: 3rem; }
.case__head .tag { margin-bottom: 1.6rem; white-space: normal; line-height: 1.4; }
.case__steps { display: grid; grid-template-columns: minmax(0, 1fr); counter-reset: s; position: relative; }
.case__steps li { position: relative; padding: 0 0 2.2rem 64px; }
.case__steps li::before { content: ""; position: absolute; left: 19px; top: 44px; bottom: 6px; width: 1px; background: var(--rule-2); }
.case__steps li:last-child::before { display: none; }
.case__n { position: absolute; left: 0; top: 0; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--copper); font: 500 .74rem/1 var(--f-mono); color: var(--copper-dp); background: var(--paper); }
.case__steps h3 { margin: 8px 0 .5rem; }
.case__steps p { color: var(--fg-2); max-width: 58ch; }
@media (min-width: 900px) {
  .case__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--rule-2); }
  .case__steps li { padding: 28px 28px 34px 0; border-bottom: 1px solid var(--rule); }
  .case__steps li:not(:nth-child(3n+1)) { padding-left: 28px; border-left: 1px solid var(--rule); }
  .case__steps li::before { display: none; }
  .case__n { position: static; margin-bottom: 1.2rem; }
}
.case__note { margin-top: 2.6rem; max-width: 820px; }
