/* Static pages. Tokens match web/src/charter/styles.css — see /brand/ for the system. */
:root{--ink:#231F20;--muted:#5F6063;--green:#0B9444;--green-dark:#087A38;--lime:#8DC63F;
--paper:#FFFFFF;--mist:#F2F5F3;--tint:#E6F2EA;--line:#DCE2DE;
--sans:"Public Sans","Helvetica Neue",Arial,sans-serif;--serif:"Source Serif 4",Georgia,serif;color-scheme:light}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding-inline:22px}
h1,h2,h3{margin:0;letter-spacing:-.022em;line-height:1.18;text-wrap:balance}
a{color:var(--green-dark)}
img{max-width:100%;height:auto}
[hidden]{display:none!important}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:99;background:var(--paper);padding:10px 14px;border:2px solid var(--green);border-radius:4px}
:focus-visible{outline:2.5px solid var(--green);outline-offset:2px}

/* The utility bar, header and footer come from the application's own stylesheet — this file
   only adds what the application has no class for. One rule is still needed: the static
   header is always in its lifted state, since there is no scroll listener here. */
.c-header.is-lifted{box-shadow:0 6px 24px rgba(35,31,32,.08)}
.c-nav-item{text-decoration:none;font-family:inherit}

/* ---- team, timeline, commitments ---- */
.team{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.team li{display:flex;gap:13px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:6px}
.team img{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover;background:var(--mist)}
.team b{display:block;font-size:14.5px;line-height:1.25}
.team span span{display:block;color:var(--muted);font-size:13px;margin-top:3px}

.tl{list-style:none;padding:0;margin:20px 0 0}
.tl li{display:grid;grid-template-columns:78px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}
.tl-year{font-weight:800;color:var(--green-dark);font-variant-numeric:tabular-nums}
@media(max-width:560px){.tl li{grid-template-columns:1fr;gap:3px}}

.cm{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.cm li{padding:18px;border:1px solid var(--line);border-radius:6px}
.cm b{display:block;font-size:16.5px;margin-bottom:7px}
.cm span{font-size:14.5px;color:var(--muted)}
.hero-img.wide img{aspect-ratio:16/9;object-fit:cover}

/* ---- cookie / data notice ---- */
.ck{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--ink);color:#fff;box-shadow:0 -6px 24px rgba(0,0,0,.18)}
.ck-in{max-width:1080px;margin:0 auto;padding:16px 22px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.ck p{margin:0;font-size:14px;line-height:1.5;flex:1 1 380px}
.ck a{color:#fff;text-decoration:underline}
.ck .btn{flex:none}
@media(max-width:560px){.ck-in{padding:14px 18px}.ck .btn{width:100%;justify-content:center}}

.crumb{padding-block:14px 0;font-size:13.5px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb .sep{margin:0 7px;opacity:.6}

main{padding-block:26px 64px}
.prose>*{max-width:760px}
.prose.narrow>*{max-width:600px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--green-dark);margin:0 0 12px}
h1{font-size:clamp(30px,4.6vw,46px);font-weight:800;letter-spacing:-.033em}
h2{font-size:clamp(20px,2.6vw,26px);font-weight:700;margin-top:38px}
.prose p{margin:0 0 1em}
.lead{font-family:var(--serif);font-size:clamp(18px,2vw,21px);line-height:1.55;color:var(--muted);margin-top:16px}

.hero-img{margin:26px 0}
.hero-img img{width:100%;border-radius:6px;border:1px solid var(--line);display:block;object-fit:cover}
figcaption{font-size:13px;color:var(--muted);margin-top:8px}

.facts{border-top:1px solid var(--line);margin:26px 0}
.facts>div{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;padding-top:3px}
.facts dd{margin:0}
@media(max-width:580px){.facts>div{grid-template-columns:1fr;gap:3px}}

.bul{padding-left:20px;margin:16px 0}
.bul li{margin-bottom:8px}
.note{border-left:3px solid var(--green);background:var(--tint);padding:15px 18px;border-radius:0 4px 4px 0;margin:22px 0;font-size:15.5px}
.note b{color:var(--green-dark)}
.tags{margin-top:26px;display:flex;gap:7px;flex-wrap:wrap}
.tag{display:inline-block;padding:4px 10px;border-radius:4px;background:var(--mist);color:var(--muted);font-size:12.5px;font-weight:600}
.back{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:15px}

.plist{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px}
.plist a{display:flex;gap:16px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:inherit}
.plist a:hover{border-color:var(--green)}
.plist img{width:180px;aspect-ratio:16/9;object-fit:cover;border-radius:4px;flex:none}
.pl-meta{display:block;font-size:12.5px;color:var(--green-dark);font-weight:600}
.pl-title{display:block;font-weight:700;font-size:16.5px;margin:4px 0 5px;line-height:1.3}
.pl-client{display:block;font-size:14px;color:var(--muted)}
@media(max-width:620px){.plist img{width:100px}}

.cards{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cards li{border:1px solid var(--line);border-radius:6px}
.cards a,.cards li.plain{display:block;padding:18px;text-decoration:none;color:inherit;height:100%}
.cards a:hover{border-color:var(--green)}
.cd-title{display:block;font-weight:700;font-size:17px;margin-bottom:6px}
.cd-text{display:block;font-size:14.5px;color:var(--muted)}

.people{list-style:none;padding:0;margin:16px 0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.people li{padding:12px 14px;border:1px solid var(--line);border-radius:6px;font-size:14.5px}
.people b{display:block}
.people span{color:var(--muted);font-size:13.5px}

.ft{border-top:1px solid var(--line);background:var(--mist);margin-top:50px}
.ft-in{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding-block:38px}
.ft h3{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:14.5px}
.ft a{color:var(--ink);text-decoration:none}
.ft a:hover{color:var(--green-dark);text-decoration:underline}
.ft-line{font-size:14px;color:var(--muted);margin:12px 0 0}
.ft-base{padding-block:16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}

/* ---- work grid, filters, dialog ---- */
.wk-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:26px 0 8px;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--mist)}
.wk-field{display:grid;gap:5px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wk-field input,.wk-field select{font:inherit;font-size:15px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink);padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:var(--paper);min-height:42px}
.wk-search{flex:1 1 230px}
.wk-search input{width:100%}
.wk-clear{font:inherit;font-size:14.5px;font-weight:600;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--muted);cursor:pointer}
.wk-clear:hover{border-color:var(--green);color:var(--green-dark)}
.wk-count{font-size:13.5px;color:var(--muted);margin:0 0 14px}
.wk-empty{font-size:15px;color:var(--muted)}
.wk-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.wk-card{display:flex}
.wk-open{display:flex;flex-direction:column;width:100%;text-align:left;font:inherit;color:inherit;background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer;padding:0}
.wk-open:hover{border-color:var(--green)}
.wk-open img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--mist)}
.wk-meta{font-size:12.5px;color:var(--green-dark);font-weight:600;padding:13px 15px 0}
.wk-title{font-size:16px;font-weight:700;line-height:1.3;padding:5px 15px 0}
.wk-client{font-size:13.5px;color:var(--muted);padding:7px 15px 15px;margin-top:auto}
.sv-work-h{font-size:clamp(20px,2.6vw,26px);font-weight:700;margin:44px 0 16px}

.pd-scrim{position:fixed;inset:0;background:rgba(20,24,21,.55);z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:0}
.pd-scrim[hidden]{display:none!important}
@media(min-width:720px){.pd-scrim{align-items:center;padding:28px}}
.pd{background:var(--paper);width:100%;max-width:640px;max-height:88vh;overflow-y:auto;border-radius:6px 6px 0 0;padding:24px;border:1px solid var(--line);position:relative}
@media(min-width:720px){.pd{border-radius:6px;padding:30px}}
.pd-x{position:absolute;top:14px;right:14px;width:34px;height:34px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--muted);font-size:15px;line-height:1;cursor:pointer}
.pd-x:hover{border-color:var(--green);color:var(--ink)}
.pd-ref{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dark);margin:0 44px 8px 0}
.pd-title{font-size:21px;font-weight:700;line-height:1.25;margin:0 30px 16px 0}
.pd-facts{border-top:1px solid var(--line);margin:0 0 16px}
.pd-facts>div{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.pd-facts dt{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding-top:3px}
.pd-facts dd{margin:0;font-size:15px}
.pd-summary{font-size:15.5px;line-height:1.6;margin:0 0 16px}
.pd-more a{font-weight:700}
.pd-ach{margin:0 0 16px}
.pd-ach-h{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--green-dark);margin:0 0 8px}
.pd-ach ul{margin:0;padding-left:20px;font-size:14.5px;display:grid;gap:6px}
.bul.tick{list-style:none;padding-left:0}
.bul.tick li{position:relative;padding-left:26px}
.bul.tick li::before{content:"\2713";position:absolute;left:3px;color:var(--green);font-weight:800}
.bul.links li a::after{content:" \2197";color:var(--muted);font-size:.85em}
.src{font-size:13px;color:var(--muted);margin-top:26px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:560px){.pd-facts>div{grid-template-columns:1fr;gap:2px}}

@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
