/* WHE Minerals & Resources. Shared styles for all pages.
   Layout: 12-column grid, max 1240px, generous section spacing, 1px dividers instead of boxes.
   Fonts: system stack only. No external font or asset dependencies. */

:root{
  --green:#16382F;
  --green-dark:#0F2A23;
  --ink:#17211F;
  --paper:#F5F4EF;
  --white:#FFFFFF;
  --stone:#6D7470;
  --stone-text:#585F5B;
  --gold:#B58A3C;
  --line:rgba(23,33,31,.11);
  --line-strong:rgba(23,33,31,.22);
  --on-dark:#F5F4EF;
  --on-dark-muted:rgba(245,244,239,.72);
  --line-dark:rgba(245,244,239,.18);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  --nav-h:72px;
  --pad:32px;
  --max:1240px;
  --sec:112px;
  --gap:24px;
  color-scheme:light;
}
@media (max-width:1100px){:root{--sec:92px;--pad:28px}}
@media (max-width:640px){:root{--sec:64px;--pad:20px;--nav-h:64px;--gap:16px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 24px)}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font);font-size:17.5px;line-height:1.62;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
@media (max-width:640px){body{font-size:17px}}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none !important}
a{color:inherit}
p{margin:0}
ul,ol{margin:0;padding:0}
h1,h2,h3,h4{margin:0;font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.stack{display:grid;gap:18px;align-content:start}
.skip{position:absolute;left:-999px;top:8px;background:var(--white);padding:8px 12px;z-index:100}
.skip:focus{left:8px}

.container{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:var(--pad);padding-right:var(--pad)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}

/* ---------- type ---------- */
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--stone-text)}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);flex:0 0 auto}
.on-dark .eyebrow{color:var(--on-dark-muted)}
.h-hero{font-size:clamp(38px,4.1vw,60px);line-height:1.05;letter-spacing:-.03em;font-weight:600}
.h-page{font-size:clamp(36px,4.2vw,56px);line-height:1.06;letter-spacing:-.028em}
.h2{font-size:clamp(30px,3.1vw,44px);line-height:1.1;letter-spacing:-.024em}
.h3{font-size:21px;line-height:1.28;letter-spacing:-.012em}
.lede{font-size:clamp(18px,1.45vw,20px);line-height:1.6;color:var(--stone-text);max-width:60ch}
.prose p+p{margin-top:1.05em}
.prose{max-width:64ch}
.muted{color:var(--stone-text)}
.small{font-size:14.5px;line-height:1.55;color:var(--stone-text)}
.label{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-text)}
.num{font-variant-numeric:tabular-nums lining-nums}

/* ---------- buttons and links ---------- */
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 22px;border-radius:2px;font-size:15.5px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.btn-primary{background:var(--green);color:var(--white)}
.btn-primary:hover{background:var(--green-dark)}
.btn-light{background:var(--paper);color:var(--green)}
.btn-light:hover{background:var(--white)}
.btn-line{border-color:var(--line-strong);color:var(--ink);background:transparent}
.btn-line:hover{border-color:var(--ink)}
.arrow-link{display:inline-flex;align-items:center;gap:10px;font-size:15.5px;font-weight:600;color:var(--green);text-decoration:none}
.arrow-link svg{width:16px;height:16px;transition:transform .2s ease}
.arrow-link:hover svg{transform:translateX(3px)}
.arrow-link span{border-bottom:1px solid rgba(22,56,47,.3);padding-bottom:2px;transition:border-color .2s ease}
.arrow-link:hover span{border-color:var(--green)}
.on-dark .arrow-link{color:var(--on-dark)}
.on-dark .arrow-link span{border-color:var(--line-dark)}

