/* Shared partner network with separate Home and inner-page compositions. */
.partner-section{background:#fff}
.partner-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:end;margin-bottom:36px}
.partner-heading h2{max-width:680px;font-size:clamp(38px,3.5vw,52px);line-height:1.12;text-wrap:balance}
.partner-heading-aside{max-width:490px;justify-self:end}
.partner-heading-aside>p{font-size:16px;line-height:1.7;color:#62626e}
.partner-heading-aside .button{margin-top:22px;min-height:46px;padding:12px 19px;font-size:13px}
.partner-network{display:grid;grid-template-columns:.88fr 1.12fr;gap:20px;align-items:stretch}
.partner-network>*{min-width:0}
.ecosystem-canvas{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;min-height:510px;padding:27px 24px 20px;background:var(--deep);color:#fff;border:1px solid #41414c;overflow:hidden}
.ecosystem-canvas:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#7474800b 1px,transparent 1px),linear-gradient(90deg,#7474800b 1px,transparent 1px),radial-gradient(ellipse at 50% 52%,#ffe6000b,transparent 61%);background-size:32px 32px,32px 32px,100% 100%;pointer-events:none}
.ecosystem-canvas:after{content:'';position:absolute;left:0;top:0;width:64px;height:3px;background:var(--yellow)}
.ecosystem-canvas-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-inline:6px}
.ecosystem-canvas-heading>span{font-size:10px;font-weight:400;letter-spacing:.14em;line-height:1.5;text-transform:uppercase;color:#c4c4cd}
.ecosystem-canvas-heading>.icon{width:24px;height:24px;color:#747480}
.ecosystem-chart{position:relative;aspect-ratio:1;width:100%;max-width:500px;margin:auto;flex-shrink:0}
.ecosystem-connectors{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#747480;stroke-width:1;pointer-events:none}
.network-orbit{stroke:#74748055;stroke-dasharray:3 8}
.network-inner-orbit{stroke:#74748025}
.network-connector{stroke:#74748099;transition:stroke .3s,stroke-width .3s}
.ecosystem-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:164px;height:164px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:var(--yellow);color:var(--deep);border-radius:50%;box-shadow:0 0 0 10px #ffe60008;z-index:1}
.ecosystem-hub:before{content:'';position:absolute;inset:-12px;border:1px solid #ffe60044;border-radius:50%;pointer-events:none}
.ecosystem-hub>.icon{width:30px;height:30px;stroke-width:1.4}
.ecosystem-hub strong{max-width:134px;text-align:center;font-size:18px;line-height:1.23;font-weight:400;letter-spacing:-.025em}
.network-node{position:absolute;display:flex;align-items:center;flex-direction:column;gap:10px;min-width:115px;min-height:96px;padding:4px;transform:translate(-50%,-50%);z-index:2;color:#eaeaf2;text-align:center;font-size:13px;line-height:1.4;font-weight:400;border-radius:3px}
.network-node.government{left:20%;top:21%}
.network-node.industry{left:80%;top:21%}
.network-node.academia{left:20%;top:79%}
.network-node.civil-society{left:80%;top:79%}
.network-node-icon{width:56px;height:56px;display:grid;place-items:center;border:1px solid #74748080;border-radius:50%;background:var(--charcoal);color:var(--yellow);transition:background .3s,color .3s,border-color .3s,box-shadow .3s}
.network-node-icon>.icon{width:26px;height:26px}
.network-node:focus-visible{outline-color:var(--yellow);outline-offset:4px}
.partner-network .roles-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.partner-network .partner-role{position:relative;min-height:247px;padding:29px 28px 25px;border:1px solid #41414c;background:var(--charcoal);box-shadow:none;overflow:hidden;isolation:isolate}
.partner-network .partner-role:before{content:'';position:absolute;left:0;top:28px;width:3px;height:0;background:var(--yellow);transition:height .3s var(--ease);z-index:1}
.partner-network .partner-role:after{content:'';position:absolute;right:-26px;top:-26px;width:130px;height:130px;border:1px solid #74748012;border-radius:50%;z-index:-1;pointer-events:none;transition:border-color .3s}
.partner-network .partner-role .card-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:22px;border:1px solid #74748066;background:#1a1a242e}
.partner-network .partner-role .card-icon>.icon{width:26px;height:26px}
.partner-network .partner-role h3{font-size:22px;line-height:1.25;max-width:300px;letter-spacing:-.02em;font-weight:400}
.partner-network .partner-role p{font-size:14px;line-height:1.75;color:#d6d6de;margin-top:15px}
.partner-network .partner-role .card-arrow{top:32px;right:25px;width:23px;height:23px;color:#a2a2ad;transform:rotate(-35deg)}
.partner-network .partner-role:focus-visible{outline-color:var(--yellow);outline-offset:4px}
.partner-network[data-active-partner=government] [data-partner=government],
.partner-network[data-active-partner=industry] [data-partner=industry],
.partner-network[data-active-partner=academia] [data-partner=academia],
.partner-network[data-active-partner=civil-society] [data-partner=civil-society]{--partner-selected:1}
.partner-network[data-active-partner=government] [data-edge=government],
.partner-network[data-active-partner=industry] [data-edge=industry],
.partner-network[data-active-partner=academia] [data-edge=academia],
.partner-network[data-active-partner=civil-society] [data-edge=civil-society]{stroke:var(--yellow);stroke-width:2}
.partner-network .network-node{color:color-mix(in srgb,var(--yellow) calc(var(--partner-selected,0)*100%),#eaeaf2)}
.partner-network .network-node-icon{background:color-mix(in srgb,var(--yellow) calc(var(--partner-selected,0)*100%),var(--charcoal));color:color-mix(in srgb,var(--deep) calc(var(--partner-selected,0)*100%),var(--yellow));border-color:color-mix(in srgb,var(--yellow) calc(var(--partner-selected,0)*100%),#74748080);box-shadow:0 0 0 calc(var(--partner-selected,0)*7px) #ffe6000c}
.partner-network .partner-role{border-color:color-mix(in srgb,var(--yellow) calc(var(--partner-selected,0)*75%),#41414c)}
.partner-network .partner-role:before{height:calc(var(--partner-selected,0)*42px)}
.partner-network .partner-role .card-arrow{color:color-mix(in srgb,var(--yellow) calc(var(--partner-selected,0)*100%),#a2a2ad)}
@media(hover:hover) and (pointer:fine){
  .partner-network .partner-role:hover{background:#292933;border-color:var(--yellow)}
  .partner-network .partner-role:hover:after{border-color:#ffe60030}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .partner-network .partner-role:hover{transform:translateY(-4px);box-shadow:0 12px 25px #1a1a2414}
  .partner-network .partner-role:hover .card-icon{transform:translateY(-2px);background:#1a1a2460}
  .partner-network .partner-role:hover .card-arrow{transform:translateX(3px) rotate(0)}
}
@media(max-width:1200px){
  .partner-heading{gap:40px}
  .partner-heading h2{font-size:44px}
  .partner-heading-aside>p{font-size:15px}
  .partner-network{grid-template-columns:.85fr 1.15fr;gap:16px}
  .ecosystem-canvas{padding:25px 15px 18px;min-height:490px}
  .ecosystem-hub{width:142px;height:142px;gap:8px}
  .ecosystem-hub strong{max-width:117px;font-size:16px}
  .ecosystem-hub>.icon{width:27px;height:27px}
  .network-node{min-width:100px;font-size:12px}
  .network-node-icon{width:50px;height:50px}
  .partner-network .partner-role{padding:25px 22px;min-height:246px}
  .partner-network .partner-role h3{font-size:20px}
  .partner-network .partner-role p{font-size:13px;line-height:1.7}
  .partner-network .partner-role .card-arrow{top:28px;right:20px}
}
@media(max-width:1000px){
  .partner-heading{grid-template-columns:1fr;gap:23px}
  .partner-heading h2{max-width:650px}
  .partner-heading-aside{display:flex;align-items:center;gap:28px;justify-self:stretch;max-width:none}
  .partner-heading-aside>p{max-width:620px;flex:1}
  .partner-heading-aside .button{flex-shrink:0;margin:0}
  .partner-network{grid-template-columns:1fr}
  .ecosystem-canvas{min-height:0;padding:25px 28px 18px}
  .ecosystem-chart{width:430px;max-width:100%;margin:0 auto}
  .ecosystem-hub{width:164px;height:164px}
  .ecosystem-hub strong{max-width:134px;font-size:18px}
  .network-node{font-size:13px}
  .network-node-icon{width:56px;height:56px}
  .partner-network .partner-role{min-height:245px;padding:28px}
  .partner-network .partner-role h3{font-size:23px}
  .partner-network .partner-role p{font-size:15px}
}
@media(max-width:650px){
  .partner-heading{gap:20px;margin-bottom:27px}
  .partner-heading h2{font-size:36px;line-height:1.13;letter-spacing:-1px}
  .partner-heading-aside{display:block}
  .partner-heading-aside>p{font-size:15px;line-height:1.75}
  .partner-heading-aside .button{margin-top:20px;min-height:46px}
  .partner-network{gap:16px}
  .ecosystem-canvas{padding:22px 12px 12px}
  .ecosystem-canvas-heading{padding-inline:9px}
  .ecosystem-canvas-heading>span{font-size:9px;letter-spacing:.12em}
  .ecosystem-canvas-heading>.icon{width:22px;height:22px}
  .ecosystem-chart{width:390px;margin-top:8px}
  .ecosystem-hub{width:136px;height:136px;gap:8px;box-shadow:0 0 0 7px #ffe60008}
  .ecosystem-hub:before{inset:-9px}
  .ecosystem-hub strong{max-width:111px;font-size:16px;line-height:1.24}
  .ecosystem-hub>.icon{width:25px;height:25px}
  .network-node{min-width:100px;min-height:86px;font-size:12px;gap:8px}
  .network-node-icon{width:48px;height:48px}
  .network-node-icon>.icon{width:23px;height:23px}
  .partner-network .roles-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .partner-network .partner-role{min-height:0;padding:25px 24px 25px 85px}
  .partner-network .partner-role .card-icon{position:absolute;left:22px;top:25px;width:43px;height:43px;margin:0}
  .partner-network .partner-role h3{font-size:21px;line-height:1.3;padding-right:20px;max-width:none}
  .partner-network .partner-role p{font-size:14px;line-height:1.75;margin-top:12px}
  .partner-network .partner-role .card-arrow{top:28px;right:17px;width:18px;height:18px}
  .partner-network .partner-role:before{top:25px}
}
@media(max-width:365px){
  .partner-heading h2{font-size:33px}
  .ecosystem-canvas{padding:20px 7px 9px}
  .ecosystem-canvas-heading{padding-inline:10px}
  .ecosystem-canvas-heading>span{font-size:8px}
  .ecosystem-hub{width:114px;height:114px;gap:7px}
  .ecosystem-hub strong{max-width:94px;font-size:14px}
  .ecosystem-hub>.icon{width:23px;height:23px}
  .network-node{min-width:88px;font-size:11px;gap:7px;min-height:78px}
  .network-node-icon{width:43px;height:43px}
  .network-node-icon>.icon{width:22px;height:22px}
  .partner-network .partner-role{padding:23px 20px 23px 74px}
  .partner-network .partner-role .card-icon{left:18px;top:24px;width:38px;height:38px}
  .partner-network .partner-role .card-icon>.icon{width:23px;height:23px}
  .partner-network .partner-role h3{font-size:19px;padding-right:10px}
  .partner-network .partner-role .card-arrow{right:13px;top:26px;width:16px;height:16px}
}
@media(prefers-reduced-motion:reduce){
  .partner-network *,.partner-network *:before,.partner-network *:after{transition:none!important;animation:none!important}
  .partner-network .partner-role:hover,.partner-network .partner-role:hover .card-icon,.partner-network .partner-role:hover .card-arrow{transform:none;box-shadow:none}
}

/* Inner-page editorial feature. */
.partner-editorial-section{padding-block:80px}
.partner-network.partner-editorial{grid-template-columns:.9fr 1.1fr;gap:0;border:1px solid var(--line);background:var(--pale);overflow:hidden}
.partner-editorial .ecosystem-canvas{border:0;min-height:0;padding:28px 28px 22px}
.partner-editorial .ecosystem-chart{margin:8px auto 0}
.partner-editorial-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:48px 52px;background:var(--pale);min-width:0}
.partner-editorial-copy .eyebrow{margin-bottom:24px;font-size:10px;letter-spacing:.15em}
.partner-editorial-copy h2{font-size:clamp(31px,2.7vw,39px);line-height:1.28;letter-spacing:-.03em;max-width:620px;text-wrap:pretty}
.partner-capabilities{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px;padding-top:25px;border-top:1px solid #dcdce4;width:100%}
.partner-capabilities>span{display:inline-flex;align-items:center;gap:8px;min-height:39px;padding:8px 11px;background:#fff;border:1px solid #dcdce4;font-size:12px;line-height:1.4;font-weight:400}
.partner-capabilities .icon{width:20px;height:20px;color:var(--charcoal)}
.partner-editorial-copy>.button{margin-top:28px;font-size:13px;min-height:47px;padding:13px 18px}
.partner-roles-section .role-card:target{border-color:var(--yellow);box-shadow:inset 3px 0 0 var(--yellow)}
@media(max-width:1200px){
  .partner-editorial-section{padding-block:65px}
  .partner-editorial .ecosystem-canvas{padding:25px 19px 20px}
  .partner-editorial-copy{padding:35px 36px}
  .partner-editorial-copy h2{font-size:34px}
  .partner-capabilities{gap:8px;margin-top:25px;padding-top:23px}
  .partner-capabilities>span{font-size:11px;padding:8px 9px;gap:6px}
}
@media(max-width:1000px){
  .partner-network.partner-editorial{grid-template-columns:minmax(0,1fr)}
  .partner-editorial .ecosystem-canvas{padding:25px 28px 20px}
  .partner-editorial .ecosystem-chart{margin:0 auto}
  .partner-editorial-copy{padding:38px 40px}
  .partner-editorial-copy h2{max-width:680px;font-size:34px}
  .partner-capabilities{max-width:680px}
  .partner-capabilities>span{font-size:12px;padding:9px 12px}
}
@media(max-width:650px){
  .partner-editorial-section{padding-block:42px}
  .partner-editorial .ecosystem-canvas{padding:22px 12px 12px}
  .partner-editorial .ecosystem-chart{margin-top:8px}
  .partner-editorial-copy{padding:30px 26px 33px}
  .partner-editorial-copy .eyebrow{font-size:9px;line-height:1.6;letter-spacing:.11em;margin-bottom:19px}
  .partner-editorial-copy h2{font-size:29px;line-height:1.3;letter-spacing:-.025em}
  .partner-capabilities{margin-top:23px;padding-top:20px;gap:8px}
  .partner-capabilities>span{font-size:11px;padding:8px 10px;gap:7px}
  .partner-capabilities .icon{width:18px;height:18px}
  .partner-editorial-copy>.button{margin-top:24px;font-size:12px;gap:15px}
}
@media(max-width:365px){
  .partner-editorial .ecosystem-canvas{padding:20px 7px 9px}
  .partner-editorial-copy{padding:28px 22px 30px}
  .partner-editorial-copy h2{font-size:27px}
}

.network-rotation{margin-left:auto;background:transparent;border:1px solid #74748080;padding:7px 10px;color:#eaeaf2;font:inherit;font-size:11px;line-height:1.3;cursor:pointer;min-height:34px;white-space:nowrap}
.network-rotation:hover{color:#ffe600;border-color:#ffe600}
.network-rotation:focus-visible{outline:2px solid #ffe600;outline-offset:4px}
.network-rotation[hidden]{display:none}
.ecosystem-canvas-heading:has(.network-rotation)>.icon{display:none}
