/* v3: sections filled from the Google Sheet. Uses the theme's own tokens (--blue, --yellow, --ink, --muted, --line, --surface). */

/* ---------- events ---------- */
.live-events__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.live-event{display:grid;grid-template-columns:88px minmax(0,1fr);gap:28px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.live-event--past{grid-template-columns:88px minmax(0,1fr) 220px}
.live-event__date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:88px;height:88px;border-radius:var(--radius,8px);background:var(--blue);color:#ffffff;line-height:1}
.live-event--past .live-event__date{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.live-event__month{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.live-event__day{font-size:2.1rem;font-weight:700;margin-top:4px}
.live-event__title{margin:4px 0 6px;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.15;letter-spacing:-.02em}
.live-event__meta{margin:0 0 10px;font-weight:600;color:var(--blue)}
.live-event__text{margin:0 0 14px;max-width:62ch;color:var(--muted);line-height:1.6;white-space:pre-line}
.live-event__photo{width:220px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius,8px)}
.live-events__empty{padding:34px 0;border-bottom:1px solid var(--line)}
.live-events__empty p{margin:0 0 14px;font-size:1.15rem;max-width:52ch}
.live-events__more{margin-top:28px}
.live-events__past{margin-top:72px}
.live-events__past-title{font-size:1.5rem;margin:0 0 20px;letter-spacing:-.02em}
.section-tone--soft.live-events{background:var(--surface)}
@media(max-width:650px){
  .live-event,.live-event--past{grid-template-columns:64px minmax(0,1fr);gap:18px}
  .live-event__date{width:64px;height:64px}.live-event__day{font-size:1.6rem}
  .live-event__photo{grid-column:1/-1;width:100%}
}

/* ---------- gallery ---------- */
.live-gallery .section-title{margin-bottom:clamp(24px,3vw,40px)}
.live-gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.live-gallery__item{margin:0}
.live-gallery__item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius,8px)}
.live-gallery__item figcaption{margin-top:8px;font-size:.9rem;color:var(--muted)}
.section-tone--soft.live-gallery{background:var(--surface)}

