/* ==========================================================
   GHID website styles
   Colours come from the logo green (#0B6B2C).
   Fonts: Montserrat (titles, menu, buttons) + Open Sans (text)
   ========================================================== */
*{box-sizing:border-box}
html,body{margin:0}
img{max-width:100%}
:root{
  --bg:#F3F6F0; --surface:#FFFFFF; --surface-2:#E7EEE3; --ink:#13241A; --muted:#4D5E53; --line:#D3DDD0;
  --green:#0B6B2C; --green-deep:#084A1F; --on-green:#FFFFFF; --lake:#1F5E74; --ochre:#C98F1E; --ochre-soft:#F6E7C4;
  --basalt:#0A4A22; --on-basalt:#EEF7F0; --on-basalt-muted:#B8D6C0;
  --display:"Montserrat","Segoe UI",Arial,sans-serif;
  --body:"Open Sans","Segoe UI",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --radius:10px; --wrap:1600px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#0E1611; --surface:#152019; --surface-2:#1B2A20; --ink:#E6EEE6; --muted:#A3B3A8; --line:#2A3B30;
  --green:#4CB36D; --green-deep:#8AD4A0; --on-green:#07200F; --lake:#6DB3CB; --ochre:#E2B24F; --ochre-soft:#3A2F16;
  --basalt:#0B3A1C; --on-basalt:#E6EEE6; --on-basalt-muted:#A6C4AE;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0E1611; --surface:#152019; --surface-2:#1B2A20; --ink:#E6EEE6; --muted:#A3B3A8; --line:#2A3B30;
  --green:#4CB36D; --green-deep:#8AD4A0; --on-green:#07200F; --lake:#6DB3CB; --ochre:#E2B24F; --ochre-soft:#3A2F16;
  --basalt:#0B3A1C; --on-basalt:#E6EEE6; --on-basalt-muted:#A6C4AE;
}
:root:not([data-lang="fr"]) .fr, :root[data-lang="fr"] .en{display:none !important}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6}
a{color:var(--green)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--ochre);outline-offset:2px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,3vw,48px)}
h1,h2,h3,.display{font-family:var(--display);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:800}
h1{font-size:clamp(36px,5.2vw,68px)}
h2{font-size:clamp(28px,3.6vw,46px)}
h3{font-size:clamp(19px,1.7vw,22px);font-weight:700;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;color:var(--green)}
p{margin:0}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--green)}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--muted);max-width:62ch}
.prose{display:grid;gap:16px;max-width:68ch}
.muted{color:var(--muted)}
.section{padding-block:clamp(56px,8vw,104px)}
.section-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px)}
.todo{background:var(--ochre-soft);color:var(--ink);border:1px dashed var(--ochre);border-radius:6px;padding:1px 7px;font-size:.92em}
.todo-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--ochre-soft);color:var(--ink);border:1px dashed var(--ochre);border-radius:4px;padding:2px 7px}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;font:700 15px/1 var(--display);letter-spacing:.005em;padding:15px 22px;border-radius:999px;border:2px solid var(--green);text-decoration:none;cursor:pointer;transition:background .15s,color .15s,transform .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--green);color:var(--on-green)}
.btn-primary:hover{background:var(--green-deep);border-color:var(--green-deep)}
.btn-ghost{background:transparent;color:var(--green)}
.btn-ghost:hover{background:var(--surface-2)}
.btn-light{background:var(--on-basalt);color:var(--basalt);border-color:var(--on-basalt)}
.btn-outline-light{background:transparent;color:var(--on-basalt);border-color:var(--on-basalt-muted)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:20px;min-height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex-shrink:0}
.logo-badge{width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 1px var(--line)}
.logo-badge img{width:44px;height:44px}
.brand b{font-family:var(--display);font-size:26px;font-weight:800;letter-spacing:.01em;line-height:1}
.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.nav{display:flex;gap:2px;margin-left:auto;align-items:center;flex-shrink:0}
.nav a{font-family:var(--display);font-size:14.5px;font-weight:600;color:var(--ink);text-decoration:none;padding:9px 11px;border-radius:8px;white-space:nowrap}
.nav a:hover{background:var(--surface-2)}
.nav a[aria-current="page"]{color:var(--green);box-shadow:inset 0 -2px 0 var(--green);border-radius:0}
.tools{display:flex;gap:8px;align-items:center;flex-shrink:0}
.lang{display:flex;border:1.5px solid var(--line);border-radius:999px;overflow:hidden}
.lang button{font:700 13px/1 var(--display);letter-spacing:.06em;background:transparent;color:var(--muted);border:0;padding:9px 11px;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.btn-donate{padding:11px 18px;font-size:15px;white-space:nowrap}
.menu-btn{display:none;background:transparent;border:1.5px solid var(--line);border-radius:10px;width:44px;height:44px;color:var(--ink);cursor:pointer}
/* The menu turns into the ☰ button whenever the links don't fit on one line
   (js/main.js measures it, so it works for both English and French). */
.site-header.compact .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--line);padding:10px clamp(16px,3vw,48px) 18px;gap:0}
.site-header.compact .nav:not(.open){display:none}
.site-header.compact .nav a{padding:13px 6px;border-bottom:1px solid var(--line);border-radius:0}
.site-header.compact .nav a[aria-current="page"]{box-shadow:none}
.site-header.compact .menu-btn{display:grid;place-items:center}
.site-header.compact .tools{margin-left:auto}
.site-header.no-sub .brand small{display:none}
@media (max-width:520px){.btn-donate{display:none}}