/* ---------- header ---------- */
.site-header{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px)}
.site-header .container{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.lockup{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:0 0 auto}
.lockup .mark{font-weight:700;font-size:19px;letter-spacing:.04em;color:var(--green)}
.lockup .bar{width:1px;height:22px;background:var(--line-strong)}
.lockup .name{font-size:15px;font-weight:500;letter-spacing:-.005em;white-space:nowrap}
.nav{display:flex;align-items:center;gap:32px}
.nav a{position:relative;font-size:15px;font-weight:500;color:var(--stone-text);text-decoration:none;padding:6px 0;transition:color .2s ease}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold)}
.nav a.nav-cta{padding:9px 16px;border:1px solid var(--line-strong);border-radius:2px;color:var(--ink)}
.nav a.nav-cta:hover{border-color:var(--ink)}
.nav a.nav-cta[aria-current="page"]::after{display:none}
.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;border:0;background:transparent;color:var(--ink);cursor:pointer}
.menu-btn svg{width:24px;height:24px}
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
.mobile-nav{position:fixed;top:calc(var(--nav-h) + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;z-index:49;background:var(--white);overflow-y:auto;padding:12px var(--pad) 40px}
.mobile-nav a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.mobile-nav a[aria-current="page"]{color:var(--green)}
.mobile-nav .mobile-contact{margin-top:28px;font-size:15px;color:var(--stone-text)}
.mobile-nav .mobile-contact a{display:inline;border:0;padding:0;font-size:15px;color:var(--green)}
body.menu-open{overflow:hidden}
@media (max-width:980px){
  .nav{display:none}
  .menu-btn{display:inline-flex}
}
@media (max-width:380px){.lockup .name{font-size:14px}}

/* ---------- sections ---------- */
.section{padding-top:var(--sec);padding-bottom:var(--sec)}
.section.tight{padding-top:calc(var(--sec) * .7);padding-bottom:calc(var(--sec) * .7)}
.bg-paper{background:var(--paper)}
.bg-white{background:var(--white)}
.rule-top{border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:20px;margin-bottom:56px;align-items:end}
.sec-head .t{grid-column:1 / span 6;display:grid;gap:18px}
.sec-head .d{grid-column:8 / span 5}
@media (max-width:900px){
  .sec-head .t,.sec-head .d{grid-column:1 / -1}
  .sec-head{margin-bottom:40px}
}

/* ---------- home hero ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);background:var(--paper);border-bottom:1px solid var(--line)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;gap:28px;padding:104px 64px 104px var(--pad);padding-left:max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)))}
.hero-copy .h-hero{max-width:12em}
.hero-copy .lede{max-width:34em}
.hero-media{position:relative;min-height:600px;overflow:hidden;background:#d9d8d0}
.hero-media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.photo-tone{-webkit-filter:saturate(.9) contrast(1.03);filter:saturate(.9) contrast(1.03)}
.hero-media figcaption{position:absolute;left:24px;bottom:24px;max-width:calc(100% - 48px);background:rgba(23,33,31,.78);color:var(--on-dark);font-size:13px;line-height:1.45;padding:9px 12px;border-radius:2px}
@media (max-width:980px){
  .hero{grid-template-columns:1fr}
  .hero-copy{padding:64px var(--pad) 48px}
  .hero-media{min-height:0;height:0;padding-top:66%}
}
@media (max-width:640px){
  .hero-copy{padding:48px var(--pad) 40px;gap:22px}
  .hero-media figcaption{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:12px}
}

/* ---------- metrics ---------- */
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap);row-gap:56px}
.metrics.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric{border-top:1px solid var(--line-strong);padding-top:22px}
.metric .v{display:block;font-size:clamp(32px,3.5vw,48px);font-weight:500;line-height:1.02;letter-spacing:-.03em;color:var(--green);font-variant-numeric:tabular-nums lining-nums}
.metric .k{display:block;margin-top:12px;font-size:15px;line-height:1.5;color:var(--stone-text);max-width:26ch}
.metrics-note{margin-top:40px}
@media (max-width:900px){.metrics,.metrics.four{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}}
@media (max-width:380px){.metric .v{font-size:30px}}

/* ---------- split text blocks ---------- */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:32px}
.split .a{grid-column:1 / span 5}
.split .b{grid-column:7 / span 6}
@media (max-width:900px){.split .a,.split .b{grid-column:1 / -1}}

