/* ==========================================================================
   Make A Smile Organisation · site, dashboard & admin styles
   Ported from the owner-approved concept (design/concept.html).

   Three brand colours only, all from the logo: indigo #2E3192, sky #00AEEF,
   white #FFFFFF, plus ONE indigo→sky gradient. Every other value below is a
   tint or shade of indigo (or translucent white on dark). No other hues.
   Rhythm: generous white space, 1px hairlines, one dark "ledger" chapter,
   photography carries the emotion. Single light look by design.

   Sections: 1 tokens · 2 base · 3 components · 4 layout · 5 pages
             6 dashboard · 7 utilities & motion
   ========================================================================== */

/* 1. TOKENS ================================================================ */
:root{
  color-scheme:light;
  --indigo:#2E3192; --sky:#00AEEF; --white:#FFFFFF;
  --grad:linear-gradient(120deg,#2E3192 0%,#1B63C6 55%,#00AEEF 100%);
  --ink:#141640;              /* indigo, deepened */
  --surface:#FFFFFF;          /* card/panel background (dark theme overrides) */
  --text:#5A5E82;             /* indigo-grey body */
  --soft:#8A8DAE;             /* indigo-grey captions */
  --mist:#F5F6FB;             /* indigo 3% */
  --tint:#ECEEF8;             /* indigo 7% */
  --line:rgba(46,49,146,.12);
  --line-2:rgba(46,49,146,.22);
  --sky-tint:rgba(0,174,239,.12);
  /* chart / data scale (indigo → sky) */
  --c1:#00AEEF; --c2:#1B63C6; --c3:#5B6CE0; --c4:#9FA6E8;
  --shadow:0 40px 80px -40px rgba(20,22,64,.45);
  --shadow-sm:0 20px 40px -24px rgba(20,22,64,.35);
  --display:"Poppins",Arial,sans-serif; --body:"DM Sans",Arial,sans-serif; --ar:"Amiri","Traditional Arabic",serif;
  --max:1320px; --ease:cubic-bezier(.2,.7,.2,1);
  --r-btn:12px; --r-card:20px; --r-frame:28px;
}

/* 2. BASE ================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:clip;background:var(--surface);color:var(--text);font:400 16px/1.7 var(--body);-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);margin:0;line-height:1.1;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:600;letter-spacing:-.035em}
h2{font-size:clamp(2rem,3.8vw,3.2rem);font-weight:600}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
h4{font-size:1rem;font-weight:600;letter-spacing:-.01em}
p{margin:0} a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
svg.i{width:18px;height:18px;flex:none}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.num,.table .num,td.num{font-variant-numeric:tabular-nums}
[lang="ar"],.ar{font-family:var(--ar)}
section{padding-block:clamp(64px,7.5vw,112px)}
.section-tight{padding-block:clamp(48px,6vw,80px)}
.prose{max-width:68ch}
.prose p+p{margin-top:1.1em}
.prose a,.link{color:var(--indigo);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;transition:text-decoration-color .2s}
.prose a:hover,.link:hover{text-decoration-color:var(--indigo)}
.skip{position:absolute;inset-inline-start:0;top:0;transform:translateY(-120%);background:var(--ink);color:var(--white);padding:10px 16px;z-index:100;border-radius:0 0 10px 0;transition:transform .2s}
.skip:focus{transform:none}

/* 3. COMPONENTS ============================================================ */
/* eyebrow labels */
.eyebrow,.sub{display:inline-flex;align-items:center;gap:12px;font:600 .74rem/1.4 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--indigo)}
.eyebrow::before,.sub::before{content:"";width:28px;height:2px;border-radius:2px;background:var(--grad);flex:none}
.on-dark .eyebrow,.on-dark .sub{color:var(--sky)}
.lead{font-size:1.08rem;max-width:56ch}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.head{display:grid;gap:18px;margin-bottom:56px}
.head.split{grid-template-columns:1fr auto;align-items:end;gap:32px}
.head.center{justify-items:center;text-align:center}
.head.center .lead{margin-inline:auto}
@media (max-width:760px){.head.split{grid-template-columns:1fr}}

/* buttons: 12px radius, slight lift, arrow nudge */
.btn{--bg:var(--indigo);display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 24px;border-radius:var(--r-btn);border:0;background:var(--bg);color:var(--white);font:500 .95rem/1 var(--display);letter-spacing:-.005em;cursor:pointer;white-space:nowrap;text-align:center;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,color .2s}
.btn svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px -14px rgba(46,49,146,.6)}
.btn:hover svg{transform:translateX(3px)}
.btn:active{transform:none}
.btn[disabled],.btn.is-disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-grad{background:var(--grad);background-size:140% 100%;background-position:0 0}
.btn-grad:hover{background-position:100% 0}
.btn-white{--bg:var(--white);color:var(--ink)}
.btn-glass{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.btn-line:hover{box-shadow:inset 0 0 0 1px var(--indigo)}
.btn-danger{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn-danger::before{content:"×";font-size:1.15em;line-height:0}
.btn-danger:hover{background:var(--ink);color:var(--white)}
.btn-sm{height:42px;padding:0 18px;font-size:.88rem;border-radius:10px}
.btn-xs{height:34px;padding:0 12px;font-size:.8rem;border-radius:9px;gap:6px}
.btn-block{display:flex;width:100%}
.btn-link{background:none;border:0;padding:0;color:var(--indigo);font:500 .88rem var(--display);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.btn-link:hover{text-decoration-color:var(--indigo)}

/* small labels */
.tag{display:inline-block;font:500 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--indigo)}
.ex{display:inline-block;font:600 .64rem/1.5 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.on-dark .ex{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.18)}
.chip{display:inline-flex;align-items:center;gap:6px;font:500 .72rem/1.4 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--indigo);background:var(--tint);border-radius:999px;padding:6px 12px;white-space:nowrap}

/* status badges: indigo family only; meaning carried by text + glyph */
.badge{display:inline-flex;align-items:center;gap:5px;font:500 .7rem/1.5 var(--display);letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap;vertical-align:middle;background:var(--mist);color:var(--text)}
.badge::before{font-size:.95em;line-height:1}
/* success → sky-tinted chip with ✓ */
.badge-confirmed,.badge-approved,.badge-active,.badge-done,.badge-attended,.badge-published,.badge-funded,.badge-fulfilled{background:var(--sky-tint);color:var(--indigo)}
.badge-confirmed::before,.badge-approved::before,.badge-active::before,.badge-done::before,.badge-attended::before,.badge-published::before,.badge-funded::before,.badge-fulfilled::before{content:"✓"}
/* pending → indigo tint with ◷ */
.badge-pending,.badge-todo,.badge-draft,.badge-signed_up,.badge-open,.badge-paused{background:var(--tint);color:var(--indigo)}
.badge-pending::before,.badge-todo::before,.badge-draft::before,.badge-open::before,.badge-paused::before{content:"◷"}
.badge-signed_up::before{content:"✓"}
/* failed / rejected → ink outline with × */
.badge-failed,.badge-rejected,.badge-ended,.badge-cancelled,.badge-no_show,.badge-inactive{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.badge-failed::before,.badge-rejected::before,.badge-ended::before,.badge-cancelled::before,.badge-no_show::before,.badge-inactive::before{content:"×";font-size:1.15em}
/* in progress / warning → indigo outline */
.badge-in_progress,.badge-sponsored,.badge-available,.badge-normal{background:transparent;color:var(--indigo);box-shadow:inset 0 0 0 1px var(--indigo)}
.badge-in_progress::before{content:"◐"}
/* neutral */
.badge-refunded,.badge-graduated,.badge-completed,.badge-archived,.badge-low{background:var(--mist);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.badge-refunded::before{content:"↺"}
/* priority high → solid ink with ! */
.badge-high{background:var(--ink);color:var(--white)}
.badge-high::before{content:"!";font-weight:700}

/* progress track (fills on load) */
.prog{display:grid;gap:10px}
.prog .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.84rem}
.prog .row b{font:500 1.25rem var(--display);color:var(--ink);letter-spacing:-.02em}
.prog .row .pct{color:var(--indigo);font-weight:500}
.prog .row .of{color:var(--soft)}
.track{height:6px;border-radius:99px;background:var(--tint);overflow:hidden}
.track i{display:block;height:100%;border-radius:99px;background:var(--grad);transform-origin:left;animation:fill 1.6s .4s var(--ease) both}
@keyframes fill{from{transform:scaleX(0)}}

/* hairline card (generic container) */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(20px,2.4vw,28px);min-width:0}
.card>h2,.card>h3{margin-bottom:16px}
.card h2{font-size:1.15rem;letter-spacing:-.015em}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.card-head h2,.card-head h3{margin:0}
.card-link{font:500 .84rem var(--display);color:var(--indigo);display:inline-flex;align-items:center;gap:6px}
.card-link svg{width:14px;height:14px;transition:transform .3s var(--ease)}
.card-link:hover svg{transform:translateX(3px)}
.card.flat{border:0;padding:0}
.card.mist{background:var(--mist);border-color:transparent}
.empty{padding:32px 20px;text-align:center;color:var(--text);background:var(--mist);border-radius:16px;font-size:.93rem}
.empty b{display:block;color:var(--ink);font:600 1rem var(--display);margin-bottom:6px}

/* KPI strip (hairline cells) */
.kpis{display:grid;grid-template-columns:repeat(var(--n,3),1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}
.kpi{padding:14px 16px;min-width:0}
.kpi+.kpi{border-left:1px solid var(--line)}
.kpi span{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.kpi b{font:500 1.2rem var(--display);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
@media (max-width:520px){.kpis{grid-template-columns:1fr 1fr}.kpi:nth-child(odd){border-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--line)}}

/* expense / activity lines with icon */
.lines{display:grid}
.lines .r{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink)}
.lines .r:first-child{border-top:0}
.lines .r i{width:32px;height:32px;border-radius:10px;background:var(--tint);display:grid;place-items:center;color:var(--indigo);font-style:normal}
.lines .r i svg{width:15px;height:15px}
.lines .r b{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.lines small{display:block;font-size:.78rem;color:var(--soft)}
.lines a{color:var(--indigo)}
.quote{font-size:.93rem;color:var(--ink);background:var(--mist);border-radius:14px;padding:14px 16px}
.quote cite{font-style:normal;color:var(--soft)}

/* forms: 48px inputs, 12px radius, sky focus ring */
.form{display:grid;gap:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form-row.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){.form-row,.form-row.three{grid-template-columns:1fr}}
.field{display:grid;gap:8px;min-width:0;align-content:start}
.field label,.field .label,.lbl{font:500 .86rem var(--display);color:var(--ink)}
.lbl{display:block}
.field label span[aria-hidden]{color:var(--sky)}
.field .hint{font-size:.8rem;color:var(--soft)}
.input,.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.filters select,.filters input{
  width:100%;height:48px;border:1px solid var(--line-2);border-radius:var(--r-btn);padding:0 14px;font:400 .95rem var(--body);color:var(--ink);background:var(--surface);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.field select,select.input,.filters select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E3192' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:38px}
.field input[type=file]{padding:10px 12px;height:auto}
.field input[type=color]{padding:4px;width:80px}
.field textarea{height:auto;min-height:128px;padding:12px 14px;resize:vertical;line-height:1.6}
.input:focus,.field input:focus,.field select:focus,.field textarea:focus,.filters select:focus,.filters input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px rgba(0,174,239,.18)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.error{display:flex;gap:6px;color:var(--ink);font-size:.82rem;font-weight:500}
.error::before{content:"×";font-weight:700}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.93rem;color:var(--ink);cursor:pointer}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--indigo);flex:none}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.fieldset{border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:0;display:grid;gap:12px}
.fieldset legend{font:600 .7rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);padding:0 8px}
.inline-form{display:inline}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:20px}
.filters .field{min-width:160px;flex:0 1 200px}
.filters select,.filters input{height:42px}
@media (max-width:700px){.filters .field{flex:1 1 140px;min-width:0}table.table{min-width:620px}}

/* alerts */
.alerts{display:grid;gap:10px}
.alert{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;padding:14px 16px;font-size:.93rem;border-radius:14px;background:var(--mist);color:var(--ink);border:1px solid var(--line)}
.alert::before{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:600 .8rem/1 var(--display)}
.alert-success{background:var(--sky-tint);border-color:rgba(0,174,239,.3)}
.alert-success::before{content:"✓";background:var(--sky);color:var(--white)}
.alert-info::before{content:"i";background:var(--indigo);color:var(--white)}
.alert-warning{background:var(--surface);border-color:var(--indigo)}
.alert-warning::before{content:"!";box-shadow:inset 0 0 0 1.5px var(--indigo);color:var(--indigo)}
.alert-error{background:var(--surface);border-color:var(--ink)}
.alert-error::before{content:"×";background:var(--ink);color:var(--white)}
.alert ul{margin:6px 0 0;padding-left:18px}
.flash-wrap{padding-top:20px}

/* tables: 1px row lines, tabular numbers, sticky head, scroll on mobile */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}
.table th{position:sticky;top:0;z-index:1;background:var(--surface);text-align:left;font:500 .7rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);padding:12px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap}
.table td{padding:14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background .2s}
.table tbody tr:hover td{background:var(--mist)}
.table tfoot th{position:static;border-top:1px solid var(--line-2);border-bottom:0;color:var(--ink)}
.table .num{text-align:right;white-space:nowrap}
.table .actions{white-space:nowrap;text-align:right}
.table .actions>*{vertical-align:middle}
.table small{color:var(--soft)}
.table a.link{font-weight:500;white-space:nowrap}

/* pagination */
.pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:28px 0 0;list-style:none;padding:0}
.pagination a,.pagination span{display:grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border-radius:10px;font:500 .88rem var(--display);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s}
.pagination a:hover{box-shadow:inset 0 0 0 1px var(--indigo)}
.pagination .active span{background:var(--indigo);color:var(--white);box-shadow:none}
.pagination .disabled span{color:var(--soft);opacity:.6}

/* avatar */
.avatar{width:48px;height:48px;border-radius:14px;background:var(--grad);color:var(--white);display:grid;place-items:center;font:600 1.1rem var(--display);flex:none;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:72px;height:72px;border-radius:20px;font-size:1.6rem}
.avatar.sm{width:36px;height:36px;border-radius:11px;font-size:.9rem}

/* ticks list */
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.ticks li{display:grid;grid-template-columns:22px 1fr;gap:10px;color:var(--ink);font-size:.95rem}
.ticks li::before{content:"✓";width:22px;height:22px;border-radius:7px;background:var(--tint);color:var(--indigo);display:grid;place-items:center;font:600 .72rem var(--display);margin-top:2px}

/* numbered steps */
.steps{list-style:none;margin:30px 0 34px;padding:0;display:grid;counter-reset:s;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--line);counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);font:500 .9rem var(--display);color:var(--indigo);padding-top:2px}
.steps b{display:block;font:600 1rem var(--display);color:var(--ink)}
.steps span,.steps p{font-size:.93rem}

/* meta row */
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.84rem;color:var(--soft);align-items:center}
.meta svg{width:16px;height:16px;color:var(--indigo)}
.on-dark .ticks li{color:rgba(255,255,255,.8)}
.on-dark .ticks li::before{background:rgba(255,255,255,.1);color:var(--sky)}

/* 4. LAYOUT ================================================================ */
/* top line */
.topline{background:var(--ink);color:rgba(255,255,255,.7);font-size:.82rem}
.topline .wrap{display:flex;gap:10px 28px;align-items:center;justify-content:space-between;min-height:42px}
.topline p{margin:0}
.topline .live{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topline .live a:hover{color:var(--white)}
.topline .dot{display:inline-block;width:7px;height:7px;margin-right:10px;vertical-align:middle;border-radius:50%;background:var(--sky);box-shadow:0 0 0 4px rgba(0,174,239,.2);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(0,174,239,0)}}
.topline b{color:var(--white);font-weight:500}
.topline .contact a:hover{color:var(--white)}
.topline .lang{display:flex;gap:2px;background:rgba(255,255,255,.06);border-radius:8px;padding:3px;flex:none}
.topline .lang button{border:0;background:transparent;color:rgba(255,255,255,.6);font:500 .72rem var(--display);letter-spacing:.08em;padding:4px 10px;border-radius:6px;cursor:pointer}
.topline .lang button[aria-disabled="true"]{cursor:help}
.topline .lang button[aria-pressed="true"]{background:var(--surface);color:var(--ink)}
@media (max-width:860px){.topline .contact{display:none}}
@media (max-width:700px){.topline .wrap{font-size:.76rem;padding-block:8px}.topline .live{flex:1}}

/* sticky blurred header */
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
header.nav.scrolled{box-shadow:0 10px 30px -24px rgba(20,22,64,.5)}
header.nav>.wrap{display:flex;align-items:center;gap:32px;height:76px}
.logo{display:flex;align-items:center;flex:none}
.logo img{height:40px;width:auto}
.wordmark{display:grid;line-height:1.1}
.wordmark b{font:700 1.2rem var(--display);color:var(--indigo);letter-spacing:-.02em}
.wordmark small{font:500 .62rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--sky)}
nav.menu{display:flex;gap:28px;margin-inline:auto;font:500 .92rem var(--display);color:var(--ink)}
nav.menu a{position:relative;padding-block:8px;opacity:.72;white-space:nowrap;transition:opacity .2s}
nav.menu a:hover,nav.menu a.on{opacity:1}
nav.menu a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--grad)}
.nav-right{display:flex;align-items:center;gap:20px}
.signin{font:500 .92rem var(--display);color:var(--ink);white-space:nowrap}
.menu-toggle{display:none;width:42px;height:42px;border-radius:10px;border:0;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;place-items:center;padding:0}
.menu-toggle svg{width:20px;height:20px}
.menu-toggle .when-open,.menu-toggle[aria-expanded="true"] .when-closed{display:none}
.menu-toggle[aria-expanded="true"] .when-open{display:grid}
.menu-toggle .when-closed{display:grid}
.mobile-nav{border-top:1px solid var(--line);background:var(--surface);max-height:calc(100vh - 76px);overflow-y:auto}
.mobile-nav .wrap{display:grid;padding-block:8px 20px}
.mobile-nav a:not(.btn){display:flex;justify-content:space-between;align-items:center;padding:14px 0;font:500 1rem var(--display);color:var(--ink);border-bottom:1px solid var(--line)}
.mobile-nav a:not(.btn) svg{color:var(--soft);width:16px;height:16px}
.mobile-nav a[aria-current="page"]{color:var(--indigo)}
.mobile-acc{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:18px}
.mobile-acc form .btn,.mobile-acc .btn{width:100%}
@media (max-width:1140px){nav.menu{display:none}.nav-right{margin-left:auto}.menu-toggle{display:grid}}
@media (max-width:520px){.signin{display:none}.logo img{height:34px}header.nav>.wrap{gap:16px;height:68px}.nav-right{gap:10px}}

/* inner-page banner: compact hero frame */
.pbanner-sec{padding:20px 0 0}
.pbanner{position:relative;border-radius:var(--r-frame);overflow:hidden;isolation:isolate;min-height:clamp(300px,34vw,380px);display:grid;align-content:end;padding:clamp(40px,6vw,72px) clamp(24px,5vw,72px) clamp(36px,4.4vw,56px);color:var(--white);background:var(--ink)}
.pbanner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.06);animation:settle 2.4s var(--ease) forwards}
.pbanner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,22,64,.95) 0%,rgba(46,49,146,.84) 45%,rgba(46,49,146,.4) 80%,rgba(0,174,239,.2) 100%)}
.pbanner:not(.has-photo)::before{background:var(--grad);opacity:.9}
.pbanner .in{display:grid;gap:16px;max-width:760px}
.pbanner .eyebrow{color:var(--sky)}
.pbanner h1{color:var(--white);font-size:clamp(2.1rem,4.4vw,3.5rem)}
.pbanner p.lead{color:rgba(255,255,255,.78)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 0;padding:0;list-style:none;font-size:.84rem;color:rgba(255,255,255,.6)}
.crumbs li+li::before{content:"/";margin-right:8px;color:rgba(255,255,255,.35)}
.crumbs a{color:var(--white)}
.crumbs a:hover{text-decoration:underline;text-underline-offset:3px}
@keyframes settle{to{transform:scale(1)}}

