/* ============================================================================
   impact.css — AIGHAP Impact (CLEAN + DROP-IN)
   Goals:
   - Keep ALL core features (icons, gauges, hero, cards, panels, map, filter bar)
   - Remove repetitions / conflicting overrides (especially Leaflet tooltip/popup)
   - Ensure Leaflet interactions work (pointer-events, z-index, glass tooltip)
   Notes:
   - Layout/grid wrappers belong in main.css as you requested
   - Depends on main.css tokens: --a-accent, --a-navy, --a-gold, --a-font-head, --a-header-h
============================================================================ */

/* ============================================================================
   ICON ROW (single source of truth)
============================================================================ */
#impact .icon-track{
  --icon-size: 34px;
  --icon-gap: 8px;

  display:flex;
  flex-wrap: wrap;
  justify-content:center;
  align-items:flex-end;
  gap: var(--icon-gap);

  min-height: calc(var(--icon-size) + 8px);
  margin-bottom: .45rem;

  overflow: hidden;
  position: relative;
}

#impact .icon-track svg{
  width: var(--icon-size);
  height: var(--icon-size);
  display: block;
  opacity: 0;
  transform: translateY(-10px);
}

#impact[data-ready="true"] .icon-track svg.show{
  opacity: 1;
  transform: translateY(0);
  animation: iconIn .35s ease both;
  animation-delay: calc(var(--i, 0) * 45ms);
}

@keyframes iconIn{
  from{ opacity:0; transform: translateY(-10px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Fractional icon tile */
#impact .icon-stack{
  position: relative;
  width: var(--icon-size);
  height: var(--icon-size);
  flex: 0 0 var(--icon-size);
}
#impact .icon-stack svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
#impact .icon-stack .ghost{ opacity: .28; }

/* ============================================================================
   ICON COLORS (AIGHAP original scheme)
============================================================================ */
/* 👥 Community Members — blue */
#impact .icon-track svg[data-type="person"] circle,
#impact .icon-track svg[data-type="person"] rect{ fill:#0652dd; }
#impact .icon-track svg[data-type="person"].ghost circle,
#impact .icon-track svg[data-type="person"].ghost rect{ opacity:.35; }

/* 🩸 Patients Supported — pink + navy */
#impact .icon-track svg[data-type="pair"] circle:first-of-type,
#impact .icon-track svg[data-type="pair"] rect:first-of-type{ fill:#d6336c; }
#impact .icon-track svg[data-type="pair"] circle:last-of-type,
#impact .icon-track svg[data-type="pair"] rect:last-of-type{ fill:#0b2c48; }

/* 🧍‍♀️ Community Sensitized — lighter blue */
#impact .icon-track svg[data-type="person-light"] circle,
#impact .icon-track svg[data-type="person-light"] rect{ fill:#3b7eff; opacity:.9; }
#impact .icon-track svg[data-type="person-light"].ghost{ opacity:.3; }

/* 🏥 Facilities Strengthened — green/red/navy */
#impact .icon-track svg[data-type="building"] rect:nth-of-type(1){ fill:#0b2c48; }
#impact .icon-track svg[data-type="building"] rect:nth-of-type(2){ fill:#28a745; }
#impact .icon-track svg[data-type="building"] rect:nth-of-type(3){ fill:#7c0404; }
#impact .icon-track svg[data-type="building"] rect:last-of-type{ fill:#ccc; opacity:.6; }

/* ============================================================================
   GAUGES (lungs + clock)
============================================================================ */
#impact .svg-gauge{ width: 190px; height: 190px; margin: 0 auto; }
#impact .icon-lung, #impact .icon-clock{ width: 150px; height: 150px; }

#impact .gauge-num{
  font-weight: 900;
  color: #0652dd;
  font-size: 1.25rem;
  line-height: 1;
}

/* Lungs */
#impact .lungs path{ stroke:#0b2c48; stroke-width:2px; }
#impact .lungs g path{ stroke:url(#lungsGrad); fill:none; }
#impact .lungs .mask-rect{
  transform-origin: 50% 100%;
  transform-box: fill-box;
  transition: y 1.6s ease, height 1.6s ease;
}

/* Clock */
#impact .clock .clock-fill{
  stroke: #28a745;
  stroke-width: 10;
  stroke-dasharray: 276;
  stroke-dashoffset: 276;
  transition: stroke-dashoffset 1.6s ease;
}
#impact .clock line,
#impact .clock .clock-hand{
  stroke:#0b2c48;
  stroke-width:4;
  transform-origin: 50px 50px;
  transition: transform 1.6s ease;
}

/* ============================================================================
   IMPACT PAGE — Premium Modern (drop-in)
============================================================================ */
.a-impactSection{
  padding: clamp(2rem, 3vw, 3rem) 0;
}
.a-impactSection--light{
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}
.a-impactSection--gradient{
  background: linear-gradient(180deg, rgba(23,92,221,.06) 0%, rgba(32,187,165,.06) 100%);
}
.a-impactSection .section-title{
  margin-bottom: clamp(.8rem, 1.7vw, 1.4rem);
}
.a-impactSection .section-title .lead{
  font-size: clamp(1rem, 1.35vw, 1.1rem);
  margin-bottom: 0;
}

/* =========================
   SECTION NAV (scan speed)
========================= */
.a-pageNavWrap{
  position: sticky;
  top: calc(var(--a-header-h) + 8px);
  z-index: 90;
  margin-top: -1.1rem;
  margin-bottom: .45rem;
}
.a-pageNavWrap .container{
  display: flex;
  justify-content: center;
}
.a-pageNav{
  display: inline-flex;
  gap: .45rem;
  flex-wrap: nowrap;
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  align-items: center;
  justify-content: center;
  padding: .4rem;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(17,24,39,.10);
  box-shadow: 0 10px 24px rgba(8,16,32,.10);
  backdrop-filter: blur(6px);
}
.a-pageNav a{
  display: inline-flex;
  align-items: center;
  padding: .35rem .7rem;
  border-radius: 999px;
  font-family: var(--a-font-head);
  font-size: .82rem;
  font-weight: 850;
  color: rgba(11,44,72,.78);
  border: 1px solid transparent;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.a-pageNav a:hover,
.a-pageNav a:focus-visible{
  color: var(--a-accent);
  background: rgba(23,92,221,.09);
  border-color: rgba(23,92,221,.16);
}

#impact-scoreboard,
#impact-map,
#impact-pillars,
#impact-reports{
  scroll-margin-top: calc(var(--a-header-h) + 72px);
}
#impact-main .g-4{
  --bs-gutter-x: 1rem;
  --bs-gutter-y: 1rem;
}

@media (max-width: 991.98px){
  .a-pageNavWrap{
    position: static;
    margin-top: .5rem;
  }
  .a-pageNav{
    border-radius: 16px;
    flex-wrap: wrap;
  }
}

