/* ════════════════════════════════════════════════
   SpaceBeacon Foundation — Shared Design System
   Microsoft for Nonprofits aesthetic, BC + Federal
   ════════════════════════════════════════════════ */

:root{
  /* Brand — softened pastel pass for civic/government grade */
  --beacon-violet:#8B6BFF;
  --beacon-violet-2:#A48BFF;
  --beacon-violet-d:#5B3BD9;
  --plasma-magenta:#FF6BA8;
  --plasma-rose:#FF8DC0;
  --plasma-magenta-d:#E03A7F;
  --solar-amber:#FFC36F;
  --solar-tangerine:#FF9A5E;
  --solar-gold:#FFD97A;
  --aurora-cyan:#7DEAFF;
  --aurora-blue:#6B9BFF;
  --plum-deep:#2A1054;

  /* Foundation — civic / stewardship */
  --steward-green:#3E8E6E;
  --steward-green-d:#236B4D;
  --steward-green-l:#A8D4BF;

  /* Canadian — sovereign accent (used sparingly, with respect) */
  --maple:#D9203B;
  --maple-d:#A8132A;
  --maple-tint:#FFE4E8;
  --canada-cream:#FBF7F0;

  /* Surfaces — warmer, lighter */
  --paper:#FFFFFF;
  --paper-tint:#FCFAFF;
  --paper-warm:#FBF7F0;
  --paper-mist:#F4EEFF;
  --paper-rose:#FFF5F8;
  --canvas:#F1ECF9;

  /* Ink — slightly softer */
  --ink-1:#1A1235;
  --ink-2:#3F3370;
  --ink-3:#7264A1;
  --ink-4:#A39ABB;

  /* Lines — softer */
  --line:rgba(139,107,255,0.16);
  --line-soft:rgba(139,107,255,0.08);
  --line-warm:rgba(62,142,110,0.20);
  --line-maple:rgba(217,32,59,0.22);

  /* Type */
  --serif:'Instrument Serif',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink-1);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ──────────── TOP NAV ──────────── */
/* ───────── Canadian Maple Leaf utility ─────────
   Single source of truth — official 11-point leaf
   Use: <span class="ca-leaf"></span>  (inherits color via CSS mask)
   Or:  <span class="ca-leaf ca-leaf-red"></span> for flag red */
.ca-leaf{
  display:inline-block;width:1em;height:1em;vertical-align:-0.12em;
  background-color:currentColor;
  -webkit-mask:url("assets/canada-leaf.png") center/contain no-repeat;
  mask:url("assets/canada-leaf.png") center/contain no-repeat;
}
.ca-leaf-red{color:var(--maple)}
.ca-leaf-white{color:#fff}

/* Government-style flag bar — one line of identity, sits above sticky nav */
.ca-bar{
  background:#FFFFFF;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 32px;font-size:11.5px;color:var(--ink-2);font-weight:600;letter-spacing:0.1px;
}
.ca-bar .ca-flag{display:inline-flex;align-items:center;gap:10px}
.ca-bar .ca-flag-mark{
  width:36px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(to right,var(--maple) 0 25%,#FFFFFF 25% 75%,var(--maple) 75% 100%);
  border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,0.08);
}
.ca-bar .ca-flag-mark .ca-leaf{width:14px;height:14px;color:var(--maple)}
.ca-bar .ca-flag-text{display:flex;flex-direction:column;line-height:1.15}
.ca-bar .ca-flag-text b{font-size:12px;font-weight:800;color:var(--ink-1);letter-spacing:-0.1px}
.ca-bar .ca-flag-text span{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-3);margin-top:2px}
.ca-bar .ca-meta{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--ink-3)}
.ca-bar .ca-meta b{color:var(--ink-1);font-weight:700}
.ca-bar .ca-meta .div{width:1px;height:12px;background:var(--line)}
@media (max-width:720px){.ca-bar .ca-meta{display:none}.ca-bar{padding:8px 16px}}

