/* ============================================================
   PAGE — donate  (donate.html)
   ============================================================ */

.donate-hero{
  background:var(--hero-bg);color:var(--c-ink-soft);
  padding-block:clamp(3.5rem,9vw,6.5rem) clamp(2rem,5vw,3rem);
  position:relative;overflow:hidden;border-bottom:1px solid var(--c-line);
}
.donate-hero .wrap{position:relative;z-index:1}
.donate-hero::after{
  content:"";position:absolute;right:-8%;top:-50%;width:52%;height:200%;
  background:radial-gradient(50% 50% at 50% 50%,color-mix(in srgb,var(--c-rose) 24%,transparent),transparent 70%);
  pointer-events:none;
}
.donate-hero h1{color:var(--c-ink);font-size:var(--fs-2xl);margin-block:.5rem;letter-spacing:var(--track-display);max-width:20ch}
.donate-hero p{color:var(--c-ink-soft);max-width:48ch;font-size:var(--fs-md);line-height:1.45}
.donate-hero .eyebrow::before{background:var(--c-rose)}
.donate-hero--draw::after{background:radial-gradient(50% 50% at 50% 50%,color-mix(in srgb,var(--c-gold) 26%,transparent),transparent 70%)}
.donate-hero--draw .eyebrow::before{background:var(--c-gold)}

/* how-it-works steps — flex, badge aligned to the top of the text
   (the standard numbered-list convention) rather than centred on
   the whole block, which for a 2-3 line step left the number
   floating in the gap between lines instead of reading against
   any actual line of text */
.draw-steps{list-style:none;margin:1.2rem 0 0;counter-reset:step}
.draw-steps li{
  display:flex;align-items:flex-start;gap:.9rem;
  color:var(--c-ink-soft);line-height:1.5;
}
.draw-steps li + li{margin-top:1.1rem}
.draw-steps li::before{
  counter-increment:step;content:counter(step);
  flex:none;width:1.8rem;height:1.8rem;margin-top:-.1rem;
  display:grid;place-items:center;border-radius:50%;
  background:var(--c-gold);color:#2a2036;font-family:var(--font-mono);font-weight:600;font-size:.85rem;
}
.draw-steps li strong{color:var(--c-ink)}

/* human-framed impact cards */
.impact-grid{--col:230px;margin-top:0}
.impact-card{
  border:1px solid var(--c-line);border-left:3px solid var(--accent,var(--c-teal));
  border-radius:var(--r-lg);padding:1.3rem 1.4rem;background:var(--c-surface);
}
.impact-card--edu{--accent:var(--c-primary)}
.impact-card--med{--accent:var(--c-rose)}
.impact-card--help{--accent:var(--c-teal)}
.impact-card h3{color:var(--c-ink);font-size:1.05rem;margin:0 0 .35rem}
.impact-card p{color:var(--c-ink-soft);font-size:var(--fs-sm);line-height:1.5;margin:0}

/* pull quote — margin-top a touch more generous than the stack's own
   1.6rem flow, since this sits visually apart from the panels either
   side of it, not just another item in the same list */
.donate-quote{
  margin:2.4rem 0 0;padding-left:1.2rem;border-left:3px solid var(--c-gold);
  font-family:var(--font-display);font-style:italic;font-weight:var(--weight-light);
  font-size:var(--fs-lg);color:var(--c-ink);line-height:1.35;max-width:30ch;
}
.donate-quote cite{
  display:block;margin-top:.9rem;font-style:normal;font-family:var(--font-mono);
  font-size:.75rem;color:var(--c-ink-mute);letter-spacing:.02em;
}

.donate-panel{
  background:var(--c-surface);
  border:1px solid var(--c-line);border-radius:var(--r-lg);
  padding:clamp(1.5rem,4vw,2.4rem);
}
.donate-panel h2{color:var(--c-ink);font-size:var(--fs-lg)}
.donate-panel .chip-group{margin-block:1.3rem}
.donate-panel .field{margin-bottom:1.3rem}