/* ---------- resource focus ---------- */
.resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-strong)}
.res{display:flex;flex-direction:column;gap:14px;padding:36px 32px 8px 0}
.res+.res{border-left:1px solid var(--line);padding-left:32px}
.res .sym{font-size:clamp(46px,4.6vw,64px);font-weight:300;line-height:1;letter-spacing:-.03em;color:var(--green)}
.res .sym sub{font-size:.42em;letter-spacing:0;vertical-align:baseline;position:relative;top:.08em}
.res h3{font-size:22px;margin-top:18px}
.res .desc{font-size:15.5px;color:var(--stone-text)}
.res .stage{margin-top:auto;padding-top:18px;display:grid;gap:4px}
.res .stage b{font-size:16px;font-weight:600;color:var(--ink)}
.res-note{margin-top:32px}
@media (max-width:900px){
  .resources{grid-template-columns:1fr}
  .res,.res+.res{border-left:0;padding:28px 0;border-bottom:1px solid var(--line)}
  .res h3{margin-top:10px}
}

/* ---------- capability columns (home) ---------- */
.caps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:40px}
.cap{border-top:1px solid var(--line-strong);padding-top:24px;display:grid;gap:12px;align-content:start}
.cap h3{font-size:19px;line-height:1.3}
.cap p{font-size:15.5px;color:var(--stone-text)}
@media (max-width:1100px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.caps{grid-template-columns:1fr}}

/* ---------- project cards ---------- */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:48px}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{display:grid;gap:16px;align-content:start;color:inherit;text-decoration:none}
.media{position:relative;height:0;padding-top:120%;overflow:hidden;background:#e4e3dc}
.media.landscape{padding-top:66.6%}
.media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.card:hover .media img{transform:scale(1.02)}
.card .over{font-size:13px;color:var(--stone-text);letter-spacing:.01em}
.card h3{font-size:19px;line-height:1.3}
.card .facts{font-size:14.5px;color:var(--stone-text)}
.card .facts b{color:var(--ink);font-weight:600}
@media (max-width:1100px){.cards,.cards.three{grid-template-columns:repeat(2,minmax(0,1fr))}.cards .media{padding-top:76%}}
@media (max-width:600px){
  .cards,.cards.three{grid-template-columns:1fr}
  .media{padding-top:72%}
}
.totals{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px;margin-top:72px;padding-top:32px;border-top:1px solid var(--line-strong)}
.totals .figs{display:flex;flex-wrap:wrap;gap:16px 56px}
.totals .fig b{display:block;font-size:clamp(28px,2.8vw,38px);font-weight:500;letter-spacing:-.025em;line-height:1.05;color:var(--green)}
.totals .fig span{display:block;margin-top:8px;font-size:15px;color:var(--stone-text)}

/* ---------- three descriptors ---------- */
.descriptors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap);row-gap:28px;margin-top:56px}
.descriptor{border-top:1px solid var(--line-strong);padding-top:20px;display:grid;gap:8px}
.descriptor h3{font-size:18px}
.descriptor p{font-size:15.5px;color:var(--stone-text)}
@media (max-width:760px){.descriptors{grid-template-columns:1fr}}

/* ---------- dark bands ---------- */
.on-dark{color:var(--on-dark)}
.on-dark h2,.on-dark h3{color:var(--on-dark)}
.cta-band{background:var(--green)}
.cta-band .inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:32px;align-items:end}
.cta-band .t{grid-column:1 / span 7;display:grid;gap:18px}
.cta-band .t p{color:var(--on-dark-muted);max-width:52ch}
.cta-band .actions{grid-column:9 / span 4;justify-content:flex-end}
.cta-band .tel{color:var(--on-dark);text-decoration:none;font-size:16px;font-weight:500;border-bottom:1px solid var(--line-dark);padding-bottom:2px}
@media (max-width:900px){.cta-band .t,.cta-band .actions{grid-column:1 / -1;justify-content:flex-start}}