/* =========================
   HERO
========================= */
.a-impactHero{
  position: relative;
  min-height: clamp(430px, 52dvh, 560px);
  display: grid;
  place-items: center;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(180deg, #16466f 0%, #1e5a80 55%, #24668b 100%);
}
.a-impactHero__content{
  position: relative;
  z-index: 5;
  padding: clamp(2.1rem, 2.9vw, 2.8rem) 0 clamp(1.4rem, 2.2vw, 2rem);
}
.a-impactHero__bg{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.a-impactHero__orbs{
  position:absolute; inset:-25% -20% auto -20%;
  height: 520px;
  background:
    radial-gradient(circle at 18% 30%, rgba(32,187,165,.30), transparent 58%),
    radial-gradient(circle at 78% 24%, rgba(23,92,221,.28), transparent 60%),
    radial-gradient(circle at 55% 95%, rgba(212,169,54,.14), transparent 55%);
  filter: blur(16px);
  opacity: .75;
}
.a-impactHero__grid{
  position:absolute; inset:0; opacity:.09;
  background:
    linear-gradient(0deg, rgba(255,255,255,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at 50% 40%, #000 35%, transparent 70%);
}
.a-impactHero__vignette{
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 28%, rgba(0,0,0,.04), rgba(0,0,0,.16) 64%, rgba(0,0,0,.26));
  opacity:.48;
}
.a-impactHero__noise{
  position:absolute; inset:-2px;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity: .06;
}
.a-impactHero__waves{
  position:absolute; left:0; right:0; bottom:-1px;
  height: clamp(74px, 8.8vw, 112px);
  z-index: 2;
  pointer-events:none;
}

.a-impactHero::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(34px, 4.8vw, 64px);
  background: linear-gradient(180deg, rgba(11, 40, 66, 0) 0%, rgba(16, 57, 87, .36) 100%);
  z-index: 3;
  pointer-events: none;
}

.a-impactHero .a-heroV3__title{
  font-size: clamp(1.85rem, 2.65vw, 2.65rem) !important;
  line-height: 1.16;
}

.a-impactHero .a-heroV3__sub{
  font-size: clamp(1.02rem, 1.2vw, 1.28rem);
}

.a-impactHero .a-statsRail{
  margin-top: 1.8rem !important;
}

/* =========================
   KPI cards
========================= */
.a-kpiCard{
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  padding: 1.1rem 1.1rem 1.05rem;
  overflow: hidden;
  position: relative;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.a-kpiCard::before{
  content:"";
  position:absolute; left:0; right:0; top:0;
  height: 4px;
  background: linear-gradient(90deg, rgba(23,92,221,.85), rgba(32,187,165,.85));
  opacity:.92;
}
.a-kpiCard:hover{
  transform: translateY(-7px);
  border-color: rgba(23,92,221,.18);
  box-shadow: 0 22px 46px rgba(0,0,0,.14);
}

.a-kpiCard--strategic{
  background: linear-gradient(135deg,#0d6efd 0%,#22c55e 100%);
  color: #fff;
  border-color: rgba(255,255,255,.24);
}
.a-kpiCard--strategic .a-kpiValue,
.a-kpiCard--strategic .a-kpiMeta,
.a-kpiCard--strategic .a-kpiFoot,
.a-kpiCard--strategic .a-kpiChip{
  color: #fff;
}
.a-kpiCard--strategic .a-kpiIcon{
  color: #fff;
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.28);
}
.a-kpiCard--strategic .a-kpiChip{
  border-color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.12);
}
.a-kpiCard--strategic .a-kpiFoot{
  border-top-color: rgba(255,255,255,.28);
}

.a-kpiCard--signal{
  background: linear-gradient(145deg, rgba(255,255,255,.98) 0%, rgba(236,244,252,.98) 100%);
  border-color: rgba(23,92,221,.16);
}
.a-kpiCard--signal .a-kpiChip{
  background: rgba(17,44,72,.06);
  border-color: rgba(17,44,72,.14);
}

.a-kpiCard--themed{
  color: #fff;
  border-color: rgba(255,255,255,.22);
}

.a-kpiCard--themed[data-kpi-theme="reach"]{
  background: linear-gradient(135deg, #1f6feb 0%, #0f3c6e 100%);
}
.a-kpiCard--themed[data-kpi-theme="coverage"]{
  background: linear-gradient(135deg, #0ea5a4 0%, #0f766e 100%);
}
.a-kpiCard--themed[data-kpi-theme="quality"]{
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
}
.a-kpiCard--themed[data-kpi-theme="outputs"]{
  background: linear-gradient(135deg, #14b8a6 0%, #0f766e 100%);
}

.a-kpiCard--themed .a-kpiValue,
.a-kpiCard--themed .a-kpiMeta,
.a-kpiCard--themed .a-kpiFoot,
.a-kpiCard--themed .a-kpiChip{
  color: #fff;
}

.a-kpiCard--themed .a-kpiChip{
  border-color: rgba(255,255,255,.36);
  background: rgba(255,255,255,.14);
}

.a-kpiCard--themed .a-kpiIcon{
  color: #fff;
  border-color: rgba(255,255,255,.32);
  background: rgba(255,255,255,.14);
}

.a-kpiCard--themed .a-kpiFoot{
  border-top-color: rgba(255,255,255,.28);
}

.a-foresightStrip{
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.08);
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 34px rgba(0,0,0,.06);
}
.a-foresightCard{
  border-radius: 14px;
  border: 1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(245,248,250,.82), rgba(255,255,255,.98));
  padding: .85rem .9rem;
  min-height: 136px;
}
.a-foresightCard__t{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-title, 840);
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
  color: var(--a-navy);
  margin-bottom: .35rem;
}
.a-foresightCard__b{
  color: rgba(17,24,39,.70);
  font-weight: 700;
  line-height: 1.45;
}
.a-kpiCard__top{
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem; margin-bottom:.75rem;
}
.a-kpiIcon{
  width: 44px; height: 44px;
  border-radius: 14px;
  display:grid; place-items:center;
  color: var(--a-accent);
  background: rgba(23,92,221,.10);
  border: 1px solid rgba(23,92,221,.18);
}
.a-kpiChip{
  display:inline-flex;
  padding: .28rem .6rem;
  border-radius: 999px;
  border: 1px solid rgba(11,44,72,.12);
  background: rgba(11,44,72,.06);
  font-family: var(--a-font-head);
  font-weight: 900;
  color: rgba(11,44,72,.80);
  font-size: .82rem;
}
.a-kpiValue{
  font-family: var(--a-font-head);
  font-weight: 950;
  letter-spacing: -0.02em;
  color: var(--a-navy);
  font-size: clamp(1.9rem, 2.4vw, 2.35rem);
}
.a-kpiMeta{
  color: rgba(17,24,39,.66);
  font-weight: 750;
  margin-top: .25rem;
  line-height: 1.35;
}
.a-kpiFoot{
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid rgba(17,24,39,.08);
  color: rgba(17,24,39,.52);
  font-weight: 800;
  font-size: .9rem;
}

/* =========================
   Panels (chart + side blocks)
========================= */
.a-panel{
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  overflow: hidden;
}
.a-panel__head{
  display:flex; align-items:center; justify-content:space-between;
  gap: .75rem;
  padding: .95rem 1rem;
  border-bottom: 1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(245,248,250,1), rgba(255,255,255,1));
}
.a-panel__kicker{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-kicker, 780);
  letter-spacing: .01em;
  font-size: .82rem;
  color: rgba(11,44,72,.72);
}
.a-panel__title{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-title, 840);
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
  color: var(--a-navy);
}
.a-panel__body{
  padding: 1rem;
  min-height: 260px; /* wrapper height + note space */
}
.a-panel__note{
  margin-top: .75rem;
  color: rgba(17,24,39,.58);
  font-weight: 750;
  font-size: .92rem;
}
.a-panel__note--detached{
  margin-top: 1.15rem;
  padding-top: .8rem;
  border-top: 1px solid rgba(17,24,39,.1);
}
.a-select{
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,.10);
  font-weight: 800;
}

