/* Bhutan Climate Finance Portal: public website design system.
   Palette: the GCF in Bhutan (Astra) global colours, used exactly. One heading family, one body family,
   one type scale and one button component. */

/* ---------- Tokens ---------- */
:root{
  /* Astra global palette from bhutangcf.gov.bt */
  --green:#00bf63;        /* ast-global-color-0 */
  --accent:#ef8340;       /* ast-global-color-1 */
  --ink:#0f172a;          /* ast-global-color-2 */
  --slate:#2f3b40;        /* ast-global-color-3 */
  --pale:#edfbe2;         /* ast-global-color-4 */
  --white:#ffffff;        /* ast-global-color-5 */
  --mist:#d5ead8;         /* ast-global-color-6 */
  --footer:#0c1406;       /* ast-global-color-7 */
  --charcoal:#222222;     /* ast-global-color-8 */
  /* Derived neutrals (tints of the palette only) */
  --muted:#4a565b;
  --line:#e3ece4;
  --line-strong:#c9dccc;

  --font-heading:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  /* One type scale */
  --text-xs:.8125rem;
  --text-sm:.9375rem;
  --text-base:1.0625rem;
  --text-lg:1.1875rem;
  --text-xl:1.375rem;
  --text-2xl:clamp(1.5rem,1.25rem + .9vw,2rem);
  --text-3xl:clamp(2rem,1.45rem + 2vw,3.125rem);
  --text-4xl:clamp(2.25rem,1.5rem + 2.8vw,3.75rem);
  --text-hero:clamp(2.5rem,1.3rem + 4.6vw,5.25rem);
  --leading-tight:1.1;--leading-snug:1.3;--leading-body:1.65;

  --container:1200px;--gutter:24px;--section:96px;
  --radius:10px;--radius-sm:4px;
  --control-h:48px;
  --shadow:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.06);
  --shadow-lift:0 2px 6px rgba(15,23,42,.06),0 18px 40px rgba(15,23,42,.12);
  --ease:cubic-bezier(.54,.01,.31,.99);--ease-out:cubic-bezier(.2,.7,.15,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:16px}
body.public-site{margin:0;background:var(--white);color:var(--slate);font:400 var(--text-base)/var(--leading-body) var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:where(.public-site) img,:where(.public-site) video,:where(.public-site) svg{max-width:100%}
:where(.public-site) img{height:auto}
:where(.public-site) a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:.2em}
:where(.public-site) a:hover{text-decoration-color:var(--accent)}
.public-site :focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
:where(.public-site) h1,:where(.public-site) h2,:where(.public-site) h3,:where(.public-site) h4{font-family:var(--font-heading);font-weight:600;color:var(--ink);margin:0;line-height:var(--leading-tight);letter-spacing:-.01em;text-wrap:balance}
:where(.public-site) h3,:where(.public-site) h4{line-height:var(--leading-snug);letter-spacing:0}
:where(.public-site) p{margin:0 0 1em}
:where(.public-site) p:last-child{margin-bottom:0}
:where(.public-site) button,:where(.public-site) input,:where(.public-site) select,:where(.public-site) textarea{font:inherit;color:inherit}
:where(.public-site) button{cursor:pointer}
:where(.public-site) table{border-collapse:collapse;width:100%}
.public-site address{font-style:normal}
.pre-line{white-space:pre-line}
.icon{width:1.15em;height:1.15em;flex:none;display:inline-block;vertical-align:-.2em}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff!important;padding:10px 16px;border-radius:var(--radius-sm);font-weight:600;text-decoration:none!important}
.skip:focus{left:12px}
.container{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.site-main{display:block;min-height:50vh}
.clamp-2,.clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.clamp-2{-webkit-line-clamp:2}.clamp-3{-webkit-line-clamp:3}
.preview-empty{margin-block:24px;padding:20px;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);font-size:var(--text-sm);text-align:center}

/* ---------- Type helpers ---------- */
.eyebrow{display:flex;align-items:center;gap:12px;font:600 var(--text-xs)/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 16px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--accent);flex:none}
.eyebrow-light{color:var(--pale)}
.display-2{font-size:var(--text-3xl)}
.display-3{font-size:var(--text-2xl)}
.public-site h2 em{font-style:normal;font-weight:inherit}
.lead{font-size:var(--text-lg);line-height:1.6;color:var(--slate);max-width:62ch}
.prose{max-width:68ch}
.prose p{margin:0 0 1.1em}
.prose h2{font-size:var(--text-2xl);margin:1.6em 0 .6em}
.prose h3{font-size:var(--text-xl);margin:1.4em 0 .5em}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.2em}
.prose li{margin:.4em 0}
.prose li::marker{color:var(--green)}
.text-link{display:inline-flex;align-items:center;gap:8px;font:600 var(--text-sm)/1.3 var(--font-body);color:var(--ink);text-decoration:none!important;border-bottom:2px solid var(--green);padding-bottom:3px;transition:gap .3s var(--ease),border-color .2s}
.text-link:hover{gap:12px;border-color:var(--accent)}
.text-link .icon{width:1em;height:1em}
.tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 12px;font:600 var(--text-xs)/1.3 var(--font-body);background:var(--pale);color:var(--ink);white-space:nowrap}
.tag-accent{background:var(--accent);color:var(--ink)}
.tag-light{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4)}
.date-pill{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:3px 12px;font:600 var(--text-xs)/1.3 var(--font-body);color:var(--slate);white-space:nowrap}

/* ---------- Button: one component, three variants, one size ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--control-h);padding:0 24px;border-radius:var(--radius-sm);border:2px solid transparent;font:600 var(--text-sm)/1 var(--font-body);letter-spacing:.01em;text-decoration:none!important;white-space:nowrap;cursor:pointer;transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}
.btn .icon{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover .icon{transform:translateX(3px)}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--green);border-color:var(--green);color:var(--ink)!important}
.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:#fff!important;box-shadow:0 10px 24px rgba(15,23,42,.2)}
.btn-secondary{background:var(--white);border-color:var(--white);color:var(--ink)!important}
.btn-secondary:hover{background:var(--pale);border-color:var(--pale)}
.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)!important}
.btn-ghost:hover{border-color:var(--ink);background:var(--pale)}
.on-dark .btn-ghost,.btn-ghost.on-dark{border-color:rgba(255,255,255,.55);color:#fff!important}
.on-dark .btn-ghost:hover,.btn-ghost.on-dark:hover{background:#fff;color:var(--ink)!important;border-color:#fff}

/* ---------- Announcement ---------- */
.announcement{background:var(--accent);color:var(--ink);font-size:var(--text-sm);text-align:center;padding:8px 0}
.announcement p{margin:0}.announcement a{font-weight:600;display:inline-flex;align-items:center;gap:6px;text-decoration-color:var(--ink)}
.follow-links{display:inline-flex;align-items:center;gap:6px}
.follow-links a{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;text-decoration:none;transition:background-color .2s,color .2s}
.follow-links a:hover{background:var(--green);color:var(--ink)}
.follow-links .icon{width:16px;height:16px}

