/* Self hosted. Variable fonts, latin subset, one file per family and style:
   no request leaves the site for type, and nothing to mention in the privacy
   policy. Jost and Source Serif 4 are both licensed under the SIL Open Font License. */
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/jost-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/source-serif-4-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/source-serif-4-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --paper:#FAF8F3; --linen:#F1EDE3; --white:#FFFFFF;
  --rule:#D8D2C2; --rule-soft:#E9E4D8;
  --ink:#1E2A25; --forest:#10332A; --forest-deep:#0A241D; --muted:#5C6861;
  --gold:#C9A13A; --gold-deep:#8F7120; --gold-hi:#EBCB68; --gold-wash:#F6EFDB;
  --grow:#5DA52B; --grow-deep:#3E7A1D;
  --font-d:'Jost',system-ui,'Segoe UI',sans-serif;
  --font-b:'Source Serif 4',Georgia,'Times New Roman',serif;
  --wrap:1120px; --gutter:clamp(16px,4vw,40px);
  --measure:66ch;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.65 var(--font-b);-webkit-font-smoothing:antialiased}
@media (max-width:640px){body{font-size:1.0625rem}}
img,svg{display:block;max-width:100%}
a{color:var(--forest);text-decoration-color:var(--gold);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--gold-deep)}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--forest);color:var(--paper);padding:.6rem 1rem;z-index:100;font-family:var(--font-d)}
.skip:focus{left:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.sec{padding:clamp(56px,9vw,112px) 0}
.sec+.sec{padding-top:0}
.sec-tight{padding:clamp(40px,6vw,72px) 0}
h1,h2,h3,h4{font-family:var(--font-d);font-weight:400;color:var(--forest);margin:0;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.4vw,4.1rem);letter-spacing:-.005em}
h2{font-size:clamp(1.85rem,3.2vw,2.5rem);letter-spacing:0}
h3{font-size:1.4rem;font-weight:500;line-height:1.25}
h4{font-size:1.1rem;font-weight:500;line-height:1.3}
p{margin:0 0 1.1em;max-width:var(--measure)}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1.2em;padding-left:1.2em;max-width:var(--measure)}
li{margin:.3em 0}
strong{font-weight:600}
sup{font-size:.5em;vertical-align:super;line-height:0;font-family:var(--font-d)}
.lede{font-size:clamp(1.2rem,1.9vw,1.4rem);line-height:1.5;color:var(--ink)}
.small{font-size:.95rem;color:var(--muted)}
.muted{color:var(--muted)}
.grow{color:var(--grow)}
.d{font-family:var(--font-d)}
.nowrap{white-space:nowrap}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(250,248,243,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:74px}
.lockup{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--forest)}
.lockup .mark{flex:none}
.wordmark{font:500 1.06rem/1 var(--font-d);letter-spacing:.22em;color:var(--forest);padding-left:.1em}
.wordmark sup{font-size:.45em;letter-spacing:0;margin-left:.1em}
.lockup-tag{display:none}
.nav{display:flex;align-items:center;gap:clamp(.9rem,2.2vw,2rem)}
.nav a{font:500 .97rem/1 var(--font-d);letter-spacing:.02em;text-decoration:none;color:var(--forest);padding:.5rem 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--gold-deep)}
.nav a[aria-current=page]{border-bottom-color:var(--gold)}
.nav .btn{padding:.72rem 1.1rem;border-bottom:0}
.menu-btn{display:none;font:500 .95rem/1 var(--font-d);letter-spacing:.04em;background:none;border:1.5px solid var(--forest);color:var(--forest);padding:.6rem .9rem;border-radius:2px;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--gutter) 1.2rem}
  .nav.open{display:flex}
  .nav a{padding:.9rem 0;border-bottom:1px solid var(--rule-soft);font-size:1.05rem}
  .nav a[aria-current=page]{border-bottom-color:var(--gold)}
  .nav .btn{margin-top:1rem;text-align:center;border-bottom:0}
}

