/* =====================================================================================================================
   pages-g7.css: /schools/, /nonprofits/, /digital-equity/ (v2 content pass g7, 2026-09-29).
   Loaded AFTER pages-g4.css (these pages still use the g4 parts). Page-only additions for the new content blocks.
   Lime / black / white only: surfaces are paper, var(--floor) (lime tint) or ink. No hex greys. No new colours.
   ===================================================================================================================== */

/* ---------- reasons row (schools "why"): plain items under a lime rule, not boxed cards (impeccable: no card grids) ---- */
.g7-reasons { display: grid; gap: var(--s8) var(--s6); grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
@media (min-width: 48rem) { .g7-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .g7-reasons { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s8); } }
.g7-reasons > li { display: grid; gap: var(--s3); align-content: start; padding-top: var(--s5); border-top: 3px solid var(--lime); }
.g7-reasons__title { font-size: 1.1875rem; line-height: 1.3; font-weight: 600; letter-spacing: -0.005em; text-wrap: balance; }
.g7-reasons p { color: var(--text-2); line-height: 1.55; }
.g7-reasons .textlink { color: var(--ink); }

/* ---------- full-bleed tint band (device list) ---------- */
.g7-tintband { margin-top: var(--section-y); padding-block: var(--section-y); background: var(--floor); }
.g7-tintband .g4-head { margin-bottom: var(--s8); }

/* ---------- device tiles: every kind of end-of-life technology (Tom 09-29), one tile per type ---------- */
.g7-devices { display: grid; gap: var(--s3); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
/* 16 types: 2 / 4 columns only, so no row is left with one orphan tile at 768 */
@media (min-width: 48rem) { .g7-devices { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); } }
@media (min-width: 64rem) { .g7-devices { gap: var(--s4); } }
.g7-devices > li { display: flex; align-items: center; gap: var(--s3); min-height: 60px; padding: var(--s3) var(--s4);
  border-radius: 16px; background: var(--paper); box-shadow: inset 0 0 0 1px var(--hairline);
  font-weight: 600; line-height: 1.3; color: var(--ink); }
.g7-devices > li::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--lime); }
.g7-devices__more { margin-top: var(--s6); color: var(--text-2); line-height: 1.55; }
.g7-devices__more strong { color: var(--ink); }
.g7-devices__more .textlink { color: var(--ink); margin-left: var(--s2); }

/* ---------- AI on-ramp line inside a dark band (schools buy) ---------- */
.g7-onramp { font-weight: 600; font-size: var(--fs-lead); line-height: 1.45; color: var(--on-dark); max-width: 36rem;
  padding-top: var(--s5); border-top: 1px solid var(--hairline-dark); }
.zd-dark .btn-row { margin-top: var(--s2); }

/* ---------- order steps beside their heading (nonprofits "how an order works") ---------- */
.g7-order { display: grid; gap: var(--s10); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 64rem) { .g7-order { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--s16); } }
.g7-order .g4-head { margin-bottom: 0; }
.g7-order .steps { gap: var(--s6); }

/* ---------- origin story + photo (digital equity) ---------- */
.g7-origin { display: grid; gap: var(--s10); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 64rem) { .g7-origin { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--s16); } }
.g7-origin__text { display: grid; gap: var(--s5); max-width: 40rem; }
.g7-origin__text .h2 { max-width: 20ch; }
.g7-origin__lede { font-size: var(--fs-lead); line-height: 1.55; color: var(--ink); }
.g7-origin__text p { line-height: 1.6; }
.g7-origin__story { color: var(--text-2); }
.g7-mission { padding-top: var(--s5); border-top: 1px solid var(--hairline); color: var(--text-2); line-height: 1.6; }
.g7-mission strong { color: var(--ink); font-weight: 600; }
.g7-origin figure { margin: 0; }
.g7-origin figure img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-hero); }
.g7-origin figcaption { margin-top: var(--s3); color: var(--text-2); font-size: var(--fs-body); line-height: 1.5; }

/* ---------- take-part split (digital equity): answer left, voice + action right ---------- */
.g7-takepart .g4-voice { color: var(--ink); }
.g7-green { color: var(--green-text); }
.g7-takepart .g4-split__main .h2 { max-width: 22ch; }
.g7-takepart__side { display: grid; gap: var(--s6); align-content: center; padding: var(--s8); border-radius: var(--r-card); background: var(--floor); }
@media (min-width: 48rem) { .g7-takepart__side { padding: var(--s12); } }

