/*
Theme Name: EWOP
Theme URI: https://ewoptx.org
Author: Full Stack Tactical
Author URI: https://fullstacktactical.com
Description: Custom block theme for Empowering Women Out of Prison, a Texas 501(c)(3) running a twelve-month leadership and entrepreneurship program inside the Texas prison system with reentry support statewide.
Version: 0.9.3
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ewop
*/

/* ============================================================
   Reset
   ============================================================ */

/* Footer top margin reset (required for block themes) */
.wp-site-blocks > footer {
  margin-block-start: 0;
}

/* ============================================================
   Sticky header
   ============================================================ */

.wp-block-template-part[data-area="header"],
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--wp--preset--color--white);
  border-bottom: 1px solid var(--wp--preset--color--border-light);
}

/* EWOP wordmark logo (compact brand mark, gradient O) */
.logo-mark {
  display: inline-flex;
  align-items: flex-end;
  text-decoration: none;
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.75rem;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}
.logo-mark .e,
.logo-mark .p { color: var(--wp--preset--color--dark); }
.logo-mark .o {
  background: linear-gradient(135deg, #EE2A7B 0%, #00BCE7 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.logo-mark small {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 500;
  font-size: 0.5rem;
  letter-spacing: 0.08em;
  text-transform: none;
  color: var(--wp--preset--color--muted-on-light);
  margin-left: 8px;
  margin-bottom: 3px;
}

/* Real EWOP logo in header */
.site-logo-link { display: inline-flex; align-items: center; flex-shrink: 0; }
.site-logo-img { display: block; height: 44px; width: auto; }

/* Keep the header on one row: nav and Donate never wrap */
.site-header .wp-block-navigation { flex-wrap: nowrap; }
.donate-button-persistent { flex-shrink: 0; }
.donate-button-persistent .wp-block-button__link { white-space: nowrap; }

/* ============================================================
   Brand gradient bar (used on dark sections and cover sheets)
   ============================================================ */

.brand-bar::after,
.brand-bar-bottom::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 6px;
  background: linear-gradient(90deg, #EE2A7B 0%, #762792 50%, #00BCE7 100%);
}
.brand-bar { position: relative; padding-bottom: 6px; }

/* ============================================================
   Eyebrow - small uppercase tag with gradient dash
   Used at the top of every section to label it
   ============================================================ */

.eyebrow {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 1.75rem;
}
.eyebrow::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, #EE2A7B, #00BCE7);
}
.eyebrow.is-cyan { color: var(--wp--preset--color--cyan); }

/* ============================================================
   Equal-height card grids
   Used for: program cards, role cards, story cards, partner grid, team grid
   ============================================================ */

.equal-cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  flex-grow: 0;
}
.equal-cards > .wp-block-column > .wp-block-group {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.equal-cards .cta-bottom {
  margin-top: auto;
  justify-content: flex-start;
}

/* ============================================================
   Card visual treatments
   ============================================================ */

.card-dark {
  background: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--text-on-dark);
  border-radius: 18px;
  padding: 2.25rem;
}
.card-outlined {
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 18px;
  padding: 2rem;
}
.card-dashed {
  background: var(--wp--preset--color--white);
  border: 1px dashed var(--wp--preset--color--border-light);
  border-radius: 18px;
  padding: 2.75rem 3rem;
}
.card-light {
  background: var(--wp--preset--color--light);
  border-radius: 16px;
  padding: 1.75rem;
}

/* ============================================================
   Persistent donate button - variant of the standard button,
   used in header on every page
   ============================================================ */

.donate-button-persistent .wp-block-button__link {
  background: var(--wp--preset--color--pink-accessible);
  color: var(--wp--preset--color--white);
  border-color: var(--wp--preset--color--pink-accessible);
}
.donate-button-persistent .wp-block-button__link:hover {
  background: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--white);
  border-color: var(--wp--preset--color--dark);
}

/* ============================================================
   Big-stat treatment - Data row patterns
   ============================================================ */

.stat-big {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: clamp(3rem, 5vw, 4.25rem);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 1rem;
}
.stat-big .pink { color: var(--wp--preset--color--pink); display: block; }
.stat-big .vs {
  font-family: var(--wp--preset--font-family--raleway);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--wp--preset--color--muted-on-light);
  letter-spacing: 0;
  margin-left: 0.375rem;
  text-transform: lowercase;
}
.stat-description {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.5;
}
.stat-bordered {
  border-top: 1px solid var(--wp--preset--color--border-light);
  padding-top: 1.75rem;
}
.stat-bordered.on-dark {
  border-top-color: var(--wp--preset--color--border-dark);
}

/* ============================================================
   Citation-pending badge - used on stats lacking source
   See CLAUDE.md "Citation rules" section
   ============================================================ */

.citation-pending {
  display: inline-block;
  margin-left: 0.5rem;
  font-family: var(--wp--preset--font-family--raleway);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink-accessible);
  background: rgba(238, 42, 123, 0.08);
  border: 1px solid rgba(238, 42, 123, 0.25);
  padding: 0.1875rem 0.5rem;
  border-radius: 4px;
  vertical-align: middle;
}
.citation-pending.on-dark {
  color: #ff9bcf;
  background: rgba(238, 42, 123, 0.15);
  border-color: rgba(238, 42, 123, 0.4);
}

/* ============================================================
   Open-item placeholder note - italic gray at section level
   ============================================================ */

.open-item-note {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
  font-style: italic;
  margin-top: 2rem;
}
.open-item-note.on-dark {
  color: var(--wp--preset--color--muted-on-dark);
}

/* ============================================================
   Numbered steps (FCH "how to start", Volunteer process)
   ============================================================ */