.fnav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line);
}
.fnav-inner{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;
  padding:14px 32px;
}
.fnav-brand{display:flex;align-items:center;gap:12px}
.fnav-brand img{height:30px;width:auto}
.fnav-brand .lock{
  display:flex;flex-direction:column;line-height:1;
  border-left:1px solid var(--line);padding-left:12px;
}
.fnav-brand .lock .a{font-family:var(--serif);font-size:18px;color:var(--ink-1);letter-spacing:-0.3px}
.fnav-brand .lock .a em{font-style:italic;color:var(--steward-green-d)}
.fnav-brand .leaf{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--maple)}
.fnav-brand .leaf svg{width:100%;height:100%}
.fnav-brand .lock .b{font-size:9px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-3);margin-top:3px}

.fnav-links{display:flex;justify-content:center;gap:6px}
.fnav-links a{
  padding:9px 14px;border-radius:8px;
  font-size:13px;font-weight:600;color:var(--ink-2);
  transition:background .15s,color .15s;
}
.fnav-links a:hover{background:var(--paper-mist);color:var(--ink-1)}
.fnav-links a.active{background:var(--paper-mist);color:var(--beacon-violet-d)}

.fnav-cta{display:flex;align-items:center;gap:10px}
.fnav-cta .ghost{
  padding:9px 14px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-2);
}
.fnav-cta .ghost:hover{color:var(--ink-1)}

/* ──────────── BUTTONS ──────────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 20px;border-radius:999px;
  font-size:13px;font-weight:700;letter-spacing:0.1px;
  border:1px solid transparent;cursor:pointer;
  transition:transform .12s ease,box-shadow .15s ease,background .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn .arrow{font-size:14px;line-height:1}

.btn-primary{
  background:linear-gradient(135deg,#FF6BA8 0%,#8B6BFF 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(255,107,168,0.28),inset 0 1px 0 rgba(255,255,255,0.32);
}
.btn-primary:hover{box-shadow:0 10px 22px rgba(255,107,168,0.36),inset 0 1px 0 rgba(255,255,255,0.32)}

.btn-maple{
  background:linear-gradient(135deg,#D9203B 0%,#A8132A 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(217,32,59,0.30),inset 0 1px 0 rgba(255,255,255,0.25);
}
.btn-maple:hover{box-shadow:0 10px 22px rgba(217,32,59,0.40),inset 0 1px 0 rgba(255,255,255,0.25)}

.btn-steward{
  background:linear-gradient(135deg,#3E8E6E 0%,#236B4D 100%);
  color:#fff;
  box-shadow:0 8px 18px rgba(62,142,110,0.28),inset 0 1px 0 rgba(255,255,255,0.25);
}
.btn-steward:hover{box-shadow:0 10px 22px rgba(62,142,110,0.38),inset 0 1px 0 rgba(255,255,255,0.25)}

.btn-ghost{
  background:#FFFFFF;color:var(--ink-1);border-color:var(--line);
  box-shadow:0 1px 0 rgba(0,0,0,0.02);
}
.btn-ghost:hover{background:var(--paper-tint);border-color:rgba(110,59,255,0.25)}

.btn-soft{
  background:var(--paper-mist);color:var(--beacon-violet-d);
}
.btn-soft:hover{background:#EBE3FB}

/* ──────────── COMMON TYPOGRAPHY ──────────── */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;
  color:var(--beacon-violet);
}
.eyebrow::before{content:'';width:18px;height:1.5px;background:var(--beacon-violet);border-radius:1px}
.eyebrow.steward{color:var(--steward-green)}
.eyebrow.steward::before{background:var(--steward-green)}
.eyebrow.amber{color:var(--solar-tangerine)}
.eyebrow.amber::before{background:var(--solar-tangerine)}
.eyebrow.maple{color:var(--maple)}
.eyebrow.maple::before{background:var(--maple)}

