/* FedCite — serious, authoritative, institutional.
   Federal navy + parchment neutrals + a gold citation accent. Serif display
   for headings (institutional gravitas), humanist sans for body. Original
   palette; not a recolor of any sibling site. */

:root {
  --navy-950: #0a1626;
  --navy-900: #0f2138;
  --navy-800: #16304f;
  --navy-700: #1e4067;
  --ink: #1c2530;
  --muted: #5d6a7a;
  --line: #dfe4ec;
  --paper: #f7f8fa;
  --card: #ffffff;
  --blue: #1a4d8f;
  --blue-dark: #143c70;
  --gold: #b07d1e;
  --gold-soft: #f4ead2;
  --green: #1e7d4f;
  --green-soft: #e3f2ea;
  --amber: #9a6a10;
  --amber-soft: #faf0d7;
  --gray-soft: #eef1f5;
  --rose: #a33a4a;
  --rose-soft: #f9e9ec;
  --serif: Georgia, "Times New Roman", "Source Serif Pro", serif;
  --sans: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --radius: 10px;
  --shadow: 0 6px 22px rgba(15, 33, 56, 0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); color: var(--ink);
       background: var(--paper); line-height: 1.65; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 22px; }
h1, h2, h3, .logo { font-family: var(--serif); letter-spacing: .01em; }

/* ── header ─────────────────────────────────────────────────────────── */
.site-header { background: var(--navy-950); color: #fff;
               border-bottom: 3px solid var(--gold); }