.step-list { counter-reset: stepcount; }
.step-list .step {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 2rem;
  padding: 2rem 0;
  border-top: 1px solid var(--wp--preset--color--border-light);
  counter-increment: stepcount;
}
.step-list .step:last-child { border-bottom: 1px solid var(--wp--preset--color--border-light); }
.step-list .step::before {
  content: counter(stepcount, decimal-leading-zero);
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 3.5rem;
  line-height: 1;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #EE2A7B 0%, #762792 50%, #00BCE7 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ============================================================
   Five Driving Values - top-bordered cards in a 5-col grid
   ============================================================ */

.value-card {
  border-top: 2px solid var(--wp--preset--color--pink);
  padding-top: 1.125rem;
}
.value-card .num {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 2rem;
  letter-spacing: -0.02em;
  margin-bottom: 0.375rem;
}
.value-card .name {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  margin-bottom: 0.625rem;
}

/* ============================================================
   Embed placeholder (Bloomerang forms before integration)
   ============================================================ */

.embed-placeholder {
  background: var(--wp--preset--color--light);
  border: 2px dashed var(--wp--preset--color--border-light);
  border-radius: 16px;
  padding: 5rem 2rem;
  text-align: center;
  margin: 2rem 0;
}

/* ============================================================
   Hero shared bits (story + data variants)
   ============================================================ */

.hero-lede {
  font-size: 1.1875rem;
  line-height: 1.55;
  color: var(--wp--preset--color--muted-on-light);
  max-width: 480px;
}
.cta-secondary {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
}
.cta-secondary a {
  color: inherit;
  text-decoration: none;
}
.cta-secondary a:hover { color: var(--wp--preset--color--pink); }
.hero-subhead {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.015em;
}

/* Story hero - media placeholder ("video frame" before real footage) */
.media-card {
  position: relative;
  aspect-ratio: 5 / 4;
  border-radius: 24px;
  background: radial-gradient(circle at 30% 30%, #4a0a3a 0%, #14141F 60%, #0a1a26 100%);
  overflow: hidden;
  box-shadow: 0 30px 80px -20px rgba(20, 20, 31, 0.4);
}
.media-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, 0.4) 100%);
}
.media-card .play {
  position: absolute;
  bottom: 28px;
  left: 28px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--wp--preset--color--pink);
  z-index: 2;
}
.media-card .play::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-40%, -50%);
  border-style: solid;
  border-width: 9px 0 9px 14px;
  border-color: transparent transparent transparent #fff;
}
.media-card .media-caption {
  position: absolute;
  bottom: 38px;
  left: 100px;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-dark);
  z-index: 2;
}

/* Homepage hero + who-we-serve images as editable Cover blocks (design preserved) */
.wp-block-cover.media-card,
.serve-image-stack .wp-block-cover { min-height: 0; }
.wp-block-cover.media-card .wp-block-cover__inner-container,
.serve-image-stack .wp-block-cover__inner-container {
  position: absolute;
  inset: 0;
  padding: 0;
  margin: 0;
  max-width: none;
}
.media-card.hero-media .media-caption { left: 28px; }
.belief-h { max-width: 940px; margin-left: auto; margin-right: auto; text-align: center; }
.donate-h1 { max-width: 820px; }
/* About page: the organisation's mission statement, set as a lead statement
   with the same pink-to-cyan accent rule the testimonial card uses. */
.mission-statement {
  position: relative;
  max-width: 820px;
  padding-left: 1.75rem;
  margin-bottom: 2rem;
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: clamp(1.25rem, 2.2vw, 1.625rem);
  line-height: 1.35;
  letter-spacing: -0.01em;
}
.mission-statement::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(180deg, #EE2A7B, #00BCE7);
}
@media (max-width: 781px) {
  .mission-statement { padding-left: 1.125rem; }
  .mission-statement::before { width: 3px; }
}
/* Offset in-page anchor jumps so the sticky header doesn't cover the target */
#give, #team, #partner, #reentry, #outcomes, #learn, #connect, #curriculum, #mentorship { scroll-margin-top: 110px; }
/* Responsive YouTube video embeds */
.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #14141F; max-width: 900px; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Contact page: department directory (click-to-call) */
.dept-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3rem; max-width: 640px; }
.dept-name { font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; font-size: 0.9375rem; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.25rem; }
.dept-phone { font-family: var(--wp--preset--font-family--raleway); font-size: 1.125rem; color: var(--wp--preset--color--pink); text-decoration: none; font-weight: 600; }
.dept-phone:hover, .dept-phone:focus-visible { text-decoration: underline; }
/* Story pages: real headshot fills the testimonial photo frame */
.testimonial-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: 12px; display: block; }
.testimonial-photo:has(img)::after { content: ""; position: absolute; inset: 0; border-radius: 12px; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,0.85) 100%); pointer-events: none; }
.testimonial-photo .tag { z-index: 2; }
@media (max-width: 600px) { .dept-grid { grid-template-columns: 1fr; gap: 1.75rem; } }
/* Who-we-serve photos: tags removed, drop the darkening overlay for clean photos */
.serve-image-stack > div::after { display: none; }

/* Partner logo rotator (homepage + Program); About keeps the static grid */
.partner-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.partner-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: partner-scroll 45s linear infinite;
}
.partner-marquee:hover .partner-track,
.partner-marquee:focus-within .partner-track { animation-play-state: paused; }
.partner-slide {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-right: 4.5rem;
}
.partner-slide img {
  height: 118px;
  width: auto;
  max-width: 300px;
  object-fit: contain;
  display: block;
}
/* Square-format marks read visually smaller than wide wordmarks at a shared
   height. Lift them so they sit optically level with WorkFaith and SweetDeeds. */
.partner-slide img[src*="TDCJ-Logo"],
.partner-slide img[src*="Texas-AM-Logo"],
.partner-slide img[src*="CBC-Logo"],
.partner-slide img[src*="River-Valley-Logo"],
.partner-slide img[src*="CCCR-logo"] {
  height: 150px;
}
@media (max-width: 781px) {
  .partner-slide { margin-right: 3rem; }
  .partner-slide img { height: 92px; max-width: 230px; }
  .partner-slide img[src*="TDCJ-Logo"],
  .partner-slide img[src*="Texas-AM-Logo"],
  .partner-slide img[src*="CBC-Logo"],
  .partner-slide img[src*="River-Valley-Logo"],
  .partner-slide img[src*="CCCR-logo"] { height: 116px; }
}
@keyframes partner-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .partner-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
  .partner-marquee { -webkit-mask-image: none; mask-image: none; }
  .partner-slide[aria-hidden="true"] { display: none; }
  .partner-slide { margin: 1.5rem 2.25rem; }
}

/* Data hero - gradient stat card with dark inner panel */
.stat-card-hero {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  background: linear-gradient(135deg, #EE2A7B 0%, #762792 50%, #00BCE7 100%);
  padding: 36px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  box-shadow: 0 30px 80px -20px rgba(238, 42, 123, 0.3);
}
.stat-card-inner {
  background: rgba(20, 20, 31, 0.86);
  border-radius: 14px;
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  color: var(--wp--preset--color--text-on-dark);
}
.stat-card-inner .label {
  grid-column: 1 / -1;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--cyan);
}
.stat-card-inner .stat-num {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 2.375rem;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 6px;
}
.stat-card-inner .stat-num.pink { color: var(--wp--preset--color--pink); }
.stat-card-inner .stat-desc {
  font-size: 0.6875rem;
  line-height: 1.4;
  color: var(--wp--preset--color--muted-on-dark);
}
.stat-card-hero .grad-tag {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
}
.stat-card-hero .grad-tag::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
}