/* ---------- impact: one sentence, not a stat grid ---------- */
.live-impact{padding:clamp(48px,7vw,88px) 0}
.live-impact.section-tone--blue{background:var(--blue);color:#ffffff}
.live-impact__line{margin:0;max-width:26ch;font-size:clamp(2rem,4.4vw,3.6rem);font-weight:700;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.live-impact__lead{color:var(--yellow)}
.live-impact.section-tone--light .live-impact__lead{color:var(--blue)}
.live-impact__stat strong{font-weight:700}

/* ---------- testimonials ---------- */
.live-voices .section-title,.live-team .section-title{margin-bottom:0}
.live-voices__list{display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:36px}
.live-voice{margin:0}
.live-voice blockquote{margin:0}
.live-voice p{margin:0;font-size:1.3rem;line-height:1.4;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.live-voice figcaption{margin-top:16px;display:flex;flex-direction:column;gap:2px}
.live-voice figcaption span{color:var(--muted);font-size:.95rem}
.section-tone--soft.live-voices{background:var(--surface)}

/* ---------- partners ---------- */
.live-partners__title{font-size:1.2rem;margin:0 0 22px;color:var(--muted);font-weight:600}
.live-partners__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:22px 48px}
.live-partner__logo{display:block;height:44px;width:auto;max-width:170px;object-fit:contain}
.live-partner__name{font-size:1.15rem;font-weight:700;color:var(--ink)}
.live-partner a{display:block;color:inherit;text-decoration:none}
.live-partner a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.section-tone--soft.live-partners{background:var(--surface)}

/* ---------- team ---------- */
.live-team__list{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:30px 40px}
.live-member{display:flex;gap:16px;align-items:flex-start}
.live-member__photo,.live-member__initial{flex:none;width:64px;height:64px;border-radius:50%;object-fit:cover}
.live-member__initial{display:grid;place-items:center;background:var(--blue);color:#ffffff;font-weight:700;font-size:1.4rem}
.live-member h3{margin:4px 0 2px;font-size:1.15rem}
.live-member__role{margin:0;color:var(--blue);font-weight:600;font-size:.95rem}
.live-member__bio{margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.55}
.section-tone--soft.live-team{background:var(--surface)}

/* ---------- FAQ ---------- */
.live-faq__layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.live-faq__layout .page-lead{margin-bottom:24px}
.live-faq__list{border-top:1px solid var(--line)}
.live-faq__item{border-bottom:1px solid var(--line)}
.live-faq__item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;cursor:pointer;font-size:1.2rem;font-weight:700;letter-spacing:-.01em}
.live-faq__item summary::-webkit-details-marker{display:none}
.live-faq__item summary i{flex:none;position:relative;width:14px;height:14px}
.live-faq__item summary i::before,.live-faq__item summary i::after{content:"";position:absolute;inset:6px 0 auto;height:2px;background:currentColor;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.live-faq__item summary i::after{transform:rotate(90deg)}
.live-faq__item[open] summary i::after{transform:rotate(0)}
.live-faq__item summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.live-faq__item p{margin:0 0 22px;max-width:62ch;color:var(--muted);line-height:1.65}
@media(max-width:850px){.live-faq__layout{grid-template-columns:1fr}}

/* ---------- footer additions ---------- */
.site-footer__social{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}
.site-footer__social[hidden]{display:none}

@media(prefers-reduced-motion:reduce){.live-faq__item summary i::before,.live-faq__item summary i::after{transition:none}}

/* ---------- team page ---------- */
.live-member__links{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0}
.live-member__links a{font-weight:700;font-size:.92rem;color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.live-member__links a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.live-team__empty{margin:28px 0 0;font-size:1.15rem;color:var(--muted)}
.live-team__more{margin-top:32px}
.team-contact{background:var(--blue);color:#ffffff}
.team-contact .section-title{color:#ffffff}
.team-contact__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(28px,5vw,80px);align-items:end}
.team-contact__text{margin:18px 0 0;max-width:48ch;font-size:1.1rem;line-height:1.6;color:#e3eaff}
.team-contact__ways{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.team-contact__email{font-size:clamp(1.2rem,2.2vw,1.6rem);font-weight:700;color:var(--yellow);text-decoration:underline;text-underline-offset:5px;word-break:break-word}
.team-contact__email:focus-visible{outline:2px solid #ffffff;outline-offset:4px}
.team-contact__social a{color:#ffffff}
@media(max-width:850px){.team-contact__layout{grid-template-columns:1fr}}

/* ---------- layout QA fixes (Sep 30) ---------- */
/* Partnership wire: sized to the column gap so it ends in a terminal ring before the copy, instead of running into "New possibilities." */
.v2-partnership__connection{left:100%;width:calc(clamp(48px,8vw,128px) - 14px)}
.v2-partnership__connection circle{stroke:var(--blue)}
@media(max-width:1100px){.v2-partnership__connection{display:none}}
/* Background circuit traces: keep them in the empty areas, never through headings, copy, dividers or buttons */
/* (horizontal fade on the wrapper x vertical fade on the svg = traces only in the top-right, above the list) */
.v2-resources__schematic{-webkit-mask-image:linear-gradient(90deg,transparent 52%,#000000 64%);mask-image:linear-gradient(90deg,transparent 52%,#000000 64%)}
.v2-resources__schematic svg{-webkit-mask-image:linear-gradient(#000000 0,#000000 290px,transparent 380px);mask-image:linear-gradient(#000000 0,#000000 290px,transparent 380px)}
.v2-involved__traces svg{-webkit-mask-image:linear-gradient(#000000 0,#000000 150px,transparent 240px);mask-image:linear-gradient(#000000 0,#000000 150px,transparent 240px)}
@media(max-width:650px){.v2-resources__schematic,.v2-involved__traces,.footer-circuit{display:none}}
/* Long-form rows line up with the page heading instead of floating 150px in */
.editorial-rows{margin-inline:0}
/* Program accordion: the empty <i> was taking its own grid row and pushing the +/− off-center */
.v2-program-rail__toggle>i{grid-area:1/1}
/* Team page: breathing room between title and intro */
.live-team .section-intro{margin-top:18px}
/* Footer: empty legal box was adding a gap before "Pause motion" */
.site-footer__legal:not(:has(*)){display:none}
@media(max-width:650px){
  .v2-resource__graphic{display:none}
  .v2-donation{display:block}
}