/* ---------- buttons ---------- */
.btn{display:inline-block;font:500 1rem/1 var(--font-d);letter-spacing:.02em;text-decoration:none;padding:1rem 1.45rem;border-radius:2px;border:1.5px solid transparent;transition:background-color .18s,color .18s,border-color .18s;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--forest-deep);border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--paper)}
.btn-line{border-color:var(--forest);color:var(--forest);background:transparent}
.btn-line:hover{background:var(--forest);color:var(--paper)}
.btn-paper{border-color:var(--paper);color:var(--paper);background:transparent}
.btn-paper:hover{background:var(--paper);color:var(--forest)}
.cta{display:flex;flex-wrap:wrap;gap:.8rem 1rem;margin-top:1.8rem}

/* ---------- hero ----------
   Full bleed forest. The stem rises out of the M on a gold ground glow; the
   headline sits left in paper with GROW in the brand green. A fact strip
   closes the first screen so it carries proof, not only a claim. */
.hero{position:relative;overflow:hidden;background:var(--forest);color:var(--paper);padding:clamp(18px,2.2vw,30px) 0 0}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(55% 60% at 74% 62%,rgba(201,161,58,.18),transparent 72%);pointer-events:none}
.hero .wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(260px,5fr);gap:clamp(16px,5vw,72px);align-items:start}
/* The stem column sets the hero's height. It follows the viewport so the
   first screen holds the headline, the plant and the fact strip on a laptop
   as well as a tall monitor, and never opens with a gap above the headline. */