/* ============================================================
   Program cards (translucent cards on a dark section)
   ============================================================ */

.program-card {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--wp--preset--color--border-dark);
  border-radius: 18px;
  padding: 2.25rem 2rem;
  height: 100%;
}
.card-num {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  margin-bottom: 1.75rem;
}
.program-card h3 {
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}
.program-card p {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--wp--preset--color--muted-on-dark);
}

/* ============================================================
   Partners grid (six-partner attribution block)
   ============================================================ */

.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.5rem 3rem;
}
.partners-grid .partner {
  display: block;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid var(--wp--preset--color--border-light);
  padding-top: 1.5rem;
  text-align: center;
  transition: border-top-color 0.2s ease;
}
a.partner:hover .partner-name,
a.partner:focus-visible .partner-name {
  color: var(--wp--preset--color--pink-accessible);
}
a.partner:hover {
  border-top-color: var(--wp--preset--color--pink-accessible);
}
.partners-grid .partner .partner-logo {
  display: block;
  height: 170px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  object-position: center;
  margin: 0 auto 1.25rem;
}

/* ============================================================
   Testimonial rotator (homepage)
   ============================================================ */
.testi-rotator {
  position: relative;
  background: var(--wp--preset--color--dark);
  border-radius: 24px;
  padding: 3rem;
  overflow: hidden;
}
.testi-slide {
  display: none;
  grid-template-columns: 260px 1fr;
  gap: 2.5rem;
  align-items: center;
  text-decoration: none;
  color: #fff;
}
.testi-slide.is-active { display: grid; animation: testiFade 0.5s ease; }
@keyframes testiFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.testi-photo {
  width: 260px;
  height: 300px;
  border-radius: 16px;
  background-size: cover;
  background-position: center;
  background-color: #46455A;
}
.testi-mark {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: 3rem;
  line-height: 1;
  color: var(--wp--preset--color--pink);
  margin-bottom: 0.5rem;
}
.testi-quote {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: 1.5rem;
  line-height: 1.35;
  font-weight: 600;
  margin: 0 0 1.5rem;
  color: #fff;
}
.testi-attr { display: flex; flex-direction: column; margin-bottom: 1rem; }
.testi-name { font-weight: 700; font-size: 1rem; }
.testi-role { font-size: 0.875rem; color: var(--wp--preset--color--muted-on-dark); }
.testi-link {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--cyan);
}
.testi-slide:hover .testi-link { text-decoration: underline; }
.testi-dots { display: flex; gap: 10px; justify-content: center; margin-top: 2rem; }
.testi-dot {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.3);
  transition: background 0.2s ease;
}
.testi-dot.is-active { background: var(--wp--preset--color--pink); }
.testi-dot:focus-visible { outline: 2px solid var(--wp--preset--color--cyan); outline-offset: 3px; }

/* ============================================================
   Header dropdown submenus
   ============================================================ */
.site-header .wp-block-navigation__submenu-container {
  background: #fff;
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(20, 20, 31, 0.14);
  padding: 0.4rem;
  min-width: 210px;
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.875rem;
  white-space: nowrap;
}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
  background: var(--wp--preset--color--light);
}
@media (max-width: 782px) {
  .partners-grid .partner .partner-logo { height: 120px; max-width: 160px; }
  .testi-rotator { padding: 1.75rem; }
  .testi-slide.is-active { grid-template-columns: 1fr; gap: 1.5rem; }
  .testi-photo { width: 100%; height: 240px; }
  .testi-quote { font-size: 1.25rem; }
}
.partners-grid .partner .partner-name {
  display: block;
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1rem;
  text-transform: uppercase;
  line-height: 1.2;
  margin-bottom: 0.625rem;
  transition: color 0.2s ease;
}
.partners-grid .partner .partner-site {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--wp--preset--color--pink-accessible);
}
.partners-grid .partner .partner-desc {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.5;
}
.partners-grid .partner .partner-desc .pending {
  display: block;
  margin-top: 0.375rem;
  font-style: italic;
}

@media (max-width: 781px) {
  .partners-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ============================================================
   Who we serve (two-column prose + placeholder image stack)
   ============================================================ */

.serve-copy p {
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.7;
}
.serve-copy em {
  font-style: italic;
  color: var(--wp--preset--color--text-on-light);
}
.serve-image-stack {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.serve-image-stack > div {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
}
.serve-image-stack .img-tall {
  grid-row: span 2;
  background: var(--wp--preset--color--pink);
  aspect-ratio: 0.78;
}
.serve-image-stack .img-cyan {
  background: var(--wp--preset--color--cyan);
  aspect-ratio: 1.3;
}
.serve-image-stack .img-dark {
  background: #46455A;
  aspect-ratio: 1.3;
}
.serve-image-stack .img-tall,
.serve-image-stack .img-cyan,
.serve-image-stack .img-dark {
  background-size: cover;
  background-position: center;
}
.serve-image-stack > div::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.55) 100%);
  z-index: 1;
}
.serve-image-stack .tag { z-index: 2; }
.serve-image-stack .tag {
  position: absolute;
  bottom: 18px;
  left: 18px;
  right: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
}

/* ============================================================
   Testimonial card (single alumni testimonial)
   ============================================================ */

.testimonial-card {
  position: relative;
  background: var(--wp--preset--color--dark);
  border-radius: 24px;
  padding: 48px;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  align-items: center;
  color: var(--wp--preset--color--text-on-dark);
  max-width: 980px;
  margin: 0 auto;
  overflow: hidden;
}
.testimonial-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #EE2A7B, #00BCE7);
}
.testimonial-photo {
  aspect-ratio: 0.86;
  border-radius: 12px;
  background: radial-gradient(circle at 50% 40%, rgba(238, 42, 123, 0.85) 0%, #7a1aa0 60%, #14141F 100%);
  position: relative;
}
.testimonial-photo .silhouette {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.testimonial-photo .silhouette::before {
  content: '';
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  margin-top: -20px;
}
.testimonial-photo .silhouette::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 110px;
  border-radius: 70px 70px 0 0;
  background: rgba(255, 255, 255, 0.18);
}
.testimonial-photo .tag {
  position: absolute;
  bottom: 18px;
  left: 18px;
  right: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.5625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
}
.testimonial-quote-mark {
  color: var(--wp--preset--color--pink);
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 48px;
  line-height: 1;
  letter-spacing: -0.1em;
  margin-bottom: 16px;
}
.testimonial-body {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 1.75rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin-bottom: 24px;
}
.testimonial-attr .name {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.testimonial-attr .role {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-dark);
}

@media (max-width: 781px) {
  .testimonial-card {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px;
  }
}

/* ============================================================
   Get-involved stack (three full-width engagement cards)
   ============================================================ */

.involved-card {
  position: relative;
  border-radius: 18px;
  padding: 2.75rem 3rem;
}
.involved-card h3 {
  text-transform: uppercase;
  max-width: 820px;
  margin-bottom: 1rem;
}
.involved-card p {
  max-width: 820px;
  margin-bottom: 1.75rem;
  font-size: 0.9375rem;
}
.involved-card.is-dark {
  background: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--text-on-dark);
}
.involved-card.is-dark::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #EE2A7B, #00BCE7);
  border-radius: 18px 18px 0 0;
}
.involved-card.is-dark p { color: var(--wp--preset--color--muted-on-dark); }
.involved-card.is-dark .card-num { color: var(--wp--preset--color--pink); }
.involved-card.is-light {
  background: var(--wp--preset--color--white);
  border: 1px dashed var(--wp--preset--color--border-light);
}
.involved-card.is-light .card-num { color: var(--wp--preset--color--muted-on-light); }
.involved-card.is-light p { color: var(--wp--preset--color--muted-on-light); }