.site-header .wrap { display: flex; align-items: center; gap: 26px; min-height: 62px; }
.logo { display: flex; align-items: center; gap: 10px; font-weight: 700;
        font-size: 1.18rem; color: #fff; }
.logo:hover { text-decoration: none; }
.logo .mark { width: 30px; height: 30px; border-radius: 6px;
  background: linear-gradient(160deg, var(--gold) 0%, #8a5f14 100%);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .95rem; font-weight: 800; color: #fff; font-family: var(--serif); }
.nav { display: flex; gap: 20px; margin-left: auto; flex-wrap: wrap; }
.nav a { color: #c3cede; font-size: .92rem; }
.nav a:hover { color: #fff; text-decoration: none; }

/* ── hero ───────────────────────────────────────────────────────────── */
.hero { background:
    radial-gradient(820px 400px at 88% -20%, rgba(176, 125, 30, .18), transparent 60%),
    var(--navy-950);
  color: #fff; padding: 60px 0 66px; }
.hero .wrap { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px;
              align-items: center; }
@media (max-width: 880px) { .hero .wrap { grid-template-columns: 1fr; } }
.kicker { display: inline-block; font-size: .76rem; letter-spacing: .14em;
  text-transform: uppercase; color: #d8b56a; border: 1px solid #58481f;
  padding: 4px 12px; border-radius: 999px; margin-bottom: 18px; }
.hero h1 { font-size: 2.7rem; line-height: 1.14; margin: 0 0 18px; font-weight: 700; }
.hero h1 .gold { color: #d8b56a; }
.hero p.lead { color: #b6c2d4; font-size: 1.1rem; max-width: 34rem; margin: 0 0 26px; }
.hero .actions { display: flex; gap: 14px; flex-wrap: wrap; }
.btn { display: inline-block; padding: 10px 20px; border-radius: 8px;
       font-weight: 600; font-size: .95rem; border: 0; cursor: pointer; }
.btn-primary { background: var(--gold); color: #fff !important; }
.btn-primary:hover { background: #96690f; text-decoration: none; }
.btn-ghost { background: transparent; color: #dfe6f0 !important;
             border: 1px solid rgba(255,255,255,.35); }
.btn-ghost:hover { border-color: #fff; text-decoration: none; }

/* hero citation card */
.cite-card { background: #fffdf7; color: var(--ink); border-radius: 12px;
  padding: 22px 24px; box-shadow: 0 22px 55px rgba(4, 12, 28, .5);
  border-top: 4px solid var(--gold); font-size: .93rem; }
.cite-card h3 { margin: 0 0 4px; font-size: 1.02rem; }
.cite-card .sub { color: var(--muted); font-size: .82rem; margin-bottom: 12px; }
.cite-card blockquote { margin: 0 0 10px; padding: 10px 14px; background: var(--gold-soft);
  border-left: 3px solid var(--gold); font-family: var(--serif); font-style: italic; }
.cite-card .src { font-size: .76rem; color: var(--muted); }

/* ── stat band ──────────────────────────────────────────────────────── */
.stat-band { background: var(--navy-900); color: #fff; padding: 26px 0; }
.stat-band .wrap { display: flex; gap: 42px; flex-wrap: wrap; justify-content: center; }
.stat-band .item { text-align: center; }
.stat-band .n { font-size: 1.7rem; font-weight: 800; font-family: var(--serif);
                color: #d8b56a; }
.stat-band .l { color: #9fb0c6; font-size: .84rem; max-width: 15rem; }

/* ── sections / cards ───────────────────────────────────────────────── */
.section { padding: 58px 0; }
.section.alt { background: #fff; border-top: 1px solid var(--line);
               border-bottom: 1px solid var(--line); }
.section h2.center { text-align: center; font-size: 1.8rem; margin: 0 0 8px; }
.section p.center { text-align: center; color: var(--muted); max-width: 46rem;
                    margin: 0 auto 36px; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 880px) { .cards { grid-template-columns: 1fr; } }
.card { background: var(--card); border: 1px solid var(--line);
        border-radius: var(--radius); padding: 22px 24px; box-shadow: var(--shadow); }
.card h3 { margin: 0 0 8px; font-size: 1.08rem; }
.card p { color: var(--muted); font-size: .92rem; margin: 0 0 10px; }

/* ── search ─────────────────────────────────────────────────────────── */
.search-box { position: relative; max-width: 620px; margin: 0 auto; }
.search-box input { width: 100%; padding: 14px 18px; font-size: 1rem;
  border-radius: 10px; border: 1px solid var(--line); box-shadow: var(--shadow); }
.search-results { list-style: none; margin: 8px 0 0; padding: 0; }
.search-results li { background: #fff; border: 1px solid var(--line);
  border-radius: 8px; margin-bottom: 6px; }
.search-results a { display: flex; gap: 12px; padding: 10px 14px; color: var(--ink);
  align-items: baseline; }
.search-results .code { font-weight: 700; color: var(--blue); white-space: nowrap; }
.search-results .kind { margin-left: auto; }

/* ── page scaffolding ───────────────────────────────────────────────── */
.page { padding: 42px 0 70px; }
.page-head { background: var(--navy-950); color: #fff; padding: 38px 0;
             border-bottom: 3px solid var(--gold); }
.page-head h1 { margin: 6px 0 10px; font-size: 1.9rem; line-height: 1.22; }
.page-head .meta { color: #9fb0c6; font-size: .9rem; }
.breadcrumbs { font-size: .8rem; color: #9fb0c6; }
.breadcrumbs a { color: #c3cede; }
.content { max-width: 780px; min-width: 0; }
.content h2 { margin-top: 2em; font-size: 1.4rem;
  border-bottom: 2px solid var(--gold-soft); padding-bottom: 6px; }
.layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 40px; }
@media (max-width: 980px) { .layout { grid-template-columns: 1fr; } }
.sidebar .card { margin-bottom: 18px; }

/* status pills */
.pill { display: inline-block; border-radius: 999px; padding: 3px 12px;
        font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.pill.explicit { background: var(--green-soft); color: var(--green); }
.pill.conditional { background: var(--amber-soft); color: var(--amber); }
.pill.none-found { background: var(--gray-soft); color: var(--muted); }
.pill.provision { background: #e7eefb; color: var(--blue); }
.pill.reserved { background: var(--gray-soft); color: var(--muted); }

/* citation blockquote — the site's signature element */
blockquote.citation { margin: 18px 0; padding: 14px 18px; background: #fffdf7;
  border-left: 4px solid var(--gold); border-radius: 0 8px 8px 0;
  font-family: var(--serif); font-size: .98rem; box-shadow: var(--shadow); }
blockquote.citation .attr { display: block; margin-top: 8px; font-family: var(--sans);
  font-size: .8rem; color: var(--muted); font-style: normal; }

.callout { border-left: 4px solid var(--blue); background: #edf2fa;
  padding: 14px 18px; border-radius: 0 8px 8px 0; margin: 20px 0; font-size: .94rem; }
.callout.warn { border-color: var(--rose); background: var(--rose-soft); }
.callout.key { border-color: var(--gold); background: var(--gold-soft); }

/* official clause text */
.official { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px 30px; margin: 18px 0; box-shadow: var(--shadow); overflow-x: auto; }
.official .stamp { font-size: .78rem; color: var(--muted); text-transform: uppercase;
  letter-spacing: .08em; border-bottom: 1px solid var(--line); padding-bottom: 10px;
  margin-bottom: 16px; display: flex; gap: 14px; flex-wrap: wrap; }
.official p { margin: .65em 0; }
.official .clause-heading { text-align: center; font-weight: 700;
  font-variant: small-caps; font-family: var(--serif); font-size: 1.05rem; }
.official .end-marker { text-align: center; color: var(--muted); font-style: italic; }
.official ul.far-list { list-style: none; padding-left: 1.4em; margin: .4em 0; }
.official .pnum { font-weight: 700; color: var(--navy-800); }
.official .fillin { color: var(--muted); }
.official h3 { font-size: 1rem; }

/* data tables */
.tbl-wrap { overflow-x: auto; }
table.far-table, table.data { width: 100%; border-collapse: collapse; margin: 18px 0;
  background: #fff; font-size: .92rem; }
table.far-table th, table.data th { background: var(--navy-900); color: #fff;
  text-align: left; padding: 10px 14px; font-size: .84rem; }
table.far-table td, table.data td { padding: 10px 14px;
  border-bottom: 1px solid var(--line); vertical-align: top; }

/* clause grids */
.grid-codes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
              gap: 12px; }
.grid-codes a { background: #fff; border: 1px solid var(--line); border-radius: 8px;
  padding: 11px 14px; color: var(--ink); font-size: .89rem; display: flex;
  gap: 10px; align-items: baseline; }
.grid-codes a:hover { border-color: var(--gold); text-decoration: none; }
.grid-codes .code { font-weight: 700; color: var(--blue); white-space: nowrap; }
.grid-codes .pill { margin-left: auto; }

/* steps (SAM pages) */
ol.steps { counter-reset: step; list-style: none; padding-left: 0; }
ol.steps > li { position: relative; padding: 0 0 14px 52px; counter-increment: step; }
ol.steps > li::before { content: counter(step); position: absolute; left: 0; top: 2px;
  width: 34px; height: 34px; border-radius: 50%; background: var(--navy-900);
  color: #d8b56a; font-weight: 800; font-family: var(--serif); display: flex;
  align-items: center; justify-content: center; }

q { quotes: "\201C" "\201D"; font-style: italic; }

/* sources block */
.sources { background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 18px 22px; margin: 26px 0; font-size: .9rem; }
.sources b { display: block; margin-bottom: 8px; font-family: var(--serif); }
.sources ol { margin: 0; padding-left: 20px; }
.sources li { margin-bottom: 6px; }

/* footer */
.site-footer { background: var(--navy-950); color: #8896ab; margin-top: 70px;
               padding: 40px 0 30px; font-size: .88rem;
               border-top: 3px solid var(--gold); }
.site-footer a { color: #c3cede; }
.site-footer .cols { display: flex; gap: 60px; flex-wrap: wrap; margin-bottom: 22px; }
.site-footer b { color: #e6ebf2; font-family: var(--serif); font-size: 1rem; }
.disclaimer { font-size: .8rem; color: #66748a; max-width: 62rem; }