.a-miniEvidence{
  border-radius: 16px;
  border: 1px solid rgba(17,24,39,.08);
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 26px rgba(0,0,0,.06);
  padding: .9rem .95rem;
}
.a-miniEvidence__t{
  font-weight: var(--a-title-w-title, 840);
  color: var(--a-navy);
  font-family: var(--a-title-font, var(--a-font-head));
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
  margin-bottom: .25rem;
}
.a-miniEvidence__b{
  color: rgba(17,24,39,.66);
  font-weight: 700;
  line-height: 1.4;
}

/* Hard-lock the chart area */
.a-chartWrap{
  position: relative;
  width: 100%;
  height: 220px;
  max-height: 220px;
  overflow: hidden;
}
.a-chartWrap--compact{
  height: 146px;
  max-height: 146px;
}
.a-chartStack{
  display: grid;
  gap: .78rem;
}
.a-chartCard{
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 12px;
  padding: .55rem .65rem .45rem;
  background: rgba(255,255,255,.84);
}
.a-chartCard__label{
  font-size: .76rem;
  font-weight: 900;
  color: rgba(11,44,72,.74);
  text-transform: uppercase;
  letter-spacing: .02em;
  margin-bottom: .22rem;
}
#a-impactTrendChart,
#impactTrendChart,
#impactReadinessChart,
#impactRoiChart{
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* =========================
   Map panel
