.partners-concept { overflow: hidden; background: var(--paper); }
.partners-concept p { color: var(--ink-soft); }
.partners-concept h1, .partners-concept h2, .partners-concept h3 { color: inherit; }
.partners-concept .button-dark { background: var(--forest); color: #fff; }
.partners-concept .button-dark:hover { background: var(--forest-deep); color: #fff; }

.ptr-hero { min-height: min(930px, 100vh); padding: 150px 0 64px; background: var(--forest-deep); color: white; }
.ptr-hero__grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(520px, 1.12fr); gap: clamp(54px, 8vw, 120px); align-items: center; min-height: 700px; }
.ptr-hero__copy { padding-block: 30px; }
.ptr-hero h1 { max-width: 8.5ch; color: white; font-size: clamp(60px, 7.4vw, 108px); }
.ptr-hero h1 em { color: var(--green-bright); font-style: normal; }
.ptr-hero__copy > p:not(.eyebrow) { max-width: 55ch; margin: 30px 0 34px; color: rgba(255,255,255,.72); font-size: clamp(18px, 1.45vw, 21px); }
.ptr-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ptr-hero__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 52px 0 0; padding: 28px 0 0; border-top: 1px solid rgba(255,255,255,.17); }
.ptr-hero__facts div { min-width: 0; }
.ptr-hero__facts dt { margin: 0 0 6px; color: white; font-size: 23px; font-weight: 880; line-height: 1; letter-spacing: -.04em; }
.ptr-hero__facts dd { margin: 0; color: rgba(255,255,255,.54); font-size: 11px; line-height: 1.4; }
.ptr-hero__photo { position: relative; height: min(720px, 76vh); margin: 0; overflow: hidden; border-radius: 180px 22px 22px 22px; background: #071a0f; box-shadow: 0 34px 90px rgba(0,0,0,.28); }
.ptr-hero__photo::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(5,20,11,.78)); }
.ptr-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% center; }
.ptr-hero__photo figcaption { position: absolute; z-index: 2; left: 28px; bottom: 24px; display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,.8); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.ptr-hero__photo figcaption span { width: 9px; height: 9px; border-radius: 50%; background: var(--green-bright); box-shadow: 0 0 0 6px rgba(159,231,109,.2); }

.ptr-paths { background: var(--paper); }
.ptr-paths__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.ptr-path { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ptr-path figure { position: relative; height: 310px; margin: 0; overflow: hidden; background: var(--forest-deep); }
.ptr-path figure::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(6,23,13,.78)); }
.ptr-path figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ptr-path--business figure img { object-position: 53% center; }
.ptr-path--community figure img { object-position: 50% 28%; }
.ptr-path--programme figure img { object-position: center; }
.ptr-path figcaption { position: absolute; z-index: 2; left: 24px; bottom: 18px; color: white; font-size: 10px; font-weight: 820; letter-spacing: .09em; text-transform: uppercase; }
.ptr-path > div { min-height: 380px; padding: clamp(26px, 4vw, 46px); }
.ptr-path > div > span { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 64px; border-radius: 50%; background: var(--green); font-size: 11px; font-weight: 880; }
.ptr-path h3 { max-width: 11ch; margin: 0 0 16px; font-size: clamp(25px, 2.3vw, 33px); line-height: 1.02; letter-spacing: -.035em; }
.ptr-path p { min-height: 72px; margin: 0 0 28px; font-size: 14px; }
.ptr-path a { display: inline-flex; align-items: center; gap: 8px; border-bottom: 1px solid currentColor; color: var(--ink); font-size: 12px; font-weight: 780; }
.ptr-path a b { color: #4f972c; font-size: 16px; transition: transform .2s ease; }
@media (hover: hover) { .ptr-path:hover figure img { transform: scale(1.035); } .ptr-path a:hover b { transform: translateX(4px); } }

.ptr-loop { background: var(--forest-deep); color: white; }
.ptr-loop__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(480px, 1.18fr); gap: clamp(70px, 10vw, 150px); align-items: start; }
.ptr-loop__intro { position: sticky; top: 130px; }
.ptr-loop__intro h2 { max-width: 11ch; color: white; }
.ptr-loop__intro h2 em { color: var(--green-bright); font-style: normal; }
.ptr-loop__intro > p:last-child { max-width: 50ch; margin: 28px 0 0; color: rgba(255,255,255,.6); font-size: 17px; }
.ptr-loop__steps { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.17); list-style: none; }
.ptr-loop__steps li { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 20px; min-height: 170px; padding: 30px 0; border-bottom: 1px solid rgba(255,255,255,.17); }
.ptr-loop__steps li::before { content: ''; position: absolute; left: 29px; top: 57px; bottom: -31px; width: 1px; background: rgba(159,231,109,.3); }
.ptr-loop__steps li:last-child::before { display: none; }
.ptr-loop__steps > li > span { position: relative; z-index: 2; display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(159,231,109,.5); border-radius: 50%; background: var(--forest-deep); color: var(--green-bright); font-size: 11px; font-weight: 850; }
.ptr-loop__steps strong { display: block; margin: 6px 0 9px; color: white; font-size: 26px; letter-spacing: -.02em; }
.ptr-loop__steps p { max-width: 46ch; margin: 0; color: rgba(255,255,255,.56); font-size: 14px; }