/* "what your gift does" — swaps as the amount changes */
.donate-funds{
  margin:-.5rem 0 1.3rem;
  display:flex;gap:.55rem;align-items:baseline;
  font-size:var(--fs-sm);color:var(--c-ink-soft);line-height:1.5;
  min-height:1.4em;
  opacity:0;
  transition:opacity .3s var(--ease-out);
}
.donate-funds.is-shown{opacity:1}
.donate-funds::before{
  content:"→";color:var(--c-gold);font-weight:var(--weight-semi);flex:none;
}
.donate-funds.is-swap{animation:donate-fund-swap .34s var(--ease-out)}
@keyframes donate-fund-swap{
  from{opacity:.2;transform:translateY(3px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .donate-funds{transition:none}
  .donate-funds.is-swap{animation:none}
}

.donate-note{margin-top:1rem;font-size:var(--fs-sm);color:var(--c-ink-mute)}

/* FAQ — native <details>, no JS needed for the expand/collapse */
.faq-list{margin-top:1.2rem;display:flex;flex-direction:column;gap:.6rem}
.faq-item{border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden}
.faq-item summary{
  list-style:none;cursor:pointer;padding:.95rem 1.1rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  font-weight:var(--weight-semi);color:var(--c-ink);
  transition:background var(--dur-2);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{background:color-mix(in srgb,var(--c-primary) 5%,transparent)}
.faq-item summary::after{
  content:"";flex:none;width:9px;height:9px;border-right:2px solid var(--c-ink-mute);border-bottom:2px solid var(--c-ink-mute);
  transform:rotate(45deg);transition:transform var(--dur-2) var(--ease-out);
}
.faq-item[open] summary::after{transform:rotate(-135deg)}
.faq-item p{margin:0 1.1rem 1rem;color:var(--c-ink-soft);font-size:var(--fs-sm);line-height:1.55}

.donate-setup{
  margin-top:1.3rem;border:1px solid var(--c-line);border-left:3px solid var(--c-gold);
  border-radius:var(--r-md);background:var(--c-parchment);
  padding:1rem 1.1rem;font-size:var(--fs-sm);color:var(--c-ink-soft);
}
.donate-setup code{font-family:var(--font-mono);font-size:.85em;background:var(--c-surface);padding:.1rem .4rem;border-radius:var(--r-xs)}

/* ---- UPI pay panel ---- */
.upi-panel{
  margin-top:1.3rem;padding:1.3rem;border-radius:var(--r-lg);text-align:center;
  border:1px solid var(--glass-panel-border);background:var(--c-parchment);
  box-shadow:var(--glass-panel-shadow);
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .upi-panel{background:color-mix(in srgb, var(--c-parchment) 70%, transparent);backdrop-filter:var(--glass-panel-blur);-webkit-backdrop-filter:var(--glass-panel-blur)}
}
.upi__head{margin-bottom:1rem}
.upi__amount{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:1.7rem;color:var(--c-ink);letter-spacing:var(--track-tight)}
.upi__ref{font-family:var(--font-mono);font-size:.8rem;color:var(--c-ink-mute);margin-top:.2rem}
.upi__ref b{color:var(--c-primary-ink);letter-spacing:.06em}
.upi__qr{
  width:200px;height:200px;image-rendering:pixelated;
  border-radius:var(--r-md);border:6px solid #fff;background:#fff;margin:0 auto .9rem;
  box-shadow:var(--shadow-image);
}
.upi__to{font-size:.9rem;color:var(--c-ink-soft);margin-bottom:1rem}
.upi__to b{color:var(--c-ink);font-family:var(--font-mono);font-size:.86em}
.upi__copy{
  border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-primary-ink);
  font-size:.72rem;font-weight:var(--weight-semi);padding:.15rem .5rem;border-radius:var(--r-pill);cursor:pointer;margin-left:.3rem;
}
.upi__open{margin-bottom:.8rem}
.upi__note{font-size:.82rem;color:var(--c-ink-mute);line-height:1.5;margin-bottom:1rem;max-width:38ch;margin-inline:auto}
.upi__note b{color:var(--c-ink-soft)}
.upi__paid{border-top:1px solid var(--c-line);padding-top:1rem}
.upi__utr{margin-top:.7rem;display:flex;flex-direction:column;gap:.6rem;text-align:left}
.upi__utr .field{background:var(--c-surface)}
.upi__utr-help{font-size:var(--fs-sm);color:var(--c-ink-soft);line-height:1.5;margin:0}
.upi__utr-where{
  margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.25rem;
  font-size:.8rem;color:var(--c-ink-mute);
}
.upi__utr-where li::before{content:"•";margin-right:.4rem;color:var(--c-primary-ink)}
.upi__utr-msg{margin:0;font-size:.8rem;color:var(--c-primary-ink)}
.upi__utr-skip{
  background:none;border:0;cursor:pointer;padding:.2rem;
  font:inherit;font-size:.78rem;color:var(--c-ink-mute);text-decoration:underline;
}
.upi__utr-skip:hover{color:var(--c-primary-ink)}
.upi__done{color:var(--c-ink-soft);line-height:1.55}
.upi__done p + p{margin-top:.6rem}
@keyframes upi-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){ .upi-panel{animation:upi-in var(--dur-3) var(--ease-out)} }

.thermo{margin-top:1.8rem}
.thermo__row{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.78rem;color:var(--c-ink-mute)}
.thermo .progress{margin-top:.5rem;color:var(--c-ink)}

.causes{list-style:none;margin-top:1rem}
.causes li{padding-left:1.4rem;position:relative;color:var(--c-ink-soft)}
.causes li + li{margin-top:.65rem}
.causes li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:2px;background:var(--c-gold)}