@media (max-width: 781px) {
  .involved-card { padding: 2rem 1.5rem; }
}

/* ============================================================
   Curriculum modules (Program page, two-column list)
   ============================================================ */

.curriculum-modules {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem 2rem;
}
.curriculum-modules .module {
  border-top: 1px solid var(--wp--preset--color--border-light);
  padding-top: 1.5rem;
}
.curriculum-modules .module .month {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  margin-bottom: 0.75rem;
}
.curriculum-modules .module h4 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}
.curriculum-modules .module p {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.5;
}

/* ============================================================
   Why twelve months - emphasized lede + comparison
   ============================================================ */

.why-lede {
  font-size: clamp(1.25rem, 2vw, 1.375rem);
  line-height: 1.55;
}
.why-lede strong {
  color: var(--wp--preset--color--pink);
  font-weight: 700;
}
.why-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--wp--preset--color--border-light);
}
.why-compare .why-label {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 0.75rem;
}
.why-compare .why-stat {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 3rem;
  line-height: 1;
  letter-spacing: -0.02em;
}
.why-compare .is-ewop .why-stat { color: var(--wp--preset--color--pink); }
.why-compare p {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-light);
  margin-top: 0.625rem;
  line-height: 1.5;
}

/* ============================================================
   Five Driving Values - five-column grid of value cards
   (.value-card defined above)
   ============================================================ */

.values-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
}

/* ============================================================
   Team grid (About page)
   ============================================================ */

.team-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.team-card .photo {
  aspect-ratio: 1 / 1;
  width: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 14px;
  background: linear-gradient(135deg, #46455A, #14141F);
  margin-bottom: 1.125rem;
  display: block;
}
.team-grid h3.team-subhead {
  font-size: 1.125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 3rem 0 1.5rem;
}
.team-card .name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.25rem;
  margin-bottom: 0.25rem;
}
.team-card .role {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
}
.team-card__btn {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.team-card__btn .photo { margin-bottom: 0.75rem; }
.team-card__btn .name,
.team-card__btn .role { display: block; }
.team-card__more {
  display: inline-block;
  margin-top: 0.6rem;
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #EE2A7B;
}
.team-card__more::after { content: " \2192"; }
.team-card__btn:hover .team-card__more { text-decoration: underline; }
.team-card__btn:focus-visible {
  outline: 2px solid #00BCE7;
  outline-offset: 4px;
  border-radius: 14px;
}
.team-bio { display: none; }

/* Bio popup (modal) */
.team-modal[hidden] { display: none; }
.team-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.team-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 20, 31, 0.6);
}
.team-modal__dialog {
  position: relative;
  background: #fff;
  width: 100%;
  max-width: 600px;
  max-height: 85vh;
  overflow-y: auto;
  border-radius: 18px;
  padding: 2.5rem;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
  animation: teamModalIn 0.2s ease;
}
@keyframes teamModalIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.team-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 40px;
  height: 40px;
  border: 0;
  background: #f2f2f5;
  border-radius: 50%;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: #14141F;
}
.team-modal__close:hover { background: #e5e5ea; }
.team-modal__photo {
  width: 96px;
  height: 96px;
  border-radius: 14px;
  object-fit: cover;
  object-position: center top;
  margin-bottom: 1rem;
}
.team-modal__name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.5rem;
  text-transform: uppercase;
  margin: 0 0 0.25rem;
}
.team-modal__role {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #EE2A7B;
  margin: 0 0 1.25rem;
}
.team-modal__bio {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #4d4d60;
}
.team-modal__bio p { margin: 0; }
body.team-modal-open { overflow: hidden; }

/* Reveal scroll-fade sections inside the block editor (front-end keeps the animation) */
.editor-styles-wrapper .fade-up {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* ============================================================
   Native editable team cards (About page)
   ============================================================ */
.team-card .team-headshot { margin: 0 0 0.85rem; }
.team-card .team-headshot img {
  aspect-ratio: 1 / 1;
  width: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 14px;
  display: block;
}
.team-card .team-name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.25rem;
  line-height: 1.15;
  text-transform: none;
  margin: 0 0 0.2rem;
}
.team-card .team-role {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
  margin: 0 0 0.65rem;
}
.team-card details.team-bio { display: block; margin: 0; }
.team-card .team-bio > summary {
  cursor: pointer;
  list-style: none;
  display: inline-block;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #EE2A7B;
}
.team-card .team-bio > summary::-webkit-details-marker { display: none; }
.team-card .team-bio > summary::after { content: " \2192"; }
.team-card .team-bio > summary:hover { text-decoration: underline; }
.team-card .team-bio[open] > summary::after { content: " \2192"; }
.team-card .team-bio p { font-size: 0.875rem; line-height: 1.6; color: #4d4d60; margin: 0; }
.team-native-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 2.75rem 1.75rem !important; }
@media (max-width: 1100px) { .team-native-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 781px) { .team-native-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 480px) { .team-native-grid { grid-template-columns: 1fr !important; } }

/* ============================================================
   Story cards (Stories page)
   ============================================================ */