========================= */
.a-mapPanel{
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  overflow: hidden;
}
.a-mapPanel__head{
  display:flex; align-items:center; justify-content:space-between;
  gap: .75rem; flex-wrap: wrap;
  padding: .95rem 1rem;
  border-bottom: 1px solid rgba(17,24,39,.08);
  background: linear-gradient(180deg, rgba(245,248,250,1), rgba(255,255,255,1));
}
.a-mapTitle{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-title, 840);
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
  color: var(--a-navy);
  display:flex; align-items:center; gap:.5rem;
}
.a-mapCanvas{ height: 440px; }
.a-mapLegend{
  padding: .8rem 1rem;
  border-top: 1px solid rgba(17,24,39,.08);
  color: rgba(17,24,39,.62);
  font-weight: 800;
  font-size: .92rem;
}
.a-dot{
  display:inline-block;
  width: 10px; height: 10px;
  border-radius: 999px;
  margin-right: .35rem;
}
.a-dot--primary{ background: var(--a-accent); }
.a-dot--teal{ background: #20BBA5; }
.a-dot--gold{ background: var(--a-gold); }

.a-btnSoft{
  border-radius: 12px;
  border: 1px solid rgba(17,24,39,.10);
  background: rgba(255,255,255,.92);
  font-weight: 900;
}

/* =========================
   Pillars
========================= */
.a-pillarCard{
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  padding: 1.05rem 1.05rem 1.0rem;
  position: relative;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.a-pillarCard::before{
  content:"";
  position:absolute; left:0; right:0; top:0;
  height: 4px;
  background: linear-gradient(90deg, rgba(23,92,221,.85), rgba(32,187,165,.85));
  opacity:.92;
}
.a-pillarCard:hover{
  transform: translateY(-7px);
  border-color: rgba(23,92,221,.18);
  box-shadow: 0 22px 46px rgba(0,0,0,.14);
}
.a-pillarIcon{
  width: 48px; height: 48px;
  border-radius: 16px;
  display:grid; place-items:center;
  color: var(--a-accent);
  background: rgba(23,92,221,.10);
  border: 1px solid rgba(23,92,221,.18);
  margin-bottom: .85rem;
}
.a-pillarTitle{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-title, 840);
  color: var(--a-navy);
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
}
.a-pillarText{
  color: rgba(17,24,39,.66);
  font-weight: 700;
  line-height: 1.5;
  margin-top: .35rem;
}

/* =========================
   Reports
========================= */
.a-reportCard{
  display:block;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  padding: 1.05rem 1.05rem 1rem;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  color: inherit;
}
.a-reportCard:hover{
  transform: translateY(-7px);
  border-color: rgba(23,92,221,.18);
  box-shadow: 0 22px 46px rgba(0,0,0,.14);
}
.a-reportCard__top{
  display:flex; gap:.75rem; align-items:flex-start;
}
.a-reportIcon{
  width: 48px; height: 48px;
  border-radius: 16px;
  display:grid; place-items:center;
  color: var(--a-accent);
  background: rgba(23,92,221,.10);
  border: 1px solid rgba(23,92,221,.18);
  flex: 0 0 auto;
}
.a-reportTitle{
  font-family: var(--a-title-font, var(--a-font-head));
  font-weight: var(--a-title-w-title, 840);
  color: var(--a-navy);
  letter-spacing: var(--a-title-track, -0.015em);
  line-height: var(--a-title-line, 1.16);
}
.a-reportSub{
  color: rgba(17,24,39,.58);
  font-weight: 800;
  margin-top: .1rem;
}
.a-reportBody{
  margin-top: .85rem;
  color: rgba(17,24,39,.66);
  font-weight: 700;
  line-height: 1.5;
}
.a-reportFoot{
  margin-top: .9rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(17,24,39,.08);
  display:flex;
  gap:.45rem;
  align-items:center;
  flex-wrap: wrap;
  justify-content: space-between;
}
.a-badgeSoft{
  display:inline-flex;
  padding: .25rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(23,92,221,.18);
  background: rgba(23,92,221,.06);
  color: var(--a-accent);
  font-weight: 900;
  font-size: .80rem;
}
.a-reportCta{
  font-weight: 950;
  color: rgba(11,44,72,.86);
}
.a-reportCard:hover .a-reportCta{ color: var(--a-accent); }

.a-evidenceStrip{
  border-radius: 18px;
  border: 1px solid rgba(17,24,39,.08);
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 34px rgba(0,0,0,.06);
  padding: .95rem 1rem;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .75rem;
}
.a-evidenceStrip__item{
  border-radius: 16px;
  border: 1px solid rgba(17,24,39,.06);
  background: rgba(245,248,250,.75);
  padding: .75rem .85rem;
}
.a-evidenceStrip__k{
  font-weight: 950;
  color: rgba(11,44,72,.72);
  font-size: .82rem;
  letter-spacing: .01em;
}
.a-evidenceStrip__v{
  font-weight: 850;
  color: var(--a-navy);
  margin-top: .12rem;
}
@media (max-width: 991.98px){
  .a-evidenceStrip{ grid-template-columns: 1fr; }
}

/* Side list stats */
.a-listStat{
  padding: .8rem .85rem;
  border-radius: 16px;
  border: 1px solid rgba(17,24,39,.08);
  background: rgba(245,248,250,.70);
}
.a-listStat + .a-listStat{ margin-top: .65rem; }
.a-listStat__k{
  font-weight: 950;
  color: rgba(11,44,72,.70);
  font-size: .82rem;
  letter-spacing: .01em;
}
.a-listStat__v{
  font-weight: 950;
  color: var(--a-navy);
  margin-top: .12rem;
}
.a-divider{
  height: 1px;
  background: rgba(17,24,39,.10);
  margin: .95rem 0;
}
.a-callout{
  border-radius: 16px;
  border: 1px solid rgba(23,92,221,.14);
  background: linear-gradient(180deg, rgba(23,92,221,.06), rgba(32,187,165,.05));
  padding: .85rem .9rem;
}
.a-callout__t{
  font-weight: 950;
  color: var(--a-navy);
  font-family: var(--a-font-head);
}
.a-callout__b{
  margin-top: .2rem;
  color: rgba(17,24,39,.66);
  font-weight: 700;
}

/* ============================================================================
   Premium filter bar
============================================================================ */
.a-impactFilterBarWrap{ margin-top: 1.25rem; }

.a-impactFilterBar{
  display:flex;
  gap: 1.1rem;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;

  padding: 1.05rem 1.1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(17,24,39,.08);
  box-shadow: 0 16px 34px rgba(0,0,0,.07);
}

.a-impactFilterBar__left{
  flex: 1 1 340px;
  min-width: 280px;
}
.a-impactFilterBar__kicker{
  font-family: var(--a-font-head);
  font-weight: 950;
  font-size: .80rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(11,44,72,.70);
}
.a-impactFilterBar__title{
  margin-top: .2rem;
  font-family: var(--a-font-head);
  font-weight: 980;
  letter-spacing: -0.02em;
  color: var(--a-navy);
  font-size: 1.12rem;
}
.a-impactFilterBar__sub{
  margin-top: .25rem;
  color: rgba(17,24,39,.64);
  font-weight: 750;
  max-width: 52ch;
  line-height: 1.35;
}

.a-impactFilterBar__right{
  display:flex;
  gap: .75rem;
  align-items:flex-end;
  justify-content:flex-end;
  flex-wrap:wrap;
  flex: 1 1 580px;
}

.a-field{
  display:grid;
  gap: .35rem;
  min-width: 155px;
}
.a-field__label{
  margin: 0;
  font-size: .78rem;
  font-weight: 900;
  color: rgba(11,44,72,.72);
}
.a-field__control{
  border-radius: 14px;
  border: 1px solid rgba(17,24,39,.10);
  font-weight: 850;
  background: rgba(245,248,250,.72);
}

.a-impactFilterBar__reset{
  border-radius: 14px;
  height: calc(1.5em + .5rem + 2px);
  white-space: nowrap;
}
.a-impactFilterBar__reset:hover{
  background: rgba(23,92,221,.08);
  border-color: rgba(23,92,221,.18);
  color: var(--a-accent);
}

/* ============================================================================
   Leaflet — Executive tooltip/popup (FINAL, de-duplicated)
   - Wrapper is fully transparent
   - Inner .a-tipCard is the “glass” UI
   - Pointer events + z-index hardened for interactivity
============================================================================ */

/* Ensure paths are interactive even if a framework tampers with SVG events */
.leaflet-overlay-pane svg,
.leaflet-overlay-pane svg path,
.leaflet-overlay-pane path.leaflet-interactive{
  pointer-events: auto !important;
  shape-rendering: geometricPrecision;
}

/* Always keep tooltip/popup above map content */
.leaflet-tooltip-pane { z-index: 1200 !important; }
.leaflet-popup-pane   { z-index: 1200 !important; }

/* Tooltip wrapper: transparent, no arrow, no padding block */
.leaflet-tooltip.a-leafletExecutiveTip{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.leaflet-tooltip.a-leafletExecutiveTip::before,
.leaflet-tooltip.a-leafletExecutiveTip::after{
  display: none !important;
}

/* Popup wrapper: transparent; content margin reset */
.leaflet-popup.a-leafletExecutiveTip .leaflet-popup-content-wrapper,
.leaflet-popup.a-leafletExecutiveTip .leaflet-popup-tip{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.leaflet-popup.a-leafletExecutiveTip .leaflet-popup-content{
  margin: 0 !important;
}

/* Inner “glass” card used by tooltip/popup HTML */
.a-tipCard{
  min-width: 240px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial;
  background: rgba(255,255,255,.60) !important;  /* translucent */
  border: 1px solid rgba(17,24,39,.16) !important;
  border-radius: 14px;
  box-shadow: 0 16px 36px rgba(0,0,0,.16);
  padding: 10px 12px;
  color: #0b2c48;

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.a-tipCard--wide { min-width: 280px; max-width: 360px; }

.a-tipTitle{
  font-weight: 950;
  font-size: .92rem;
  letter-spacing: -.01em;
  color: #0b2c48;
}
.a-tipRule{
  height: 1px;
  background: rgba(11,44,72,.14);
  margin: .55rem 0 .6rem;
}
.a-tipRule--soft{
  background: rgba(11,44,72,.10);
  margin: .4rem 0 .45rem;
}
.a-tipList{
  margin: 0;
  padding-left: 1.05rem;
  font-weight: 750;
  line-height: 1.35;
  color: #0b2c48;
}
.a-tipLi{ margin: .18rem 0; }
.a-tipLi--muted{ opacity: .82; }
.a-tipK{ opacity: .70; }
.a-tipV{ font-weight: 900; }
.a-tipExtra{
  margin-top: .55rem;
  opacity: .92;
  font-weight: 800;
  line-height: 1.35;
  color: #0b2c48;
}
.a-tipExtraLine{ margin: .12rem 0; }

.a-tipSection{ margin: .55rem 0 .65rem; }
.a-tipSectionTitle{
  font-weight: 950;
  font-size: .90rem;
  letter-spacing: -.01em;
  color: #0b2c48;
}

/* ============================================================================
   Map Key (coverage key control)
============================================================================ */
.a-mapKey{
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(11,44,72,.14);
  border-radius: 14px;
  padding: 10px 12px;
  box-shadow: 0 18px 40px rgba(2,12,27,.12);
  backdrop-filter: blur(10px);
  max-width: 320px;
}
.a-mapKey__title{
  font-weight: 900;
  color: rgba(11,44,72,.92);
  margin-bottom: 6px;
}
.a-mapKey__row{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  color: rgba(11,44,72,.78);
  margin: 3px 0;
}
.a-mapKey__sub{
  margin-top: 8px;
  font-weight: 900;
  color: rgba(11,44,72,.86);
}
.a-mapKey__list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top: 6px;
}
.a-mapKey__pill{
  font-size: 12px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(37,99,235,.12);
  border: 1px solid rgba(37,99,235,.18);
  color: rgba(11,44,72,.88);
}
.a-mapLegend__supported{ margin-top: 10px; }
.a-mapLegend__supportedTitle{
  font-weight: 900;
  color: rgba(11,44,72,.82);
  margin-bottom: 6px;
}
.a-mapLegend__supportedList{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

/* ============================================================================
   Geographic Reach — Scope Toggle + Pulse + Arc Animation
============================================================================ */
#impact-map.a-impactSection--gradient {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

#impact-map .a-mapCanvas {
  height: 520px;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

#impact-map .a-mapLayerSwitch {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 1rem;
}

#impact-map .a-mapLayerSwitch button {
  border: 1px solid rgba(11, 44, 72, .12);
  background: rgba(248, 250, 252, .95);
  color: rgba(11, 44, 72, .82);
  border-radius: 999px;
  padding: .6rem .95rem;
  font-size: .85rem;
  font-weight: 800;
  line-height: 1;
  transition: all .2s ease;
}

#impact-map .a-mapLayerSwitch button:hover,
#impact-map .a-mapLayerSwitch button.is-active {
  background: rgba(23, 92, 221, .08);
  border-color: rgba(23, 92, 221, .2);
  color: var(--a-accent);
  transform: translateY(-1px);
}

#impact-map .bg-purple {
  background-color: #a855f7;
}

