/* ============================================================
   affiliations.css — Affiliations page
   ============================================================ */

.affil-page-hero .lead{max-width:64ch}

/* ---------------- NETWORK MAP ---------------- */
.map-wrap{position:relative;padding:clamp(1rem,2.5vw,2rem);overflow:hidden}
.net-map{width:100%;height:auto;display:block;overflow:visible}
.map-grid line{stroke:var(--line-green);stroke-width:1;opacity:.5}
.map-arcs .arc{stroke:var(--line-green);stroke-width:1.4;transition:stroke .35s,stroke-width .35s}
.map-pulses .pulse{stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-dasharray:5 60;opacity:.85;filter:drop-shadow(0 0 4px var(--glow))}

.node-core{fill:var(--green)}
.node-halo{fill:rgba(141,198,63,.1);stroke:var(--green);stroke-width:1.3;opacity:.6;transition:.35s var(--ease)}
.node-name{font-family:var(--mono);font-size:14px;fill:#c2ccda;letter-spacing:.03em;transition:fill .3s}
.node-role{font-family:var(--mono);font-size:11px;fill:var(--grey-2);letter-spacing:.06em}

/* hub */
.hub-ring{fill:rgba(141,198,63,.08);stroke:var(--green);stroke-width:1.6;transform-origin:470px 360px;animation:hubpulse 3s ease-in-out infinite}
@keyframes hubpulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.18);opacity:.5}}
.hub-name{font-size:16px;fill:#fff;font-weight:500}
.map-hub .node-core{filter:drop-shadow(0 0 8px var(--green))}

/* interactive partner nodes */
.map-node{cursor:default;outline:none}
.map-node[tabindex]:hover .node-halo,
.map-node[tabindex]:focus-visible .node-halo{opacity:1;r:18;fill:rgba(141,198,63,.2)}
.map-node[tabindex]:hover .node-name,
.map-node[tabindex]:focus-visible .node-name{fill:var(--green)}
.map-node[tabindex]:hover .node-core,
.map-node[tabindex]:focus-visible .node-core{filter:drop-shadow(0 0 8px var(--green))}

.map-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(1.8rem,5vw,4rem);margin-top:clamp(2.2rem,4vw,3rem);text-align:center}

@media (max-width:560px){
  .node-name{font-size:18px}
  .hub-name{font-size:20px}
  .node-role{font-size:14px}
}

/* ---------------- PARTNER COUNTRIES ---------------- */
.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.partner-card{
  position:relative;padding:2rem 1.8rem;border-radius:var(--r-lg);
  background:var(--panel-2);border:1px solid var(--line);overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s var(--ease);
}
.partner-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(141,198,63,.1),transparent 60%);opacity:0;transition:opacity .4s}
.partner-card:hover{transform:translateY(-6px);border-color:var(--line-green)}
.partner-card:hover::before{opacity:1}
.partner-card__top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.3rem}
.partner-card__flag{
  font-family:var(--head);font-weight:700;font-size:1rem;letter-spacing:.05em;color:var(--ink);
  width:46px;height:34px;border-radius:8px;display:grid;place-items:center;background:var(--green);
}
.partner-card__cont{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2)}
.partner-card h3{position:relative;z-index:1;font-size:1.25rem;margin-bottom:.55rem}
.partner-card p{position:relative;z-index:1;font-size:.92rem;margin:0}
.partner-card--cta{background:linear-gradient(150deg,rgba(141,198,63,.1),rgba(141,198,63,.02));border-color:var(--line-green);display:flex;flex-direction:column;justify-content:center}
.partner-card--cta h3{font-size:1.3rem;margin-bottom:.7rem}
.partner-card--cta .arrow-link{margin-top:1.2rem}

@media (max-width:880px){.partner-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.partner-grid{grid-template-columns:1fr}}

/* ---------------- BENEFITS ---------------- */
.benefits-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2.5rem,5vw,5rem);align-items:center}
.benefits-list{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.benefit{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.benefit__ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgba(141,198,63,.1);border:1px solid var(--line-green);color:var(--green);flex-shrink:0}
.benefit__ico svg{width:22px;height:22px}
.benefit h3{font-size:1.05rem;margin-bottom:.3rem}
.benefit p{font-size:.9rem;margin:0}

@media (max-width:880px){.benefits-grid{grid-template-columns:1fr}}
@media (max-width:480px){.benefits-list{grid-template-columns:1fr}}

/* ---------------- OUTCOMES ---------------- */
.outcomes{position:relative;overflow:hidden}
.outcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.outcome-card{
  position:relative;padding:2.2rem 1.9rem;border-radius:var(--r-lg);
  background:var(--panel-2);border:1px solid var(--line);
  transition:transform .4s var(--ease),border-color .4s var(--ease);
}
.outcome-card:hover{transform:translateY(-5px);border-color:var(--line-green)}
.quote-mark{width:34px;height:34px;color:var(--green);opacity:.6;margin-bottom:1rem}
.outcome-card p{font-size:1rem;color:#c8d2e0;margin-bottom:1.4rem}
.outcome-tag{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}

@media (max-width:880px){.outcome-grid{grid-template-columns:1fr}}