/* footer */
footer.site{background:var(--ink);color:rgba(255,255,255,.6);padding-top:clamp(70px,8vw,100px);margin-top:clamp(80px,10vw,140px)}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:60px}
.fgrid h4{color:var(--white);font:500 .8rem var(--display);letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.94rem}
.fgrid ul a{transition:color .2s}
.fgrid ul a:hover{color:var(--white)}
.flogo{height:38px;width:auto;margin-bottom:18px}
.flogo-text{display:block;font:700 1.2rem var(--display);color:var(--white);margin-bottom:14px}
.contact-l{display:grid;gap:6px;margin-top:18px;font-size:.92rem}
.contact-l b{color:var(--white);font-weight:500}
.nl{display:flex;gap:8px;margin-top:14px}
.nl input{flex:1;min-width:0;height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:var(--white);padding:0 14px;font:400 .94rem var(--body)}
.nl input::placeholder{color:rgba(255,255,255,.4)}
.nl input:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px rgba(0,174,239,.18)}
.nl .btn{height:48px}
footer.site .error{color:var(--white);margin-top:8px}
.fbot{border-top:1px solid rgba(255,255,255,.08);padding-block:22px;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;font-size:.84rem}
.fbot a:hover{color:var(--white)}
.fbot .pay{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fbot .pay span{border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:4px 10px;font:500 .72rem var(--display);letter-spacing:.06em;color:rgba(255,255,255,.8)}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}} @media (max-width:520px){.fgrid{grid-template-columns:1fr}}

/* generic grids */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-2-1{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
.grid-1-1{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.grid-2>*,.grid-3>*,.grid-2-1>*{min-width:0}
@media (max-width:1000px){.grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.grid-2,.grid-2-1,.grid-1-1{grid-template-columns:1fr}}
@media (max-width:640px){.grid-3{grid-template-columns:1fr}}
.sticky-aside{position:sticky;top:100px}
@media (max-width:900px){.sticky-aside{position:static}}

/* 5. PAGES ================================================================= */
/* --- home hero slideshow -------------------------------------------------- */
.hero{padding:20px 0 0}
.hero-frame{position:relative;border-radius:var(--r-frame);overflow:hidden;min-height:680px;display:grid;grid-template-columns:1.1fr .9fr;isolation:isolate;background:var(--ink)}
.hs-media{position:absolute;inset:0;z-index:-2}
.hs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.02);transition:opacity 1.2s var(--ease)}
.hs-media img.is-active{opacity:1;animation:kenburns 9s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.1)}}
.hero-frame::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,22,64,.96) 0%,rgba(46,49,146,.86) 42%,rgba(46,49,146,.35) 75%,rgba(0,174,239,.15) 100%)}
.hero-copy{padding:clamp(48px,7vw,96px) clamp(28px,5vw,72px) 150px;display:grid;gap:26px;align-content:center;color:var(--white);min-width:0}
.hs-stack{display:grid}
.hs-copy{grid-area:1/1;display:grid;gap:26px;align-content:start;visibility:hidden;transition:visibility 0s .6s}
.hs-copy.is-active{visibility:visible;transition-delay:0s}
.hs-copy>*{transition:opacity .6s var(--ease),transform .7s var(--ease)}
.hs-copy:not(.is-active)>*{opacity:0;transform:translateY(18px);transition-duration:.35s}
.hs-copy.is-active>:nth-child(1){transition-delay:.15s}
.hs-copy.is-active>:nth-child(2){transition-delay:.3s}
.hs-copy.is-active>:nth-child(3){transition-delay:.45s}
.hs-copy.is-active>:nth-child(4){transition-delay:.6s}
.hero-copy .eyebrow{color:var(--sky)}
.hero .hs-title{color:var(--white);font:600 clamp(2.6rem,5.4vw,4.6rem)/1.02 var(--display);letter-spacing:-.035em;margin:0;text-wrap:balance}
.hero .hs-title span{background:linear-gradient(90deg,#8FDFFF,var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .hs-body{color:rgba(255,255,255,.78);font-size:1.12rem;max-width:48ch}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.proof{display:flex;gap:28px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);max-width:520px}
.proof div{display:grid}
.proof b{font:500 1.6rem var(--display);color:var(--white);letter-spacing:-.02em}
.proof span{font-size:.8rem;color:rgba(255,255,255,.6)}
.hero-side{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;padding:40px 40px 236px}
.float{background:rgba(255,255,255,.1);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:18px 20px;color:var(--white);display:grid;gap:10px;width:280px;animation:rise 1.2s .6s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.float small{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.float .row{display:flex;align-items:center;gap:12px}
.float .ic{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none}
.float .ic svg{width:18px;height:18px}
.float b{font:500 1rem var(--display)}
.float p{font-size:.84rem;color:rgba(255,255,255,.75)}
/* controls: thumbnails + glass arrows, lower right, above the campaign bar */
.hs-ctrl{position:absolute;right:clamp(20px,3vw,40px);bottom:112px;z-index:3;display:flex;align-items:center;gap:14px}
.hs-thumbs{display:flex;gap:10px}
.hs-thumb{position:relative;width:76px;height:54px;padding:0;border:0;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--ink);opacity:.62;box-shadow:0 0 0 1px rgba(255,255,255,.28);transition:opacity .3s,box-shadow .3s,transform .3s var(--ease)}
.hs-thumb img{width:100%;height:100%;object-fit:cover}
.hs-thumb:hover{opacity:.9;transform:translateY(-2px)}
.hs-thumb[aria-current="true"]{opacity:1;box-shadow:0 0 0 2px var(--sky),0 10px 24px -10px rgba(20,22,64,.6)}
.hs-bar{position:absolute;left:6px;right:6px;bottom:6px;height:3px;border-radius:3px;background:rgba(255,255,255,.3);overflow:hidden;opacity:0;transition:opacity .3s}
.hs-bar i{display:block;height:100%;width:100%;background:var(--sky);border-radius:3px;transform:scaleX(0);transform-origin:left}
[aria-current="true"]>.hs-bar{opacity:1}
[aria-current="true"]>.hs-bar i{animation:hsprog 7s linear forwards}
.hero-frame.is-paused [aria-current="true"]>.hs-bar i{animation-play-state:paused}
.hero-frame.no-auto .hs-bar i{animation:none;transform:scaleX(1)}
@keyframes hsprog{to{transform:scaleX(1)}}
.hs-arrows{display:flex;gap:8px}
.hs-arrow{width:46px;height:46px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;color:var(--white);background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .3s,color .3s,transform .3s var(--ease)}
.hs-arrow svg{width:18px;height:18px}
.hs-arrow:hover{background:var(--surface);color:var(--ink);transform:translateY(-1px)}
.hs-dots{display:none;gap:8px;align-items:center}
.hs-dot{position:relative;width:8px;height:8px;border-radius:99px;border:0;padding:0;background:rgba(255,255,255,.4);cursor:pointer;overflow:hidden;transition:width .4s var(--ease),background .3s}
.hs-dot[aria-current="true"]{width:34px;background:rgba(255,255,255,.28)}
.hs-dot .hs-bar{inset:0;height:auto;left:0;right:0;bottom:0;border-radius:99px;background:transparent}
.hs-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media (max-width:960px){
  .hero-frame{grid-template-columns:1fr;min-height:0}
  .hero-side{display:none}
  .hero-copy{padding-bottom:210px}
}
@media (max-width:600px){
  .hero-frame{border-radius:24px}
  .hero-copy{padding:44px 24px 176px;gap:22px}
  .hs-copy{gap:20px}
  .hero .hs-body{font-size:1rem}
  .proof{gap:18px;padding-top:20px}
  .proof b{font-size:1.3rem}
  .hs-thumbs{display:none}
  .hs-dots{display:flex}
  .hs-ctrl{left:24px;right:24px;bottom:106px;justify-content:space-between}
  .hs-arrow{width:42px;height:42px}
}
@media (max-width:380px){.hero .actions .btn{flex:1 1 100%}}

/* campaign bar overlapping hero */
.cbar{position:relative;z-index:5;margin:-88px auto 0;max-width:1100px;padding-inline:clamp(16px,3vw,28px)}
.cbar-in{background:var(--surface);border-radius:22px;box-shadow:var(--shadow),0 0 0 1px var(--line);display:grid;grid-template-columns:120px 1.25fr 1.35fr auto;align-items:center;gap:28px;padding:16px}
.cbar-in>img,.cbar-in>.ph{width:120px;height:104px;object-fit:cover;border-radius:14px;background:var(--grad)}
.cbar h3{font-size:1.05rem;margin-top:4px}
.cbar h3 a:hover{color:var(--indigo)}
.cbar .meta{margin-top:4px}
.give{display:flex;align-items:center;gap:10px;background:var(--mist);border-radius:16px;padding:8px}
.step{display:flex;align-items:center;background:var(--surface);border-radius:12px;box-shadow:0 0 0 1px var(--line)}
.step button{width:40px;height:44px;border:0;background:transparent;color:var(--indigo);font:500 1.2rem var(--display);cursor:pointer;display:grid;place-items:center;border-radius:12px}
.step button:hover{background:var(--mist)}
.step button svg{width:16px;height:16px}
.step output{min-width:96px;text-align:center;font:500 .98rem var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:980px){.cbar-in{grid-template-columns:1fr 1fr}.cbar-in>img,.cbar-in>.ph{display:none}.give{grid-column:1/-1;justify-content:space-between}}
@media (max-width:560px){.cbar-in{grid-template-columns:1fr;gap:18px;padding:20px}.give{flex-wrap:wrap}.give .btn{flex:1}}

/* program strip */
.programs{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:72px}
.prog-i{padding:28px 24px;display:grid;gap:12px;align-content:start;border-left:1px solid var(--line);transition:background .35s var(--ease)}
.prog-i:first-child{border-left:0}
.prog-i:hover{background:var(--mist)}
.prog-i .ic,.ic-box{width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--indigo);display:grid;place-items:center;transition:background .35s,color .35s;flex:none}
.prog-i:hover .ic{background:var(--grad);color:var(--white)}
.prog-i .ic svg,.ic-box svg{width:22px;height:22px}
.prog-i h3{font-size:1rem}
.prog-i p{font-size:.86rem;line-height:1.5}
.go{font:500 .82rem var(--display);color:var(--indigo);display:flex;align-items:center;gap:6px}
.go svg{width:14px;height:14px}
.prog-i .go{opacity:0;transform:translateX(-4px);transition:.3s var(--ease)}
.prog-i:hover .go,.prog-i:focus-visible .go{opacity:1;transform:none}
@media (max-width:1000px){.programs{grid-template-columns:repeat(3,1fr)}.prog-i:nth-child(4){border-left:0}.prog-i:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width:600px){.programs{grid-template-columns:1fr 1fr}.prog-i{border-left:0!important;border-top:1px solid var(--line)}.prog-i:nth-child(-n+2){border-top:0}.prog-i:nth-child(even){border-left:1px solid var(--line)!important}.prog-i:last-child:nth-child(odd){grid-column:span 2}.prog-i .go{opacity:1;transform:none}}

/* about (stacked photos) */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,100px);align-items:center}
.stackph{position:relative;aspect-ratio:1/1.05;max-width:540px;width:100%}
.stackph .a{position:absolute;inset:0 18% 14% 0;border-radius:24px;overflow:hidden;background:var(--tint)}
.stackph .b{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:3/4;border-radius:20px;overflow:hidden;border:8px solid var(--white);box-shadow:0 30px 60px -30px rgba(20,22,64,.5);background:var(--tint)}
.stackph img{width:100%;height:100%;object-fit:cover}
.stackph .since{position:absolute;left:24px;bottom:22%;background:var(--surface);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow-sm);display:grid}
.stackph .since b{font:600 2rem/1 var(--display);letter-spacing:-.03em}
.stackph .since span{font-size:.78rem;color:var(--soft)}
.about-copy{display:grid;gap:22px;justify-items:start}
.figs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:26px;margin-top:6px;width:100%}
.figs div{display:grid;gap:2px;padding-right:12px}
.figs div+div{border-left:1px solid var(--line);padding-left:20px}
.figs b{font:500 clamp(1.7rem,3vw,2.3rem)/1.1 var(--display);color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.figs span{font-size:.84rem}
.figs.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:640px){.figs.four{grid-template-columns:1fr 1fr;row-gap:22px}.figs.four div:nth-child(3){border-left:0;padding-left:0}}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:100%}
.mv div{padding:18px 0 0;border-top:2px solid var(--tint)}
.mv b{display:block;font:600 .95rem var(--display);color:var(--ink);margin-bottom:4px}
.mv p{font-size:.92rem;line-height:1.55}
@media (max-width:900px){.about{grid-template-columns:1fr}.mv{grid-template-columns:1fr}}

/* ledger: the one dark chapter */
.ledger{background:var(--ink);color:rgba(255,255,255,.7);position:relative;overflow:hidden}
.ledger::before{content:"";position:absolute;width:900px;height:900px;right:-300px;top:-420px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,174,239,.22),transparent)}
.ledger::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%)}
.ledger .wrap{position:relative;z-index:1}
.ledger h2,.ledger h3{color:var(--white)}
.lgrid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:1px;background:rgba(255,255,255,.08);border-radius:24px;overflow:hidden}
.lc{background:rgba(20,22,64,.92);padding:32px;display:grid;gap:22px;align-content:start;min-width:0}
.lc .hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.lc .hd small{font-size:.8rem;color:rgba(255,255,255,.5)}
.donut-row{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center}
.donut{position:relative;width:150px;height:150px}
.donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.donut .ctr{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.donut .ctr b{font:500 1.7rem var(--display);color:var(--white);letter-spacing:-.03em}
.donut .ctr small{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.legend{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:.88rem;min-width:0}
.legend li{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;white-space:nowrap}
.legend i{width:10px;height:10px;border-radius:3px}
.legend b{color:var(--white);font-weight:500}
.legend .muted-row{opacity:.7}
.big{font:500 2.6rem/1 var(--display);color:var(--white);letter-spacing:-.035em}
.range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:linear-gradient(90deg,var(--sky) var(--p,15%),rgba(255,255,255,.12) var(--p,15%));outline-offset:6px}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 6px rgba(0,174,239,.28);cursor:pointer}
.range::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:var(--surface);box-shadow:0 0 0 6px rgba(0,174,239,.28);cursor:pointer}
.buys{display:grid;gap:1px;background:rgba(255,255,255,.08);border-radius:14px;overflow:hidden}
.buy{display:grid;grid-template-columns:56px 1fr;align-items:center;background:rgba(255,255,255,.03);padding:14px 16px}
.buy b{font:500 1.6rem var(--display);color:var(--sky);letter-spacing:-.02em}
.buy p{font-size:.88rem;line-height:1.4}
.buy small{color:rgba(255,255,255,.45)}
.zrow{display:grid;gap:8px}
.zrow .row{display:flex;justify-content:space-between;gap:10px;font-size:.86rem}
.zrow .row b{color:var(--white);font-weight:500}
.zrow .t{height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.zrow .t i{display:block;height:100%;border-radius:99px;transform-origin:left;animation:fill 1.6s .6s var(--ease) both}
.ar-big{font:700 2rem/1 var(--ar);color:var(--sky)}
.note{display:flex;gap:12px;font-size:.84rem;line-height:1.5;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.note svg{width:20px;height:20px;flex:none;color:var(--sky)}
.lfoot{display:flex;flex-wrap:wrap;gap:16px 28px;justify-content:space-between;align-items:center;margin-top:36px;font-size:.88rem}
@media (max-width:1060px){.lgrid{grid-template-columns:1fr 1fr}.lgrid .lc:first-child{grid-column:1/-1}}
@media (max-width:700px){.lgrid{grid-template-columns:1fr}.donut-row{grid-template-columns:1fr;justify-items:start}.lc{padding:26px 22px}}

/* campaign cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.cards.two{grid-template-columns:1fr 1fr}
.ccard{display:grid;gap:18px;align-content:start;min-width:0}
.ccard .ph{position:relative;aspect-ratio:4/3;border-radius:var(--r-card);overflow:hidden;background:var(--grad);display:block}
.ccard .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.ccard:hover .ph img{transform:scale(1.05)}
.ccard .ph .fallback{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.85)}
.ccard .ph .fallback svg{width:48px;height:48px}
.pill{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:6px 12px;font:500 .72rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--indigo)}
.pill.z{left:auto;right:14px;background:var(--indigo);color:var(--white)}
.pill.done{left:auto;right:14px;background:var(--ink);color:var(--white)}
.ccard h3 a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease)}
.ccard:hover h3 a{background-size:100% 1px}
.ccard p{font-size:.95rem;line-height:1.55}
.ccard .prog .row b{font-size:1.05rem}
.ccard .ft{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;border-top:1px solid var(--line);font-size:.84rem;color:var(--soft)}
.ccard .ft a{font:500 .88rem var(--display);color:var(--indigo);display:flex;gap:6px;align-items:center;flex:none}
.ccard .ft a svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.ccard:hover .ft a svg{transform:translateX(3px)}
@media (max-width:980px){.cards{grid-template-columns:1fr 1fr}} @media (max-width:640px){.cards,.cards.two{grid-template-columns:1fr}}

/* dual panels */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.panel{position:relative;border-radius:24px;overflow:hidden;min-height:380px;padding:clamp(32px,4vw,48px);display:grid;align-content:end;gap:16px;color:var(--white);isolation:isolate;background:var(--ink)}
.panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.panel:hover>img{transform:scale(1.04)}
.panel::before{content:"";position:absolute;inset:0;z-index:-1}
.panel.a::before{background:linear-gradient(180deg,rgba(46,49,146,.25) 0%,rgba(20,22,64,.94) 78%)}
.panel.b{background:var(--grad)}
.panel.b::before{background:radial-gradient(circle at 100% 0,rgba(255,255,255,.18),transparent 55%)}
.panel h3{color:var(--white);font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:600;letter-spacing:-.025em}
.panel p{color:rgba(255,255,255,.78);max-width:44ch}
.panel .eyebrow{color:rgba(255,255,255,.85)}
.panel .eyebrow::before{background:var(--surface)}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{height:40px;padding:0 16px;border-radius:10px;border:0;background:rgba(255,255,255,.14);color:var(--white);font:500 .88rem var(--display);cursor:pointer;transition:background .2s;font-variant-numeric:tabular-nums}
.seg button:hover{background:rgba(255,255,255,.24)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--indigo)}
@media (max-width:820px){.dual{grid-template-columns:1fr}}

/* moments gallery */
.moments{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:280px 280px;gap:16px}
.moments figure{margin:0;border-radius:var(--r-card);overflow:hidden;position:relative;background:var(--tint)}
.moments img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.moments figure:hover img{transform:scale(1.05)}
.moments figcaption{position:absolute;left:16px;bottom:16px;z-index:1;color:var(--white);font:500 .86rem var(--display);text-shadow:0 1px 12px rgba(20,22,64,.5)}
.moments figure::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(20,22,64,.6));pointer-events:none}
.moments .m1{grid-row:span 2}
.moments .m4{grid-column:span 2}
@media (max-width:820px){.moments{grid-template-columns:1fr 1fr;grid-template-rows:220px 180px 180px}.moments .m1{grid-row:span 1;grid-column:span 2}}

/* sponsor section + dashboard card (also used in the sponsor dashboard) */
.sponsor{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,6vw,90px);align-items:center}
.dcard{position:relative;background:var(--surface);border-radius:24px;box-shadow:0 50px 100px -50px rgba(20,22,64,.55),0 0 0 1px var(--line);overflow:hidden;min-width:0}
.dcard::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--grad)}
.dcard.inline{box-shadow:0 0 0 1px var(--line)}
.dtop{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line);font-size:.88rem;color:var(--soft)}
.dtop b{color:var(--ink);font:600 .95rem var(--display)}
.dbody{padding:24px;display:grid;gap:22px}
.kid{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center}
.kid .avatar{width:56px;height:56px;border-radius:16px;font-size:1.3rem}
.kid b{color:var(--ink);font:600 1rem var(--display)}
.kid small{display:block;font-size:.84rem;color:var(--soft)}
.chart{height:110px}
.chart svg{width:100%;height:100%;overflow:visible}
@media (max-width:920px){.sponsor{grid-template-columns:1fr}}
@media (max-width:460px){.kid{grid-template-columns:48px 1fr}.kid .chip{grid-column:1/-1;justify-self:start}.kid .avatar{width:48px;height:48px}}

