/* ================================================================
   PARTNER IMPACT PAGE — partner-impact.css
   ================================================================ */

/* ── Hero ── */
.pi-hero { padding: 80px 32px 48px; text-align: center; }
.pi-hero__eyebrow { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--crimson); margin-bottom: 16px; }
.pi-hero__h1 { font-family: var(--f-display); font-size: 3rem; font-weight: 800; color: var(--primary); line-height: 1.1; letter-spacing: -.02em; margin-bottom: 24px; }
.pi-hero__sub { font-size: 1.0625rem; color: var(--on-surface-var); max-width: 640px; margin-inline: auto; line-height: 1.75; margin-bottom: 48px; }
@media (max-width: 768px) { .pi-hero { padding: 56px 20px 32px; } .pi-hero__h1 { font-size: 2rem; } }

/* ── Fund card ── */
.pi-fund { padding: 0 32px 48px; }
.pi-fund__card { background: #fff; border: 1px solid rgba(197,197,209,.4); padding: 40px; position: relative; overflow: hidden; clip-path: polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%); box-shadow: 0 2px 8px rgba(14,22,51,.05); }
.pi-fund__card::before { content:''; position:absolute; top:0; left:0; width:4px; height:100%; background: var(--primary); }
.pi-fund__top { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:28px; gap:16px; flex-wrap:wrap; }
.pi-fund__label { font-family: var(--f-display); font-size:1.25rem; font-weight:700; color:var(--primary); }
.pi-fund__sub { font-size:.9375rem; color: var(--on-surface-var); margin-top:4px; }
.pi-fund__amount { font-family: var(--f-display); font-size:2.5rem; font-weight:800; color:var(--primary); text-align:right; }
.pi-fund__goal { font-size:.9375rem; color: var(--on-surface-var); text-align:right; margin-top:4px; }
.pi-fund__bar { height:16px; background:#ebedff; overflow:hidden; margin-bottom:12px; clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%); }
.pi-fund__fill { height:100%; width:0; background:var(--crimson); transition:width 1.4s cubic-bezier(.4,0,.2,1); }
.pi-fund__miles { display:flex; justify-content:space-between; font-size:.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color: var(--on-surface-var); flex-wrap:wrap; gap:8px; }
.pi-fund__miles .hl { color: #795900; font-weight:800; }
@media (max-width: 640px) {
  .pi-fund { padding: 0 20px 32px; }
  .pi-fund__card { padding: 24px; }
  .pi-fund__amount { font-size: 1.75rem; }
  .pi-fund__top { flex-direction: column; align-items: flex-start; }
  .pi-fund__amount, .pi-fund__goal { text-align: left; }
}

/* ── Gift power ── */
.pi-gifts { padding: 80px 32px; background: var(--surface-low); }
.pi-gifts__top { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; gap:24px; flex-wrap:wrap; }
.pi-gifts__h2 { font-family: var(--f-display); font-size:2rem; font-weight:700; color:var(--primary); margin-bottom:8px; }
.pi-gifts__sub { font-size:1rem; color: var(--on-surface-var); max-width:52ch; }
.pi-gifts__link { font-size:.875rem; font-weight:700; color:var(--primary); display:flex; align-items:center; gap:6px; white-space:nowrap; text-decoration:none; }
.pi-gifts__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pi-gift { background:#fff; border:1px solid rgba(197,197,209,.3); padding:32px; clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%); display:flex; flex-direction:column; transition:box-shadow .2s; }
.pi-gift:hover { box-shadow:0 8px 32px rgba(1,21,80,.1); }
.pi-gift--feat { background:var(--primary); border-color:var(--primary); box-shadow:0 20px 40px rgba(1,21,80,.2); }
.pi-gift__icon { width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:24px; font-size:28px; flex-shrink:0; }
.pi-gift__icon--light { background:rgba(27,44,101,.08); color:var(--primary); }
.pi-gift__icon--dark  { background:rgba(255,255,255,.1); color:var(--coral); }
.pi-gift__amount { font-family: var(--f-display); font-size:1.5rem; font-weight:700; color:var(--primary); margin-bottom:6px; }
.pi-gift--feat .pi-gift__amount { color:var(--coral); }
.pi-gift__name { font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#795900; margin-bottom:14px; }
.pi-gift--feat .pi-gift__name { color:rgba(255,255,255,.6); }
.pi-gift__desc { font-size:.9375rem; color: var(--on-surface-var); line-height:1.7; flex:1; margin-bottom:24px; }
.pi-gift--feat .pi-gift__desc { color:rgba(255,255,255,.85); }
.pi-gift__reach { font-size:.75rem; font-weight:600; color: var(--on-surface-var); padding-top:16px; border-top:1px solid rgba(197,197,209,.3); }
.pi-gift--feat .pi-gift__reach { color:rgba(255,255,255,.5); border-top-color:rgba(255,255,255,.1); }
@media (max-width: 1024px) { .pi-gifts__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px)  {
  .pi-gifts { padding: 56px 20px; }
  .pi-gifts__grid { grid-template-columns: 1fr; }
  .pi-gifts__top { flex-direction: column; align-items: flex-start; }
}

/* ── Timeline ── */
.pi-tl { padding: 80px 32px; }
.pi-tl__header { text-align:center; margin-bottom:64px; }
.pi-tl__h2 { font-family: var(--f-display); font-size:2rem; font-weight:700; color:var(--primary); margin-bottom:8px; }
.pi-tl__sub { font-size:1rem; color: var(--on-surface-var); }

.pi-tl__entries { position:relative; display:flex; flex-direction:column; gap:80px; }

/* Centre vertical line — desktop only */
.pi-tl__entries::before {
  content:''; position:absolute; left:50%; top:0; bottom:0;
  width:1px; background:rgba(197,197,209,.5); transform:translateX(-50%);
}

/* Individual entry */
.pi-tl__entry { display:grid; grid-template-columns:1fr 32px 1fr; align-items:center; gap:0; position:relative; }
.pi-tl__entry--right { direction: rtl; }
.pi-tl__entry--right > * { direction: ltr; }

.pi-tl__text { padding: 0 40px; }
.pi-tl__entry--left  .pi-tl__text { text-align:right; padding-right:48px; padding-left:0; }
.pi-tl__entry--right .pi-tl__text { text-align:left;  padding-left:48px;  padding-right:0; }

.pi-tl__dot {
  width:16px; height:16px; background:var(--primary); border-radius:50%;
  border:4px solid #fff; box-shadow:0 0 0 2px var(--primary);
  justify-self:center; align-self:center; flex-shrink:0; position:relative; z-index:2;
}
.pi-tl__entry--right .pi-tl__dot { background:var(--crimson); box-shadow:0 0 0 2px var(--crimson); }

.pi-tl__img-side { padding: 0 40px; }
.pi-tl__entry--left  .pi-tl__img-side { padding-left:48px;  padding-right:0; }
.pi-tl__entry--right .pi-tl__img-side { padding-right:48px; padding-left:0; }

.pi-tl__date  { font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--crimson); margin-bottom:8px; }
.pi-tl__title { font-family: var(--f-display); font-size:1.25rem; font-weight:700; color:var(--primary); margin-bottom:10px; }
.pi-tl__body  { font-size:.9375rem; color: var(--on-surface-var); line-height:1.7; }
.pi-tl__img   { aspect-ratio:16/9; overflow:hidden; background:#ebedff; clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%); }
.pi-tl__img img { width:100%; height:100%; object-fit:cover; display:block; }

/* Mobile timeline — stack vertically, left-aligned */
@media (max-width: 768px) {
  .pi-tl { padding: 56px 20px; }
  .pi-tl__entries { gap: 48px; }
  .pi-tl__entries::before { left: 8px; top: 0; bottom: 0; transform: none; }

  .pi-tl__entry,
  .pi-tl__entry--right { display:flex; flex-direction:column; padding-left:32px; gap:20px; direction:ltr; }

  .pi-tl__dot { position:absolute; left:-24px; top:4px; }

  .pi-tl__text,
  .pi-tl__entry--left  .pi-tl__text,
  .pi-tl__entry--right .pi-tl__text { text-align:left; padding:0; }

  .pi-tl__img-side,
  .pi-tl__entry--left  .pi-tl__img-side,
  .pi-tl__entry--right .pi-tl__img-side { padding:0; }
}

/* ── Voices + Reports ── */
.pi-voices { padding: 64px 32px; background: var(--primary); color:#fff; overflow:hidden; }
.pi-voices__inner { max-width: 1280px; margin-inline: auto; }
.pi-voices__grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.pi-voices__h2 { font-family: var(--f-display); font-size:2rem; font-weight:700; color:#fff; margin-bottom:40px; }
.pi-voice { position:relative; margin-bottom:48px; padding-left:16px; }
.pi-voice:last-child { margin-bottom:0; }
.pi-voice__qmark { font-size:4rem; color:rgba(255,255,255,.1); position:absolute; top:-12px; left:-8px; line-height:1; pointer-events:none; font-family:Georgia,serif; }
.pi-voice__quote { font-size:.9375rem; color:rgba(255,255,255,.9); line-height:1.85; font-style:italic; margin-bottom:20px; position:relative; z-index:1; }
.pi-voice__author { display:flex; align-items:center; gap:12px; }
.pi-voice__avatar { width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.8125rem; flex-shrink:0; border:2px solid var(--crimson); }
.pi-voice__name { font-weight:700; font-size:.9375rem; color:#fff; }
.pi-voice__role { font-size:.8125rem; color:rgba(255,255,255,.6); margin-top:2px; }

/* Reports box */
.pi-reports { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); padding:36px; clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%); }
.pi-reports__h3 { font-family: var(--f-display); font-size:1.25rem; font-weight:700; color:#fff; margin-bottom:8px; }
.pi-reports__sub { font-size:.9375rem; color:rgba(255,255,255,.7); line-height:1.65; margin-bottom:32px; }
.pi-report-row { display:flex; align-items:center; justify-content:space-between; padding:20px; background:rgba(255,255,255,.08); margin-bottom:12px; cursor:pointer; clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%); transition:background .2s; text-decoration:none; }
.pi-report-row:last-child { margin-bottom:0; }
.pi-report-row:hover { background:rgba(255,255,255,.18); }
.pi-report-row__left { display:flex; align-items:center; gap:14px; }
.pi-report-row__icon { width:44px; height:44px; background:var(--crimson); display:flex; align-items:center; justify-content:center; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%); color:#fff; font-size:18px; flex-shrink:0; }
.pi-report-row__title { font-weight:700; font-size:.875rem; color:#fff; }
.pi-report-row__meta  { font-size:.75rem; color:rgba(255,255,255,.5); margin-top:2px; }
.pi-report-row__dl    { color:#fff; font-size:16px; flex-shrink:0; }

@media (max-width: 1024px) { .pi-voices__grid { grid-template-columns:1fr; gap:48px; } }
@media (max-width: 640px)  { .pi-voices { padding: 48px 20px; } .pi-reports { padding: 24px; } }
