/* EruvSuite page sections for the page builder. Loaded in the editing canvas and on every published builder page, so both draw the same.
   Colors and fonts come from the community's theme (/theme.css): --color-teal, --color-teal-deep, --color-teal-night, --color-gold,
   --color-gold-deep, --color-sage, --color-ivory, --color-ink, --color-line, --font-serif, --font-sans. */
body { margin: 0; background: var(--color-ivory, #faf8f2); color: var(--color-ink, #44504f); font-family: var(--font-sans, system-ui, sans-serif); line-height: 1.6; }
.es-section { position: relative; }
.es-section p { margin: 0; }
.es-section p + p, .es-text p + p { margin-top: 1.25rem; }
.es-section a { color: var(--color-teal); }
.es-section img { max-width: 100%; height: auto; display: block; }
.es-center { text-align: center; }
.es-h1 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(2.6rem, 6vw, 4.5rem); line-height: 1.02; color: inherit; }
.es-h2 { margin: 0 0 1.25rem; font-family: var(--font-serif); font-weight: 600; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; color: var(--color-teal-night); }
.es-h2--s { font-size: 1.5rem; } .es-h2--m { font-size: clamp(1.75rem, 3vw, 2.25rem); } .es-h2--l { font-size: clamp(2.25rem, 4vw, 3rem); }
.es-h3 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 1.5rem; color: var(--color-teal-night); }
.es-eyebrow { margin: 0 0 .75rem; font-size: .75rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--color-gold-deep); }
.es-eyebrow--gold { color: var(--color-gold); }
.es-lead { font-size: 1.125rem; line-height: 1.65; }
.es-btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 3rem; padding: 0 1.75rem; margin-top: 1.75rem; border-radius: .5rem; background: var(--color-teal); color: #fff; font-weight: 600; text-decoration: none; transition: background .2s, transform .18s; }
.es-section .es-btn { color: #fff; }
.es-btn:hover { background: var(--color-teal-deep); transform: translateY(-2px); }
.es-btn--gold, .es-section .es-btn--gold { background: var(--color-gold); color: var(--color-teal-night); } .es-btn--gold:hover { background: #e4b23f; }
.es-btn--sage, .es-section .es-btn--sage { background: var(--color-sage); color: var(--color-teal-night); min-height: 2.75rem; padding: 0 1.25rem; } .es-btn--sage:hover { background: #c9dde0; }
.es-btn--night, .es-section .es-btn--night { background: var(--color-teal-night); color: #fff; } .es-btn--night:hover { background: var(--color-teal-deep); }
.es-btn--outline, .es-section .es-btn--outline { background: #fff; color: var(--color-teal-night); border: 1px solid var(--color-teal); } .es-btn--outline:hover { background: var(--color-sage); }
.es-btn--teal { background: var(--color-teal); }
.es-tone--ivory { background: var(--color-ivory); } .es-tone--white { background: #fff; } .es-tone--sage { background: color-mix(in srgb, var(--color-sage) 50%, transparent); }

/* Hero */
.es-hero { isolation: isolate; overflow: hidden; background: var(--color-teal-night); color: #fff; }
.es-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.es-hero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, color-mix(in srgb, var(--color-teal-night) 95%, transparent), color-mix(in srgb, var(--color-teal-night) 70%, transparent) 50%, color-mix(in srgb, var(--color-teal-night) 10%, transparent)); }
.es-hero__in { display: grid; gap: 2.5rem; align-items: center; max-width: 1440px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-hero__copy { max-width: 36rem; }
.es-hero__copy .es-lead { margin-top: 1.5rem; max-width: 28rem; color: rgba(255,255,255,.9); }
.es-hero__in [data-es-widget="tracker"], .es-hero__in .es-w--tracker { width: 100%; max-width: 36rem; justify-self: end; }
@media (min-width: 768px) { .es-hero__in { padding: 5rem 2.5rem; } }
@media (min-width: 1024px) { .es-hero__in { padding: 7rem 3.5rem; gap: 4rem; } .es-hero__in--tracker { grid-template-columns: 1.1fr .9fr; } }

/* About */
.es-about { background: var(--color-ivory); }
.es-about__in { display: grid; max-width: 1440px; margin: 0 auto; }
.es-about__media { position: relative; aspect-ratio: 4 / 3; }
.es-about__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.es-about__body { display: grid; gap: 2.5rem; padding: 3.5rem 1.25rem; }
.es-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; align-self: center; }
.es-item { display: flex; align-items: center; gap: 1rem; }
.es-item__icon { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 9999px; background: var(--color-sage); color: var(--color-teal); font-size: 1.25rem; }
.es-item strong { display: block; color: var(--color-teal-night); }
.es-item__text { display: block; font-size: .875rem; }
@media (min-width: 768px) { .es-about__body { padding: 3.5rem 2.5rem; } }
@media (min-width: 1024px) { .es-about__in--image { grid-template-columns: .8fr 1.2fr; } .es-about__media { aspect-ratio: auto; min-height: 28rem; } .es-about__body { padding: 5rem 3.5rem; gap: 3rem; } .es-about__body--items { grid-template-columns: 1.2fr .8fr; } }

/* Rich text and document pages */
.es-rich__in { max-width: 48rem; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-rich--doc .es-rich__in { max-width: 1440px; padding: 1.5rem 1rem; }
.es-rich--doc .es-rich__in p { white-space: pre-line; }
.es-rich--doc .es-h2 { margin-bottom: 1rem; }
@media (min-width: 768px) { .es-rich__in { padding: 3.5rem 2.5rem; } .es-rich--doc .es-rich__in { padding: 1.5rem 2.5rem; } }
@media (min-width: 1024px) { .es-rich__in { padding: 5rem 2.5rem; } .es-rich--doc .es-rich__in { padding: 2rem 3.5rem; } }

/* Image + text */
.es-imagetext { background: #fff; }
.es-imagetext__in { display: grid; gap: 2.5rem; align-items: center; max-width: 1200px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-imagetext__img { width: 100%; border-radius: 1rem; object-fit: cover; }
@media (min-width: 768px) { .es-imagetext__in { padding: 3.5rem 2.5rem; } }
@media (min-width: 1024px) { .es-imagetext__in { grid-template-columns: 1fr 1fr; gap: 4rem; padding: 5rem 2.5rem; } .es-imagetext__in--noimage { grid-template-columns: 1fr; } .es-imagetext__img--right { order: 2; } }

/* Highlights */
.es-features { background: var(--color-ivory); }
.es-features__in { max-width: 1200px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-features__in .es-h2 { margin-bottom: 2.5rem; }
.es-features__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; }
.es-feature { display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; border: 1px solid var(--color-line); border-radius: 1rem; background: #fff; }
.es-feature strong { display: block; font-size: 1.125rem; color: var(--color-teal-night); }
.es-feature .es-item__text { margin-top: .25rem; line-height: 1.6; }
@media (min-width: 640px) { .es-features__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .es-features__grid { grid-template-columns: 1fr 1fr 1fr; } .es-features__in { padding: 5rem 2.5rem; } }

/* Call to action */
.es-cta { text-align: center; }
.es-cta--teal { background: var(--color-teal-night); color: #fff; } .es-cta--teal .es-h2 { color: #fff; }
.es-cta--gold { background: var(--color-gold); color: var(--color-teal-night); }
.es-cta--sage { background: var(--color-sage); color: var(--color-teal-night); }
.es-cta__in { max-width: 48rem; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-cta__in .es-lead { max-width: 36rem; margin: 1rem auto 0; opacity: .9; }
.es-cta__in .es-btn { margin-top: 2rem; }
@media (min-width: 1024px) { .es-cta__in { padding: 4rem 2.5rem; } }

/* Image, columns, single elements, live blocks */
.es-image { background: var(--color-ivory); }
.es-image__in { max-width: 1000px; margin: 0 auto; padding: 2.5rem 1.25rem; }
.es-figure { margin: 0; } .es-figure img { width: 100%; border-radius: 1rem; } .es-figure figcaption { margin-top: .75rem; text-align: center; font-size: .875rem; }
.es-columns__in { display: grid; gap: 2rem; max-width: 1200px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-columns__in--middle { align-items: center; }
.es-col > * + * { margin-top: 1.25rem; }
.es-col .es-btn { margin-top: 0; }
@media (min-width: 768px) { .es-columns__in { gap: 3rem; padding: 3.5rem 2.5rem; } .es-columns__in--2 { grid-template-columns: 1fr 1fr; } .es-columns__in--3 { grid-template-columns: 1fr 1fr 1fr; } .es-columns__in--1-2 { grid-template-columns: 1fr 2fr; } .es-columns__in--2-1 { grid-template-columns: 2fr 1fr; } }
.es-element { background: var(--color-ivory); }
.es-element__in { max-width: 48rem; margin: 0 auto; padding: 1rem 1.25rem; }
.es-element__in .es-btn { margin-top: 0; }
.es-spacer--s { height: 1.5rem; } .es-spacer--m { height: 3rem; } .es-spacer--l { height: 6rem; }
.es-live { background: var(--color-ivory); }
.es-live__in { max-width: 48rem; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-live__in .es-h2 { text-align: center; }

/* Live blocks on the published page (progress bar, match banner, campaign) when they sit outside a section of their own. */
.es-widget { max-width: 48rem; margin: 0 auto; padding: 2.5rem 1.25rem; }
.es-live__in .es-widget { max-width: none; padding: 0; }
.es-widget__desc { max-width: 42rem; margin: -.5rem auto 1.5rem; text-align: center; line-height: 1.6; }

/* Live-block stand-ins drawn in the editing canvas (never on the published page). */
.es-w { font-family: var(--font-sans); color: var(--color-ink); }
.es-w__note { margin: 1rem 0 0; padding: .6rem .8rem; border: 1px dashed #94a3b8; border-radius: .5rem; background: rgba(255,255,255,.7); font-size: .8rem; color: #475569; }
.es-w__bar { position: relative; height: 1.25rem; overflow: hidden; border-radius: 9999px; background: var(--color-sage); }
.es-w__fill { display: flex; align-items: center; justify-content: flex-end; height: 100%; min-width: 2.5rem; padding-right: .5rem; border-radius: 9999px; background: var(--color-teal); color: #fff; font-size: .7rem; font-weight: 700; }
.es-w__meta { margin: .75rem 0 0; font-size: .9rem; } .es-w__meta strong { color: var(--color-teal-night); }
.es-w__desc { text-align: center; max-width: 42rem; margin: -.5rem auto 1.25rem; }
.es-w__match { display: grid; gap: .4rem; margin-top: 1.25rem; padding: 1rem; border: 1px solid color-mix(in srgb, var(--color-gold) 70%, transparent); border-radius: .75rem; background: color-mix(in srgb, var(--color-gold) 15%, transparent); font-size: .9rem; }
.es-w__match strong { font-family: var(--font-serif); font-size: 1.25rem; color: var(--color-teal-night); }
.es-w__btn { display: flex; align-items: center; justify-content: center; min-height: 3rem; margin-top: 1rem; border-radius: .5rem; background: var(--color-teal); color: #fff; font-weight: 600; }
.es-w__btn--ghost { background: #fff; color: var(--color-teal-night); border: 1px solid var(--color-teal); margin-top: .75rem; }
.es-w--donate, .es-w--campaign .es-w__form { text-align: center; }
.es-w--donate { background: #fff; }
.es-w__form { max-width: 1000px; margin: 0 auto; padding: 4rem 1.25rem; }
.es-w__form > p { max-width: 36rem; margin: 1rem auto 0; }
.es-w__tabs { display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; }
.es-w__tabs span, .es-w__amounts span { padding: .75rem 1.25rem; border: 1px solid var(--color-line); border-radius: .5rem; background: #fff; font-weight: 600; color: var(--color-teal-night); }
.es-w__tabs .is-on, .es-w__amounts .is-on { background: var(--color-teal); border-color: var(--color-teal); color: #fff; }
.es-w__amounts { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 1.25rem; }
.es-w__fields { display: grid; gap: .75rem; max-width: 36rem; margin: 1.5rem auto 0; }
.es-w__fields span { display: block; min-height: 3rem; padding: .8rem 1rem; border: 1px solid var(--color-line); border-radius: .5rem; background: #fff; text-align: left; color: #94a3b8; }
.es-w__form .es-w__btn { max-width: 36rem; margin: 1.25rem auto 0; }
.es-w--subscribe { background: color-mix(in srgb, var(--color-sage) 50%, transparent); }
.es-w__sub { display: grid; gap: 2rem; align-items: center; max-width: 1200px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-w__sub .es-w__fields { margin-top: 0; }
.es-w__check { margin: .75rem 0 0; font-size: .85rem; }
@media (min-width: 1024px) { .es-w__sub { grid-template-columns: 1fr 1fr; } }
.es-w--progress, .es-w--match, .es-w--campaign { max-width: 48rem; margin: 0 auto; padding: 1rem 0; }
.es-w--progress .es-h2, .es-w--match .es-h2, .es-w--campaign .es-h2 { text-align: center; }
.es-w__card { padding: 1.5rem; border: 1px solid rgba(255,255,255,.6); border-radius: 1rem; background: #fff; box-shadow: 0 20px 25px -5px rgba(2,49,58,.2); color: var(--color-ink); }
.es-w__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.es-w__big { align-items: flex-end; margin: 1.25rem 0; }
.es-w__big b { display: block; font-family: var(--font-serif); font-size: 2.75rem; line-height: 1; color: var(--color-teal-night); }
.es-w__big small { display: block; margin-top: .5rem; font-size: .9rem; }
.es-w__right { text-align: right; }
.es-w--map { max-width: 1200px; margin: 0 auto; padding: 3.5rem 1.25rem; }
.es-w__maphead { max-width: 42rem; margin-bottom: 2rem; }
.es-w__map { display: grid; place-items: center; overflow: hidden; border: 1px solid var(--color-line); border-radius: 1rem; background: var(--color-sage) repeating-linear-gradient(0deg, transparent 0 39px, rgba(0,0,0,.05) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(0,0,0,.05) 39px 40px); text-align: center; }
.es-w__map--satellite { background-color: #3b4a3f; color: #fff; }
.es-w__map > div { display: grid; gap: .35rem; padding: 1.25rem 1.5rem; border-radius: .75rem; background: rgba(255,255,255,.85); color: var(--color-ink); }
.es-w__map strong { font-family: var(--font-serif); font-size: 1.5rem; color: var(--color-teal-night); }
.es-w__map small { color: #64748b; }