/* events list */
.events{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,72px);align-items:start}
.events .intro{display:grid;gap:18px;position:sticky;top:110px}
.ev-list{display:grid;border-top:1px solid var(--line)}
.ev{display:grid;grid-template-columns:84px 1fr auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);transition:padding .35s var(--ease),background .35s}
.ev:hover{padding-inline:12px;background:linear-gradient(90deg,var(--mist),transparent)}
.ev .date{display:grid;text-align:center;border:1px solid var(--line);border-radius:14px;padding:10px 0;background:var(--surface)}
.ev .date b{font:500 1.7rem/1 var(--display);color:var(--ink);letter-spacing:-.03em}
.ev .date small{font:500 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--indigo)}
.ev h3{font-size:1.1rem}
.ev h3 a:hover{color:var(--indigo)}
.ev .m{font-size:.86rem;color:var(--soft);margin-top:4px}
.ev .spots{font:500 .82rem var(--display);color:var(--indigo);white-space:nowrap}
.ev .end{display:flex;align-items:center;gap:10px;justify-self:end}
.ev-list.compact .ev{grid-template-columns:64px 1fr auto;gap:16px;padding:16px 0}
.ev-list.compact .ev .date{border-radius:12px;padding:8px 0}
.ev-list.compact .ev .date b{font-size:1.35rem}
.ev-list.compact h3{font-size:.98rem}
.ev-list.compact .ev:first-child{border-top:0}
.card .ev-list{border-top:0}
.card .ev-list .ev:last-child{border-bottom:0}
@media (max-width:900px){.events{grid-template-columns:1fr}.events .intro{position:static}}
@media (max-width:560px){.ev,.ev-list.compact .ev{grid-template-columns:64px 1fr;gap:16px}.ev .spots,.ev .end{grid-column:2;justify-self:start}}

/* closing CTA */
.cta{position:relative;border-radius:var(--r-frame);overflow:hidden;color:var(--white);padding:clamp(70px,10vw,130px) clamp(24px,6vw,80px);isolation:isolate;display:grid;grid-template-columns:1.3fr auto;gap:40px;align-items:end;background:var(--ink)}
.cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,22,64,.95),rgba(46,49,146,.75) 60%,rgba(0,174,239,.35))}
.cta blockquote{margin:0;font:500 clamp(1.5rem,3vw,2.4rem)/1.3 var(--display);letter-spacing:-.02em;max-width:24ch}
.cta cite{display:block;margin-top:18px;font:400 .95rem var(--body);font-style:normal;color:rgba(255,255,255,.65)}
.cta h2{color:var(--white)}
.cta p{color:rgba(255,255,255,.78);max-width:52ch}
@media (max-width:820px){.cta{grid-template-columns:1fr}}

/* funds (ways to give) */
.funds{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.fund{padding:32px 28px 32px 0;display:grid;gap:12px;align-content:start;border-bottom:1px solid var(--line)}
.fund:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--line)}
.fund .ar{font:700 1.9rem/1.1 var(--ar);color:var(--indigo)}
.fund .tag{justify-self:start}
.fund h3{font-size:1.2rem}
.fund p{font-size:.95rem}
.fund .btn{justify-self:start;margin-top:6px}
@media (max-width:900px){.funds{grid-template-columns:1fr 1fr}.fund:not(:nth-child(3n+1)){padding-left:0;border-left:0}.fund:nth-child(even){padding-left:28px;border-left:1px solid var(--line)}}
@media (max-width:600px){.funds{grid-template-columns:1fr}.fund:nth-child(even){padding-left:0;border-left:0}}

/* program cards (programs index) */
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,48px) 28px}
.pcard{display:grid;gap:18px;align-content:start}
.pcard .ph{position:relative;aspect-ratio:16/10;border-radius:var(--r-card);overflow:hidden;background:var(--grad)}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.pcard:hover .ph img{transform:scale(1.04)}
.pcard .hd{display:flex;gap:14px;align-items:center}
.pcard .n{font:500 .8rem var(--display);letter-spacing:.14em;color:var(--indigo)}
.pcard h2{font-size:1.45rem}
.pcard .ft{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;padding-top:16px;border-top:1px solid var(--line);font-size:.86rem}
@media (max-width:760px){.pcards{grid-template-columns:1fr}}
.photo{border-radius:var(--r-card);overflow:hidden;background:var(--tint)}
.photo img{width:100%;height:auto;object-fit:cover}
.photo.wide img{aspect-ratio:16/9}

/* aside / support card */
.aside-card{border:1px solid var(--line);border-radius:24px;padding:28px;display:grid;gap:16px;background:var(--surface)}
.aside-card h3{font-size:1.2rem}
.aside-card .links{list-style:none;margin:0;padding:0;display:grid}
.aside-card .links a{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--line);font:500 .92rem var(--display);color:var(--ink)}
.aside-card .links a:hover{color:var(--indigo)}
.aside-card .links svg{width:15px;height:15px;color:var(--soft)}

/* campaign detail */
.raise{display:grid;gap:14px}
.raise .big-n{font:500 clamp(1.8rem,3vw,2.4rem)/1 var(--display);color:var(--ink);letter-spacing:-.03em}
.need{display:grid;gap:12px;padding:22px 0;border-top:1px solid var(--line)}
.need h3{font-size:1rem}
.update{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line)}
.update time{font:500 .8rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--indigo);padding-top:3px}
.update img{border-radius:16px;margin-top:12px}
@media (max-width:600px){.update{grid-template-columns:1fr;gap:8px}}

/* donate form */
.donate{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,3vw,32px);display:grid;gap:20px;min-width:0;box-shadow:var(--shadow-sm)}
.donate h3{font-size:1.35rem;margin-top:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input,.pay input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.chips label{height:40px;display:inline-flex;align-items:center;padding:0 14px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);font:500 .86rem var(--display);cursor:pointer;transition:box-shadow .2s,background .2s,color .2s}
.chips label:hover{box-shadow:inset 0 0 0 1px var(--indigo)}
.chips label.is-on,.chips label:has(input:checked){background:var(--indigo);color:var(--white);box-shadow:none}
.chips label:focus-within,.pay label:focus-within{outline:2px solid var(--sky);outline-offset:2px}
.fund-note{font-size:.88rem;color:var(--text);background:var(--mist);border-radius:12px;padding:12px 14px;line-height:1.55}
.amount-box{display:flex;align-items:center;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line-2);transition:box-shadow .2s;background:var(--surface)}
.amount-box:focus-within{box-shadow:inset 0 0 0 1px var(--sky),0 0 0 4px rgba(0,174,239,.18)}
.amount-box .cur{padding:0 4px 0 20px;font:500 1rem var(--display);color:var(--soft)}
.amount-box input,.field .amount-box input:not([type=checkbox]){border:0;box-shadow:none;height:auto;border-radius:0;background:transparent;font:500 2rem var(--display);letter-spacing:-.02em;color:var(--ink);width:100%;min-width:0;padding:12px 20px 12px 8px;font-variant-numeric:tabular-nums}
.amount-box input:focus,.field .amount-box input:focus{outline:none;box-shadow:none}
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.level{height:42px;border:0;border-radius:10px;background:var(--mist);color:var(--ink);font:500 .88rem var(--display);cursor:pointer;transition:background .2s,color .2s;font-variant-numeric:tabular-nums}
.level:hover{background:var(--tint)}
.level[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.pay{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay label{position:relative;display:grid;gap:2px;padding:14px 16px 14px 44px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);font:500 .92rem var(--display);cursor:pointer;transition:box-shadow .2s,background .2s}
.pay label::before{content:"";position:absolute;left:16px;top:17px;width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2);transition:box-shadow .2s}
.pay label.is-on,.pay label:has(input:checked){box-shadow:inset 0 0 0 1.5px var(--indigo);background:var(--mist)}
.pay label.is-on::before,.pay label:has(input:checked)::before{box-shadow:inset 0 0 0 5px var(--indigo)}
.pay label:has(input:disabled){opacity:.5;cursor:not-allowed}
.pay small{font:400 .78rem var(--body);color:var(--soft)}
.donate .btn[type=submit]{width:100%;height:54px}
.donate .small{font-size:.8rem;color:var(--soft)}
@media (max-width:420px){.levels{grid-template-columns:1fr 1fr}.pay{grid-template-columns:1fr}}

/* status + receipt */
.status-box{max-width:600px;margin:0 auto;text-align:center;display:grid;gap:16px;justify-items:center;padding:clamp(32px,5vw,56px)}
.status-box h1{font-size:clamp(1.7rem,3vw,2.2rem)}
.status-icon{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;color:var(--white);font:600 2rem var(--display)}
.status-icon.confirmed{background:var(--grad)}
.status-icon.confirmed svg{width:36px;height:36px}
.status-icon.failed{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.status-icon.pending{background:var(--tint);color:var(--indigo)}
.spinner{width:84px;height:84px;border-radius:50%;border:5px solid var(--tint);border-top-color:var(--sky);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.receipt{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(24px,5vw,48px);position:relative;overflow:hidden}
.receipt::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--grad)}
.receipt .rhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--line)}
.receipt .rhead .logo img{height:36px}
.receipt .rhead strong{display:block;font:600 1rem var(--display);color:var(--ink)}
.receipt dl{display:grid;grid-template-columns:200px 1fr;margin:0}
.receipt dt,.receipt dd{padding:12px 0;border-bottom:1px solid var(--line);margin:0}
.receipt dt{color:var(--soft);font-size:.9rem}
.receipt dd{color:var(--ink)}
.receipt .amount{font:500 1.4rem var(--display);letter-spacing:-.02em}
@media (max-width:560px){.receipt dl{grid-template-columns:1fr}.receipt dt{border-bottom:0;padding-bottom:0}}

/* auth: split layout */
.auth{padding:20px 0 0}
.auth-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:stretch;min-height:min(760px,calc(100vh - 160px))}
.auth-form{display:grid;align-content:center;gap:22px;padding:clamp(24px,5vw,64px) 0;max-width:460px;width:100%;margin-inline:auto}
.auth-form.wide{max-width:560px}
.auth-form h1{font-size:clamp(2rem,3.4vw,2.8rem)}
.auth-form .alt{font-size:.93rem;padding-top:20px;border-top:1px solid var(--line)}
.auth-art{position:relative;border-radius:var(--r-frame);overflow:hidden;isolation:isolate;display:grid;align-content:end;padding:clamp(28px,4vw,48px);color:var(--white);background:var(--ink);min-height:420px}
.auth-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.04);animation:settle 2.4s var(--ease) forwards}
.auth-art::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(200deg,rgba(0,174,239,.25) 0%,rgba(46,49,146,.7) 45%,rgba(20,22,64,.95) 100%)}
.auth-art blockquote{margin:0;font:500 clamp(1.3rem,2.2vw,1.8rem)/1.35 var(--display);letter-spacing:-.02em;max-width:26ch}
.auth-art cite{display:block;margin-top:14px;font:400 .9rem var(--body);font-style:normal;color:rgba(255,255,255,.65)}
.auth-art .proof{margin-top:28px}
@media (max-width:900px){.auth-split{grid-template-columns:1fr;min-height:0}.auth-art{min-height:280px;order:-1}.auth-art .proof{display:none}}
@media (max-width:560px){.auth-art{min-height:200px}.auth-art blockquote{font-size:1.15rem}}

/* sponsor-a-child cards */
.kids{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.kcard{display:grid;gap:16px;align-content:start;min-width:0}
.kcard .ph{aspect-ratio:4/3;border-radius:var(--r-card);overflow:hidden;background:var(--grad);display:grid;place-items:center;color:var(--white);font:600 3.4rem var(--display);letter-spacing:-.03em}
.kcard .ph img{width:100%;height:100%;object-fit:cover}
.kcard .ft{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.kcard .need-n{font:500 .95rem var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
.kcard .need-n small{color:var(--soft);font:400 .8rem var(--body)}
@media (max-width:900px){.kids{grid-template-columns:1fr 1fr}} @media (max-width:560px){.kids{grid-template-columns:1fr}}
.privacy-note{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:var(--mist);font-size:.9rem;color:var(--text)}
.privacy-note svg{color:var(--indigo);width:20px;height:20px;flex:none;margin-top:2px}

/* values */
.values{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.val{padding:28px 24px 28px 0;display:grid;gap:10px;align-content:start}
.val+.val{padding-left:24px;border-left:1px solid var(--line)}
.val .n{font:500 .8rem var(--display);letter-spacing:.14em;color:var(--indigo)}
.val h3{font-size:1.05rem}
.val p{font-size:.93rem}
@media (max-width:900px){.values{grid-template-columns:1fr 1fr}.val:nth-child(3){padding-left:0;border-left:0}.val:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:480px){.values{grid-template-columns:1fr}.val+.val{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* timeline (progress reports) */
.timeline{list-style:none;margin:0;padding:0;display:grid}
.timeline li{position:relative;padding:0 0 26px 26px;border-left:1px solid var(--line)}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-6px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2.5px var(--sky)}
.timeline time{font:500 .74rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--indigo)}
.timeline h4{margin:4px 0 6px}
.grades{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.grades span{background:var(--mist);border-radius:8px;font-size:.8rem;padding:4px 10px;color:var(--ink)}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumbs img{width:84px;height:64px;object-fit:cover;border-radius:10px}

/* 6. DASHBOARD APP SHELL =================================================== */
.app{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh;background:linear-gradient(90deg,var(--ink) 268px,var(--mist) 268px)}
.side{background:var(--ink);color:rgba(255,255,255,.72);position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.side-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 24px 20px}
.side-top .logo img{height:32px}
.side-top .wordmark b{color:var(--white)}
.side-toggle{display:none;height:40px;padding:0 14px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:var(--white);font:500 .86rem var(--display);cursor:pointer;align-items:center;gap:8px}
.side-toggle svg{width:18px;height:18px}
.side-nav{list-style:none;margin:0;padding:4px 14px 24px;display:grid;gap:2px}
.side-nav .grp{font:600 .64rem var(--display);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.38);padding:20px 12px 8px}
.side-nav .grp:first-child{padding-top:4px}
.side-nav a,.side-nav button{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:rgba(255,255,255,.72);font:500 .9rem var(--display);text-align:left;cursor:pointer;transition:background .2s,color .2s}
.side-nav a svg,.side-nav button svg{width:18px;height:18px;opacity:.8}
.side-nav a:hover,.side-nav button:hover{background:rgba(255,255,255,.06);color:var(--white)}
.side-nav a[aria-current="page"]{background:rgba(255,255,255,.08);color:var(--white)}
.side-nav a[aria-current="page"]::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--grad)}
.side-nav a[aria-current="page"] svg{opacity:1;color:var(--sky)}
.side-nav .count{margin-left:auto;background:var(--sky);color:var(--ink);font:600 .68rem var(--display);padding:1px 8px;border-radius:99px}
.side-foot{margin-top:auto;padding:16px 24px 24px;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;color:rgba(255,255,255,.4)}
.main{padding:28px clamp(16px,3vw,40px) 56px;min-width:0}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.top .ttl{display:grid;gap:10px;min-width:0}
.top h1{font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.025em}
.top .who{display:flex;gap:12px;align-items:center;font-size:.86rem;color:var(--ink);flex-wrap:wrap}
.top .who .me{display:flex;gap:10px;align-items:center;padding-left:12px;border-left:1px solid var(--line)}
.main>.alerts{margin-bottom:20px}
.mt-3+.mt-3{margin-top:24px}
/* KPI tiles: hairline strip, wraps cleanly */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);margin-bottom:24px}
.stat{padding:20px 22px;display:grid;gap:4px;align-content:start;min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -1px -1px 0}
.stat span{font:500 .7rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.stat b{font:500 1.55rem/1.2 var(--display);color:var(--ink);letter-spacing:-.025em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stat small{font-size:.8rem;color:var(--soft)}
.stat small a{color:var(--indigo)}
.stat.hl b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.chart-box{position:relative;height:280px}
.chart-box.sm{height:220px}
.chart-box.xs{height:140px}
.bars{display:grid;gap:14px}
.bars .row{display:grid;gap:6px;font-size:.88rem;color:var(--ink)}
.bars .row>div:first-child{display:flex;justify-content:space-between;gap:10px}
.bars .row>div:first-child span:last-child{font-variant-numeric:tabular-nums;color:var(--text)}
.bars .bar{height:6px;border-radius:99px;background:var(--tint);overflow:hidden}
.bars .bar i{display:block;height:100%;border-radius:99px;background:var(--grad);transform-origin:left;animation:fill 1.4s .2s var(--ease) both}
.sub-h{font:600 .7rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:20px 0 12px}
.sub-h:first-child{margin-top:0}
.child-row{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.child-row:first-of-type{border-top:0}
.child-row strong{color:var(--ink);font:600 .98rem var(--display)}
.child-row small{display:block;color:var(--soft);font-size:.82rem}
.child-row .go{opacity:.6}
.child-row:hover .go{opacity:1}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.kanban .col{background:var(--mist);border-radius:16px;padding:14px;min-width:0}
.kanban .col h3{font:600 .72rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-bottom:12px;display:flex;justify-content:space-between}
.kanban .col h3 span{color:var(--indigo)}
.tcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px 14px 18px;margin-bottom:10px;display:grid;gap:8px;overflow:hidden}
.tcard::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--tint)}
.tcard.is-high::before,.tcard.is-overdue::before{background:var(--ink)}
.tcard.is-normal::before,.tcard.is-new::before{background:var(--grad)}
.tcard.is-read{background:var(--mist)}
.tcard strong{color:var(--ink);font:600 .93rem var(--display)}
.tcard .meta{font-size:.8rem}
.tcard .overdue{color:var(--ink);font-weight:600}
.tcard .overdue::before{content:"! "}
.tcard form{margin:0}
@media (max-width:900px){.kanban{grid-template-columns:1fr}}
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:20px;padding:4px;background:var(--mist);border-radius:12px;width:max-content;max-width:100%}
.tabs a{padding:8px 16px;border-radius:9px;font:500 .86rem var(--display);color:var(--text)}
.tabs a[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 0 var(--line),0 4px 12px -6px rgba(20,22,64,.25)}
.feed{list-style:none;margin:0;padding:0;display:grid}
.feed li{padding:14px 0;border-top:1px solid var(--line);display:grid;gap:4px}
.feed li:first-child{border-top:0;padding-top:0}
.feed strong{color:var(--ink);font:600 .95rem var(--display)}
.feed .badge{justify-self:start}
.feed .when{font:500 .72rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--indigo)}
.dl{display:grid;grid-template-columns:180px 1fr;margin:0;font-size:.92rem}
.dl dt,.dl dd{padding:10px 0;border-bottom:1px solid var(--line);margin:0}
.dl dt{color:var(--soft)}
.dl dd{color:var(--ink);min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.dl{grid-template-columns:1fr}.dl dt{border-bottom:0;padding-bottom:0}}
.rule-list>*{padding:12px 0;border-top:1px solid var(--line)}
.rule-list>*:first-child{border-top:0;padding-top:0}
pre.code{white-space:pre-wrap;font-size:.72rem;max-width:520px;overflow:auto;background:var(--mist);border-radius:10px;padding:10px;color:var(--ink)}
/* leaderboard: nickname only */
.lb{list-style:none;margin:0;padding:0;display:grid}
.lb li{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);color:var(--ink);font-size:.93rem}
.lb li:first-child{border-top:0}
.lb .r{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font:600 .8rem var(--display);background:var(--mist);color:var(--text)}
.lb li.rank-1 .r{background:var(--grad);color:var(--white)}
.lb li.rank-2 .r{background:var(--indigo);color:var(--white)}
.lb li.rank-3 .r{background:var(--tint);color:var(--indigo)}
.lb .h{font:500 .92rem var(--display);font-variant-numeric:tabular-nums}
.lb li.me{background:var(--sky-tint);border-radius:12px;padding-inline:10px;margin-inline:-10px;border-top-color:transparent}
.lb li.me+li{border-top-color:transparent}
.lb li.gap{grid-template-columns:1fr;text-align:center;color:var(--soft);padding:2px 0}
.lb-note{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--soft);margin-top:12px}
.lb-note svg{width:15px;height:15px;color:var(--indigo)}
/* sidebar collapses to a top bar under 900px */
@media (max-width:900px){
  .app{grid-template-columns:1fr;background:var(--mist)}
  .side{position:sticky;top:0;z-index:40;height:auto;max-height:100vh;overflow:visible}
  .side-top{padding:12px 16px}
  .side-toggle{display:inline-flex}
  .side-nav{display:none;max-height:calc(100vh - 64px);overflow-y:auto;padding-bottom:16px;border-top:1px solid rgba(255,255,255,.08)}
  .side-nav.open{display:grid}
  .side-nav a[aria-current="page"]::before{left:-14px}
  .side-foot{display:none}
  .main{padding-top:22px}
  .top{align-items:flex-start}
}