#impact-map .a-dot.bg-success,
#impact-map .a-dot.bg-primary,
#impact-map .a-dot.bg-purple,
#impact-map .a-dot.a-dot--systems,
#impact-map .a-dot.a-dot--community,
#impact-map .a-dot.a-dot--innovation,
#impact-map .a-dot.a-dot--emergencies {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  vertical-align: middle;
}

#impact-map .a-dot.a-dot--systems { background: #2563eb; }
#impact-map .a-dot.a-dot--community { background: #16a34a; }
#impact-map .a-dot.a-dot--innovation { background: #7c3aed; }
#impact-map .a-dot.a-dot--emergencies { background: #dc2626; }

#impact-map .a-mapLegend--programs {
  margin-top: .5rem;
  color: rgba(11, 44, 72, .8);
}

/* Pulse marker */
.pulse-marker {
  position: relative;
  width: 14px;
  height: 14px;
  border-radius: 50%;
}

.pulse-marker::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  top: 0;
  left: 0;
}

.pulse-marker::before {
  content: "";
  position: absolute;
  border-radius: 50%;
  width: 14px;
  height: 14px;
  top: 0;
  left: 0;
  animation: pulseExpand infinite;
  opacity: 0.5;
}

@keyframes pulseExpand {
  0% { transform: scale(1); opacity: 0.5; }
  100% { transform: scale(4); opacity: 0; }
}

