/* federal.css — page-specific additions for the Federal capability page. */

.fed-hero {
  border-bottom: 1px solid var(--rule);
  padding: 88px 0 96px;
  background:
    linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
}
.fed-hero .doc-meta {
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end;
  border-top: 1px solid var(--ink);
  padding-top: 40px; margin-top: 48px;
}
.fed-hero .doc-meta .left { font-family: var(--mono); font-size: 11px; color: var(--ink-soft); letter-spacing: .08em; line-height: 1.8; }
.fed-hero .doc-meta .left b { color: var(--ink); font-weight: 500; }
.fed-hero .doc-meta .right { display: flex; gap: 12px; }

/* compact stat strip */
.fed-strip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.fed-strip > div {
  padding: 28px 28px;
  border-right: 1px solid var(--rule);
}
.fed-strip > div:last-child { border-right: 0; }
.fed-strip .k { font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 8px; }
.fed-strip .v { font-family: var(--serif); font-size: 28px; line-height: 1.05; }
.fed-strip .b { font-family: var(--mono); font-size: 11px; color: var(--ink-soft); margin-top: 8px; }
@media (max-width: 1100px) { .fed-strip { grid-template-columns: 1fr 1fr; } }

/* core competencies / differentiators side-by-side */
.fed-twin {
  display: grid; grid-template-columns: 1fr 1fr;
  border: 1px solid var(--ink);
  background: var(--paper);
}
.fed-twin > div { padding: 36px 36px; }
.fed-twin > div + div {
  border-left: 1px solid var(--ink);
  background: var(--paper-2);
}
.fed-twin h3 { font-family: var(--serif); font-size: 28px; margin: 0 0 22px; }
.fed-twin .h { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.fed-twin ul { margin: 0; padding: 0; list-style: none; }
.fed-twin ul li {
  padding: 14px 0 14px 28px;
  border-top: 1px dashed var(--rule);
  position: relative;
  font-size: 15.5px; color: var(--ink-2); line-height: 1.45;
}
.fed-twin ul li:first-child { border-top: 0; padding-top: 0; }
.fed-twin ul li::before { content: "▸"; color: var(--accent); position: absolute; left: 0; }
.fed-twin ul li b { color: var(--ink); font-weight: 500; }
@media (max-width: 1100px) { .fed-twin { grid-template-columns: 1fr; } .fed-twin > div + div { border-left: 0; border-top: 1px solid var(--ink); } }

/* past performance grid */
.perf {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--ink);
}
.perf-card {
  padding: 28px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
}
.perf-card:nth-child(3n) { border-right: 0; }
.perf-card:nth-last-child(-n+3) { border-bottom: 0; }
.perf-card .id { font-family: var(--mono); font-size: 10.5px; color: var(--accent); letter-spacing: .14em; text-transform: uppercase; }
.perf-card h4 { font-family: var(--serif); font-size: 22px; line-height: 1.15; margin: 8px 0 12px; }
.perf-card p { margin: 0 0 16px; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.perf-card .tags { display: flex; gap: 6px; flex-wrap: wrap; }
@media (max-width: 1100px) { .perf { grid-template-columns: 1fr; } .perf-card { border-right: 0 !important; } .perf-card:last-child { border-bottom: 0; } }

/* company data table */
.fed-table {
  width: 100%; border-collapse: collapse;
  font-size: 14px;
}
.fed-table th, .fed-table td {
  text-align: left; padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
.fed-table th {
  font-family: var(--mono); font-size: 10.5px; color: var(--accent);
  letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  width: 200px; vertical-align: top;
}
.fed-table td { color: var(--ink); }
.fed-table td .mono { color: var(--ink-2); font-size: 13px; }

/* vehicles + posture cards */
.fed-vehicles {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.fed-vc {
  border: 1px solid var(--ink);
  padding: 32px;
  background: var(--paper);
}
.fed-vc h4 { font-family: var(--serif); font-size: 24px; margin: 0 0 16px; }
.fed-vc p { font-size: 14.5px; color: var(--ink-2); margin: 0 0 18px; line-height: 1.5; }
.fed-vc .pills { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 1100px) { .fed-vehicles { grid-template-columns: 1fr; } }

/* POC slab */
.poc {
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  padding: 56px 48px;
  display: grid; grid-template-columns: 1fr auto;
  gap: 32px; align-items: center;
}
.poc h4 { font-family: var(--serif); font-size: 42px; line-height: 1.05; margin: 0 0 12px; color: var(--paper); }
.poc h4 em { font-style: italic; color: var(--accent); }
.poc p { margin: 0; color: rgba(247,243,234,.65); font-size: 15px; max-width: 56ch; }
.poc .ct { display: flex; flex-direction: column; gap: 10px; align-items: stretch; min-width: 240px; }
.poc .ct a { padding: 16px 24px; text-align: center; }
.poc .ct .mono-row { font-family: var(--mono); font-size: 11px; color: rgba(247,243,234,.6); margin-top: 6px; }
.poc .btn { color: var(--paper); border-color: var(--paper); }
.poc .btn:hover { background: var(--paper); color: var(--ink); }
@media (max-width: 1100px) { .poc { grid-template-columns: 1fr; padding: 36px 28px; } }

/* ── mobile (<=640px): single-col strips, tighter slabs ── */
@media (max-width: 640px) {
  .fed-hero { padding: 56px 0 56px; }
  .fed-hero .doc-meta { grid-template-columns: 1fr; gap: 16px; padding-top: 28px; margin-top: 32px; }
  .fed-hero .doc-meta .right { flex-wrap: wrap; }

  .fed-strip { grid-template-columns: 1fr; }
  .fed-strip > div { padding: 20px 16px; border-right: 0; border-bottom: 1px solid var(--rule); }
  .fed-strip > div:last-child { border-bottom: 0; }
  .fed-strip .v { font-size: 24px; }

  .fed-twin > div { padding: 24px 18px; }
  .fed-twin h3 { font-size: 24px; margin-bottom: 16px; }
  .fed-twin ul li { font-size: 15px; }

  .perf-card { padding: 22px 18px; }
  .perf-card h4 { font-size: 20px; }

  .fed-table th { width: 130px; font-size: 10px; padding-right: 12px; }
  .fed-table th, .fed-table td { padding: 12px 0; font-size: 13.5px; }

  .fed-vehicles { gap: 16px; }
  .fed-vc { padding: 22px 18px; }
  .fed-vc h4 { font-size: 22px; }

  .poc { padding: 28px 20px; gap: 18px; }
  .poc h4 { font-size: clamp(28px, 8vw, 36px); }
  .poc .ct { min-width: 0; width: 100%; }
  .poc .ct a { padding: 14px 18px; min-height: 44px; }
}

/* Government Mission Solutions hub and phase-one route pages. */
.fms-hero{padding:96px 0 72px;background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);border-bottom:1px solid var(--rule)}
.fms-rail{max-width:1200px;margin:0 auto;padding:0 var(--shell-x)}
.fms-hero h1,.fms-section h2,.fms-card h3,.fms-faq h3{font-family:var(--serif);font-weight:400;letter-spacing:-.012em}
.fms-hero h1{font-size:clamp(52px,7vw,96px);line-height:.98;max-width:15ch;margin:18px 0 24px}
.fms-hero h1 em,.fms-section h2 em{font-style:italic;color:var(--accent)}
.fms-eyebrow,.fms-kicker,.fms-label{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.fms-label{color:var(--accent)}
.fms-lede{font-size:20px;line-height:1.55;color:var(--ink-2);max-width:66ch;margin:0}
.fms-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.fms-actions .btn{min-height:46px}
.fms-section{padding:88px 0}
.fms-section--soft{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.fms-section--ink{background:var(--ink);color:var(--paper)}
.fms-section--ink .fms-lede,.fms-section--ink .fms-kicker{color:color-mix(in srgb,var(--paper) 76%,transparent)}
.fms-section--ink .fms-label,.fms-section--ink h2 em{color:#84c5f4}
.fms-section h2{font-size:clamp(38px,5vw,64px);line-height:1.02;max-width:17ch;margin:14px 0 18px}
.fms-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule);margin-top:34px}
.fms-grid--two{grid-template-columns:repeat(2,1fr)}
.fms-card{padding:28px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper)}
.fms-section--ink .fms-card{background:color-mix(in srgb,var(--ink) 92%,white);border-color:color-mix(in srgb,var(--paper) 18%,transparent)}
.fms-card h3{font-size:27px;line-height:1.08;margin:10px 0 12px}
.fms-card p{margin:0;color:var(--ink-soft);font-size:15.5px;line-height:1.55}
.fms-section--ink .fms-card p{color:color-mix(in srgb,var(--paper) 72%,transparent)}
.fms-route{display:flex;min-height:100%;flex-direction:column;text-decoration:none;transition:background .18s ease}
.fms-route:hover{background:var(--accent-soft)}
.fms-route .fms-link{font-family:var(--mono);font-size:12px;color:var(--accent);margin-top:22px}
.fms-list{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule);margin-top:32px}
.fms-list-item{padding:20px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:48px 1fr;gap:18px}
.fms-list-item:nth-child(odd){padding-right:30px}.fms-list-item:nth-child(even){padding-left:30px}
.fms-list-item .fms-num{font-family:var(--mono);font-size:12px;color:var(--accent);padding-top:4px}
.fms-list-item h3{font:400 24px/1.1 var(--serif);margin:0 0 8px}.fms-list-item p{margin:0;color:var(--ink-soft);font-size:15px}
.fms-note{border-left:4px solid var(--accent);max-width:72ch;padding:4px 0 4px 22px;color:var(--ink-soft);line-height:1.6}
.fms-section--ink .fms-note{color:color-mix(in srgb,var(--paper) 78%,transparent);border-color:#84c5f4}
.fms-faq{max-width:820px;margin-top:30px}.fms-faq .q{padding:24px 0;border-top:1px solid var(--rule)}
.fms-faq .q h3{font-size:25px;line-height:1.15;margin:0 0 10px}.fms-faq .q p{margin:0;color:var(--ink-soft);line-height:1.6}
.fms-evidence{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--ink);margin-top:32px}.fms-evidence .fms-card{border:0;border-right:1px solid var(--rule)}.fms-evidence .fms-card:last-child{border-right:0}
.fms-footer{border-top:1px solid var(--rule);padding:42px 0 56px}.fms-footer p{max-width:72ch;color:var(--ink-soft)}.fms-footer a{color:var(--accent);margin-right:18px}
@media(max-width:900px){.fms-grid,.fms-evidence{grid-template-columns:1fr 1fr}.fms-evidence .fms-card:nth-child(2){border-right:0}.fms-evidence .fms-card:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
@media(max-width:640px){.fms-hero{padding:64px 0 50px}.fms-rail{padding:0 24px}.fms-section{padding:64px 0}.fms-grid,.fms-grid--two,.fms-evidence,.fms-list{grid-template-columns:1fr}.fms-card,.fms-evidence .fms-card{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.fms-list-item:nth-child(odd),.fms-list-item:nth-child(even){padding-left:0;padding-right:0}.fms-hero h1{font-size:clamp(46px,14vw,68px)}.fms-section h2{font-size:clamp(36px,11vw,52px)}}