.site-footer{background:var(--ink);color:var(--on-dark-muted);padding:72px 0 40px;font-size:15px}
.site-footer .top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px;padding-bottom:48px;border-bottom:1px solid var(--line-dark)}
.site-footer .brand{grid-column:1 / span 5;display:grid;gap:16px;align-content:start}
.site-footer .lockup{color:var(--on-dark)}
.site-footer .lockup .mark{color:var(--on-dark)}
.site-footer .lockup .bar{background:var(--line-dark)}
.site-footer .col{display:grid;gap:10px;align-content:start}
.site-footer .c1{grid-column:6 / span 2}
.site-footer .c2{grid-column:8 / span 2}
.site-footer .c3{grid-column:10 / span 3}
.site-footer .col h4{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark);margin-bottom:6px}
.site-footer a{color:var(--on-dark-muted);text-decoration:none;transition:color .2s ease}
.site-footer a:hover{color:var(--on-dark)}
.site-footer .legal{padding-top:28px;font-size:13px;line-height:1.6;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px}
@media (max-width:900px){
  .site-footer .brand{grid-column:1 / -1}
  .site-footer .c1{grid-column:1 / -1}
  .site-footer .c2,.site-footer .c3{grid-column:span 6}
}
@media (max-width:520px){.site-footer .c2,.site-footer .c3{grid-column:1 / -1}}

/* ---------- inner page head ---------- */
.page-head{background:var(--paper);border-bottom:1px solid var(--line);padding:96px 0 80px}
.page-head .inner{display:grid;gap:24px;max-width:900px}
@media (max-width:640px){.page-head{padding:56px 0 48px}}
.page-head.with-media .inner{max-width:none;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px;align-items:center}
.page-head.with-media .copy{grid-column:1 / span 6;display:grid;gap:24px}
.page-head.with-media figure{grid-column:8 / span 5;margin:0}
@media (max-width:900px){.page-head.with-media .copy,.page-head.with-media figure{grid-column:1 / -1}}

figure{margin:0}
figure figcaption.cap-line{margin-top:10px;font-size:13px;line-height:1.5;color:var(--stone-text)}

/* ---------- definition lists ---------- */
.dl{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line-strong);margin:0}
.dl>div{display:grid;grid-template-columns:minmax(140px,38%) minmax(0,1fr);gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
.dl dt{font-size:14.5px;color:var(--stone-text)}
.dl dd{margin:0;font-size:15.5px;color:var(--ink)}
@media (max-width:480px){.dl>div{grid-template-columns:1fr;gap:2px}}

/* ---------- operating model ---------- */
.model{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap);row-gap:32px}
.model>div{border-top:2px solid var(--green);padding-top:24px;display:grid;gap:14px;align-content:start}
.model>div.b{border-top-color:var(--line-strong)}
.model ul{list-style:none;display:grid;gap:0}
.model li{padding:11px 0;border-bottom:1px solid var(--line);font-size:16px}
@media (max-width:760px){.model{grid-template-columns:1fr}}

/* ---------- credentials grid ---------- */
.creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:44px}
.cred{border-top:1px solid var(--line-strong);padding-top:20px;display:grid;gap:8px;align-content:start}
.cred h3{font-size:18px;line-height:1.3}
.cred p{font-size:15px;color:var(--stone-text)}
@media (max-width:1000px){.creds{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.creds{grid-template-columns:1fr;row-gap:28px}}

/* ---------- data tables ---------- */
.table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.5}
.table th{text-align:left;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-text);padding:0 24px 14px 0;border-bottom:1px solid var(--line-strong);vertical-align:bottom}
.table td{padding:20px 24px 20px 0;border-bottom:1px solid var(--line);vertical-align:top}
.table td:last-child,.table th:last-child{padding-right:0}
.table .r{text-align:right;white-space:nowrap}
.table td.strong{font-weight:600}
.table .sub{display:block;margin-top:4px;font-size:13.5px;font-weight:400;color:var(--stone-text)}
@media (max-width:820px){
  .table.stackable thead{display:none}
  .table.stackable,.table.stackable tbody,.table.stackable tr,.table.stackable td{display:block;width:100%}
  .table.stackable tr{padding:18px 0;border-bottom:1px solid var(--line)}
  .table.stackable td{border:0;padding:3px 0;text-align:left;white-space:normal}
  .table.stackable td[data-label]::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--stone);margin-top:10px;margin-bottom:2px}
  .table.stackable td:first-child{font-size:17px}
}