/* ---------- Header + navigation (archive layout: logo left, menu and follow icons right) ---------- */
:root{--header-h:112px}
.site-header{position:relative;z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.site-header--overlay{position:absolute;top:0;left:0;right:0;background:transparent;border-bottom:0}
.header-inner{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.brand{display:block;flex:none;margin-right:auto;line-height:0;text-decoration:none!important}
.brand-logo{display:block;width:230px;height:auto}
.header-follow{flex:none}
.site-header .follow-links a{color:var(--ink)}
.site-header--overlay .follow-links a,.site-header--overlay .nav-link,.site-header--overlay .nav-toggle{color:var(--pale)!important}
.site-header--overlay .nav-link:hover,.site-header--overlay .nav-link[aria-current="page"]{color:#fff!important}
.site-header--overlay .mobile-nav summary{color:#fff;border-color:rgba(255,255,255,.6)}
.main-nav-list{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.nav-item{position:relative;display:flex;align-items:center}
.nav-link{display:block;padding:10px 12px;color:var(--ink)!important;text-decoration:none!important;font:600 var(--text-sm)/1.2 var(--font-body);position:relative;white-space:nowrap}
.nav-link::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after,.nav-item:has(.nav-dropdown [aria-current="page"])>.nav-link::after{transform:scaleX(1)}
.has-menu .nav-link{padding-right:2px}
.nav-toggle{display:grid;place-items:center;width:28px;height:32px;border:0;background:transparent;color:var(--slate);border-radius:var(--radius-sm);padding:0}
.nav-toggle .icon{width:16px;height:16px;transition:transform .3s var(--ease)}
.has-menu:hover .nav-toggle .icon,.has-menu.is-open .nav-toggle .icon{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:240px;list-style:none;margin:0;padding:8px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-lift);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s linear .22s;z-index:60}
.nav-dropdown::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.has-menu:hover .nav-dropdown,.has-menu:focus-within .nav-dropdown,.has-menu.is-open .nav-dropdown{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nav-dropdown a{display:block;padding:10px 14px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none!important;font:500 var(--text-sm)/1.3 var(--font-body)}
.nav-dropdown a:hover,.nav-dropdown a[aria-current="page"]{background:var(--pale)}
.mobile-nav{display:none}
.mobile-nav summary{list-style:none;display:inline-flex;align-items:center;gap:8px;height:var(--control-h);padding:0 18px;border:2px solid var(--line-strong);border-radius:var(--radius-sm);font:600 var(--text-sm)/1 var(--font-body);color:var(--ink);cursor:pointer}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav .icon-close,.mobile-nav[open] .icon-open{display:none}
.mobile-nav[open] .icon-close{display:inline-block}
.mobile-panel{position:absolute;left:0;right:0;top:100%;background:var(--white);border-top:1px solid var(--line);box-shadow:0 24px 40px rgba(15,23,42,.14);max-height:calc(100vh - 140px);overflow:auto;padding:8px var(--gutter) 24px;z-index:60}
.mobile-panel ul{list-style:none;margin:0;padding:0}
.mobile-panel>ul>li{border-bottom:1px solid var(--line);padding:4px 0}
.mobile-panel a{display:block;padding:12px 4px;color:var(--ink);text-decoration:none!important;font:600 var(--text-base)/1.3 var(--font-body)}
.mobile-panel li li a{padding:8px 4px 8px 16px;font-weight:400;font-size:var(--text-sm)}
.mobile-panel a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--green)}
.mobile-contact{display:grid;gap:4px;padding-top:12px}

/* ---------- Flash ---------- */
.flash-stack{padding-top:20px}
.notice{display:flex;align-items:center;gap:10px;background:var(--pale);border:1px solid var(--mist);border-left:4px solid var(--green);color:var(--ink);padding:14px 18px;border-radius:var(--radius-sm);margin:0 0 12px;font-weight:500}
.notice .icon{color:var(--ink)}

/* ---------- Sections ---------- */
.section{padding-block:var(--section)}
.tone-pale{background:var(--pale)}
.tone-mist{background:var(--mist)}
.tone-dark{background:var(--footer);color:var(--mist)}
.tone-dark h2,.tone-dark h3{color:#fff}
.section-head{max-width:760px;margin-bottom:48px}
.section-head .split-head-aside{margin-top:20px}
.split-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end;margin-bottom:56px}
.split-head-aside{display:grid;gap:20px;justify-items:start}
.split-head-aside .lead{margin:0}
.page-block+.page-block .section.tone-pale,.page-block .section.tone-pale{border:0}

/* ---------- Home hero: the archive's full-screen video hero ---------- */
/* The header is overlaid (absolute) on the homepage, so the hero fills the viewport and its
   content starts below the header's height. Type scales with viewport height as well as width. */
.home-hero{position:relative;height:100vh;height:100svh;min-height:560px;background:var(--charcoal);color:#fff;overflow:hidden;isolation:isolate}
.hero-carousel{position:absolute!important;inset:0;z-index:0}
.hero-carousel .swiper-wrapper,.hero-slide{height:100%}
.hero-slide{position:relative;overflow:hidden;background:var(--charcoal);display:flex;align-items:center}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(34,34,34,.5)}
.hero-content{position:relative;z-index:2;padding-top:calc(var(--header-h) + clamp(16px,4vh,48px));padding-bottom:clamp(40px,8vh,96px)}
.hero-copy{max-width:min(640px,56%)}
.public-site .hero-title{font:600 clamp(2rem,min(4.2vw,7.4vh),3.5rem)/1.2 var(--font-heading);color:var(--green);margin:0 0 clamp(12px,2.2vh,20px);letter-spacing:0;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:balance}
.hero-mission{font-size:clamp(1rem,min(1.3vw,2.3vh),1.1875rem);line-height:1.6;color:#fff;margin:0 0 clamp(20px,4.5vh,48px);max-width:48ch}
.btn-pill{border-radius:999px;height:auto;min-height:var(--control-h);padding:15px 26px}
.hero-cta{color:#fff!important;font-size:var(--text-base)}
.hero-cta:hover{background:#fff;border-color:#fff;color:var(--ink)!important;box-shadow:none}
.hero-cta:hover .icon{transform:none}

/* ---------- Reveal motion ---------- */
.has-motion .reveal{opacity:0;transform:translate3d(0,32px,0);transition:opacity .9s var(--ease-out) var(--delay,0s),transform .9s var(--ease-out) var(--delay,0s)}
.has-motion .reveal.is-visible{opacity:1;transform:none}

/* ---------- At a glance ---------- */
.glance-section{background:var(--white);border-bottom:1px solid var(--line)}
.stat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:2px solid var(--ink);overflow:hidden}
.stat-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:32px 28px;margin-left:-1px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.stat-icon{width:32px;height:32px;padding:6px;border-radius:50%;background:var(--pale);color:var(--ink);margin-bottom:14px}
.stat-value{font:600 clamp(1.75rem,1.2rem + 1.5vw,2.625rem)/1 var(--font-heading);letter-spacing:-.02em;color:var(--ink);margin:0 0 8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat-label{font:600 var(--text-base)/1.3 var(--font-body);color:var(--ink);margin:0}
.stat-sub{font-size:var(--text-sm);line-height:1.45;color:var(--muted);margin:0}
.figures-note{display:flex;align-items:flex-start;gap:10px;margin:24px 0 0;font-size:var(--text-sm);color:var(--muted)}
.figures-note .icon{margin-top:3px;color:var(--ink)}

/* ---------- Ticker ---------- */
.ticker{overflow:hidden;border-block:1px solid var(--line);background:var(--pale);margin-top:calc(var(--section) * -1);margin-bottom:var(--section);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker-track{display:flex;width:max-content;gap:48px;padding:20px 0;animation:ticker 50s linear infinite;will-change:transform}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font:500 var(--text-lg)/1 var(--font-heading);color:var(--slate)}
.ticker-item b{font:700 var(--text-sm)/1 var(--font-body);letter-spacing:.08em;color:var(--ink)}
.ticker-item::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:38px}
@keyframes ticker{to{transform:translate3d(-50%,0,0)}}

/* ---------- Finance by source ---------- */
.share-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--mist);margin:0 0 24px;gap:2px}
.share-seg{display:block;height:100%;min-width:3px}
.share-seg:nth-child(6n+1),.source-rows li:nth-child(6n+1) .source-swatch{background:var(--green)}
.share-seg:nth-child(6n+2),.source-rows li:nth-child(6n+2) .source-swatch{background:var(--ink)}
.share-seg:nth-child(6n+3),.source-rows li:nth-child(6n+3) .source-swatch{background:var(--accent)}
.share-seg:nth-child(6n+4),.source-rows li:nth-child(6n+4) .source-swatch{background:var(--slate)}
.share-seg:nth-child(6n+5),.source-rows li:nth-child(6n+5) .source-swatch{background:var(--mist)}
.share-seg:nth-child(6n),.source-rows li:nth-child(6n) .source-swatch{background:#8fd9b0}
.source-rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.source-row{display:grid;grid-template-columns:14px minmax(0,1fr) 110px 72px 130px 22px;align-items:center;gap:20px;padding:20px 8px;border-bottom:1px solid var(--line);color:var(--ink)!important;text-decoration:none!important;transition:background-color .25s,padding .35s var(--ease)}
.source-row:hover{background:var(--pale);padding-inline:16px 12px}
.source-swatch{width:14px;height:14px;border-radius:3px}
.source-name{display:flex;align-items:baseline;gap:14px;min-width:0;flex-wrap:wrap}
.source-name strong{font:700 var(--text-base)/1.2 var(--font-body);letter-spacing:.02em}
.source-name small{font:400 var(--text-base)/1.3 var(--font-body);color:var(--muted)}
.source-projects,.source-share{font-size:var(--text-sm);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.source-amount{font:600 var(--text-lg)/1 var(--font-heading);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.source-go{color:var(--ink);transition:transform .3s var(--ease)}
.source-row:hover .source-go{transform:translateX(4px)}

/* ---------- Featured projects: stacked full-bleed panels ---------- */
.projects-section{background:var(--white);padding-top:var(--section);counter-reset:panel}
.project-stack{position:relative}
.stack-panel{position:sticky;top:0;height:100svh;min-height:560px;max-height:860px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;isolation:isolate;counter-increment:panel;box-shadow:0 -24px 48px rgba(0,0,0,.2)}
.stack-media{position:absolute;inset:-40px 0;width:100%;height:calc(100% + 80px);object-fit:cover;z-index:-2;will-change:transform}
.stack-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,6,.05) 25%,rgba(12,20,6,.82) 100%)}
.stack-content{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end;padding-block:28px 64px;border-top:1px solid rgba(255,255,255,.35)}
.stack-index{font:600 var(--text-sm)/1 var(--font-body);letter-spacing:.08em;margin:0 0 16px;color:rgba(255,255,255,.85)}
.stack-number::before{content:counter(panel,decimal-leading-zero);color:#fff}
.public-site .stack-title{font-size:var(--text-3xl);line-height:1.08;letter-spacing:-.02em;color:#fff;margin:0 0 20px;max-width:22ch}
.stack-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.stack-aside{display:grid;gap:22px;justify-items:start}
.stack-summary{margin:0;color:#fff;font-size:var(--text-base);line-height:1.6}
.stack-facts{display:grid;grid-template-columns:repeat(3,auto);gap:4px 28px;margin:0}
.stack-facts dt{font:600 .6875rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.stack-facts dd{margin:6px 0 0;font:600 var(--text-base)/1.2 var(--font-body);color:#fff;white-space:nowrap}

/* ---------- Focus areas ---------- */
.focus-section{counter-reset:focus}
.focus-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.focus-grid>li{counter-increment:focus}
.focus-card{height:100%;display:flex;flex-direction:column;gap:12px;padding:28px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink)!important;text-decoration:none!important;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s,background-color .3s}
a.focus-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);border-color:var(--mist);background:var(--pale)}
.focus-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.focus-index::before{content:counter(focus,decimal-leading-zero);font:600 var(--text-sm)/1 var(--font-body);color:var(--muted);letter-spacing:.08em}
.focus-icon{width:48px;height:48px;padding:12px;border-radius:50%;background:var(--pale);color:var(--ink);transition:background-color .3s}
a.focus-card:hover .focus-icon{background:var(--green)}
.focus-title{font:600 var(--text-xl)/1.25 var(--font-heading)}
.focus-text{font-size:var(--text-sm);color:var(--muted);line-height:1.55}
.focus-go{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:8px;font:600 var(--text-sm)/1 var(--font-body)}
.focus-go .icon{transition:transform .3s var(--ease)}
a.focus-card:hover .focus-go .icon{transform:translateX(4px)}

/* ---------- Highlights ---------- */
.highlights-section{background:var(--pale);counter-reset:hl}
.highlight-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.highlight-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:32px;padding:32px 0;border-bottom:1px solid var(--mist);counter-increment:hl}
.highlight-index::before{content:counter(hl,decimal-leading-zero);font:500 var(--text-3xl)/1 var(--font-heading);color:var(--ink)}
.highlight-item h3{font-size:var(--text-2xl);margin-bottom:10px}
.highlight-item p{max-width:68ch}

/* ---------- News ---------- */
.news-section{background:var(--white)}
.journal-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-auto-rows:auto;gap:24px}
.journal-grid>.news-card:first-child{grid-row:span 2}
.news-card{position:relative;background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease);display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift)}
.news-media{display:block;overflow:hidden;aspect-ratio:16/9;background:var(--mist)}
.news-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.news-card:hover .news-media img{transform:scale(1.04)}
.news-body{padding:22px 24px 26px;display:grid;gap:12px;align-content:start}
.news-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.news-card h3{font-size:var(--text-xl)}
.journal-grid>.news-card:first-child h3{font-size:var(--text-2xl)}
.news-card h3 a{color:var(--ink);text-decoration:none!important}
.news-card h3 a::after{content:"";position:absolute;inset:0}
.news-card:hover h3 a{text-decoration:underline!important;text-decoration-color:var(--green)!important}
.news-excerpt{color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.journal-grid>.news-card:not(:first-child){display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.journal-grid>.news-card:not(:first-child) .news-media{aspect-ratio:auto;height:100%;min-height:180px}
.journal-grid>.news-card:not(:first-child) .news-excerpt{display:none}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}

/* ---------- Video ---------- */
.video-section{position:relative;min-height:540px;display:flex;align-items:center;overflow:hidden;color:#fff;isolation:isolate}
.video-media{position:absolute;inset:-40px 0;width:100%;height:calc(100% + 80px);object-fit:cover;z-index:-2}
.video-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,20,6,.85),rgba(12,20,6,.35))}
.video-content{padding-block:var(--section)}
.video-content h2{color:#fff;max-width:16ch;margin-bottom:20px}
.video-lead{color:#fff;margin-bottom:32px}
.play-button{display:inline-flex;align-items:center;gap:18px;color:#fff!important;text-decoration:none!important;font:600 var(--text-base)/1 var(--font-body)}
.play-disc{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--green);color:var(--ink);animation:pulse 2.6s var(--ease) infinite;transition:transform .3s var(--ease)}
.play-disc .icon{width:28px;height:28px;margin-left:4px}
.play-button:hover .play-disc{transform:scale(1.08)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,191,99,.55)}70%{box-shadow:0 0 0 22px rgba(0,191,99,0)}100%{box-shadow:0 0 0 0 rgba(0,191,99,0)}}