/* ---------- mission lines on the nonprofits proof split ---------- */
.g7-believe { color: var(--text-2); line-height: 1.6; max-width: 40rem; }

/* ---------- phones ---------- */
@media (max-width: 47.99rem) {
  .g7-devices > li { min-height: 56px; padding: var(--s3); }
  .g7-tintband { padding-block: var(--s12); }
}

/* =====================================================================================================================
   v2 g7 r2 (2026-09-29): grade corrections v2-g7-r1. Lime / black / white only, no new colours.
   ===================================================================================================================== */

/* ---------- device list, grouped (corr. 9): three kinds, pills wrap to the column width, no flat 16-pill wall ---------- */
.g7-kinds { display: grid; gap: var(--s8); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 64rem) { .g7-kinds { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--s8); } }
.g7-kind { display: grid; gap: var(--s4); align-content: start; padding-top: var(--s5); border-top: 3px solid var(--lime); }
.g7-kind__title { font-size: 1.1875rem; line-height: 1.3; font-weight: 600; letter-spacing: -0.005em; }
.g7-kind .g7-devices { grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); }
.g7-kind__note { color: var(--text-2); line-height: 1.5; }

/* ---------- three-up reasons (recycling aims) ---------- */
@media (min-width: 64rem) { .g7-reasons--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.g7-aims__intro { margin-bottom: var(--s6); font-weight: 600; color: var(--ink); }

/* ---------- "Retired, not finished" beat inside the thesis split (corr. 5) ---------- */
.g7-retired { color: var(--ink); line-height: 1.6; }
.g7-retired strong { font-weight: 700; }

/* ---------- take-part split: the side panel now carries the pickup logistics (corr. 2) ---------- */
.g7-takepart__side { align-content: start; gap: var(--s5); }
.g7-side__title { font-size: var(--fs-h3); line-height: 1.25; font-weight: 500; letter-spacing: -0.01em; }
.g7-side__lede { color: var(--text-2); line-height: 1.55; }
.g7-takepart__side .steps { gap: var(--s4); }
.g7-side__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4) var(--s6); padding-top: var(--s2); }
.g7-takepart .g4-voice { margin-top: var(--s2); }

/* ---------- story band hierarchy (corr. 13): the H2 outranks the card's H3 at every width ---------- */
.g7-storyq { font-size: var(--fs-h2); max-width: 22ch; }
.g7-choose.g4-choose .card__title { font-size: var(--fs-h3); line-height: 1.3; max-width: 24ch; }
.g7-choose .textlink { color: var(--on-dark); }

/* ---------- where the machines go (corr. 4): rows, one real buyer per row, one link each ---------- */
.g7-desks { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--hairline); }
.g7-desk { display: grid; gap: var(--s2) var(--s8); padding: var(--s6) 0; border-top: 1px solid var(--hairline); align-items: center; }
@media (min-width: 64rem) { .g7-desk { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) minmax(0, 15rem); } }
.g7-desk__who { font-size: var(--fs-h3); line-height: 1.25; font-weight: 500; letter-spacing: -0.01em; }
.g7-desk__what { color: var(--text-2); line-height: 1.55; max-width: 44ch; }
.g7-desk .link-arrow { color: var(--ink); justify-self: start; }
@media (min-width: 64rem) { .g7-desk .link-arrow { justify-self: end; } }

/* ---------- schools calendar band: heading beside a real photo (corr. 15) ---------- */
.g7-calhead { display: grid; gap: var(--s8); grid-template-columns: minmax(0, 1fr); margin-bottom: var(--s10); align-items: center; }
@media (min-width: 64rem) { .g7-calhead { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--s12); } }
.g7-calhead .g4-head { margin-bottom: 0; }
.g7-calhead__photo { margin: 0; border-radius: var(--r-hero); overflow: hidden; background: var(--ink-2); }
.g7-calhead__photo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* ---------- schools reuse panel: photo on the right half (corr. 15; the half was near-empty, X16) ---------- */
.g7-inkphoto { margin: 0; border-radius: var(--r-hero); overflow: hidden; }
.g7-inkphoto img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

/* ---------- nonprofits: customer quote beside the order steps (corr. 8) ---------- */
.g7-quote { margin: var(--s4) 0 0; padding-top: var(--s5); border-top: 3px solid var(--lime); display: grid; gap: var(--s3); }
.g7-quote blockquote { margin: 0; }
.g7-quote blockquote p { font-size: var(--fs-lead); line-height: 1.5; font-weight: 500; color: var(--ink); }
.g7-quote figcaption { color: var(--text-2); font-weight: 600; }