.hero-stem{position:relative;min-height:clamp(430px,calc(100vh - 330px),640px);align-self:stretch}
.hero-stem .stem{position:absolute;left:0;right:0;bottom:-6px;height:calc(100% + 6px);width:100%;overflow:visible}
.hero-body{padding:1.25rem 0 2rem}
.hero h1{color:var(--paper);font-size:clamp(2.7rem,6.2vw,5rem);max-width:12ch;line-height:1.04}
.hero h1 sup{color:#B9C4BD}
.hero .lede{margin-top:1.5rem;max-width:30em;color:#D7DED9}
.hero .cta{margin-top:2.1rem}
.hero .btn-gold{box-shadow:0 10px 30px -12px rgba(201,161,58,.55)}
.facts{list-style:none;margin:0;padding:1.5rem 0 1.9rem;max-width:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem clamp(16px,3vw,40px);border-top:1px solid rgba(250,248,243,.16)}
.facts li{margin:0;font:400 .95rem/1.45 var(--font-d);color:#B9C4BD;padding-left:1rem;border-left:2px solid rgba(201,161,58,.55)}
.facts b{display:block;font-weight:500;color:var(--paper);margin-bottom:.15rem}
@media (max-width:1100px){.hero h1{font-size:clamp(2.5rem,5.6vw,4rem)}}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:0}
  .hero-body{padding:0 0 .5rem}
  .hero h1{font-size:clamp(2.3rem,9.5vw,3.2rem);max-width:none}
  .hero-stem{min-height:0;height:340px;margin-top:1rem;align-self:auto}
  .facts{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.hero-stem{height:280px}.facts{grid-template-columns:1fr}}
.stem-line{stroke-dasharray:1;stroke-dashoffset:0}
.leaf{opacity:1;transform-box:view-box;transform:scale(1)}
.sway{transform-box:view-box}
.ground{opacity:1}
@media (prefers-reduced-motion:no-preference){
  html.js .stem-line{stroke-dashoffset:1;animation:stem-grow 2.2s cubic-bezier(.25,.6,.2,1) .2s forwards}
  html.js .leaf{opacity:0;transform:scale(.12);animation:leaf-open .75s cubic-bezier(.2,.8,.3,1.2) forwards}
  html.js .leaf-1{animation-delay:.8s}
  html.js .leaf-2{animation-delay:1.05s}
  html.js .leaf-3{animation-delay:1.3s}
  html.js .leaf-4{animation-delay:1.55s}
  html.js .leaf-5{animation-delay:1.8s}
  html.js .leaf-6{animation-delay:2.05s}
  html.js .leaf-7{animation-delay:2.35s}
  html.js .ground{opacity:0;animation:ground-in 1.6s ease-out .4s forwards}
  html.js .sway{animation:leaf-sway 7s ease-in-out 3.2s infinite alternate}
  html.js .leaf-2 .sway,html.js .leaf-4 .sway,html.js .leaf-6 .sway{animation-direction:alternate-reverse;animation-duration:8.5s}
}
@keyframes stem-grow{to{stroke-dashoffset:0}}
@keyframes leaf-open{to{opacity:1;transform:scale(1)}}
@keyframes ground-in{to{opacity:1}}
@keyframes leaf-sway{from{transform:rotate(-1.6deg)}to{transform:rotate(1.6deg)}}

/* ---------- the scroll spine ---------- */
.spine{display:none}
@media (min-width:1320px) and (prefers-reduced-motion:no-preference){
  html.js .spine{display:block;position:fixed;top:0;bottom:0;left:calc((100vw - var(--wrap)) / 2 - 64px);width:3px;pointer-events:none;z-index:5;--p:0%}
  .spine i{position:absolute;top:0;left:0;width:3px;height:var(--p);background:linear-gradient(to bottom,var(--gold-hi),var(--gold) 60%,var(--gold-deep));border-radius:0 0 2px 2px;transition:height .12s linear}
  .spine b{position:absolute;left:-2px;top:calc(var(--p) - 4px);width:22px;height:22px;transition:top .12s linear}
}

/* ---------- bands ---------- */
.band{padding:clamp(56px,8vw,104px) 0}
.band-forest{background:var(--forest);color:var(--paper)}
.band-forest h2,.band-forest h3{color:var(--paper)}
.band-forest a{color:var(--gold-hi);text-decoration-color:var(--gold)}
.band-forest a:hover{color:#fff}
.band-forest .muted{color:#B9C4BD}
.band-linen{background:var(--linen)}
.band-white{background:var(--white)}
.band-grid{display:grid;grid-template-columns:150px 1fr;gap:clamp(20px,4vw,56px);align-items:start}
@media (max-width:700px){.band-grid{grid-template-columns:1fr}.band-grid .mark{width:72px;height:auto}}
.mission{font-family:var(--font-d);font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.22;max-width:24ch;margin:0 0 1.2rem;color:var(--paper)}
.vision{font-size:1.15rem;color:#D7DED9;max-width:52ch}

/* ---------- section heads ---------- */
.sh{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,4vw,64px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sh p{margin:0;color:var(--muted)}
@media (max-width:760px){.sh{grid-template-columns:1fr;gap:10px}}
.rule{border:0;border-top:1px solid var(--rule);margin:0}

/* ---------- three paths ---------- */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.path{padding:clamp(22px,3vw,36px) clamp(16px,2.4vw,32px) clamp(26px,3vw,40px) 0;border-left:1px solid var(--rule);padding-left:clamp(16px,2.4vw,32px)}
.path:first-child{border-left:0;padding-left:0}
.path h3{margin-bottom:.6rem}
.path p{font-size:1.02rem}
.tag{display:inline-block;font:500 .78rem/1 var(--font-d);letter-spacing:.12em;color:var(--gold-deep);border:1px solid var(--gold);padding:.38rem .55rem .32rem;border-radius:2px;margin-bottom:.9rem;background:var(--gold-wash)}
.path .more{font-family:var(--font-d);font-weight:500;font-size:.95rem;letter-spacing:.02em;text-decoration:none;border-bottom:1.5px solid var(--gold)}
@media (max-width:860px){.paths{grid-template-columns:1fr}.path{border-left:0;padding-left:0;border-top:1px solid var(--rule)}.path:first-child{border-top:0}}

/* ---------- the program lifecycle: a vine (a real sequence, hence numbered) ----------
   The stem draws left to right stage by stage and a leaf opens at each
   node, the hero's choreography repeated once, when the strip scrolls into
   view. Static and fully grown without JS or with reduced motion. */
.life{list-style:none;margin:2.4rem 0 0;padding:0;max-width:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0 clamp(12px,2vw,28px)}
.life li{position:relative;margin:0;padding:1.6rem 0 0}
.life li::before{content:'';position:absolute;left:0;right:calc(-1 * clamp(12px,2vw,28px));top:0;height:3px;background:linear-gradient(to right,var(--gold-deep),var(--gold));border-radius:2px;transform-origin:left center}
.life li:last-child::before{right:0}
.life li::after{content:'';position:absolute;left:-1px;top:-5px;width:13px;height:13px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px var(--paper)}
.life .leaf-n{position:absolute;left:4px;top:-30px;width:30px;height:30px;transform-origin:left bottom}
.life .n{font:500 .88rem/1 var(--font-d);color:var(--gold-deep);letter-spacing:.04em}
.life h3{font-size:1.3rem;margin:.45rem 0 .5rem}
.life p{font-size:.98rem;max-width:26ch;margin:0}
.life .via{font-family:var(--font-d);font-size:.93rem;line-height:1.4;color:var(--grow-deep);margin-top:.7rem}
.life .via a{color:inherit;text-decoration:none;border-bottom:1px solid var(--gold)}
@media (prefers-reduced-motion:no-preference){
  html.js .life:not(.in) li::before{transform:scaleX(0)}
  html.js .life:not(.in) li::after{opacity:0}
  html.js .life:not(.in) .leaf-n{transform:scale(0)}
  html.js .life li::before{transition:transform .5s cubic-bezier(.25,.6,.2,1)}
  html.js .life li::after{transition:opacity .3s}
  html.js .life .leaf-n{transition:transform .55s cubic-bezier(.2,.8,.3,1.2)}
  html.js .life li:nth-child(1)::before{transition-delay:0s}   html.js .life li:nth-child(1)::after{transition-delay:0s}   html.js .life li:nth-child(1) .leaf-n{transition-delay:.25s}
  html.js .life li:nth-child(2)::before{transition-delay:.45s} html.js .life li:nth-child(2)::after{transition-delay:.45s} html.js .life li:nth-child(2) .leaf-n{transition-delay:.7s}
  html.js .life li:nth-child(3)::before{transition-delay:.9s}  html.js .life li:nth-child(3)::after{transition-delay:.9s}  html.js .life li:nth-child(3) .leaf-n{transition-delay:1.15s}
  html.js .life li:nth-child(4)::before{transition-delay:1.35s}html.js .life li:nth-child(4)::after{transition-delay:1.35s}html.js .life li:nth-child(4) .leaf-n{transition-delay:1.6s}
  html.js .life li:nth-child(5)::before{transition-delay:1.8s} html.js .life li:nth-child(5)::after{transition-delay:1.8s} html.js .life li:nth-child(5) .leaf-n{transition-delay:2.05s}
}
@media (max-width:900px){
  .life{grid-template-columns:1fr;border-left:3px solid var(--gold);padding-left:1.6rem;gap:0;margin-top:1.6rem}
  .life li{padding:0 0 1.7rem}
  .life li::before{display:none}
  .life li::after{left:calc(-1.6rem - 8px);top:.35rem}
  .life .leaf-n{left:calc(-1.6rem - 4px);top:calc(.35rem - 26px);width:26px;height:26px}
  .life p{max-width:60ch}
}

/* ---------- questions ---------- */
.faq{max-width:none;margin:0}
.faq div{padding:clamp(18px,2.6vw,28px) 0;border-top:1px solid var(--rule)}
.faq div:last-child{border-bottom:1px solid var(--rule)}
.faq dt{font-family:var(--font-d);font-size:1.32rem;color:var(--forest);line-height:1.25;max-width:34ch}
.faq dd{margin:.6rem 0 0;max-width:66ch}
.qlist{list-style:none;margin:0;padding:0;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,64px)}
.qlist li{margin:0;padding:.9rem 0;border-top:1px solid var(--rule);font-family:var(--font-d);font-size:1.08rem;line-height:1.35}
.qlist li:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}
.qlist a{text-decoration:none}
.qlist a:hover{color:var(--gold-deep)}
@media (max-width:700px){.qlist{grid-template-columns:1fr}.qlist li:nth-last-child(2){border-bottom:0}}

/* ---------- ledger lists ---------- */
.ledger{list-style:none;margin:0;padding:0;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,64px)}
.ledger li{margin:0;padding:.95rem 0;border-top:1px solid var(--rule);font-family:var(--font-d);font-size:1.08rem;line-height:1.35}
.ledger li:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}
@media (max-width:700px){.ledger{grid-template-columns:1fr}.ledger li:nth-last-child(2){border-bottom:0}}

/* ---------- differentiator pairs ---------- */
.pairs{display:grid;grid-template-columns:1fr;gap:0;max-width:none}
.pair{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(12px,3vw,48px);padding:clamp(20px,3vw,32px) 0;border-top:1px solid var(--rule)}
.pair:last-child{border-bottom:1px solid var(--rule)}
.pair h3{font-size:1.3rem}
.pair p{max-width:60ch}
@media (max-width:700px){.pair{grid-template-columns:1fr;gap:8px}}

/* ---------- quotes ---------- */
.quote{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(20px,4vw,64px);align-items:start}
.quote blockquote{margin:0;padding-left:clamp(16px,2.4vw,28px);border-left:3px solid var(--gold);font-size:clamp(1.15rem,1.7vw,1.3rem);line-height:1.55;max-width:none}
.quote blockquote p{max-width:none}
.quote figcaption{margin-top:1.1rem;font-family:var(--font-d);font-size:.98rem;line-height:1.4;padding-left:calc(clamp(16px,2.4vw,28px) + 3px)}
.quote figcaption b{font-weight:500;color:var(--forest);display:block}
.outcomes{list-style:none;margin:0;padding:0;max-width:none}
.outcomes li{margin:0;padding:.9rem 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:5.2rem 1fr;gap:.8rem;align-items:baseline}
.outcomes li:last-child{border-bottom:1px solid var(--rule)}
.outcomes b{font:500 1.6rem/1 var(--font-d);color:var(--gold-deep);letter-spacing:-.01em}
.outcomes span{font-family:var(--font-d);font-size:.95rem;line-height:1.35;color:var(--muted)}
.outcomes-h{font:500 .92rem/1.3 var(--font-d);letter-spacing:.03em;color:var(--muted);margin:0 0 .6rem;max-width:none}
@media (max-width:760px){.quote{grid-template-columns:1fr}}
.quote+.quote{margin-top:clamp(40px,6vw,72px)}

/* ---------- memberships ---------- */
.members{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(24px,5vw,72px);margin-top:1.5rem}
.members img{height:64px;width:auto;mix-blend-mode:multiply}
.members a{display:block}
@media (max-width:600px){.members img{height:48px}}

/* ---------- inner page head ---------- */
.phead{padding:clamp(36px,5vw,64px) 0 clamp(28px,4vw,48px);border-bottom:1px solid var(--rule)}
.crumbs{font:500 .88rem/1 var(--font-d);letter-spacing:.03em;margin-bottom:1.4rem;color:var(--muted)}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--gold-deep)}
.crumbs i{font-style:normal;margin:0 .5rem;color:var(--gold)}
.phead h1{max-width:18ch}
.phead .lede{margin-top:1.2rem;color:var(--muted)}
.prose{max-width:var(--measure)}
.prose h2{margin:2.4rem 0 .8rem;font-size:clamp(1.5rem,2.4vw,1.9rem)}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.8rem 0 .5rem}
.prose ul{padding-left:1.1em}
.twocol{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:start}
@media (max-width:860px){.twocol{grid-template-columns:1fr}}
.aside{border-top:3px solid var(--gold);padding-top:1.2rem}
.aside h3{font-size:1.1rem;margin-bottom:.6rem}
.aside p{font-size:1rem}
.aside ul{list-style:none;padding:0;margin:0}
.aside li{padding:.55rem 0;border-top:1px solid var(--rule-soft);font-family:var(--font-d);font-size:1rem}
.aside li a{text-decoration:none}
.aside li span{display:block;font-size:.9rem;color:var(--muted);font-family:var(--font-b)}