/* ---------- Partners ---------- */
.partners-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.partners-layout .section-head{margin:0}
.logo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.logo-tile{display:grid;place-items:center;aspect-ratio:3/2;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;text-align:center;color:var(--ink)!important;text-decoration:none!important;font:600 var(--text-sm)/1.3 var(--font-body);transition:background-color .3s,transform .4s var(--ease)}
.logo-tile:hover{background:var(--pale);transform:translateY(-3px)}
.logo-tile img{max-height:64px;width:auto;object-fit:contain}

/* ---------- Call to action ---------- */
.cta-band{position:relative;overflow:hidden;isolation:isolate;padding-block:120px}
.cta-media{position:absolute;inset:-40px 0;width:100%;height:calc(100% + 80px);object-fit:cover;z-index:-1}
.cta-layout{display:flex;justify-content:flex-end}
.cta-card{background:var(--white);border-radius:var(--radius);padding:48px;max-width:620px;box-shadow:var(--shadow-lift)}
.cta-card p{margin:16px 0 28px}
.cta-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.cta-plain{padding-block:72px}
.cta-plain-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta-plain-inner>div{max-width:680px}
.cta-plain-inner p:not(.eyebrow){margin:12px 0 0;font-size:var(--text-lg)}
.cta-green{background:var(--green);color:var(--ink)}
.cta-green .eyebrow{color:var(--ink)}.cta-green .eyebrow::before{background:var(--ink)}
.cta-green .btn-secondary:hover{background:var(--ink);border-color:var(--ink);color:#fff!important}
.cta-dark{background:var(--footer);color:var(--mist)}
.cta-dark h2{color:#fff}.cta-dark .eyebrow{color:var(--pale)}
.cta-light{background:var(--pale)}

/* ---------- Inner page hero ---------- */
.page-hero{position:relative;isolation:isolate;overflow:hidden}
.page-hero--photo{min-height:360px;display:flex;align-items:flex-end;background:var(--footer);color:#fff}
.page-hero-media{position:absolute;inset:-40px 0;width:100%;height:calc(100% + 80px);object-fit:cover;z-index:-2}
.page-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,6,.2),rgba(12,20,6,.82)),linear-gradient(90deg,rgba(12,20,6,.55),rgba(12,20,6,0) 75%)}
.page-hero-inner{padding-block:80px 56px}
.page-hero--plain{background:var(--pale)}
.page-hero--plain .page-hero-inner{padding-block:48px 48px}
.public-site .page-hero-title{font-size:var(--text-4xl);line-height:1.05;letter-spacing:-.02em;max-width:24ch}
.page-hero--photo .page-hero-title{color:#fff}
.page-hero--photo .eyebrow{color:var(--pale)}
.page-hero-lede{font-size:var(--text-lg);line-height:1.55;max-width:62ch;margin:18px 0 0}
.page-hero--photo .page-hero-lede{color:#fff}
.page-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn-secondary-hero{background:transparent;border-color:rgba(255,255,255,.6);color:#fff!important}
.page-hero--plain .btn-secondary-hero{border-color:var(--line-strong);color:var(--ink)!important}
.breadcrumb ol{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;font:600 var(--text-xs)/1.4 var(--font-body);letter-spacing:.04em}
.breadcrumb li{display:inline-flex;align-items:center}
.breadcrumb li+li::before{content:"/";margin:0 10px;opacity:.6}
.breadcrumb a{text-decoration:none!important}
.breadcrumb a:hover{text-decoration:underline!important}
.page-hero--photo .breadcrumb,.page-hero--photo .breadcrumb a{color:#fff}
.page-hero--plain .breadcrumb{color:var(--muted)}
.data-chip{display:inline-flex;align-items:center;gap:8px;margin:20px 0 0;padding:6px 14px;border-radius:999px;background:var(--white);border:1px solid var(--line-strong);font:600 var(--text-xs)/1.3 var(--font-body);color:var(--slate)}
.page-hero--photo .data-chip{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff}

/* ---------- Content blocks ---------- */
.richtext-layout.has-heading{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.richtext-head .display-3{max-width:16ch}
.media-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.media-split.reverse>.media-frame{order:2}
.media-copy .display-3{margin-bottom:20px}
.media-cta{margin-top:24px}
.media-frame{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--mist)}
.media-frame img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1s var(--ease)}
.media-frame:hover img{transform:scale(1.03)}
.media-frame figcaption{font-size:var(--text-xs);color:var(--muted);padding:10px 2px 0;background:var(--white)}
.quote-block{border-left:3px solid var(--accent);padding:4px 0 4px 32px;margin:0 auto;max-width:900px}
.quote-block blockquote{margin:0}
.quote-block p{font:italic 500 var(--text-2xl)/1.4 var(--font-heading);color:var(--ink)}
.quote-block figcaption{margin-top:18px;font:600 var(--text-sm)/1.3 var(--font-body);color:var(--muted)}
.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.link-card{display:flex;flex-direction:column;height:100%;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--slate)!important;text-decoration:none!important;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
a.link-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift);border-color:var(--mist)}
.link-card-media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--mist)}
.link-card-media img{width:100%;height:100%;object-fit:cover}
.link-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:28px;flex:1}
.link-card-title{font:600 var(--text-xl)/1.25 var(--font-heading);color:var(--ink)}
.link-card-text{font-size:var(--text-sm);color:var(--muted);line-height:1.55}
.card-foot{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:8px;font:600 var(--text-sm)/1.2 var(--font-body);color:var(--ink);border-bottom:2px solid var(--green);padding-bottom:3px}
.card-foot .icon{width:1em;height:1em;transition:transform .3s var(--ease)}
a.link-card:hover .card-foot .icon{transform:translateX(4px)}
.stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));counter-reset:step;position:relative}
.stepper::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:var(--mist)}
.stepper li{position:relative;padding-right:20px;counter-increment:step}
.stepper li::before{content:counter(step,decimal-leading-zero);position:relative;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--white);border:2px solid var(--green);color:var(--ink);font:600 var(--text-base)/1 var(--font-heading);margin-bottom:20px;transition:background-color .3s}
.stepper li:hover::before{background:var(--green)}
.stepper h3{font-size:var(--text-lg);margin-bottom:6px}
.stepper p{font-size:var(--text-sm);color:var(--muted);margin:0}
.faq-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start}
.faq-layout .section-head{margin:0}
.faq-list{border-top:2px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 4px;cursor:pointer;font:600 var(--text-lg)/1.35 var(--font-heading);color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .icon{width:22px;height:22px;transition:transform .3s var(--ease)}
.faq-item[open] summary .icon{transform:rotate(45deg)}
.faq-answer{padding:0 4px 24px}
.doc-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.doc-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto 22px;gap:20px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);color:var(--ink)!important;text-decoration:none!important;transition:background-color .25s}
a.doc-row:hover{background:var(--pale)}
.doc-icon{width:24px;height:24px}
.doc-main{display:grid;gap:4px;min-width:0}
.doc-main strong{font:600 var(--text-lg)/1.3 var(--font-heading)}
.doc-main small{font-size:var(--text-sm);color:var(--muted)}
.doc-meta{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.summary-label{font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}
.summary-value{font:600 var(--text-4xl)/1 var(--font-heading);color:var(--ink);margin:12px 0 8px}
.summary-sub{color:var(--muted);margin:0}
.summary-status{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.summary-status li{display:grid;grid-template-columns:14px minmax(0,1fr) 60px 120px;gap:16px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line)}
.summary-status-count,.summary-status-amount{text-align:right;font-variant-numeric:tabular-nums}
.summary-status-amount{font:600 var(--text-base)/1 var(--font-heading)}
.status-dot{width:12px;height:12px;border-radius:50%;background:var(--mist)}
.status-dot.status-Ongoing{background:var(--green)}.status-dot.status-Approved{background:var(--ink)}.status-dot.status-Completed{background:var(--slate)}.status-dot.status-Pipeline{background:var(--accent)}
.map-panel{border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.map-status{font-size:var(--text-sm);color:var(--muted);margin:12px 0 0}

/* ---------- People ---------- */
.people-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.person-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:box-shadow .4s var(--ease),transform .4s var(--ease)}
.person-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.person-avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--pale);color:var(--ink);font:600 var(--text-lg)/1 var(--font-heading);letter-spacing:.04em}
.person-name{font-size:var(--text-lg);margin:4px 0}
.person-role{margin:0;color:var(--slate);font-size:var(--text-sm)}
.person-org{margin:2px 0 0;color:var(--muted);font-size:var(--text-xs)}
.person-link{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--text-sm);font-weight:600;word-break:break-all}
.office-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.office-layout .section-head{margin:0}
.office-card{background:var(--footer);color:var(--mist);border-radius:var(--radius);padding:32px}
.office-card .eyebrow{color:var(--pale)}
.public-site .office-card-title{font-size:var(--text-xl);color:#fff;margin-bottom:20px}
.office-card .contact-list{margin-bottom:24px}
.office-card .contact-list a{color:#fff}
.office-card .btn-outline{background:transparent;border-color:rgba(255,255,255,.55);color:#fff!important}
.office-card .btn-outline:hover{background:#fff;color:var(--ink)!important}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.contact-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start}
.contact-list .icon{width:18px;height:18px;margin-top:3px;color:var(--green)}
.contact-list strong{display:block;font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.contact-list a{word-break:break-word}

/* ---------- Contact page ---------- */
.contact-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:start}
.contact-panel{background:var(--pale);border-radius:var(--radius);padding:32px}
.contact-panel .contact-list{gap:22px}
.contact-follow{margin-top:24px;padding-top:20px;border-top:1px solid var(--mist)}
.contact-follow strong{display:block;font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.contact-follow .follow-links a{color:var(--ink);border:1px solid var(--line-strong)}
.contact-people{margin-top:56px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form-grid .span-2{grid-column:1/-1}
.form-field{display:grid;gap:8px;align-content:start}
.form-field label{font:600 var(--text-sm)/1.3 var(--font-body);color:var(--ink)}
.form-field label small{font-weight:400;color:var(--muted)}
.form-field input,.form-field textarea,.form-field select{width:100%;height:var(--control-h);padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);font-size:var(--text-base);transition:border-color .2s,box-shadow .2s}
.form-field textarea{height:auto;min-height:180px;padding:12px 16px;resize:vertical;line-height:1.55}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--mist)}
.form-field.has-error input,.form-field.has-error textarea{border-color:#b42318}
.field-error{color:#b42318;font-size:var(--text-sm);margin:0}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}
.form-note{font-size:var(--text-xs);color:var(--muted);margin:0}

/* ---------- GCF project rows ---------- */
.project-feature{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:center;padding-block:56px;border-bottom:1px solid var(--line)}
.project-feature:first-child{padding-top:0}
.project-feature:last-child{border-bottom:0}
.project-feature:nth-child(even) .media-frame{order:2}
.project-feature h3{font-size:var(--text-3xl);margin:14px 0 16px}
.figure-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0 28px;border-block:1px solid var(--line)}
.figure-strip>div{padding:16px 16px 16px 0;min-width:0}
.figure-strip>div+div{padding-left:16px;border-left:1px solid var(--line)}
.figure-strip dt{font:600 .6875rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.figure-strip dd{margin:6px 0 0;font:600 var(--text-lg)/1.2 var(--font-heading);color:var(--ink)}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.data-table{min-width:640px;font-size:var(--text-sm)}
.data-table th,.data-table td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.data-table thead th{background:var(--pale);color:var(--ink);font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.data-table tbody tr:hover{background:#f7fdf3}
.data-table tfoot th,.data-table tfoot td{background:var(--mist);font-weight:700;color:var(--ink);border-bottom:0}
.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.data-table a{font-weight:600}

/* ---------- Tooltip ---------- */
.tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--muted);cursor:help;vertical-align:middle;flex:none}
.tip .icon{width:16px;height:16px}
.tip:hover,.tip:focus-visible{color:var(--ink)}
.tip-body{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px);width:max-content;max-width:min(280px,80vw);background:var(--ink);color:#fff;font:400 var(--text-xs)/1.5 var(--font-body);letter-spacing:0;text-transform:none;text-align:left;padding:10px 12px;border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s,visibility 0s linear .2s;z-index:30;white-space:normal}
.tip-body::after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--ink)}
.tip:hover .tip-body,.tip:focus .tip-body{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}

/* ---------- Directories ---------- */
.group-block+.group-block{margin-top:64px}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:14px}
.group-head h2{font-size:var(--text-2xl)}
.group-head p{margin:0;color:var(--muted);font-size:var(--text-sm)}
.dir-rows{list-style:none;margin:0;padding:0}
.dir-row{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,240px) 22px;gap:24px;align-items:center;padding:22px 8px;border-bottom:1px solid var(--line);color:var(--ink)!important;text-decoration:none!important;transition:background-color .25s,padding .35s var(--ease)}
.dir-row:hover{background:var(--pale);padding-inline:16px 12px}
.monogram{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--radius);background:var(--pale);color:var(--ink);font:700 var(--text-sm)/1 var(--font-body);letter-spacing:.04em;text-align:center;padding:4px;overflow:hidden}
.dir-main{min-width:0}
.dir-main h3{font-size:var(--text-xl)}
.dir-sub{font-size:var(--text-sm);color:var(--muted);margin:4px 0 0}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.dir-figures{display:grid;gap:8px}
.dir-amount{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:600 var(--text-lg)/1 var(--font-heading);white-space:nowrap}
.dir-amount small{font:600 var(--text-xs)/1 var(--font-body);color:var(--muted)}
.meter{height:6px;border-radius:999px;background:var(--mist);overflow:hidden}
.meter span{display:block;height:100%;background:var(--green);border-radius:inherit}
.dir-count{font-size:var(--text-xs);color:var(--muted)}
.dir-go{color:var(--ink);transition:transform .3s var(--ease)}
.dir-row:hover .dir-go{transform:translateX(4px)}
.card-dir{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.org-card{display:flex;flex-direction:column;gap:8px;height:100%;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink)!important;text-decoration:none!important;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.org-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--mist)}
.org-card h3{font-size:var(--text-lg)}
.org-short{font:700 var(--text-xs)/1.2 var(--font-body);letter-spacing:.08em;color:var(--slate);text-transform:uppercase}
.org-meta{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--muted)}