/* pages */



/* ===== hero v2 ===== */
.hero{position:relative;isolation:isolate;color:#fff;min-height:min(92vh,880px);display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr);overflow:hidden;background:#0A4A22}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;z-index:-2;animation:drift 28s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.09) translate(-1%, -1%)}}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(8 74 31 / .92) 0%,rgb(11 107 44 / .72) 40%,rgb(11 107 44 / .12) 78%),linear-gradient(0deg,rgb(8 74 31 / .8) 0%,transparent 40%)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;width:100%;align-content:center;padding-block:clamp(56px,9vw,110px) 36px;max-width:var(--wrap)}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;justify-self:start;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#DDF3E3;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .18);backdrop-filter:blur(8px);padding:8px 14px;border-radius:999px;max-width:100%}
.pulse{width:8px;height:8px;border-radius:50%;background:#4CC873;box-shadow:0 0 0 0 rgb(76 200 115 / .7);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgb(76 200 115 / 0)}100%{box-shadow:0 0 0 0 rgb(76 200 115 / 0)}}
.slogan{font-family:var(--display);text-transform:none;font-weight:800;font-size:clamp(36px,5.4vw,74px);line-height:1.08;letter-spacing:-.025em;max-width:14em;color:#FFFFFF}
.slogan .ln{display:block;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.slogan .ln:nth-child(2){animation-delay:.18s}.slogan .ln:nth-child(3){animation-delay:.36s}
.slogan em{font-style:italic;font-weight:800;background:linear-gradient(95deg,#E4FBE9 0%,#B6F0C5 50%,#8FE3A8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero-lead{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:#EEF7F0;max-width:52ch;animation:rise .9s .5s both}
.hero-btns{animation:rise .9s .65s both}
.btn-gold{background:#fff;color:#0B6B2C;border-color:#fff;box-shadow:0 8px 28px rgb(0 0 0 / .18)}
.btn-gold:hover{background:#E4FBE9;border-color:#E4FBE9}
.btn-glass{background:rgb(255 255 255 / .08);color:#fff;border-color:rgb(255 255 255 / .35);backdrop-filter:blur(8px)}
.btn-glass:hover{background:rgb(255 255 255 / .16)}
.hero-stats-wrap{padding-bottom:22px;width:100%}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);background:rgb(6 60 24 / .5);border:1px solid rgb(255 255 255 / .14);backdrop-filter:blur(14px);border-radius:14px;overflow:hidden}
.hero-stats .stat{padding:18px 22px;border-left:1px solid rgb(255 255 255 / .12);display:grid;gap:4px}
.hero-stats .stat:first-child{border-left:0}
.hero-stats .stat .num{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:clamp(34px,4vw,52px);line-height:.95;color:#fff;font-variant-numeric:tabular-nums}
.hero-stats .stat .num em{font-style:normal;color:#B6F0C5}
.hero-stats .stat p{font-size:14px;color:#D6ECDD;max-width:26ch}
.hero-credit{font-size:12px;color:#CFE6D6;margin-top:10px;text-align:right;letter-spacing:.03em}
@media (max-width:760px){.hero-stats{grid-template-columns:1fr 1fr}.hero-stats .stat:nth-child(3){border-left:0}.hero-stats .stat:nth-child(n+3){border-top:1px solid rgb(255 255 255 / .12)}.hero-shade{background:linear-gradient(180deg,rgb(11 107 44 / .6) 0%,rgb(9 90 37 / .78) 55%,rgb(8 74 31 / .94) 100%)}.hero-bg{object-position:70% 50%}}
.serif-h{font-family:var(--display);font-weight:800;letter-spacing:-.02em;line-height:1.1}
.serif-h em{font-style:italic;color:var(--green)}
.intro-photo{margin:0;position:relative}
.intro-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:160px 160px var(--radius) var(--radius);display:block}
.intro-photo figcaption{position:absolute;left:16px;bottom:16px;background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 12px;font-size:14px;box-shadow:0 6px 20px rgb(0 0 0 / .18)}


/* doves */
.doves{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-inner,.hero-stats-wrap{position:relative;z-index:1}
.dove{position:absolute;left:0;top:var(--y);width:calc(var(--w) * var(--k,1));opacity:var(--o);color:#fff;filter:drop-shadow(0 6px 10px rgb(0 40 15 / .25));animation:fly var(--dur) linear var(--delay) infinite;will-change:transform}
.dove .bob{animation:bob var(--flap) ease-in-out var(--delay) infinite}
.dove svg{width:100%;height:auto;display:block;overflow:visible}
.dove .wing{transform-box:fill-box;transform-origin:50% 100%;animation:flap var(--flap) ease-in-out var(--delay) infinite}
.dove .wing.far{animation-delay:calc(var(--delay) - .06s);fill:#E3EFE6}
@keyframes flap{0%,100%{transform:scaleY(1)}55%{transform:scaleY(-.3)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes fly{0%{transform:translate(40vw,10px);opacity:0}8%{opacity:var(--o)}30%{transform:translate(62vw,-18px)}60%{transform:translate(85vw,6px)}92%{opacity:var(--o)}100%{transform:translate(112vw,-12px);opacity:0}}
@media (max-width:760px){.dove{--k:.55}}
@media (prefers-reduced-motion:reduce){.dove{animation:none;transform:translateX(var(--sx))}.dove .bob,.dove .wing{animation:none}}

/* stats */
.stats{background:var(--basalt);color:var(--on-basalt)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat{padding:clamp(24px,3vw,40px) clamp(12px,2vw,28px);border-left:1px solid rgb(255 255 255 / .12);display:grid;gap:6px;align-content:start}
.stat:first-child{border-left:0}
.stat .num{font-family:var(--display);font-weight:900;font-size:clamp(48px,6vw,80px);line-height:.9;color:var(--on-basalt);font-variant-numeric:tabular-nums}
.stat .num em{font-style:normal;color:#E2B24F}
.stat p{color:var(--on-basalt-muted);font-size:15px;max-width:24ch}
.stats-note{color:var(--on-basalt-muted);font-size:13px;padding-bottom:22px}
@media (max-width:760px){.stats-grid{grid-template-columns:1fr 1fr}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid rgb(255 255 255 / .12)}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pillar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;display:grid;gap:12px;align-content:start;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.pillar:hover{border-color:var(--green);transform:translateY(-2px)}
.pillar svg{width:44px;height:44px;color:var(--green)}
.pillar p{color:var(--muted);font-size:15.5px}
.pillar .more{font-weight:600;color:var(--green);font-size:15px}
@media (max-width:980px){.pillars{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.split img{width:100%;border-radius:var(--radius);display:block;object-fit:cover}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.why{display:grid;gap:22px}
.why-item{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.why-item .dot{width:12px;height:12px;border-radius:50%;background:var(--green);margin-top:9px}
.why-item h3{font-size:19px;margin-bottom:4px}
.why-item p{color:var(--muted)}

/* quotes */
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.quote{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:grid;gap:16px;align-content:start}
.quote blockquote{margin:0;font-size:19px;line-height:1.5}
.quote cite{font-style:normal;font-weight:600;font-size:15px;color:var(--muted)}
@media (max-width:760px){.quotes{grid-template-columns:1fr}}

/* partners */
/* Logos scroll in a loop; hovering or touching the strip stops it. */
.partners-marquee{--gap:20px;overflow:hidden;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);touch-action:pan-y}
.partners-track{display:flex;width:max-content}
.partners-group{display:flex;flex-wrap:wrap;gap:var(--gap);list-style:none;margin:0;padding:0}
.partners-marquee.ready .partners-group{flex-wrap:nowrap;padding-right:var(--gap)}
.partners-marquee.ready .partners-track{animation:partners-scroll var(--dur,30s) linear infinite}
.partners-marquee:hover .partners-track,.partners-marquee.paused .partners-track,.partners-marquee:focus-within .partners-track{animation-play-state:paused}
@keyframes partners-scroll{to{transform:translateX(-50%)}}
.partner{flex:none;display:grid;place-items:center;height:96px;min-width:190px;padding:14px 26px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;font-weight:600;color:#13241A;text-align:center;cursor:default;transition:border-color .2s,transform .2s}
.partner:hover{border-color:var(--green);transform:translateY(-2px)}
.partner-dark.has-logo{background:#0A4A22;border-color:#0A4A22} /* for logos that are white */
.partner img{display:none;max-height:64px;max-width:230px;width:auto;object-fit:contain}
.partner.has-logo img{display:block}
.partner.has-logo .partner-name{display:none}
@media (max-width:560px){.partner{height:80px;min-width:150px;padding:12px 18px}.partner img{max-height:52px;max-width:124px}}
@media (prefers-reduced-motion:reduce){.partners-marquee.ready .partners-track{animation:none}.partners-marquee.ready .partners-group{flex-wrap:wrap}.partners-marquee.ready .partners-group[aria-hidden]{display:none}}

/* Image zoom on hover (every content photo) */
.zoom{display:block;overflow:hidden;position:relative}
.zoom>img{display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:transform}
@media (hover:hover){.zoom:hover>img{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.zoom>img{transition:none}}

/* CTA band */
.cta{background:var(--green-deep);color:#fff}
:root[data-theme="dark"] .cta{background:#0F3A1E}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cta{background:#0F3A1E}}
.cta .split img{aspect-ratio:4/3}
.cta h2{color:#fff}
.cta h2 em{color:#B6F0C5}
.cta p{color:#D6E6D9}
.cta .btn-light{background:#fff;color:#0A3F1C;border-color:#fff}
.cta .btn-outline-light{color:#fff;border-color:rgb(255 255 255 / .5)}

/* page header */
.page-hero{padding-block:clamp(44px,6vw,80px) clamp(28px,4vw,48px);border-bottom:1px solid var(--line)}
.page-hero .wrap{display:grid;gap:16px}

/* values */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:6px}
@media (max-width:900px){.values-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr}}
.value-card{--acc:var(--green);position:relative;overflow:hidden;display:grid;gap:10px;align-content:start;padding:26px 24px 24px;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;outline:none;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.value-card::before{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:var(--acc);transform:scaleX(.18);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.value-card::after{content:"";position:absolute;width:160px;height:160px;right:-60px;top:-60px;border-radius:50%;background:var(--acc);opacity:.07;transition:transform .5s,opacity .5s}
.value-card[data-v="inclusion"]{--acc:var(--lake)}
.value-card[data-v="eco"]{--acc:#2E9E4F}
.value-card[data-v="innov"]{--acc:var(--ochre)}
.value-card[data-v="resp"]{--acc:var(--green-deep)}
.value-card[data-v="engage"]{--acc:#C2185B}
:root[data-theme="dark"] .value-card[data-v="engage"]{--acc:#F06292}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .value-card[data-v="engage"]{--acc:#F06292}}
.value-ic{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc);transition:background .35s,color .35s,transform .5s cubic-bezier(.3,1.6,.5,1)}
.value-ic svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.value-ic svg .f{fill:currentColor}
.value-card h3{font-size:21px;color:var(--ink)}
.value-card p{font-size:15px;color:var(--muted);line-height:1.55}
.value-card:hover,.value-card:focus-visible{transform:translateY(-6px);border-color:var(--acc);box-shadow:0 18px 40px -18px color-mix(in srgb,var(--acc) 55%,transparent)}
.value-card:hover::before,.value-card:focus-visible::before{transform:scaleX(1)}
.value-card:hover::after,.value-card:focus-visible::after{transform:scale(1.6);opacity:.12}
.value-card:hover .value-ic,.value-card:focus-visible .value-ic{background:var(--acc);color:#fff;transform:rotate(-8deg) scale(1.08)}
.value-card:focus-visible{outline:3px solid var(--ochre);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.value-card,.value-card::before,.value-card::after,.value-ic{transition:none}.value-card:hover{transform:none}}

/* team */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}
.member{display:flex;flex-direction:column;gap:10px}
.member .ph{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);display:grid;place-items:center}
.member .ph img{width:100%;height:100%;object-fit:cover;object-position:top}
.member .ph>span:not(.zoom){font-family:var(--display);font-weight:800;font-size:56px;color:var(--green);opacity:.5}
.member .ph .zoom{width:100%;height:100%}
.member .ph .zoom img{height:100%}
.member h3{font-size:19px;font-weight:700}
.member .role{font-weight:600;color:var(--green);font-size:15px}
.member p{font-size:15px;color:var(--muted)}

#team{scroll-margin-top:80px}
.socials{display:flex;gap:8px;margin-top:2px}
.soc{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--green);transition:background .15s,color .15s,transform .15s}
.soc svg{width:17px;height:17px}
.soc[href]:hover{background:var(--green);color:var(--on-green);transform:translateY(-2px)}
.soc:not([href]){opacity:.45;cursor:default}
/* programs */
/* program cards in the page header */
.prog-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px;margin-top:18px}
.prog-card{position:relative;overflow:hidden;display:grid;gap:10px;align-content:start;padding:22px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s,background .35s}
.prog-card svg{width:46px;height:46px;color:var(--acc);transition:transform .5s cubic-bezier(.3,1.6,.5,1),color .3s}
.prog-card b{font-family:var(--display);font-size:19px;line-height:1.2}
.prog-card small{font-size:14px;color:var(--muted);font-style:italic;transition:color .3s}
.prog-card .go{font-family:var(--display);font-weight:700;font-size:14px;color:var(--acc);display:flex;align-items:center;gap:6px;transition:gap .3s,color .3s}
.prog-card:hover,.prog-card:focus-visible{transform:translateY(-6px);background:var(--acc);border-color:var(--acc);color:#fff;box-shadow:0 20px 40px -20px var(--acc)}
.prog-card:hover svg,.prog-card:focus-visible svg{color:#fff;transform:scale(1.12) rotate(-6deg)}
.prog-card:hover small,.prog-card:hover .go,.prog-card:focus-visible small,.prog-card:focus-visible .go{color:#fff}
.prog-card:hover .go{gap:12px}
[data-prog]{--acc:var(--green)}
[data-prog="econ"]{--acc:var(--ochre)}
[data-prog="env"]{--acc:#2E9E4F}
[data-prog="health"]{--acc:#C2185B}
:root[data-theme="dark"] [data-prog="health"]{--acc:#F06292}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) [data-prog="health"]{--acc:#F06292}}

/* sticky tabs that follow the reader */
.prog-tabs{position:sticky;top:74px;z-index:40;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.prog-tabs .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:10px}
.prog-tabs .wrap::-webkit-scrollbar{display:none}
.prog-tabs a{flex:none;display:flex;align-items:center;gap:8px;text-decoration:none;font:600 14.5px var(--display);color:var(--muted);padding:9px 16px;border-radius:999px;border:1.5px solid transparent;transition:background .25s,color .25s,border-color .25s}
.prog-tabs a svg{width:20px;height:20px;color:var(--acc)}
.prog-tabs a:hover{border-color:var(--acc);color:var(--ink)}
.prog-tabs a.active{background:var(--acc);color:#fff}
.prog-tabs a.active svg{color:#fff}
.prog-tabs .bar-progress{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--green);transform-origin:left;transform:scaleX(var(--p,0))}
.program{position:relative;padding-block:clamp(48px,6vw,80px);border-bottom:1px solid var(--line);scroll-margin-top:140px}
.program::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--acc);opacity:.85}
.program-head{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;margin-bottom:28px}
.program-head svg{width:76px;height:76px;padding:12px;border-radius:20px;color:var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent);animation:prog-float 5s ease-in-out infinite}
@keyframes prog-float{50%{transform:translateY(-6px) rotate(-3deg)}}
@media (max-width:560px){.program-head{grid-template-columns:1fr;gap:14px}.program-head svg{width:60px;height:60px;padding:10px}}
.program h2 em,.program-head h2{color:var(--ink)}
.prog-grid h4{color:var(--acc)!important}
.program-head .tagline{font-size:20px;font-style:italic;color:var(--muted);margin-top:6px}
.prog-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,4vw,56px)}
@media (max-width:860px){.prog-grid{grid-template-columns:1fr}}
.prog-grid h4{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin:0 0 10px}
.block{display:grid;gap:10px}
.col{display:grid;gap:30px;align-content:start}
ul.clean{list-style:none;margin:0;padding:0;display:grid;gap:8px}
ul.clean li{padding:8px 10px 8px 34px;position:relative;border-radius:10px;transition:background .25s,transform .25s}
.program ul.clean li:hover{background:color-mix(in srgb,var(--acc) 9%,transparent);transform:translateX(4px)}
ul.clean li::before{content:"";position:absolute;left:4px;top:.62em;width:9px;height:9px;border-radius:2px;background:var(--green);transform:rotate(45deg)}
.program ul.clean li::before{left:8px;top:11px;width:18px;height:18px;border-radius:50%;transform:none;background:var(--acc) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath d=%27m5 10.5 3 3 7-7%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") center/14px no-repeat}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:14px;padding:6px 12px;border-radius:999px;background:var(--surface-2);color:var(--ink);transition:background .25s,color .25s,transform .25s}
.program .chip:hover{background:var(--acc);color:#fff;transform:translateY(-2px)}
.results{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;gap:16px}
.program .results{border-top:5px solid var(--acc);border-radius:14px;box-shadow:0 18px 40px -28px color-mix(in srgb,var(--acc) 70%,transparent)}
.program .res{padding:8px;border-radius:10px;transition:background .25s}
.program .res:hover{background:color-mix(in srgb,var(--acc) 8%,transparent)}
.program .res b{color:var(--acc)}
.res{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline}
.res b{font-family:var(--display);font-weight:800;font-size:32px;line-height:1;color:var(--green);font-variant-numeric:tabular-nums;min-width:3.2ch}
.res span{color:var(--muted);font-size:15px}

/* portfolio */
.sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.sheet-top{display:grid;grid-template-columns:1fr 1fr;gap:0}
.sheet-top img{width:100%;height:100%;object-fit:cover;min-height:260px}
.sheet-top .info{padding:clamp(22px,3vw,36px);display:grid;gap:14px;align-content:start}
@media (max-width:760px){.sheet-top{grid-template-columns:1fr}}
.kv{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.kv div{padding:18px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:4px}
.kv dt{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kv dd{margin:0}
@media (max-width:760px){.kv{grid-template-columns:1fr}}

/* support */
.ways{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.way{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,34px);display:grid;gap:14px;align-content:start;scroll-margin-top:90px}
.way.wide{grid-column:1/-1}
@media (max-width:760px){.ways{grid-template-columns:1fr}}
.pay{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pay div{border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:grid;gap:2px}
.pay b{font-size:15px}
.pay span{font-size:14px;color:var(--muted)}
@media (max-width:480px){.pay{grid-template-columns:1fr}}
.downloads{display:grid;gap:0}
.downloads li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}

/* forms */
form{display:grid;gap:14px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fields .full{grid-column:1/-1}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
label{display:grid;gap:6px;font-size:14px;font-weight:600}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:8px;padding:11px 12px;width:100%}
textarea{min-height:120px;resize:vertical}
.form-note{font-size:14.5px;background:var(--surface-2);border-left:3px solid var(--green);padding:12px 14px;border-radius:4px}

/* news & gallery */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.post img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.post .body{padding:20px;display:grid;gap:10px;align-content:start}
.post .meta{font-size:13px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.post h3{font-size:20px}
@media (max-width:900px){.news{grid-template-columns:1fr}}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.filters button{font:600 14px/1 var(--body);padding:10px 16px;border-radius:999px;border:1.5px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--on-green)}
.gallery{columns:3 260px;column-gap:14px}
.gallery figure{margin:0 0 14px;break-inside:avoid;position:relative;cursor:zoom-in}
.gallery img{width:100%;display:block;border-radius:8px}
.gallery figcaption{font-size:13.5px;color:var(--muted);padding-top:6px}
.lightbox{position:fixed;inset:0;background:rgb(8 14 10 / .92);z-index:100;display:grid;place-items:center;padding:24px}
.lightbox img{max-height:82vh;max-width:100%;border-radius:8px}
.lightbox p{color:#E6EEE6;text-align:center;margin-top:12px}
.lightbox button{position:absolute;top:16px;right:16px;background:#fff;color:#111;border:0;border-radius:999px;padding:10px 16px;font:600 15px var(--body);cursor:pointer}

/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,56px)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.cinfo{display:grid;gap:18px;align-content:start}
.cinfo div{display:grid;gap:2px}
.cinfo dt{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cinfo dd{margin:0;font-size:17px}
.copy{font:600 13px var(--body);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:4px 9px;cursor:pointer;margin-left:6px}
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::after{content:"+";font-family:var(--body);font-weight:400;font-size:28px;line-height:.8;color:var(--green)}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin-top:10px;max-width:70ch}

/* footer */
footer{background:var(--basalt);color:var(--on-basalt);padding-block:56px 32px}
.foot{display:grid;grid-template-columns:1.3fr .8fr .8fr 1.3fr;gap:32px}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.foot{grid-template-columns:1fr}}
footer h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-basalt-muted);margin:0 0 12px}
footer a{color:var(--on-basalt);text-decoration:none}
footer a:hover{text-decoration:underline}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer .motto{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.3;margin-top:14px}
footer input{background:transparent;color:var(--on-basalt);border-color:rgb(255 255 255 / .25)}
.foot-bottom{border-top:1px solid rgb(255 255 255 / .12);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--on-basalt-muted)}

/* scroll reveal (only when JavaScript adds .reveal) */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.program-head svg{animation:none}}

/* ===== Professional pages: contact, support, portfolio ===== */
.pro-hero{padding-bottom:clamp(40px,6vw,72px)}
.ic{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--acc,var(--green)) 12%,transparent);color:var(--acc,var(--green))}
.ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ic.big{width:60px;height:60px;border-radius:18px}.ic.big svg{width:30px;height:30px}
.ic.huge{width:110px;height:110px;border-radius:32px;background:rgb(255 255 255 / .16);color:#fff}.ic.huge svg{width:56px;height:56px}
.mini{display:inline-grid;place-items:center;vertical-align:-3px}.mini svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
svg.arr{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
a:hover svg.arr,button:hover svg.arr{transform:translateX(4px)}
.tint{background:var(--surface-2)}
.center{text-align:center}.center-btn{display:flex;justify-content:center;margin-top:28px}
.section-head.center{justify-items:center;max-width:760px;margin-inline:auto}
.small{font-size:14px}

/* intent / quick-action cards */
.intent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.intent-grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.intent-grid,.intent-grid.four{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.intent-grid,.intent-grid.four{grid-template-columns:1fr}}
.intent{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:2px;align-items:center;padding:18px 44px 18px 18px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s,background .3s}
.intent .ic{grid-row:1/3}
.intent b{font-family:var(--display);font-size:16.5px;line-height:1.25}
.intent small{color:var(--muted);font-size:13.5px}
.intent .arr{position:absolute;right:16px;top:50%;margin-top:-9px;color:var(--green)}
.intent:hover,.intent:focus-visible{transform:translateY(-4px);border-color:var(--green);box-shadow:0 16px 36px -22px var(--green)}
.intent:hover .ic{background:var(--green);color:#fff}

/* contact layout */
.contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:900px){.contact-layout{grid-template-columns:1fr}}
.contact-side{display:grid;gap:14px}
.info-card{display:flex;gap:16px;align-items:flex-start;padding:20px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line);transition:border-color .3s,transform .3s}
.info-card:hover{border-color:var(--green);transform:translateX(4px)}
.info-card h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:6px}
.info-card p{font-size:16px;line-height:1.6;color:var(--ink)}
.info-card p a{color:var(--ink);text-decoration:none;font-weight:600}
.info-card p a:hover{color:var(--green);text-decoration:underline}
.info-card.wa .btn{margin-top:12px}
.btn-wa{background:#1FA855;border-color:#1FA855;color:#fff;padding:11px 18px;font-size:14.5px}
.btn-wa:hover{background:#178a45;border-color:#178a45}
.link-arrow{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font:700 14px var(--display);color:var(--green);text-decoration:none}

/* form card */
.form-card{display:grid;gap:22px;padding:clamp(22px,3vw,36px);border-radius:20px;background:var(--surface);border:1.5px solid var(--line);box-shadow:0 30px 60px -40px rgb(8 74 31 / .45)}
.form-head{display:flex;gap:16px;align-items:center}
.form-head h2{font-size:clamp(24px,2.4vw,30px)}
.form-head h3{font-size:22px}
.form-card .fields label>span{font-weight:600;font-size:14px}
.form-card .fields label i{color:#C2185B;font-style:normal}
.form-card input,.form-card select,.form-card textarea{transition:border-color .2s,box-shadow .2s}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 16%,transparent);outline:none}
.btn-send{justify-self:start}
.send-hint{font-size:13.5px;color:var(--muted);display:flex;gap:8px;align-items:flex-start;line-height:1.5}
.send-hint .mini{color:#1FA855;margin-top:1px}
.form-note{font-size:14.5px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--ink)}

/* map */
.map-band{position:relative;height:clamp(300px,40vw,440px);background:var(--surface-2)}
.map-band iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.85)}
.map-card{position:absolute;left:clamp(16px,4vw,48px);bottom:24px;display:flex;gap:12px;align-items:center;padding:14px 18px;border-radius:14px;background:var(--surface);box-shadow:0 18px 40px -20px rgb(0 0 0 / .35)}
.map-card b{display:block;font-family:var(--display)}.map-card span{font-size:14px;color:var(--muted)}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:860px){.faq-layout{grid-template-columns:1fr}}
.faq-layout .section-head{position:sticky;top:100px;justify-items:start}
.faq details{background:var(--surface);border:1.5px solid var(--line);border-radius:14px;padding:0 20px;margin-bottom:10px;transition:border-color .25s}
.faq details[open]{border-color:var(--green)}
.faq summary{padding:18px 0}

/* impact band */
.impact-band{background:var(--basalt);color:var(--on-basalt);padding-block:clamp(40px,6vw,64px)}
.eyebrow.light{color:#B6F0C5}
.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:18px}
@media (max-width:900px){.impact-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.impact-grid{grid-template-columns:1fr}}
.impact-grid>div{display:grid;gap:8px;padding:20px;border-radius:16px;background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .12);transition:background .3s,transform .3s}
.impact-grid>div:hover{background:rgb(255 255 255 / .12);transform:translateY(-4px)}
.impact-grid .ic{background:rgb(255 255 255 / .12);color:#B6F0C5}
.impact-grid b{font-family:var(--display);font-size:18px}
.impact-grid span{font-size:14.5px;color:var(--on-basalt-muted)}
.kpi-band{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgb(255 255 255 / .14);border-radius:16px;overflow:hidden}
.kpi-band>div{padding:24px;border-left:1px solid rgb(255 255 255 / .14);display:grid;gap:6px}
.kpi-band>div:first-child{border-left:0}
.kpi-band b{font-family:var(--display);font-weight:800;font-size:clamp(36px,4vw,54px);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.kpi-band span{font-size:14.5px;color:var(--on-basalt-muted)}
@media (max-width:760px){.kpi-band{grid-template-columns:1fr 1fr}.kpi-band>div:nth-child(3){border-left:0}.kpi-band>div:nth-child(n+3){border-top:1px solid rgb(255 255 255 / .14)}}
.band-note{margin-top:16px;color:var(--on-basalt-muted);font-size:15px}

/* split sections */
.split-pro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px);align-items:center}
@media (max-width:900px){.split-pro{grid-template-columns:1fr}}
.sp-text{display:grid;gap:14px;justify-items:start}
.sp-text h2{font-size:clamp(26px,3vw,38px)}
.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:480px){.pay-grid{grid-template-columns:1fr}}
.pay-card{display:grid;gap:8px;padding:22px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line);transition:transform .3s,border-color .3s,box-shadow .3s}
.pay-card b{font-family:var(--display);font-size:17px}.pay-card small{color:var(--muted);font-size:14px}
.pay-card:hover{transform:translateY(-4px);border-color:var(--green);box-shadow:0 16px 36px -24px var(--green)}
.pay-card:hover .ic{background:var(--green);color:#fff}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line);transition:background .25s,color .25s,border-color .25s}
.tint .tag{background:var(--bg)}
.tag:hover{background:var(--green);border-color:var(--green);color:#fff}
.two-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){.two-cards{grid-template-columns:1fr}}
.card-pro{padding:26px;border-radius:18px;background:var(--surface);border:1.5px solid var(--line);display:grid;gap:16px;align-content:start}
.card-pro h3{display:flex;gap:8px;align-items:center;font-size:19px;color:var(--green)}
ul.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
ul.ticks li{position:relative;padding-left:32px;font-size:16px}
ul.ticks li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath d=%27m5 10.5 3 3 7-7%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") center/15px no-repeat}
.sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sheet-grid.wide{grid-template-columns:repeat(5,1fr)}
@media (max-width:1100px){.sheet-grid.wide{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.sheet-grid.wide{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.sheet-grid{grid-template-columns:1fr 1fr}}
.sheet-grid>div{display:grid;gap:8px;align-content:start;padding:18px;border-radius:16px;background:var(--surface);border:1.5px solid var(--line);transition:transform .3s,border-color .3s}
.sheet-grid>div:hover{transform:translateY(-4px);border-color:var(--green)}
.sheet-grid b{font-family:var(--display);font-size:16px}
.sheet-grid small{color:var(--muted);font-size:13.5px}
.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.doc-list a{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;background:var(--surface);border:1.5px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;transition:border-color .25s,transform .25s}
.doc-list a>span:not(.ic){flex:1}
.doc-list em{font-style:normal;display:inline-flex;align-items:center;gap:6px;font:700 13.5px var(--display);color:var(--green);padding:7px 12px;border-radius:999px;border:1.5px solid var(--line);transition:background .25s,color .25s}
.doc-list a:hover{border-color:var(--green);transform:translateX(4px)}
.doc-list a:hover em{background:var(--green);color:#fff;border-color:var(--green)}

/* portfolio program cards */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media (max-width:860px){.pgrid{grid-template-columns:1fr}}
.pcard{--acc:var(--green);display:grid;grid-template-rows:200px auto;border-radius:20px;overflow:hidden;background:var(--surface);border:1.5px solid var(--line);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.pcard[data-prog="econ"]{--acc:var(--ochre)}.pcard[data-prog="env"]{--acc:#2E9E4F}.pcard[data-prog="health"]{--acc:#C2185B}
.pcard:hover{transform:translateY(-6px);border-color:var(--acc);box-shadow:0 26px 50px -30px var(--acc)}
.pc-media{position:relative;overflow:hidden;background:var(--acc)}
.pc-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.pcard:hover .pc-media img{transform:scale(1.08)}
.pc-media::after{content:"";position:absolute;inset:auto 0 0 0;height:5px;background:var(--acc)}
.pc-media.art{display:grid;place-items:center;background:linear-gradient(135deg,var(--acc),color-mix(in srgb,var(--acc) 55%,#062))}
.pc-body{padding:24px;display:grid;gap:16px;align-content:start}
.pc-head{display:flex;gap:14px;align-items:center}
.pc-head h3{font-size:21px}.pc-head .tagline{font-size:14.5px;font-style:italic;color:var(--muted);margin-top:2px}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kpi{padding:14px;border-radius:14px;background:color-mix(in srgb,var(--acc) 8%,transparent);display:grid;gap:4px}
.kpi b{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;color:var(--acc);font-variant-numeric:tabular-nums}
.kpi span{font-size:13.5px;color:var(--muted);line-height:1.4}
.pc-more{display:flex;gap:8px;align-items:flex-start;font-size:14.5px;color:var(--muted);line-height:1.55}
.pc-more .mini{color:var(--acc);margin-top:2px}
.pcard .link-arrow{color:var(--acc)}
.logo-wall{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}
@media (max-width:760px){.logo-wall{grid-template-columns:1fr 1fr}}
.logo-wall>div{display:grid;place-items:center;height:120px;padding:18px;border-radius:16px;background:#fff;border:1.5px solid var(--line);transition:transform .3s,border-color .3s}
.logo-wall>div.dark{background:#0A4A22;border-color:#0A4A22}
.logo-wall>div:hover{transform:translateY(-4px);border-color:var(--green)}
.logo-wall img{width:100%;height:64px;object-fit:contain}
.cta-box{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding:clamp(28px,4vw,48px);border-radius:24px;background:linear-gradient(135deg,var(--basalt),#0E6B32);color:var(--on-basalt)}
.cta-box h2{font-size:clamp(24px,2.6vw,34px);color:#fff}
.cta-box p{color:var(--on-basalt-muted);margin-top:8px;max-width:52ch}
.cta-pro{padding-top:0}

.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden} /* spam trap, hidden from people */
.form-note.ok{background:color-mix(in srgb,var(--green) 12%,transparent)}
.form-note.err{background:color-mix(in srgb,#C2185B 10%,transparent)}
.btn-send[disabled]{opacity:.65;cursor:progress}

.pay-detail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:12px;border-top:1px dashed var(--line);font-size:13.5px;color:var(--muted)}
.soon{font-style:normal;font:700 12px var(--display);letter-spacing:.04em;padding:5px 10px;border-radius:999px;background:var(--ochre-soft);color:var(--ink);border:1px solid color-mix(in srgb,var(--ochre) 45%,transparent)}