.story-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.story-card {
  background: var(--wp--preset--color--light);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.story-card .photo {
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, #EE2A7B 0%, #762792 60%, #00BCE7 100%);
}
.story-card .photo.alt-1 { background: linear-gradient(160deg, #00BCE7 0%, #46455A 100%); }
.story-card .photo.alt-2 { background: linear-gradient(135deg, #46455A 0%, #EE2A7B 100%); }
.story-card .story-body {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.story-card .name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.375rem;
  margin-bottom: 0.25rem;
}
.story-card .role {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 1.125rem;
}
.story-card .quote {
  font-size: 0.9375rem;
  line-height: 1.5;
  font-style: italic;
  flex-grow: 1;
  margin-bottom: 1rem;
}
.story-card .read-more {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  text-decoration: none;
}

/* Native editable story cards (Stories page) */
.story-native-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
}
.story-card.wp-block-group { padding: 0; }
.story-card .story-photo { margin: 0; }
.story-card .story-photo img { width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; object-position: center top; display: block; }
.story-card .story-body {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.story-card .story-name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.375rem;
  margin: 0 0 0.25rem;
}
.story-card .story-role {
  font-size: 0.8125rem;
  color: var(--wp--preset--color--muted-on-light);
  margin: 0 0 1.125rem;
}
.story-card .story-quote {
  font-size: 0.9375rem;
  line-height: 1.5;
  font-style: italic;
  flex-grow: 1;
  margin: 0 0 1rem;
}
.story-card .story-readmore { margin: 0; }
.story-card .story-readmore a {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  text-decoration: none;
}
.story-card .story-readmore a:hover { text-decoration: underline; }
@media (max-width: 781px) { .story-native-grid { grid-template-columns: 1fr !important; } }

@media (max-width: 1024px) {
  .values-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 781px) {
  .curriculum-modules,
  .why-compare,
  .story-cards { grid-template-columns: 1fr; }
  .team-cards { grid-template-columns: 1fr 1fr; }
  .values-grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   Role cards (Volunteer page)
   ============================================================ */

.role-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.role-card {
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 18px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
}
.role-card .role-cta { margin-top: auto; padding-top: 1.25rem; }
.role-card .role-num {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  margin-bottom: 1.125rem;
}
.role-card h3 {
  font-size: 1.5rem;
  line-height: 1.15;
  margin-bottom: 0.875rem;
}
.role-card p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 1.25rem;
}
.role-card .meta {
  display: flex;
  gap: 1.5rem;
  padding-top: 1.125rem;
  border-top: 1px solid var(--wp--preset--color--border-light);
}
.role-card .meta .label {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 0.25rem;
}
.role-card .meta .value {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 0.9375rem;
}

/* ============================================================
   Gift tiers (Donate page)
   ============================================================ */

.tier-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.tier {
  background: var(--wp--preset--color--light);
  border-radius: 16px;
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
}
.tier.featured {
  background: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--text-on-dark);
}
.tier .amount {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 2.25rem;
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
}
.tier.featured .amount { color: var(--wp--preset--color--pink); }
.tier .tier-name {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 1.125rem;
  color: var(--wp--preset--color--muted-on-light);
}
.tier.featured .tier-name { color: var(--wp--preset--color--cyan); }
.tier p {
  font-size: 0.8125rem;
  line-height: 1.5;
  flex-grow: 1;
}
.tier.featured p { color: var(--wp--preset--color--muted-on-dark); }

/* ============================================================
   Cumulative impact (Donate variant B)
   ============================================================ */

.cumulative-big {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: clamp(5rem, 18vw, 12.5rem);
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: var(--wp--preset--color--pink);
  margin: 2rem 0 1rem;
}
.cumulative-label {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--wp--preset--color--muted-on-dark);
  margin-bottom: 3.5rem;
  max-width: 600px;
}
.cumulative-breakdown {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding-top: 2.5rem;
  border-top: 1px solid var(--wp--preset--color--border-dark);
}
.cumulative-breakdown .num {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 3rem;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 0.75rem;
}
.cumulative-breakdown .num .pink { color: var(--wp--preset--color--pink); }
.cumulative-breakdown .num .vs {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-dark);
  letter-spacing: 0;
  text-transform: lowercase;
  margin-left: 6px;
}
.cumulative-breakdown p {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-dark);
}

/* ============================================================
   Business case stats (Fair Chance Hiring)
   ============================================================ */

.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.case {
  background: var(--wp--preset--color--white);
  border-radius: 16px;
  padding: 2rem;
}
.case .case-num {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 3.5rem;
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 1rem;
  color: var(--wp--preset--color--pink);
}
.case h4,
.case h3 {
  font-size: 1.125rem;
  margin-bottom: 0.625rem;
  line-height: 1.3;
}
.case p {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.55;
}
.case .case-source {
  margin-top: 0.875rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--wp--preset--color--border-light);
  font-size: 0.6875rem;
  color: var(--wp--preset--color--muted-on-light);
  font-style: italic;
}

/* ============================================================
   Dual-path hero (Fair Chance Hiring)
   ============================================================ */

.path-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--wp--preset--color--border-dark);
  border-radius: 16px;
  padding: 2rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.path-card p { flex-grow: 1; }
.path-card.is-primary {
  border-color: var(--wp--preset--color--pink);
  background: rgba(238, 42, 123, 0.08);
}
.path-card .path-num {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--cyan);
  margin-bottom: 1.125rem;
}
.path-card .path-num.is-pink { color: #ff5c9d; }
.path-card h3,
.path-card h2 {
  font-size: 1.5rem;
  line-height: 1.15;
  margin-bottom: 0.875rem;
}
.path-card p {
  font-size: 0.9375rem;
  color: var(--wp--preset--color--muted-on-dark);
  margin-bottom: 1.5rem;
}

/* ============================================================
   Ghost link (text CTA with underline bar)
   ============================================================ */

.ghost-link a {
  display: inline-block;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink);
  text-decoration: none;
  padding-bottom: 6px;
  border-bottom: 2px solid currentColor;
}
.ghost-link.is-cyan a { color: var(--wp--preset--color--cyan); }

/* ============================================================
   Embed placeholder inner labels (Bloomerang, before integration)
   ============================================================ */

.embed-placeholder .embed-label {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 0.5rem;
}
.embed-placeholder .embed-title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 1.5rem;
  margin-bottom: 0.375rem;
}
.embed-placeholder .embed-desc {
  font-size: 0.875rem;
  color: var(--wp--preset--color--muted-on-light);
  line-height: 1.5;
}

@media (max-width: 900px) {
  .case-grid { grid-template-columns: 1fr; }
}
@media (max-width: 781px) {
  .role-cards,
  .tier-grid,
  .cumulative-breakdown { grid-template-columns: 1fr; }
}

/* ============================================================
   Animations
   ============================================================ */

.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.hover-lift {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(20, 20, 31, 0.12);
}

/* Stagger animation children inside a parent */
.stagger > *:nth-child(1) { transition-delay: 0.05s; }
.stagger > *:nth-child(2) { transition-delay: 0.15s; }
.stagger > *:nth-child(3) { transition-delay: 0.25s; }
.stagger > *:nth-child(4) { transition-delay: 0.35s; }
.stagger > *:nth-child(5) { transition-delay: 0.45s; }
.stagger > *:nth-child(6) { transition-delay: 0.55s; }

