/* Giving controls for the Canopy variant only. */
.canopy .section-donate { background: var(--paper); }
.canopy .donation-layout { display: grid; gap: 3rem; }
.canopy .donation-intro { min-width: 0; }
.canopy .donation-intro .kicker { margin-bottom: 1.25rem; }
.canopy .donation-intro h2 { max-width: 18ch; margin-bottom: 1.5rem; }
.canopy .donation-intro .lede { max-width: 32rem; }
.canopy .donation-intro .body-text { margin-top: 1.25rem; max-width: 30rem; }
.canopy .donation-note { margin-top: 2.5rem; padding: 1.5rem 0 0; border-top: 1px solid var(--rule-strong); max-width: 30rem; }
.canopy .donation-note h3 { font-family: var(--sans); font-size: 1.0625rem; }
.canopy .donation-note p { margin-top: 0.625rem; color: var(--muted); font-size: 1rem; }
.canopy .donation-note a { display: inline-block; padding-block: 0.75rem; margin-top: 0.25rem; font-size: 1rem; font-weight: 600; }

.canopy .donation-form { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); background: var(--white); border: 1px solid var(--rule-strong); border-top: 3px solid var(--forest); }
.canopy .donation-fieldset { margin: 0 0 1.75rem; padding: 0; border: 0; min-width: 0; }
.canopy .donation-fieldset legend { padding: 0; margin-bottom: 0.875rem; color: var(--ink); font-size: 1.0625rem; font-weight: 600; }
.canopy .donation-frequency { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
.canopy .donation-amounts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.625rem; }
.canopy .giving-option { position: relative; min-width: 0; cursor: pointer; }
.canopy .giving-option input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.canopy .giving-option span { display: flex; align-items: center; justify-content: center; min-height: 3.25rem; padding: 0.625rem 0.5rem; border: 1px solid #72877b; border-radius: 2px; color: var(--forest); font-size: 1rem; font-weight: 600; line-height: 1.3; text-align: center; }
.canopy .giving-option:hover span { background: #eef2e9; }
.canopy .giving-option input:checked + span { background: var(--forest); color: var(--white); border-color: var(--forest); box-shadow: inset 0 -4px 0 #91bd6d; }
.canopy .giving-option input:focus-visible + span { outline: 2px solid var(--forest); outline-offset: 3px; }
.canopy .giving-option input:disabled + span { cursor: not-allowed; }
.canopy .donation-custom-row { display: grid; grid-template-columns: minmax(8rem, 0.9fr) minmax(0, 1.1fr); gap: 0.625rem; margin-top: 0.625rem; }
.canopy .donation-custom-entry { min-width: 0; }
.canopy .donation-money-input { display: flex; align-items: center; min-height: 3.25rem; border: 1px solid #72877b; border-radius: 2px; background: var(--white); }
.canopy .donation-money-input > span { flex: none; padding-left: 0.875rem; color: var(--muted); }
.canopy .donation-money-input input { width: 100%; min-width: 0; padding: 0.75rem 0.75rem 0.75rem 0.375rem; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 1rem; border-radius: 0; }
.canopy .donation-money-input input::placeholder { color: var(--muted); opacity: 1; }
.canopy .donation-money-input:focus-within { outline: 2px solid var(--forest); outline-offset: 3px; }
.canopy .donation-money-input input:focus-visible { outline: none; }
.canopy .donation-money-input:has(input[aria-invalid="true"]) { border-color: #922c26; }
.canopy .donation-help { margin-top: 0.75rem; color: var(--muted); font-size: 0.9375rem; line-height: 1.5; }
.canopy .donation-error { margin-top: 0.625rem; color: #922c26; font-size: 1rem; line-height: 1.5; }
.canopy .donation-error[hidden] { display: none; }
.canopy .donation-summary-panel { margin: 0 0 1.5rem; padding: 1.25rem 0; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong); }
.canopy .donation-summary-panel h3 { font-family: var(--sans); font-size: 0.9375rem; font-weight: 600; color: var(--muted); }
.canopy #donation-summary { display: block; margin-top: 0.5rem; color: var(--forest); font-family: var(--serif); font-size: clamp(1.25rem, 1.125rem + 0.4vw, 1.5rem); line-height: 1.35; font-weight: 500; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.canopy #donation-schedule { margin-top: 0.625rem; color: var(--muted); font-size: 0.9375rem; line-height: 1.5; }
.canopy #donation-submit { width: 100%; min-height: 3.25rem; color: var(--muted); background: #eef2e9; border-color: #72877b; }
.canopy .donation-reset { min-height: 2.75rem; padding: 0.5rem 0; margin-top: 0.25rem; border: 0; background: none; color: var(--forest); font: inherit; font-size: 0.9375rem; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.canopy .donation-reset:disabled { cursor: not-allowed; }
.canopy .donation-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

@media (min-width: 56.25em) {
  .canopy .donation-layout { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
}
@media (max-width: 28em) {
  .canopy .donation-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .canopy .donation-custom-row { grid-template-columns: minmax(0, 1fr); }
}
@media (forced-colors: active) {
  .canopy .giving-option input:checked + span { border: 3px solid Highlight; }
}
