﻿:root {
  --cream:#FAF8F1; --cream-1:#F6F3EA; --cream-2:#EFECE2; --cream-3:#E4DFD1;
  --surface:#FFFFFF; --sage:#3F9568; --sage-2:#347A55; --sage-s:#2C7349;
  --ink:#20201B; --ink-2:#56524A; --ink-3:#6F6A5E; --ink-4:#B0AB9F;
  --line:rgba(32,32,27,0.09); --r:10px; --pill:999px;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
body {
  background:var(--cream); color:var(--ink);
  font-family:'Geist',system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
a { color:var(--sage-2); }
a:hover { color:var(--sage); }

/* NAV */
nav {
  position:fixed; top:0; left:0; right:0; z-index:300; height:62px;
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:0 clamp(1.5rem,5vw,3.5rem);
  background:rgba(250,248,241,0.96); backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.nav-brand-wrap { display:flex; flex-direction:column; gap:2px; }
.nav-brand { font-size:1.1rem; font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:-.015em; line-height:1; }
.nav-brand .gov { color:var(--sage); }
.nav-powered { font-size:.5rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-4); font-weight:500; text-decoration:none; }
.nav-links { display:flex; align-items:center; justify-content:center; gap:2rem; }
.nav-lnk { font-size:.81rem; color:var(--ink-3); text-decoration:none; white-space:nowrap; }
.nav-lnk:hover { color:var(--ink); }
.nav-lnk-ds { font-size:.81rem; }
.ds-logo { font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:600; font-size:1rem; color:var(--ink); letter-spacing:-.02em; }
.ds-sec { color:var(--sage); }
.nav-ctas { display:flex; align-items:center; gap:.75rem; justify-content:flex-end; }
.nav-btn-ghost { padding:6px 16px; border:1px solid rgba(32,32,27,.22); border-radius:var(--pill); font-size:.81rem; color:var(--ink); text-decoration:none; }
.nav-btn-ghost:hover { background:rgba(32,32,27,.05); }
.nav-btn-dark { padding:7px 18px; background:var(--ink); color:var(--cream); border-radius:var(--pill); font-size:.81rem; font-weight:500; text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center; gap:5px; }
.nav-btn-dark:hover { background:var(--ink-2); }

/* BLOG HERO */
.blog-hero {
  max-width:720px; margin:0 auto;
  padding:calc(54px + 4rem) clamp(1.5rem,5vw,2rem) 3rem;
}
.blog-hero-pre {
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-4); font-weight:600; margin-bottom:.8rem;
}
.blog-hero h1 {
  font-family:'Newsreader',Georgia,serif;
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  font-weight:400; letter-spacing:-.03em; line-height:1.15;
  color:var(--ink); margin-bottom:1rem;
}
.blog-hero .byline {
  font-size:.8rem; color:var(--ink-4); display:flex; gap:1rem; flex-wrap:wrap;
}
.blog-hero .byline span { display:flex; align-items:center; gap:.3rem; }

/* ARTICLE */
article {
  max-width:680px; margin:0 auto;
  padding:0 clamp(1.5rem,5vw,2rem) 5rem;
}
article h2 {
  font-family:'Newsreader',Georgia,serif;
  font-size:clamp(1.25rem,2vw,1.55rem); font-weight:400;
  letter-spacing:-.025em; line-height:1.25;
  color:var(--ink); margin:2.5rem 0 .8rem;
}
article h3 {
  font-size:1rem; font-weight:600; color:var(--ink);
  margin:1.75rem 0 .5rem; letter-spacing:-.01em;
}
article p { color:var(--ink-2); margin-bottom:1.1rem; line-height:1.8; }
article ul, article ol {
  margin:0 0 1.1rem 1.5rem; color:var(--ink-2); line-height:1.8;
}
article li { margin-bottom:.35rem; }
article strong { color:var(--ink); font-weight:600; }
article blockquote {
  border-left:3px solid var(--sage); margin:1.5rem 0;
  padding:.75rem 1.25rem;
  background:var(--cream-1); border-radius:0 var(--r) var(--r) 0;
  font-style:italic; color:var(--ink-3); font-size:.92rem;
}
.chip-row { display:flex; flex-wrap:wrap; gap:6px; margin:1.25rem 0; }
.chip {
  padding:3px 10px; background:rgba(63,149,104,.09);
  border:1px solid rgba(63,149,104,.2); border-radius:var(--pill);
  font-size:.72rem; color:var(--sage-2); font-weight:500;
}
.callout {
  background:var(--cream-2); border-radius:var(--r);
  padding:1rem 1.25rem; margin:1.5rem 0;
  border:1px solid var(--line); font-size:.88rem; color:var(--ink-2);
}
.callout strong { color:var(--sage-2); }
hr.sep { border:none; border-top:1px solid var(--line); margin:2rem 0; }

/* BLOG INDEX CARDS */
.blog-index {
  max-width:900px; margin:0 auto;
  padding:calc(54px + 3rem) clamp(1.5rem,5vw,2rem) 5rem;
}
.blog-index-h1 {
  font-family:'Newsreader',Georgia,serif;
  font-size:clamp(1.6rem,3vw,2.2rem); font-weight:400;
  letter-spacing:-.03em; color:var(--ink); margin-bottom:.5rem;
}
.blog-index-sub { font-size:.88rem; color:var(--ink-3); margin-bottom:2.5rem; }
.post-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.post-card {
  background:var(--surface); padding:1.5rem 1.75rem;
  text-decoration:none; display:flex; flex-direction:column; gap:.5rem;
  transition:background 120ms;
}
.post-card:hover { background:var(--cream-1); }
.post-tag { font-size:.67rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sage); font-weight:600; }
.post-title { font-family:'Newsreader',Georgia,serif; font-size:1.1rem; font-weight:400; letter-spacing:-.02em; line-height:1.25; color:var(--ink); }
.post-excerpt { font-size:.8rem; color:var(--ink-3); line-height:1.6; }
.post-date { font-size:.7rem; color:var(--ink-4); margin-top:auto; padding-top:.5rem; }