/* ============================================================
   Required: respect reduced-motion preference
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   Responsive: collapse multi-column patterns to single column
   ============================================================ */

@media (max-width: 781px) {
  .step-list .step {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .step-list .step::before { font-size: 2.5rem; }
}

/* ============================================================
   Accessibility (WCAG 2.1 AA): contrast, focus, skip link, forms
   ============================================================ */

/* Accessible pink (#C81E66 ~5.6:1 on white) for small pink TEXT on
   light backgrounds. Brand pink (#EE2A7B) is retained for large display
   numbers, gradients, and fills, where contrast rules are met or N/A.
   Dark-section eyebrows use the cyan variant instead (see patterns). */
.eyebrow,
.role-card .role-num,
.value-card .name,
.curriculum-modules .module .month,
.ghost-link a,
.cta-secondary a:hover {
  color: var(--wp--preset--color--pink-accessible);
}
.eyebrow.is-cyan { color: var(--wp--preset--color--cyan); }
.ghost-link.is-cyan a { color: var(--wp--preset--color--cyan); }

/* Visible keyboard focus indicator */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
.wp-element-button:focus-visible,
.wp-block-navigation-item a:focus-visible {
  outline: 3px solid var(--wp--preset--color--pink-accessible);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Skip-to-content link (first focusable element) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  background: var(--wp--preset--color--dark);
  color: #fff;
  padding: 0.75rem 1.25rem;
  border-radius: 0 0 8px 0;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus {
  left: 0;
}

/* Fluent Forms: brand styling + accessible focus + error contrast */
.ff-btn-submit,
.frm-fluent-form button[type="submit"] {
  background: var(--wp--preset--color--pink-accessible) !important;
  color: #fff !important;
  border: 2px solid var(--wp--preset--color--pink-accessible) !important;
  border-radius: 999px !important;
  padding: 0.9rem 2rem !important;
  font-family: var(--wp--preset--font-family--raleway) !important;
  font-weight: 700 !important;
  font-size: 0.8125rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
}
.ff-btn-submit:hover,
.ff-btn-submit:focus {
  background: var(--wp--preset--color--dark) !important;
  border-color: var(--wp--preset--color--dark) !important;
}
.frm-fluent-form input[type="text"],
.frm-fluent-form input[type="email"],
.frm-fluent-form input[type="tel"],
.frm-fluent-form input[type="url"],
.frm-fluent-form textarea,
.frm-fluent-form select {
  border-radius: 8px;
}
.frm-fluent-form input:focus,
.frm-fluent-form textarea:focus,
.frm-fluent-form select:focus {
  border-color: var(--wp--preset--color--pink-accessible);
  box-shadow: 0 0 0 2px rgba(200, 30, 102, 0.25);
  outline: 2px solid transparent;
}
.frm-fluent-form .ff-el-input--label label { font-weight: 600; }
.frm-fluent-form .text-danger,
.frm-fluent-form .error { color: #b00020; }


/* ============================================================
   Footer link contrast (WCAG AA on dark footer)
   ============================================================ */
.wp-site-blocks > footer a:where(:not(.wp-element-button)) {
  color: var(--wp--preset--color--text-on-dark);
  text-decoration: none;
}
.wp-site-blocks > footer a:where(:not(.wp-element-button)):hover,
.wp-site-blocks > footer a:where(:not(.wp-element-button)):focus-visible {
  color: var(--wp--preset--color--cyan);
  text-decoration: underline;
}


/* ============================================================
   Program - Four Phases (Gradient Spine)
   ============================================================ */
.pspine { position: relative; }
.pspine__rail {
  position: absolute;
  left: 27px; top: 12px; bottom: 12px;
  width: 3px;
  background: linear-gradient(180deg, var(--wp--preset--color--pink) 0%, #762792 50%, var(--wp--preset--color--cyan) 100%);
  border-radius: 999px;
}
.pspine__row {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 28px;
  align-items: start;
  margin-bottom: 20px;
}
.pspine__row:last-child { margin-bottom: 0; }
.pspine__node {
  width: 56px; height: 56px;
  border-radius: 999px;
  background: #fff;
  border: 3px solid var(--node-color);
  color: var(--node-color);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 18px;
  box-shadow: 0 0 0 6px var(--wp--preset--color--light);
  z-index: 1;
}
.pspine__card {
  background: #fff;
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 12px;
  padding: 24px 28px;
  box-shadow: 0 1px 2px rgba(26, 26, 36, 0.06);
}
.pspine__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 12px;
}
.pspine__label {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-color);
}
.pspine__zone {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #9a98b5;
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 999px;
  padding: 4px 12px;
  white-space: nowrap;
}
.pspine__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: var(--wp--preset--color--dark);
  margin: 0 0 16px;
}
.pspine__desc {
  font-size: 14.5px;
  line-height: 1.55;
  color: #4d4d60;
  margin: 0;
}
@media (max-width: 600px) {
  .pspine__head { flex-wrap: wrap; }
  .pspine__title { font-size: 18px; }
  .pspine__card { padding: 20px; }
  .pspine__row { gap: 18px; grid-template-columns: 48px 1fr; }
  .pspine__rail { left: 23px; }
  .pspine__node { width: 48px; height: 48px; font-size: 16px; }
}

/* Story pages: the alumni photo is an Image block inside this frame, so it can be
   swapped with the editor Replace button instead of hand-edited HTML. */
.story-photo-frame { max-width: 360px; }
.testimonial-photo .wp-block-image { margin: 0; }
.testimonial-photo .tag { margin: 0; }
.photo-lower img { object-position: center 45%; }

/* Paragraph width utilities. core/paragraph cannot store max-width as a block
   attribute, so inline max-width made these blocks parse as invalid in the editor.
   The width now lives here and the blocks carry a class instead. */
.mw-560 { max-width: 560px; }
.mw-600 { max-width: 600px; }
.mw-620 { max-width: 620px; }
.mw-680 { max-width: 680px; }
.mw-720 { max-width: 720px; }
.mw-760 { max-width: 760px; }
.mw-780 { max-width: 780px; }

/* Business Plan Advisor timeline (Mentorship page). Native heading + paragraph
   per step so staff can edit dates and descriptions in the block editor. */
.advisor-timeline { max-width: 720px; margin-top: var(--wp--preset--spacing--50); }
.advisor-timeline .timeline-step { position: relative; padding-left: 30px; padding-bottom: 28px; border-left: 2px solid var(--wp--preset--color--border-light); }
.advisor-timeline .timeline-step:last-child { padding-bottom: 0; border-left-color: transparent; }
.advisor-timeline .timeline-step::before { content: ""; position: absolute; left: -8px; top: 5px; width: 14px; height: 14px; border-radius: 50%; background: linear-gradient(135deg,#EE2A7B 0%,#762792 50%,#00BCE7 100%); }
.advisor-timeline .timeline-head { font-size: 1.05rem; font-weight: 800; margin: 0 0 4px; letter-spacing: 0; }
.advisor-timeline .timeline-desc { margin: 0; color: var(--wp--preset--color--muted-on-light); font-size: 0.95rem; line-height: 1.6; max-width: 620px; }

/* Business Plan Advisor hero photo (Mentorship page) */
.bpa-hero-photo img { border-radius: 18px; width: 100%; height: auto; display: block; }

/* ============================================================
   Donate: giving levels (five across, placeholder container)
   Amounts, descriptions, and photos pending from EWOP.
   ============================================================ */
.giving-levels {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
}
.giving-level {
  background: var(--wp--preset--color--white);
  border: 1px dashed var(--wp--preset--color--border-light);
  border-radius: 16px;
  padding: 1.25rem 1.125rem 1.5rem;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.giving-level__photo {
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  background: #ECEBF1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
  margin-bottom: 1rem;
}
.giving-level__amount {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.625rem;
  letter-spacing: -0.02em;
  margin-bottom: 0.375rem;
}
.giving-level__desc {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--wp--preset--color--muted-on-light);
  flex-grow: 1;
  margin: 0;
}

/* ============================================================
   Donate: The Empowered Alliance (monthly giving)
   ============================================================ */
.alliance-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.alliance-pull {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-style: italic;
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 0 0 1.75rem;
}
.alliance-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink-accessible);
  text-decoration: none;
  border: 2px solid var(--wp--preset--color--pink);
  border-radius: 999px;
  padding: 0.9rem 1.5rem;
  background: transparent;
  cursor: pointer;
}
.alliance-cta::after {
  content: "\2192";
  font-size: 1.25rem;
  line-height: 1;
  transition: transform 0.2s ease;
}
.alliance-cta:hover,
.alliance-cta:focus-visible {
  background: var(--wp--preset--color--pink);
  color: var(--wp--preset--color--white);
}
.alliance-cta:hover::after { transform: translateX(4px); }
.alliance-form {
  background: var(--wp--preset--color--white);
  border-radius: 18px;
  padding: 1.25rem;
  box-shadow: 0 4px 24px rgba(20, 20, 31, 0.08);
}
.alliance-form .qgiv-embed-container { max-width: 100%; }

/* ============================================================
   Donate: additional ways to give (disclosure cards)
   ============================================================ */
.give-ways {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: start;
}
.give-way {
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 16px;
  overflow: hidden;
}
.give-way > summary {
  list-style: none;
  cursor: pointer;
  padding: 1.75rem 1.5rem;
  display: block;
}
.give-way > summary::-webkit-details-marker { display: none; }
.give-way > summary:focus-visible {
  outline: 2px solid var(--wp--preset--color--cyan);
  outline-offset: -2px;
}
.give-way__label {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--pink-accessible);
  display: block;
  margin-bottom: 0.75rem;
}
.give-way__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 900;
  font-size: 1.0625rem;
  text-transform: uppercase;
  line-height: 1.25;
  margin: 0;
  display: block;
}
.give-way__more {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
  margin-top: 1rem;
  display: inline-block;
}
.give-way__more::after { content: " \002B"; }
.give-way[open] .give-way__more::after { content: " \2212"; }
.give-way > summary:hover .give-way__more { text-decoration: underline; }
.give-way__body {
  padding: 0 1.5rem 1.75rem;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--wp--preset--color--muted-on-light);
}
.give-way__body p { margin: 0 0 0.875rem; }
.give-way__body h4 {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--text-on-light);
  margin: 1.25rem 0 0.625rem;
}
.give-way__body ul { margin: 0 0 0.875rem; padding-left: 1.125rem; }
.give-way__body li { margin-bottom: 0.375rem; }
.give-way__body a { color: var(--wp--preset--color--pink-accessible); }
.give-way__legal {
  list-style: none;
  padding: 0.875rem 1rem;
  margin: 0 0 0.875rem;
  background: var(--wp--preset--color--light);
  border-radius: 10px;
  font-size: 0.8125rem;
}
.give-way__legal li { margin: 0 0 0.25rem; }
.give-way__legal li:last-child { margin: 0; }