/* ---------- services ---------- */
.svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,4vw,64px);padding:clamp(28px,4vw,48px) 0;border-top:1px solid var(--rule)}
.svc:last-of-type{border-bottom:1px solid var(--rule)}
.svc .fit,.path .fit{font:500 .95rem/1.3 var(--font-d);letter-spacing:.03em;color:var(--grow-deep);margin:0 0 .7rem}
.svc h2{font-size:clamp(1.5rem,2.4vw,1.95rem);margin-bottom:.8rem}
.svc .summary{font-family:var(--font-d);font-size:1.08rem;line-height:1.45;color:var(--ink);max-width:36ch}
.svc .body p{max-width:60ch}
.svc .solution{margin-top:1rem;font-family:var(--font-d);font-size:.95rem;color:var(--muted)}
.svc .solution b{font-weight:500;color:var(--gold-deep)}
@media (max-width:760px){.svc{grid-template-columns:1fr;gap:12px}}

/* ---------- glossary / defined terms ---------- */
.terms{max-width:none;margin:0}
.terms div{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(12px,3vw,48px);padding:clamp(20px,3vw,30px) 0;border-top:1px solid var(--rule)}
.terms div:last-child{border-bottom:1px solid var(--rule)}
.terms dt{font-family:var(--font-d);font-size:1.4rem;color:var(--forest);line-height:1.2}
.terms dd{margin:0;max-width:62ch}
@media (max-width:700px){.terms div{grid-template-columns:1fr;gap:6px}}