/* ---------- KPI strip + fact list ---------- */
.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden;margin:0}
.kpi-strip>div{padding:24px 26px;min-width:0}
.kpi-strip>div+div{border-left:1px solid var(--line)}
.kpi-strip dt{font:600 var(--text-xs)/1.3 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:4px}
.kpi-strip dd{margin:10px 0 0;font:600 var(--text-2xl)/1.05 var(--font-heading);color:var(--ink)}
.kpi-strip dd small{display:block;font:400 var(--text-xs)/1.4 var(--font-body);color:var(--muted);margin-top:6px}
.fact-list{margin:0}
.fact-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.fact-list>div:first-child{border-top:1px solid var(--line)}
.fact-list dt{color:var(--muted);font-size:var(--text-sm)}
.fact-list dd{margin:0;font-weight:600;color:var(--ink);text-align:right}
.detail-layout{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:56px;align-items:start}
.detail-layout>*{min-width:0}
.detail-section+.detail-section{margin-top:56px}
.detail-section h2{font-size:var(--text-2xl);margin-bottom:20px}
.aside-card{background:var(--pale);border-radius:var(--radius);padding:28px}
.aside-card h2{font-size:var(--text-xl);margin-bottom:16px}
.chip-cloud{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- Article ---------- */
.article{max-width:760px;margin-inline:auto}
.article-figure{margin:0 0 40px;border-radius:var(--radius);overflow:hidden}
.article-figure img{display:block;width:100%;max-height:520px;object-fit:cover}
.article-body{font-size:var(--text-lg);line-height:1.75}
.article-body p{margin:0 0 1.2em}
.article-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 28px}