/* Clearly marked slot for a third-party embed not yet supplied */
.embed-slot {
  border: 2px dashed rgba(238, 42, 123, 0.35);
  background: rgba(238, 42, 123, 0.04);
  border-radius: 12px;
  padding: 1.5rem 1.25rem;
  text-align: center;
  font-style: italic;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: var(--wp--preset--color--muted-on-light);
  margin: 0 0 0.875rem;
}

/* ============================================================
   Partners page
   ============================================================ */
.tdcj-highlight {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 3rem;
  align-items: center;
}
.tdcj-highlight__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 16px;
  padding: 1.5rem;
  min-height: 150px;
}
.tdcj-highlight__mark img {
  max-width: 100%;
  max-height: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.tdcj-highlight p {
  font-size: 1.0625rem;
  line-height: 1.75;
  margin: 0;
  max-width: 680px;
}

.partner-logo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.partner-tile {
  background: var(--wp--preset--color--white);
  border: 1px solid var(--wp--preset--color--border-light);
  border-radius: 16px;
  padding: 1.75rem 1.25rem;
  min-height: 168px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  text-align: center;
}
.partner-tile img {
  max-height: 68px;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.partner-tile__name {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--wp--preset--color--text-on-light);
}
.partner-tile.is-placeholder {
  border-style: dashed;
  background: var(--wp--preset--color--light);
}
.partner-tile.is-placeholder .partner-tile__name { color: var(--wp--preset--color--muted-on-light); }

.partner-namelist {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 2.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.partner-namelist li {
  font-size: 0.9375rem;
  line-height: 1.5;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--wp--preset--color--border-light);
}
.partner-namelist.is-two-up { grid-template-columns: repeat(2, 1fr); }

.partner-form-wrap {
  background: var(--wp--preset--color--white);
  border-radius: 18px;
  padding: 2rem;
  max-width: 780px;
}

/* ============================================================
   Responsive: donate + partners additions
   ============================================================ */
@media (max-width: 1024px) {
  .giving-levels { grid-template-columns: repeat(3, 1fr); }
  .partner-logo-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-namelist { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .alliance-cols { grid-template-columns: 1fr; gap: 2rem; }
  .alliance-cta::after { transform: rotate(90deg); }
  .alliance-cta:hover::after { transform: rotate(90deg) translateX(4px); }
  .give-ways { grid-template-columns: 1fr; }
  .tdcj-highlight { grid-template-columns: 1fr; gap: 1.75rem; }
}
@media (max-width: 781px) {
  .giving-levels { grid-template-columns: repeat(2, 1fr); }
  .partner-namelist,
  .partner-namelist.is-two-up { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .giving-levels { grid-template-columns: 1fr; }
  .partner-logo-grid { grid-template-columns: 1fr; }
}

/* Partner tile: visible placeholder where a logo has not been supplied */
.partner-tile__pending {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 68px;
  border-radius: 10px;
  background: #ECEBF1;
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted-on-light);
}

/* Donate "additional ways to give" card titles render exactly as written */
.give-way__title { text-transform: none; }

/* About page: partner logo row teaser. Logos only, detail lives on /partners. */
.partner-logos-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2.25rem 3rem;
}
.partner-logos-row img {
  height: 56px;
  width: auto;
  max-width: 148px;
  object-fit: contain;
  display: block;
}
@media (max-width: 781px) {
  .partner-logos-row { gap: 1.75rem 2rem; justify-content: space-between; }
  .partner-logos-row img { height: 44px; max-width: 116px; }
}

/* ============================================================
   Donate: hero two-column (text left, giving form right)
   Breakpoint matches the Empowered Alliance section at 900px.
   ============================================================ */
.donate-hero-cols { gap: 3rem; }
.qgiv-embed-wrap { max-width: 100%; }
.qgiv-embed-wrap iframe,
.alliance-form iframe { max-width: 100%; }
@media (max-width: 900px) {
  .donate-hero-cols { flex-wrap: wrap; gap: 2rem; }
  .donate-hero-cols > .wp-block-column { flex-basis: 100% !important; }
}

/* Section photo used inside a text column */
.section-photo { margin: 0; }
.section-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
}