/* 7. UTILITIES & MOTION ==================================================== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.center{text-align:center}
.muted{color:var(--soft)} .small{font-size:.86rem}
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:40px}
.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.pt-0{padding-top:0}
.stack{display:grid;gap:16px;align-content:start}
.stack-lg{display:grid;gap:28px;align-content:start}
.row-flex{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nowrap{white-space:nowrap}

/* the footer supplies the closing space after a page's last section */
main>section:last-child{padding-bottom:0}

/* reveal: visible at rest; only below-the-fold items are pre-hidden once JS runs */
.rv{transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.pre{opacity:0;transform:translateY(28px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .js .rv.pre{opacity:1;transform:none}
  .hs-media img.is-active,.pbanner>img,.auth-art>img{animation:none;transform:none}
  .hs-bar i{animation:none!important}
}

@media print{
  .topline,header.nav,footer.site,.no-print,.side,.top .who{display:none!important}
  body,.app,.main{background:var(--surface)}
  .app{display:block} .main{padding:0}
  .receipt,.card,.donate{box-shadow:none}
}

/* ==========================================================================
   Program & fund colour coding (owner request): each program/fund keeps its
   own accent, blended into white as a gradient bar. Used only on these cards.
   ========================================================================== */
.fundcard,.fund,.prog-i,.pcard,.ccard{--c:var(--indigo);--c-blend:linear-gradient(90deg,var(--c) 0%,color-mix(in srgb,var(--c) 55%,#fff) 60%,color-mix(in srgb,var(--c) 12%,#fff) 100%)}
.fundcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.fundcard{position:relative;background:var(--surface);border-radius:18px;padding:30px 28px 28px;display:grid;gap:10px;align-content:start;box-shadow:0 0 0 1px var(--line),0 24px 50px -40px rgba(20,22,64,.45);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.fundcard::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--c-blend)}
.fundcard::after{content:"";position:absolute;right:-60px;top:-60px;width:160px;height:160px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 14%,transparent),transparent);transition:transform .6s var(--ease)}
.fundcard:hover{transform:translateY(-4px);box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 35%,transparent),0 30px 60px -36px color-mix(in srgb,var(--c) 60%,transparent)}
.fundcard:hover::after{transform:scale(1.4)}
.fundcard .ar{font:700 1.9rem/1.1 var(--ar);color:var(--c)}
.fundcard h3{font-size:1.2rem}
.fundcard p{font-size:.94rem;line-height:1.55}
.ftag,.fund .tag{justify-self:start;margin-top:6px;background:var(--c);color:#fff;border-radius:6px;padding:5px 10px;font:600 .68rem var(--display);letter-spacing:.12em;text-transform:uppercase}
@media (max-width:900px){.fundcards{grid-template-columns:1fr 1fr}} @media (max-width:560px){.fundcards{grid-template-columns:1fr}}
/* give page funds */
.fund{position:relative}
.fund::before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--c-blend)}
.fund .ar{color:var(--c)}
/* home program row */
.prog-i{position:relative}
.prog-i::before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--c-blend);}

.prog-i .ic{background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c)}
.prog-i:hover .ic{background:var(--c);color:#fff}
/* programs page + campaign cards */
.pcard .ph,.ccard .ph{box-shadow:inset 0 -4px 0 0 transparent}
.pcard .ph::after,.ccard .ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--c-blend);z-index:2}
.pcard .ic-box{background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c)}
.pcard .n{color:var(--c)}


/* ==========================================================================
   Home hero — Charitics "ul-banner-2" slider, rebuilt in MASO colours.
   Near full-bleed rounded frame, notch cut out of the bottom centre (same
   clip-path shapes as the template) holding prev arrow · round thumbs · next.
   ========================================================================== */