.ptr-network { background: var(--paper-deep); }
.ptr-network__heading { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(52px, 9vw, 130px); align-items: end; margin-bottom: 62px; }
.ptr-network__heading h2 { max-width: 14ch; }
.ptr-network__heading > p { max-width: 52ch; margin: 0; font-size: 17px; }
.ptr-network__grid { display: grid; grid-template-columns: 1.12fr .88fr; grid-template-rows: repeat(3, 290px); gap: 18px; }
.ptr-story { position: relative; min-width: 0; overflow: hidden; border-radius: 20px; color: white; box-shadow: 0 10px 30px rgba(18,34,23,.09); }
.ptr-story--chile { grid-row: span 3; }
.ptr-story img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.8,.2,1); }
.ptr-story--chile img { object-position: 66% center; }
.ptr-story--madagascar img { object-position: center 45%; }
.ptr-story--bosnia img { object-position: center 43%; }
.ptr-story__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,20,11,.03) 30%, rgba(5,20,11,.91) 100%); }
.ptr-story > div { position: absolute; z-index: 2; left: clamp(24px, 4vw, 48px); right: clamp(24px, 4vw, 48px); bottom: clamp(24px, 4vw, 42px); }
.ptr-story small, .ptr-story strong, .ptr-story > div > span { display: block; }
.ptr-story small { margin-bottom: 10px; color: var(--green-bright); font-size: 10px; font-weight: 830; letter-spacing: .1em; text-transform: uppercase; }
.ptr-story strong { max-width: 18ch; font-size: clamp(23px, 3vw, 40px); line-height: 1.06; letter-spacing: -.035em; }
.ptr-story > div > span { margin-top: 20px; color: rgba(255,255,255,.72); font-size: 11px; font-weight: 750; }
@media (hover: hover) { .ptr-story:hover img { transform: scale(1.04); } }

.ptr-proof { background: var(--green); }
.ptr-proof__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr); gap: clamp(70px, 10vw, 150px); }
.ptr-proof__lead .eyebrow { color: var(--ink); }
.ptr-proof__lead > strong { display: block; margin: 18px 0 28px; font-size: clamp(100px, 14vw, 190px); font-weight: 920; line-height: .7; letter-spacing: -.09em; }
.ptr-proof__lead h2 { max-width: 10ch; font-size: clamp(34px, 4.2vw, 58px); }
.ptr-proof__lead > p:last-child { max-width: 44ch; margin: 24px 0 0; color: rgba(23,32,24,.72); font-size: 16px; }
.ptr-proof__quotes { border-top: 1px solid rgba(23,32,24,.25); }
.ptr-proof__quotes figure { margin: 0; padding: 30px 0; border-bottom: 1px solid rgba(23,32,24,.25); }
.ptr-proof__quotes blockquote { max-width: 33ch; margin: 0 0 18px; font-size: clamp(21px, 2.3vw, 31px); font-weight: 720; line-height: 1.25; letter-spacing: -.025em; }
.ptr-proof__quotes figcaption { color: rgba(23,32,24,.65); font-size: 10px; font-weight: 820; letter-spacing: .1em; text-transform: uppercase; }