.h1{
  font-family:var(--serif);font-weight:400;
  font-size:64px;line-height:1.02;letter-spacing:-1.5px;
  color:var(--ink-1);text-wrap:balance;
}
.h1 em{
  font-style:italic;
  background:linear-gradient(135deg,#FF6BA8 0%,#FF9A5E 50%,#8B6BFF 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.h1 em.maple{
  background:linear-gradient(135deg,#D9203B 0%,#FF6BA8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.h1 em.steward{
  background:linear-gradient(135deg,#2E7D5C 0%,#1F5C42 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.h2{
  font-family:var(--serif);font-weight:400;
  font-size:42px;line-height:1.05;letter-spacing:-0.8px;
  color:var(--ink-1);text-wrap:balance;
}
.h2 em{font-style:italic;color:var(--plasma-magenta-d)}
.h2 em.steward{font-style:italic;color:var(--steward-green-d)}
.h2 em.maple{font-style:italic;color:var(--maple)}
.h3{
  font-family:var(--serif);font-weight:400;
  font-size:28px;line-height:1.1;letter-spacing:-0.5px;
  color:var(--ink-1);
}
.h3 em{font-style:italic;color:var(--plasma-magenta-d)}
.h3 em.steward{font-style:italic;color:var(--steward-green-d)}
.h3 em.maple{font-style:italic;color:var(--maple)}
.lede{font-size:18px;line-height:1.55;color:var(--ink-2);max-width:640px}
.lede b{color:var(--ink-1);font-weight:700}
.body-text{font-size:15px;line-height:1.65;color:var(--ink-2)}
.body-text b{color:var(--ink-1);font-weight:700}

/* ──────────── SECTION CHROME ──────────── */
section{position:relative}
.section-pad{padding:96px 32px}
.section-pad-tight{padding:64px 32px}
.container{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.container-narrow{max-width:960px;margin:0 auto}

/* ──────────── CARDS ──────────── */
.card{
  background:#FFFFFF;border:1px solid var(--line);border-radius:18px;
  padding:28px;position:relative;overflow:hidden;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(14,8,32,0.08);border-color:rgba(110,59,255,0.22)}

/* ──────────── PILL ──────────── */
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:0.3px;
  background:var(--paper-mist);color:var(--beacon-violet-d);
  border:1px solid var(--line);
}
.pill.maple{background:linear-gradient(135deg,#FFE4E8,#FFF0E0);color:var(--maple-d);border-color:var(--line-maple)}
.pill.steward{background:rgba(62,142,110,0.08);color:var(--steward-green-d);border-color:var(--line-warm)}
.pill.canada{background:linear-gradient(135deg,#FFE4E8 0%,#FBF7F0 100%);color:var(--maple-d);border-color:var(--line-maple);font-weight:800}
.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--plasma-magenta);box-shadow:0 0 0 3px rgba(255,107,168,0.18)}
.pill.steward .dot{background:var(--steward-green);box-shadow:0 0 0 3px rgba(62,142,110,0.20)}
.pill.maple .dot{background:var(--maple);box-shadow:0 0 0 3px rgba(217,32,59,0.18)}
.pill .leaf{width:11px;height:11px;display:inline-block}
.pill .leaf svg{width:100%;height:100%;display:block}

/* ──────────── GLOSSY ORBS (hero only) ──────────── */
.orb{position:absolute;border-radius:50%;pointer-events:none}
.orb.magenta{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.92),transparent 50%),
  radial-gradient(circle at 70% 75%,rgba(0,0,0,0.22),transparent 50%),
  radial-gradient(circle at 50% 50%,#FF2D8C,#FF6B7A 55%,#FF7A2E 100%);
  box-shadow:0 14px 36px rgba(255,45,140,0.42),inset 0 -8px 20px rgba(0,0,0,0.28),inset 0 3px 8px rgba(255,255,255,0.4);
}
.orb.amber{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.95),transparent 50%),
  radial-gradient(circle at 70% 70%,rgba(0,0,0,0.18),transparent 50%),
  radial-gradient(circle at 50% 50%,#FFD24A,#FFB347 70%);
  box-shadow:0 10px 26px rgba(255,179,71,0.55),inset 0 -6px 14px rgba(0,0,0,0.22);
}
.orb.violet{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.95),transparent 50%),
  radial-gradient(circle at 50% 50%,#A48BFF,#6E3BFF 70%);
  box-shadow:0 8px 18px rgba(110,59,255,0.45);
}
.orb.cyan{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.95),transparent 50%),
  radial-gradient(circle at 50% 50%,#A8F4FF,#3DE6FF 70%);
  box-shadow:0 6px 14px rgba(61,230,255,0.45);
}
.orb.steward{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.95),transparent 50%),
  radial-gradient(circle at 50% 50%,#7DBFA1,#2E7D5C 70%);
  box-shadow:0 8px 18px rgba(46,125,92,0.45);
}
.orb.glass{background:
  radial-gradient(circle at 30% 25%,rgba(255,255,255,0.95),transparent 50%),
  radial-gradient(circle at 50% 50%,rgba(255,255,255,0.5),rgba(255,255,255,0.15));
  border:1px solid rgba(110,59,255,0.25);
  box-shadow:0 8px 20px rgba(110,59,255,0.18),inset 0 -4px 10px rgba(255,45,140,0.18);
}