/* ---------- Footer ---------- */
.site-footer{background:var(--footer);color:var(--mist);font-size:var(--text-sm)}
.footer-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:48px;padding-block:72px 56px;align-items:start}
.footer-logos{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.footer-logos img{height:52px;width:auto;display:block}
.footer-logos img+img{background:var(--white);border-radius:var(--radius-sm);padding:6px 8px;height:52px}
.footer-name{font:600 var(--text-xl)/1.2 var(--font-heading);color:#fff;margin:0 0 10px}
.footer-about{max-width:36ch;line-height:1.6;margin:0 0 24px}
.footer-label{font:600 var(--text-xs)/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid rgba(213,234,216,.15)}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:var(--green);text-decoration:underline;text-decoration-color:var(--green)}
.site-footer .contact-list{gap:14px}
.site-footer .contact-list .icon{color:var(--green)}
.site-footer .follow-links a{width:38px;height:38px;border:1px solid rgba(213,234,216,.3)}
.site-footer .follow-links a:hover{background:var(--green);border-color:var(--green);color:var(--ink);text-decoration:none}
.footer-follow .footer-label{border:0;padding:0;margin-bottom:10px}
.footer-bottom{border-top:1px solid rgba(213,234,216,.15)}
.footer-bottom-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:20px;font-size:var(--text-xs)}
.footer-bottom p{margin:0}
.footer-bottom-links{display:flex;gap:24px;flex-wrap:wrap}