/* Photo above the Empowered Alliance pull quote */
.alliance-photo {
  margin: 0 0 var(--wp--preset--spacing--60);
  max-width: 340px;
}
.alliance-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
}

/* Giving levels: real photos replace the placeholder tiles */
.giving-level { border-style: solid; }
.giving-level__photo { overflow: hidden; }
.giving-level__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.giving-level__name {
  font-family: var(--wp--preset--font-family--raleway);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.4;
  color: var(--wp--preset--color--pink-accessible);
  margin-bottom: 0.75rem;
}

/* Give-by-mail details, kept with the Additional Ways to Give cards */
.give-way__note {
  margin-top: var(--wp--preset--spacing--50);
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--wp--preset--color--muted-on-light);
  max-width: 720px;
}
.give-way__note a { color: var(--wp--preset--color--pink-accessible); }

/* Partner tiles and name lists link out to partner websites */
a.partner-tile {
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
a.partner-tile:hover,
a.partner-tile:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(20, 20, 31, 0.10);
}
.partner-namelist a {
  color: inherit;
  text-decoration: none;
}
.partner-namelist a:hover,
.partner-namelist a:focus-visible {
  color: var(--wp--preset--color--pink-accessible);
  text-decoration: underline;
}


/* ============================================================
   Double the Donation matching-gift widget (Donate page)
   Vendor markup restyled to the EWOP system. Double the Donation
   injects its own cross-origin stylesheets at runtime, after the
   theme CSS, using #dd-container .lets-check, so these rules need
   both the extra class and !important to win. The attribution in
   .dtd-footer is required by the vendor, leave it alone.
   ============================================================ */

#dd-container { margin: 0 0 0.875rem; }
#dd-container .dtd-plugin { width: 100%; }
#dd-container .dtd-plugin .dtd-callout {
  border: 1px solid var(--wp--preset--color--border-light) !important;
  border-radius: 12px !important;
  background: var(--wp--preset--color--white) !important;
}
#dd-container .dtd-plugin .dtd-search-input {
  font-family: var(--wp--preset--font-family--raleway) !important;
  font-size: 0.875rem !important;
  border: 1px solid var(--wp--preset--color--border-light) !important;
  border-radius: 8px !important;
}
#dd-container .dtd-plugin .dtd-search-input:focus-visible {
  outline: 2px solid var(--wp--preset--color--pink-accessible) !important;
  outline-offset: 1px;
}
#dd-container .dtd-plugin .lets-check {
  background-color: var(--wp--preset--color--pink-accessible) !important;
  border: 1px solid var(--wp--preset--color--pink-accessible) !important;
  color: var(--wp--preset--color--white) !important;
  font-family: var(--wp--preset--font-family--raleway) !important;
  font-weight: 700 !important;
  font-size: 0.8125rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  border-radius: 999px !important;
  padding: 12px 24px !important;
  width: auto !important;
}
#dd-container .dtd-plugin .lets-check:hover,
#dd-container .dtd-plugin .lets-check:focus {
  background-color: var(--wp--preset--color--dark) !important;
  border-color: var(--wp--preset--color--dark) !important;
  color: var(--wp--preset--color--white) !important;
}
#dd-container .dtd-plugin .lets-check:focus-visible {
  outline: 2px solid var(--wp--preset--color--pink-accessible) !important;
  outline-offset: 2px;
}
#dd-container .dtd-plugin .dtd-footer { font-size: 0.6875rem; }

/* The vendor puts the button in a 1/3-width Foundation grid cell, which
   wraps the label onto two lines once it is uppercased. Let the cell size
   to the button and centre it. */
#dd-container .dtd-plugin .dtd-lets-check { justify-content: center !important; }
#dd-container .dtd-plugin .dtd-lets-check > .cell {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}

/* ============================================================
   Client feedback, September 2026
   ============================================================ */

/* Homepage, who-we-serve collage: the top-right frame is landscape while the
   source photo is portrait, so a centred crop cut the speaker's forehead.
   Bias the crop toward the top of the source so her head stays in frame. */
.serve-image-stack .img-cyan img { object-position: 50% 20%; }

/* About, Our Story: the section now reads text left, photo right. The prose
   column runs much taller than the photo, so pin the photo while the story
   scrolls past it rather than leaving a dead column of white space. */
.our-story-photo { position: sticky; top: 110px; }
@media (max-width: 781px) {
  .our-story-photo {
    position: static;
    top: auto;
    margin-bottom: var(--wp--preset--spacing--50);
  }
}

/* Donate, The Empowered Alliance: pull quote sits above the photo, the CTA
   below it, so the button matches the CTA placement used elsewhere. */
.alliance-left .alliance-pull { max-width: 24ch; }