.mb-hero{position:relative;max-width:clamp(0px,96.95vw,1845px);margin:14px auto 0;border-radius:clamp(20px,2.1vw,40px)}
.mb-slider{clip-path:polygon(29.268% 100%, 2.168% 100%, 2.168% 100%, 1.816% 99.939%, 1.483% 99.763%, 1.172% 99.481%, 0.888% 99.103%, 0.635% 98.638%, 0.418% 98.096%, 0.242% 97.486%, 0.111% 96.819%, 0.028% 96.103%, 0% 95.349%, 0% 4.651%, 0% 4.651%, 0.028% 3.897%, 0.111% 3.181%, 0.242% 2.514%, 0.418% 1.904%, 0.635% 1.362%, 0.888% 0.897%, 1.172% 0.519%, 1.483% 0.237%, 1.816% 0.061%, 2.168% 0%, 97.832% 0%, 97.832% 0%, 98.184% 0.061%, 98.517% 0.237%, 98.828% 0.519%, 99.112% 0.897%, 99.365% 1.362%, 99.582% 1.904%, 99.758% 2.514%, 99.889% 3.181%, 99.972% 3.897%, 100% 4.651%, 100% 95.349%, 100% 95.349%, 99.972% 96.103%, 99.889% 96.819%, 99.758% 97.486%, 99.582% 98.096%, 99.365% 98.638%, 99.112% 99.103%, 98.828% 99.481%, 98.517% 99.763%, 98.184% 99.939%, 97.832% 100%, 71.614% 100%, 71.614% 100%, 71.262% 99.939%, 70.929% 99.763%, 70.618% 99.481%, 70.333% 99.103%, 70.081% 98.638%, 69.864% 98.096%, 69.688% 97.486%, 69.557% 96.819%, 69.474% 96.103%, 69.446% 95.349%, 69.446% 95.137%, 69.446% 95.137%, 69.418% 94.383%, 69.336% 93.667%, 69.204% 93%, 69.028% 92.39%, 68.811% 91.848%, 68.558% 91.383%, 68.274% 91.005%, 67.963% 90.723%, 67.63% 90.547%, 67.278% 90.486%, 33.604% 90.486%, 33.604% 90.486%, 33.252% 90.547%, 32.919% 90.723%, 32.607% 91.005%, 32.323% 91.383%, 32.071% 91.848%, 31.854% 92.39%, 31.678% 93%, 31.546% 93.667%, 31.464% 94.383%, 31.436% 95.137%, 31.436% 95.349%, 31.436% 95.349%, 31.407% 96.103%, 31.325% 96.819%, 31.194% 97.486%, 31.017% 98.096%, 30.801% 98.638%, 30.548% 99.103%, 30.264% 99.481%, 29.953% 99.763%, 29.619% 99.939%, 29.268% 100%);border-radius:clamp(20px,2.1vw,40px);overflow:hidden;background:var(--ink)}
.mb-slide{position:relative;z-index:1;padding:clamp(100px,12.35vw,235px) 0 clamp(120px,13vw,250px);min-height:min(86vh,860px);display:flex;align-items:center}
.mb-slide::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(101.64deg,rgba(20,22,64,.94) 1.87%,rgba(46,49,146,.78) 40%,rgba(46,49,146,.28) 78%,rgba(0,174,239,.12) 98.72%)}
.mb-slide-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;pointer-events:none;transform:scale(1.08);transition:transform 7s ease-out}
.swiper-slide-active .mb-slide-bg{transform:scale(1)}
.mb-slide .wrap{width:100%;max-width:1320px}
.mb-txt{max-width:min(760px,62%);color:#fff}
.mb-sub{display:inline-flex;align-items:center;gap:14px;font:600 .8rem var(--display);letter-spacing:.25em;text-transform:uppercase;color:#fff;margin-bottom:clamp(10px,1vw,16px)}
.mb-sub::before{content:"";width:34px;height:2px;border-radius:2px;background:linear-gradient(90deg,#fff,var(--sky))}
.mb-title{font:600 clamp(2.4rem,4.6vw,5rem)/1.08 var(--display);letter-spacing:-.035em;color:#fff;margin:0 0 clamp(17px,1.42vw,27px);text-wrap:balance}
.mb-title span{background:linear-gradient(90deg,#8FDFFF,var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}
.mb-descr{font-size:clamp(15px,1vw,18px);line-height:1.7;color:rgba(255,255,255,.82);max-width:54ch;margin-bottom:clamp(24px,2.15vw,41px)}
.mb-btns{display:flex;flex-wrap:wrap;gap:12px}
.mb-btn{display:inline-flex;align-items:center;gap:12px;height:54px;padding:0 26px 0 7px;border-radius:999px;border:1.5px solid #fff;color:#fff;font:500 .98rem var(--display);transition:background .3s,color .3s,transform .3s var(--ease)}
.mb-btn i{width:40px;height:40px;border-radius:50%;background:var(--surface);color:var(--indigo);display:grid;place-items:center;transition:background .3s,color .3s}
.mb-btn i svg{width:18px;height:18px}
.mb-btn:hover{background:var(--surface);color:var(--ink);transform:translateY(-1px)}
.mb-btn:hover i{background:var(--grad);color:#fff}
.mb-btn.ghost{padding:0 26px;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08);backdrop-filter:blur(6px)}
.mb-txt>*{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.swiper-slide-active .mb-txt>*{opacity:1;transform:none}
.swiper-slide-active .mb-txt>:nth-child(1){transition-delay:.25s}
.swiper-slide-active .mb-txt>:nth-child(2){transition-delay:.4s}
.swiper-slide-active .mb-txt>:nth-child(3){transition-delay:.55s}
.swiper-slide-active .mb-txt>:nth-child(4){transition-delay:.7s}
.no-swiper .mb-slider .swiper-slide:first-child .mb-txt>*{opacity:1;transform:none}
.no-swiper .mb-slider .swiper-slide:not(:first-child){display:none}
.mb-nav{position:absolute;left:50%;bottom:clamp(10px,.68vw,13px);transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:6px}
.mb-nav button{width:44px;height:44px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center;border-radius:50%;transition:transform .3s var(--ease)}
.mb-nav button svg{width:40px;height:8px;fill:var(--indigo)}
.mb-nav .mb-prev:hover{transform:translateX(-4px)} .mb-nav .mb-next:hover{transform:translateX(4px)}
.mb-thumbs{width:150px;margin:0 6px}
.mb-thumbs .swiper-slide{display:grid;place-items:center;cursor:pointer}
.mb-thumbs img{width:clamp(36px,2.3vw,44px);aspect-ratio:1/1;object-fit:cover;border-radius:50%;opacity:.55;transform:scale(.86);transition:opacity .4s,transform .4s var(--ease),box-shadow .4s}
.mb-thumbs .swiper-slide-thumb-active img,.mb-thumbs .swiper-slide-active img{opacity:1;transform:scale(1);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--sky)}
.no-swiper .mb-nav{display:none}
@media (max-width:1100px){.mb-txt{max-width:78%}}
@media (max-width:767px){.mb-hero{margin:10px 12px 0;max-width:none}.mb-slider{clip-path:polygon(16.124% 100%, 7.168% 100%, 7.168% 100%, 6.006% 99.888%, 4.903% 99.562%, 3.874% 99.042%, 2.935% 98.344%, 2.1% 97.486%, 1.383% 96.486%, 0.8% 95.361%, 0.365% 94.129%, 0.094% 92.809%, 0% 91.416%, 0% 8.584%, 0% 8.584%, 0.094% 7.191%, 0.365% 5.871%, 0.8% 4.639%, 1.383% 3.514%, 2.1% 2.514%, 2.935% 1.656%, 3.874% 0.958%, 4.903% 0.438%, 6.006% 0.112%, 7.168% 0%, 92.832% 0%, 92.832% 0%, 93.994% 0.112%, 95.097% 0.438%, 96.126% 0.958%, 97.065% 1.656%, 97.9% 2.514%, 98.617% 3.514%, 99.2% 4.639%, 99.635% 5.871%, 99.906% 7.191%, 100% 8.584%, 100% 91.416%, 100% 91.416%, 99.906% 92.809%, 99.635% 94.129%, 99.2% 95.361%, 98.617% 96.486%, 97.9% 97.486%, 97.065% 98.344%, 96.126% 99.042%, 95.097% 99.562%, 93.994% 99.888%, 92.832% 100%, 83.787% 100%, 83.787% 100%, 83.117% 99.935%, 82.482% 99.748%, 81.89% 99.448%, 81.349% 99.047%, 80.868% 98.553%, 80.456% 97.977%, 80.12% 97.329%, 79.87% 96.62%, 79.714% 95.86%, 79.659% 95.058%, 79.659% 95.058%, 79.567% 93.684%, 79.299% 92.381%, 78.87% 91.166%, 78.295% 90.056%, 77.588% 89.069%, 76.763% 88.222%, 75.837% 87.533%, 74.822% 87.02%, 73.733% 86.699%, 72.586% 86.588%, 49.731% 86.588%, 27.325% 86.588%, 27.325% 86.588%, 26.177% 86.699%, 25.089% 87.02%, 24.074% 87.533%, 23.147% 88.222%, 22.323% 89.069%, 21.616% 90.056%, 21.04% 91.166%, 20.612% 92.381%, 20.343% 93.684%, 20.251% 95.058%, 20.251% 95.058%, 20.197% 95.86%, 20.041% 96.62%, 19.79% 97.329%, 19.455% 97.977%, 19.042% 98.553%, 18.561% 99.047%, 18.02% 99.448%, 17.428% 99.748%, 16.793% 99.935%, 16.124% 100%)}.mb-txt{max-width:100%}.mb-slide{min-height:0;padding:90px 0 130px}.mb-nav{bottom:0}}
@media (max-width:479px){.mb-slider{clip-path:polygon(6.622% 100%, 6.452% 100%, 6.452% 100%, 5.405% 99.954%, 4.412% 99.823%, 3.487% 99.612%, 2.641% 99.329%, 1.89% 98.981%, 1.245% 98.576%, 0.72% 98.12%, 0.329% 97.621%, 0.084% 97.086%, 0% 96.522%, 0% 2.609%, 0% 2.609%, 0.063% 2.186%, 0.247% 1.784%, 0.54% 1.41%, 0.934% 1.068%, 1.417% 0.764%, 1.981% 0.503%, 2.615% 0.291%, 3.309% 0.133%, 4.054% 0.034%, 4.839% 0%, 95.484% 0%, 95.484% 0%, 96.216% 0.032%, 96.911% 0.124%, 97.559% 0.272%, 98.151% 0.47%, 98.677% 0.713%, 99.129% 0.997%, 99.496% 1.316%, 99.77% 1.665%, 99.941% 2.04%, 100% 2.435%, 100% 96.522%, 100% 96.522%, 99.916% 97.086%, 99.671% 97.621%, 99.28% 98.12%, 98.755% 98.576%, 98.11% 98.981%, 97.359% 99.329%, 96.513% 99.612%, 95.588% 99.823%, 94.595% 99.954%, 93.548% 100%, 93.055% 100%, 93.055% 100%, 92.046% 99.958%, 91.085% 99.835%, 90.185% 99.637%, 89.358% 99.372%, 88.615% 99.045%, 87.971% 98.663%, 87.436% 98.231%, 87.023% 97.757%, 86.745% 97.246%, 86.613% 96.705%, 86.452% 95.058%, 86.435% 94.945%, 86.435% 94.945%, 86.282% 94.415%, 85.988% 93.917%, 85.566% 93.454%, 85.027% 93.035%, 84.383% 92.663%, 83.646% 92.346%, 82.828% 92.09%, 81.94% 91.899%, 80.994% 91.78%, 80.003% 91.739%, 49.032% 91.739%, 19.682% 91.739%, 19.682% 91.739%, 18.709% 91.779%, 17.779% 91.893%, 16.904% 92.077%, 16.096% 92.326%, 15.364% 92.633%, 14.721% 92.993%, 14.179% 93.401%, 13.748% 93.851%, 13.439% 94.337%, 13.265% 94.855%, 13.226% 95.058%, 13.065% 96.705%, 13.065% 96.705%, 12.933% 97.246%, 12.654% 97.757%, 12.242% 98.231%, 11.707% 98.663%, 11.062% 99.045%, 10.32% 99.372%, 9.492% 99.637%, 8.592% 99.835%, 7.631% 99.958%, 6.622% 100%)}.mb-btn{height:50px}.mb-thumbs{width:128px}}
@media (prefers-reduced-motion:reduce){.mb-slide-bg{transition:none;transform:none}.mb-txt>*{transition:none}}

/* ==========================================================================
   Sectors band — wave divisions top and bottom, colour-coded sector cards,
   impact figures and the live featured campaign.
   ========================================================================== */
.sectors{position:relative;background:var(--mist);padding-block:clamp(130px,12vw,190px) clamp(130px,12vw,180px);margin-top:clamp(40px,5vw,70px);overflow:hidden}
.sectors::before{content:"";position:absolute;width:760px;height:760px;left:-300px;top:10%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,174,239,.10),transparent)}
.sectors::after{content:"";position:absolute;width:680px;height:680px;right:-260px;bottom:0;border-radius:50%;background:radial-gradient(closest-side,rgba(46,49,146,.08),transparent)}
.sectors .wrap{position:relative;z-index:1}
.wave{position:absolute;left:0;width:100%;height:clamp(60px,8vw,120px);display:block;z-index:1}
.wave-top{top:-1px} .wave-bottom{bottom:-1px}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.scard{--c:var(--indigo);position:relative;background:var(--surface);border-radius:22px;padding:30px 28px 26px;display:grid;gap:12px;align-content:start;overflow:hidden;isolation:isolate;box-shadow:0 0 0 1px var(--line),0 24px 50px -44px rgba(20,22,64,.5);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.scard::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 45%,#fff) 60%,color-mix(in srgb,var(--c) 10%,#fff))}
.scard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,#fff),#fff 55%);opacity:0;transition:opacity .45s var(--ease)}
.scard:hover{transform:translateY(-6px);box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),0 34px 60px -38px color-mix(in srgb,var(--c) 55%,transparent)}
.scard:hover::after{opacity:1}
.sno{position:absolute;right:24px;top:22px;font:600 2.6rem/1 var(--display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--c) 30%,transparent);transition:-webkit-text-stroke-color .4s}
.scard:hover .sno{-webkit-text-stroke-color:var(--c)}
.sic{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));box-shadow:0 14px 26px -14px var(--c);margin-bottom:6px;transition:transform .45s var(--ease)}
.sic svg{width:26px;height:26px}
.scard:hover .sic{transform:rotate(-6deg) scale(1.05)}
.scard h3{font-size:1.2rem}
.scard p{font-size:.94rem;line-height:1.6}
.stags{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.stags li{font:500 .74rem var(--display);color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);border-radius:999px;padding:4px 11px}
.sgo{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);font:500 .88rem var(--display);color:var(--ink);display:flex;align-items:center;gap:8px}
.sgo svg{width:15px;height:15px;color:var(--c);transition:transform .35s var(--ease)}
.scard:hover .sgo svg{transform:translateX(4px)}
.simpact{margin-top:34px;display:grid;grid-template-columns:1fr 1.15fr;gap:22px;align-items:stretch}
.sfigs{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);border-radius:22px;overflow:hidden;position:relative}
.sfigs::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0,rgba(0,174,239,.28),transparent 60%)}
.sfigs div{position:relative;padding:26px 28px;display:grid;gap:4px;border-color:rgba(255,255,255,.08)}
.sfigs div:nth-child(odd){border-right:1px solid rgba(255,255,255,.08)}
.sfigs div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.08)}
.sfigs b{font:500 clamp(1.8rem,3vw,2.5rem)/1 var(--display);letter-spacing:-.03em;background:linear-gradient(90deg,#fff,#9FE3FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.sfigs span{font-size:.86rem;color:rgba(255,255,255,.62)}
.snow{--c:var(--indigo);display:grid;grid-template-columns:200px 1fr;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 0 0 1px var(--line),0 30px 60px -44px rgba(20,22,64,.5)}
.snow>img{width:100%;height:100%;object-fit:cover;border-right:4px solid var(--c)}
.snow-body{padding:24px 26px;display:grid;gap:14px;align-content:center}
.snow .tag{display:inline-flex;align-items:center;gap:8px;color:var(--c)}
.snow .tag .dot{width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent);animation:pulse 2.4s infinite}
.snow h3{font-size:1.25rem}
.snow .give{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media (max-width:1000px){.sgrid{grid-template-columns:1fr 1fr}.simpact{grid-template-columns:1fr}}
@media (max-width:620px){.sgrid{grid-template-columns:1fr}.snow{grid-template-columns:1fr}.snow>img{height:170px;border-right:0;border-bottom:4px solid var(--c)}.sfigs div{padding:20px}}
.mb-hero{padding:0}
.mb-slider .swiper-slide{width:100%}
.mb-slider .swiper-slide{overflow:hidden;position:relative}
@media (max-width:640px){.sgrid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;gap:14px;margin-inline:-16px;padding:6px 16px 18px;scrollbar-width:none}.sgrid::-webkit-scrollbar{display:none}.sgrid>.scard{flex:0 0 84%;scroll-snap-align:start}}
/* ---- Home hero x concept blend (v2): tighter gutters, proof + live card overlay, solid primary CTA ---- */
.mb-slide{min-height:min(84vh,800px);padding:clamp(70px,7vw,120px) 0 clamp(200px,15vw,250px)}
.mb-slide .wrap,.mb-over .wrap{max-width:none;padding-inline:clamp(24px,5vw,78px)}
.mb-txt{max-width:min(720px,58%)}
.mb-over{position:absolute;inset:auto 0 clamp(92px,7.4vw,118px);z-index:2;pointer-events:none}
.mb-over-in{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.mb-over .proof{pointer-events:auto;border-top-color:rgba(255,255,255,.18);min-width:min(420px,100%)}
.mb-over .float{pointer-events:auto;width:290px;margin-bottom:-4px}
.mb-over .float .ic{background:rgba(255,255,255,.16)}
.mb-btn:not(.ghost){background:var(--surface);border-color:#fff;color:var(--ink)}
.mb-btn:not(.ghost) i{background:var(--grad);color:#fff}
.mb-btn:not(.ghost):hover{background:var(--grad);border-color:transparent;color:#fff}
.mb-btn:not(.ghost):hover i{background:var(--surface);color:var(--indigo)}
.mb-btn.ghost:hover{background:rgba(255,255,255,.18);color:#fff}
.sectors{margin-top:clamp(14px,1.6vw,24px);padding-block:clamp(96px,8.5vw,136px) clamp(100px,9vw,140px)}
.wave{height:clamp(40px,5vw,78px)}
@media (max-width:1100px){.mb-txt{max-width:80%}.mb-over .float{display:none}}
@media (max-width:767px){.mb-slide{padding:64px 0 250px}.mb-txt{max-width:100%}.mb-over{bottom:96px}.mb-over .proof{min-width:0;gap:18px}.mb-over-in{padding-inline:22px}}
.simpact{grid-template-columns:1fr}
.simpact .snow{grid-template-columns:minmax(260px,34%) 1fr}
@media (max-width:620px){.simpact .snow{grid-template-columns:1fr}}

/* ==== Inner-page cover (v3): the home hero frame, no slider, breadcrumbs in the notch ==== */
.pcover{position:relative;max-width:clamp(0px,96.95vw,1845px);margin:14px auto 0;padding:0;--cr:clamp(20px,2.1vw,40px);--nh:min(300px,30%);--nd:62px;--nr:22px}
.pcover-frame{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);min-height:clamp(420px,40vw,560px);display:flex;align-items:center;
clip-path:polygon(calc(var(--cr) - var(--cr) * 1.0) calc(var(--cr)),calc(var(--cr) - var(--cr) * 0.9659) calc(var(--cr) - var(--cr) * 0.2588),calc(var(--cr) - var(--cr) * 0.866) calc(var(--cr) - var(--cr) * 0.5),calc(var(--cr) - var(--cr) * 0.7071) calc(var(--cr) - var(--cr) * 0.7071),calc(var(--cr) - var(--cr) * 0.5) calc(var(--cr) - var(--cr) * 0.866),calc(var(--cr) - var(--cr) * 0.2588) calc(var(--cr) - var(--cr) * 0.9659),calc(var(--cr)) calc(var(--cr) - var(--cr) * 1.0),calc(100% - var(--cr)) calc(var(--cr) - var(--cr) * 1.0),calc(100% - var(--cr) + var(--cr) * 0.2588) calc(var(--cr) - var(--cr) * 0.9659),calc(100% - var(--cr) + var(--cr) * 0.5) calc(var(--cr) - var(--cr) * 0.866),calc(100% - var(--cr) + var(--cr) * 0.7071) calc(var(--cr) - var(--cr) * 0.7071),calc(100% - var(--cr) + var(--cr) * 0.866) calc(var(--cr) - var(--cr) * 0.5),calc(100% - var(--cr) + var(--cr) * 0.9659) calc(var(--cr) - var(--cr) * 0.2588),calc(100% - var(--cr) + var(--cr) * 1.0) calc(var(--cr)),calc(100% - var(--cr) + var(--cr) * 1.0) calc(100% - var(--cr)),calc(100% - var(--cr) + var(--cr) * 0.9659) calc(100% - var(--cr) + var(--cr) * 0.2588),calc(100% - var(--cr) + var(--cr) * 0.866) calc(100% - var(--cr) + var(--cr) * 0.5),calc(100% - var(--cr) + var(--cr) * 0.7071) calc(100% - var(--cr) + var(--cr) * 0.7071),calc(100% - var(--cr) + var(--cr) * 0.5) calc(100% - var(--cr) + var(--cr) * 0.866),calc(100% - var(--cr) + var(--cr) * 0.2588) calc(100% - var(--cr) + var(--cr) * 0.9659),calc(100% - var(--cr)) calc(100% - var(--cr) + var(--cr) * 1.0),calc(50% + var(--nh) + var(--nr)) calc(100% - var(--nr) + var(--nr) * 1.0),calc(50% + var(--nh) + var(--nr) - var(--nr) * 0.2588) calc(100% - var(--nr) + var(--nr) * 0.9659),calc(50% + var(--nh) + var(--nr) - var(--nr) * 0.5) calc(100% - var(--nr) + var(--nr) * 0.866),calc(50% + var(--nh) + var(--nr) - var(--nr) * 0.7071) calc(100% - var(--nr) + var(--nr) * 0.7071),calc(50% + var(--nh) + var(--nr) - var(--nr) * 0.866) calc(100% - var(--nr) + var(--nr) * 0.5),calc(50% + var(--nh) + var(--nr) - var(--nr) * 0.9659) calc(100% - var(--nr) + var(--nr) * 0.2588),calc(50% + var(--nh) + var(--nr) - var(--nr) * 1.0) calc(100% - var(--nr)),calc(50% + var(--nh) - var(--nr) + var(--nr) * 1.0) calc(100% - var(--nd) + var(--nr)),calc(50% + var(--nh) - var(--nr) + var(--nr) * 0.9659) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.2588),calc(50% + var(--nh) - var(--nr) + var(--nr) * 0.866) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.5),calc(50% + var(--nh) - var(--nr) + var(--nr) * 0.7071) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.7071),calc(50% + var(--nh) - var(--nr) + var(--nr) * 0.5) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.866),calc(50% + var(--nh) - var(--nr) + var(--nr) * 0.2588) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.9659),calc(50% + var(--nh) - var(--nr)) calc(100% - var(--nd) + var(--nr) - var(--nr) * 1.0),calc(50% - var(--nh) + var(--nr)) calc(100% - var(--nd) + var(--nr) - var(--nr) * 1.0),calc(50% - var(--nh) + var(--nr) - var(--nr) * 0.2588) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.9659),calc(50% - var(--nh) + var(--nr) - var(--nr) * 0.5) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.866),calc(50% - var(--nh) + var(--nr) - var(--nr) * 0.7071) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.7071),calc(50% - var(--nh) + var(--nr) - var(--nr) * 0.866) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.5),calc(50% - var(--nh) + var(--nr) - var(--nr) * 0.9659) calc(100% - var(--nd) + var(--nr) - var(--nr) * 0.2588),calc(50% - var(--nh) + var(--nr) - var(--nr) * 1.0) calc(100% - var(--nd) + var(--nr)),calc(50% - var(--nh) - var(--nr) + var(--nr) * 1.0) calc(100% - var(--nr)),calc(50% - var(--nh) - var(--nr) + var(--nr) * 0.9659) calc(100% - var(--nr) + var(--nr) * 0.2588),calc(50% - var(--nh) - var(--nr) + var(--nr) * 0.866) calc(100% - var(--nr) + var(--nr) * 0.5),calc(50% - var(--nh) - var(--nr) + var(--nr) * 0.7071) calc(100% - var(--nr) + var(--nr) * 0.7071),calc(50% - var(--nh) - var(--nr) + var(--nr) * 0.5) calc(100% - var(--nr) + var(--nr) * 0.866),calc(50% - var(--nh) - var(--nr) + var(--nr) * 0.2588) calc(100% - var(--nr) + var(--nr) * 0.9659),calc(50% - var(--nh) - var(--nr)) calc(100% - var(--nr) + var(--nr) * 1.0),calc(var(--cr)) calc(100% - var(--cr) + var(--cr) * 1.0),calc(var(--cr) - var(--cr) * 0.2588) calc(100% - var(--cr) + var(--cr) * 0.9659),calc(var(--cr) - var(--cr) * 0.5) calc(100% - var(--cr) + var(--cr) * 0.866),calc(var(--cr) - var(--cr) * 0.7071) calc(100% - var(--cr) + var(--cr) * 0.7071),calc(var(--cr) - var(--cr) * 0.866) calc(100% - var(--cr) + var(--cr) * 0.5),calc(var(--cr) - var(--cr) * 0.9659) calc(100% - var(--cr) + var(--cr) * 0.2588),calc(var(--cr) - var(--cr) * 1.0) calc(100% - var(--cr)))
}
.pcover-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.08);animation:pcKen 9s var(--ease) forwards}
@keyframes pcKen{to{transform:scale(1)}}
.pcover-frame::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(95deg,rgba(20,22,64,.94) 0%,rgba(46,49,146,.82) 42%,rgba(46,49,146,.42) 74%,rgba(0,174,239,.22) 100%)}
.pcover:not(.has-photo) .pcover-frame::before{background:var(--grad)}
.pcover-frame::after{content:"";position:absolute;right:-160px;top:-160px;width:520px;height:520px;border-radius:50%;z-index:-1;background:radial-gradient(closest-side,rgba(0,174,239,.28),transparent);pointer-events:none}
.pcover-in{width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:clamp(56px,6vw,96px) clamp(24px,5vw,78px) calc(var(--nd) + clamp(34px,3.4vw,52px))}
.pcover-txt{display:grid;gap:18px;max-width:min(760px,64%);color:#fff;justify-items:start}
.pcover-txt>*{animation:rise 1s var(--ease) both}
.pcover-txt>*:nth-child(2){animation-delay:.08s}.pcover-txt>*:nth-child(3){animation-delay:.16s}.pcover-txt>*:nth-child(4){animation-delay:.24s}.pcover-txt>*:nth-child(5){animation-delay:.32s}
.pcover h1{margin:0;color:#fff;font:600 clamp(2.3rem,4.6vw,4rem)/1.04 var(--display);letter-spacing:-.035em;text-wrap:balance}
.pcover-lead{margin:0;color:rgba(255,255,255,.8);font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.65;max-width:56ch}
.pcover .mb-btns{margin-top:6px}
.pcover .proof{margin-top:10px;border-top-color:rgba(255,255,255,.18)}
.pcover .float{flex:none;animation:rise 1.1s .4s var(--ease) both}
.pcover-crumbs{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:calc(var(--nh) * 2 - var(--nr) * 2);height:var(--nd);display:flex;align-items:center;justify-content:center;z-index:2}
.pcover-crumbs ol{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none;font:500 .88rem var(--display);color:var(--soft);min-width:0;max-width:100%}
.pcover-crumbs li{display:flex;align-items:center;gap:4px;min-width:0;white-space:nowrap}
.pcover-crumbs li+li::before{content:"";width:6px;height:6px;margin:0 8px;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;transform:rotate(45deg);opacity:.55;flex:none}
.pcover-crumbs a{display:inline-flex;align-items:center;gap:7px;color:var(--ink);opacity:.72;transition:opacity .2s,color .2s}
.pcover-crumbs a:hover{opacity:1;color:var(--indigo)}
.pcover-crumbs a svg{width:16px;height:16px;color:var(--indigo)}
.pcover-crumbs li[aria-current] span{overflow:hidden;text-overflow:ellipsis;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}
@media (max-width:1100px){.pcover .float{display:none}.pcover-txt{max-width:84%}}
@media (max-width:767px){.pcover{margin:10px 12px 0;max-width:none;--nh:min(170px,43%);--nd:54px;--nr:16px;--cr:20px}.pcover-frame{min-height:0}.pcover-txt{max-width:100%}.pcover-in{padding:56px 22px calc(var(--nd) + 34px)}.pcover-crumbs ol{font-size:.8rem}.pcover-crumbs a span{display:none}}
@media (max-width:479px){.pcover{--nh:44%}}
@media (prefers-reduced-motion:reduce){.pcover-bg,.pcover-txt>*,.pcover .float{animation:none}}

/* ==== Premium header (v3) ==== */
header.nav{background:rgba(255,255,255,.9);border-bottom:0;box-shadow:0 1px 0 var(--line)}
header.nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(46,49,146,.35),rgba(0,174,239,.45),transparent);opacity:0;transition:opacity .4s}
header.nav.scrolled::after{opacity:1}
header.nav>.wrap{height:84px;gap:24px;transition:height .35s var(--ease)}
header.nav.scrolled>.wrap{height:70px}
.logo img{height:46px;transition:height .35s var(--ease)}
header.nav.scrolled .logo img{height:40px}
nav.menu{gap:2px;padding:5px;border-radius:999px;background:rgba(242,244,251,.9);box-shadow:inset 0 0 0 1px rgba(20,22,64,.05);font:500 .9rem var(--display)}
nav.menu a{padding:9px 16px;border-radius:999px;opacity:1;color:rgba(20,22,64,.66);transition:color .25s,background .25s,box-shadow .25s}
nav.menu a:hover{color:var(--ink);background:rgba(255,255,255,.7)}
nav.menu a.on{color:var(--indigo);background:var(--surface);box-shadow:0 1px 2px rgba(20,22,64,.06),0 6px 16px -8px rgba(46,49,146,.35)}
nav.menu a.on::after{content:"";position:absolute;left:50%;bottom:3px;width:14px;height:2px;transform:translateX(-50%);border-radius:2px;background:var(--grad)}
.nav-right{gap:10px}
.signin{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 16px 0 5px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s,background .25s}
.signin:hover{background:var(--mist);box-shadow:inset 0 0 0 1px rgba(46,49,146,.2)}
.signin .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--mist);color:var(--indigo);font:600 .9rem var(--display)}
.signin .av svg{width:17px;height:17px}
.btn-donate{position:relative;display:inline-flex;align-items:center;gap:9px;height:46px;padding:0 22px;border-radius:999px;color:#fff;font:600 .92rem var(--display);background:var(--grad);box-shadow:0 10px 24px -12px rgba(46,49,146,.8);overflow:hidden;isolation:isolate;transition:transform .3s var(--ease),box-shadow .3s}
.btn-donate::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease)}
.btn-donate:hover{transform:translateY(-1px);box-shadow:0 14px 30px -12px rgba(0,174,239,.7)}
.btn-donate:hover::before{transform:translateX(120%)}
.btn-donate svg{width:17px;height:17px}
.menu-toggle{width:46px;height:46px;border-radius:50%}
@media (max-width:1500px){.signin .t{display:none}.signin{padding:0 5px}}@media (max-width:1320px){nav.menu a{padding:9px 12px}}
@media (max-width:1140px){.signin .t{display:inline}.signin{padding:0 16px 0 5px}}
@media (max-width:620px){.signin{display:none}header.nav>.wrap,header.nav.scrolled>.wrap{height:68px}.logo img,header.nav.scrolled .logo img{height:36px}.btn-donate{height:42px;padding:0 16px}.menu-toggle{width:42px;height:42px}}