.pulse-national::after { background: #22c55e; }
.pulse-national::before { background: #22c55e; animation-duration: 2s; }

.pulse-regional::after { background: #3b82f6; }
.pulse-regional::before { background: #3b82f6; animation-duration: 3s; }

.pulse-global::after { background: #a855f7; }
.pulse-global::before { background: #a855f7; animation-duration: 4s; }

.pulse-systems::after { background: #2563eb; }
.pulse-systems::before { background: #2563eb; animation-duration: 2.6s; }

.pulse-community::after { background: #16a34a; }
.pulse-community::before { background: #16a34a; animation-duration: 2.8s; }

.pulse-innovation::after { background: #7c3aed; }
.pulse-innovation::before { background: #7c3aed; animation-duration: 3.2s; }

.pulse-emergencies::after { background: #dc2626; }
.pulse-emergencies::before { background: #dc2626; animation-duration: 3s; }

/* Arc animation */
.arc-line {
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-dasharray: 6, 6;
  animation: dashMove 2s linear infinite;
}

@keyframes dashMove {
  to { stroke-dashoffset: -12; }
}

.arc-regional {
  stroke: #3b82f6;
  opacity: 0.8;
}

.arc-global {
  stroke: #a855f7;
  opacity: 0.7;
}

.arc-systems { stroke: #2563eb; }
.arc-community { stroke: #16a34a; }
.arc-innovation { stroke: #7c3aed; }
.arc-emergencies { stroke: #dc2626; }

/* ============================================================================
   Impact v2 — Minimalist Institutional System (scoped to impact page)
   - Tokens + typography rhythm + section spacing discipline
   - Keeps existing architecture, reduces visual noise
============================================================================ */
.impact-page {
  --impact-color-primary: #0f3c6e;
  --impact-color-accent: #1f6feb;
  --impact-color-dark: #0a1f33;
  --impact-color-light: #f6f8fb;
  --impact-color-muted: #6b7785;
  --impact-color-border: #e4e9f0;

  --impact-fs-display: clamp(2.35rem, 3.6vw, 3.35rem);
  --impact-fs-h1: clamp(1.95rem, 2.6vw, 2.5rem);
  --impact-fs-h2: 1.9rem;
  --impact-fs-h3: 1.35rem;
  --impact-fs-body-lg: 1.1rem;
  --impact-fs-body: 1rem;
  --impact-fs-small: 0.875rem;

  --impact-space-1: 8px;
  --impact-space-2: 16px;
  --impact-space-3: 24px;
  --impact-space-4: 32px;
  --impact-space-5: 48px;
  --impact-space-6: 64px;
  --impact-space-7: 96px;
  --impact-space-8: 120px;

  --impact-section-padding: clamp(5rem, 8vw, 7.5rem);
}

.impact-page .a-impactSection {
  padding: var(--impact-section-padding) 0;
}

.impact-page .a-impactSection--light {
  background: var(--impact-color-light);
}

.impact-page .a-impactSection .section-title {
  margin-bottom: var(--impact-space-6);
}

.impact-page .a-impactSection .section-title .section-heading {
  font-size: var(--impact-fs-h1);
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.impact-page .a-impactSection .section-title .lead {
  font-size: var(--impact-fs-body-lg);
  color: var(--impact-color-muted);
  line-height: 1.65;
}

.impact-page .a-kpiCard,
.impact-page .a-panel,
.impact-page .a-miniEvidence,
.impact-page .a-reportCard,
.impact-page .a-pillarCard,
.impact-page .a-foresightCard {
  border-radius: 14px;
  border-color: var(--impact-color-border);
}

.impact-page .a-kpiCard:hover,
.impact-page .a-panel:hover,
.impact-page .a-reportCard:hover,
.impact-page .a-pillarCard:hover {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.impact-page .a-impactFilterBar {
  border-color: var(--impact-color-border);
  background: rgba(255, 255, 255, 0.96);
}

.impact-page .a-pageNavWrap {
  margin-bottom: var(--impact-space-2);
}

.impact-page .a-impactIntro {
  padding-top: clamp(3rem, 5vw, 4.5rem);
}

.impact-page .a-impactIntro__content {
  max-width: 1140px;
}

.impact-page #impact-hero .section-heading {
  color: var(--impact-color-dark);
}

.impact-page #impact-hero .a-heroV3__title {
  color: var(--impact-color-primary);
  text-shadow: none;
  font-size: clamp(2.05rem, 4vw, 3.45rem) !important;
  line-height: 1.16;
  letter-spacing: -0.018em;
}

.impact-page #impact-hero .a-heroV3__kicker {
  color: #1f3550;
  background: rgba(15, 60, 110, 0.08);
  border: 1px solid rgba(15, 60, 110, 0.16);
  border-radius: 999px;
  padding: .42rem .9rem;
  display: inline-flex;
  font-weight: 760;
  box-shadow: none;
}

.impact-page #impact-hero .a-heroV3__kicker i {
  color: var(--impact-color-accent);
}

.impact-page #impact-hero p {
  color: #29435f;
}

.impact-page #impact-hero .a-heroV3__trust {
  color: #546b82;
  opacity: 1;
  font-weight: 640;
}

.impact-page #impact-hero .a-statNode {
  border-color: var(--impact-color-border);
  background: rgba(255, 255, 255, 0.96);
}

.impact-page #impact-hero .a-statNode__chip {
  color: #5f7389;
}

.impact-page #impact-hero .a-statNode__meta {
  color: #304861;
}

#impact-main #impact-hero .section-heading {
  color: var(--impact-color-dark, #0a1f33);
}

#impact-main #impact-hero .a-heroV3__title {
  color: var(--impact-color-primary, #0f3c6e);
  text-shadow: none;
  font-size: clamp(2.05rem, 4vw, 3.45rem) !important;
  line-height: 1.16;
  letter-spacing: -0.018em;
}

#impact-main #impact-hero .a-heroV3__kicker {
  color: #1f3550;
  background: rgba(15, 60, 110, 0.08);
  border: 1px solid rgba(15, 60, 110, 0.16);
  border-radius: 999px;
  padding: .42rem .9rem;
  display: inline-flex;
  font-weight: 760;
  box-shadow: none;
}

#impact-main #impact-hero .a-heroV3__kicker i {
  color: var(--impact-color-accent, #1f6feb);
}

#impact-main #impact-hero p {
  color: #29435f;
}

#impact-main #impact-hero .a-heroV3__trust {
  color: #546b82;
  opacity: 1;
  font-weight: 640;
}

#impact-main #impact-hero .a-statNode {
  border-color: var(--impact-color-border, #dbe2ea);
  background: rgba(255, 255, 255, 0.96);
}

#impact-main #impact-hero .a-statNode__chip {
  color: #5f7389;
}

#impact-main #impact-hero .a-statNode__meta {
  color: #304861;
}

/* Density tune-down for the scoreboard section */
#impact-main #impact-scoreboard::before {
  opacity: .42;
  filter: blur(30px);
}

#impact-main #impact-scoreboard .section-title {
  margin-bottom: .8rem;
}

#impact-main #impact-scoreboard .a-kpiCard,
#impact-main #impact-scoreboard .a-panel,
#impact-main #impact-scoreboard .a-foresightCard,
#impact-main #impact-scoreboard .a-miniEvidence {
  box-shadow: 0 8px 18px rgba(0,0,0,.05);
}

#impact-main #impact-scoreboard .a-kpiCard {
  padding: .95rem .95rem .9rem;
}

#impact-main #impact-scoreboard .a-panel__head {
  padding: .8rem .9rem;
}

#impact-main #impact-scoreboard .a-panel__body {
  padding: .85rem .9rem .95rem;
}

#impact-main #impact-scoreboard .a-foresightStrip {
  padding: .85rem .9rem !important;
}

#impact-main #impact-scoreboard .row.g-4 {
  --bs-gutter-x: .9rem;
  --bs-gutter-y: .9rem;
}

#impact-main #impact-scoreboard .a-impactAdvancedToggle {
  margin-top: .7rem;
}

.impact-page .a-impactAdvancedToggle {
  margin-top: 1rem;
  border: 1px solid var(--impact-color-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.04);
}

.impact-page .a-impactAdvancedToggle > summary {
  list-style: none;
  cursor: pointer;
  padding: .85rem 1rem;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
}

.impact-page .a-impactAdvancedToggle > summary::-webkit-details-marker {
  display: none;
}

.impact-page .a-impactAdvancedToggle__title {
  font-family: var(--a-font-head);
  font-weight: 900;
  color: var(--impact-color-primary);
}

.impact-page .a-impactAdvancedToggle__meta {
  font-size: .86rem;
  color: var(--impact-color-muted);
  font-weight: 700;
}

.impact-page .a-impactAdvancedToggle .a-impactFilterBarWrap {
  margin-top: 0;
  padding: 0 .85rem .85rem;
}

@media (max-width: 991.98px) {
  .impact-page {
    --impact-section-padding: clamp(4rem, 7vw, 5.5rem);
  }

  .impact-page #impact-hero .a-heroV3__title {
    font-size: clamp(1.75rem, 8vw, 2.5rem) !important;
  }

  #impact-main #impact-hero .a-heroV3__title {
    font-size: clamp(1.75rem, 8vw, 2.5rem) !important;
  }
}
.a-mapLegend__pill{
  font-size: 12px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.16);
  color: rgba(11,44,72,.82);
}

/* ============================================================================
   Responsive + Reduced motion
============================================================================ */
@media (max-width: 768px){
  #impact .icon-track{ --icon-size: 28px; }
  #impact .svg-gauge{ width: 150px; height: 150px; }
}

@media (prefers-reduced-motion: reduce){
  #impact .icon-track svg,
  #impact .lungs .mask-rect,
  #impact .clock .clock-fill,
  #impact .clock .clock-hand,
  #impact .clock line{
    transition: none !important;
    animation: none !important;
  }
  .a-kpiCard, .a-panel, .a-reportCard, .a-pillarCard{
    transition: none !important;
  }
}