/* ---------- capabilities page ---------- */
.cap-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.cap-index{grid-column:1 / span 3;position:-webkit-sticky;position:sticky;top:calc(var(--nav-h) + 40px);align-self:start;padding-top:8px}
.cap-index ol{list-style:none;display:grid;gap:2px;border-left:1px solid var(--line)}
.cap-index a{display:block;padding:7px 0 7px 16px;margin-left:-1px;border-left:1px solid transparent;font-size:14.5px;color:var(--stone-text);text-decoration:none;transition:color .2s ease,border-color .2s ease}
.cap-index a:hover{color:var(--ink)}
.cap-index a.is-active{color:var(--ink);border-left-color:var(--green)}
.cap-body{grid-column:5 / span 8}
.cap-sec{padding:64px 0;border-top:1px solid var(--line)}
.cap-sec:first-child{border-top:0;padding-top:8px}
.cap-sec h2{font-size:clamp(26px,2.4vw,34px);line-height:1.15;letter-spacing:-.02em;margin-bottom:20px}
.cap-sec .prose{max-width:60ch}
.proof{list-style:none;margin-top:32px;border-top:1px solid var(--line-strong)}
.proof li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.55}
.proof .src{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--stone-text);padding-top:3px}
.proof .what b{font-weight:600}
.proof .what .m{display:block;margin-top:3px;font-size:14.5px;color:var(--stone-text)}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:36px}
@media (max-width:1100px){
  .cap-index{display:none}
  .cap-body{grid-column:1 / -1}
}
@media (max-width:640px){
  .proof li{grid-template-columns:1fr;gap:4px}
  .pair{grid-template-columns:1fr}
  .cap-sec{padding:48px 0}
}

/* ---------- process timeline ---------- */
.timeline{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--gap);margin-top:56px}
.timeline li{position:relative;padding-top:40px;padding-right:8px;display:grid;gap:10px;align-content:start}
.timeline li::before{content:"";position:absolute;top:5px;left:0;right:calc(var(--gap) * -1);height:1px;background:var(--line-strong)}
.timeline li:last-child::before{right:0}
.timeline li::after{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--paper)}
.bg-white .timeline li::after{box-shadow:0 0 0 4px var(--white)}
.timeline .n{font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--stone-text)}
.timeline h3{font-size:18px;line-height:1.3}
.timeline p{font-size:15px;color:var(--stone-text)}
.qualifier{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font-size:15px;color:var(--stone-text);max-width:70ch}
@media (max-width:900px){
  .timeline{grid-template-columns:1fr;row-gap:0;margin-top:40px}
  .timeline li{padding:0 0 32px 36px}
  .timeline li::before{top:6px;bottom:-6px;left:5px;right:auto;width:1px;height:auto}
  .timeline li:last-child::before{display:none}
  .timeline li::after{top:2px}
}

/* ---------- track record ---------- */
.selected{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;row-gap:72px}
.proj{display:grid;gap:20px;align-content:start}
.proj h3{font-size:22px;line-height:1.25}
.proj .scope{font-size:16px;color:var(--stone-text)}
.proj .status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink)}
.proj .status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.proj .dl dt{font-size:13.5px}
.proj .dl dd{font-size:15px}
.proj .dl>div{grid-template-columns:minmax(120px,34%) minmax(0,1fr);padding:11px 0}
@media (max-width:900px){.selected{grid-template-columns:1fr;row-gap:56px}}