/* ---------- Guest (staff sign-in) and account pages ---------- */
.site-main:has(.auth){background:var(--pale);display:grid;place-items:center;padding:72px var(--gutter) 96px}
.site-main .auth{width:min(100%,460px);margin:0 auto}
.site-main .auth-brand{text-align:left;margin:0 0 24px}
.site-main .auth-brand h1{font-size:var(--text-3xl);margin:0 0 8px}
.site-main .sub{color:var(--muted);margin:0}
.site-main .card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.site-main .auth form{display:grid;gap:18px}
.site-main .field{display:grid;gap:8px;min-width:0}
.site-main .field label,.site-main .field .label{font:600 var(--text-sm)/1.3 var(--font-body);color:var(--ink)}
.site-main .field-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.site-main .field-head a{font-size:var(--text-xs);font-weight:600}
.site-main .with-icon{position:relative;display:block}
.site-main .with-icon svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.site-main .field input{width:100%;height:var(--control-h);padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--white)}
.site-main .with-icon input{padding-left:44px}
.site-main .field input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--mist)}
.site-main .btn-block{width:100%}
.site-main .auth .btn-secondary{border-color:var(--line-strong)}
.site-main .auth-alt{text-align:center;font-size:var(--text-xs);color:var(--muted);margin:18px 0 0}
.site-main .err{color:#b42318;font-size:var(--text-sm);margin:0}
.site-main .sent-icon{background:var(--pale);color:var(--ink)}
.site-main:has(.acct-head){padding:56px var(--gutter) 96px;max-width:900px;margin-inline:auto}
.acct-head h1{font-size:var(--text-4xl);margin-bottom:10px}
.acct-card{margin-top:20px}
.acct-row{display:flex;gap:16px;align-items:center}
.acct-row .avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--pale);color:var(--ink);font-weight:700}
.kv{display:grid;gap:12px}
.pill{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600}
.pill.yes{background:var(--pale);color:var(--ink)}.pill.no{background:#fdecea;color:#912018}

/* ---------- Not found ---------- */
.not-found{padding-block:120px}
.not-found .code{font:500 clamp(5rem,3rem + 8vw,9rem)/1 var(--font-heading);color:var(--mist);margin:0 0 8px}
.not-found h1{font-size:var(--text-4xl);margin-bottom:16px}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .header-inner{gap:20px}
  .nav-link{padding:10px 8px}
  .focus-grid,.card-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stepper{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:36px}
  .stepper::before{display:none}
}
@media (max-width:1100px){
  .main-nav{display:none}
  .mobile-nav{display:block}
  .site-header .header-inner{position:relative}
}
@media (max-width:1024px){
  :root{--section:72px}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split-head,.media-split,.partners-layout,.project-feature,.stack-content,.richtext-layout.has-heading,.faq-layout,.contact-layout,.office-layout,.summary-grid,.detail-layout{grid-template-columns:1fr;gap:32px}
  .split-head{margin-bottom:40px}
  .media-split.reverse>.media-frame,.project-feature:nth-child(even) .media-frame{order:0}
  .journal-grid{grid-template-columns:1fr 1fr}
  .journal-grid>.news-card:first-child{grid-column:1/-1;grid-row:auto}
  .journal-grid>.news-card:not(:first-child){display:flex}
  .journal-grid>.news-card:not(:first-child) .news-media{aspect-ratio:16/9;height:auto;min-height:0}
  .source-row{grid-template-columns:14px minmax(0,1fr) 64px 110px 20px}
  .source-projects{display:none}
  .card-grid,.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stack-content{gap:20px;padding-bottom:48px}
}
@media (max-width:760px){
  :root{--section:56px;--gutter:16px}
  body.public-site{font-size:1rem}
  .mobile-nav summary span{display:none}
  .mobile-nav summary{padding:0 12px}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-tile{padding:24px 16px}
  .source-row{grid-template-columns:12px minmax(0,1fr) auto;gap:12px;padding:16px 4px}
  .source-share,.source-go{display:none}
  .source-name{display:grid;gap:2px}
  .source-name small{font-size:var(--text-sm)}
  .stack-panel{min-height:620px}
  .stack-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px}
  .stack-facts dd{font-size:var(--text-sm);white-space:normal}
  .focus-grid,.card-grid,.card-grid.cols-2,.card-grid.cols-4,.journal-grid,.news-grid{grid-template-columns:1fr}
  .highlight-item{grid-template-columns:1fr;gap:12px}
  .cta-band{padding-block:64px}
  .cta-card{padding:28px}
  .cta-plain{padding-block:56px}
  .page-hero--photo{min-height:280px}
  .page-hero-inner{padding-block:56px 40px}
  .page-hero--plain .page-hero-inner{padding-block:36px}
  .stepper{grid-template-columns:1fr;row-gap:24px}
  .stepper li{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;padding:0}
  .stepper li::before{margin:0;grid-row:span 2}
  .figure-strip{grid-template-columns:1fr}
  .figure-strip>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .dir-row{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:18px 4px}
  .monogram{width:48px;height:48px;font-size:var(--text-xs)}
  .dir-figures{grid-column:2}
  .dir-go{display:none}
  .doc-row{grid-template-columns:24px minmax(0,1fr);gap:14px}
  .doc-meta{grid-column:2;justify-content:flex-start}
  .doc-go{display:none}
  .form-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:36px;padding-block:56px 40px}
  .kpi-strip>div+div{border-left:0;border-top:1px solid var(--line)}
  .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .group-head{flex-direction:column;gap:4px}
  .summary-status li{grid-template-columns:12px minmax(0,1fr) 40px auto;gap:10px}
}
@media (max-width:420px){
  .stat-tile{padding:20px 12px}
  .stat-value{white-space:normal;font-size:var(--text-2xl)}
  .stack-facts{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .public-site *,.public-site *::before,.public-site *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero-media{animation:none;transform:none}
  .ticker-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;row-gap:12px;padding-inline:16px}
  .ticker-track .ticker-item:nth-child(n+9){display:none}
  .stack-panel{position:relative;top:auto}
}
@media print{
  .site-header,.site-footer,.hero-controls,.ticker{display:none!important}
  .stack-panel{position:relative;height:auto;min-height:0}
}
/* News listing */
.news-lead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin-bottom:32px}
.news-lead .news-media{aspect-ratio:auto;height:100%;min-height:340px}
.news-lead .news-body{padding:40px;align-content:center;gap:16px}
.news-lead h2{font-size:var(--text-3xl)}
.news-lead h2 a{color:var(--ink);text-decoration:none!important}
.news-lead h2 a::after{content:"";position:absolute;inset:0}
@media (max-width:760px){.news-lead{display:flex}.news-lead .news-media{aspect-ratio:16/9;min-height:0}.news-lead .news-body{padding:24px}}
.cap{text-transform:capitalize}
.doc-row{grid-template-columns:28px minmax(0,1fr) auto auto}
.doc-open{display:inline-flex;align-items:center;gap:6px;font:600 var(--text-sm)/1 var(--font-body);white-space:nowrap;border-bottom:2px solid var(--green);padding-bottom:3px}
.chip-cloud a.tag{text-decoration:none}.chip-cloud a.tag:hover{background:var(--mist)}
.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
@media (max-width:760px){.doc-row{grid-template-columns:24px minmax(0,1fr)}.doc-open{grid-column:2}}
.kpi-strip>div:last-child .tip-body,.dash-note .tip-body{left:auto;right:-10px;transform:translateY(4px)}
.kpi-strip>div:last-child .tip:hover .tip-body,.kpi-strip>div:last-child .tip:focus .tip-body,.dash-note .tip:hover .tip-body,.dash-note .tip:focus .tip-body{transform:none}
.kpi-strip>div:last-child .tip-body::after,.dash-note .tip-body::after{left:auto;right:14px}
.data-table td a{text-decoration:none}.data-table td a:hover{text-decoration:underline;text-decoration-color:var(--green)}