/* ---------- resources ---------- */
.papers{list-style:none;padding:0;margin:0;max-width:none}
.papers li{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(12px,3vw,48px);padding:clamp(20px,3vw,30px) 0;border-top:1px solid var(--rule);align-items:start}
.papers li:last-child{border-bottom:1px solid var(--rule)}
.papers h3{font-size:1.25rem;margin-bottom:.4rem}
.papers .meta{font-family:var(--font-d);font-size:.95rem;color:var(--muted);margin-bottom:.6rem}
.papers p{font-size:1rem;max-width:52ch}
.papers .dl{font-family:var(--font-d);font-weight:500;font-size:.98rem;text-decoration:none;border-bottom:1.5px solid var(--gold);white-space:nowrap}
.papers .dl span{color:var(--muted);font-weight:400}
@media (max-width:700px){.papers li{grid-template-columns:1fr;gap:8px}}

/* ---------- forms ---------- */
.form{max-width:640px}
.field{margin-bottom:1.3rem}
.field label,.field .lbl{display:block;font:500 .98rem/1.3 var(--font-d);color:var(--forest);margin-bottom:.4rem}
.field .hint{font-size:.9rem;color:var(--muted);margin:-.2rem 0 .5rem;font-family:var(--font-d)}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=url],.field textarea{width:100%;font:400 1.05rem/1.4 var(--font-b);color:var(--ink);background:var(--white);border:1px solid var(--rule);border-radius:2px;padding:.8rem .9rem}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--gold-deep);outline:2px solid var(--gold);outline-offset:0}
.checks{display:grid;gap:.5rem}
.checks label{display:grid;grid-template-columns:1.3rem 1fr;gap:.6rem;align-items:start;font:400 1.02rem/1.4 var(--font-b);color:var(--ink);cursor:pointer}
.checks input{width:1.15rem;height:1.15rem;margin:.15rem 0 0;accent-color:var(--gold-deep)}
.req{color:var(--gold-deep)}
.form-note{font-size:.95rem;color:var(--muted)}
.form-done{display:none;border-left:3px solid var(--grow);padding:.6rem 0 .6rem 1rem;margin-top:1rem;font-family:var(--font-d)}
.form.sent .form-done{display:block}
.form-err{display:none;border-left:3px solid var(--gold-deep);padding:.6rem 0 .6rem 1rem;margin-top:1rem;font-family:var(--font-d);color:var(--ink)}
.form button[disabled]{opacity:.6;cursor:default}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* contact block */
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);max-width:none}
.contact div{border-top:3px solid var(--gold);padding-top:1rem}
.contact h3{font-size:1.1rem;margin-bottom:.5rem}
.contact p{font-size:1.02rem}
.contact a{text-decoration:none;border-bottom:1px solid var(--gold)}
@media (max-width:760px){.contact{grid-template-columns:1fr}}