.filters{display:flex;flex-wrap:wrap;gap:0 28px;border-bottom:1px solid var(--line);margin-bottom:28px}
.filter{-webkit-appearance:none;appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:14px 0 12px;font:inherit;font-size:15px;font-weight:500;color:var(--stone-text);cursor:pointer;transition:color .2s ease,border-color .2s ease}
.filter .n{margin-left:6px;font-size:13px;color:var(--stone);font-variant-numeric:tabular-nums}
.filter:hover{color:var(--ink)}
.filter[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--green)}
@media (max-width:640px){.filters{gap:0 20px}.filter{font-size:14.5px;padding:12px 0 10px}}
.reg-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;margin-bottom:28px;font-size:16px;color:var(--stone-text)}
.reg-summary b{font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.register{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;line-height:1.5}
.register th{position:-webkit-sticky;position:sticky;top:calc(var(--nav-h) + env(safe-area-inset-top,0px));z-index:2;background:var(--white);text-align:left;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-text);padding:14px 18px 14px 0;box-shadow:inset 0 -1px 0 var(--line-strong);vertical-align:bottom}
.register td{padding:19px 18px 19px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--stone-text)}
.register td:first-child{color:var(--ink);font-weight:600;font-size:15.5px;width:34%}
.register .r{text-align:right;white-space:nowrap;color:var(--ink);font-variant-numeric:tabular-nums}
.register th:last-child,.register td:last-child{padding-right:0}
.register .ip{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;font-weight:600;color:var(--ink)}
.register .ip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
@media (max-width:980px){
  .register thead{display:none}
  .register,.register tbody,.register tr,.register td{display:block;width:100% !important}
  .register tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:3px;padding:20px 0;border-bottom:1px solid var(--line)}
  .register td{border:0;padding:0;font-size:14.5px}
  .register td:nth-child(1){grid-column:1 / -1;font-size:16.5px;margin-bottom:8px}
  .register td:nth-child(2),.register td:nth-child(3),.register td:nth-child(4),.register td:nth-child(5){grid-column:1}
  .register td:nth-child(6){grid-column:2;grid-row:2;text-align:right;font-weight:600}
  .register td:nth-child(7){grid-column:2;grid-row:3;text-align:right;color:var(--stone-text)}
  .register td:nth-child(5){color:var(--stone)}
}

/* ---------- team ---------- */
.team-group{padding:80px 0;border-top:1px solid var(--line)}
.team-group:first-child{border-top:0;padding-top:0}
.team-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:16px;margin-bottom:44px}
.team-head h2{grid-column:1 / span 5;font-size:clamp(26px,2.4vw,34px);line-height:1.15}
.team-head p{grid-column:7 / span 6;font-size:16.5px;color:var(--stone-text)}
@media (max-width:900px){.team-head h2,.team-head p{grid-column:1 / -1}}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;row-gap:52px}
.person{border-top:1px solid var(--line-strong);padding-top:22px;display:grid;gap:8px;align-content:start}
.person h3{font-size:20px;line-height:1.25}
.person .role{font-size:15px;font-weight:500;color:var(--green)}
.person .org{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--stone)}
.person p.bio{margin-top:8px;font-size:15.5px;line-height:1.62;color:var(--stone-text);max-width:62ch}
@media (max-width:640px){.people{grid-template-columns:1fr;row-gap:36px}}
.roster{margin-top:56px;border-top:1px solid var(--line-strong)}
.roster .row{border-bottom:1px solid var(--line)}
.roster .line{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,2fr) 120px;gap:16px;align-items:baseline;padding:16px 0;font-size:15.5px}
.roster .nm{font-weight:600;color:var(--ink)}
.roster .rl{color:var(--stone-text)}
.roster .og{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--stone)}
.roster details>summary{list-style:none;cursor:pointer}
.roster details>summary::-webkit-details-marker{display:none}
.roster .more{justify-self:end;font-size:14px;font-weight:600;color:var(--green);display:inline-flex;align-items:center;gap:6px}
.roster .more svg{width:14px;height:14px;transition:transform .2s ease}
.roster details[open] .more svg{transform:rotate(180deg)}
.roster .more .c{display:none}
.roster details[open] .more .o{display:none}
.roster details[open] .more .c{display:inline}
.roster .bio{padding:0 0 20px;max-width:72ch;font-size:15.5px;color:var(--stone-text)}
@media (max-width:760px){
  .roster .line{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}
  .roster .nm{grid-column:1}
  .roster .rl{grid-column:1;grid-row:2}
  .roster .og{grid-column:1;grid-row:3}
  .roster .more,.roster .pad{grid-column:2;grid-row:1}
}

/* ---------- contact ---------- */
.offices{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px}
.office{grid-column:span 6;border-top:2px solid var(--green);padding-top:28px;display:grid;gap:18px;align-content:start}
.office.secondary{border-top:1px solid var(--line-strong)}
.office h2{font-size:26px;line-height:1.2}
.office address{font-style:normal;font-size:17px;line-height:1.6}
.office .lines{display:grid;gap:6px}
.office .lines a{font-size:17px;font-weight:500;color:var(--green);text-decoration:none;border-bottom:1px solid rgba(22,56,47,.25);justify-self:start}
.office .lines a:hover{border-color:var(--green)}
@media (max-width:820px){.office{grid-column:1 / -1}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
}