/* ============================================================================
   Scroll reveal (cards/panels) — drop-in
   Add at END of impact.css
============================================================================ */
[data-animate="card"]{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

[data-animate="card"].is-inview{
  opacity: 1;
  transform: translateY(0);
}

/* Slight stagger when desired (optional) */
[data-animate="card"][data-delay]{
  transition-delay: var(--delay, 0ms);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  [data-animate="card"]{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =============================================================================
   SCOREBOARD PREMIUM — reveal + depth + chart polish (DROP-IN)
   Put at END of impact.css
============================================================================= */

#impact-scoreboard{
  position: relative;
  overflow: hidden;
}

/* Soft background glow */
#impact-scoreboard::before{
  content:"";
  position:absolute;
  inset:-30% -20%;
  background:
    radial-gradient(circle at 18% 20%, rgba(23,92,221,.16), transparent 55%),
    radial-gradient(circle at 78% 24%, rgba(32,187,165,.14), transparent 58%),
    radial-gradient(circle at 55% 88%, rgba(212,169,54,.10), transparent 55%);
  filter: blur(24px);
  opacity: .95;
  pointer-events:none;
}

/* Premium section header */
.a-scoreboardHead{
  position: relative;
  margin-bottom: 1.25rem;
}
.a-scoreboardHead__kicker{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  padding: .28rem .65rem;
  border-radius: 999px;
  background: rgba(11,44,72,.06);
  border: 1px solid rgba(11,44,72,.10);
  font-weight: 900;
  color: rgba(11,44,72,.78);
  font-size: .82rem;
}
.a-scoreboardHead__title{
  margin-top: .6rem;
}
.a-scoreboardHead__sub{
  max-width: 68ch;
  margin: .45rem auto 0;
  color: rgba(17,24,39,.66);
  font-weight: 750;
  line-height: 1.4;
}

/* Reveal choreography */
[data-reveal]{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .75s ease, transform .75s ease;
  will-change: opacity, transform;
}
[data-reveal].is-inview{
  opacity: 1;
  transform: translateY(0);
}
[data-reveal][data-reveal-delay]{
  transition-delay: var(--reveal-delay, 0ms);
}

/* Chart frame polish */
.a-chartFrame{
  position: relative;
  border-radius: 16px;
  overflow: hidden;
}
.a-chartShimmer{
  position:absolute;
  inset:0;
  background: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.28) 35%,
    rgba(255,255,255,0) 70%);
  transform: translateX(-120%);
  animation: aShimmer 1.6s ease infinite;
  pointer-events:none;
  opacity: .55;
}
@keyframes aShimmer{
  to{ transform: translateX(120%); }
}
.a-chartFrame.is-ready .a-chartShimmer{ display:none; }

/* Axis title look (Chart.js uses canvas—this is just spacing harmony) */
.a-panel__titleRow{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.75rem;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
  .a-chartShimmer{ display:none !important; animation:none !important; }
}

/* ============================================================================
   Premium micro-interactions (subtle, classic)
   Append at END of impact.css
============================================================================ */
.a-kpiCard, .a-panel, .a-mapPanel, .a-pillarCard, .a-reportCard, .a-miniEvidence{
  backface-visibility: hidden;
  transform: translateZ(0);
}

.a-kpiCard:hover .a-kpiIcon,
.a-pillarCard:hover .a-pillarIcon,
.a-reportCard:hover .a-reportIcon{
  transform: translateY(-1px);
  transition: transform .22s ease;
}

.a-select:focus,
.a-field__control:focus,
.a-btnSoft:focus{
  outline: none;
  box-shadow: 0 0 0 4px rgba(23,92,221,.12);
  border-color: rgba(23,92,221,.28);
}

/* ==========================================================================
   IMPACT PRE-PRODUCTION SYSTEM (scoped)
   Aligns with site style while keeping hierarchy maintainable.
========================================================================== */
#impact-main.impact-page{
  --ip-space-1: .5rem;
  --ip-space-2: 1rem;
  --ip-space-3: 1.5rem;
  --ip-space-4: 2rem;
  --ip-space-5: 3rem;
  --ip-space-6: 4rem;

  --ip-fs-sm: .875rem;
  --ip-fs-md: 1.125rem;
  --ip-fs-lg: 1.5rem;
  --ip-fs-xl: clamp(2.1rem, 4.2vw, 3.2rem);

  --ip-text: #0b2c48;
  --ip-muted: #5b6b7c;
  --ip-light: #f7fafc;
  --ip-border: rgba(11,44,72,.12);
  --ip-accent: #1d4ed8;
}

#impact-main.impact-page .container--narrow{
  width: min(920px, 92%);
  margin-inline: auto;
}

#impact-main.impact-page .a-impactSection{
  padding: var(--ip-space-6) 0;
}

#impact-main.impact-page .a-impactSection--light{
  background: var(--ip-light);
}

#impact-main.impact-page .section-header{
  margin-bottom: var(--ip-space-4);
}

#impact-main.impact-page .section-header .section-heading{
  font-size: clamp(1.9rem, 3.1vw, 3rem);
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--ip-text);
}

#impact-main.impact-page .section-header .lead{
  font-size: var(--ip-fs-md);
  color: var(--ip-muted);
  max-width: 60rem;
  margin-inline: auto;
}

#impact-main.impact-page .a-kpiCard,
#impact-main.impact-page .a-panel,
#impact-main.impact-page .a-reportCard,
#impact-main.impact-page .a-pillarCard,
#impact-main.impact-page .a-miniEvidence,
#impact-main.impact-page .a-foresightCard{
  border-radius: 16px;
  border: 1px solid var(--ip-border);
}

#impact-main.impact-page .a-pageNav{
  border: 1px solid var(--ip-border);
  background: rgba(255,255,255,.94);
}

#impact-main.impact-page .a-chartCard{
  padding: .7rem .8rem .6rem;
}

#impact-main.impact-page .a-panel__note--detached{
  margin-top: 1.35rem;
}

@media (max-width: 991.98px){
  #impact-main.impact-page .a-impactSection{
    padding: var(--ip-space-5) 0;
  }
}

/* Section rhythm for evidence cards */
#impact-main.impact-page #impact-evidence .a-panel{
  margin-bottom: 30px;
}

/* Data spine: connects analytical sections into one narrative flow */
#impact-main.impact-page .a-impactSpine{
  position: relative;
  --ip-spine-left: clamp(8px, 1.8vw, 22px);
  --ip-node-size: 10px;
}

#impact-main.impact-page .a-impactSpine::before{
  content: "";
  position: absolute;
  left: var(--ip-spine-left);
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(to bottom, #1d4ed8 0%, #14b8a6 45%, #22c55e 100%);
  opacity: .95;
  box-shadow: 0 0 0 1px rgba(255,255,255,.7), 0 0 14px rgba(29,78,216,.16);
  pointer-events: none;
  z-index: 2;
}