/* rfp embed */
.rfp-frame{border:1px solid var(--rule);background:var(--white);width:100%;min-height:720px;margin-top:1.5rem}

/* ---------- cta band ---------- */
.cta-band h2{max-width:22ch}
.cta-band .cta{margin-top:1.4rem}
.cta-band .small{margin-top:1rem;font-family:var(--font-d)}

/* ---------- footer ---------- */
.site-foot{background:var(--forest-deep);color:#C9D2CC;padding:clamp(48px,6vw,80px) 0 2rem;font-family:var(--font-d)}
.site-foot a{color:#E8EDE9;text-decoration:none}
.site-foot a:hover{color:var(--gold-hi)}
.foot-grid{display:grid;grid-template-columns:minmax(0,4.6fr) repeat(4,minmax(0,2.2fr));gap:clamp(20px,3vw,44px)}
@media (max-width:1100px){.foot-grid{grid-template-columns:1fr 1fr 1fr}.foot-brand{grid-column:1 / -1}}
.foot-brand .lockup{color:var(--paper)}
.foot-brand .wordmark{color:var(--paper)}
.foot-brand .lockup-tag{display:block;width:100%;margin-top:.5rem;font-size:.92rem;color:#B9C4BD;letter-spacing:.01em}
.foot-brand .lockup{flex-wrap:wrap}
.foot-brand .lockup-tag em{font-style:italic;color:var(--grow)}
.foot-brand address{font-style:normal;margin-top:1.4rem;font-size:.98rem;line-height:1.6;color:#C9D2CC}
.foot-brand address a{border-bottom:1px solid rgba(201,161,58,.5)}
.foot-col h4{color:var(--gold-hi);font-weight:500;font-size:1rem;letter-spacing:.03em;margin-bottom:1rem}
.foot-col ul{list-style:none;margin:0;padding:0}
.foot-col li{margin:0;padding:.3rem 0;font-size:1rem}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-base{margin-top:clamp(32px,5vw,56px);padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr auto;gap:1rem 2rem;align-items:start;font-size:.86rem;color:#9AA7A0;line-height:1.55}
.foot-base p{max-width:none;margin:0 0 .5rem}
.built{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;color:#C9D2CC;border-bottom:1px solid rgba(201,161,58,.4);padding-bottom:.1rem}
.built svg{width:14px;height:14px;fill:var(--gold-hi)}
@media (max-width:700px){.foot-base{grid-template-columns:1fr}}

/* ---------- 404 ---------- */
.nf{min-height:50vh;display:grid;align-content:center}

/* ---------- print ---------- */
@media print{.site-head,.site-foot,.spine,.cta,.menu-btn{display:none!important}body{background:#fff;color:#000}a{color:#000}}