/* CTA BANNER */
.cta-banner {
  background:var(--ink); padding:3rem clamp(1.5rem,5vw,2rem);
  margin-top:4rem;
}
.cta-banner-in { max-width:680px; margin:0 auto; }
.cta-banner h2 {
  font-family:'Newsreader',Georgia,serif;
  font-size:clamp(1.3rem,2.5vw,1.8rem); font-weight:400;
  color:var(--cream); margin-bottom:.6rem; letter-spacing:-.025em;
}
.cta-banner p { font-size:.85rem; color:rgba(250,248,241,.45); margin-bottom:1.25rem; }
.btn-sage {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--sage); color:#fff; padding:10px 22px;
  border-radius:var(--pill); font-size:.85rem; font-weight:500; text-decoration:none;
}
.btn-sage:hover { background:var(--sage-2); color:#fff; }

/* RELATED */
.related { max-width:680px; margin:0 auto; padding:0 clamp(1.5rem,5vw,2rem) 4rem; }
.related h3 { font-size:.75rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-4); font-weight:600; margin-bottom:1rem; }
.related-list { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.related-list li a { font-size:.9rem; color:var(--ink-2); text-decoration:none; }
.related-list li a:hover { color:var(--sage-2); }

footer {
  background:var(--ink); border-top:1px solid rgba(255,255,255,.05);
  padding:1.5rem clamp(1.5rem,5vw,3.5rem);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem;
}
footer p { font-size:.69rem; color:rgba(250,248,241,.25); }
footer a { color:rgba(250,248,241,.4); text-decoration:none; font-size:.69rem; }
footer a:hover { color:rgba(250,248,241,.7); }

@media(max-width:600px) {
  .nav-lnk { display:none; }
  .post-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition-duration:.01ms!important; }
}