/* ──────────── VIDEO STORIES ──────────── */
.vstory-section{padding:96px 32px;background:linear-gradient(180deg,#FBF7F0 0%,#FFF5F8 100%);border-top:1px solid var(--line-maple)}
.vstory-section.dark{background:linear-gradient(135deg,#1A1235 0%,#2A1054 60%,#5B3BD9 100%);color:#fff;border-top:none;position:relative;overflow:hidden}
.vstory-section.dark::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 60% at 100% 0%,rgba(255,107,168,0.30) 0%,transparent 55%),radial-gradient(ellipse 40% 50% at 0% 100%,rgba(255,195,111,0.22) 0%,transparent 55%)}
.vstory-section.dark .h2{color:#fff}
.vstory-section.dark .lede{color:rgba(255,255,255,0.86)}
.vstory-section.dark .eyebrow{color:#FFC36F}
.vstory-section.dark .eyebrow::before{background:#FFC36F}

.vstory-head{max-width:1280px;margin:0 auto 48px;display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;align-items:end;position:relative;z-index:1}
.vstory-head .lede{margin-top:18px}

.vstory-row{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:24px;position:relative;z-index:1}
.vstory-row.solo{grid-template-columns:1.4fr 1fr;align-items:center}

.vcard{
  background:#FFFFFF;border:1px solid var(--line);border-radius:20px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;
}
.vstory-section.dark .vcard{background:rgba(255,255,255,0.06);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.10)}
.vcard:hover{transform:translateY(-3px);box-shadow:0 22px 48px rgba(26,18,53,0.14)}

.vcard .vthumb{
  position:relative;aspect-ratio:16/9;overflow:hidden;cursor:pointer;
  background:#0E0820;
}
.vcard .vthumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.vcard:hover .vthumb img{transform:scale(1.04)}
.vcard .vthumb::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.55) 100%);
  pointer-events:none;
}
.vcard .vplay{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;
  background:rgba(217,32,59,0.95);border:3px solid rgba(255,255,255,0.95);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,0.4);
  transition:transform .2s,background .2s;z-index:2;
}
.vcard:hover .vplay{transform:translate(-50%,-50%) scale(1.08);background:#D9203B}
.vcard .vplay svg{width:26px;height:26px;color:#fff;margin-left:3px}
.vcard .vbadge{
  position:absolute;top:14px;left:14px;z-index:2;
  background:rgba(255,255,255,0.94);backdrop-filter:blur(8px);
  padding:6px 12px;border-radius:999px;
  font-size:10.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--maple-d);display:inline-flex;align-items:center;gap:6px;
}
.vcard .vbadge .ca-leaf{width:11px;height:11px;color:var(--maple)}
.vcard .vduration{
  position:absolute;bottom:14px;right:14px;z-index:2;
  background:rgba(0,0,0,0.78);color:#fff;
  padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:0.3px;
}
.vcard .vbody{padding:24px 26px 26px;flex:1;display:flex;flex-direction:column}
.vcard .veyebrow{font-size:10.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--steward-green-d);margin-bottom:10px}
.vstory-section.dark .vcard .veyebrow{color:#FFC36F}
.vcard h3{font-family:var(--serif);font-size:24px;line-height:1.15;letter-spacing:-0.4px;color:var(--ink-1);margin-bottom:10px;text-wrap:balance}
.vstory-section.dark .vcard h3{color:#fff}
.vcard h3 em{font-style:italic;color:var(--steward-green-d)}
.vstory-section.dark .vcard h3 em{color:#FFC36F}
.vcard p{font-size:13.5px;line-height:1.6;color:var(--ink-2);margin-bottom:16px;flex:1}
.vstory-section.dark .vcard p{color:rgba(255,255,255,0.82)}
.vcard .vmeta{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;font-weight:700;letter-spacing:0.5px;color:var(--ink-3);padding-top:14px;border-top:1px solid var(--line)}
.vstory-section.dark .vcard .vmeta{color:rgba(255,255,255,0.65);border-color:rgba(255,255,255,0.10)}
.vcard .vmeta b{color:var(--ink-1);font-weight:800}
.vstory-section.dark .vcard .vmeta b{color:#fff}

/* Aside copy block paired with a single hero video */
.vstory-aside{display:flex;flex-direction:column;gap:18px}
.vstory-aside .pull{
  font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.4;
  color:var(--ink-1);padding:20px 24px;border-left:3px solid var(--maple);
  background:rgba(255,255,255,0.6);border-radius:0 12px 12px 0;
}
.vstory-section.dark .vstory-aside .pull{color:#fff;background:rgba(255,255,255,0.06)}
.vstory-aside .quote-attr{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--maple-d);margin-top:10px;display:block}
.vstory-section.dark .vstory-aside .quote-attr{color:#FFC36F}

/* Modal */
.vmodal{
  position:fixed;inset:0;z-index:1000;background:rgba(8,4,18,0.88);backdrop-filter:blur(8px);
  display:none;align-items:center;justify-content:center;padding:24px;
}
.vmodal.open{display:flex}
.vmodal-inner{
  position:relative;width:100%;max-width:1080px;aspect-ratio:16/9;
  background:#000;border-radius:16px;overflow:hidden;
  box-shadow:0 40px 100px rgba(0,0,0,0.6);
}
.vmodal-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vmodal-close{
  position:absolute;top:-44px;right:0;
  background:rgba(255,255,255,0.10);color:#fff;border:1px solid rgba(255,255,255,0.25);
  width:36px;height:36px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:300;
  transition:background .2s;
}
.vmodal-close:hover{background:rgba(255,255,255,0.20)}

/* Impact image cards (no video) — for adding visual life across pages */
.impact-img{position:relative;border-radius:18px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;color:#fff}
.impact-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .5s}
.impact-img:hover img{transform:scale(1.05)}
.impact-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.05) 30%,rgba(0,0,0,0.78) 100%);z-index:1}
.impact-img .ii-body{position:relative;z-index:2;padding:28px 26px 26px;width:100%}
.impact-img .ii-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,0.18);backdrop-filter:blur(8px);font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#fff;margin-bottom:12px}
.impact-img .ii-eyebrow .ca-leaf{width:10px;height:10px;color:#fff}
.impact-img h4{font-family:var(--serif);font-size:24px;line-height:1.15;color:#fff;margin-bottom:8px;letter-spacing:-0.3px;text-wrap:balance}
.impact-img h4 em{font-style:italic;color:#FFC36F}
.impact-img p{font-size:13px;line-height:1.55;color:rgba(255,255,255,0.92);max-width:380px}
.impact-img-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

@media (max-width:980px){
  .vstory-head{grid-template-columns:1fr;gap:24px}
  .vstory-row{grid-template-columns:1fr}
  .vstory-row.solo{grid-template-columns:1fr}
  .impact-img-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .impact-img-grid{grid-template-columns:1fr}
}

/* ──────────── AMBIENT WASH ──────────── */
.ambient{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 50% 30% at 100% 0%,rgba(255,45,140,0.07) 0%,transparent 60%),
    radial-gradient(ellipse 40% 30% at 0% 100%,rgba(110,59,255,0.06) 0%,transparent 60%),
    radial-gradient(ellipse 30% 20% at 60% 50%,rgba(46,125,92,0.04) 0%,transparent 60%);
}

/* ──────────── FOOTER ──────────── */
.ffoot{
  background:linear-gradient(180deg,var(--paper-tint) 0%,var(--paper-mist) 100%);
  border-top:1px solid var(--line);
}
.ffoot-grid{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:48px;
  padding:64px 32px 32px;
}
.ffoot-brand img{height:30px;margin-bottom:16px}
.ffoot-brand .lock{font-family:var(--serif);font-size:18px;letter-spacing:-0.3px;color:var(--ink-1);margin-bottom:6px}
.ffoot-brand .lock em{font-style:italic;color:var(--steward-green)}
.ffoot-brand .desc{font-size:13px;line-height:1.55;color:var(--ink-2);max-width:300px;margin-bottom:14px}
.ffoot-brand .charity{font-size:11px;color:var(--ink-3);font-weight:600;letter-spacing:0.1px;line-height:1.55}
.ffoot-brand .charity b{color:var(--ink-1);font-weight:700}

.ffoot-col h4{font-size:11px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-1);margin-bottom:16px}
.ffoot-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ffoot-col li{font-size:13px;color:var(--ink-2)}
.ffoot-col li a:hover{color:var(--beacon-violet-d)}

.ffoot-bar{
  max-width:1280px;margin:0 auto;
  border-top:1px solid var(--line-soft);
  padding:18px 32px 28px;
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
}
.ffoot-bar .preem{display:flex;align-items:center;gap:10px}
.ffoot-bar .preem img{height:22px;border-radius:4px}
.ffoot-bar .preem .pl{font-size:9.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3);line-height:1.5}
.ffoot-bar .preem .pl b{display:block;color:var(--ink-1);font-weight:700;font-size:10.5px;text-transform:none;letter-spacing:0.1px}
.ffoot-bar .legal{text-align:center;font-size:11px;color:var(--ink-3)}
.ffoot-bar .legal a{color:var(--ink-3);margin:0 6px}
.ffoot-bar .legal a:hover{color:var(--beacon-violet-d)}
.ffoot-bar .terr{font-size:10px;color:var(--ink-3);line-height:1.45;max-width:380px;text-align:right;font-style:italic}

/* ──────────── RESPONSIVE ──────────── */
@media (max-width:980px){
  .h1{font-size:46px}
  .h2{font-size:32px}
  .h3{font-size:22px}
  .section-pad{padding:64px 24px}
  .fnav-links{display:none}
  .ffoot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .ffoot-bar{grid-template-columns:1fr;text-align:center}
  .ffoot-bar .preem{justify-content:center}
  .ffoot-bar .terr{text-align:center}
}
@media (max-width:640px){
  .h1{font-size:36px}
  .h2{font-size:26px}
  .lede{font-size:16px}
  .ffoot-grid{grid-template-columns:1fr}
}