#impact-main.impact-page .a-impactSpine > .a-impactSection{
  position: relative;
  z-index: 1;
}

#impact-main.impact-page .a-impactSpine > .a-impactSection::before{
  content: "";
  position: absolute;
  left: calc(var(--ip-spine-left) - ((var(--ip-node-size) - 4px) / 2));
  top: 44px;
  width: var(--ip-node-size);
  height: var(--ip-node-size);
  border-radius: 50%;
  background: #1d4ed8;
  box-shadow: 0 0 0 4px rgba(255,255,255,.92), 0 0 0 6px rgba(29,78,216,.18);
  z-index: 2;
}

#impact-main.impact-page .a-impactSpine > .a-impactSection::after{
  content: "";
  position: absolute;
  left: calc(var(--ip-spine-left) + 4px);
  top: calc(44px + (var(--ip-node-size) / 2) - 1px);
  width: clamp(14px, 2vw, 24px);
  height: 2px;
  border-radius: 99px;
  background: linear-gradient(90deg, rgba(29,78,216,.55), rgba(29,78,216,0));
  z-index: 2;
}

#impact-main.impact-page .a-impactSpine > .a-impactSection:nth-child(2)::before{ background:#14b8a6; box-shadow: 0 0 0 4px rgba(255,255,255,.92), 0 0 0 6px rgba(20,184,166,.18); }
#impact-main.impact-page .a-impactSpine > .a-impactSection:nth-child(3)::before{ background:#22c55e; box-shadow: 0 0 0 4px rgba(255,255,255,.92), 0 0 0 6px rgba(34,197,94,.18); }
#impact-main.impact-page .a-impactSpine > .a-impactSection:nth-child(4)::before{ background:#8b5cf6; box-shadow: 0 0 0 4px rgba(255,255,255,.92), 0 0 0 6px rgba(139,92,246,.18); }
#impact-main.impact-page .a-impactSpine > .a-impactSection:nth-child(5)::before{ background:#f59e0b; box-shadow: 0 0 0 4px rgba(255,255,255,.92), 0 0 0 6px rgba(245,158,11,.18); }

#impact-main.impact-page .a-impactSpine > .a-impactSection > .container{
  position: relative;
  z-index: 3;
}

/* Key Insight layer */
#impact-main.impact-page .a-impactSection--insight{
  background: linear-gradient(180deg, #f8fbff, #eef4fb);
  padding: 56px 0;
}

#impact-main.impact-page .a-insightCard{
  max-width: 850px;
  background: #fff;
  border: 1px solid var(--ip-border);
  border-radius: 16px;
  padding: 36px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

#impact-main.impact-page #impact-evidence .a-insightCard{
  max-width: none;
  height: 100%;
  padding: 28px;
}

#impact-main.impact-page .a-insightCard__kicker{
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #3c7be3;
  margin-bottom: 10px;
  font-weight: 700;
}

#impact-main.impact-page .a-insightCard__title{
  font-weight: 700;
  margin-bottom: 14px;
  color: var(--ip-text);
}

#impact-main.impact-page .a-insightCard__text{
  margin: 0;
  color: var(--ip-muted);
}

#impact-main.impact-page .a-insightCard__signals{
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 24px;
  flex-wrap: wrap;
}

#impact-main.impact-page #impact-evidence .a-insightCard__signals{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 992px){
  #impact-main.impact-page #impact-evidence .a-insightCard__signals{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

#impact-main.impact-page .a-insightSignal__value{
  font-size: 22px;
  font-weight: 700;
  display: block;
  color: var(--ip-text);
}

#impact-main.impact-page .a-insightSignal__label{
  font-size: 13px;
  color: #666;
}

#impact-main.impact-page #impact-evidence .a-insightSignal.a-kpiCard{
  padding: .7rem .85rem .75rem;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0,0,0,.1);
}

#impact-main.impact-page #impact-evidence .a-insightSignal.a-kpiCard::before{
  height: 3px;
}

#impact-main.impact-page #impact-evidence .a-insightSignal .a-insightSignal__value{
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  line-height: 1.1;
  color: #fff;
}

#impact-main.impact-page #impact-evidence .a-insightSignal .a-insightSignal__label{
  margin-top: .28rem;
  font-size: .78rem;
  line-height: 1.3;
  color: #fff;
}

/* Mild stacked-card treatment for insight signal cards */
#impact-main.impact-page #impact-evidence .a-insightSignal{
  transition: transform .24s ease, box-shadow .24s ease, filter .24s ease;
}

@media (min-width: 992px){
  #impact-main.impact-page #impact-evidence .a-insightSignal:nth-child(1){ transform: translateY(4px) rotate(-.5deg); }
  #impact-main.impact-page #impact-evidence .a-insightSignal:nth-child(2){ transform: translateY(0) rotate(.2deg); }
  #impact-main.impact-page #impact-evidence .a-insightSignal:nth-child(3){ transform: translateY(4px) rotate(.5deg); }
  #impact-main.impact-page #impact-evidence .a-insightSignal:hover{
    transform: translateY(-4px) rotate(0);
    filter: saturate(1.05);
    box-shadow: 0 16px 28px rgba(0,0,0,.18);
  }
}

/* Additional card hover polish for Impact page */
#impact-main.impact-page .a-kpiCard,
#impact-main.impact-page .a-panel,
#impact-main.impact-page .a-mapPanel,
#impact-main.impact-page .a-reportCard,
#impact-main.impact-page .a-pillarCard{
  transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease, filter .26s ease;
}

#impact-main.impact-page .a-kpiCard:hover,
#impact-main.impact-page .a-panel:hover,
#impact-main.impact-page .a-mapPanel:hover,
#impact-main.impact-page .a-reportCard:hover,
#impact-main.impact-page .a-pillarCard:hover{
  transform: translateY(-5px);
  box-shadow: 0 18px 34px rgba(0,0,0,.14);
  border-color: rgba(23,92,221,.22);
}

@media (prefers-reduced-motion: reduce){
  #impact-main.impact-page .a-kpiCard,
  #impact-main.impact-page .a-panel,
  #impact-main.impact-page .a-mapPanel,
  #impact-main.impact-page .a-reportCard,
  #impact-main.impact-page .a-pillarCard,
  #impact-main.impact-page #impact-evidence .a-insightSignal{
    transition: none !important;
  }
  #impact-main.impact-page #impact-evidence .a-insightSignal{
    transform: none !important;
  }
}

@media (max-width: 991.98px){
  #impact-main.impact-page .a-impactSpine::before{
    display: none;
  }
  #impact-main.impact-page .a-impactSpine > .a-impactSection::before,
  #impact-main.impact-page .a-impactSpine > .a-impactSection::after{
    display: none;
  }
}