.ptr-company { background: var(--paper); }
.ptr-company__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr); gap: clamp(60px, 9vw, 130px); align-items: center; }
.ptr-company__copy h2 { max-width: 11ch; }
.ptr-company__copy > p:not(.eyebrow) { max-width: 54ch; margin: 28px 0 34px; font-size: 17px; }
.ptr-company__copy ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 34px; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); list-style: none; }
.ptr-company__copy li { min-height: 92px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 760; }
.ptr-company__photo { position: relative; height: 690px; margin: 0; overflow: hidden; border-radius: 24px 120px 24px 24px; background: var(--forest-deep); box-shadow: var(--shadow); }
.ptr-company__photo::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(6,22,12,.78)); }
.ptr-company__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% center; }
.ptr-company__photo figcaption { position: absolute; z-index: 2; left: 24px; bottom: 20px; color: white; font-size: 10px; font-weight: 820; letter-spacing: .09em; text-transform: uppercase; }

.ptr-affiliations { background: var(--forest-deep); color: white; }
.ptr-affiliations .split-heading > p { color: rgba(255,255,255,.6); }
.ptr-affiliation-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.ptr-affiliation { min-width: 0; min-height: 210px; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: rgba(255,255,255,.055); color: white; transition: background-color .25s ease, transform .25s ease, border-color .25s ease; }
.ptr-affiliation__mark { min-height: 94px; display: flex; align-items: center; gap: 12px; }
.ptr-affiliation__mark b { display: block; color: white; font-size: clamp(18px, 1.8vw, 25px); line-height: .96; letter-spacing: -.04em; }
.ptr-affiliation > small { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.5); font-size: 9px; font-weight: 760; letter-spacing: .1em; text-transform: uppercase; }
.ptr-affiliation--unicef .ptr-affiliation__mark b { display: grid; place-items: center; width: 112px; height: 52px; border-radius: 999px; background: #1cabe2; font-size: 18px; letter-spacing: .02em; }
.ptr-affiliation--world .ptr-affiliation__mark i { position: relative; width: 47px; height: 47px; flex: 0 0 auto; border: 5px solid #f89c1c; border-left-color: transparent; border-radius: 50%; transform: rotate(-18deg); }
.ptr-affiliation--world .ptr-affiliation__mark i::after { content: ''; position: absolute; width: 22px; height: 3px; right: -13px; top: 1px; border-radius: 4px; background: #f89c1c; transform: rotate(-28deg); }
.ptr-affiliation--world .ptr-affiliation__mark b { font-size: 21px; }
.ptr-affiliation--microsoft .ptr-affiliation__mark i { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; width: 39px; height: 39px; flex: 0 0 auto; }
.ptr-affiliation--microsoft .ptr-affiliation__mark i span:nth-child(1) { background: #f25022; }
.ptr-affiliation--microsoft .ptr-affiliation__mark i span:nth-child(2) { background: #7fba00; }
.ptr-affiliation--microsoft .ptr-affiliation__mark i span:nth-child(3) { background: #00a4ef; }
.ptr-affiliation--microsoft .ptr-affiliation__mark i span:nth-child(4) { background: #ffb900; }
.ptr-affiliation--microsoft .ptr-affiliation__mark b { font-size: 22px; font-weight: 540; letter-spacing: -.02em; }
.ptr-affiliation--imagine .ptr-affiliation__mark b { color: #ee4048; font-size: 27px; font-weight: 860; line-height: .76; }
.ptr-affiliation--imagine .ptr-affiliation__mark b span { display: block; margin-left: 31px; color: white; font-size: 15px; font-weight: 650; letter-spacing: .02em; }
.ptr-affiliation--tree .ptr-affiliation__mark i { position: relative; width: 42px; height: 50px; flex: 0 0 auto; }
.ptr-affiliation--tree .ptr-affiliation__mark i::before { content: ''; position: absolute; width: 34px; height: 41px; left: 4px; top: 0; border-radius: 70% 0 70% 50%; background: #71bd44; transform: rotate(35deg); }
.ptr-affiliation--tree .ptr-affiliation__mark i::after { content: ''; position: absolute; width: 3px; height: 30px; left: 21px; top: 17px; border-radius: 3px; background: white; transform: rotate(35deg); }
.ptr-affiliation--cnib .ptr-affiliation__mark b { font-size: 36px; letter-spacing: -.07em; }
.ptr-affiliation--cnib .ptr-affiliation__mark i { width: 9px; height: 9px; border-radius: 50%; background: #f9c642; box-shadow: 0 13px 0 #f9c642, 0 26px 0 #f9c642; }
.ptr-affiliation--cic .ptr-affiliation__mark i, .ptr-affiliation--rca .ptr-affiliation__mark i, .ptr-affiliation--rco .ptr-affiliation__mark i { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; border: 2px solid var(--green-bright); border-radius: 50%; color: var(--green-bright); font-size: 11px; font-style: normal; font-weight: 880; }
.ptr-affiliation--cic .ptr-affiliation__mark b, .ptr-affiliation--rca .ptr-affiliation__mark b, .ptr-affiliation--rco .ptr-affiliation__mark b { font-size: 17px; line-height: 1.05; }
.ptr-affiliation--chambers .ptr-affiliation__mark i { width: 42px; height: 42px; flex: 0 0 auto; border: 8px solid #5ba8df; border-radius: 50% 50% 50% 15%; transform: rotate(-25deg); }
.ptr-affiliation--chambers .ptr-affiliation__mark b { font-size: 19px; line-height: 1.02; }
@media (hover: hover) { .ptr-affiliation:hover { transform: translateY(-5px); border-color: rgba(159,231,109,.45); background: rgba(255,255,255,.09); } }

.ptr-cta { padding: clamp(76px, 8vw, 120px) 0; background: var(--paper-deep); }
.ptr-cta__inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(60px, 10vw, 150px); align-items: end; }
.ptr-cta h2 { max-width: 12ch; font-size: clamp(44px, 5.4vw, 76px); }
.ptr-cta__inner > div:last-child > p { max-width: 45ch; margin: 0 0 28px; font-size: 17px; }
.ptr-cta__inner > div:last-child > div { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 1100px) {
  .ptr-hero__grid { grid-template-columns: .9fr 1.1fr; gap: 44px; }
  .ptr-hero__photo { height: 640px; }
  .ptr-path > div { min-height: 410px; }
  .ptr-network__grid { grid-template-rows: repeat(3, 270px); }
  .ptr-affiliation-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 860px) {
  .ptr-hero { min-height: auto; padding: 118px 0 0; }
  .ptr-hero__grid, .ptr-loop__grid, .ptr-proof__grid, .ptr-company__grid, .ptr-cta__inner { grid-template-columns: 1fr; }
  .ptr-hero__copy { padding: 44px 0 54px; }
  .ptr-hero__photo { width: calc(100% + 2 * var(--gutter)); height: 650px; margin-left: calc(var(--gutter) * -1); border-radius: 0; }
  .ptr-paths__grid { grid-template-columns: 1fr; }
  .ptr-path { display: grid; grid-template-columns: .9fr 1.1fr; }
  .ptr-path figure { height: auto; min-height: 390px; }
  .ptr-path > div { min-height: 390px; }
  .ptr-loop__intro { position: static; }
  .ptr-network__heading { grid-template-columns: 1fr; gap: 24px; }
  .ptr-network__grid { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, 390px); }
  .ptr-story--chile { grid-row: auto; }
  .ptr-company__copy { order: -1; }
  .ptr-company__photo { max-width: 620px; width: 100%; margin: 0 auto; }
  .ptr-affiliation-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 620px) {
  .ptr-hero h1 { font-size: clamp(52px, 16vw, 76px); }
  .ptr-hero__facts { grid-template-columns: 1fr; gap: 14px; }
  .ptr-hero__facts div { padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .ptr-hero__photo { height: 520px; }
  .ptr-path { grid-template-columns: 1fr; }
  .ptr-path figure { min-height: 300px; }
  .ptr-path > div { min-height: auto; }
  .ptr-path > div > span { margin-bottom: 42px; }
  .ptr-path p { min-height: 0; }
  .ptr-loop__grid { gap: 50px; }
  .ptr-loop__steps li { grid-template-columns: 60px 1fr; }
  .ptr-loop__steps li::before { left: 24px; }
  .ptr-loop__steps > li > span { width: 48px; height: 48px; }
  .ptr-network__grid { grid-template-columns: 1fr; grid-template-rows: none; }
  .ptr-story { min-height: 390px; }
  .ptr-story--chile img { object-position: 68% center; }
  .ptr-proof__grid { gap: 58px; }
  .ptr-company__copy ul { grid-template-columns: 1fr; }
  .ptr-company__photo { height: 520px; border-radius: 20px 70px 20px 20px; }
  .ptr-affiliation-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .ptr-affiliation { min-height: 175px; padding: 18px; }
  .ptr-affiliation__mark { min-height: 80px; }
  .ptr-cta__inner { gap: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .ptr-path img, .ptr-story img { transition: none; }
}