@media (max-width:760px){
  .stack-panel{position:relative;top:auto;height:auto;min-height:560px;max-height:none;box-shadow:none}
  .stack-content{padding-top:160px}
  .glance-section .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Polish pass: balanced hero headline, legible slide caption, consistent spacing for chips and button rows */
.page-hero .data-chip,.data-chip{margin-top:20px}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}

/* Header and hero on tablets and phones */
@media (max-width:1100px){.header-follow{display:none}}
@media (max-width:760px){
  :root{--header-h:84px}
  .brand-logo{width:160px}
  .hero-copy{max-width:100%}
  .hero-content{padding-top:calc(var(--header-h) + 24px)}
  .public-site .hero-title{font-size:clamp(1.875rem,min(8.4vw,6vh),2.5rem)}
  .hero-mission{font-size:1rem}
}
.footer-logos img{width:180px;height:auto}

/* Hero slider controls: one bar inside the content width. Dots sit under the text on the left (the active dot
   stretches and fills while the slide plays); arrows sit on the right, square-cornered like every other button. */
.hero-controls{position:absolute;left:0;right:0;bottom:clamp(24px,5vh,48px);z-index:4;pointer-events:none}
.hero-controls-row{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hero-controls-row>*{pointer-events:auto}
.hero-dots{position:static!important;display:flex;align-items:center;gap:10px;width:auto!important}
.hero-dots .swiper-pagination-bullet{position:relative;overflow:hidden;width:10px;height:10px;margin:0!important;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.45);opacity:1;cursor:pointer;transition:width .4s var(--ease),background-color .25s}
.hero-dots .swiper-pagination-bullet:hover{background:rgba(255,255,255,.8)}
.hero-dots .swiper-pagination-bullet-active{width:40px;background:rgba(255,255,255,.45)}
.hero-dots .swiper-pagination-bullet-active::after{content:"";position:absolute;inset:0;background:var(--green);transform-origin:left;transform:scaleX(var(--hero-progress,1))}
.hero-dots .swiper-pagination-bullet:focus-visible{outline:2px solid #fff;outline-offset:3px}
.hero-arrows{display:flex;gap:8px}
.hero-arrow{display:grid;place-items:center;width:var(--control-h);height:var(--control-h);padding:0;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.7);background:transparent;color:#fff;cursor:pointer;transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.hero-arrow .icon{width:20px;height:20px}
.hero-arrow:hover{background:#fff;border-color:#fff;color:var(--ink)}
.hero-arrow:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:760px){.hero-arrow{width:44px;height:44px}}
/* Slide text anchors to the bottom-left, directly above the dots: text, dots and arrows share one left edge
   and one bottom band instead of the text floating mid-screen. */
.hero-slide{align-items:flex-end}
.hero-content{padding-bottom:calc(clamp(24px,5vh,48px) + var(--control-h) + clamp(28px,5vh,56px))}
.hero-mission{margin-bottom:clamp(20px,3.5vh,32px)}

/* ---- Editorial pass after comparing with thirdway.com (1440x900) ---- */
/* 1. Larger, tighter single-style section headlines, intro top-aligned beside them */
.display-2{font-size:clamp(2.25rem,1.3rem + 3vw,4.25rem);line-height:1.04;letter-spacing:-.02em}
.split-head{align-items:start;margin-bottom:64px}
.split-head-aside{padding-top:10px}
/* 2. Centred headline statement band before the figures */
.public-site .statement{font:500 clamp(1.75rem,1.1rem + 2.2vw,3.25rem)/1.2 var(--font-heading);color:var(--ink);text-align:center;max-width:30ch;margin:8px auto 72px;letter-spacing:-.015em;text-wrap:balance}
/* 3. Focus areas as tall photo cards; the description slides up on hover or focus */
.focus-card.has-image{position:relative;overflow:hidden;min-height:440px;padding:24px;justify-content:flex-end;border:0;color:#fff!important;background:var(--footer);isolation:isolate}
.focus-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--ease)}
.focus-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,6,.05) 30%,rgba(12,20,6,.85) 100%);transition:background-color .4s}
.focus-card.has-image .focus-top{position:absolute;top:24px;left:24px;right:24px;margin:0}
.focus-card.has-image .focus-index::before{color:#fff}
.focus-card.has-image .focus-icon{background:rgba(255,255,255,.18);color:#fff}
.focus-body{display:grid;gap:10px}
.focus-card.has-image .focus-title{color:#fff;font-size:var(--text-2xl)}
.focus-card.has-image .focus-text,.focus-card.has-image .focus-go{color:#fff}
.focus-card.has-image .focus-text,.focus-card.has-image .focus-go{display:block;max-height:0;overflow:hidden;opacity:0;transform:translateY(12px);transition:opacity .35s var(--ease),transform .35s var(--ease),max-height .45s var(--ease)}
.focus-card.has-image:hover .focus-text,.focus-card.has-image:focus-visible .focus-text,.focus-card.has-image:focus-within .focus-text,.focus-card.has-image:hover .focus-go,.focus-card.has-image:focus-visible .focus-go{opacity:1;transform:none;grid-template-rows:1fr}
.focus-card.has-image:hover .focus-media{transform:scale(1.05)}
a.focus-card.has-image:hover{background:var(--footer);transform:none;box-shadow:none}
@media (hover:none){.focus-card.has-image .focus-text,.focus-card.has-image .focus-go{opacity:1;transform:none;max-height:8em}}
.focus-card.has-image .focus-go{display:inline-flex}
/* 4. Call to action: large headline in a flush panel over the photograph */
.cta-card{border-radius:0;padding:56px;max-width:680px}
.cta-card .display-3{font-size:var(--text-3xl);line-height:1.1}
/* 5. Footer: large serif navigation links */
.footer-explore ul{gap:6px}
.footer-explore a{font:500 var(--text-xl)/1.3 var(--font-heading);white-space:nowrap}
@media (max-width:760px){.focus-card.has-image{min-height:320px}.cta-card{padding:28px}.public-site .statement{margin-bottom:48px}}
/* Media layers must beat the base `img{height:auto}` rule */
.public-site .focus-media,.public-site .hero-media,.public-site .news-media img,.public-site .link-card-media img{height:100%}
.public-site .stack-media,.public-site .page-hero-media,.public-site .cta-media,.public-site .video-media{height:calc(100% + 80px)}

/* ---------- White ground: section panels carry no tint; separation comes from lines ---------- */
.tone-pale,.tone-mist,.highlights-section,.cta-light,.page-hero--plain,.site-main:has(.auth){background:var(--white)}
.ticker{background:var(--white)}
.contact-panel,.aside-card{background:var(--white);border:1px solid var(--line)}
.page-hero--plain{border-bottom:1px solid var(--line)}

/* Date and source notes sit apart from the figures they describe */
.public-site .figures-note{margin-top:32px}
.public-site .dash-note{margin-top:16px}

/* Logo over the hero: a faint dark glass so the green logo stays legible over green footage */
.site-header--overlay .brand{position:relative;isolation:isolate}
/* A feathered blur behind the logo: no visible box edge, it fades into the footage so the logo reads as part of the scene */
.site-header--overlay .brand::before{content:"";position:absolute;z-index:-1;inset:-18% -14%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(12,20,6,.34) 0%,rgba(12,20,6,.22) 45%,rgba(12,20,6,0) 72%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-mask-image:radial-gradient(ellipse at center,#000 40%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 40%,transparent 72%)}

/* Touch screens swipe the hero; arrows are for mouse users only */
@media (hover:none) and (pointer:coarse){.hero-arrows{display:none}}
/* No italics on the public site; table headers sit on white with a strong rule */
.quote-block blockquote,.quote-block p{font-style:normal}
.data-table thead th{background:var(--white);border-bottom:2px solid var(--ink)}

/* Featured news headline stays in proportion with long titles */
.public-site .news-lead h2{font-size:var(--text-2xl);line-height:1.2}
/* Table totals: white with a strong rule instead of a tinted band */
.data-table tfoot th,.data-table tfoot td{background:var(--white);border-top:2px solid var(--ink)}
.section--tight{padding-block:0 var(--section);margin-top:calc(32px - var(--section))}
.section--tight .figures-note{margin-top:0}

/* ---- People cards (CF-ENQUIRIES fork): header row, then full-width contact rows so emails never break mid-address ---- */
.people-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px}
.person-card{display:flex;flex-direction:column;gap:20px;padding:24px}
.person-head{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:center}
.person-body .person-name{margin:0 0 4px}
.public-site .person-role,.public-site .person-org{margin:0}
.person-contact{list-style:none;margin:auto 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:grid;gap:10px}
.person-contact li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:center}
.person-contact .icon{width:18px;height:18px;color:var(--green)}
.person-contact .person-link{margin:0;display:inline;font-size:var(--text-sm);font-weight:600;word-break:normal;overflow-wrap:anywhere;white-space:normal}
/* Uploaded logos of any shape fit the header and footer slots */
.brand-logo{width:auto;max-width:230px;max-height:92px}
.footer-logos img{width:auto;max-width:180px;max-height:72px}
@media (max-width:760px){.brand-logo{max-width:160px;max-height:64px}}

/* ---- Audit pass ---- */
/* Register columns with no data yet stay hidden so the table reads cleanly */
.data-table .col-empty{display:none}
/* Wide tables: a soft shadow on the trailing edge hints that the table scrolls sideways */
.table-wrap{background:linear-gradient(90deg,var(--white) 30%,rgba(255,255,255,0)) left/40px 100% no-repeat,linear-gradient(270deg,var(--white) 30%,rgba(255,255,255,0)) right/40px 100% no-repeat,radial-gradient(farthest-side at 0 50%,rgba(15,23,42,.14),transparent) left/16px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,rgba(15,23,42,.14),transparent) right/16px 100% no-repeat,var(--white);background-attachment:local,local,scroll,scroll,scroll}
/* Account page */
.acct-head{margin-bottom:32px}
.acct-head .lede{margin:0;color:var(--muted)}
.acct-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--white)}
.acct-card+.acct-card{margin-top:20px}
.acct-card h2{font-size:var(--text-xl);margin:0 0 6px}
.acct-card>.sub{margin:0 0 20px;color:var(--muted)}
.acct-row{flex-wrap:wrap}
.acct-row .avatar{width:56px;height:56px;font-size:var(--text-lg)}
.acct-row h2{font-size:var(--text-lg)}
.kv{display:grid;gap:20px;margin-top:24px}
@media (min-width:34rem){.kv{grid-template-columns:1fr 1fr}}
.kv .label{display:block;margin-bottom:4px;font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pill.yes{gap:6px;align-items:center}
.danger-row{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.danger-row .sub{color:var(--muted)}
.acct-card .field+.field{margin-top:16px}
.acct-card form .btn{margin-top:20px}
.btn-sm{height:36px;padding:0 14px;font-size:var(--text-xs)}
/* Signed-in staff browsing the site during maintenance */
.staff-maintenance-bar{position:relative;z-index:60;padding:10px 16px;background:#fef3c7;color:#0f172a;font-size:var(--text-sm);text-align:center;border-bottom:1px solid #fcd34d}
.staff-maintenance-bar a{font-weight:600}
.staff-maintenance-bar~.site-header--overlay{top:auto}
/* Tooltips: a hidden bubble must not widen the page; on phones an opened one becomes a full-width note at the bottom of the screen. */
.tip-body{display:none}
.tip:hover .tip-body,.tip:focus .tip-body,.tip:focus-within .tip-body{display:block}
@media (max-width:760px){
  .tip:hover .tip-body,.tip:focus .tip-body,.tip:focus-within .tip-body,
  .kpi-strip>div:last-child .tip:hover .tip-body,.kpi-strip>div:last-child .tip:focus .tip-body,.dash-note .tip:hover .tip-body,.dash-note .tip:focus .tip-body{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));top:auto;width:auto;max-width:none;transform:none;z-index:200;box-shadow:0 12px 32px rgba(15,23,42,.28)}
  .tip-body::after{display:none}
}