/* ==== Footer (v3) ==== */
footer.site{position:relative;overflow:hidden;padding-top:0;margin-top:clamp(150px,13vw,200px);background:radial-gradient(900px 480px at 8% 0%,rgba(46,49,146,.55),transparent 70%),radial-gradient(700px 420px at 100% 30%,rgba(0,174,239,.16),transparent 70%),var(--ink);overflow:visible}
.fcta{position:relative;z-index:2;transform:translateY(-50%);margin-bottom:calc(-1 * clamp(40px,4vw,60px));display:flex;align-items:center;justify-content:space-between;gap:28px 40px;flex-wrap:wrap;padding:clamp(30px,3.6vw,52px) clamp(26px,4vw,60px);border-radius:clamp(22px,2.2vw,34px);background:linear-gradient(115deg,#2E3192 0%,#1f5fc2 55%,#00AEEF 100%);box-shadow:0 40px 80px -40px rgba(20,22,64,.7);overflow:hidden;isolation:isolate}
.fcta::before{content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;border-radius:50%;z-index:-1;border:1px solid rgba(255,255,255,.18);box-shadow:0 0 0 60px rgba(255,255,255,.04),0 0 0 120px rgba(255,255,255,.03)}
.fcta-txt{display:grid;gap:12px}
.fcta h2{margin:0;color:#fff;font:600 clamp(1.7rem,3vw,2.6rem)/1.08 var(--display);letter-spacing:-.03em;max-width:18ch}
.fcta h2 span{color:#bfefff}
.fcta .mb-sub{color:rgba(255,255,255,.85)}
.fcta .mb-sub::before{background:var(--surface)}
.fcta-btns{display:flex;gap:12px;flex-wrap:wrap}
footer.site .fgrid{grid-template-columns:1.5fr .9fr .9fr .9fr 1.4fr;gap:clamp(28px,3.4vw,48px);padding-block:clamp(10px,2vw,30px) 50px}
.fbrand{display:grid;gap:16px;align-content:start}
.fbrand p{max-width:36ch;margin:0;line-height:1.7}
.flogo{height:44px;margin:0}
.freg{display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:7px 12px;border-radius:999px;font-size:.78rem;color:rgba(255,255,255,.75);background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.freg svg{width:14px;height:14px;color:var(--sky);flex:none}
.fsocial{display:flex;gap:8px}
.fsocial a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.07);transition:background .25s,transform .25s}
.fsocial a:hover{background:var(--grad);transform:translateY(-2px)}
.fsocial svg{width:17px;height:17px}
footer.site .fgrid h4{position:relative;padding-bottom:12px;margin-bottom:18px}
footer.site .fgrid h4::after{content:"";position:absolute;left:0;bottom:0;width:22px;height:2px;border-radius:2px;background:var(--grad)}
footer.site .fgrid ul a{display:inline-block;transition:color .2s,transform .25s var(--ease)}
footer.site .fgrid ul a:hover{color:#fff;transform:translateX(3px)}
.fnews p{margin:0}
footer.site .nl{position:relative;margin-top:14px}
footer.site .nl input{height:52px;border-radius:999px;padding:0 60px 0 20px}
footer.site .nl button{position:absolute;right:5px;top:5px;width:42px;height:42px;border:0;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .25s}
footer.site .nl button:hover{transform:scale(1.06)}
footer.site .nl button svg{width:17px;height:17px}
.fcontact{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;font-size:.9rem}
.fcontact li,.fcontact a{display:flex;align-items:center;gap:10px}
.fcontact a:hover{color:#fff}
.fcontact svg{width:16px;height:16px;color:var(--sky);flex:none}
.fpay{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:18px 0;border-top:1px solid rgba(255,255,255,.08)}
.fpay .lbl{display:inline-flex;align-items:center;gap:8px;font:500 .78rem var(--display);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-right:6px}
.fpay .lbl svg{width:15px;height:15px;color:var(--sky)}
.fpay .chip{padding:6px 12px;border-radius:8px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);font:600 .72rem var(--display);letter-spacing:.06em;color:rgba(255,255,255,.85)}
.fpay .note{display:block;padding:0;border:0;margin-left:auto;font-size:.8rem;color:rgba(255,255,255,.5)}
footer.site .fbot{position:relative;z-index:1}
.fbot nav{display:flex;gap:20px}
.fmark{font:700 clamp(4rem,14vw,13rem)/.8 var(--display);letter-spacing:-.05em;text-align:center;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 80%);-webkit-background-clip:text;background-clip:text;margin-top:-10px;padding-bottom:0;user-select:none;overflow:hidden}
@media (max-width:1100px){footer.site .fgrid{grid-template-columns:1.3fr 1fr 1fr}.fbrand{grid-column:1/-1}.fnews{grid-column:span 3}}
@media (max-width:767px){footer.site .fgrid{grid-template-columns:1fr 1fr}.fnews{grid-column:1/-1}.fpay .note{margin-left:0;flex-basis:100%}.fcta{transform:translateY(-40%)}}
@media (max-width:420px){footer.site .fgrid{grid-template-columns:1fr}}

/* ==== Donor leaderboard (v3) ==== */
.lb-sec{position:relative}
.lb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.seg-tabs{display:flex;gap:4px;padding:5px;border-radius:999px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);flex-wrap:wrap}
.seg-tabs a{padding:9px 16px;border-radius:999px;font:500 .88rem var(--display);color:var(--soft);transition:background .25s,color .25s}
.seg-tabs a:hover{color:var(--ink)}
.seg-tabs a[aria-current]{background:var(--surface);color:var(--indigo);box-shadow:0 6px 16px -8px rgba(46,49,146,.4)}
.lb-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}
.lb-main{background:var(--surface);border-radius:26px;padding:clamp(20px,2.6vw,34px);box-shadow:0 0 0 1px var(--line),0 40px 70px -56px rgba(20,22,64,.55)}
.lb-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;padding:10px 0 4px}
.pod{position:relative;display:grid;justify-items:center;gap:6px;text-align:center;padding:22px 12px 0;--h:var(--indigo)}
.pod .av{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#fff;font:600 1.5rem var(--display);background:linear-gradient(135deg,var(--h),#00AEEF);box-shadow:0 0 0 4px #fff,0 0 0 6px color-mix(in srgb,var(--h) 25%,transparent),0 16px 30px -14px var(--h)}
.pod-1 .av{width:82px;height:82px;font-size:1.9rem;box-shadow:0 0 0 4px #fff,0 0 0 7px #F5C04A,0 20px 36px -14px rgba(245,192,74,.9)}
.pod-2 .av{box-shadow:0 0 0 4px #fff,0 0 0 6px #C6CCD8,0 16px 30px -14px rgba(20,22,64,.4)}
.pod-3 .av{box-shadow:0 0 0 4px #fff,0 0 0 6px #D9A07A,0 16px 30px -14px rgba(217,160,122,.8)}
.pod .medal{position:absolute;top:8px;left:50%;transform:translateX(18px);z-index:2;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 .76rem var(--display);color:#fff;background:var(--ink);box-shadow:0 0 0 3px #fff}
.pod-1 .medal{transform:translateX(26px);background:linear-gradient(135deg,#F7C948,#E09A1E)}
.pod-2 .medal{background:linear-gradient(135deg,#C9CFDA,#8C95A8)}
.pod-3 .medal{background:linear-gradient(135deg,#E3AE86,#B8703F)}
.pod .nick{font:600 1rem var(--display);color:var(--ink);margin-top:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pod .gifts{font-size:.8rem;color:var(--soft)}
.fdots{display:inline-flex;gap:4px;min-height:8px}
.fdots i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 18%,transparent)}
.pod .stand{display:block;width:100%;margin-top:12px;border-radius:16px 16px 0 0;background:linear-gradient(180deg,var(--mist),rgba(242,244,251,0));height:54px;box-shadow:inset 0 1px 0 var(--line)}
.pod-1 .stand{height:86px;background:linear-gradient(180deg,rgba(46,49,146,.09),rgba(0,174,239,.02))}
.pod-3 .stand{height:38px}
.pod.me .nick{color:var(--indigo)}
.lb-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px;counter-reset:none}
.lb-list li{display:grid;grid-template-columns:34px 38px 1fr auto auto;align-items:center;gap:14px;padding:10px 14px;border-radius:16px;transition:background .25s}
.lb-list li:hover{background:var(--mist)}
.lb-list .r{font:600 .92rem var(--display);color:var(--soft);text-align:center}
.lb-list .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font:600 .95rem var(--display);background:linear-gradient(135deg,var(--h),#00AEEF)}
.lb-list .nick{font:500 .96rem var(--display);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-list .gifts{font-size:.82rem;color:var(--soft);min-width:56px;text-align:right}
.lb-list li.me,.lb-me{background:linear-gradient(90deg,rgba(46,49,146,.08),rgba(0,174,239,.06));box-shadow:inset 0 0 0 1px rgba(46,49,146,.15)}
.lb-me{display:flex;align-items:center;gap:14px;margin-top:10px;padding:12px 16px;border-radius:16px}
.lb-me .r{font:700 .95rem var(--display);color:var(--indigo)}.lb-me b{flex:1;font:500 .96rem var(--display)}.lb-me .gifts{font-size:.82rem;color:var(--soft)}
.lb-empty{display:grid;justify-items:center;text-align:center;gap:12px;padding:40px 16px}
.lb-empty .ic{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 18px 30px -14px rgba(46,49,146,.7)}
.lb-empty .ic svg{width:28px;height:28px}
.lb-empty p{color:var(--soft);max-width:44ch;margin:0}
.lb-empty .row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.lb-an{display:grid;gap:16px}
.lb-an .kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kpi{background:var(--surface);border-radius:20px;padding:18px 20px;display:grid;gap:6px;box-shadow:0 0 0 1px var(--line)}
.kpi small{font:500 .74rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
.kpi b{font:500 clamp(1.4rem,2vw,1.8rem)/1 var(--display);letter-spacing:-.02em;color:var(--ink)}
.kpi b span{font-size:.55em;color:var(--soft);letter-spacing:.04em}
.kpi.hl{background:linear-gradient(135deg,#2E3192,#1f5fc2 60%,#00AEEF);box-shadow:0 24px 40px -26px rgba(46,49,146,.9)}
.kpi.hl small,.kpi.hl b span{color:rgba(255,255,255,.72)}.kpi.hl b{color:#fff}
.an-card{background:var(--surface);border-radius:22px;padding:20px 22px;box-shadow:0 0 0 1px var(--line);display:grid;gap:16px}
.an-card .hd{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.an-card h3{font:600 1rem var(--display);margin:0}
.an-card .hd small{font-size:.78rem;color:var(--soft)}
.tbars{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;align-items:end;height:150px}
.tbar{height:100%;display:grid;grid-template-rows:1fr auto;gap:6px;align-items:end;text-align:center}
.tbar i{display:block;height:var(--v);border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,rgba(0,174,239,.55),rgba(46,49,146,.35));transition:filter .2s}
.tbar.now i{background:var(--grad)}
.tbar:hover i{filter:brightness(1.15)}
.tbar span{font-size:.68rem;color:var(--soft)}
.stack-bar{display:flex;height:14px;border-radius:99px;overflow:hidden;gap:3px}
.stack-bar i{background:var(--c);min-width:6px}
.fund-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.fund-legend li{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--ink)}
.fund-legend i{width:10px;height:10px;border-radius:3px;background:var(--c);flex:none}
.fund-legend span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fund-legend b{font-weight:500;color:var(--soft)}
.an-card.meters{grid-template-columns:repeat(3,1fr);gap:18px}
.an-card.meters .hd b{font:500 1.2rem var(--display)}
.an-card.meters h3{font-size:.84rem;color:var(--soft);font-weight:500}
.meter{height:6px;border-radius:99px;background:var(--mist);overflow:hidden;margin-top:10px}
.meter i{display:block;height:100%;background:var(--grad);border-radius:inherit}
.lb-an .muted{color:var(--soft);margin:0}
.lb-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.lb-rules>div{display:grid;gap:8px;padding:22px;border-radius:20px;background:var(--mist)}
.lb-rules .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface);color:var(--indigo);box-shadow:0 8px 18px -10px rgba(46,49,146,.5)}
.lb-rules .ic svg{width:18px;height:18px}
.lb-rules b{font:600 1rem var(--display)}.lb-rules p{margin:0;color:var(--soft);font-size:.92rem}
@media (max-width:1000px){.lb-grid{grid-template-columns:1fr}.lb-rules{grid-template-columns:1fr}}
@media (max-width:560px){.lb-podium{gap:6px}.pod .av{width:52px;height:52px;font-size:1.2rem}.pod-1 .av{width:64px;height:64px}.lb-list li{grid-template-columns:26px 34px 1fr auto;gap:10px;padding:10px}.lb-list .fdots{display:none}.an-card.meters{grid-template-columns:1fr}.fund-legend{grid-template-columns:1fr}.tbars{height:120px;gap:3px}.tbar span{font-size:.58rem}}
.tbar{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:6px}
.tbar i{height:calc(var(--v) * 1.2px)}
@media (max-width:560px){.tbar i{height:calc(var(--v) * .9px)}}
.kpi b{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.lb-podium{display:flex;justify-content:center}
.lb-podium .pod{flex:0 1 33.33%;min-width:0}
.tbars{align-items:stretch}.tbar i{flex:none}.tbar span{flex:none}

/* ==== Featured campaign (concept detail level) ==== */
.simpact .snow.feat{grid-template-columns:minmax(280px,38%) 1fr;border-radius:26px}
.feat-ph{position:relative;min-height:280px;border-right:4px solid var(--c)}
.feat-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feat-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,64,0) 55%,rgba(20,22,64,.45))}
.feat-badge{position:absolute;left:16px;top:16px;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);font:600 .74rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.feat-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent);animation:pulse 2.4s infinite}
.snow.feat .snow-body{padding:clamp(22px,2.6vw,34px);gap:18px}
.feat-top{display:grid;gap:8px}
.snow.feat .tag{font:600 .74rem var(--display);letter-spacing:.14em;text-transform:uppercase}
.snow.feat h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin:0}
.snow.feat h3 a:hover{color:var(--indigo)}
.feat-sum{margin:0;color:var(--soft);font-size:.95rem;max-width:60ch}
.feat-meta{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.feat-meta li{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:var(--mist);font-size:.82rem;color:var(--ink)}
.feat-meta li svg{width:14px;height:14px;color:var(--indigo)}
.feat-meta .fundchip{background:color-mix(in srgb,var(--c) 12%,#fff);color:color-mix(in srgb,var(--c) 70%,#141640)}
.feat-meta .fundchip svg{color:var(--c)}
.snow.feat .prog{display:grid;gap:10px}
.snow.feat .prog .row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.snow.feat .prog b{font:500 1.35rem var(--display)}
.snow.feat .prog .of{color:var(--soft);font-size:.86rem}
.snow.feat .prog .pct{font:600 1rem var(--display);color:var(--c)}
.snow.feat .track{height:8px;border-radius:99px;background:var(--mist);overflow:hidden}
.snow.feat .track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 45%,#00AEEF))}
.snow.feat .row.sub{font-size:.82rem;color:var(--soft)}
.snow.feat .row.sub a{display:inline-flex;align-items:center;gap:6px;color:var(--indigo);font-weight:500}
.snow.feat .row.sub svg{width:14px;height:14px}
.snow.feat .give .btn svg{width:16px;height:16px}
.feat-trust{display:flex;align-items:center;gap:8px;margin:0;font-size:.8rem;color:var(--soft)}
.feat-trust svg{width:15px;height:15px;color:var(--indigo);flex:none}
@media (max-width:760px){.simpact .snow.feat{grid-template-columns:1fr}.feat-ph{min-height:200px;border-right:0;border-bottom:4px solid var(--c)}}

/* ==== Programme quick-give panel ==== */
.panel.qg{--c:#00AEEF;align-content:start;background:linear-gradient(135deg,#2E3192 0%,color-mix(in srgb,var(--c) 70%,#2E3192) 100%);transition:background .5s var(--ease)}
.panel.qg::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.2),transparent 55%)}
.qg-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:999px;background:rgba(255,255,255,.12);width:max-content;max-width:100%}
.qg-tabs button{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.82);font:500 .88rem var(--display);cursor:pointer;transition:background .25s,color .25s}
.qg-tabs button i{width:8px;height:8px;border-radius:50%;background:var(--tc);box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.qg-tabs button:hover{color:#fff}
.qg-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink)}
.qg-pane{display:grid;gap:16px}
.qg-pane[hidden]{display:none}
.qg-impact{margin:0;display:grid;gap:4px;min-height:3.4em}
.qg-impact b{font:500 clamp(1.6rem,2.4vw,2.1rem)/1 var(--display);letter-spacing:-.02em;color:#fff}
.qg-impact span{color:rgba(255,255,255,.82);font-size:.98rem}
.qg .seg label{position:relative;cursor:pointer}
.qg .seg input{position:absolute;opacity:0;pointer-events:none}
.qg .seg span{display:inline-grid;place-items:center;height:40px;padding:0 16px;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font:500 .88rem var(--display);font-variant-numeric:tabular-nums;transition:background .2s,color .2s}
.qg .seg label:hover span{background:rgba(255,255,255,.24)}
.qg .seg input:checked+span{background:var(--surface);color:var(--ink)}
.qg .seg input:focus-visible+span{outline:2px solid #fff;outline-offset:2px}
.lb-home{background:linear-gradient(180deg,#fff,var(--mist) 45%,#fff)}
.lb-home-side{display:grid;gap:16px;justify-items:start}
.lb-main-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.lb-main-hd b{font:600 1rem var(--display)}
.lb-main-hd span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--soft)}
.lb-main-hd svg{width:14px;height:14px;color:var(--indigo)}
.qband{margin:clamp(40px,5vw,72px) auto 0;max-width:900px;text-align:center;display:grid;justify-items:center;gap:18px}
.qband .qmark{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 18px 30px -14px rgba(46,49,146,.7)}
.qband .qmark svg{width:24px;height:24px}
.qband blockquote{margin:0;font:500 clamp(1.5rem,2.8vw,2.3rem)/1.25 var(--display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.qband figcaption{font-size:.9rem;color:var(--soft)}
@media (max-width:767px){.pcover{--nh:min(160px,38%)}}
@media (max-width:479px){.pcover{--nh:min(150px,38%)}}
@media (max-width:620px){.seg-tabs{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none}.seg-tabs::-webkit-scrollbar{display:none}.seg-tabs a{white-space:nowrap;flex:none}.pod .nick{font-size:.86rem}}

/* ==== Admin: website content editor, media, figures (phase 1) ==== */
.badge-ok{background:rgba(0,174,239,.12);color:#0a6f99}
.badge-warn{background:rgba(254,167,2,.16);color:#8a5a00}
.badge-danger{background:rgba(255,38,1,.12);color:#b31b00}
.cf-status{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.cf-status>div:first-child{display:grid;gap:2px}
.cf-status strong{font:600 1.05rem var(--display)}
.cf-status-actions{display:flex;gap:10px;flex-wrap:wrap}
.cf-form{display:grid;gap:14px}
.cf-group{border:1px solid var(--line);border-radius:16px;padding:16px 18px 18px;margin:0;display:grid;gap:12px;background:var(--surface)}
.cf-group>legend{padding:0 8px;font:600 .95rem var(--display);color:var(--indigo)}
.cf-group .cf-group{background:var(--mist)}
.cf-items{display:grid;gap:12px}
.cf-item{border:1px dashed rgba(46,49,146,.25);border-radius:14px;padding:12px 14px;display:grid;gap:10px;background:var(--surface)}
.cf-item-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line)}
.cf-item-no{font:600 .8rem var(--display);color:var(--soft)}
.cf-order{width:70px;height:34px;margin-left:6px}
.cf-checks{display:grid;gap:6px}
.cf-image{display:flex;align-items:center;gap:10px}
.cf-image input{flex:1}
.cf-thumb{width:64px;height:44px;border-radius:8px;overflow:hidden;background:var(--mist);flex:none}
.cf-thumb img{width:100%;height:100%;object-fit:cover}
.cf-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%);padding-top:18px;z-index:2}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.media-item{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);display:grid}
.media-item img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--mist)}
.media-item figcaption{padding:10px;display:grid;gap:6px}
.media-item input{width:100%;height:32px;font-size:.78rem;padding:0 8px;border:1px solid var(--line);border-radius:8px}
.media-alt{display:flex;gap:6px;align-items:center}
.link.danger{color:#b31b00}
.form-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.form-inline input,.form-inline select{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit}
.form-inline input[type=number]{width:120px}
.fig-heads{display:flex;gap:28px;margin:12px 0}
.fig-heads div{display:grid}.fig-heads b{font:500 1.5rem var(--display)}.fig-heads span{font-size:.82rem;color:var(--soft)}
.fig-table td{vertical-align:top}
.fig-add td{background:var(--mist)}
.sfeat .sf-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.sfeat .sf-list li{display:flex;gap:14px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}
.sfeat .sf-list li:last-child{border-bottom:0}
.sfeat .sf-list i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--mist);color:var(--indigo);flex:none}
.sfeat .sf-list i svg{width:18px;height:18px}
.sfeat .sf-list b{display:block;font:600 .95rem var(--display);color:var(--ink)}
.sfeat .sf-list small{color:var(--soft);font-size:.84rem}
/* real-data ledger */
.ledger .src{margin:14px 0 0;font-size:.74rem;color:rgba(255,255,255,.45)}
.mbars{display:flex;gap:18px;align-items:flex-end;height:180px;padding-top:10px}
.mb-yr{flex:1;display:grid;grid-template-rows:1fr auto auto;gap:6px;height:100%;text-align:center}
.mb-cols{display:flex;gap:6px;align-items:flex-end;justify-content:center;height:100%}
.mb-cols i{display:block;width:40%;max-width:34px;border-radius:8px 8px 3px 3px}
.mb-cols i.in,.mb-legend i.in{background:linear-gradient(180deg,#00AEEF,#1f5fc2)}
.mb-cols i.out,.mb-legend i.out{background:rgba(255,255,255,.35)}
.mb-yr b{font:500 .95rem var(--display);color:#fff}
.mb-yr span{font-size:.78rem;color:rgba(255,255,255,.55)}
.mb-legend{display:flex;gap:18px;margin-top:12px;flex-wrap:wrap}
.mb-legend li{display:flex;align-items:center;gap:8px;font-size:.82rem;color:rgba(255,255,255,.75)}
.mb-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.fbars{display:flex;gap:6px;align-items:flex-end;height:150px}
.fb{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;text-align:center}
.fb i{display:block;border-radius:6px 6px 2px 2px;background:rgba(0,174,239,.45)}
.fb.now i{background:linear-gradient(180deg,#00AEEF,#2E3192)}
.fb span{font-size:.7rem;color:rgba(255,255,255,.5)}
.fb-total{display:grid;gap:4px;margin-top:14px}
.fb-total b{font:500 1.8rem var(--display);color:#fff;letter-spacing:-.02em}
.fb-total span{font-size:.84rem;color:rgba(255,255,255,.7)}
.fb-total small{color:rgba(255,255,255,.45)}
.together .tg-figs{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-bottom:14px}
.together .tg-figs div{display:grid}
.together .tg-figs b{font:500 1.35rem var(--display);color:#fff}
.together .tg-figs span{font-size:.78rem;color:rgba(255,255,255,.6)}
.regions{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.regions li{display:grid;grid-template-columns:78px 1fr 44px;gap:10px;align-items:center;font-size:.82rem;color:rgba(255,255,255,.8)}
.regions i{display:block;height:6px;border-radius:99px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.regions i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,#FEA702,#00AEEF)}
.regions b{text-align:right;font-weight:500;color:#fff}
.partners{margin-top:14px;display:grid;gap:6px;font-size:.84rem;color:rgba(255,255,255,.72)}
.partners p{margin:0}.partners b{color:#fff;font-weight:600}
details.cf-group>summary{cursor:pointer;font:600 1rem var(--display);color:var(--indigo);padding:4px 2px;list-style:none;display:flex;align-items:center;gap:8px}
details.cf-group>summary::before,details.cf-item>summary::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s;flex:none}
details[open].cf-group>summary::before,details[open].cf-item>summary::before{transform:rotate(45deg)}
details.cf-group>summary::-webkit-details-marker,details.cf-item>summary::-webkit-details-marker{display:none}
.cf-body{display:grid;gap:12px;margin-top:10px}
details.cf-repeater[open]>.cf-items,details.cf-repeater[open]>[data-add]{margin-top:10px}
details.cf-item>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font:500 .92rem var(--display);color:var(--ink)}
details.cf-item[open]>summary{padding-bottom:8px}
button.link{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--indigo)}

/* ledger adapts to however many cards have data */
.lgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
@media (max-width:1060px){.lgrid .lc:first-child{grid-column:auto}}
.partners .pchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.partners .pchips span{padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:#fff;font:500 .78rem var(--display)}
.tg-report{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:#bfefff;font:500 .88rem var(--display)}
.tg-report svg{width:15px;height:15px}
.tg-report:hover{color:#fff}

/* ==== Accountability ==== */
.acc-feature{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border-radius:28px;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 40px 70px -50px rgba(20,22,64,.5);color:inherit;transition:transform .4s var(--ease),box-shadow .4s}
.acc-feature:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(46,49,146,.2),0 50px 80px -50px rgba(46,49,146,.55)}
.acc-feature-ph{position:relative;min-height:360px;background:var(--ink)}
.acc-feature-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.acc-tag{position:absolute;left:18px;top:18px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.92);font:600 .72rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.acc-feature-body{padding:clamp(26px,3.4vw,48px);display:grid;gap:14px;align-content:center}
.acc-feature-body h2{margin:0;font-size:clamp(1.7rem,2.6vw,2.4rem)}
.acc-feature-body p{margin:0;color:var(--soft);line-height:1.7}
.acc-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.acc-mini div{display:grid}.acc-mini b{font:500 1.3rem var(--display);color:var(--ink)}.acc-mini span{font-size:.8rem;color:var(--soft)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font:600 .95rem var(--display);color:var(--indigo)}
.link-arrow svg{width:16px;height:16px}
.acc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.acc-card{display:grid;gap:8px;padding:22px;border-radius:20px;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:inherit}
.acc-card h3{margin:0;font-size:1.1rem}.acc-card p{margin:0;color:var(--soft);font-size:.9rem}
.acc-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,4vw,56px);align-items:start}
.acc-main{display:grid;gap:22px;min-width:0}
.acc-main .lead{margin:0}
.acc-highs{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.acc-highs div{display:grid;gap:4px;padding:18px 20px;border-radius:18px;background:var(--mist)}
.acc-highs div:first-child{background:linear-gradient(135deg,#2E3192,#1f5fc2 60%,#00AEEF);}
.acc-highs div:first-child b,.acc-highs div:first-child span{color:#fff}
.acc-highs b{font:500 1.45rem var(--display);color:var(--ink);letter-spacing:-.02em}
.acc-highs span{font-size:.8rem;color:var(--soft)}
.acc-table{display:grid;gap:10px}
.acc-table h3{margin:0;font-size:1.15rem}
.acc-table tr.total td{font-weight:600;color:var(--ink);border-top:2px solid var(--line)}
.acc-side{position:sticky;top:110px;display:grid;gap:16px}
.acc-doc{display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:center;padding:20px;border-radius:22px;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 24px 50px -40px rgba(20,22,64,.5)}
.acc-doc .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--mist);color:var(--indigo)}
.acc-doc .ic svg{width:22px;height:22px}
.acc-doc b{display:block;font:600 .92rem var(--display);word-break:break-word}
.acc-doc .btn{grid-column:1/-1;justify-content:center}
.acc-partners{padding:20px;border-radius:22px;background:var(--mist)}
.acc-partners h3{margin:0 0 12px;font-size:1rem}
.acc-partners ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.acc-partners li{display:flex;gap:12px;align-items:flex-start}
.acc-partners .av{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:none;color:#fff;background:var(--grad);font:600 .9rem var(--display)}
.acc-partners b{display:block;font:600 .92rem var(--display)}
.acc-partners b a{color:var(--ink)}.acc-partners b a:hover{color:var(--indigo)}
.acc-note{display:flex;gap:8px;align-items:flex-start;color:var(--soft)}
.acc-note svg{width:16px;height:16px;flex:none;color:var(--indigo)}
@media (max-width:980px){.acc-feature{grid-template-columns:1fr}.acc-feature-ph{min-height:220px}.acc-grid{grid-template-columns:1fr}.acc-side{position:static}}

/* ==== Events calendar ==== */
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.cal-nav{display:flex;align-items:center;gap:14px}
.cal-nav h2{margin:0;min-width:9ch;text-align:center;font-size:clamp(1.5rem,2.4vw,2rem)}
.cal-arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line);color:var(--indigo);transition:background .2s}
.cal-arrow:hover{background:var(--mist)}.cal-arrow.is-off{opacity:.3}
.cal-arrow svg{width:18px;height:18px}
.cal-filter select{height:42px;border-radius:999px;border:1px solid var(--line);padding:0 16px;font:500 .9rem var(--display);background:var(--surface)}
.cal-months{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px;scrollbar-width:thin}
.cal-months a{flex:none;display:grid;justify-items:center;padding:8px 14px;border-radius:14px;background:var(--mist);font:600 .86rem var(--display);color:var(--ink)}
.cal-months a small{font-weight:400;color:var(--soft);font-size:.7rem}
.cal-months a[aria-current]{background:var(--grad);color:#fff}.cal-months a[aria-current] small{color:rgba(255,255,255,.75)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:22px;overflow:hidden;box-shadow:0 0 0 1px var(--line);background:var(--line);gap:1px}
.cal-dow{background:var(--mist);padding:10px;font:600 .74rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);text-align:center}
.cal-day{background:var(--surface);min-height:112px;padding:8px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal-day.out{background:#fafbfe}.cal-day.out .cal-n{opacity:.35}
.cal-n{font:600 .85rem var(--display);color:var(--ink)}
.cal-day.today .cal-n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--grad);color:#fff}
.cal-ev{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:8px;background:color-mix(in srgb,var(--c) 12%,#fff);font-size:.74rem;color:var(--ink);min-width:0}
.cal-ev i{width:6px;height:6px;border-radius:50%;background:var(--c);flex:none}
.cal-ev span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev:hover{background:color-mix(in srgb,var(--c) 22%,#fff)}
.cal-ev.is-cancelled span{text-decoration:line-through;opacity:.6}
.cal-more{font-size:.72rem;color:var(--soft)}
.cal-legend{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px}
.cal-legend li{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--soft)}
.cal-legend i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.cal-month-block{display:grid;gap:12px;margin-bottom:28px}
.cal-month-block h3{margin:0;font-size:1.1rem;color:var(--indigo)}
.ev-funded,.ev-report{display:flex;gap:14px;align-items:center;padding:18px;border-radius:18px;background:var(--mist)}
.ev-funded svg{width:22px;height:22px;color:#FF2601;flex:none}.ev-funded div{flex:1;display:grid}
.ev-report{display:grid;gap:6px}.ev-report p{margin:0}
.ev-roles{display:grid;gap:10px}.ev-roles h3{margin:0}
.ev-role{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 14px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.ev-role .track{grid-column:1/-1;height:6px;border-radius:99px;background:var(--mist);overflow:hidden}
.ev-role .track i{display:block;height:100%;background:var(--grad)}
.role-pick{display:grid;gap:8px}
.role-pick label{display:block;cursor:pointer}
.role-pick input{position:absolute;opacity:0}
.role-pick span{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s,background .2s}
.role-pick small{color:var(--soft)}
.role-pick input:checked+span{box-shadow:inset 0 0 0 2px var(--indigo);background:var(--mist)}
.role-pick input:focus-visible+span{outline:2px solid var(--sky);outline-offset:2px}
.role-pick .is-full span{opacity:.5;cursor:not-allowed}
@media (max-width:720px){.cal-day{min-height:64px;padding:4px}.cal-ev span{display:none}.cal-ev{padding:3px;justify-content:center}.cal-dow{padding:8px 2px;font-size:.62rem;letter-spacing:.04em}}

/* Waqf projects ============================================================ */
.wq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:28px}
.wq-card{display:flex;flex-direction:column;border-radius:24px;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 30px 60px -44px rgba(20,22,64,.5);transition:transform .4s var(--ease),box-shadow .4s}
.wq-card:hover{transform:translateY(-4px);box-shadow:0 0 0 1px var(--line-2),0 40px 70px -44px rgba(46,49,146,.55)}
.wq-ph{position:relative;aspect-ratio:16/10;background:var(--ink);overflow:hidden}
.wq-ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.wq-card:hover .wq-ph img{transform:scale(1.04)}
.wq-tag{position:absolute;left:16px;top:16px;background:rgba(255,255,255,.94);color:var(--indigo);font:600 .7rem var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-radius:999px}
.wq-body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:14px;flex:1}
.wq-body h3{margin:0;font-size:1.35rem}
.wq-body>p{margin:0;color:var(--soft);font-size:.95rem;line-height:1.65}
.wq-cost{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 16px;border-radius:14px;background:var(--mist);box-shadow:inset 0 0 0 1px var(--line)}
.wq-cost span{font:500 .75rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.wq-cost b{font:700 1.3rem var(--display);color:var(--ink);text-align:right}
.wq-inc{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9rem;color:var(--text)}
.wq-inc li{display:flex;gap:8px;align-items:flex-start}
.wq-inc svg{width:16px;height:16px;flex:none;margin-top:4px;color:var(--sky)}
.wq-shares{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto}
.wq-share{display:grid;gap:2px;text-align:center;padding:10px 6px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);transition:background .2s,box-shadow .2s}
.wq-share small{font:500 .66rem var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.wq-share b{font:700 .95rem var(--display)}
.wq-share:hover{background:var(--tint);box-shadow:inset 0 0 0 1px var(--indigo)}
.wq-share.is-full{background:var(--grad);box-shadow:none;color:#fff}
.wq-share.is-full small{color:rgba(255,255,255,.8)}
.wq-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.wq-foot .btn{flex:1;justify-content:center}
.wq-plate{margin:0;display:flex;gap:8px;align-items:center;font-size:.82rem;color:var(--soft)}
.wq-plate svg{width:15px;height:15px;color:var(--sky)}
.wq-how{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}
.wq-how h2{margin:10px 0 0}
.wq-steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:s}
.wq-steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:4px 16px;padding:18px 20px;border-radius:18px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.wq-steps li::before{content:counter(s);grid-row:span 2;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:#fff;font:700 1rem var(--display)}
.wq-steps b{color:var(--ink);font-family:var(--display)}
.wq-steps span{font-size:.92rem;color:var(--soft)}
@media (max-width:860px){.wq-how{grid-template-columns:1fr;gap:24px}}
@media (max-width:420px){.wq-shares{grid-template-columns:repeat(2,1fr)}}

/* Sponsor slider =========================================================== */
.ks{position:relative}
.ks-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.ks-count{margin:0}.ks-count b{color:var(--ink);font-family:var(--display)}
.ks-nav{display:flex;gap:8px}
.ks-btn{width:46px;height:46px;border-radius:50%;border:0;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--indigo);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s}
.ks-btn svg{width:20px;height:20px}
.ks-btn:hover{background:var(--indigo);color:#fff}
.ks-btn.swiper-button-disabled{opacity:.35;pointer-events:none}
.ks-swiper{overflow:hidden;padding:4px 2px 8px}
.ks:not(.is-live) .swiper-wrapper{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
.ks:not(.is-live) .ks-card{flex:0 0 min(290px,82%);scroll-snap-align:start}
.ks:not(.is-live) .ks-nav{display:none}
.ks-card{height:auto;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 24px 48px -36px rgba(20,22,64,.5)}
.ks-ph{position:relative;display:grid;place-items:center;aspect-ratio:4/4.2;background:var(--grad);color:#fff;overflow:hidden}
.ks-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ks-card:hover .ks-ph img{transform:scale(1.05)}
.ks-ph span{font:700 4rem var(--display);opacity:.9}
.ks-need{position:absolute;right:12px;bottom:12px;font:700 .9rem var(--display);font-style:normal;color:var(--ink);background:rgba(255,255,255,.95);padding:7px 12px;border-radius:999px}
.ks-need small{font-weight:500;color:var(--soft);margin-left:2px}
.ks-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.ks-body h3{margin:0;font-size:1.3rem}.ks-body h3 a{color:var(--ink)}
.ks-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}
.ks-facts div{padding:9px 8px;border-radius:12px;background:var(--mist);text-align:center;min-width:0}
.ks-facts dt{font:500 .64rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.ks-facts dd{margin:2px 0 0;font:600 .92rem var(--display);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ks-grade{margin:0;font-size:.85rem;color:var(--soft)}
.ks-acad{display:flex;gap:8px;align-items:flex-start;margin:0;font:500 .86rem/1.45 var(--display);color:var(--ink)}
.ks-acad svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--indigo)}
.ks-story{margin:0;font-size:.88rem;line-height:1.55;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ks-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.ks-actions .btn{justify-content:center;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ks-dots{display:flex;justify-content:center;gap:6px;margin-top:18px}
.ks-dots .swiper-pagination-bullet{width:8px;height:8px;background:var(--indigo);opacity:.2;margin:0!important;transition:width .3s,opacity .3s;border-radius:99px}
.ks-dots .swiper-pagination-bullet-active{opacity:1;width:24px;background:var(--grad)}

/* Membership =============================================================== */
.mem-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px}
.mem-rule{padding:26px;border-radius:22px;background:var(--surface);box-shadow:0 0 0 1px var(--line);display:grid;gap:8px;align-content:start}
.mem-rule>b{font:700 1.5rem var(--display);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.mem-rule h3{margin:0;font-size:1.1rem}.mem-rule p{margin:0;font-size:.93rem;color:var(--soft)}
.mem-wrap{display:grid;gap:22px}
.mem-panel{background:var(--surface);border-radius:22px;padding:clamp(22px,3vw,34px);box-shadow:0 0 0 1px var(--line);display:grid;gap:14px;align-content:start}
.mem-panel h2,.mem-panel h3{margin:0}
.mem-panel p{margin:0}
.mem-alloc{border:0;padding:0;margin:0;display:grid;gap:12px}
.mem-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:24px;align-items:center;padding:clamp(22px,3vw,34px);border-radius:24px;background:var(--grad);color:#fff}
.mem-id{display:grid;gap:6px;justify-items:start}.mem-id .small{color:rgba(255,255,255,.75)}
.mem-id b{font:700 2.2rem var(--display);letter-spacing:.04em}
.mem-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0}
.mem-facts div{background:rgba(255,255,255,.12);border-radius:14px;padding:12px 14px}
.mem-facts dt{font:500 .68rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.mem-facts dd{margin:4px 0 0;font:600 1rem var(--display)}
.mem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}
@media (max-width:760px){.mem-card{grid-template-columns:1fr}}
.chips .chip.is-on{background:var(--indigo);color:#fff}
.psp{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--line)}

/* Shared impact band on dashboards */
.mi{border-radius:24px;padding:clamp(20px,2.6vw,30px);background:var(--grad);color:#fff;display:grid;gap:18px;margin-bottom:24px}
.mi-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.mi-head a{color:#fff;display:inline-flex;gap:6px;align-items:center;font:500 .85rem var(--display)}
.mi-head a svg{width:16px;height:16px}
.eyebrow.on-dark{color:rgba(255,255,255,.85)}
.mi-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.mi-figs div{background:rgba(255,255,255,.12);border-radius:16px;padding:14px 16px;display:grid;gap:2px}
.mi-figs b{font:700 1.6rem var(--display)}
.mi-figs span{font-size:.82rem;color:rgba(255,255,255,.8)}
.mi-you{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mi-label{font:600 .72rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-right:4px}
.mi-chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:var(--surface);color:var(--indigo);font:600 .8rem var(--display)}
.mi-chip.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.pay-keys{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:6px}
.pay-keys li{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--soft)}
.pay-keys li svg{width:15px;height:15px;color:var(--soft)}
.pay-keys li.ok{color:var(--ink)}.pay-keys li.ok svg{color:var(--sky)}
.pay-url{display:grid;gap:3px;padding:10px 12px;border-radius:12px;background:var(--mist);margin-bottom:8px}
.pay-url span{font:600 .72rem var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.pay-url code{font-size:.8rem;word-break:break-all;color:var(--ink)}
.pay-steps{margin:0;padding-left:20px;display:grid;gap:12px;font-size:.93rem}
.pay-steps code{font-size:.82rem;background:var(--mist);padding:1px 6px;border-radius:6px}
.wq-art{position:absolute;inset:0;display:grid;place-items:center;background:var(--grad)}
.wq-art svg{width:96px;height:96px;color:rgba(255,255,255,.9)}
.wq-cost b.wq-tbc{font-size:1rem;display:grid;justify-items:end;line-height:1.3}
.wq-tbc small{font:500 .78rem var(--body);color:var(--soft)}
@media (max-width:1260px){nav.menu a{padding:9px 9px;font-size:.85rem}}

/* Join / login ============================================================== */
.join .wrap{display:grid;gap:26px}
.join-head{max-width:760px;display:grid;gap:10px}
.join-head h1{margin:0;font-size:clamp(2rem,3.4vw,2.8rem)}
.join-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.join-type{display:grid;gap:6px;align-content:start;padding:20px;border-radius:20px;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--text);transition:box-shadow .2s,transform .2s}
.join-type:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--line-2),var(--shadow-sm)}
.join-type i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--tint);color:var(--indigo)}
.join-type i svg{width:20px;height:20px}
.join-type b{font-family:var(--display);color:var(--ink);font-size:1.05rem}
.join-type span{font-size:.88rem;line-height:1.55}
.join-type.is-on{box-shadow:0 0 0 2px var(--indigo),var(--shadow-sm)}
.join-type.is-on i{background:var(--grad);color:#fff}
.join-type.ghost{background:var(--mist)}
.join-form{display:grid;gap:16px;padding:clamp(22px,3vw,36px);border-radius:24px;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 30px 60px -44px rgba(20,22,64,.45);max-width:860px}
.join-form h2{margin:0}
.join-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.login-paths{display:grid;gap:10px;margin-top:6px}
.login-path{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);color:#fff;transition:background .2s}
.login-path:hover{background:rgba(255,255,255,.18)}
.login-path i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface);color:var(--indigo)}
.login-path i svg{width:18px;height:18px}
.login-path b{font-family:var(--display);display:block}
.login-path small{color:rgba(255,255,255,.78);font-size:.8rem}
.login-path em{font-style:normal;font:600 .68rem var(--display);letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.16)}
.login-side{border-radius:28px;padding:clamp(24px,3vw,40px);background:var(--grad);color:#fff;display:grid;gap:14px;align-content:center}
.login-side h2{color:#fff;margin:0}
.login-side p{margin:0;color:rgba(255,255,255,.82)}
.cred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px 20px}
.cur-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.cur-pick label{position:relative;cursor:pointer}
.cur-pick input{position:absolute;opacity:0;pointer-events:none}
.cur-pick span{display:inline-block;padding:7px 14px;border-radius:999px;font:600 .82rem var(--display);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink)}
.cur-pick label.is-on span,.cur-pick input:checked+span{background:var(--indigo);color:#fff;box-shadow:none}
.cur-pick input:focus-visible+span{outline:2px solid var(--sky);outline-offset:2px}
.chat{display:grid;gap:10px;max-height:420px;overflow:auto;padding:4px 2px;margin-bottom:12px}
.chat-msg{padding:10px 14px;border-radius:14px;background:var(--mist);max-width:88%}
.chat-msg.mine{background:var(--tint);justify-self:end}
.chat-msg b{font:600 .85rem var(--display);color:var(--ink)}
.chat-msg .when{font-size:.75rem;color:var(--soft);margin-left:8px}
.chat-msg p{margin:4px 0 0;font-size:.92rem}
.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.chat-form textarea{width:100%;border-radius:12px;border:1px solid var(--line-2);padding:10px 12px;font:inherit;resize:vertical}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}
.proj-card{display:grid;gap:10px;color:inherit;align-content:start}
.proj-card h3{margin:0}
.proj-card .bar{height:8px;border-radius:99px;background:var(--tint);overflow:hidden}
.proj-card .bar i{display:block;height:100%;background:var(--grad)}
.imp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:18px}
.imp-bars{display:flex;align-items:flex-end;gap:8px;height:180px;padding-top:24px}
.imp-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.imp-bar i{display:block;width:100%;max-width:38px;border-radius:8px 8px 3px 3px;background:var(--grad)}
.imp-bar .v{font:600 .66rem var(--display);color:var(--ink);margin-bottom:4px;white-space:nowrap}
.imp-bar .y{font-size:.7rem;color:var(--soft);margin-top:6px}
/* CSR + partner wall */
.csr-benefits{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px}
.csr-benefit{padding:24px;border-radius:22px;background:var(--surface);box-shadow:0 0 0 1px var(--line);display:grid;gap:8px;align-content:start}
.csr-benefit i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--grad);color:#fff}
.csr-benefit i svg{width:22px;height:22px}
.csr-benefit h3{margin:4px 0 0;font-size:1.1rem}.csr-benefit p{margin:0;font-size:.93rem;color:var(--soft)}
.csr-packages{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:16px}
.csr-package{padding:22px;border-radius:20px;background:var(--surface);box-shadow:0 0 0 1px var(--line);display:grid;gap:8px;align-content:start}
.csr-package h3{margin:0;font-size:1.05rem}.csr-package p{margin:0;font-size:.92rem;color:var(--soft)}.csr-package .chip{justify-self:start;white-space:normal}
.pwall{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.pwall-item{display:grid;place-items:center;min-height:96px;padding:16px;border-radius:18px;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--ink);text-align:center;font:600 .95rem var(--display)}
.pwall-item img{max-height:64px;max-width:100%;object-fit:contain}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 16px;margin-top:8px}
.check-grid .check{display:flex;gap:8px;align-items:center}
.pwall-title{margin:28px 0 14px;font:700 1rem var(--display);color:var(--ink-2,var(--ink))}
a.pwall-item:hover{box-shadow:0 0 0 1px var(--line-2),var(--shadow-sm)}
/* Instagram */
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ig-tile{position:relative;aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--grad);display:block}
.ig-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ig-tile:hover img{transform:scale(1.05)}
.ig-play{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(20,22,64,.6);color:#fff;display:grid;place-items:center;font-size:12px}
.ig-cap{position:absolute;inset:auto 0 0 0;padding:28px 12px 10px;font-size:.78rem;color:#fff;background:linear-gradient(transparent,rgba(20,22,64,.8));opacity:0;transition:opacity .3s}
.ig-tile:hover .ig-cap,.ig-tile:focus .ig-cap{opacity:1}
.ig-embeds{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px;align-items:start}
@media (max-width:760px){.ig-grid{grid-template-columns:repeat(2,1fr)}}

/* Dashboard top bar: role chips + account menu ============================== */
.rchips{display:flex;flex-wrap:wrap;gap:6px}
.rchip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);font:600 .75rem var(--display);white-space:nowrap;max-width:230px;overflow:hidden;text-overflow:ellipsis}
.rchip svg{width:14px;height:14px;color:var(--sky);flex:none}
.rchip:hover{box-shadow:inset 0 0 0 1px var(--indigo)}
.umenu{position:relative}
.umenu>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;cursor:pointer;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.umenu>summary::-webkit-details-marker{display:none}
.umenu>summary svg{width:14px;height:14px;transform:rotate(90deg);transition:transform .2s;color:var(--soft)}
.umenu[open]>summary svg{transform:rotate(-90deg)}
.umenu-name{font:600 .85rem var(--display);color:var(--ink);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.umenu-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:290px;padding:8px;border-radius:18px;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 30px 60px -20px rgba(20,22,64,.45);display:grid;gap:2px}
[dir=rtl] .umenu-pop{right:auto;left:0}
.umenu-head{display:grid;gap:2px;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.umenu-head b{color:var(--ink);font-family:var(--display)}
.umenu-head span{font-size:.8rem;color:var(--soft);overflow:hidden;text-overflow:ellipsis}
.umenu-head small{font-size:.72rem;color:var(--indigo);font-weight:600}
.umenu-pop>a,.umenu-out{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:var(--ink);font-size:.88rem;border:0;background:none;width:100%;cursor:pointer;text-align:start;font-family:inherit}
.umenu-pop>a svg,.umenu-out svg{width:17px;height:17px;color:var(--soft)}
.umenu-pop>a:hover,.umenu-out:hover{background:var(--mist)}
.umenu-out{color:#c0392b}.umenu-out svg{color:#c0392b}
.umenu-sec{display:grid;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
.umenu-lbl{font:600 .68rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.umenu-sec select{width:100%;border-radius:10px;border:1px solid var(--line-2);padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem}
.umenu-sec small{font-size:.72rem}
.seg[data-theme-seg]{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:3px;border-radius:12px;background:var(--mist)}
.seg[data-theme-seg] button{height:auto;border:0;border-radius:9px;padding:7px 6px;background:transparent;color:var(--text);font:600 .8rem var(--display);cursor:pointer}
.seg[data-theme-seg] button[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(20,22,64,.18)}
@media (max-width:640px){.umenu-name{display:none}.rchips{display:none}}

/* Google Translate: hide its toolbar, keep our own switcher */
.goog-te-banner-frame,iframe.skiptranslate,#goog-gt-tt,.goog-te-balloon-frame,.VIpgJd-ZVi9od-ORHb-OEVmcd{display:none!important}
body{top:0!important}
.goog-text-highlight{background:none!important;box-shadow:none!important}
.topline .lang select{border:0;background:transparent;color:rgba(255,255,255,.7);font:500 .72rem var(--display);padding:4px 6px;border-radius:6px;cursor:pointer}
.topline .lang select option{color:#141640}
[dir=rtl] body{font-family:"Noto Kufi Arabic","DM Sans",Arial,sans-serif}

/* Dark theme (portal) ======================================================= */
html[data-theme=dark]{color-scheme:dark}
html[data-theme=dark] body{background:#0B0D2A}
html[data-theme=dark] .app{background:linear-gradient(90deg,#141640 268px,#0B0D2A 268px)}
html[data-theme=dark] .main{
  --ink:#EEF0FF; --text:#BFC3E8; --soft:#8E93C7; --mist:#151843; --tint:#1D2156; --surface:#12153B;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.18); --indigo:#8C90F2; --sky-tint:rgba(0,174,239,.16);
  --shadow:0 40px 80px -40px rgba(0,0,0,.7); --shadow-sm:0 20px 40px -24px rgba(0,0,0,.6);
  color:var(--text);
}
html[data-theme=dark] .main input,html[data-theme=dark] .main select,html[data-theme=dark] .main textarea{background:#0F1235;color:var(--ink);border-color:var(--line-2)}
html[data-theme=dark] .main .table th{background:#171A48;color:var(--soft)}
html[data-theme=dark] .main .table td{border-color:var(--line)}
html[data-theme=dark] .main .table tbody tr:hover td{background:#171A48}
html[data-theme=dark] .main .badge{background:#1D2156;color:var(--text)}
html[data-theme=dark] .main .badge-ok{background:rgba(0,174,239,.18);color:#7FD8FF}
html[data-theme=dark] .main .badge-warn{background:rgba(255,200,80,.14);color:#F5CE7A}
html[data-theme=dark] .main .btn-line{color:var(--ink)}
html[data-theme=dark] .main .btn:not(.btn-line):not(.btn-grad){background:#3B3FB6}
html[data-theme=dark] .main .alert{background:#151843;border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .main .mi-chip{background:#12153B;color:#EEF0FF}
html[data-theme=dark] .main .umenu-out{color:#FF8A7A}
html[data-theme=dark] .main a.link,html[data-theme=dark] .main .link{color:#A9ADFF}
html[data-theme=dark] .main .chart-box canvas{filter:brightness(1.1)}
[dir=rtl] svg[data-i=arrow],[dir=rtl] svg[data-i=arrow-left],[dir=rtl] .mb-btn svg[data-i=chev-right],[dir=rtl] .links svg[data-i=chev-right],[dir=rtl] .crumbs svg{transform:scaleX(-1)}
.status-card{padding:clamp(28px,4vw,48px);border-radius:28px;background:#fff;box-shadow:0 0 0 1px var(--line),0 40px 70px -50px rgba(20,22,64,.5);text-align:center}
.ratiba-state{display:grid;gap:14px;justify-items:center}
.ratiba-state h1{margin:0;font-size:clamp(1.8rem,3vw,2.4rem)}
.rt-empty{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}@media (max-width:640px){.rt-empty{grid-template-columns:1fr}}

/* Garden of giving (leaderboard) */
.plant{display:grid;place-items:center;border-radius:50%;color:#fff}
.plant svg{width:60%;height:60%}
.plant-seed{background:#9FA6E8}.plant-sprout{background:#5B6CE0}.plant-ear{background:#1B63C6}.plant-seven{background:var(--indigo)}.plant-hundredfold{background:var(--grad)}
.pod .tier{font:600 .72rem var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--indigo)}
.pod .pts{font-size:.8rem;color:var(--soft)}.pod .pts b{color:var(--ink);font-family:var(--display)}
.bdg{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.bdg i{font-style:normal;font:600 .64rem var(--display);padding:3px 8px;border-radius:99px;background:var(--sky-tint);color:var(--indigo)}
.lb-list li .who{display:grid;min-width:0}.lb-list li .who small{color:var(--soft);font-size:.76rem}
.garden-explain{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;margin-top:40px}
.ge-parable{grid-column:1/-1;padding:clamp(22px,3vw,34px);border-radius:24px;background:var(--grad);color:#fff;display:grid;gap:10px}
.ge-parable .eyebrow{color:rgba(255,255,255,.85)}
.ge-quote{margin:0;font:600 clamp(1.1rem,2vw,1.45rem)/1.5 var(--display)}
.ge-parable .muted{color:rgba(255,255,255,.75)!important}
.ge-tiers{display:grid;gap:10px}
.ge-tier{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.ge-tier .plant{grid-row:span 2;width:44px;height:44px}
.ge-tier b{font-family:var(--display);color:var(--ink)}.ge-tier small{font-size:.72rem;color:var(--soft);margin-left:6px}
.ge-tier span:last-child{grid-column:2;font-size:.82rem;color:var(--soft)}
.ge-tier b,.ge-tier small{grid-column:2;display:inline}
.ge-points{padding:22px 24px;border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.ge-points h3{margin:0 0 10px}.ge-points ul{margin:0 0 12px;padding-left:18px;display:grid;gap:8px;font-size:.93rem}
@media (max-width:860px){.garden-explain{grid-template-columns:1fr}}
/* My garden (dashboard) */
.garden{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.garden .plant{width:72px;height:72px}
.garden h3{margin:0}.garden p{margin:4px 0 0}
.gmonths{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:12px}
.gmonths span{height:26px;border-radius:6px;background:var(--tint);font:600 .6rem var(--display);color:var(--soft);display:grid;place-items:center}
.gmonths span.on{background:var(--grad);color:#fff}
.ks-illus{display:grid;place-items:center;width:100%;height:100%}.ks-illus svg{width:40%;height:40%;color:rgba(255,255,255,.9)}
.bulk-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.bulk-product{position:relative;display:grid;gap:4px;padding:14px 16px;border-radius:16px;box-shadow:inset 0 0 0 1px var(--line-2);cursor:pointer}
.bulk-product input{position:absolute;opacity:0}
.bulk-kids{box-shadow:inset 0 0 0 1px var(--line-2);border:1px dashed var(--line-2);color:var(--ink)}
.bulk-kids:hover{box-shadow:inset 0 0 0 1px var(--indigo)}
.bulk-product span{font-size:.84rem;color:var(--soft)}
.bulk-product b{font-family:var(--display);color:var(--ink)}.bulk-product span{font-size:.85rem;color:var(--soft)}
.bulk-product:has(input:checked){box-shadow:inset 0 0 0 2px var(--indigo);background:var(--tint)}
.bulk-total{margin:0;font:700 1.5rem var(--display);color:var(--ink)}
.err{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:16px;text-align:center;padding:40px 16px;background:var(--mist)}
.err h1{margin:0;font-size:clamp(2rem,4vw,3rem)}.err .lead{max-width:520px;margin:0}
.err-logo{margin-bottom:12px}
/* Education focus: children's homes */
.focus-homes{display:grid;gap:14px;margin-top:28px;padding:clamp(20px,3vw,28px);border-radius:var(--r-card,22px);background:var(--mist);box-shadow:inset 0 0 0 1px var(--line)}
.focus-homes p{margin:0}
.focus-home{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px;border-radius:16px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.focus-home .chip{margin-right:6px}
/* Programme / campaign photos and videos */
.media-gallery{margin-top:32px}
.mg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.mg-item{margin:0;display:grid;gap:8px}
.mg-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;display:block}
.mg-item figcaption{font-size:.84rem;color:var(--soft)}
.mg-video{grid-column:span 2}
@media (max-width:560px){.mg-video{grid-column:auto}}
.mg-frame{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000}
.mg-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mg-play{display:grid;place-items:center;gap:8px;aspect-ratio:4/3;border-radius:16px;background:var(--grad);color:#fff;font:600 .95rem var(--display);text-align:center}
.mg-play svg{width:34px;height:34px}
.media-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.media-admin-item{display:grid;gap:6px;padding:8px;border-radius:12px;box-shadow:0 0 0 1px var(--line)}
.media-admin-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.media-vid{display:grid;place-items:center;aspect-ratio:4/3;border-radius:8px;background:var(--mist);font:600 .85rem var(--display);gap:4px}
.focus-homes .btn{justify-self:start}
/* Any-amount cues */
.lbl-hint{font-weight:400;color:var(--soft);font-size:.82rem;margin-left:4px}
.amount-hint{margin:-4px 0 0}
.qg-other-amt{height:40px;width:130px;border:0;border-radius:10px;padding:0 12px;background:rgba(255,255,255,.95);color:var(--ink);font:500 .9rem var(--display)}
.wq-custom{display:grid;gap:6px;margin-top:4px}
.wq-custom label{font:600 .78rem var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.wq-custom-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
.wq-custom-row span{font:600 .85rem var(--display);color:var(--soft)}
.wq-custom-row input{height:40px;border:1px solid var(--line-2);border-radius:10px;padding:0 12px;font:500 .95rem var(--display);color:var(--ink);background:var(--surface);min-width:0}
.qg .seg input.qg-other-amt{position:static;opacity:1;pointer-events:auto}
.optout{border-top:1px solid var(--line);padding-top:14px}
.optout summary{cursor:pointer;color:var(--soft)}
/* Admin invoice editor */
.inv-status{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.inv-lines input{width:100%;height:38px;border:1px solid var(--line-2);border-radius:8px;padding:0 10px;font:inherit;background:var(--surface);color:var(--ink)}
.inv-lines td{vertical-align:middle}
/* Waqf Fund explainer */
.wf-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(20px,4vw,48px);align-items:start}
@media (max-width:860px){.wf-grid{grid-template-columns:1fr}}
.wf-explain{display:grid;gap:18px}
.wf-steps{margin:0;padding:0;list-style:none;display:grid;gap:12px;counter-reset:wf}
.wf-steps li{display:grid;grid-template-columns:36px 1fr;gap:4px 14px;counter-increment:wf}
.wf-steps li::before{content:counter(wf);grid-row:span 2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--indigo);color:#fff;font:600 .95rem var(--display)}
.wf-steps b{font:600 1rem var(--display);color:var(--ink)}
.wf-steps span{color:var(--text);font-size:.95rem}
.wf-figures{padding:24px;border-radius:var(--r-card,22px);background:var(--mist);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:12px}
.wf-figures dl{margin:0;display:grid;gap:10px}
.wf-figures dl div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px}
.wf-figures dt{color:var(--soft)}.wf-figures dd{margin:0;font:600 1rem var(--display);color:var(--ink)}
.wf-figures h4{margin:6px 0 0;font:600 .9rem var(--display)}
.wf-figures ul{margin:0;padding-left:18px;font-size:.9rem}
/* Spacing utilities and fixes */
.gap-1{gap:10px}.gap-2{gap:16px}
.row.gap-1,.row.gap-2{flex-wrap:wrap;align-items:center}
.child{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.child h2{margin:0 0 6px}
.child .meta{margin:0}
.btn-primary{background:var(--grad,#2E3192);color:#fff}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.card>h2+*,.card-head+*{margin-top:12px}
.dl{display:grid;grid-template-columns:minmax(120px,32%) 1fr;gap:0;margin:16px 0 0}
.dl dt,.dl dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line)}
.dl dd{padding-left:12px}
.wf-min{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--line)}
/* Consistent breathing room: text blocks before form fields, inline action links, inline forms */
.card>p+.form,.card>p+.form-row,.card>p+.field,.card>p+form,.card>.small+form,.mem-panel>p+.field{margin-top:14px}
.form>p{margin:0}
.form.row{justify-content:flex-start;align-items:flex-end;flex-wrap:wrap;gap:12px;font-size:inherit}
.form.row .field{flex:1 1 200px;margin:0}
td.actions{display:table-cell;text-align:right}
td.actions,td.nowrap{white-space:nowrap}
td.actions>a,td.actions>form,td.nowrap>a,td.nowrap>form{vertical-align:middle}
td.actions form,td.nowrap form{display:inline}
.table td .btn-link,.table td .link{line-height:1.6}
.feed>li{padding:12px 0;border-bottom:1px solid var(--line)}
.feed>li:last-child{border-bottom:0}
.alert+.card,.alert+.kpis,.alert+.grid-2,.alert+.grid-2-1,.kpis+.card{margin-top:20px}
.kid,.child{row-gap:10px}
.avatar+div>h2,.avatar+div>b{display:block;margin-bottom:4px}
.dl dd{overflow-wrap:anywhere}
.row-actions{display:inline-flex;gap:12px;align-items:center;white-space:nowrap}
.row-actions form{display:inline;margin:0}
.row-del{color:#c0392b}
html[data-theme=dark] .main .row-del{color:#FF8A7A}

/* Dashboard breadcrumbs (above each page title) */
.dcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;margin:0;padding:0;list-style:none;font-size:.82rem;color:var(--soft)}
.dcrumbs li{display:flex;align-items:center;min-width:0}
.dcrumbs li+li::before{content:"";width:5px;height:5px;margin:0 9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);opacity:.5;flex:none}
.dcrumbs a{color:var(--soft);text-decoration:none}
.dcrumbs a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.dcrumbs [aria-current]{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32ch}
@media print{.dcrumbs{display:none}}
