/* ─── MISSION WEST CDP — INNER PAGES ─────────────────────────────────────── */

:root {
  /* ── Structural backgrounds ── */
  --cedars:   #002446;   /* Deep Cedars — primary dark base */
  --missions: #002446;   /* Shadow of the Missions — alternate dark base */
  /* ── Site-wide accent ── */
  --larch:    #B7653A;   /* Fall Larch — backgrounds, large headlines, AA-safe ONLY on dark surfaces */
  --larch-text: #8b5e1a; /* Larch-tone darkened to pass AA on light surfaces (4.99:1 on cream) */
  /* ── Dept colors ── */
  --bdc:      #266A82;   /* Flathead Lake Blue */
  --fec:      #2F5D46;   /* Subalpine Green */
  --cdc:      #2F6F63;   /* Flatwater */
  --ced:      #D8CEA3;   /* Montana Harvest */
  /* ── Utility ── */
  --wheat:    #D8CEA3;   /* Montana Harvest — wheat section backgrounds */
  --harvest:  #D8CEA3;   /* Montana Harvest alias */
  --cream:    #f5f0e8;
  --white:    #ffffff;
  --display:  'Lexend Deca', sans-serif;
  --body:     'Source Sans 3', sans-serif;
  --ease:     cubic-bezier(0.4, 0, 0.2, 1);
  /* ── Fallbacks for non-dept pages (about, contact, news, events, resources) */
  --dept-color:  var(--cedars);
  --dept-base:   var(--missions);
  --dept-accent: var(--larch);
}

/* ─── DEPT PAGE COLOR TOKENS ───────────────────────────────────────────── */
/* --dept-color: lighter identity color (hero, CTA, accent sections)       */
/* --dept-base:  complementary dark base (alternate section backgrounds)    */

body.is-bdc-page          { --dept-color: var(--bdc); --dept-base: var(--missions); --dept-accent: var(--larch); }
body.is-fec-page          { --dept-color: var(--fec); --dept-base: var(--cedars);   --dept-accent: var(--larch); }
body.is-cdc-page          { --dept-color: var(--cdc); --dept-base: var(--missions); --dept-accent: var(--larch); }
body.is-ced-page          { --dept-color: var(--ced); --dept-base: var(--cedars);   --dept-accent: var(--missions); }
body.is-harvest-on-main-page { --dept-color: var(--fec); --dept-base: var(--cedars);  --dept-accent: var(--larch); }

/* ─── HEADER: ALL INNER PAGES ──────────────────────────────────────────── */

body:not(.home) .site-header {
  position: sticky;
  top: 0;
  z-index: 1000; /* sticky forms a stacking context; without this, page sections paint over the mobile nav drawer trapped inside it */
  height: 90px;
  background: #F7F2E8 !important;
  box-shadow: 0 1px 24px rgba(0,36,70,0.10) !important;
  transition: none;
}
.admin-bar body:not(.home) .site-header { top: 32px; }

body:not(.home) .mw-logo-img { height: 74px; }

/* Kill Genesis top gap below sticky header */
body:not(.home) .site-inner,
body:not(.home) .content-sidebar-wrap {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ─── GENESIS WRAPPER NEUTRALIZE: DEPT PAGES ──────────────────────────── */

.is-dept-page .site-container,
.is-dept-page .site-inner,
.is-dept-page .content-sidebar-wrap,
.is-dept-page .content,
.is-dept-page .entry,
.is-dept-page .entry-content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

/* ─── BUTTONS ───────────────────────────────────────────────────────────── */

.btn {
  display: inline-flex;
  align-items: center;
  font-family: var(--body);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 2px;
  text-decoration: none;
  transition: all 0.22s var(--ease);
  cursor: pointer;
  border: none;
}
.btn-white { background: #fff; color: var(--cedars); }
.btn-white:hover { background: var(--cream); color: var(--cedars); }
.btn-outline-white { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.5); }
.btn-outline-white:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.85); color: #fff; }
.btn-dept { background: var(--dept-color, var(--cedars)); color: #fff; }
.btn-dept:hover { filter: brightness(1.08); color: #fff; }
.btn-dept-outline { background: transparent; color: var(--dept-color, var(--cedars)); border: 1.5px solid var(--dept-color, var(--cedars)); }
.btn-dept-outline:hover { background: var(--dept-color, var(--cedars)); color: #fff; }
/* On dark sections a dept-colored outline (e.g. FEC green) vanishes — go cream. */
.prog-section--missions .btn-dept-outline,
.prog-section--cedars   .btn-dept-outline { color: var(--cream); border-color: rgba(245,240,232,0.6); }
.prog-section--missions .btn-dept-outline:hover,
.prog-section--cedars   .btn-dept-outline:hover { background: var(--cream); color: var(--cedars); border-color: var(--cream); }

/* ─── DEPT HERO ─────────────────────────────────────────────────────────── */

.dept-hero {
  padding: 72px 16vw 80px;
  color: #fff;
  position: relative;
  overflow: hidden;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.dept-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.2);
  z-index: 0;
}
.dept-hero > * { position: relative; z-index: 1; }
.dept-bdc { background-color: var(--bdc); }
.dept-fec { background-color: var(--fec); }
.dept-cdc { background-color: var(--cdc); }
.dept-ced { background-color: var(--ced); }

.dept-breadcrumb {
  font-family: var(--body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 24px;
}
.dept-breadcrumb a { color: rgba(255,255,255,0.6); text-decoration: none; }
.dept-breadcrumb a:hover { color: #fff; }
.dept-breadcrumb span { color: rgba(255,255,255,0.35); margin: 0 8px; }

.dept-hero h1 {
  font-family: var(--display);
  font-size: clamp(2rem, 4.5vw, 3.6rem);
  font-weight: 800;
  line-height: 1.06;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: -0.025em;
}
.dept-hero-tagline {
  font-family: var(--body);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  color: rgba(255,255,255,0.88);
  max-width: 620px;
  line-height: 1.65;
  margin: 0 0 36px;
}
.dept-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ─── SECTIONS ──────────────────────────────────────────────────────────── */

.dept-section { padding: 88px 16vw; }
.dept-section--alt { background: #f7f5f1; }

.dept-section-head { margin-bottom: 52px; }
.dept-section-head h2 {
  font-family: var(--display);
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 14px;
  letter-spacing: -0.022em;
}
.dept-section-head p {
  font-family: var(--body);
  font-size: 17px;
  color: #555;
  max-width: 600px;
  line-height: 1.7;
  margin: 0;
}

/* ─── OVERVIEW 2-COL ────────────────────────────────────────────────────── */

.dept-overview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.dept-overview-text h2 {
  font-family: var(--display);
  font-size: clamp(1.6rem, 2.6vw, 2.3rem);
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 24px;
  letter-spacing: -0.022em;
}
.dept-overview-text p {
  font-family: var(--body);
  font-size: 17px;
  line-height: 1.75;
  color: #444;
  margin-bottom: 18px;
}
.dept-overview-text p:last-child { margin-bottom: 0; }
.dept-img-ph {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #ddd9d0 0%, #c8c3b8 100%);
  border-radius: 10px;
}

/* ─── SERVICES GRID ─────────────────────────────────────────────────────── */

.dept-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.dept-service-card {
  background: #fff;
  border-radius: 10px;
  padding: 32px 36px;
  border-left: 4px solid var(--dept-color, var(--cedars));
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
}
.dept-section--alt .dept-service-card { background: #fff; }
.dept-service-card h3 {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 10px;
}
.dept-service-card p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.65;
  margin: 0;
}

/* ─── PROGRAMS GRID ─────────────────────────────────────────────────────── */

.dept-programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.dept-programs-grid--2col { grid-template-columns: repeat(2, 1fr); }

.dept-program-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.dept-program-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 36px rgba(0,0,0,0.12);
}
.dept-program-card-bar { height: 4px; background: var(--dept-color, var(--cedars)); }
.dept-program-card-body {
  padding: 28px 28px 32px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.dept-program-card h3 {
  font-family: var(--display);
  font-size: 16px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 10px;
}
.dept-program-card p {
  font-family: var(--body);
  font-size: 14px;
  color: #666;
  line-height: 1.62;
  margin: 0 0 20px;
  flex: 1;
}
.dept-program-link {
  font-family: var(--body);
  font-size: 13px;
  font-weight: 700;
  color: var(--dept-color, var(--cedars));
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.dept-program-link::after { content: ' →'; }

/* ─── IMPACT STATS BAR ──────────────────────────────────────────────────── */

.dept-stats-bar {
  background: var(--cedars);
  padding: 60px 16vw;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  text-align: center;
}
.dept-stat-num {
  font-family: var(--display);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 800;
  color: var(--cedars);
  display: block;
  line-height: 1;
  margin-bottom: 10px;
}
.dept-stat-label {
  font-family: var(--body);
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.65);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ─── CTA BAND ──────────────────────────────────────────────────────────── */

.dept-cta {
  padding: 88px 16vw;
  text-align: center;
}
.dept-cta h2 {
  font-family: var(--display);
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  font-weight: 800;
  color: #fff;
  margin: 0 0 16px;
  letter-spacing: -0.022em;
}
.dept-cta p {
  font-family: var(--body);
  font-size: 17px;
  color: rgba(255,255,255,0.82);
  max-width: 540px;
  margin: 0 auto 36px;
  line-height: 1.65;
}
.dept-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ─── DEPT MAIN PAGE NEW DESIGN ─────────────────────────────────────────── */
/* BDC, FEC, CDC, CED landing pages. var(--dept-color) set inline per page.  */

/* ── HERO ─────────────────────────────────────────────────────────────────── */

.dept-hero {
  min-height: 88vh;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}
.dept-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 110% 120%, rgba(0,17,38,0.55) 0%, transparent 65%),
    linear-gradient(180deg, rgba(0,17,38,0) 30%, rgba(0,17,38,0.72) 100%);
  z-index: 1;
}
.dept-hero-grain {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.06;
  z-index: 1;
  pointer-events: none;
}
.dept-hero-ghost {
  position: absolute;
  right: -0.04em;
  bottom: -0.08em;
  font-family: 'Lexend Deca', sans-serif;
  font-size: 15vw;
  font-weight: 500;
  line-height: 0.85;
  letter-spacing: -0.05em;
  color: #fff;
  opacity: 0.07;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}
.dept-hero-content {
  position: relative;
  z-index: 2;
  padding: 0 clamp(24px, 10vw, 144px) clamp(64px, 10vh, 112px);
}
.dept-hero h1 {
  font-size: clamp(3.6rem, 8.5vw, 7.5rem);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.045em;
  color: #fff;
  margin: 0 0 28px;
}
.dept-hero-tagline {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.72;
  color: rgba(255,255,255,0.72);
  max-width: 520px;
  margin: 0 0 40px;
}
.dept-hero .dept-badges { margin: 0 0 36px; }
.dept-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ── OVERVIEW ─────────────────────────────────────────────────────────────── */

.dept-overview {
  background: var(--dept-base);
  position: relative;
}
.dept-overview-inner {
  display: grid;
  grid-template-columns: 1fr 440px;
  min-height: 560px;
  max-width: 1440px;
  margin: 0 auto;
}
.dept-overview-text {
  padding: clamp(72px, 10vh, 120px) clamp(24px, 6vw, 80px) clamp(72px, 10vh, 120px) clamp(24px, 10vw, 144px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.section-label {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--larch-text);
  margin-bottom: 20px;
  display: block;
}
.dept-overview .dept-overview-text h2 {
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: #f5f0e8;
  margin: 0 0 32px;
}
.dept-overview .dept-overview-text p {
  font-size: 16px;
  line-height: 1.85;
  color: rgba(245,240,232,0.52);
  margin-bottom: 20px;
}
.dept-overview .dept-overview-text p:last-child { margin-bottom: 0; }
.dept-values-row {
  display: flex;
  gap: 32px;
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.dept-value-item { flex: 1; }
.dept-value-label {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--larch);
  display: block;
  margin-bottom: 10px;
}
.dept-value-item p {
  font-size: 13px;
  line-height: 1.7;
  color: rgba(245,240,232,0.45);
  margin: 0;
}
.dept-overview-visual {
  background: var(--dept-color);
  position: relative;
  overflow: hidden;
}
.dept-overview-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,17,38,0.3) 0%, rgba(0,17,38,0) 60%);
}
.dept-overview-visual::after {
  content: '';
  position: absolute;
  width: 160%;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50%;
  bottom: -40%;
  right: -30%;
  pointer-events: none;
}
.dept-overview-visual-ghost {
  position: absolute;
  bottom: -0.1em;
  right: -0.04em;
  font-family: 'Lexend Deca', sans-serif;
  font-size: 12vw;
  font-weight: 500;
  color: #fff;
  opacity: 0.14;
  line-height: 1;
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
}

/* ── SERVICES ─────────────────────────────────────────────────────────────── */

.dept-services {
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.dept-services::before {
  content: '';
  position: absolute;
  inset: 0;
  background: none;
  pointer-events: none;
}
.dept-services-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* Section heads on dark backgrounds */
.dept-services .dept-section-head,
.dept-programs .dept-section-head,
.dept-team .dept-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 56px;
}
.dept-services .dept-section-head h2,
.dept-programs .dept-section-head h2 {
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  font-weight: 800;
  color: #f5f0e8;
  letter-spacing: -0.028em;
  line-height: 1.08;
  margin: 14px 0 0;
}
.dept-team .dept-section-head h2 {
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  font-weight: 800;
  color: var(--dept-color);
  letter-spacing: -0.028em;
  line-height: 1.08;
  margin: 14px 0 0;
}
.dept-services .dept-section-head > p,
.dept-programs .dept-section-head > p {
  font-size: 16px;
  color: rgba(245,240,232,0.5);
  line-height: 1.7;
  max-width: 380px;
  margin-top: 14px;
  flex-shrink: 0;
}

/* Services on cream — h2 uses dept color, p uses dark muted */
.dept-services .dept-section-head h2 { color: var(--dept-color); }
.dept-services .dept-section-head > p { color: rgba(0,36,70,0.55); }

/* Dark flush service tiles */
.dept-services .dept-services-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
.dept-services .dept-service-card {
  background: var(--dept-color);
  border: none;
  border-left: 3px solid transparent;
  border-radius: 0;
  box-shadow: none;
  padding: 44px 40px;
  transition: background 0.28s cubic-bezier(0.22,1,0.36,1), border-left-color 0.28s;
}
.dept-services .dept-service-card:hover {
  background: var(--dept-base);
  border-left-color: var(--dept-accent);
  transform: none;
  box-shadow: none;
}
.dept-services .dept-service-card h3 {
  font-size: 17px;
  font-weight: 700;
  color: #f5f0e8;
  margin: 0 0 14px;
}
.dept-services .dept-service-card p {
  font-size: 15px;
  color: rgba(245,240,232,0.5);
  line-height: 1.72;
  margin: 0;
}

/* ── TOOLBOX ──────────────────────────────────────────────────────────────── */

.dept-toolbox {
  background: var(--dept-base, var(--missions));
  position: relative;
}
.dept-toolbox-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
}
.dept-toolbox .dept-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 56px;
}
.dept-toolbox .dept-section-head h2 { color: var(--white); }
.dept-toolbox .dept-section-head > p {
  max-width: 400px;
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.6);
  margin: 0 0 8px;
}
.dept-toolbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.dept-toolbox-item {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 4px;
  color: rgba(255,255,255,0.7);
  font-size: 0.9rem;
  line-height: 1.65;
  padding: 28px 24px;
  font-family: var(--body);
  transition: background 0.2s, border-color 0.2s;
}
.dept-toolbox-item h3,
.dept-toolbox-item p { font-family: var(--body); }
.dept-toolbox-label { font-family: var(--body); }
.dept-toolbox-item:hover {
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.2);
}
.dept-toolbox-label {
  display: block;
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--white);
  margin-bottom: 12px;
}
.dept-toolbox-item p {
  font-size: 0.9rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.7);
  margin: 0;
}

/* ── PROGRAMS ─────────────────────────────────────────────────────────────── */

.dept-programs {
  background: var(--wheat);
  position: relative;
}
/* Wheat section overrides: dark text on wheat amber */
.dept-programs .dept-section-head h2,
.dept-programs .dept-section-head p,
.dept-programs .dept-program-body h3,
.dept-programs .dept-program-body p { color: var(--cedars); }
.dept-programs .dept-section-head p,
.dept-programs .dept-program-body p { color: rgba(0,17,38,0.75); }
.dept-programs .dept-program-row { border-bottom-color: rgba(0,36,70,0.18); }
.dept-programs .dept-program-row:hover { background: rgba(0,36,70,0.06); }
.dept-programs .dept-program-num { color: var(--cedars); opacity: 0.7; }
.dept-programs .dept-program-arrow { color: var(--cedars); }
.dept-programs .section-label { color: var(--cedars); }
.dept-programs-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
}
.dept-programs-list {
  border-top: 1px solid rgba(255,255,255,0.07);
  margin-top: 8px;
}
.dept-program-row {
  display: grid;
  grid-template-columns: clamp(80px, 8vw, 130px) 1fr auto;
  align-items: center;
  gap: 0 48px;
  padding: 40px 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
  transition: padding-left 0.35s cubic-bezier(0.22,1,0.36,1);
}
.dept-program-row--no-link {
  grid-template-columns: clamp(80px, 8vw, 130px) 1fr;
  cursor: default;
}
.dept-program-row::before {
  content: '';
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--dept-color) 12%, var(--dept-base));
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(0.22,1,0.36,1);
  z-index: 0;
}
a.dept-program-row:hover::before { transform: translateX(0); }
a.dept-program-row:hover { padding-left: 8px; }
.dept-program-num {
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--cream);
  position: relative;
  z-index: 1;
}
.dept-program-body {
  min-width: 0;
  position: relative;
  z-index: 1;
}
.dept-program-body h3 {
  font-size: clamp(1rem, 1.8vw, 1.4rem);
  font-weight: 700;
  color: #f5f0e8;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  transition: color 0.2s;
}
a.dept-program-row:hover .dept-program-body h3 { color: #fff; }
.dept-program-body p {
  font-size: 14px;
  color: rgba(245,240,232,0.42);
  line-height: 1.65;
  margin: 0;
  transition: color 0.2s;
}
a.dept-program-row:hover .dept-program-body p { color: rgba(245,240,232,0.65); }
.dept-program-arrow {
  font-size: 20px;
  color: var(--cream);
  position: relative;
  z-index: 1;
  transition: transform 0.3s cubic-bezier(0.22,1,0.36,1);
  flex-shrink: 0;
}
a.dept-program-row:hover .dept-program-arrow { transform: translateX(10px); }
.dept-programs-cta { margin-top: 40px; text-align: center; }
.dept-programs-note {
  margin-top: 32px;
  font-family: 'Lexend Deca', sans-serif;
  font-size: 14px;
  color: rgba(245,240,232,0.35);
  line-height: 1.65;
}

/* ── STATS ─────────────────────────────────────────────────────────────────── */

.dept-stats {
  background: var(--dept-accent);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
  overflow: hidden;
}
.dept-stats::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.05;
  pointer-events: none;
}
.dept-stats-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(24px, 10vw, 144px);
  position: relative;
  z-index: 1;
}
.dept-stats .dept-stat {
  padding: clamp(56px, 8vh, 96px) 0;
  text-align: center;
  position: relative;
}
.dept-stats .dept-stat + .dept-stat::before {
  content: '';
  position: absolute;
  left: 0; top: 20%; bottom: 20%;
  width: 1px;
  background: rgba(255,255,255,0.06);
}
.dept-stats .dept-stat-num {
  display: block;
  font-size: clamp(4rem, 8vw, 7rem);
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: #fff;
  margin-bottom: 20px;
}
.dept-stats .dept-stat-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.28);
}

/* ── MISSION / VISION / VALUES ────────────────────────────────────────────── */

.dept-mission-block {
  background: var(--cream);
  position: relative;
}
.dept-mission-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
}
.dept-mvv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.dept-mvv-card {
  background: var(--white);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 4px;
  padding: 36px 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
.dept-mvv-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dept-color, var(--navy));
  margin-bottom: 16px;
}
.dept-mvv-card p {
  font-family: var(--body);
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--cedars);
  margin: 0;
}
.dept-mvv-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dept-mvv-list li {
  font-family: var(--body);
  font-size: 0.95rem;
  color: var(--cedars);
  padding-left: 18px;
  position: relative;
}
.dept-mvv-list li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--dept-color, var(--navy));
  font-size: 0.8em;
}

/* ── TEAM ─────────────────────────────────────────────────────────────────── */

.dept-team {
  background: var(--cream);
  position: relative;
  overflow: hidden;
}
.dept-team-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
/* ── DEPT-CONTACT ────────────────────────────────────────────────────────── */

.dept-contact {
  background: var(--wheat);
  position: relative;
}
/* Wheat contact: dark headings, larch form button still works */
.dept-contact .dept-section-head h2 { color: var(--cedars); }
.dept-contact .section-label,
.dept-contact > p,
.dept-contact .dept-contact-inner > p { color: var(--cedars); }
.dept-contact-inner {
  padding: clamp(72px, 10vh, 112px) clamp(24px, 10vw, 144px);
  max-width: 1440px;
  margin: 0 auto;
}
.dept-contact .dept-section-head { margin-bottom: 32px; }
.dept-contact > .dept-contact-inner > p {
  font-size: 1.05rem;
  color: rgba(0,36,70,0.75);
  max-width: 640px;
  margin-bottom: 40px;
  line-height: 1.7;
}

/* ── CTA ─────────────────────────────────────────────────────────────────── */

.dept-cta {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 0;
}
.dept-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 80% at 50% 120%, rgba(0,17,38,0.5) 0%, transparent 70%),
    linear-gradient(180deg, rgba(0,17,38,0.15) 0%, rgba(0,17,38,0) 50%);
  pointer-events: none;
}
.dept-cta-ghost { display: none; }
.dept-cta-grain {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.06;
  pointer-events: none;
}
.dept-cta-inner {
  position: relative;
  z-index: 1;
  padding: clamp(80px, 12vh, 140px) clamp(24px, 10vw, 144px);
  max-width: 860px;
  margin: 0 auto;
}
.dept-cta h2 {
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: #fff;
  margin: 0 0 24px;
}
.dept-cta p {
  font-size: 18px;
  color: rgba(255,255,255,0.72);
  line-height: 1.65;
  max-width: 480px;
  margin: 0 auto 48px;
}
.dept-cta-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── RESPONSIVE ───────────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .dept-overview-inner { grid-template-columns: 1fr 340px; }
}
@media (max-width: 900px) {
  .dept-hero h1 { font-size: clamp(3rem, 12vw, 5rem); }
  .dept-overview-inner { grid-template-columns: 1fr; }
  .dept-overview-visual { display: none; }
  .dept-mvv-grid { grid-template-columns: 1fr; }
  .dept-services .dept-section-head,
  .dept-programs .dept-section-head,
  .dept-team .dept-section-head { flex-direction: column; gap: 16px; }
  .dept-services .dept-section-head > p,
  .dept-programs .dept-section-head > p { max-width: 100%; margin-top: 0; }
  .dept-services .dept-services-grid { grid-template-columns: 1fr; }
  .dept-toolbox .dept-section-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .dept-toolbox .dept-section-head > p { max-width: 100%; margin-top: 0; }
  .dept-toolbox-grid { grid-template-columns: 1fr; }
  .dept-program-row { grid-template-columns: 48px 1fr auto; gap: 0 24px; padding: 32px 0; }
  .dept-program-row--no-link { grid-template-columns: 48px 1fr; }
}
@media (max-width: 600px) {
  .dept-hero h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
  .dept-hero-content { padding: 0 6vw clamp(48px, 8vh, 72px); }
  .dept-hero-actions { flex-direction: column; }
  .dept-overview-text { padding: 48px 6vw; }
  .dept-services-inner,
  .dept-programs-inner,
  .dept-team-inner { padding: 48px 6vw; }
  .dept-services .dept-services-grid { gap: 0; }
  .dept-services .dept-service-card { padding: 28px 24px; }
  .dept-stats-inner { padding: 0 4vw; }
  .dept-stats .dept-stat { padding: 40px 0; }
  .dept-stats .dept-stat-num { font-size: clamp(2rem, 8vw, 3.5rem); margin-bottom: 12px; }
  .dept-cta-inner { padding: 64px 6vw; }
  .dept-cta-actions { flex-direction: column; align-items: center; }
}


/* ─── CERT BADGES (FEC) ─────────────────────────────────────────────────── */

.dept-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.dept-badge {
  font-family: var(--body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 3px;
  border: 1.5px solid rgba(255,255,255,0.45);
  color: rgba(255,255,255,0.88);
}

/* ─── ABOUT SECTION ────────────────────────────────────────────────────── */

.about-mission-statement {
  font-family: var(--display);
  font-size: clamp(1.3rem, 2.2vw, 1.85rem);
  font-weight: 700;
  color: var(--cedars);
  line-height: 1.5;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

/* Mission stat band (25+ / 900+ / $6M+). minmax(0,1fr) lets tracks shrink
   below the large numbers' intrinsic width; collapses to 1-up on small phones. */
.about-stat-band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
}
@media (max-width: 600px) {
  .about-stat-band { grid-template-columns: 1fr; }
}

.about-depts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.about-dept-card {
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.about-dept-card:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(0,0,0,0.12); }
.about-dept-card-bar { height: 4px; }
.about-dept-card-body { background: #fff; padding: 22px 24px 26px; flex: 1; }
.about-dept-card h3 { font-family: var(--display); font-size: 15px; font-weight: 700; color: var(--cedars); margin: 0 0 8px; }
.about-dept-card p { font-family: var(--body); font-size: 13px; color: #666; line-height: 1.58; margin: 0 0 14px; }
.about-dept-card-link { font-family: var(--body); font-size: 12px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.about-dept-card-link::after { content: ' →'; }

/* ─── TEAM PAGE ─────────────────────────────────────────────────────────── */

.team-dept-group { margin-bottom: 64px; }
.team-dept-group:last-child { margin-bottom: 0; }
.team-dept-label {
  font-family: var(--body);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  /* Used on the staff/board directory sections, which render on dark missions
     blue backgrounds. var(--cedars) was unreadable there. Cream-on-dark reads
     cleanly. Templates that drop this label on a light surface should override. */
  color: rgba(255,255,255,0.85);
  border-bottom: 3px solid var(--dept-color, var(--larch));
  padding-bottom: 14px;
  margin-bottom: 32px;
}

/* ─── REGION PAGE ───────────────────────────────────────────────────────── */

.region-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.region-card {
  background: #fff;
  border-radius: 10px;
  padding: 36px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
  border-top: 4px solid var(--dept-color, var(--cedars));
}
.region-card h3 {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 14px;
}
.region-card p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.7;
  margin: 0;
}

/* ─── MATERIALS / DOCUMENTS ─────────────────────────────────────────────── */

.docs-list { list-style: none; padding: 0; margin: 0; }
.docs-item {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid #e8e4dc;
}
.docs-item:first-child { border-top: 1px solid #e8e4dc; }
.docs-icon {
  width: 44px;
  height: 44px;
  border-radius: 6px;
  background: var(--cedars);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.docs-icon svg { color: var(--larch); }
.docs-info { flex: 1; }
.docs-title { font-family: var(--display); font-size: 16px; font-weight: 700; color: var(--cedars); margin: 0 0 3px; }
.docs-meta { font-family: var(--body); font-size: 13px; color: rgba(0,36,70,0.7); }

/* ─── PROGRAM STEPS ────────────────────────────────────────────────────── */

.program-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.program-step {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 28px;
  padding: 28px 0;
  border-bottom: 1px solid #e8e4dc;
  align-items: start;
}
.program-step:first-child { border-top: 1px solid #e8e4dc; }
.program-step-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--step-color, var(--cedars));
  color: #fff;
  font-family: var(--display);
  font-size: 18px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.program-step-body h3 {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 8px;
}
.program-step-body p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.7;
  margin: 0;
}
.program-step-body a { color: var(--dept-color, var(--cedars)); }

/* ─── PROGRAM NOTICE ────────────────────────────────────────────────────── */

.program-notice {
  border-radius: 8px;
  padding: 18px 22px;
  font-family: var(--body);
  font-size: 14px;
  line-height: 1.65;
}
.program-notice--info {
  background: color-mix(in srgb, var(--notice-color, var(--cedars)) 8%, #fff);
  border-left: 4px solid var(--notice-color, var(--cedars));
  color: #444;
}
.program-notice--info strong { color: var(--cedars); }
.program-notice--info a { color: var(--notice-color, var(--cedars)); }
.program-notice--subtle {
  background: #f7f5f1;
  border: 1px solid #e0dbd1;
  color: #555;
}
.program-notice--subtle strong { color: var(--cedars); }
.program-notice--subtle a { color: var(--notice-color, var(--cedars)); }

/* ─── PROGRAM CONTACT SPLIT ─────────────────────────────────────────────── */

.program-contact-split {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 64px;
  align-items: start;
}
.program-contact-details {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.program-contact-details a {
  font-family: var(--body);
  font-size: 14px;
  color: var(--dept-color, var(--cedars));
  text-decoration: none;
  display: block;
}
.program-contact-details a:hover { text-decoration: underline; }

/* ─── PROGRAM FORM PLACEHOLDER ──────────────────────────────────────────── */

.program-form-placeholder {
  background: #f7f5f1;
  border: 1px solid #e0dbd1;
  border-radius: 10px;
  padding: 32px 36px;
}
.program-form-placeholder p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.7;
  margin: 0 0 20px;
}
.program-form-placeholder p:last-child { margin-bottom: 0; }

/* ─── BROWNFIELDS PHASE GRID ────────────────────────────────────────────── */

.program-phase-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.program-phase-card {
  background: #fff;
  border-radius: 10px;
  padding: 36px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
  border-top: 4px solid var(--phase-color, var(--cedars));
}
.program-phase-label {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--phase-color, var(--cedars));
  margin-bottom: 12px;
}
.program-phase-card h3 {
  font-family: var(--display);
  font-size: 18px;
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 14px;
}
.program-phase-card p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.7;
  margin: 0 0 20px;
}
.program-phase-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.program-phase-list li {
  font-family: var(--body);
  font-size: 14px;
  color: #555;
  padding-left: 18px;
  position: relative;
}
.program-phase-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--phase-color, var(--cedars));
}

/* ─── CHERRY PITTING PRICING TABLE ─────────────────────────────────────── */

.cherry-pricing-table {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.07);
  margin-bottom: 36px;
}
.cherry-pricing-head {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  background: var(--fec);
  color: #fff;
  padding: 14px 28px;
  font-family: var(--body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cherry-pricing-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  padding: 18px 28px;
  background: #fff;
  border-bottom: 1px solid #f0ece4;
  align-items: center;
}
.cherry-pricing-row:last-child { border-bottom: none; }
.cherry-pricing-row:nth-child(even) { background: #faf8f4; }
.cherry-pricing-col {
  font-family: var(--body);
  font-size: 15px;
  color: #444;
}
.cherry-pricing-col--volume {
  font-weight: 600;
  color: var(--cedars);
}
.cherry-price {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 800;
  color: var(--fec);
}

.cherry-addons {
  background: #fff;
  border-radius: 10px;
  padding: 28px 32px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
}
.cherry-addons h3 {
  font-family: var(--display);
  font-size: 16px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 18px;
}
.cherry-addon-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cherry-addon-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid #f0ece4;
}
.cherry-addon-list li:last-child { border-bottom: none; padding-bottom: 0; }
.cherry-addon-name { font-family: var(--body); font-size: 15px; color: #444; }
.cherry-addon-price { font-family: var(--display); font-size: 16px; font-weight: 700; color: var(--cedars); }

/* ─── CDC IMPACT STORIES ────────────────────────────────────────────────── */

.impact-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.impact-story-card {
  background: #fff;
  border-radius: 10px;
  padding: 36px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
  border-top: 4px solid var(--story-color, var(--cedars));
}
.impact-story-tag {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--story-color, var(--cedars));
  margin-bottom: 12px;
}
.impact-story-card h3 {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 8px;
}
.impact-story-sub {
  font-family: var(--body);
  font-size: 13px;
  font-style: italic;
  color: #888;
  margin: 0 0 18px;
}
.impact-story-card p {
  font-family: var(--body);
  font-size: 15px;
  color: #555;
  line-height: 1.7;
  margin-bottom: 14px;
}
.impact-story-result {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 8px;
  font-family: var(--body);
  font-size: 14px;
  color: #444;
  line-height: 1.5;
}
.impact-story-result svg {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--story-color, var(--cedars));
}

/* ─── FEC APPLY CTA ───────────────────────────────��──────────────────────── */

.program-apply-cta {
  text-align: center;
  padding: 24px 0;
}

/* ─── CONTACT PAGE ─────────────────────���───────────────────────────���─────── */

.contact-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 72px;
  align-items: start;
}
.contact-block {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 32px;
}
.contact-block-icon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: #f0ede6;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--cedars);
}
.contact-block-label {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #999;
  margin-bottom: 5px;
}
.contact-block-value {
  font-family: var(--body);
  font-size: 16px;
  color: #333;
  line-height: 1.55;
}
.contact-block-value a {
  color: var(--cedars);
  text-decoration: none;
  font-weight: 600;
}
.contact-block-value a:hover { text-decoration: underline; }

.contact-dept-list { margin-top: 40px; padding-top: 32px; border-top: 1px solid #e8e4dc; }
.contact-dept-head {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #999;
  margin-bottom: 18px;
}
.contact-dept-list ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 18px; }
.contact-dept-list li { display: flex; flex-direction: column; gap: 3px; }
.contact-dept-name { font-family: var(--display); font-size: 13px; font-weight: 700; }
.contact-dept-list a { font-family: var(--body); font-size: 14px; color: var(--cedars); text-decoration: none; }
.contact-dept-list a:hover { text-decoration: underline; }

.contact-form-col h2 {
  font-family: var(--display);
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 14px;
  letter-spacing: -0.022em;
}
.contact-form-col > p {
  font-family: var(--body);
  font-size: 16px;
  color: #555;
  line-height: 1.7;
  margin: 0 0 28px;
}

.contact-map-wrap { border-radius: 12px; overflow: hidden; }
.contact-map-ph {
  height: 340px;
  background: linear-gradient(135deg, #d6d1c8 0%, #c4bfb4 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #6a6458;
  text-align: center;
}
.contact-map-ph p { font-family: var(--body); font-size: 16px; font-weight: 600; margin: 0; }
.contact-map-ph svg { color: #6a6458; }

/* ─── HARVEST ON MAIN PAGE ─────────────────────────────────────────────── */

.hom-hero {
  min-height: 520px;
  background: linear-gradient(160deg, #1a3d28 0%, #0d2417 60%, var(--cedars) 100%);
  display: flex;
  align-items: flex-end;
  padding: 80px 16vw;
  position: relative;
  overflow: hidden;
}
.hom-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.hom-hero-inner { position: relative; z-index: 1; }
.hom-hero-tag {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--larch);
  margin-bottom: 18px;
  display: block;
}
.hom-hero h1 {
  font-family: var(--display);
  font-size: clamp(2.8rem, 6vw, 5.2rem);
  font-weight: 800;
  line-height: 1;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: -0.03em;
}
.hom-hero-sub {
  font-family: var(--body);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  color: rgba(255,255,255,0.8);
  max-width: 560px;
  line-height: 1.65;
  margin: 0 0 36px;
}

.hom-pillars {
  background: var(--cedars);
  padding: 64px 16vw;
}
.hom-pillars-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.hom-pillar { text-align: center; }
.hom-pillar-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  color: var(--larch);
}
.hom-pillar h3 {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 10px;
}
.hom-pillar p {
  font-family: var(--body);
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.65;
  margin: 0;
}

.hom-gallery { margin-top: 8px; }
.hom-gallery-ph {
  height: 280px;
  background: linear-gradient(135deg, #d6d1c8, #c4bfb4);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--body);
  font-size: 15px;
  color: #888;
  font-style: italic;
}

/* ─── NEWS PAGE ─────────────────��────────────────────────────────────────── */

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.news-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.news-card:hover { transform: translateY(-4px); box-shadow: 0 8px 28px rgba(0,0,0,0.1); }
.news-card-img-wrap { display: block; aspect-ratio: 16/9; overflow: hidden; }
.news-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s var(--ease); }
.news-card:hover .news-card-img { transform: scale(1.04); }
.news-card-img-ph { aspect-ratio: 16/9; background: linear-gradient(135deg, #d6d1c8, #c4bfb4); }
.news-card-body { padding: 24px 28px 28px; flex: 1; display: flex; flex-direction: column; }
.news-card-date {
  font-family: var(--body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--larch-text);
  margin-bottom: 10px;
}
.news-card-title {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 10px;
  line-height: 1.35;
}
.news-card-title a { color: inherit; text-decoration: none; }
.news-card-title a:hover { color: var(--fec); }
.news-card-excerpt {
  font-family: var(--body);
  font-size: 14px;
  color: #666;
  line-height: 1.65;
  margin: 0 0 18px;
  flex: 1;
}
.news-read-more {
  font-family: var(--body);
  font-size: 13px;
  font-weight: 700;
  color: var(--cedars);
  text-decoration: none;
  letter-spacing: 0.02em;
}
.news-read-more:hover { color: var(--fec); }

.news-empty {
  text-align: center;
  padding: 80px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.news-empty-icon { color: #ccc; }
.news-empty h2 {
  font-family: var(--display);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--cedars);
  margin: 0;
}
.news-empty p { font-family: var(--body); font-size: 16px; color: #777; max-width: 400px; margin: 0; }

/* ─── EVENTS PAGE ────────────────────────────────────────────────────────── */

.events-calendar-placeholder {
  text-align: center;
  padding: 80px 20px;
  background: #f7f5f1;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.events-calendar-icon { color: var(--cedars); opacity: 0.4; }
.events-calendar-placeholder h2 {
  font-family: var(--display);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--cedars);
  margin: 0;
}
.events-calendar-placeholder p {
  font-family: var(--body);
  font-size: 16px;
  color: #666;
  max-width: 520px;
  line-height: 1.65;
  margin: 0;
}

/* ─── RESOURCES PAGE ──────────────────��────────────────────────────��─────── */

.resources-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
/* Exactly 4 cards: 2x2 instead of a 3+1 orphan row */
.resources-grid:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(2, 1fr);
}
.resource-card {
  background: #fff;
  border-radius: 10px;
  padding: 28px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.055);
  display: flex;
  gap: 18px;
  align-items: flex-start;
  text-decoration: none;
  transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease);
}
.resource-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.1); }
.resource-card--external .resource-card-tag::after { content: ' ↗'; font-size: 10px; opacity: 0.7; }
.resource-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.resource-card-body { flex: 1; min-width: 0; }
.resource-card-tag {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.resource-card h3 {
  font-family: var(--display);
  font-size: 15px;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 7px;
  line-height: 1.3;
}
.resource-card p {
  font-family: var(--body);
  font-size: 13px;
  color: #666;
  line-height: 1.58;
  margin: 0;
}

/* ─── RESPONSIVE ────────────────────────────────────────────────────────── */

@media ( max-width: 960px ) {
  .dept-hero { padding: 64px 8vw 72px; }
  .dept-section { padding: 64px 8vw; }
  .dept-overview-grid { grid-template-columns: 1fr; gap: 40px; }
  .dept-img-ph { display: none; }
  .dept-services-grid { grid-template-columns: 1fr; }
  .dept-programs-grid { grid-template-columns: repeat(2, 1fr); }
  .dept-programs-grid--2col { grid-template-columns: 1fr; }
  .dept-stats-bar { padding: 52px 8vw; }
  .dept-cta { padding: 64px 8vw; }
  .about-depts-grid { grid-template-columns: repeat(2, 1fr); }
  .region-grid { grid-template-columns: 1fr; }
  .program-contact-split { grid-template-columns: 1fr; gap: 40px; }
  .program-phase-grid { grid-template-columns: 1fr; }
  .impact-story-grid { grid-template-columns: 1fr; }
  .cherry-pricing-head,
  .cherry-pricing-row { padding: 14px 18px; }
  .contact-layout { grid-template-columns: 1fr; gap: 52px; }
  .hom-hero { padding: 64px 8vw; }
  .hom-pillars { padding: 52px 8vw; }
  .hom-pillars-inner { grid-template-columns: 1fr; gap: 36px; }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .resources-grid { grid-template-columns: repeat(2, 1fr); }
}

@media ( max-width: 600px ) {
  .dept-hero { padding: 48px 6vw 56px; min-height: 280px; }
  .dept-section { padding: 48px 6vw; }
  .dept-programs-grid { grid-template-columns: 1fr; }
  .dept-stats-bar { grid-template-columns: 1fr; padding: 44px 6vw; gap: 32px; }
  .dept-cta { padding: 48px 6vw; }
  .dept-hero-actions { flex-direction: column; }
  .dept-cta-actions { flex-direction: column; align-items: center; }
  .about-depts-grid { grid-template-columns: 1fr; }
  .docs-item { flex-wrap: wrap; }
  .program-step { grid-template-columns: 44px 1fr; gap: 16px; }
  .cherry-pricing-head,
  .cherry-pricing-row { grid-template-columns: 1.2fr 0.9fr 0.9fr; font-size: 13px; padding: 12px 14px; }
  .cherry-price { font-size: 16px; }
  .program-form-placeholder { padding: 24px 22px; }
  .hom-hero { padding: 48px 6vw; min-height: 400px; }
  .hom-hero h1 { font-size: 2.4rem; }
  .news-grid { grid-template-columns: 1fr; }
  .resources-grid { grid-template-columns: 1fr; }
  .resource-card { flex-direction: column; gap: 12px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   PROGRAM SUB-PAGES (.prog-*)
   Pattern: hero → overview(cream) → cards(navy) → steps(wheat) → stats(cedars)
            → contact(cream) → related(navy) → cta
   ════════════════════════════════════════════════════════════════════════════ */

/* Genesis sets body and h1-h6 to Source Sans Pro — override for all prog elements */
.prog-hero, .prog-section, .prog-stats, .prog-cta { font-family: var(--body); }
.prog-hero h1, .prog-hero h2, .prog-hero h3,
.prog-section h1, .prog-section h2, .prog-section h3,
.prog-stats h1, .prog-stats h2, .prog-stats h3,
.prog-cta h1, .prog-cta h2, .prog-cta h3 { font-family: var(--display); }

.prog-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(64px, 8vh, 112px) clamp(24px, 10vw, 144px);
}

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.prog-hero {
  position: relative;
  min-height: 62vh;
  background: var(--dept-color);
  display: flex; align-items: center;
  overflow: hidden;
}
.prog-hero-grain {
  position: absolute; inset: 0; z-index: 1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.08'/%3E%3C/svg%3E");
  background-size: 180px;
  pointer-events: none;
}
.prog-hero-ghost {
  position: absolute;
  right: 3vw; bottom: -1vw;
  font-size: clamp(100px, 18vw, 280px);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 0.85;
  color: rgba(255,255,255,0.07);
  white-space: nowrap;
  user-select: none; pointer-events: none;
  z-index: 1;
}
/* Phones: anchor left so a long watermark ("Grants 101") bleeds off the right edge
   instead of clipping its first letter. */
@media (max-width: 600px) {
  .prog-hero-ghost { right: auto; left: 4vw; }
}
.prog-hero::after {
  content: '';
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 120px;
  background: linear-gradient(to bottom, transparent, rgba(0,17,38,0.6));
  z-index: 1;
}
.prog-hero .prog-inner {
  position: relative; z-index: 2;
  width: 100%;
  /* Asymmetric paddings nudge the centered content slightly above true center,
     clearing the ghost text watermark that sits anchored to the hero bottom. */
  padding-top: clamp(80px, 12vh, 140px);
  padding-bottom: clamp(180px, 20vh, 240px);
}
.prog-hero-content { max-width: 680px; }
/* News/press single: wider hero so long headlines don't hyphenate mid-word */
.is-news-single .prog-hero-content { max-width: 920px; }
.is-news-single .prog-hero-content h1 { hyphens: none; overflow-wrap: break-word; word-break: normal; }
.prog-breadcrumb {
  font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 20px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.prog-breadcrumb a { color: rgba(255,255,255,0.6); text-decoration: none; }
.prog-breadcrumb a:hover { color: white; }
.prog-breadcrumb span { color: rgba(255,255,255,0.55); }
.prog-hero h1 {
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 500; line-height: 1; letter-spacing: -0.02em;
  color: white; margin-bottom: 20px;
  overflow-wrap: normal;
  word-wrap: normal;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
/* On phones a long single word (e.g. "Microentrepreneur") is wider than the
   column. Real Chrome hyphenates it; this is the safety net so it can never
   overflow the viewport on engines without a hyphenation dictionary. */
@media (max-width: 600px) {
  .prog-hero h1 { overflow-wrap: break-word; word-wrap: break-word; }
}
.prog-hero-tagline {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  font-weight: 400; line-height: 1.65;
  color: rgba(255,255,255,0.8);
  max-width: 540px; margin-bottom: 32px;
}
.prog-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ── Section Base ─────────────────────────────────────────────────────────── */
.prog-section { position: relative; }
.prog-section--missions { background: var(--dept-base); }
.prog-section--cedars   { background: var(--cedars); }
.prog-section--wheat    { background: var(--wheat); }
.prog-section--cream    { background: var(--cream); }

.prog-section-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px 60px;
  align-items: end;
  margin-bottom: clamp(40px, 6vw, 64px);
}
.prog-section-head-left { display: flex; flex-direction: column; }
.prog-section-head h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 500; letter-spacing: -0.02em; line-height: 1.05;
  color: white;
}
.prog-section-head p {
  font-size: 1rem; line-height: 1.7;
  color: rgba(255,255,255,0.55); align-self: end;
}

/* ── Wheat section overrides ──────────────────────────────────────────────── */
.prog-section--wheat .prog-section-head h2 { color: var(--cedars); }
.prog-section--wheat .prog-section-head p  { color: rgba(0,17,38,0.65); }
.prog-section--wheat .section-label        { color: var(--cedars); }
.prog-section--wheat .prog-step-num        { color: var(--cedars); opacity: 0.2; }
.prog-section--wheat .prog-step            { background: rgba(0,17,38,0.08); border-top-color: transparent; }
.prog-section--wheat .prog-step:hover      { border-top-color: var(--cedars); }
.prog-section--wheat .prog-step h3         { color: var(--cedars); }
.prog-section--wheat .prog-step p          { color: rgba(0,17,38,0.65); }
.prog-section--wheat .prog-related-list    { border-top-color: rgba(0,36,70,0.15); }
.prog-section--wheat .prog-related-row     { border-bottom-color: rgba(0,36,70,0.15); }
.prog-section--wheat .prog-related-num     { color: var(--cedars); opacity: 0.45; }
.prog-section--wheat .prog-related-body h3 { color: var(--cedars); }
.prog-section--wheat .prog-related-body p  { color: rgba(0,36,70,0.6); }
.prog-section--wheat .prog-related-arrow   { color: rgba(0,36,70,0.3); }
.prog-section--wheat .prog-related-row:hover { background: rgba(0,36,70,0.08); padding-left: 16px; padding-right: 16px; margin: 0 -16px; }
.prog-section--wheat .prog-related-row:hover .prog-related-body h3 { color: var(--cedars); }
.prog-section--wheat .prog-related-row:hover .prog-related-arrow   { color: var(--cedars); transform: translateX(4px); }
/* Programs list on a cream section (FEC/CED, where flexible sections go light). */
.prog-section--cream .prog-related-list    { border-top-color: rgba(0,36,70,0.15); }
.prog-section--cream .prog-related-row     { border-bottom-color: rgba(0,36,70,0.12); }
.prog-section--cream .prog-related-num     { color: var(--larch-text); opacity: 0.7; }
.prog-section--cream .prog-related-body h3 { color: var(--cedars); }
.prog-section--cream .prog-related-body p  { color: rgba(0,36,70,0.6); }
.prog-section--cream .prog-related-arrow   { color: rgba(0,36,70,0.3); }
.prog-section--cream .prog-related-row:hover { background: rgba(0,36,70,0.05); padding-left: 16px; padding-right: 16px; margin: 0 -16px; }
.prog-section--cream .prog-related-row:hover .prog-related-body h3 { color: var(--larch-text); }
.prog-section--cream .prog-related-row:hover .prog-related-arrow   { color: var(--cedars); transform: translateX(4px); }
/* Overview-text on wheat sections: h2 + body need dark text for contrast */
.prog-section--wheat .prog-overview-text h2,
.prog-section--wheat .prog-overview-text h3 { color: var(--cedars); }
.prog-section--wheat .prog-overview-text p  { color: rgba(0,17,38,0.75); }
.prog-section--wheat .prog-overview-text a:not([class*="btn"])  { color: var(--cedars); text-decoration: underline; }
/* Links inside body copy on dark overview sections (wysiwyg strips inline colors). */
.prog-section--missions .prog-overview-text a:not([class*="btn"]),
.prog-section--cedars   .prog-overview-text a:not([class*="btn"]) { color: var(--cream); text-decoration: underline; }
/* Body-copy links inside the dark CTA (e.g. contact notes; wysiwyg strips inline colors). */
.prog-cta-content a:not([class*="btn"]) { color: var(--cream); text-decoration: underline; }
/* Wheat-section stats + ghost-text visual */
.prog-section--wheat .dept-stat-num,
.prog-section--wheat .prog-stat-num         { color: var(--cedars); }
.prog-section--wheat .dept-stat-label,
.prog-section--wheat .prog-stat-label       { color: rgba(0,17,38,0.65); }
.prog-section--wheat .prog-overview-visual-label { color: rgba(0,17,38,0.18); }

/* ── Missions/Cedars related list overrides ───────────────────────────────── */
.prog-section--missions .prog-related-list,
.prog-section--cedars   .prog-related-list { border-top-color: rgba(255,255,255,0.12); }
.prog-section--missions .prog-related-row,
.prog-section--cedars   .prog-related-row  { border-bottom-color: rgba(255,255,255,0.12); }
.prog-section--missions .prog-related-row:hover,
.prog-section--cedars   .prog-related-row:hover { background: rgba(0,0,0,0.2); }

/* ── Cream section overrides ──────────────────────────────────────────────── */
.prog-section--cream .prog-section-head h2   { color: var(--dept-base); }
.prog-section--cream .prog-section-head p    { color: color-mix(in srgb, var(--dept-base) 55%, transparent); }
.prog-section--cream .section-label          { color: var(--larch-text); }
.prog-section--cream .prog-overview-text h2  { color: var(--dept-base); }
.prog-section--cream .prog-overview-text p   { color: color-mix(in srgb, var(--dept-base) 65%, transparent); }
.prog-section--cream .prog-card              { background: var(--dept-base); border-left: 3px solid transparent; }
.prog-section--cream .prog-card:hover        { background: color-mix(in srgb, var(--dept-base) 85%, #000); border-left-color: var(--dept-accent); }
.prog-section--cream .prog-staff-card        { background: var(--dept-base); }
.prog-section--cream .prog-contact-links a   { color: var(--cream); }
.prog-section--cream .prog-form-area         { background: #fff; border-color: color-mix(in srgb, var(--dept-base) 18%, transparent); }
.prog-section--cream .prog-form-area h3      { color: var(--dept-base); }
.prog-section--cream .prog-form-area > p     { color: color-mix(in srgb, var(--dept-base) 60%, transparent); }

/* ── Overview ─────────────────────────────────────────────────────────────── */
.prog-overview {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.prog-overview-text h2 {
  font-size: clamp(1.6rem, 2.8vw, 2.4rem);
  font-weight: 500; letter-spacing: -0.02em; line-height: 1.1;
  color: white; margin-bottom: 20px;
}
.prog-overview-text p {
  font-size: 1rem; line-height: 1.8;
  color: rgba(255,255,255,0.65); margin-bottom: 16px;
}
.prog-overview-text p:last-child { margin-bottom: 0; }
.prog-overview-visual {
  aspect-ratio: 4/3;
  background: color-mix(in srgb, var(--dept-color) 25%, var(--dept-base));
  border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.prog-overview-visual::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.03));
}
.prog-overview-visual-label {
  font-size: clamp(60px, 10vw, 120px);
  font-weight: 500; letter-spacing: -0.04em;
  color: rgba(255,255,255,0.06); line-height: 1;
  user-select: none;
}

/* ── Feature Cards ────────────────────────────────────────────────────────── */
.prog-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
/* Card groups smaller than the 3-col grid center instead of hugging the left edge */
.prog-cards-grid:has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 480px));
  justify-content: center;
}
.prog-cards-grid:has(> :only-child) {
  grid-template-columns: min(560px, 100%);
  justify-content: center;
}
.prog-card {
  background: rgba(0,0,0,0.2);
  padding: 32px 28px;
  border-left: 3px solid transparent;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease);
}
.prog-card:hover {
  border-left-color: var(--dept-color);
  background: color-mix(in srgb, var(--dept-color) 12%, rgba(0,0,0,0.25));
}
.prog-card h3 {
  font-size: 1rem; font-weight: 700; letter-spacing: 0.02em;
  color: white; margin-bottom: 10px;
}
.prog-card p { font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.55); }

/* ── Process Steps ────────────────────────────────────────────────────────── */
.prog-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
}
.prog-step {
  background: rgba(0,0,0,0.15);
  padding: 36px 28px;
  border-top: 3px solid transparent;
  transition: border-color 0.2s var(--ease);
}
.prog-step:hover { border-top-color: var(--dept-color); }
.prog-step-num {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 500; letter-spacing: -0.04em; line-height: 1;
  color: var(--larch); opacity: 0.5;
  margin-bottom: 20px; display: block;
}
.prog-step h3 { font-size: 1rem; font-weight: 700; color: white; margin-bottom: 10px; }
.prog-step p  { font-size: 0.875rem; line-height: 1.7; color: rgba(255,255,255,0.55); }

/* ── What You'll Need checklist (wheat apply section) ─────────────────────── */
.prog-checklist {
  margin-bottom: 48px; padding: 28px 32px;
  background: rgba(0,17,38,0.08);
  border-top: 3px solid var(--cedars);
}
.prog-checklist-label {
  display: block;
  font-size: 0.7rem; font-weight: 800;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--cedars);
  margin-bottom: 18px;
}
.prog-checklist ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 48px;
  list-style: none; margin: 0; padding: 0;
}
.prog-checklist li {
  position: relative; padding-left: 24px;
  font-size: 0.9rem; line-height: 1.6;
  color: rgba(0,17,38,0.7);
}
.prog-checklist li::before {
  content: '';
  position: absolute; left: 0; top: 0.65em;
  width: 11px; height: 2px;
  background: var(--cedars);
}

/* ── Stats Bar ────────────────────────────────────────────────────────────── */
.prog-stats {
  background: var(--cedars);
  position: relative; overflow: hidden;
}
.prog-stats::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.06'/%3E%3C/svg%3E");
  background-size: 180px; pointer-events: none;
}
.prog-stats-inner {
  max-width: 1440px; margin: 0 auto;
  padding: clamp(48px, 6vh, 72px) clamp(24px, 10vw, 144px);
  display: flex; gap: 2px;
  position: relative; z-index: 1;
}
.prog-stat { flex: 1; padding: 24px 32px; border-left: 1px solid rgba(255,255,255,0.08); }
.prog-stat:first-child { border-left: none; }
.prog-stat-num {
  display: block;
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  font-weight: 500; letter-spacing: -0.03em;
  color: var(--larch); line-height: 1; margin-bottom: 8px;
}
.prog-stat-label {
  font-size: 0.75rem; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.45);
}

/* ── Contact Split ────────────────────────────────────────────────────────── */
.prog-contact-split {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: clamp(40px, 5vw, 72px);
  align-items: start;
}
/* No staff card rendered: center the form instead of leaving a ghost 340px column */
.prog-contact-split:not(:has(.prog-staff-card)) {
  grid-template-columns: min(680px, 100%);
  justify-content: center;
}
.prog-staff-card {
  background: color-mix(in srgb, var(--dept-color) 20%, var(--dept-base));
  padding: 28px; border-radius: 2px;
}
.prog-staff-photo {
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--dept-base);
  margin-bottom: 16px;
  overflow: hidden;
}
.prog-staff-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.prog-dept-icon {
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--dept-color);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.65rem; font-weight: 500; letter-spacing: 0.08em;
  color: var(--dept-base); margin-bottom: 16px;
}
/* Dept icons: white text on darker dept colors; cedars text on light CED amber */
.prog-dept-icon--bdc { background: var(--bdc); color: var(--white); }     /* 7.13:1 — passes AAA */
.prog-dept-icon--fec { background: var(--fec); color: var(--white); }     /* 8.43:1 — passes AAA */
.prog-dept-icon--cdc { background: var(--cdc); color: var(--white); }     /* 4.04:1 — passes AA for large text */
.prog-dept-icon--ced { background: var(--ced); color: var(--cedars); }    /* 7.53:1 — passes AAA */
.prog-staff-name { font-size: 1.05rem; font-weight: 700; color: white; margin-bottom: 4px; }
.prog-staff-title {
  font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(255,255,255,0.45); margin-bottom: 20px;
}
.prog-contact-links { display: flex; flex-direction: column; gap: 8px; }
.prog-contact-links a { font-size: 0.9rem; color: var(--cream); text-decoration: none; font-weight: 600; overflow-wrap: break-word; }
.prog-contact-links a:hover { text-decoration: underline; }
.prog-form-area {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 36px; border-radius: 2px;
}
.prog-form-area h3 { font-size: 1.2rem; font-weight: 700; color: white; margin-bottom: 8px; }
.prog-form-area > p { font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.55); margin-bottom: 24px; }
.prog-form-placeholder { display: flex; flex-direction: column; gap: 16px; }

/* ── Related Programs ─────────────────────────────────────────────────────── */
.prog-related-list { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,0.08); }
.prog-related-row {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center; gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  text-decoration: none;
  transition: background 0.18s var(--ease), padding 0.18s var(--ease);
}
.prog-related-row:hover {
  background: color-mix(in srgb, var(--dept-color) 6%, var(--dept-base));
  padding-left: 16px; padding-right: 16px;
  margin: 0 -16px; border-radius: 2px;
}
.prog-related-num { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; color: var(--cream); }
.prog-related-body h3 { font-size: 1rem; font-weight: 700; color: white; margin-bottom: 4px; transition: color 0.18s; }
.prog-related-row:hover .prog-related-body h3 { color: var(--dept-color); }
.prog-related-body p  { font-size: 0.85rem; color: rgba(255,255,255,0.45); line-height: 1.5; }
.prog-related-arrow { font-size: 1.2rem; color: rgba(255,255,255,0.6); transition: color 0.18s, transform 0.18s; }
.prog-related-row:hover .prog-related-arrow { color: var(--larch); transform: translateX(4px); }

/* ── Program Page: Extra Blocks (text / two-col / callout) ────────────────── */
/* Used on light (cream/wheat) sections, so prose runs dark. */
.prog-prose {
  max-width: 760px;
  font-family: var(--body);
  color: var(--cedars);
  font-size: 1.02rem;
  line-height: 1.75;
}
.prog-prose p { margin: 0 0 1.1em; }
.prog-prose ul, .prog-prose ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.prog-prose li { margin-bottom: 0.5em; list-style-type: disc; }
.prog-prose ol li { list-style-type: decimal; }
.prog-prose a { color: var(--larch-text); text-decoration: underline; }
.prog-prose h3 { font-family: var(--display); font-weight: 800; color: var(--cedars); margin: 1.4em 0 0.5em; }
.prog-prose--2col { max-width: 100%; column-count: 2; column-gap: 56px; }

/* Full-width Text block with a side events column (text left, upcoming events right). */
.prog-text-events {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
.prog-text-events-text .prog-prose { max-width: 560px; }
/* Compact upcoming-events list for the side column. */
.mw-events-mini { list-style: none; margin: 0; padding: 0; }
.mw-events-mini-item { margin: 0 0 14px; }
.mw-events-mini-item:last-child { margin-bottom: 0; }
.mw-events-mini-link {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 18px;
  background: rgba(0,36,70, 0.05);
  border-left: 3px solid var(--dept-color);
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.mw-events-mini-link:hover { background: rgba(0,36,70, 0.10); }
.mw-events-mini-date {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  min-width: 44px;
}
.mw-events-mini-month { font-family: var(--body); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dept-color); }
.mw-events-mini-day { font-family: var(--display); font-weight: 800; font-size: 1.5rem; color: var(--cedars); }
.mw-events-mini-body { display: flex; flex-direction: column; }
.mw-events-mini-title { font-family: var(--display); font-weight: 700; color: var(--cedars); line-height: 1.3; margin-bottom: 4px; }
.mw-events-mini-meta { font-family: var(--body); font-size: 0.86rem; line-height: 1.5; color: rgba(0,36,70, 0.75); }
@media (max-width: 860px) {
  .prog-text-events { grid-template-columns: 1fr; gap: 32px; }
  .prog-text-events-text .prog-prose { max-width: 760px; }
}

.prog-callout {
  max-width: 820px;
  padding: 40px clamp(24px, 4vw, 56px);
  background: rgba(0,36,70, 0.06);
  border-left: 4px solid var(--dept-color);
  border-radius: 6px;
}
.prog-callout h2 { font-family: var(--display); font-weight: 800; color: var(--cedars); margin: 0 0 14px; }
.prog-callout-body { font-family: var(--body); color: var(--cedars); line-height: 1.7; }
.prog-callout-body p { margin: 0 0 1em; }
.prog-callout-body p:last-child { margin-bottom: 0; }
.prog-callout-body a { color: var(--larch-text); text-decoration: underline; }
/* On wheat/gold callouts, larch-text links fail AA — use Cedars green (matches the
   CED-gold-section text convention). Cream callouts keep the larch-text accent. */
.prog-section--wheat .prog-callout-body a { color: var(--cedars); font-weight: 600; }
/* Callout with an image/logo: two columns (image left, text right). */
.prog-callout--with-image {
  max-width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
}
.prog-callout-media { display: flex; align-items: center; justify-content: center; }
.prog-callout-media img { width: 100%; max-width: 320px; height: auto; display: block; }
@media (max-width: 700px) {
  .prog-callout--with-image { grid-template-columns: 1fr; gap: 20px; justify-items: center; text-align: left; }
  .prog-callout-media { max-width: 200px; }
}

@media (max-width: 768px) {
  .prog-prose--2col { column-count: 1; }
}

/* ── Program Page: hero fineprint + programs note (dark surfaces) ──────────── */
.prog-hero-fineprint { margin-top: 14px; font-size: 0.8rem; line-height: 1.6; color: rgba(245,240,232,0.6); }
.prog-hero-fineprint a { color: rgba(245,240,232,0.92); text-decoration: underline; }
.prog-related-note { margin-top: 26px; font-size: 0.9rem; line-height: 1.6; color: rgba(255,255,255,0.55); }
.prog-related-note a { color: var(--cream); text-decoration: underline; }
/* Light-surface variants — the default white text is for dark sections. */
.prog-section--wheat .prog-related-note,
.prog-section--cream .prog-related-note { color: rgba(0,17,38,0.65); }
.prog-section--wheat .prog-related-note a,
.prog-section--cream .prog-related-note a { color: var(--cedars); }

/* ── Program Page: Toolbox / service tags (cream section) ──────────────────── */
.prog-toolbox-grid { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.prog-tag {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  background: rgba(0,36,70, 0.05);
  border: 1px solid rgba(0,36,70, 0.14);
  border-left: 3px solid var(--dept-color);
  border-radius: 4px;
  font-family: var(--body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--cedars);
}

/* ── CTA ──────────────────────────────────────────────────────────────────── */
/* ── FAQ accordion ────────────────────────────────────────────────────────── */
.faq-group {
  margin-bottom: 64px;
}
.faq-group:last-child { margin-bottom: 0; }
.faq-group h2 {
  font-family: var(--display);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 800;
  color: var(--cedars);
  margin: 0 0 24px;
  letter-spacing: -0.02em;
}
.faq-list {
  border-top: 1px solid rgba(0,36,70,0.12);
}
.faq-item {
  border-bottom: 1px solid rgba(0,36,70,0.12);
}
.faq-item summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 20px 0;
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--cedars);
  cursor: pointer;
  list-style: none;
  line-height: 1.4;
  transition: color 0.15s;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--larch);
  flex-shrink: 0;
  transition: transform 0.2s;
  line-height: 1;
}
.faq-item[open] summary::after {
  transform: rotate(45deg);
}
.faq-item[open] summary { color: var(--larch); }
.faq-answer {
  padding: 0 0 24px;
}
.faq-answer p {
  font-size: 15px;
  line-height: 1.85;
  color: rgba(0,36,70,0.7);
  margin: 0 0 12px;
}
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer a {
  color: var(--cedars);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.faq-answer a:hover { color: var(--larch); }
.faq-answer ul {
  margin: 12px 0;
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.faq-answer ul li {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(0,36,70,0.65);
}

/* Non-dept pages: prog-cta uses cedars instead of dept-color */
.is-faqs-page .prog-cta,
.is-about-page .prog-cta { background: var(--cedars); }
/* Subscribe page: no dept context, so set its tokens + a Cedars CTA background.
   The embedded CC form inherits the .prog-cta-form-area Ink styling. */
.is-subscribe-page { --dept-color: var(--larch); --dept-base: var(--cedars); --dept-accent: var(--larch); }
.is-subscribe-page .prog-cta { background: var(--cedars); min-height: 70vh; display: flex; align-items: center; }
.is-subscribe-page .prog-cta .prog-inner { width: 100%; }
/* "Newsletter" word watermark (replaces the default single-glyph ghost).
   Negative bottom drops the descender gap below the edge so the letters sit flush
   on the section's bottom line, matching the dept-page corner watermarks. */
.is-subscribe-page .prog-cta-ghost { font-size: clamp(44px, 9vw, 130px); right: 3vw; bottom: -0.2em; white-space: nowrap; line-height: 1; }
/* The page copy (left column) is the source of truth, so hide the CC form's own
   title + description to avoid repeating "Stay in the Loop". */
.is-subscribe-page .prog-cta-form-area .ctct-form-header,
.is-subscribe-page .prog-cta-form-area .ctct-form-text { display: none !important; }

.prog-cta { position: relative; background: var(--bdc); overflow: hidden; }
.prog-cta-grain {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.09'/%3E%3C/svg%3E");
  background-size: 180px; pointer-events: none;
}
.prog-cta-ghost {
  position: absolute; right: -2vw; bottom: -8vw;
  font-size: clamp(120px, 28vw, 380px);
  font-weight: 500; line-height: 0.85;
  color: rgba(255,255,255,0.07);
  user-select: none; pointer-events: none;
}
.prog-cta .prog-inner { position: relative; z-index: 1; }
.prog-cta-content { max-width: 660px; }
.prog-cta h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 500; letter-spacing: -0.02em; line-height: 1.05;
  color: white; margin-bottom: 16px;
}
.prog-cta p { font-size: 1.05rem; line-height: 1.65; color: rgba(255,255,255,0.8); margin-bottom: 32px; }
.prog-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ── CTA with embedded contact form (copy left, form right) ───────────────── */
.prog-cta--form .prog-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 88px);
  align-items: start;
}
.prog-cta--form .prog-cta-content { max-width: none; }
.prog-cta-secondary { font-size: 0.95rem; color: rgba(255,255,255,0.7); margin-bottom: 0; }
.prog-cta-secondary a { color: var(--cream); text-decoration: underline; }
.prog-cta-form-area {
  background: var(--cream);
  border-radius: 8px;
  padding: clamp(24px, 3vw, 40px);
}
/* ── Constant Contact inline form (Main Street signup) ─────────────────────
   Re-skin CC's default form to the Ink design system, mirroring the Ninja Forms
   treatment above. CC injects high-specificity styles, so !important is needed. */
.prog-cta-form-area .ctct-inline-form { width: 100%; }
.prog-cta-form-area .ctct-form-defaults,
.prog-cta-form-area .ctct-form-embed { background: transparent !important; padding: 0 !important; border: 0 !important; }

/* Heading + intro/disclaimer text → Raleway, cedars */
.prog-cta-form-area .ctct-form-header {
  font-family: var(--body) !important;
  font-weight: 800 !important;
  color: var(--cedars) !important;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 10px !important;
}
.prog-cta-form-area .ctct-form-text,
.prog-cta-form-area .ctct-form-footer,
.prog-cta-form-area .ctct-form-footer * {
  font-family: var(--body) !important;
  color: rgba(0,36,70,0.65) !important;
}

/* Field labels + required asterisk */
.prog-cta-form-area .ctct-form-label,
.prog-cta-form-area .ctct-form-field label {
  font-family: var(--body) !important;
  font-weight: 700 !important;
  color: var(--cedars) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.prog-cta-form-area .ctct-form-required:before,
.prog-cta-form-area .ctct-label-required:after,
.prog-cta-form-area .ctct-form-asterisk { color: var(--larch) !important; }

/* Inputs / selects / textareas → match the NF input treatment */
.prog-cta-form-area .ctct-form-element,
.prog-cta-form-area .ctct-form-field input,
.prog-cta-form-area .ctct-form-field textarea,
.prog-cta-form-area .ctct-form-field select {
  font-family: var(--body) !important;
  background-color: var(--white) !important;
  border: 1px solid rgba(0,36,70,0.28) !important;
  color: var(--cedars) !important;
  border-radius: 3px !important;
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04) !important;
}
.prog-cta-form-area .ctct-form-element:focus,
.prog-cta-form-area .ctct-form-field input:focus,
.prog-cta-form-area .ctct-form-field textarea:focus,
.prog-cta-form-area .ctct-form-field select:focus {
  border-color: var(--larch) !important;
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04) !important;
  outline: none !important;
}

/* Submit button → Larch CTA, matches the NF submit button */
.prog-cta-form-area .ctct-form-button {
  font-family: var(--body) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 2.5px !important;
  text-transform: uppercase !important;
  color: var(--cedars) !important;
  background: var(--larch) !important;
  border: 1px solid var(--larch) !important;
  padding: 16px 36px !important;
  border-radius: 3px !important;
  box-shadow: 0 2px 10px rgba(205,148,55,0.25) !important;
  width: auto !important;
  cursor: pointer !important;
  transition: background 0.2s, border-color 0.2s, transform 0.15s, box-shadow 0.2s !important;
}
.prog-cta-form-area .ctct-form-button:hover {
  background: var(--harvest) !important;
  border-color: var(--harvest) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(205,148,55,0.35) !important;
}

/* Hide the "Constant Contact" branding badge (kept the consent disclaimer above
   it). Targeted by class + accessible name so it survives CC markup changes. */
.prog-cta-form-area .ctct-powered-by,
.prog-cta-form-area .ctct-form-branding,
.prog-cta-form-area a[title="Constant Contact"],
.prog-cta-form-area img[alt*="Constant Contact"] { display: none !important; }

/* ── No Constant Contact popups / flyouts / banners anywhere ───────────────
   The CC widget auto-displays every active account form. We only want the
   inline embed, so suppress the modal variants (the real fix is to set those
   forms inactive in Constant Contact; this is the belt-and-suspenders). */
.ctct-form-popup,
.ctct-form-flyout,
.ctct-form-banner,
.ctct-modal,
[class*="ctct"][class*="popup"],
[class*="ctct"][class*="flyout"],
[id^="ctct_popup"] { display: none !important; }

/* ── Grant applicant portal ─────────────────────────────────────────────── */
.is-grant-portal-page .site-inner { background: var(--cream); }
.gp-wrap { padding: 64px 0 96px; color: var(--cedars); }
.gp-head { margin-bottom: 40px; }
.gp-head .section-label { color: var(--larch-text); }
.gp-head h1 { font-family: 'Lexend Deca', sans-serif; font-weight: 800; font-size: clamp(2rem, 4vw, 3rem); color: var(--cedars); margin: 6px 0 8px; letter-spacing: -0.02em; }
.gp-head p { color: rgba(0,36,70,0.7); font-size: 1.05rem; }
.gp-head-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.gp-badge { display: inline-block; padding: 4px 12px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: 0.04em; color: #fff; text-transform: uppercase; }
.gp-list { display: grid; gap: 18px; }
.gp-card { background: #fff; border: 1px solid rgba(0,36,70,0.12); border-radius: 8px; padding: 24px 28px; }
.gp-card-main { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.gp-card-main h2 { font-family: 'Lexend Deca', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--cedars); margin: 0; }
.gp-card-meta { color: rgba(0,36,70,0.55); font-size: 0.9rem; margin: 8px 0 16px; }
.gp-empty { background: #fff; border: 1px dashed rgba(0,36,70,0.2); border-radius: 8px; padding: 40px; text-align: center; }
.gp-empty p { color: rgba(0,36,70,0.7); margin-bottom: 18px; }
.gp-back { margin-bottom: 14px; }
.gp-back a { color: var(--larch-text); font-weight: 600; text-decoration: none; }
.gp-callout { background: rgba(181,83,49,0.08); border-left: 4px solid var(--ced); border-radius: 4px; padding: 18px 22px; margin-bottom: 28px; color: var(--cedars); }
.gp-callout p { margin: 8px 0 0; }
.gp-section { background: #fff; border: 1px solid rgba(0,36,70,0.12); border-radius: 8px; padding: 26px 30px; margin-bottom: 22px; }
.gp-section h2 { font-family: 'Lexend Deca', sans-serif; font-weight: 800; font-size: 1.05rem; color: var(--cedars); margin: 0 0 18px; text-transform: uppercase; letter-spacing: 0.05em; }
.gp-section h3 { font-size: 0.76rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--larch-text); margin: 22px 0 10px; }
.gp-section h3:first-of-type { margin-top: 0; }
.gp-timeline { list-style: none; margin: 0; padding: 0; }
.gp-timeline li { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.gp-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.gp-tl-label { font-weight: 700; color: var(--cedars); }
.gp-tl-date { color: rgba(0,36,70,0.5); font-size: 0.9rem; margin-left: auto; }
.gp-docs { list-style: none; margin: 0; padding: 0; }
.gp-docs li { padding: 7px 0; border-bottom: 1px solid rgba(0,36,70,0.08); }
.gp-docs a { color: var(--bdc); font-weight: 600; }
.gp-readback .gp-row { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 9px 0; border-bottom: 1px solid rgba(0,36,70,0.07); }
.gp-row-label { font-weight: 600; color: rgba(0,36,70,0.6); font-size: 0.92rem; }
.gp-row-val { color: var(--cedars); }
@media (max-width: 640px) { .gp-readback .gp-row { grid-template-columns: 1fr; gap: 2px; } }
.gp-btn { display: inline-block; background: var(--larch); color: var(--cedars); font-family: 'Lexend Deca', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; padding: 13px 28px; border-radius: 3px; text-decoration: none; border: 1px solid var(--larch); transition: background 0.2s, transform 0.15s; }
.gp-btn:hover { background: var(--harvest); transform: translateY(-1px); }
.gp-btn--ghost { background: transparent; color: var(--cedars); border-color: rgba(0,36,70,0.3); }
.gp-btn--ghost:hover { background: transparent; border-color: var(--cedars); }
/* portal message thread */
.gp-thread-empty { color: rgba(0,36,70,0.55); }
.gp-msgs { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gp-msg { max-width: 78%; padding: 14px 18px; border-radius: 10px; }
.gp-msg--staff { background: #eef3f1; align-self: flex-start; border-bottom-left-radius: 2px; }
.gp-msg--applicant { background: rgba(205,148,55,0.12); align-self: flex-end; border-bottom-right-radius: 2px; }
.gp-msg-head { display: flex; gap: 10px; align-items: baseline; margin-bottom: 5px; }
.gp-msg-who { font-weight: 700; color: var(--cedars); font-size: 0.85rem; }
.gp-msg-date { color: rgba(0,36,70,0.45); font-size: 0.78rem; }
.gp-msg-body { color: var(--cedars); line-height: 1.55; }
.gp-msg-file { display: inline-block; margin-top: 8px; color: var(--bdc); font-weight: 600; font-size: 0.9rem; }
.gp-reply { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid rgba(0,36,70,0.1); padding-top: 20px; }
.gp-reply textarea { width: 100%; border: 1px solid rgba(0,36,70,0.25); border-radius: 6px; padding: 12px 14px; font-family: inherit; font-size: 1rem; color: var(--cedars); resize: vertical; min-height: 80px; }
.gp-reply textarea:focus { outline: none; border-color: var(--larch); }
.gp-reply-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.gp-reply-file { cursor: pointer; color: var(--larch-text); font-weight: 600; font-size: 0.9rem; border: 1px dashed rgba(0,36,70,0.3); padding: 9px 16px; border-radius: 4px; }
.gp-reply-file:hover { border-color: var(--larch); }
.gp-reply-status { color: rgba(0,36,70,0.6); font-size: 0.9rem; margin: 0; }
@media (max-width: 860px) {
  .prog-cta--form .prog-cta-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ── 2-col card grid variant ──────────────────────────────────────────────── */
.prog-cards-grid--2col { grid-template-columns: repeat(2, 1fr); }

/* ── Card internal elements (phase cards, lists) ──────────────────────────── */
.prog-card-phase-label {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--dept-color); margin-bottom: 10px;
}
.prog-section--wheat .prog-card-phase-label { color: var(--cedars); opacity: 0.6; }
/* Feature-card body (e.g. Mission/Vision/Values). Bare text + <p> + <ul> all readable.
   Light on dark sections, dark on cream/wheat. Mirrors .prog-card p coloring. */
.prog-card-body { font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.55); }
.prog-card-body p { margin: 0 0 0.8em; color: inherit; }
.prog-card-body p:last-child { margin-bottom: 0; }
.prog-card-body ul { padding-left: 18px; margin: 0; }
.prog-card-body li { color: inherit; }
.prog-section--cream .prog-card-body,
.prog-section--wheat .prog-card-body { color: rgba(0,17,38,0.62); }
/* Wheat sections keep the translucent-dark card bg (cream sections swap to a
   dark dept-base bg), so card text must flip dark here too. */
.prog-section--wheat .prog-card h3 { color: var(--cedars); }
.prog-section--wheat .prog-card p  { color: rgba(0,17,38,0.62); }
.prog-card ul { padding-left: 20px; margin: 14px 0 0; }
.prog-card li { font-size: 0.875rem; line-height: 1.55; color: rgba(255,255,255,0.5); list-style-type: disc; margin-bottom: 10px; }
.prog-card li:last-child { margin-bottom: 0; }
.prog-card li::marker { color: rgba(255,255,255,0.85); }
.prog-section--wheat .prog-card li { color: rgba(0,17,38,0.55); }
.prog-section--wheat .prog-card li::marker { color: rgba(0,17,38,0.6); }

/* ── Notices ──────────────────────────────────────────────────────────────── */
.prog-notice {
  margin-top: 40px; padding: 20px 24px;
  border-left: 3px solid var(--dept-color);
  background: rgba(0,0,0,0.18);
  font-size: 0.9rem; line-height: 1.65;
  color: rgba(255,255,255,0.65);
}
.prog-section--wheat .prog-notice,
.prog-section--cream .prog-notice {
  border-left-color: var(--cedars);
  background: rgba(0,17,38,0.1);
  color: rgba(0,17,38,0.65);
}
.prog-service-note {
  margin-top: 36px; padding-top: 20px;
  border-top: 1px solid color-mix(in srgb, var(--dept-base) 20%, transparent);
  font-size: 0.85rem;
  color: color-mix(in srgb, var(--dept-base) 65%, transparent);
}

/* ── Hero badges (FEC facility, cherry pitting) ───────────────────────────── */
.prog-hero-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
/* When the button row follows the badge pills directly (loan-fund singles,
   facility, reap, etc.), neither block carries spacing between them, so the
   buttons collapse against the pills. Add the gap only for that adjacency;
   the ~27 heroes where buttons follow .prog-hero-tagline are untouched. */
.prog-hero-badges + .prog-hero-actions { margin-top: 28px; }
.prog-hero-badge {
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.65); border: 1px solid rgba(255,255,255,0.25);
  padding: 5px 12px; border-radius: 2px;
}

/* ── Team grid ────────────────────────────────────────────────────────────
   Horizontal-split cards on /about/team/: photo left, body right, a small
   dept-color accent bar above the title. FEC facility page (also uses
   .prog-team-grid) keeps the editorial-portrait look via overrides below. */
.prog-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.is-about-team-page .prog-section--missions .prog-inner,
.is-about-board-page .prog-section--missions .prog-inner {
  max-width: 1680px;
  padding-left: clamp(24px, 6vw, 96px);
  padding-right: clamp(24px, 6vw, 96px);
}
/* Board page has no dept colors — use Larch as the accent bar color. */
.is-about-board-page { --dept-color: var(--larch); }
/* Raw larch fails AA on the wheat governance section — gold surfaces take Cedars. */
.is-about-board-page .prog-section--wheat .btn-dept-outline { color: var(--cedars); border-color: var(--cedars); }
.is-about-board-page .prog-section--wheat .btn-dept-outline:hover { background: var(--cedars); color: #fff; border-color: var(--cedars); }
.prog-team-card {
  background: rgba(0,0,0,0.18);
  padding: 0;
  color: rgba(255,255,255,0.85);
  display: grid;
  grid-template-columns: 140px 1fr;
  overflow: hidden;
  transition: background 0.25s;
}
.prog-team-card:hover { background: rgba(0,0,0,0.28); }
.prog-team-photo {
  width: 100%;
  height: 100%;
  min-height: 180px;
  border-radius: 0;
  border: 0;
  margin: 0;
  background: color-mix(in srgb, var(--dept-color) 25%, var(--dept-base));
  overflow: hidden;
  display: block;
}
.prog-team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.prog-team-body {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
}
/* Dept-color accent bar — inherits --dept-color from .team-dept-group. */
.prog-team-body::before {
  content: '';
  display: block;
  width: 28px;
  height: 3px;
  background: var(--dept-color);
  margin-bottom: 10px;
}

.prog-team-name { font-family: var(--display); font-size: 1.05rem; font-weight: 800; line-height: 1.2; color: white; margin-bottom: 4px; letter-spacing: -0.01em; }
.prog-team-title {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 12px;
}

/* Board page: org line trails the title with no contact section below,
   so drop the bottom margin that exists for the FEC facility card layout. */
.is-about-board-page .prog-team-org { margin-bottom: 0; }

/* Board bios render as post content inside the card body (page-about-board.php). */
.prog-team-bio { font-size: 0.88rem; line-height: 1.65; color: rgba(255,255,255,0.72); margin-top: 12px; }
.prog-team-bio p { margin: 0 0 10px; }
.prog-team-bio p:last-child { margin-bottom: 0; }

/* Bios make board cards tall; a full-height 140px photo column turns any
   headshot into an extreme sliver crop. Pin the photo to a fixed window,
   biased toward the top of the frame where faces live. */
.is-about-board-page .prog-team-card { align-items: start; }
.is-about-board-page .prog-team-photo { height: 210px; min-height: 0; }
.is-about-board-page .prog-team-photo img { object-position: 50% 18%; }

/* The MMFEC facility page now uses the standard horizontal team card
   (matching the dept pages and /about/team/). The old editorial-portrait
   override was removed 2026-06-02 for consistency. */

/* Column variants for the mw_dept_staff shortcode. The team page default
   is 3 cols; dept pages with 1–2 staff need narrower grids so single
   cards don't sit alone in a 3-col row. */
.prog-team-grid--1col { grid-template-columns: minmax(0, 500px); max-width: 500px; }
.prog-team-grid--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1040px; }

/* Dept-team sections are CREAM background (light) on BDC/FEC/CDC, so the
   horizontal team card needs a light-on-light treatment. CED keeps the
   dark treatment because its dept-team bg is overridden to Cedars green
   elsewhere. */
.dept-team .prog-team-card { background: rgba(0, 0, 0, 0.04); }
.dept-team .prog-team-name,
.dept-team .prog-team-name a { color: var(--cedars); }
.dept-team .prog-team-title { color: rgba(0,36,70, 0.6); }
.dept-team .prog-team-contact { border-top-color: rgba(0, 0, 0, 0.1); }
.dept-team .prog-team-card .prog-team-contact a { color: var(--larch-text); }
.dept-team .prog-team-card .prog-team-contact a:hover { color: var(--cedars); }
.dept-team .prog-team-photo { background: color-mix(in srgb, var(--dept-color) 18%, var(--cream)); }
/* CED and FEC dept-team sections both use a dark Cedars bg (per the
   .is-{ced,fec}-page .dept-team rules elsewhere in this file), so flip
   the cards to dark treatment with light text on those pages. */
.is-ced-page .dept-team .prog-team-card,
.is-fec-page .dept-team .prog-team-card { background: rgba(0, 0, 0, 0.18); }
.is-ced-page .dept-team .prog-team-name,
.is-ced-page .dept-team .prog-team-name a,
.is-fec-page .dept-team .prog-team-name,
.is-fec-page .dept-team .prog-team-name a { color: var(--white); }
.is-ced-page .dept-team .prog-team-title,
.is-fec-page .dept-team .prog-team-title { color: rgba(255, 255, 255, 0.6); }
.is-ced-page .dept-team .prog-team-contact,
.is-fec-page .dept-team .prog-team-contact { border-top-color: rgba(255, 255, 255, 0.08); }
.is-ced-page .dept-team .prog-team-card .prog-team-contact a { color: var(--ced); }
.is-ced-page .dept-team .prog-team-card .prog-team-contact a:hover { color: var(--white); }
.is-fec-page .dept-team .prog-team-card .prog-team-contact a { color: var(--larch); }
.is-fec-page .dept-team .prog-team-card .prog-team-contact a:hover { color: var(--white); }
.is-ced-page .dept-team .prog-team-photo { background: color-mix(in srgb, var(--ced) 25%, var(--cedars)); }
.is-fec-page .dept-team .prog-team-photo { background: color-mix(in srgb, var(--fec) 25%, var(--cedars)); }
.prog-team-org {
  font-size: 0.9rem; color: rgba(255,255,255,0.65); margin-top: 4px; margin-bottom: 18px; font-style: italic;
}
.prog-team-contact {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 4px;
}
/* Specificity matters here: .prog-team-card a { color: inherit } is declared
   later in the file at equal specificity and beats this rule unless we
   prefix with .prog-team-card to push to (0,2,1). Same trick for profile-link
   below. */
.prog-team-card .prog-team-contact a {
  font-size: 0.9rem;
  color: var(--larch);
  text-decoration: none;
  transition: color 0.15s, opacity 0.15s;
  /* Guard against extreme-length emails breaking the card layout. break-word
     (not anywhere) so the <wbr> before the @ wins as the break point. */
  overflow-wrap: break-word;
}
.prog-team-card .prog-team-contact a:hover { color: var(--harvest); }
.prog-section--cream .prog-team-card { background: var(--dept-base); }
.prog-section--cream .prog-team-photo {
  background: color-mix(in srgb, var(--dept-color) 25%, var(--dept-base));
  border-color: var(--dept-accent);
}

/* ── County demographic data within prog-card (dark section) ─────────────── */
.prog-card-data {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.prog-card-stat { display: flex; flex-direction: column; gap: 2px; min-width: 80px; }
.prog-card-stat-num {
  font-family: var(--display);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--larch);
  line-height: 1;
}
.prog-card-stat-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.prog-card-industries {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
}
.prog-card-industries-label {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
  margin-right: 4px;
  flex-basis: 100%;
}
.prog-card-industries span {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.06);
  padding: 3px 10px;
  border-radius: 2px;
}

/* ── Farm-to-Institution block (cream section) ───────────────────────────── */
.dept-fti-block {
  margin-top: 52px;
  padding: 32px 36px;
  background: rgba(0,36,70,0.05);
  border-left: 3px solid var(--larch);
}
.dept-fti-block .section-label { margin-bottom: 10px; }
.dept-fti-block h3 {
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cedars);
  margin: 0 0 10px;
}
.dept-fti-block > p {
  font-size: 14px;
  line-height: 1.75;
  color: rgba(0,36,70,0.65);
  margin: 0 0 20px;
}
.dept-fti-products {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.dept-fti-products span {
  background: rgba(0,36,70,0.08);
  border: 1px solid rgba(0,36,70,0.12);
  padding: 5px 14px;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 600;
  color: var(--cedars);
  letter-spacing: 0.02em;
}
.dept-fti-partners {
  font-size: 12px;
  color: rgba(0,36,70,0.45);
  line-height: 1.6;
  margin: 0;
}

/* ── Card list (bullet list inside a prog-card) ──────────────────────────── */
.prog-card-list {
  margin: 10px 0 0;
  padding-left: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.prog-card-list li {
  font-size: 13px;
  line-height: 1.5;
  color: rgba(245,240,232,0.65);
}

/* ── Revolving loan funds block ───────────────────────────────────────────── */
.prog-funds-block {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.prog-funds-block h3 {
  font-family: var(--display);
  font-size: 1.1rem;
  font-weight: 700;
  color: #f5f0e8;
  margin: 0 0 8px;
}
.prog-funds-block > p {
  font-size: 14px;
  color: rgba(245,240,232,0.5);
  margin: 0 0 32px;
}
.prog-funds-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2px;
}
.prog-fund-item {
  background: rgba(0,0,0,0.18);
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.prog-fund-name {
  font-family: var(--display);
  font-size: 0.8rem;
  font-weight: 700;
  color: #f5f0e8;
  line-height: 1.35;
}
.prog-fund-desc {
  font-size: 0.72rem;
  color: rgba(245,240,232,0.45);
  line-height: 1.6;
}
/* The funds/partners block is built for dark sections (cream text). On a cream
   section (Farm-to-School "Program Partners") that text is unreadable, so flip
   it to dark-on-light. Scoped to .prog-section--cream; the dark usages
   (facility, board-application) are untouched. */
.prog-section--cream .prog-funds-block { border-top-color: rgba(0,36,70,0.12); }
.prog-section--cream .prog-fund-item   { background: rgba(0,36,70,0.06); }
.prog-section--cream .prog-fund-name   { color: var(--cedars); }
.prog-section--cream .prog-fund-desc   { color: rgba(0,36,70,0.75); }

/* Farm to Institution: Program Partners block gets the same green panel as the
   "Ready to Grow Your Market?" CTA (var(--dept-color)), with cream text. Scoped
   to this page so other funds/partners blocks are untouched. */
.is-farm-to-school-page .prog-funds-block {
  background: var(--dept-color);
  padding: 44px;
  border-radius: 4px;
  border-top: none;
}
.is-farm-to-school-page .prog-funds-block .section-label,
.is-farm-to-school-page .prog-funds-block h3 { color: #f5f0e8; }
.is-farm-to-school-page .prog-funds-block > p { color: rgba(245,240,232,0.78); }
.is-farm-to-school-page .prog-funds-block .prog-fund-item { background: rgba(0,0,0,0.18); }
.is-farm-to-school-page .prog-funds-block .prog-fund-name  { color: #f5f0e8; }
.is-farm-to-school-page .prog-funds-block .prog-fund-desc  { color: rgba(245,240,232,0.78); }

/* Montana Marinara Toolkit: short intro on top, then image + form side by side.
   The form lives in its own white card so it reads as a clear lead-capture panel,
   and the intro length never crowds it. */
.mw-toolkit-head { max-width: 720px; margin-bottom: 44px; }
.mw-toolkit-intro { color: rgba(0,36,70,0.78); font-size: 1.02rem; line-height: 1.65; }
.mw-toolkit-intro p:last-child { margin-bottom: 0; }
.mw-toolkit-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: stretch; }
.mw-toolkit-visual img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; border-radius: 4px; display: block; }
.mw-toolkit-form-card { background: #fff; padding: 40px; border-radius: 4px; box-shadow: 0 18px 44px rgba(0,36,70,0.10); }
.mw-toolkit-form-card .nf-form-cont { margin: 0; }
@media (max-width: 880px) {
  .mw-toolkit-head { margin-bottom: 28px; }
  .mw-toolkit-grid { grid-template-columns: 1fr; gap: 24px; }
  .mw-toolkit-visual img { min-height: 220px; }
  .mw-toolkit-form-card { padding: 28px; }
}

/* ── Consultation booking link ────────────────────────────────────────────── */
.prog-book-link {
  display: inline-block;
  margin-top: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  /* Gold accent: the dept-color (e.g. BDC blue) was near-invisible on the dark
     navy staff card. --harvest gold clears AA (~4.5:1) on that navy. */
  color: var(--harvest) !important;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: opacity 0.15s;
}
.prog-book-link:hover { opacity: 0.75; }

/* ── Cherry pricing table ─────────────────────────────────────────────────── */
.cherry-pricing-table { margin-bottom: 36px; max-width: 600px; }
.cherry-pricing-head,
.cherry-pricing-row { display: grid; grid-template-columns: 1.5fr 1fr 1fr; align-items: center; }
.cherry-pricing-head { border-bottom: 1px solid rgba(255,255,255,0.15); padding-bottom: 10px; }
.cherry-pricing-head .cherry-pricing-col {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.4);
}
.cherry-pricing-row { border-bottom: 1px solid rgba(255,255,255,0.07); padding: 14px 0; }
.cherry-pricing-col--volume { font-size: 0.9rem; font-weight: 600; color: var(--cedars); }
.cherry-price { font-family: var(--display); font-size: 1.3rem; font-weight: 500; color: var(--cedars); letter-spacing: -0.02em; }
.cherry-addons { margin-top: 36px; max-width: 600px; }
.cherry-addons h3 {
  font-family: var(--display); font-size: 0.72rem; font-weight: 800;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.35); margin-bottom: 12px;
}
.cherry-addon-list { list-style: none; padding: 0; margin: 0; }
.cherry-addon-list li {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.07);
}
.cherry-addon-name { font-size: 0.9rem; color: #444; }
.cherry-addon-price { font-size: 0.9rem; font-weight: 700; color: var(--cedars); }

/* ── Cherry pricing: rate table + add-ons on the left, photo on the right ──── */
.cherry-pricing-layout { display: grid; grid-template-columns: minmax(0, 620px) 1fr; gap: clamp(40px, 5vw, 72px); align-items: stretch; }
.cherry-pricing-main { min-width: 0; }
.cherry-pricing-main .cherry-pricing-table,
.cherry-pricing-main .cherry-addons { max-width: none; }
/* give the table cells breathing room from the card edge */
.cherry-pricing-head, .cherry-pricing-row { padding-left: 22px; padding-right: 22px; }
.cherry-pricing-aside { position: relative; min-height: 100%; }
.cherry-pricing-aside img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; border-radius: 2px; display: block; box-shadow: 0 18px 50px rgba(0,0,0,0.28); }
.cherry-pricing-aside-ph {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%; min-height: 380px; border-radius: 2px;
  background: color-mix(in srgb, var(--dept-color) 22%, rgba(0,0,0,0.30));
  border: 1px dashed rgba(245,240,232,0.22);
  font-family: var(--body); font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase; color: rgba(245,240,232,0.5);
}
/* fine print on the dark pricing section: readable light text + list spacing */
.prog-section--missions .prog-notice { color: rgba(245,240,232,0.72); }
.prog-notice ul { margin: 0; padding-left: 18px; }
.prog-notice li { margin-bottom: 6px; }
.prog-notice li:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .cherry-pricing-layout { grid-template-columns: 1fr; gap: 28px; }
  .cherry-pricing-aside { min-height: 0; }
  .cherry-pricing-aside img, .cherry-pricing-aside-ph { min-height: 260px; }
}

/* ── Impact story cards (CDC) ─────────────────────────────────────────────── */
.prog-impact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; }
.prog-impact-card {
  background: var(--dept-base);
  padding: 40px 36px;
  border-left: 3px solid transparent;
  transition: border-color 0.2s var(--ease);
}
.prog-impact-card:hover { border-left-color: var(--dept-color); }
.prog-impact-tag {
  font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--cream); margin-bottom: 12px; display: block;
}
.prog-impact-card h3 {
  font-family: var(--display);
  font-size: 1.1rem; font-weight: 800; color: white; margin-bottom: 6px;
}
.prog-impact-sub {
  font-size: 0.82rem; font-weight: 600; color: rgba(255,255,255,0.45);
  margin-bottom: 16px; font-style: italic; display: block;
}
.prog-impact-card > p { font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.6); margin-bottom: 10px; }
.prog-impact-result { display: flex; align-items: flex-start; gap: 10px; margin-top: 8px; }
.prog-impact-result svg { flex-shrink: 0; color: var(--dept-color); margin-top: 2px; }
.prog-impact-result span { font-size: 0.85rem; color: rgba(255,255,255,0.5); }

/* ── CED sub-page overrides (amber dept-color has poor contrast on hero/CTA) */
/* CED's dept color is gold (#D8CEA3), a light surface. Inner heroes carry a dark
   scrim over the gold so the standard WHITE hero text stays readable — the gold is
   only a placeholder until a hero_background photo is added (the photo brings its
   own inline dark overlay). NOTE: the homepage CED section is separate markup and
   intentionally stays gold-with-dark-text; these .is-ced-page rules don't touch it. */
.is-ced-page .prog-hero { background: linear-gradient(rgba(20,40,34,0.66), rgba(20,40,34,0.66)), var(--dept-color); }
.is-ced-page .prog-hero h1 { color: #fff; }
.is-ced-page .prog-hero-tagline { color: rgba(255,255,255,0.85); }
.is-ced-page .prog-breadcrumb,
.is-ced-page .prog-breadcrumb a,
.is-ced-page .prog-breadcrumb span { color: rgba(255,255,255,0.7); }
.is-ced-page .prog-breadcrumb a:hover { color: #fff; }
.is-ced-page .prog-hero-ghost { color: rgba(255,255,255,0.08); }
/* Harvest on Main ghost is "HARVEST" (7 chars) vs the default 3-char abbreviation,
   so scale down so the word fits comfortably without overflowing. */
.is-harvest-on-main-page .prog-hero-ghost { font-size: clamp(60px, 11vw, 170px); }
/* CED hero badges + outline buttons now sit on a dark scrim, so they use the
   default light .prog-hero-badge / .btn-outline-white styling (no CED override). */
/* Constant Contact inline form: hide the "powered by Constant Contact" branding
   badge at the foot of the form. Leaves the consent/SafeUnsubscribe disclosure
   text intact (that's required), only the logo pill is removed. */
.ctct-inline-form .ctct-form-footer,
.ctct-inline-form [class*="ctct-form-footer"] { display: none !important; }

.is-ced-page .prog-cta  { background: var(--dept-base); }
.is-ced-page .prog-section--missions .section-label,
.is-ced-page .prog-section--cedars  .section-label { color: var(--dept-color); }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  /* !important overrides per-instance inline grid-template-columns on the templates
     (contact, about, apply, events, news) which would otherwise win and overflow. */
  .prog-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .prog-steps      { grid-template-columns: repeat(2, 1fr) !important; }
  .prog-team-grid  { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .prog-overview         { grid-template-columns: 1fr; }
  .prog-overview-visual  { display: none; }
  .prog-section-head     { grid-template-columns: 1fr; }
  .prog-contact-split    { grid-template-columns: 1fr; }
  .prog-cards-grid       { grid-template-columns: 1fr !important; }
  .prog-cards-grid--2col { grid-template-columns: 1fr !important; }
  .prog-steps            { grid-template-columns: 1fr !important; }
  .prog-checklist        { padding: 24px 20px; }
  .prog-checklist ul     { grid-template-columns: 1fr; }
  .prog-impact-grid      { grid-template-columns: 1fr; }
  .prog-team-card        { grid-template-columns: 110px 1fr; }
  .prog-stats-inner      { flex-direction: column; gap: 0; }
  .prog-stat             { border-left: none; border-top: 1px solid rgba(255,255,255,0.08); padding: 20px 0; }
  .prog-stat:first-child { border-top: none; }
  .prog-related-row      { grid-template-columns: 40px 1fr auto; }
}
@media (max-width: 600px) {
  .prog-team-grid { grid-template-columns: 1fr; }
  .prog-team-card { grid-template-columns: 100px 1fr; }
  .prog-team-body { padding: 14px 16px; }
}

/* ─── FOOTER ────────────────────────────────────────────────────────────── */

.site-footer {
  background: var(--cedars);
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  text-align: left !important;
}
.site-footer * { text-align: left; }

.footer-inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr;
  gap: 48px;
  padding: 96px 8vw 80px;
  align-items: start;
}

.footer-brand-col { padding-right: 40px; border-right: 1px solid rgba(255,255,255,0.06); }
.footer-logo-wrap { display: inline-block; background: transparent; padding: 0; border-radius: 0; margin-bottom: 20px; transition: opacity 0.2s; }
.footer-logo-wrap:hover { opacity: 0.85; }
.footer-logo { display: block; width: 160px; height: auto; }
.footer-tagline {
  font-family: var(--display); font-size: 10px; font-weight: 800;
  letter-spacing: 3.5px; text-transform: uppercase;
  color: var(--larch); margin-bottom: 14px;
}
.footer-mission {
  font-family: var(--body); font-size: 13px; line-height: 1.85;
  color: rgba(255,255,255,0.4); margin-bottom: 28px;
}
.footer-social { display: flex; align-items: center; gap: 12px; }
.footer-social-link {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.12);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.4); transition: all 0.2s;
}
.footer-social-link:hover { border-color: var(--larch); color: var(--larch); }

.footer-links-col { padding-top: 0; }
.footer-col-head {
  font-family: var(--display); font-size: 17px; font-weight: 700;
  color: var(--white); margin-bottom: 22px; letter-spacing: -0.3px;
}
.footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-links li { font-family: var(--body); font-size: 13.5px; color: rgba(255,255,255,0.5); line-height: 1.5; }
.footer-links a { color: rgba(255,255,255,0.5); text-decoration: none; transition: color 0.2s; }
.footer-links a:hover { color: var(--white); text-decoration: none; }

.footer-contact a { color: inherit; text-decoration: none; transition: color 0.2s; overflow-wrap: break-word; }
.footer-contact a:hover { color: var(--white); text-decoration: none; }

.footer-contact li { display: flex; flex-direction: column; gap: 3px; }
.footer-contact-label {
  font-family: var(--body); font-size: 9px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.25);
  margin-top: 4px;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 22px 8vw 24px;
  text-align: center;
}
.footer-bottom-line {
  font-family: var(--body);
  font-size: 11px;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.3px;
  margin: 0;
  line-height: 1.7;
}
.footer-bottom-line a { color: rgba(255,255,255,0.6); text-decoration: none; }
.footer-bottom-line a:hover { color: var(--larch); }
.footer-bottom-region { color: rgba(255,255,255,0.3); margin-top: 2px; }

@media (max-width: 900px) {
  /* minmax(0,1fr) so long content (the contact email) can't widen a track
     past the viewport — grid items default to min-width:auto. */
  .footer-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; padding: 64px 6vw 48px; }
  .footer-newsletter-col { grid-column: 1 / -1; }
  .footer-brand-col { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); padding-right: 0; padding-bottom: 40px; }
  .footer-nonprofit { padding: 18px 6vw; text-align: center; }
  .footer-bottom { flex-direction: column; gap: 10px; text-align: center; padding: 24px 6vw; }
  .footer-region { text-align: center; }
}
@media (max-width: 560px) {
  .footer-inner { grid-template-columns: minmax(0, 1fr); gap: 36px; }
}

/* ─── COMPACT HERO (utility/form pages) ─────────────────────────────────── */
.prog-hero--compact { min-height: 44vh; }

/* ─── EVENTS PAGE ────────────────────────────────────────────────────────── */
.events-grid {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 40px;
}
.event-card {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 36px;
  background: rgba(0,36,70,0.05);
  padding: 28px 32px;
  align-items: start;
  border-left: 3px solid transparent;
  transition: border-color 0.2s;
}
.event-card:hover { border-left-color: var(--larch); }
.event-card-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--cedars);
  padding: 14px 10px;
  gap: 2px;
}
.event-date-month {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--larch);
}
.event-date-day {
  font-family: var(--display);
  font-size: 2rem;
  font-weight: 500;
  color: #f5f0e8;
  line-height: 1;
}
.event-date-year {
  font-size: 10px;
  color: rgba(245,240,232,0.35);
  letter-spacing: 0.05em;
}
.event-card-body { display: flex; flex-direction: column; gap: 8px; padding: 4px 0; }
.event-card-type {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--larch);
}
.event-card-title {
  font-family: var(--display);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--cedars);
  margin: 0;
  line-height: 1.25;
}
.event-card-meta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
}
.event-card-dates,
.event-card-time,
.event-card-location {
  font-size: 0.78rem;
  color: rgba(0,36,70,0.55);
  font-weight: 600;
}
.event-card-time::before { content: '🕔 '; font-style: normal; }
.event-card-location::before { content: '📍 '; font-style: normal; }
.event-card-excerpt {
  font-size: 0.82rem;
  line-height: 1.7;
  color: rgba(0,36,70,0.65);
  margin: 0;
}
/* Event cards on a wheat (gold) section: the larch type-label would vanish; use cedars,
   and deepen the card tint slightly so the card reads against the gold. */
.prog-section--wheat .event-card { background: rgba(0,36,70,0.09); }
.prog-section--wheat .event-card-type { color: var(--cedars); }
.event-card-link {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--cedars);
  text-decoration: none;
  align-self: flex-start;
  border-bottom: 1px solid rgba(0,36,70,0.25);
  padding-bottom: 1px;
  transition: border-color 0.15s, color 0.15s;
}
.event-card-link:hover { color: var(--larch); border-color: var(--larch); }

/* Past events */
.events-past {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid rgba(0,36,70,0.1);
}
.events-past-heading {
  font-family: var(--display);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(0,36,70,0.4);
  margin: 0 0 20px;
}
.events-past-list { display: flex; flex-direction: column; gap: 1px; }
.event-past-row {
  display: grid;
  grid-template-columns: 110px 1fr 160px 120px;
  gap: 20px;
  align-items: center;
  padding: 12px 16px;
  background: rgba(0,36,70,0.03);
  font-size: 0.8rem;
}
.event-past-date { color: rgba(0,36,70,0.4); font-weight: 600; }
.event-past-title { color: rgba(0,36,70,0.65); font-weight: 600; }
.event-past-location { color: rgba(0,36,70,0.35); font-size: 0.74rem; }
.event-past-type {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0,36,70,0.3);
  text-align: right;
}

/* Empty state */
.events-empty {
  text-align: center;
  padding: 80px 20px;
  max-width: 480px;
  margin: 0 auto;
}
.events-empty-icon { color: rgba(0,36,70,0.2); margin-bottom: 24px; }
.events-empty h2 { font-family: var(--display); color: var(--cedars); margin-bottom: 12px; }
.events-empty p { color: rgba(0,36,70,0.6); font-size: 0.9rem; line-height: 1.7; }

@media (max-width: 700px) {
  .event-card { grid-template-columns: 70px 1fr; gap: 20px; padding: 20px; }
  .event-date-day { font-size: 1.6rem; }
  .event-past-row { grid-template-columns: 1fr; gap: 4px; }
  .event-past-type { text-align: left; }
}

/* ─── NEWS PAGE — VIDEO GALLERY ─────────────────────────────────────────── */
.news-video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 48px;
}
.news-video-item { display: flex; flex-direction: column; gap: 16px; }
.news-video-embed {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: rgba(0,0,0,0.3);
}
.news-video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.news-video-meta { display: flex; flex-direction: column; gap: 6px; }
.news-video-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--larch-text);
}
.news-video-title {
  font-family: var(--display);
  font-size: 0.95rem;
  font-weight: 800;
  color: #f5f0e8;
  margin: 0;
}
.news-video-desc {
  font-size: 0.78rem;
  line-height: 1.7;
  color: rgba(245,240,232,0.5);
  margin: 0;
}
@media (max-width: 900px) {
  .news-video-grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .news-video-grid { grid-template-columns: repeat(2, 1fr); }
  .news-video-grid .news-video-item:last-child { grid-column: 1 / -1; max-width: 560px; margin: 0 auto; width: 100%; }
}

/* ─── CURRENT PROJECTS PAGE ─────────────────────────────────────────────── */
.prog-project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 2px;
  margin-top: 48px;
}
.prog-project-card {
  background: rgba(0,0,0,0.18);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}
/* Full-bleed card photo at the top (cancels the card padding). Fixed height keeps
   every card's photo the same size regardless of card height. */
.prog-project-card-img { margin: -32px -28px 0; height: 200px; background: rgba(255,255,255,0.04); }
.prog-project-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* CED Current Projects: roomier gap than the old tight-mosaic grid, and cards
   align to the top so photos line up in a clean row. */
.is-ced-projects-page .prog-project-grid { gap: 24px; }
/* Equal-height cards: stretch to the row's tallest, and anchor the location +
   "Read more" to the bottom so every card's footer lines up. */
.is-ced-projects-page .prog-project-meta { margin-top: auto; }
/* On the gold (wheat) section the cards become solid Cedars-green tiles so they
   stay crisp and high-contrast instead of muddy translucent panels on gold. */
.is-ced-projects-page .prog-project-card { background: var(--cedars); }
.prog-project-card h3 {
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 800;
  color: #f5f0e8;
  margin: 0;
}
.prog-project-card p {
  font-size: 0.82rem;
  line-height: 1.75;
  color: rgba(245,240,232,0.6);
  margin: 0;
  flex: 1;
}
.prog-project-card-top,
.prog-project-dept-top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.prog-project-dept {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 2px;
}
.prog-project-dept--bdc { background: rgba(29,101,141,0.25); color: #7bb8d4; }
.prog-project-dept--fec { background: rgba(21,95,81,0.3);  color: #7ec4b4; }
.prog-project-dept--cdc { background: rgba(6,150,153,0.2);  color: #6dd4d6; }
.prog-project-dept--ced { background: rgba(232,176,92,0.2);  color: #D8CEA3; }
.prog-project-status {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 2px;
}
.prog-project-status--active   { background: rgba(205,148,55,0.15); color: var(--larch); }
.prog-project-status--ongoing  { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.45); }
.prog-project-status--planning { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.35); }

/* CED project status badges (story_status), used on the CED Current Projects page.
   Mirrors .prog-project-status sizing; one color per status. Sits on dark cards. */
.mw-story-status {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 3px 10px; border-radius: 2px;
}
.mw-story-status--in-progress { background: rgba(205,148,55,0.18); color: var(--larch); }
.mw-story-status--accepting   { background: rgba(110,212,214,0.18); color: #6dd4d6; }
.mw-story-status--ongoing     { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.5); }
.mw-story-status--planned     { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.4); }
.mw-story-status--completed   { background: rgba(126,196,180,0.16); color: #8fcdb8; }

/* ─── CED project page (single-mw_story.php project layout) ───────────────── */
.proj-hero-status { margin-bottom: 16px; }
.proj-hero-status .mw-story-status { font-size: 11px; padding: 5px 12px; }

/* At a glance details panel (cream surface) */
.proj-details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 1px;
  background: rgba(0,36,70,0.12);
  border: 1px solid rgba(0,36,70,0.12);
  border-radius: 4px;
  overflow: hidden;
}
.proj-detail { background: var(--cream); padding: 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.proj-detail-label { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--larch-text); }
.proj-detail-value { font-size: 1rem; font-weight: 600; color: var(--cedars); line-height: 1.4; }

/* Before & After (missions/dark surface) */
.proj-ba-list { display: flex; flex-direction: column; gap: 40px; }
.proj-ba-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.proj-ba-item { position: relative; margin: 0; border-radius: 4px; overflow: hidden; }
.proj-ba-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.proj-ba-tag {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 2px; background: rgba(0,17,38,0.78); color: var(--cream);
}
.proj-ba-caption { margin: 14px 0 0; font-size: 0.9rem; color: rgba(255,255,255,0.6); }

/* Gallery (cream surface) */
.proj-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.proj-gallery-item { border-radius: 4px; overflow: hidden; aspect-ratio: 4 / 3; }
.proj-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Milestones (cream surface) */
.proj-milestones { list-style: none; margin: 0; padding: 0; }
.proj-milestone { display: flex; align-items: flex-start; gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(0,36,70,0.12); }
.proj-milestone:last-child { border-bottom: none; }
.proj-milestone-dot { flex: none; width: 12px; height: 12px; border-radius: 50%; margin-top: 5px; background: rgba(0,36,70,0.25); }
.proj-milestone--done .proj-milestone-dot { background: #2f9e6f; }
.proj-milestone--in-progress .proj-milestone-dot { background: var(--larch); }
.proj-milestone-body { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.proj-milestone-title { font-weight: 700; color: var(--cedars); }
.proj-milestone-note { font-size: 0.9rem; color: rgba(0,36,70,0.6); }
.proj-milestone-status { flex: none; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--larch-text); padding-top: 3px; }

/* Project content sections: alternating photo side (flip = photo on the left). */
.prog-overview--flip .prog-overview-visual { order: -1; }
/* Photo-less content sections render full-width (single column), capped for reading. */
.prog-overview--solo { grid-template-columns: 1fr; }
.prog-overview--solo .prog-overview-text { max-width: 820px; }

/* Bullet lists inside content-section body text (the global li reset hides bullets). */
.prog-overview-text ul, .prog-overview-text ol { margin: 0 0 16px; padding-left: 20px; }
.prog-overview-text li { list-style-type: disc; margin-bottom: 8px; line-height: 1.7; color: rgba(255,255,255,0.65); }
.prog-overview-text ol li { list-style-type: decimal; }
.prog-section--cream .prog-overview-text li { color: color-mix(in srgb, var(--dept-base) 70%, transparent); }
.prog-section--wheat .prog-overview-text li { color: rgba(0,17,38,0.75); }
.prog-overview-text li strong { color: #fff; }
.prog-section--cream .prog-overview-text li strong { color: var(--dept-base); }

@media (max-width: 700px) {
  .proj-ba-pair { grid-template-columns: 1fr; }
}
/* On project pages the section photo is real content, so keep it visible on
   mobile (the shared dept-overview rule hides it as decoration). */
@media (max-width: 768px) {
  .is-story-page .prog-overview-visual.has-photo { display: flex; order: 0; aspect-ratio: 16 / 10; }
}
.prog-project-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.prog-project-partner {
  font-size: 0.72rem;
  color: rgba(245,240,232,0.35);
  line-height: 1.5;
}
.prog-project-link {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--larch);
  text-decoration: none;
  transition: opacity 0.15s;
  align-self: flex-start;
}
.prog-project-link:hover { opacity: 0.7; }
@media (max-width: 768px) {
  .prog-project-grid { grid-template-columns: 1fr; }
}

/* ─── WORK ORDER PAGE ────────────────────────────────────────────────────── */
.prog-work-order-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 64px;
  margin-top: 48px;
  align-items: start;
}
.prog-work-order-guide {
  padding: 32px;
  background: rgba(0,36,70,0.06);
  border-left: 3px solid var(--dept-color);
}
.prog-field-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.prog-field-list li { display: flex; flex-direction: column; gap: 3px; }
.prog-field-name {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--cedars);
}
.prog-field-desc {
  font-size: 0.72rem;
  color: rgba(0,36,70,0.6);
  line-height: 1.5;
}
.prog-work-order-info {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
@media (max-width: 900px) {
  .prog-work-order-layout { grid-template-columns: 1fr; }
  .prog-work-order-info { grid-template-columns: 1fr; gap: 32px; }
}

/* ─── LOAN FUND LISTING CARDS ──────────────────────────────────────────────── */

.loan-funds-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
  margin-top: 48px;
}

.loan-fund-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 36px 32px;
  background: var(--white);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 4px;
  color: var(--cedars);
  text-decoration: none;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease);
}

.loan-fund-card:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.12);
  border-color: var(--dept-color);
  transform: translateY(-2px);
  color: var(--cedars);
}

.loan-fund-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--dept-color);
  margin: 0;
  line-height: 1.3;
}

.loan-fund-card p {
  font-size: 0.92rem;
  line-height: 1.65;
  color: rgba(0,36,70,0.7);
  margin: 0;
}

.loan-fund-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,0.08);
}

.loan-meta-item {
  font-size: 0.85rem;
  color: rgba(0,36,70,0.6);
}

.loan-meta-item strong {
  color: var(--dept-color);
  font-weight: 600;
}

.loan-fund-link {
  margin-top: auto;
  padding-top: 12px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--dept-color);
}

.loan-fund-card:hover .loan-fund-link {
  color: var(--dept-accent);
}

@media (max-width: 600px) {
  .loan-funds-grid { grid-template-columns: 1fr; }
  .loan-fund-card { padding: 28px 24px; }
}

/* ─── Partners block (MLFFP, Regional Partners) ────────────────────────── */
.prog-partners-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}
.prog-partner-card {
  border-radius: 4px;
  padding: 28px 24px;
  text-align: left;
  border: 1px solid;
}
.prog-partner-card h3 {
  font-family: var(--display);
  font-size: 1.05rem;
  margin: 0 0 8px;
  letter-spacing: -0.3px;
}
.prog-partner-card p {
  font-family: var(--body);
  font-size: 0.9rem;
  line-height: 1.5;
  margin: 0;
}
.prog-partner-logo {
  width: 100%;
  height: 80px;
  margin-bottom: 18px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
/* Dashed-border treatment only when the slot is still a placeholder (no <img> yet). */
.prog-partner-logo:not(:has(img)) { border: 1px dashed; }
.prog-partner-logo img {
  max-width: 100%;
  max-height: 80px;
  width: auto;
  height: auto;
  object-fit: contain;
}
/* On dark-surface partner sections, give every logo a neutral white tile
   background so dark-text and white-text logos both read cleanly. */
.prog-section--missions .prog-partner-logo:has(img),
.prog-section--cedars .prog-partner-logo:has(img) {
  background: #ffffff;
  padding: 8px 12px;
  box-sizing: border-box;
}

/* ─── MLFFP partnership banner ─────────────────────────────────────────────
   Featured callout for Reinvestment Fund as MLFFP co-administrator. Sits
   between the Overview and "Program Support" sections on /bdc/mlffp/. */
.mlffp-partnership-banner { text-align: center; }
.mlffp-partnership-inner {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}
.mlffp-partnership-banner .section-label {
  display: block;
  margin-bottom: 28px;
  color: var(--larch);
}
.mlffp-partnership-logo {
  display: inline-block;
  background: #ffffff;
  padding: 36px 64px;
  border-radius: 6px;
  margin: 0 auto 36px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
}
.mlffp-partnership-logo img {
  display: block;
  height: 140px;
  width: auto;
  max-width: 100%;
}
.mlffp-partnership-body {
  font-family: var(--body);
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 28px;
}
.mlffp-partnership-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--larch);
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 1.5px solid rgba(205, 148, 55, 0.6);
  transition: color 0.2s, border-color 0.2s;
}
.mlffp-partnership-link:hover {
  color: var(--harvest);
  border-bottom-color: var(--harvest);
}
@media (max-width: 600px) {
  .mlffp-partnership-logo { padding: 24px 32px; }
  .mlffp-partnership-logo img { height: 96px; }
  .mlffp-partnership-body { font-size: 0.98rem; }
}
.prog-partner-logo span {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Dark surface partner cards (missions/cedars) */
.prog-section--missions .prog-partner-card,
.prog-section--cedars .prog-partner-card {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.08);
}
.prog-section--missions .prog-partner-card h3,
.prog-section--cedars .prog-partner-card h3 {
  color: var(--white);
}
.prog-section--missions .prog-partner-card p,
.prog-section--cedars .prog-partner-card p {
  color: rgba(255,255,255,0.65);
}
.prog-section--missions .prog-partner-logo,
.prog-section--cedars .prog-partner-logo {
  border-color: rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.02);
}
.prog-section--missions .prog-partner-logo span,
.prog-section--cedars .prog-partner-logo span {
  color: rgba(255,255,255,0.3);
}

/* Light surface partner cards (cream) */
.prog-section--cream .prog-partner-card {
  background: rgba(255,255,255,0.6);
  border-color: rgba(0,36,70,0.12);
}
.prog-section--cream .prog-partner-card h3 {
  color: var(--cedars);
}
.prog-section--cream .prog-partner-card p {
  color: rgba(0,36,70,0.7);
}
.prog-section--cream .prog-partner-logo {
  border-color: rgba(0,36,70,0.18);
  background: rgba(0,36,70,0.02);
}
.prog-section--cream .prog-partner-logo span {
  color: rgba(0,36,70,0.4);
}

/* ─── Harvest on Main event meta strip ────────────────────────────────── */
.hom-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  margin: 28px 0 32px;
  padding: 24px 0;
  border-top: 1px solid rgba(255,255,255,0.18);
  border-bottom: 1px solid rgba(255,255,255,0.18);
}
.hom-event-meta-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hom-event-meta-label {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.hom-event-meta-value {
  font-family: var(--display);
  font-size: 1rem;
  color: var(--white);
  letter-spacing: -0.2px;
}

/* ─── Learning Hub featured workshops ─────────────────────────────────── */
.prog-workshop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.prog-workshop {
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(0,36,70,0.08);
  border-radius: 4px;
  padding: 20px 22px;
  transition: border-color 0.2s, transform 0.2s;
}
.prog-workshop:hover {
  border-color: rgba(205,148,55,0.45);
  transform: translateY(-1px);
}
.prog-workshop-tag {
  display: inline-block;
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--larch);
  margin-bottom: 8px;
}
.prog-workshop h3 {
  font-family: var(--display);
  font-size: 0.98rem;
  color: var(--cedars);
  margin: 0;
  line-height: 1.35;
  letter-spacing: -0.2px;
}

/* ─── Card grid modifiers ─────────────────────────────────────────────── */
.prog-cards-grid--3col { grid-template-columns: repeat(3, 1fr); }
.prog-cards-grid--4col { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
  .prog-cards-grid--3col { grid-template-columns: repeat(2, 1fr); }
  .prog-cards-grid--4col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .prog-cards-grid--3col,
  .prog-cards-grid--4col { grid-template-columns: 1fr; }
}

/* ─── Donate page color tokens (Cedars hero, Larch accent for warmth) ─── */
body.is-donate-page {
  --dept-color: var(--cedars);
  --dept-base: var(--missions);
  --dept-accent: var(--larch);
}

/* ─── Success Stories grid ────────────────────────────────────────────── */
.mw-stories-section { /* uses .prog-section-- color classes for background */ }
.mw-stories-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}

/* Full story card (image, title, excerpt, link) */
.mw-story-card--full {
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.08);
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
  text-decoration: none;
}
.mw-story-card--full:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,36,70,0.08);
}
.mw-story-card--full .mw-story-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: rgba(0,36,70,0.04);
}
.mw-story-card--full .mw-story-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mw-story-card--full .mw-story-card-body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.mw-story-card--full .mw-story-meta {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--larch);
}
.mw-story-card--full .mw-story-title {
  font-family: var(--display);
  font-size: 1.15rem;
  color: var(--cedars);
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.3px;
}
.mw-story-card--full .mw-story-excerpt {
  font-family: var(--body);
  font-size: 0.92rem;
  color: rgba(0,36,70,0.75);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.mw-story-card--full .mw-story-link {
  font-family: var(--body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--cedars);
  text-decoration: none;
  margin-top: 4px;
  transition: color 0.2s;
}
.mw-story-card--full .mw-story-link:hover {
  color: var(--larch);
}

/* Logo card (FEC producer showcase — small) */
.mw-stories-grid:has(.mw-story-card--logo:only-child),
.mw-stories-section .mw-stories-grid {
  align-items: stretch;
}
.mw-story-card--logo {
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.08);
  border-radius: 6px;
  padding: 20px 20px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
  min-height: 200px;
}
.mw-story-card--logo:hover {
  transform: translateY(-2px);
  border-color: var(--larch);
  box-shadow: 0 6px 20px rgba(0,36,70,0.07);
}
.mw-story-logo-wrap {
  width: 100%;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,36,70,0.03);
  border-radius: 4px;
  overflow: hidden;
}
.mw-story-logo-img {
  max-width: 80%;
  max-height: 80%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.mw-story-logo-placeholder {
  font-family: var(--display);
  font-size: 1.8rem;
  font-weight: 700;
  color: rgba(0,36,70,0.25);
  letter-spacing: 1px;
}
.mw-story-card--logo .mw-story-card-body {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}
.mw-story-card--logo .mw-story-title {
  font-family: var(--display);
  font-size: 0.95rem;
  color: var(--cedars);
  margin: 0;
  line-height: 1.3;
  letter-spacing: -0.2px;
}
.mw-story-card--logo .mw-story-meta {
  font-family: var(--body);
  font-size: 11px;
  color: rgba(0,36,70,0.6);
}
.mw-story-card--logo .mw-story-link-hint {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--larch-text);
  margin-top: 6px;
  opacity: 0;
  transition: opacity 0.2s;
}
.mw-story-card--logo:hover .mw-story-link-hint {
  opacity: 1;
}

/* Dark surface story cards (when section uses --missions or --cedars) */
.prog-section--missions .mw-story-card,
.prog-section--cedars .mw-story-card {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.1);
}
.prog-section--missions .mw-story-card:hover,
.prog-section--cedars .mw-story-card:hover {
  border-color: var(--larch);
}
.prog-section--missions .mw-story-title,
.prog-section--cedars .mw-story-title {
  color: var(--white);
}
.prog-section--missions .mw-story-excerpt,
.prog-section--cedars .mw-story-excerpt {
  color: rgba(255,255,255,0.7);
}
.prog-section--missions .mw-story-link,
.prog-section--cedars .mw-story-link {
  color: var(--larch);
}
.prog-section--missions .mw-story-logo-wrap,
.prog-section--cedars .mw-story-logo-wrap {
  background: rgba(255,255,255,0.04);
}

@media (max-width: 600px) {
  .mw-stories-grid { grid-template-columns: 1fr; gap: 18px; }
  /* Producer logo cards are compact — 2-up keeps the MMFEC showcase from
     becoming thousands of pixels of single-column logos. */
  .mw-stories-grid:has(.mw-story-card--logo) { grid-template-columns: repeat(2, 1fr); }
  .mw-story-card--logo { min-height: 150px; padding: 14px 12px 12px; }
  .mw-story-logo-wrap { height: 72px; }
}

/* ─── Team card profile link (on /about/team/) ────────────────────────── */
.prog-team-card a { text-decoration: none; color: inherit; }
.prog-team-name a:hover { color: var(--larch); }
.prog-team-photo { display: block; cursor: pointer; }
/* Same specificity boost as .prog-team-contact a above. */
.prog-team-card .prog-team-profile-link {
  display: none;
  margin-top: 14px;
  font-family: var(--body);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--larch);
  opacity: 0.9;
  transition: opacity 0.2s, color 0.2s;
}
/* FEC facility page still shows the explicit profile link below contact info. */
.is-facility-page .prog-team-card .prog-team-profile-link { display: inline-block; }
.prog-team-card:hover .prog-team-profile-link {
  opacity: 1;
  color: var(--white);
}

/* ─── Staff Profile Page (single-mw_staff.php) ───────────────────────── */
.staff-profile-hero { padding: 90px 0 80px; }
.staff-profile-hero-inner {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 1fr;
  gap: 56px;
  align-items: center;
}
.staff-profile-photo-wrap {
  border-radius: 6px;
  overflow: hidden;
  background: rgba(255,255,255,0.06);
  aspect-ratio: 1 / 1;
  position: relative;
  border: 1px solid rgba(255,255,255,0.1);
}
.staff-profile-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.staff-profile-photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 5rem;
  color: rgba(255,255,255,0.25);
}
.staff-profile-hero-content .prog-breadcrumb { margin-bottom: 16px; }
.staff-profile-hero-content h1 {
  font-family: var(--display);
  color: var(--white);
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  line-height: 1.05;
  letter-spacing: -1px;
  margin: 0 0 12px;
}
.staff-profile-title {
  font-family: var(--body);
  color: rgba(255,255,255,0.8);
  font-size: 1.1rem;
  font-weight: 500;
  margin: 0 0 18px;
  letter-spacing: -0.2px;
}
.staff-profile-dept-tag {
  display: inline-block;
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--larch);
  text-decoration: none;
  padding: 8px 14px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 99px;
  margin-bottom: 28px;
  transition: border-color 0.2s, color 0.2s;
}
.staff-profile-dept-tag:hover {
  border-color: var(--larch);
  color: var(--white);
}
.staff-profile-contact-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.staff-profile-bio {
  max-width: 760px;
  margin: 0 auto;
}
.staff-profile-bio .section-label { color: var(--larch); display: block; margin-bottom: 14px; }
.staff-profile-bio h2 {
  font-family: var(--display);
  color: var(--cedars);
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  letter-spacing: -0.8px;
  margin: 0 0 28px;
}
.staff-profile-bio p {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(0,36,70,0.85);
}

.staff-profile-contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}
.staff-profile-contact-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 5px;
  padding: 24px 22px;
}
.staff-profile-contact-label {
  display: block;
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 10px;
}
.staff-profile-contact-card a,
.staff-profile-contact-card span:not(.staff-profile-contact-label) {
  font-family: var(--body);
  color: var(--white);
  font-size: 0.95rem;
  text-decoration: none;
  line-height: 1.5;
}
.staff-profile-contact-card a:hover { color: var(--larch); }

@media (max-width: 760px) {
  .staff-profile-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .staff-profile-photo-wrap { max-width: 220px; margin: 0 auto; }
}

/* ─── Single Event Page (single-mw_event.php) ────────────────────────── */
.event-past-badge {
  display: inline-block;
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.08);
  padding: 6px 12px;
  border-radius: 99px;
  margin-bottom: 14px;
}
.event-single-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 56px;
  align-items: start;
}
.event-single-body {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(0,36,70,0.85);
}
.event-single-body p { margin-bottom: 1.2em; }
.event-single-body h2,
.event-single-body h3 {
  font-family: var(--display);
  color: var(--cedars);
  letter-spacing: -0.4px;
  margin: 1.5em 0 0.5em;
}
.event-single-sidebar {
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.1);
  border-radius: 6px;
  padding: 28px 26px;
  position: sticky;
  top: 110px;
}
.event-single-sidebar h3 {
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--cedars);
  letter-spacing: -0.3px;
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,36,70,0.08);
}
.event-details-list {
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.event-details-list li {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.event-detail-label {
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(0,36,70,0.5);
}
.event-detail-value {
  font-family: var(--body);
  font-size: 0.95rem;
  color: var(--cedars);
}
.event-detail-value a {
  color: var(--cedars);
  text-decoration: underline;
  text-decoration-color: rgba(0,36,70,0.25);
}
.event-detail-value a:hover { color: var(--larch); text-decoration-color: var(--larch); }
.event-single-cta {
  display: block;
  text-align: center;
  margin-top: 8px;
}

@media (max-width: 900px) {
  .event-single-grid { grid-template-columns: 1fr; gap: 40px; }
  .event-single-sidebar { position: static; }
}

/* ─── Events filter chips ────────────────────────────────────────────── */
.events-filter {
  margin-bottom: 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px 0;
  border-top: 1px solid rgba(0,36,70,0.08);
  border-bottom: 1px solid rgba(0,36,70,0.08);
}
.events-filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.events-filter-label {
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(0,36,70,0.55);
  margin-right: 6px;
  min-width: 80px;
}
.events-filter-chip {
  font-family: var(--body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--cedars);
  background: transparent;
  border: 1px solid rgba(0,36,70,0.15);
  border-radius: 99px;
  padding: 7px 14px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.events-filter-chip:hover { border-color: var(--larch); }
.events-filter-chip.is-active {
  background: var(--cedars);
  border-color: var(--cedars);
  color: var(--white);
}

/* Event card link/action enhancements */
.event-card-date { text-decoration: none; color: inherit; cursor: pointer; }
.event-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.event-card-title a:hover { color: var(--larch); }
.event-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
}
.event-card-link--external { color: var(--larch); font-weight: 700; }

/* Past event row: now a link */
.event-past-row { text-decoration: none; color: inherit; }
.event-past-row:hover .event-past-title { color: var(--larch); }
.event-past-title { transition: color 0.2s; }

/* ─── Board Portal ──────────────────────────────────────────────────────── */

/* Document rows (used on landing latest-meeting + section pages) */
.bp-docs-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bp-doc-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.08);
  border-radius: 4px;
  transition: border-color 0.15s, transform 0.15s;
}
.bp-doc-row:hover { border-color: var(--larch); transform: translateY(-1px); }
.bp-doc-row-main {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.bp-doc-type {
  flex-shrink: 0;
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 99px;
  background: rgba(0,36,70,0.06);
  color: var(--cedars);
  min-width: 88px;
  text-align: center;
}
.bp-doc-type--minutes  { background: rgba(29,101,141,0.10);  color: var(--bdc); }
.bp-doc-type--agenda   { background: rgba(21,95,81,0.10);    color: var(--fec); }
.bp-doc-type--packet   { background: rgba(6,150,153,0.10);   color: var(--cdc); }
.bp-doc-type--financial,
.bp-doc-type--decision-matrix { background: rgba(205,148,55,0.12); color: var(--larch); }
.bp-doc-type--resolution { background: rgba(37,78,105,0.10); color: var(--missions); }
.bp-doc-type--policy   { background: rgba(232,176,92,0.15); color: #8b5e1a; }
.bp-doc-title {
  font-family: var(--body);
  font-size: 0.92rem;
  color: var(--cedars);
  overflow: hidden;
  text-overflow: ellipsis;
}
.bp-doc-actions {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.bp-doc-link {
  font-family: var(--body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 4px;
  transition: background 0.15s, color 0.15s;
}
.bp-doc-link--pdf {
  background: var(--cedars);
  color: var(--white);
}
.bp-doc-link--pdf:hover { background: var(--larch); color: var(--cedars); }
.bp-doc-link--docx {
  background: transparent;
  color: rgba(0,36,70,0.55);
  border: 1px solid rgba(0,36,70,0.15);
}
.bp-doc-link--docx:hover { color: var(--cedars); border-color: var(--cedars); }

/* Section tiles on landing page */
.bp-section-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}
.bp-section-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 28px 24px 60px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 5px;
  text-decoration: none;
  transition: border-color 0.2s, transform 0.2s, background 0.2s;
}
.bp-section-tile:hover {
  border-color: var(--larch);
  background: rgba(255,255,255,0.07);
  transform: translateY(-2px);
}
.bp-section-tile h3 {
  font-family: var(--display);
  font-size: 1.25rem;
  color: var(--white);
  margin: 0;
  letter-spacing: -0.3px;
}
.bp-section-tile p {
  font-family: var(--body);
  font-size: 0.9rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.5;
  margin: 0;
}
.bp-section-tile-arrow {
  position: absolute;
  bottom: 22px;
  right: 24px;
  font-size: 1.4rem;
  color: var(--larch);
  transition: transform 0.2s;
}
.bp-section-tile:hover .bp-section-tile-arrow { transform: translateX(4px); }

/* Meeting groups on /board-portal/meetings/ */
.bp-meeting-group {
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(0,36,70,0.1);
}
.bp-meeting-group:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.bp-meeting-label {
  font-family: var(--display);
  font-size: 1.4rem;
  color: var(--cedars);
  letter-spacing: -0.4px;
  margin: 0 0 18px;
}
.bp-meeting-count {
  font-family: var(--body);
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(0,36,70,0.5);
  letter-spacing: 0.5px;
  margin-left: 6px;
}

/* Directory page */
.bp-directory-section { max-width: 100%; }
.bp-directory-section h3 {
  font-family: var(--display);
  font-size: 1.5rem;
  color: var(--cedars);
  margin: 0 0 24px;
  letter-spacing: -0.4px;
}
.bp-directory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}
.bp-directory-card {
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.08);
  border-radius: 5px;
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bp-directory-name {
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--cedars);
  letter-spacing: -0.2px;
  margin-bottom: 2px;
}
.bp-directory-role {
  font-family: var(--body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--larch);
  margin-bottom: 4px;
}
.bp-directory-meta {
  font-family: var(--body);
  font-size: 0.82rem;
  color: rgba(0,36,70,0.65);
  line-height: 1.5;
}
.bp-directory-contact {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 6px;
  margin-bottom: 6px;
}
.bp-directory-contact a {
  font-family: var(--body);
  font-size: 0.85rem;
  color: var(--cedars);
  text-decoration: none;
}
.bp-directory-contact a:hover { color: var(--larch); }

@media (max-width: 640px) {
  .bp-doc-row { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
  .bp-doc-row-main { flex-direction: column; align-items: flex-start; gap: 8px; width: 100%; }
  .bp-doc-type { min-width: 0; }
  .bp-doc-actions { width: 100%; }
  .bp-doc-link { flex: 1; text-align: center; }
}

/* ─── Learning Hub Portal video grid ─────────────────────────────────── */
.lh-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 28px;
}
.lh-video-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: transparent;
}
.lh-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: rgba(0,0,0,0.4);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0,0,0,0.18);
}
.lh-video-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.lh-video-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lh-video-tag {
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--larch);
}
.lh-video-title {
  font-family: var(--display);
  font-size: 1.02rem;
  margin: 0;
  line-height: 1.35;
  letter-spacing: -0.2px;
}
.prog-section--cream .lh-video-title { color: var(--cedars); }
.prog-section--missions .lh-video-title,
.prog-section--cedars .lh-video-title { color: var(--white); }

@media (max-width: 600px) {
  .lh-video-grid { grid-template-columns: 1fr; }
}

/* ═════════════════════════════════════════════════════════════════════════
   Ninja Forms — global theming
   ─────────────────────────────────────────────────────────────────────────
   Forms inherit from .prog-form-area which already flips between dark
   (default, on dept dark sections) and light (.prog-section--cream context).
   Input/label/button styling here mirrors that switch so the form belongs
   to whichever surface it sits on.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 1. Hide NF debris (honeypot, required-bar, title, empties) ───────── */
.nf-form-hp,
.nf-form-fields-required,
.nf-form-title,
.nf-before-form-content,
.nf-after-form-content,
.nf-before-field,
.nf-after-field,
.nf-debug-msg { display: none; }
.nf-input-limit,
.nf-field-input-limit { display: none; }
.nf-input-limit:not(:empty),
.nf-field-input-limit:not(:empty) { display: block; font-size: 11px; color: rgba(0,36,70,0.5); margin-top: 4px; }
.nf-response-msg:empty,
.nf-form-errors:empty { display: none; }

/* ── 2. Field layout ──────────────────────────────────────────────────── */
.nf-form-cont .nf-field-container { margin-bottom: 22px; }
.nf-form-cont .nf-field-container:last-child { margin-bottom: 0; }
.nf-form-cont .nf-form-content { padding: 0; }

/* ── 3. Labels — small-caps letterspaced (matches site .section-label) ── */
.nf-field-label label {
  display: block;
  font-family: var(--body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 10px;
}
.ninja-forms-req-symbol { margin-left: 4px; opacity: 0.8; }

/* ── 4. Inputs — BASE = dark surface ──────────────────────────────────── */
.nf-form-cont input[type="text"],
.nf-form-cont input[type="email"],
.nf-form-cont input[type="tel"],
.nf-form-cont input[type="url"],
.nf-form-cont input[type="number"],
.nf-form-cont input[type="password"],
.nf-form-cont input[type="date"],
.nf-form-cont textarea,
.nf-form-cont select {
  width: 100%;
  background-color: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.2);
  color: var(--cream);
  font-family: var(--body);
  font-size: 15px;
  padding: 13px 16px;
  border-radius: 3px;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
  line-height: 1.4;
}
.nf-form-cont textarea { min-height: 130px; resize: vertical; }
.nf-form-cont input:focus,
.nf-form-cont textarea:focus,
.nf-form-cont select:focus {
  outline: none;
  border-color: var(--larch);
  background-color: rgba(255,255,255,0.09);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2);
}
.nf-form-cont input::placeholder,
.nf-form-cont textarea::placeholder { color: rgba(245,240,232,0.4); }

/* Labels + symbol on dark surface */
/* NF form labels: cedars default for light surfaces, cream for dark prog-form-area */
.nf-field-label label { color: var(--cedars); }
.prog-form-area .nf-field-label label { color: var(--cream); }
.ninja-forms-req-symbol { color: var(--cream); }

/* ── 5. Inputs — LIGHT context override (cream sections) ──────────────── */
.prog-section--cream .nf-form-cont input[type="text"],
.prog-section--cream .nf-form-cont input[type="email"],
.prog-section--cream .nf-form-cont input[type="tel"],
.prog-section--cream .nf-form-cont input[type="url"],
.prog-section--cream .nf-form-cont input[type="number"],
.prog-section--cream .nf-form-cont input[type="password"],
.prog-section--cream .nf-form-cont input[type="date"],
.prog-section--cream .nf-form-cont textarea,
.prog-section--cream .nf-form-cont select {
  background-color: var(--white);
  border-color: rgba(0,36,70,0.25);
  color: var(--cedars);
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-section--cream .nf-form-cont input:focus,
.prog-section--cream .nf-form-cont textarea:focus,
.prog-section--cream .nf-form-cont select:focus {
  border-color: var(--larch);
  background-color: var(--white);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-section--cream .nf-form-cont input::placeholder,
.prog-section--cream .nf-form-cont textarea::placeholder { color: rgba(0,36,70,0.4); }
.prog-section--cream .nf-field-label label { color: var(--cedars); }
.prog-section--cream .ninja-forms-req-symbol { color: var(--larch); }

/* Wheat sections are a light surface too. Without this, any NF form dropped into a
   .prog-section--wheat inherits the dark-surface base above and renders cream text on
   sand (the Aug 25 contact-list bug). Mirrors the cream override. */
.prog-section--wheat .nf-form-cont input[type="text"],
.prog-section--wheat .nf-form-cont input[type="email"],
.prog-section--wheat .nf-form-cont input[type="tel"],
.prog-section--wheat .nf-form-cont input[type="url"],
.prog-section--wheat .nf-form-cont input[type="number"],
.prog-section--wheat .nf-form-cont input[type="password"],
.prog-section--wheat .nf-form-cont input[type="date"],
.prog-section--wheat .nf-form-cont textarea,
.prog-section--wheat .nf-form-cont select {
  background-color: var(--white);
  border-color: rgba(0,36,70,0.25);
  color: var(--cedars);
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-section--wheat .nf-form-cont input:focus,
.prog-section--wheat .nf-form-cont textarea:focus,
.prog-section--wheat .nf-form-cont select:focus {
  border-color: var(--larch);
  background-color: var(--white);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-section--wheat .nf-form-cont input::placeholder,
.prog-section--wheat .nf-form-cont textarea::placeholder { color: rgba(0,36,70,0.4); }
.prog-section--wheat .nf-field-label label { color: var(--cedars); }
.prog-section--wheat .ninja-forms-req-symbol { color: var(--larch); }

/* CTA embedded form sits on a cream card (not a .prog-section--cream), so it needs
   the same light-surface input treatment or the fields vanish into the cream. */
.prog-cta-form-area .nf-form-cont input[type="text"],
.prog-cta-form-area .nf-form-cont input[type="email"],
.prog-cta-form-area .nf-form-cont input[type="tel"],
.prog-cta-form-area .nf-form-cont input[type="url"],
.prog-cta-form-area .nf-form-cont input[type="number"],
.prog-cta-form-area .nf-form-cont input[type="password"],
.prog-cta-form-area .nf-form-cont input[type="date"],
.prog-cta-form-area .nf-form-cont textarea,
.prog-cta-form-area .nf-form-cont select {
  background-color: var(--white);
  border-color: rgba(0,36,70,0.28);
  color: var(--cedars);
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-cta-form-area .nf-form-cont input:focus,
.prog-cta-form-area .nf-form-cont textarea:focus,
.prog-cta-form-area .nf-form-cont select:focus {
  border-color: var(--larch);
  background-color: var(--white);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04);
}
.prog-cta-form-area .nf-form-cont input::placeholder,
.prog-cta-form-area .nf-form-cont textarea::placeholder { color: rgba(0,36,70,0.4); }
.prog-cta-form-area .nf-field-label label { color: var(--cedars); }
.prog-cta-form-area .ninja-forms-req-symbol { color: var(--larch); }
.prog-cta-form-area .nf-form-cont select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23173933' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
}

/* ── 6. Select chevron — context-aware via SVG color ──────────────────── */
.nf-form-cont select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23f5f0e8' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}
.prog-section--cream .nf-form-cont select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23173933' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
}

/* ── 7. Checkboxes / radios ───────────────────────────────────────────── */
.nf-form-cont input[type="checkbox"],
.nf-form-cont input[type="radio"] {
  margin-right: 8px;
  accent-color: var(--larch);
  transform: scale(1.1);
}
.checkbox-container .nf-field-label,
.listcheckbox-container .nf-field-label,
.listradio-container .nf-field-label { margin-bottom: 8px; }

/* ── 8. Submit button — Larch CTA on both surfaces ────────────────────── */
.nf-form-cont input[type="submit"],
.nf-form-cont input[type="button"],
.nf-form-cont button[type="submit"],
.submit-container input,
.nf-field-element input[type="button"] {
  font-family: var(--body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--cedars);
  background: var(--larch);
  border: 1px solid var(--larch);
  padding: 16px 36px;
  border-radius: 3px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
  margin-top: 8px;
  box-shadow: 0 2px 10px rgba(205,148,55,0.25);
  width: auto;
}
.nf-form-cont input[type="submit"]:hover,
.nf-form-cont button[type="submit"]:hover,
.submit-container input:hover {
  background: var(--harvest);
  border-color: var(--harvest);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(205,148,55,0.35);
}

/* ── 9. Error states ──────────────────────────────────────────────────── */
.nf-error .nf-error-msg {
  font-family: var(--body);
  font-size: 12px;
  color: #ff8c8c;
  margin-top: 6px;
  display: block;
}
.prog-section--cream .nf-error .nf-error-msg { color: #b3261e; }
.nf-error .nf-element { border-color: #ff8c8c !important; }
.prog-section--cream .nf-error .nf-element { border-color: #b3261e !important; }

/* ── 10. Success message ──────────────────────────────────────────────── */
.nf-response-msg {
  font-family: var(--body);
  font-size: 15px;
  color: var(--cream);
  background: rgba(205,148,55,0.12);
  border-left: 3px solid var(--larch);
  padding: 18px 22px;
  border-radius: 3px;
  line-height: 1.55;
}
.prog-section--cream .nf-response-msg {
  color: var(--cedars);
  background: rgba(205,148,55,0.08);
}
/* Wheat sections are light too (the contact-list signup lives in one). Without
   this the success message inherits the dark-section cream and renders
   invisibly on sand, so a submitter sees the form vanish with no confirmation. */
.prog-section--wheat .nf-response-msg {
  color: var(--cedars);
  background: rgba(205,148,55,0.14);
}

/* ── 11. Loading spinner ──────────────────────────────────────────────── */
.nf-loading-spinner {
  border-color: rgba(255,255,255,0.1);
  border-top-color: var(--larch);
}
.prog-section--cream .nf-loading-spinner {
  border-color: rgba(0,36,70,0.1);
  border-top-color: var(--larch);
}

/* ═════════════════════════════════════════════════════════════════════════
   Page Images — overview visuals (photo or ghost text fallback) + galleries
   ═════════════════════════════════════════════════════════════════════════ */

/* When .prog-overview-visual has a photo, render it cleanly */
.prog-overview-visual.has-photo {
  background: none;
  padding: 0;
  overflow: hidden;
}
.prog-overview-visual.has-photo .prog-overview-visual-label { display: none; }
.prog-overview-visual.has-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

/* ─── Photo gallery grid (Harvest on Main, Facility) ──────────────────── */
.mw-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-bottom: 56px;
}
.mw-gallery-item {
  display: block;
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 4px;
  background: rgba(0,36,70,0.04);
  cursor: zoom-in;
  transition: transform 0.2s, box-shadow 0.2s;
}
.mw-gallery-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,36,70,0.18);
}
.mw-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.mw-gallery-item:hover img { transform: scale(1.04); }

.mw-gallery-empty {
  padding: 60px 32px;
  text-align: center;
  background: rgba(0,36,70,0.04);
  border: 1px dashed rgba(0,36,70,0.18);
  border-radius: 4px;
  margin-bottom: 56px;
}
.mw-gallery-empty p {
  font-family: var(--body);
  color: rgba(0,36,70,0.55);
  font-style: italic;
  margin: 0;
}

/* ─── Lightbox modal ─────────────────────────────────────────────────── */
.mw-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10,20,15,0.96);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 60px 80px 80px;
}
.mw-lightbox.is-open { display: flex; }
.mw-lightbox-stage {
  max-width: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mw-lightbox-img {
  max-width: 100%;
  max-height: calc(100vh - 160px);
  width: auto;
  height: auto;
  display: block;
  box-shadow: 0 8px 40px rgba(0,0,0,0.6);
}
.mw-lightbox-close,
.mw-lightbox-prev,
.mw-lightbox-next {
  position: absolute;
  background: rgba(255,255,255,0.08);
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.18);
  font-family: var(--body);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
  -webkit-appearance: none;
  appearance: none;
}
.mw-lightbox-close {
  top: 20px;
  right: 24px;
  width: 44px;
  height: 44px;
  font-size: 24px;
  border-radius: 50%;
  line-height: 1;
}
.mw-lightbox-prev,
.mw-lightbox-next {
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 56px;
  font-size: 20px;
  border-radius: 50%;
}
.mw-lightbox-prev { left: 24px; }
.mw-lightbox-next { right: 24px; }
.mw-lightbox-close:hover,
.mw-lightbox-prev:hover,
.mw-lightbox-next:hover {
  background: rgba(255,255,255,0.16);
  border-color: var(--larch);
}
.mw-lightbox-meta {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  text-align: center;
  color: rgba(255,255,255,0.7);
  font-family: var(--body);
  font-size: 13px;
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
}
.mw-lightbox-counter {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--larch);
  font-weight: 700;
}

@media (max-width: 640px) {
  .mw-lightbox { padding: 50px 16px 70px; }
  .mw-lightbox-prev, .mw-lightbox-next { width: 44px; height: 44px; bottom: 70px; top: auto; transform: none; }
  .mw-lightbox-prev { left: 16px; }
  .mw-lightbox-next { right: 16px; }
}

/* ═════════════════════════════════════════════════════════════════════════
   Contrast safety overrides (post-audit, 2026-05-21)
   ───────────────────────────────────────────────────────────────────────── */

/* Staff card links inside dark .prog-staff-card — override default blue */
.prog-staff-card a,
.prog-staff-name a {
  color: var(--white);
  text-decoration: none;
}
.prog-staff-card a:hover,
.prog-staff-name a:hover { color: var(--larch); }

/* Section labels keep larch on dark surfaces (where contrast is fine) */
.prog-section--missions .section-label,
.prog-section--cedars   .section-label,
body.is-bdc-page .dept-hero .section-label,
body.is-fec-page .dept-hero .section-label,
body.is-cdc-page .dept-hero .section-label,
body.is-ced-page .dept-hero .section-label,
.prog-hero .section-label,
.dept-hero .section-label { color: var(--cream); }

/* News video tags + mw-story-meta on dark cards */
.prog-section--missions .news-video-tag,
.prog-section--cedars   .news-video-tag,
.news-video-tag { color: var(--cream); }
.mw-story-card--full .mw-story-meta,
.mw-story-card--logo .mw-story-meta { color: var(--cream); }

/* Stats band: large numbers on dark surfaces use cream not cedars */
.dept-stats .dept-stat-num,
.prog-section--missions .dept-stat-num,
.prog-section--cedars   .dept-stat-num { color: var(--cream); }

/* Section labels on light surfaces stay using --larch-text (already default) */

/* ═════════════════════════════════════════════════════════════════════════
   Dept CTA with embedded form (replaces dept-contact + dept-cta on dept pages)
   ═════════════════════════════════════════════════════════════════════════ */

.dept-cta-with-form .dept-cta-inner {
  max-width: 1280px;
  text-align: left;
  padding-top: 80px;
  padding-bottom: 80px;
}
.dept-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 88px);
  align-items: center;
  position: relative;
  z-index: 1;
}
.dept-cta-copy h2 {
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--white);
  margin: 0 0 24px;
}
.dept-cta-copy p {
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  margin: 0 0 16px;
}
.dept-cta-secondary {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.75) !important;
  margin-top: 24px !important;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.2);
}
.dept-cta-secondary a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 600;
}
.dept-cta-secondary a:hover { color: var(--larch); }

/* CED is on harvest (light amber) bg — needs dark text */
.dept-cta.dept-ced .dept-cta-copy h2 { color: var(--cedars); }
.dept-cta.dept-ced .dept-cta-copy p { color: rgba(0,36,70,0.85); }
.dept-cta.dept-ced .dept-cta-secondary {
  color: rgba(0,36,70,0.75) !important;
  border-top-color: rgba(0,36,70,0.2);
}
.dept-cta.dept-ced .dept-cta-secondary a { color: var(--cedars); }
.dept-cta.dept-ced .dept-cta-secondary a:hover { color: var(--missions); }

/* Form area as solid white card floating on dept-color bg */
.dept-cta-form-area {
  background: var(--white);
  border-radius: 6px;
  padding: 36px 32px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
}
.dept-cta-form-area h3 { display: none; } /* hide any "Cooperative Inquiry" heading from form area pattern */
.dept-cta-form-area > p:first-of-type:not(.nf-error-msg) { display: none; }

/* NF labels on white card — dark text */
.dept-cta-form-area .nf-field-label label { color: var(--cedars) !important; }
.dept-cta-form-area .ninja-forms-req-symbol { color: var(--larch); }

/* NF inputs on white card — subtle cream-tinted fill + cedars border */
.dept-cta-form-area .nf-form-cont input[type="text"],
.dept-cta-form-area .nf-form-cont input[type="email"],
.dept-cta-form-area .nf-form-cont input[type="tel"],
.dept-cta-form-area .nf-form-cont input[type="url"],
.dept-cta-form-area .nf-form-cont input[type="number"],
.dept-cta-form-area .nf-form-cont input[type="password"],
.dept-cta-form-area .nf-form-cont input[type="date"],
.dept-cta-form-area .nf-form-cont textarea,
.dept-cta-form-area .nf-form-cont select {
  background: #fafaf6;
  border-color: rgba(0,36,70,0.22);
  color: var(--cedars);
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.03);
}
.dept-cta-form-area .nf-form-cont input::placeholder,
.dept-cta-form-area .nf-form-cont textarea::placeholder { color: rgba(0,36,70,0.4); }
.dept-cta-form-area .nf-form-cont input:focus,
.dept-cta-form-area .nf-form-cont textarea:focus,
.dept-cta-form-area .nf-form-cont select:focus {
  background: var(--white);
  border-color: var(--larch);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2);
}
.dept-cta-form-area .nf-form-cont select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23173933' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
  appearance: none;
  -webkit-appearance: none;
}
.dept-cta-form-area .nf-form-cont textarea { min-height: 100px; }

/* Hide NF form's redundant title/intro shown above the form */
.dept-cta-form-area .nf-form-title { display: none; }

@media (max-width: 900px) {
  .dept-cta-grid { grid-template-columns: 1fr; gap: 36px; }
  .dept-cta-form-area { padding: 28px 22px; }
}

/* Dept overview panel: when filled with an <img>, make it render cleanly */
.dept-overview-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}
.dept-overview-visual:has(img) { background: none; padding: 0; }
.dept-overview-visual:has(img) .dept-overview-visual-label { display: none; }

/* Dept-programs span-only structure (wpautop-safe rebuild) */
.dept-program-body { display: block; min-width: 0; position: relative; z-index: 1; }
.dept-program-title {
  display: block;
  font-family: var(--display);
  font-size: clamp(1rem, 1.8vw, 1.4rem);
  font-weight: 700;
  color: #f5f0e8;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  transition: color 0.2s;
}
.dept-program-desc {
  display: block;
  font-family: var(--body);
  font-size: 14px;
  color: rgba(245,240,232,0.42);
  line-height: 1.65;
  margin: 0;
  transition: color 0.2s;
}
a.dept-program-row:hover .dept-program-title { color: #fff; }
a.dept-program-row:hover .dept-program-desc { color: rgba(245,240,232,0.65); }

/* On wheat (dept-programs section currently) — dark text by default,
   flip to cream on hover when the dark ::before slides in over the row */
.dept-programs .dept-program-title { color: var(--cedars); }
.dept-programs .dept-program-desc { color: rgba(0,17,38,0.7); }
.dept-programs .dept-program-num { color: var(--cedars); opacity: 0.5; }
.dept-programs a.dept-program-row:hover .dept-program-title { color: var(--white); }
.dept-programs a.dept-program-row:hover .dept-program-desc { color: rgba(245,240,232,0.7); }
.dept-programs a.dept-program-row:hover .dept-program-num { color: var(--cream); opacity: 1; }
.dept-programs a.dept-program-row:hover .dept-program-arrow { color: var(--cream); }

/* Constrain overview-visual photo height — don't stretch full grid-row height */
.dept-overview-visual:has(img) {
  align-self: center;
  max-height: 480px;
  aspect-ratio: 1 / 1;
}
.dept-overview-visual:has(img)::before,
.dept-overview-visual:has(img)::after { display: none; }

/* ═════════════════════════════════════════════════════════════════════════
   Dept page editorial banner photo + caption
   ═════════════════════════════════════════════════════════════════════════ */

.dept-banner-photo {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: var(--cedars);
  overflow: hidden;
}
.dept-banner-photo figure {
  margin: 0;
  position: relative;
}
.dept-banner-photo img {
  width: 100%;
  height: 672px;
  object-fit: cover;
  display: block;
}
.dept-banner-caption {
  padding: 16px 32px 18px;
  font-family: var(--body);
  font-size: 0.88rem;
  font-weight: 500;
  font-style: italic;
  color: rgba(245,240,232,0.75);
  background: var(--cedars);
  text-align: center;
  letter-spacing: 0.3px;
  line-height: 1.5;
  max-width: 800px;
  margin: 0 auto;
}
@media (max-width: 720px) {
  .dept-banner-photo img { height: 432px; }
  .dept-banner-caption { padding: 14px 20px 16px; font-size: 0.82rem; }
}

/* ═════════════════════════════════════════════════════════════════════════
   Stories: editorial variant (numbered row with photo + title + excerpt)
   Used on dept pages to replace the old "Real Results" hardcoded section.
   ═════════════════════════════════════════════════════════════════════════ */

.mw-stories-editorial .mw-stories-editorial-list {
  display: flex;
  flex-direction: column;
}
.mw-story-edit-row {
  display: grid;
  grid-template-columns: clamp(80px, 8vw, 130px) clamp(180px, 22vw, 260px) 1fr auto;
  align-items: center;
  gap: 0 36px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(0,36,70,0.18);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
  transition: padding-left 0.35s cubic-bezier(0.22,1,0.36,1);
}
.mw-story-edit-row:hover { padding-left: 8px; }
.mw-story-edit-row::before {
  content: '';
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--cedars) 92%, transparent);
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(0.22,1,0.36,1);
  z-index: 0;
}
.mw-story-edit-row:hover::before { transform: translateX(0); }
.mw-story-edit-row > * { position: relative; z-index: 1; }

.mw-story-edit-num {
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--cedars);
  opacity: 0.5;
  transition: color 0.2s, opacity 0.2s;
}

.mw-story-edit-photo {
  aspect-ratio: 4 / 3;
  background: rgba(0,36,70,0.06);
  overflow: hidden;
  border-radius: 4px;
  position: relative;
}
.mw-story-edit-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.mw-story-edit-row:hover .mw-story-edit-photo img { transform: scale(1.04); }
.mw-story-edit-photo-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-size: 3rem;
  font-weight: 500;
  color: rgba(0,36,70,0.18);
}

.mw-story-edit-title {
  font-family: var(--display);
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cedars);
  margin: 0 0 8px;
  transition: color 0.2s;
}
.mw-story-edit-excerpt {
  font-family: var(--body);
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(0,17,38,0.72);
  margin: 0;
  transition: color 0.2s;
}
.mw-story-edit-arrow {
  font-size: 1.4rem;
  color: rgba(0,36,70,0.4);
  transition: color 0.2s, transform 0.3s cubic-bezier(0.22,1,0.36,1);
}

/* Hover state: dark overlay slides in, text flips to cream */
.mw-story-edit-row:hover .mw-story-edit-num { color: var(--cream); opacity: 1; }
.mw-story-edit-row:hover .mw-story-edit-title { color: var(--white); }
.mw-story-edit-row:hover .mw-story-edit-excerpt { color: rgba(245,240,232,0.75); }
.mw-story-edit-row:hover .mw-story-edit-arrow { color: var(--cream); transform: translateX(8px); }

@media (max-width: 720px) {
  .mw-story-edit-row {
    grid-template-columns: 60px 1fr;
    gap: 12px 16px;
    padding: 20px 0;
  }
  .mw-story-edit-photo { grid-column: 1 / -1; max-width: 100%; }
  /* Without this, auto-placement drops the text into the 60px number column. */
  .mw-story-edit-body { grid-column: 1 / -1; }
  .mw-story-edit-arrow { display: none; }
}

/* ═════════════════════════════════════════════════════════════════════════
   Privacy Policy / legal page typography
   Container + readable line-length for long-form policy text
   ═════════════════════════════════════════════════════════════════════════ */

.mw-policy-content {
  max-width: 760px;
  margin: 0 auto;
  font-family: var(--body);
  color: var(--cedars);
  line-height: 1.75;
  font-size: 1rem;
}
.mw-policy-content h2 {
  font-family: var(--display);
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--cedars);
  margin: 56px 0 12px;
  padding-top: 28px;
  border-top: 1px solid rgba(0,36,70,0.12);
}
.mw-policy-content h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.mw-policy-content h3 {
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cedars);
  margin: 28px 0 8px;
}
.mw-policy-content p { margin: 0 0 18px; }
.mw-policy-content ul, .mw-policy-content ol {
  margin: 0 0 22px;
  padding-left: 22px;
}
.mw-policy-content ul li, .mw-policy-content ol li { margin-bottom: 8px; }
.mw-policy-content a {
  color: var(--larch-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mw-policy-content a:hover { color: var(--cedars); }
.mw-policy-content strong { color: var(--cedars); font-weight: 700; }

/* Hero meta line — effective date */
.prog-hero-meta {
  font-family: var(--body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--larch);
  margin-top: 20px;
  display: inline-block;
  padding: 4px 12px;
  border: 1px solid rgba(205,148,55,0.5);
  border-radius: 2px;
}

/* Stories editorial — cream variant (used on CED where wheat would clash with harvest CTA) */
.mw-stories-editorial--cream .mw-story-edit-row { border-bottom-color: rgba(0,36,70,0.12); }

/* CED team section: cedars background (matches documented dept rhythm — Team = --dept-base) */
.is-ced-page .dept-team { background: var(--cedars); }
.is-ced-page .dept-team .dept-section-head .section-label { color: var(--ced); }
.is-ced-page .dept-team .dept-section-head h2 { color: var(--white); }

/* Fix: dept-services card descriptions render as unwrapped text on dept pages
   (wpautop is disabled so loose text isn't wrapped in <p>). Set the card's
   own color so loose text inherits cream-50%. */
.dept-services .dept-service-card { color: rgba(245,240,232,0.55); }

/* FEC team section: cedars background (matches documented dept rhythm — Team = --dept-base) */
.is-fec-page .dept-team { background: var(--cedars); }
.is-fec-page .dept-team .dept-section-head .section-label { color: var(--fec); }
.is-fec-page .dept-team .dept-section-head h2 { color: var(--white); }

/* ─── CED page contrast fixes (Harvest amber requires dark text per CED exception rule) ─── */

/* Programs-note paragraph on CED amber programs bg — needs cedars text */
.is-ced-page .dept-programs-note { color: var(--cedars); opacity: 0.75; }

/* Services cards on CED: default state is amber (--dept-color = harvest), needs dark text;
   On hover, bg flips to cedars, so text must flip to cream */
.is-ced-page .dept-services .dept-service-card { color: rgba(0,36,70,0.75); }
.is-ced-page .dept-services .dept-service-card h3 { color: var(--cedars); }
.is-ced-page .dept-services .dept-service-card p { color: rgba(0,36,70,0.75); }
.is-ced-page .dept-services .dept-service-card:hover { color: rgba(245,240,232,0.7); }
.is-ced-page .dept-services .dept-service-card:hover h3 { color: var(--white); }
.is-ced-page .dept-services .dept-service-card:hover p { color: rgba(245,240,232,0.7); }


/* ─── STAFF PORTAL ──────────────────────────────────────────────────────────
   Gated dashboard for Sanders County Community Development staff (/staff-portal/). Three sections:
   analytics, marketing requests, social calendar reviews. Built across
   phases 3-5; this file is the layout foundation. */

.is-staff-portal-page { background: var(--cream); }

.staff-portal-hero {
  background: var(--cedars);
  color: var(--cream);
  padding: clamp(36px, 5vh, 64px) 0;
}
.staff-portal-welcome {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
}
.staff-portal-avatar {
  width: 72px; height: 72px; border-radius: 50%;
  overflow: hidden; border: 2px solid var(--larch);
  flex-shrink: 0;
}
.staff-portal-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.staff-portal-welcome-text { min-width: 0; }
.staff-portal-eyebrow {
  display: block;
  font-family: var(--display); font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--larch); margin-bottom: 6px;
}
.staff-portal-welcome-text h1 {
  font-family: var(--display); font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -0.01em;
  color: var(--white); margin: 0 0 4px;
}
.staff-portal-role {
  font-size: 0.9rem; color: rgba(245, 240, 232, 0.7);
  margin: 0;
}
.staff-portal-actions { display: flex; align-items: center; gap: 12px; }
.staff-portal-logout {
  font-family: var(--display); font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(245, 240, 232, 0.7); text-decoration: none;
  padding: 8px 14px; border: 1px solid rgba(245, 240, 232, 0.25);
  border-radius: 2px;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.staff-portal-logout:hover {
  color: var(--white); border-color: var(--larch); background: rgba(205, 148, 55, 0.12);
}

.staff-portal-dashboard {
  padding: clamp(40px, 6vh, 72px) 0;
}
.staff-portal-section {
  background: white;
  border-radius: 4px;
  border: 1px solid rgba(0,36,70, 0.06);
  box-shadow: 0 2px 8px rgba(0,36,70, 0.04);
  padding: 28px 32px;
  margin-bottom: 24px;
}
.staff-portal-section:last-child { margin-bottom: 0; }
.staff-portal-section-head {
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,36,70, 0.08);
}
.staff-portal-section-head .section-label {
  display: block;
  font-family: var(--display); font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--larch-text); margin-bottom: 6px;
}
.staff-portal-section-head h2 {
  font-family: var(--display); font-size: 1.4rem; font-weight: 800;
  color: var(--cedars); margin: 0; letter-spacing: -0.01em;
}
.staff-portal-placeholder {
  padding: 28px 0;
  text-align: center;
  color: rgba(0,36,70, 0.55);
  font-size: 0.95rem;
  background: rgba(0,36,70, 0.02);
  border-radius: 3px;
  border: 1px dashed rgba(0,36,70, 0.12);
}
.staff-portal-placeholder p { margin: 0; }

@media (max-width: 700px) {
  .staff-portal-welcome { grid-template-columns: auto 1fr; }
  .staff-portal-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .staff-portal-section { padding: 22px 18px; }
  .staff-portal-welcome-text h1 { font-size: 1.3rem; }
  .staff-portal-section-head h2 { font-size: 1.2rem; }
  .staff-portal-cal-head { flex-direction: column; align-items: flex-start; gap: 4px; }
  .staff-portal-cal-footer { flex-direction: column; align-items: flex-start; gap: 8px; }
  .staff-portal-cal-response-buttons { flex-direction: column; align-items: stretch; }
  .staff-portal-cal-response-buttons .staff-portal-btn { text-align: center; }
}

/* ─── Flash messages ─── */
.staff-portal-flash {
  padding: 12px 16px; border-radius: 3px; margin-bottom: 20px;
  font-size: 0.92rem; font-weight: 600;
}
.staff-portal-flash--success {
  background: rgba(45, 122, 62, 0.10); color: #1f5a2e;
  border-left: 3px solid #2d7a3e;
}
.staff-portal-flash--error {
  background: rgba(184, 69, 61, 0.10); color: #8a322c;
  border-left: 3px solid #b8453d;
}

/* ─── Type picker (tile grid) ─── */
.staff-portal-picker { margin-bottom: 28px; }
.staff-portal-picker-intro {
  font-size: 0.92rem; color: rgba(0,36,70, 0.7);
  margin: 0 0 16px;
}
.staff-portal-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.staff-portal-tile {
  display: flex; flex-direction: column;
  text-align: left;
  padding: 18px 18px 16px;
  background: white;
  border: 1.5px solid rgba(0,36,70, 0.10);
  border-radius: 4px;
  font-family: var(--body);
  color: var(--cedars);
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.staff-portal-tile:hover {
  border-color: var(--cedars);
  background: var(--cream);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,36,70, 0.10);
}
.staff-portal-tile:hover .staff-portal-tile-icon {
  background: var(--cedars);
}
.staff-portal-tile-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px;
  background: var(--larch); color: white;
  border-radius: 4px;
  font-family: var(--display); font-weight: 800; font-size: 1.05rem;
  margin-bottom: 10px;
}
.staff-portal-tile-label {
  font-family: var(--display); font-size: 1rem; font-weight: 800;
  color: var(--cedars); margin-bottom: 4px; letter-spacing: -0.01em;
}
.staff-portal-tile-desc {
  font-size: 0.82rem; color: rgba(0,36,70, 0.6);
  line-height: 1.4;
}

/* ─── Typed forms ─── */
.staff-portal-form--typed {
  padding: 22px;
  background: rgba(0,36,70, 0.03);
  border: 1px solid rgba(0,36,70, 0.10);
  border-radius: 4px;
  margin-bottom: 28px;
}
.staff-portal-form-back {
  display: inline-block; margin-bottom: 14px;
  background: none; border: 0; padding: 0;
  font-family: var(--display); font-size: 11px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--larch-text); cursor: pointer;
}
.staff-portal-form-back:hover { color: var(--cedars); }
.staff-portal-form-head {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 18px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,36,70, 0.10);
}
.staff-portal-form-head .staff-portal-tile-icon {
  width: 36px; height: 36px;
  font-size: 1.1rem;
  margin-bottom: 0;
}
.staff-portal-form-head h3 {
  font-family: var(--display); font-size: 1.15rem; font-weight: 800;
  color: var(--cedars); margin: 0; letter-spacing: -0.01em;
}
.req-required { color: #b8453d; font-weight: 700; }

.staff-portal-checkboxes {
  display: flex; flex-wrap: wrap; gap: 14px;
  padding: 8px 0;
}
.staff-portal-checkbox {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.92rem; color: var(--cedars);
  cursor: pointer;
}
.staff-portal-checkbox input[type=checkbox] {
  width: 16px; height: 16px;
  accent-color: var(--larch);
  cursor: pointer;
}
.staff-portal-field { margin-top: 16px; }
.staff-portal-field-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px;
}
.staff-portal-field label {
  display: block;
  font-family: var(--display); font-size: 11px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--larch-text); margin-bottom: 6px;
}
.staff-portal-field input[type=text],
.staff-portal-field input[type=date],
.staff-portal-field select,
.staff-portal-field textarea {
  width: 100%;
  padding: 9px 12px;
  font-family: var(--body); font-size: 0.95rem;
  color: var(--cedars);
  background: white;
  border: 1px solid rgba(0,36,70, 0.15);
  border-radius: 3px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.staff-portal-field input:focus,
.staff-portal-field select:focus,
.staff-portal-field textarea:focus {
  border-color: var(--larch);
  box-shadow: 0 0 0 3px rgba(205, 148, 55, 0.15);
}
.staff-portal-field textarea { resize: vertical; min-height: 120px; }

.staff-portal-btn {
  display: inline-block; margin-top: 18px;
  background: var(--cedars); color: white;
  border: 0;
  padding: 11px 22px;
  font-family: var(--display); font-size: 11px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase;
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.15s;
}
.staff-portal-btn:hover { background: var(--larch-text); }

/* ─── Active/completed lists ─── */
.staff-portal-sub-h {
  font-family: var(--display); font-size: 0.95rem; font-weight: 800;
  color: var(--cedars); margin: 28px 0 12px;
  display: flex; align-items: center; gap: 8px;
}
.staff-portal-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 24px; height: 24px; padding: 0 8px;
  background: rgba(0,36,70, 0.08);
  color: var(--cedars);
  border-radius: 12px;
  font-family: var(--display); font-size: 0.78rem; font-weight: 800;
}
.staff-portal-empty {
  color: rgba(0,36,70, 0.55); font-style: italic;
  padding: 16px 0;
}
.staff-portal-req-list { list-style: none; padding: 0; margin: 0; }
.staff-portal-req-list--completed { opacity: 0.78; }
.staff-portal-req-row { margin-bottom: 10px; }
.staff-portal-req-link {
  display: block;
  padding: 14px 18px;
  background: white;
  border: 1px solid rgba(0,36,70, 0.10);
  border-radius: 4px;
  text-decoration: none; color: inherit;
  transition: border-color 0.15s, transform 0.15s;
}
.staff-portal-req-link:hover {
  border-color: var(--larch);
  transform: translateY(-1px);
}
.staff-portal-req-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.staff-portal-req-meta > span {
  display: inline-block;
  font-family: var(--body); font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 2px;
}
.req-type { background: rgba(0,36,70, 0.08); color: var(--cedars); }
.req-status--new         { background: rgba(29, 101, 141, 0.14); color: var(--bdc); }
.req-status--in-progress { background: rgba(205, 148, 55, 0.18); color: var(--larch-text); }
.req-status--on-hold     { background: rgba(0,36,70, 0.10); color: rgba(0,36,70, 0.75); }
.req-status--done        { background: rgba(45, 122, 62, 0.14); color: #1f5a2e; }
.req-priority--high      { background: rgba(232, 176, 92, 0.20); color: var(--larch-text); }
.req-priority--urgent    { background: rgba(184, 69, 61, 0.14); color: #8a322c; }
.req-priority--low       { background: rgba(0,36,70, 0.06); color: rgba(0,36,70, 0.6); }
.req-deadline {
  background: rgba(0,36,70, 0.06);
  font-family: var(--body); font-size: 11px; font-weight: 600;
  color: rgba(0,36,70, 0.7);
  padding: 3px 8px; border-radius: 2px; letter-spacing: 0.02em; text-transform: none;
}
.staff-portal-req-title {
  font-family: var(--display); font-size: 1.02rem; font-weight: 700;
  color: var(--cedars); margin: 0 0 6px; letter-spacing: -0.01em;
}
.staff-portal-req-footer {
  display: flex; gap: 12px;
  font-size: 0.78rem; color: rgba(0,36,70, 0.55);
}
.req-comments { font-weight: 600; color: var(--larch-text); }

.staff-portal-completed-wrap { margin-top: 24px; }
.staff-portal-completed-wrap > summary {
  cursor: pointer; padding: 8px 0;
  font-family: var(--display); font-size: 0.85rem; font-weight: 700;
  color: rgba(0,36,70, 0.6);
  letter-spacing: 0.06em; text-transform: uppercase;
}
.staff-portal-completed-wrap[open] > summary { color: var(--cedars); }

/* ─── Detail view ─── */
.staff-portal-back {
  display: inline-block; margin-bottom: 18px;
  font-family: var(--display); font-size: 12px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--larch-text); text-decoration: none;
}
.staff-portal-back:hover { color: var(--cedars); }
.staff-portal-req-detail-title {
  font-family: var(--display); font-size: 1.5rem; font-weight: 800;
  color: var(--cedars); margin: 14px 0 18px; letter-spacing: -0.01em;
}
.staff-portal-req-detail-body p {
  color: rgba(0,36,70, 0.85); line-height: 1.6;
  margin: 0 0 12px;
}
.staff-portal-req-submitted {
  font-size: 0.82rem; color: rgba(0,36,70, 0.55);
  margin: 14px 0 28px;
}

/* ─── Thread ─── */
.staff-portal-thread { border-top: 1px solid rgba(0,36,70, 0.10); padding-top: 24px; }
.staff-portal-thread h4 {
  font-family: var(--display); font-size: 0.92rem; font-weight: 800;
  color: var(--cedars); margin: 0 0 18px;
  letter-spacing: 0.04em; text-transform: uppercase;
}
.staff-portal-comment {
  background: rgba(0,36,70, 0.03);
  padding: 14px 18px; border-radius: 3px;
  margin-bottom: 12px;
  border-left: 3px solid rgba(0,36,70, 0.15);
}
.staff-portal-comment--admin {
  background: rgba(205, 148, 55, 0.08);
  border-left-color: var(--larch);
}
.staff-portal-comment-head {
  display: flex; align-items: baseline; gap: 8px;
  margin-bottom: 6px;
  font-size: 0.88rem;
}
.staff-portal-comment-head strong { color: var(--cedars); }
.staff-portal-comment-badge {
  display: inline-block;
  background: var(--larch); color: white;
  padding: 1px 6px; border-radius: 2px;
  font-size: 9px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
}
.staff-portal-comment-time {
  font-size: 0.78rem; color: rgba(0,36,70, 0.55); margin-left: auto;
}
.staff-portal-comment-body p {
  margin: 0; color: rgba(0,36,70, 0.85); font-size: 0.94rem; line-height: 1.55;
}

/* Reply form (WP comment_form) */
#respond { margin-top: 22px; }
#respond h3.comment-reply-title {
  font-family: var(--display); font-size: 0.92rem; font-weight: 800;
  color: var(--cedars); margin: 0 0 12px;
  letter-spacing: 0.04em; text-transform: uppercase;
}
#respond textarea {
  width: 100%;
  padding: 10px 12px;
  font-family: var(--body); font-size: 0.95rem;
  border: 1px solid rgba(0,36,70, 0.15);
  border-radius: 3px;
  resize: vertical; min-height: 100px;
}
#respond textarea:focus {
  border-color: var(--larch);
  box-shadow: 0 0 0 3px rgba(205, 148, 55, 0.15);
  outline: none;
}
#respond .submit, #respond .staff-portal-btn { margin-top: 12px; }
#respond input[type=submit] {
  background: var(--cedars); color: white;
  border: 0; padding: 11px 22px;
  font-family: var(--display); font-size: 11px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase;
  border-radius: 2px; cursor: pointer;
}
#respond input[type=submit]:hover { background: var(--larch-text); }

@media (max-width: 560px) {
  .staff-portal-field-row { grid-template-columns: 1fr; }
  .staff-portal-tiles { grid-template-columns: 1fr; }
}

/* ─── Analytics report (in-portal) ─── */
.staff-portal-analytics { }
.staff-portal-analytics .analytics-head {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 16px;
  padding-bottom: 18px; margin-bottom: 24px;
  border-bottom: 1px solid rgba(0,36,70, 0.10);
}
.staff-portal-analytics .analytics-eyebrow {
  display: block;
  font-family: var(--display); font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--larch-text); margin-bottom: 6px;
}
.staff-portal-analytics .analytics-head h3 {
  font-family: var(--display); font-size: clamp(1.3rem, 2.2vw, 1.8rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -0.01em;
  color: var(--cedars); margin: 0;
}
.staff-portal-analytics .analytics-head-meta {
  text-align: right;
  font-size: 0.8rem; color: rgba(0,36,70, 0.6);
}
.staff-portal-analytics .analytics-head-meta strong { color: var(--cedars); }

.staff-portal-analytics .analytics-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}
.staff-portal-analytics .kpi {
  background: white; padding: 16px;
  border: 1px solid rgba(0,36,70, 0.08);
  border-radius: 3px;
}
.staff-portal-analytics .kpi-label {
  font-family: var(--body); font-size: 10px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--larch-text); margin-bottom: 8px;
}
.staff-portal-analytics .kpi-num {
  font-family: var(--display); font-size: 1.7rem; font-weight: 500;
  line-height: 1; color: var(--cedars); letter-spacing: -0.02em;
  margin-bottom: 6px;
}
.staff-portal-analytics .kpi-trend {
  font-family: var(--body); font-size: 0.75rem; font-weight: 600;
  display: inline-flex; align-items: center; gap: 4px;
}
.staff-portal-analytics .kpi-trend--up { color: #2d7a3e; }
.staff-portal-analytics .kpi-trend--down { color: #b8453d; }
.staff-portal-analytics .kpi-trend--flat { color: rgba(0,36,70, 0.55); }
.staff-portal-analytics .kpi-trend::before {
  content: ''; display: inline-block;
  width: 0; height: 0;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
}
.staff-portal-analytics .kpi-trend--up::before   { border-bottom: 6px solid #2d7a3e; }
.staff-portal-analytics .kpi-trend--down::before { border-top:    6px solid #b8453d; }
.staff-portal-analytics .kpi-trend--flat::before { width: 8px; height: 2px; background: rgba(0,36,70, 0.4); border: 0; }

.staff-portal-analytics .analytics-row-2 {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 16px;
  margin-bottom: 24px;
}
.staff-portal-analytics .analytics-card {
  background: white;
  border: 1px solid rgba(0,36,70, 0.08);
  border-radius: 3px;
  padding: 20px 22px;
}
.staff-portal-analytics .analytics-card-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 18px; padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,36,70, 0.08);
}
.staff-portal-analytics .analytics-card-head h4 {
  font-family: var(--display); font-size: 0.98rem; font-weight: 800;
  color: var(--cedars); margin: 0; letter-spacing: -0.01em;
}
.staff-portal-analytics .analytics-card-head .sub {
  font-size: 0.7rem; color: rgba(0,36,70, 0.55);
  letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600;
}

.staff-portal-analytics .conv-list { list-style: none; padding: 0; margin: 0; }
.staff-portal-analytics .conv-row {
  display: grid;
  grid-template-columns: 32px 1fr auto 48px;
  align-items: center; gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(0,36,70, 0.05);
}
.staff-portal-analytics .conv-row:last-child { border-bottom: 0; }
.staff-portal-analytics .conv-count {
  font-family: var(--display); font-size: 1rem; font-weight: 800;
  color: var(--cedars); text-align: right;
}
.staff-portal-analytics .conv-name {
  font-size: 0.88rem; color: var(--cedars); font-weight: 600;
}
.staff-portal-analytics .conv-name .dept-tag {
  display: inline-block;
  font-size: 9px; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; padding: 2px 6px; border-radius: 2px;
  margin-left: 6px; vertical-align: 2px;
}
.staff-portal-analytics .dept-bdc     { background: rgba(29, 101, 141, 0.14); color: var(--bdc); }
.staff-portal-analytics .dept-fec     { background: rgba(21, 95, 81, 0.14); color: var(--fec); }
.staff-portal-analytics .dept-cdc     { background: rgba(6, 150, 153, 0.14); color: var(--cdc); }
.staff-portal-analytics .dept-ced     { background: rgba(205, 148, 55, 0.18); color: var(--larch-text); }
.staff-portal-analytics .dept-gen,
.staff-portal-analytics .dept-general { background: rgba(0,36,70, 0.08); color: var(--cedars); }
.staff-portal-analytics .conv-bar {
  height: 8px; border-radius: 2px;
  background: linear-gradient(to right, var(--larch), var(--harvest));
  min-width: 8px;
}
.staff-portal-analytics .conv-trend {
  font-size: 0.76rem; font-weight: 600; text-align: right;
}

.staff-portal-analytics .src-list { list-style: none; padding: 0; margin: 0; }
.staff-portal-analytics .src-row {
  display: grid; grid-template-columns: 1fr;
  margin-bottom: 14px;
}
.staff-portal-analytics .src-row:last-child { margin-bottom: 0; }
.staff-portal-analytics .src-label {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 0.83rem; color: var(--cedars); font-weight: 600;
  margin-bottom: 4px;
}
.staff-portal-analytics .src-pct { font-size: 0.76rem; color: rgba(0,36,70, 0.6); font-weight: 700; }
.staff-portal-analytics .src-track {
  height: 5px; background: rgba(0,36,70, 0.06); border-radius: 3px; overflow: hidden;
}
.staff-portal-analytics .src-fill { height: 100%; background: var(--cedars); border-radius: 3px; }
.staff-portal-analytics .src-fill--google   { background: var(--bdc); }
.staff-portal-analytics .src-fill--direct   { background: var(--cedars); }
.staff-portal-analytics .src-fill--facebook { background: var(--cdc); }
.staff-portal-analytics .src-fill--email    { background: var(--larch); }
.staff-portal-analytics .src-fill--other    { background: rgba(0,36,70, 0.35); }

.staff-portal-analytics .pages-table { width: 100%; border-collapse: collapse; }
.staff-portal-analytics .pages-table th,
.staff-portal-analytics .pages-table td {
  text-align: left; padding: 8px;
  border-bottom: 1px solid rgba(0,36,70, 0.05);
}
.staff-portal-analytics .pages-table th {
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(0,36,70, 0.5); font-weight: 700;
}
.staff-portal-analytics .pages-table td.path {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.82rem; color: var(--cedars);
}
.staff-portal-analytics .pages-table td.views {
  font-family: var(--display); font-weight: 700; color: var(--cedars); text-align: right;
}
.staff-portal-analytics .pages-table td.trend { text-align: right; font-size: 0.76rem; font-weight: 600; }
.staff-portal-analytics .pages-table tbody tr:last-child td { border-bottom: 0; }

.staff-portal-analytics .analytics-notes {
  background: rgba(205, 148, 55, 0.08);
  border-left: 4px solid var(--larch);
}
.staff-portal-analytics .analytics-notes p {
  font-size: 0.94rem; line-height: 1.6;
  color: rgba(0,36,70, 0.85);
  margin: 0 0 10px;
}
.staff-portal-analytics .analytics-notes p:last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .staff-portal-analytics .analytics-kpi-grid { grid-template-columns: repeat(3, 1fr); }
  .staff-portal-analytics .analytics-row-2 { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .staff-portal-analytics .analytics-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .staff-portal-analytics .conv-row { grid-template-columns: 24px 1fr auto; }
  .staff-portal-analytics .conv-bar { display: none; }
}

/* ─── Social Calendar list + detail ─── */
.staff-portal-cal-list { list-style: none; padding: 0; margin: 0; }
.staff-portal-cal-row { margin-bottom: 12px; }
.staff-portal-cal-link {
  display: block;
  padding: 16px 20px;
  background: white;
  border: 1px solid rgba(0,36,70, 0.10);
  border-radius: 4px;
  text-decoration: none; color: inherit;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.staff-portal-cal-link:hover {
  border-color: var(--cedars);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,36,70, 0.08);
}
.staff-portal-cal-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; margin-bottom: 6px;
}
.staff-portal-cal-head h4,
.staff-portal-cal-head h3 {
  font-family: var(--display); font-weight: 800;
  color: var(--cedars); margin: 0;
}
.staff-portal-cal-head h4 { font-size: 1rem; }
.staff-portal-cal-head h3 { font-size: 1.4rem; letter-spacing: -0.01em; }
.staff-portal-cal-month {
  font-family: var(--display); font-size: 0.78rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--larch-text);
}
.staff-portal-cal-depts { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.staff-portal-cal-footer {
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px; flex-wrap: wrap;
  font-size: 0.84rem;
}
.staff-portal-cal-aggregate { display: flex; flex-wrap: wrap; gap: 6px; }
.agg-pill {
  display: inline-block;
  font-family: var(--body); font-size: 11px; font-weight: 700;
  letter-spacing: 0.02em;
  padding: 3px 9px; border-radius: 12px;
}
.agg-pill--approved { background: rgba(45, 122, 62, 0.14); color: #1f5a2e; }
.agg-pill--changes  { background: rgba(184, 69, 61, 0.12); color: #8a322c; }
.agg-pill--none     { background: rgba(0,36,70, 0.08); color: rgba(0,36,70, 0.65); }
.staff-portal-cal-mine {
  color: rgba(0,36,70, 0.7);
  font-size: 0.86rem;
}

.staff-portal-cal-aggregate-block {
  background: rgba(0,36,70, 0.04);
  padding: 14px 18px; border-radius: 3px;
  margin: 22px 0;
  font-size: 0.94rem; color: var(--cedars);
}
.staff-portal-cal-response-form {
  background: white;
  border: 1px solid rgba(0,36,70, 0.10);
  border-radius: 4px;
  padding: 20px 22px;
  margin-bottom: 28px;
}
.staff-portal-cal-response-label {
  font-family: var(--display); font-size: 11px; font-weight: 800;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--larch-text); margin-bottom: 12px;
}
.staff-portal-cal-response-buttons {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
}
.staff-portal-btn--outline {
  background: white; color: var(--cedars);
  border: 1.5px solid var(--cedars);
}
.staff-portal-btn--outline:hover { background: var(--cedars); color: white; }
.staff-portal-btn--active {
  background: var(--larch); color: white;
  border-color: var(--larch);
}
.staff-portal-cal-clear {
  background: none; border: 0; padding: 8px 12px;
  font-size: 0.84rem; color: rgba(0,36,70, 0.55);
  text-decoration: underline; cursor: pointer;
  font-family: var(--body);
}
.staff-portal-cal-clear:hover { color: var(--cedars); }
.staff-portal-cal-note {
  font-size: 0.85rem; color: rgba(0,36,70, 0.6);
  margin: 12px 0 0;
}


/* ─── HARVEST ON MAIN · SPONSORS TIERED SHOWCASE ─────────────────────────
   Tiered sponsor section on /harvest-on-main/. Host gets a spotlight
   card; remaining tiers (Cultivator → Seed) use equal-grid layouts that
   get denser as the tier descends. */
.harvest-sponsors .harvest-sponsors-head { text-align: center; margin-bottom: 64px; }
.harvest-sponsors .harvest-sponsors-head .section-label {
  display: inline-block; color: var(--larch-text); margin-bottom: 14px;
}
.harvest-sponsors .harvest-sponsors-head h2 {
  font-family: var(--display); font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 500; line-height: 1.05; letter-spacing: -0.02em;
  color: var(--cedars); margin: 0 0 16px;
}
.harvest-sponsors .harvest-sponsors-head p {
  font-size: 1.05rem; line-height: 1.65; color: rgba(0,36,70, 0.7);
  max-width: 620px; margin: 0 auto;
}

.harvest-sponsors .tier { margin-bottom: 64px; }
.harvest-sponsors .tier:last-child { margin-bottom: 0; }
.harvest-sponsors .tier-label {
  display: block; text-align: center;
  font-family: var(--display); font-weight: 500;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.1; letter-spacing: -0.015em;
  color: var(--cedars);
  margin-bottom: 36px; padding-bottom: 20px;
  border-bottom: 1px solid rgba(0,36,70, 0.12);
  position: relative;
}
.harvest-sponsors .tier-label::after {
  content: ''; position: absolute;
  left: 50%; bottom: -1px; transform: translateX(-50%);
  width: 56px; height: 2px; background: var(--larch-text);
}
.harvest-sponsors .tier-host .tier-label {
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--larch); border-bottom-color: var(--larch);
}
.harvest-sponsors .tier-host .tier-label::after {
  background: var(--larch); width: 80px; height: 3px;
}

/* Host spotlight card */
.harvest-sponsors .sponsor-spotlight {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 48px 32px;
  background: white; border-radius: 6px;
  box-shadow: 0 12px 36px rgba(0,36,70, 0.08);
  max-width: 720px; margin: 0 auto;
}
.harvest-sponsors .sponsor-spotlight a,
.harvest-sponsors .sponsor-spotlight > div:first-child {
  display: block; text-decoration: none; color: inherit;
}
.harvest-sponsors .sponsor-spotlight .sponsor-logo {
  width: 320px; max-width: 100%; min-height: 180px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 28px;
}
.harvest-sponsors .sponsor-spotlight .sponsor-logo:empty,
.harvest-sponsors .sponsor-spotlight .sponsor-logo:not(:has(img)) {
  background: linear-gradient(135deg, #e8e2d4, #c9bfa8);
  border-radius: 4px;
}
.harvest-sponsors .sponsor-spotlight .sponsor-logo img {
  max-width: 100%; max-height: 180px; width: auto; height: auto; object-fit: contain;
}
.harvest-sponsors .sponsor-spotlight .sponsor-name {
  font-family: var(--display); font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 800; color: var(--cedars);
  margin-bottom: 8px; letter-spacing: -0.01em;
}
.harvest-sponsors .sponsor-spotlight .sponsor-blurb {
  font-size: 0.95rem; color: rgba(0,36,70, 0.65);
  max-width: 480px; line-height: 1.6;
}

/* Equal-grid tiers (Cultivator → Seed) */
.harvest-sponsors .sponsor-grid {
  display: grid; gap: 24px; align-items: stretch;
}
.harvest-sponsors .tier-cultivator .sponsor-grid { grid-template-columns: repeat(3, 1fr); max-width: 980px; margin: 0 auto; }
.harvest-sponsors .tier-cultivator .sponsor-card { padding: 36px 24px; }
.harvest-sponsors .tier-cultivator .sponsor-logo { height: 100px; }
.harvest-sponsors .tier-cultivator .sponsor-name { font-size: 1.15rem; }

.harvest-sponsors .tier-friend .sponsor-grid { grid-template-columns: repeat(4, 1fr); }
.harvest-sponsors .tier-friend .sponsor-card { padding: 26px 18px; }
.harvest-sponsors .tier-friend .sponsor-logo { height: 70px; }
.harvest-sponsors .tier-friend .sponsor-name { font-size: 1rem; }

.harvest-sponsors .tier-sprout .sponsor-grid { grid-template-columns: repeat(5, 1fr); gap: 18px; }
.harvest-sponsors .tier-sprout .sponsor-card { padding: 20px 14px; }
.harvest-sponsors .tier-sprout .sponsor-logo { height: 54px; }
.harvest-sponsors .tier-sprout .sponsor-name { font-size: 0.88rem; }

.harvest-sponsors .tier-seed .sponsor-grid { grid-template-columns: repeat(6, 1fr); gap: 14px; }
.harvest-sponsors .tier-seed .sponsor-card { padding: 14px 10px; }
.harvest-sponsors .tier-seed .sponsor-logo { height: 42px; }
.harvest-sponsors .tier-seed .sponsor-name { font-size: 0.78rem; line-height: 1.2; }

/* Shared sponsor card */
.harvest-sponsors .sponsor-card {
  background: white; border-radius: 4px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; text-decoration: none; color: inherit;
  box-shadow: 0 4px 14px rgba(0,36,70, 0.05);
  border: 1px solid rgba(0,36,70, 0.06);
  transition: transform 0.2s, box-shadow 0.2s;
}
.harvest-sponsors a.sponsor-card { cursor: pointer; }
.harvest-sponsors .sponsor-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,36,70, 0.10); }
.harvest-sponsors .sponsor-card .sponsor-logo {
  width: 100%;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.harvest-sponsors .sponsor-card .sponsor-logo:empty,
.harvest-sponsors .sponsor-card .sponsor-logo:not(:has(img)) {
  background: linear-gradient(135deg, #e8e2d4, #c9bfa8);
  border-radius: 3px;
}
.harvest-sponsors .sponsor-card .sponsor-logo img {
  max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;
}
.harvest-sponsors .sponsor-card .sponsor-name {
  font-family: var(--display); font-weight: 700;
  color: var(--cedars); line-height: 1.25;
}

/* Placeholder cards for empty tier slots ("This Could Be You" / "This Spot Is Yours") */
.harvest-sponsors .sponsor-card--placeholder,
.harvest-sponsors .sponsor-spotlight--placeholder {
  background: rgba(205, 148, 55, 0.06);
  border: 2px dashed rgba(205, 148, 55, 0.45);
  box-shadow: none;
  color: var(--larch-text);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, transform 0.2s;
}
.harvest-sponsors .sponsor-card--placeholder:hover,
.harvest-sponsors .sponsor-spotlight--placeholder:hover {
  background: rgba(205, 148, 55, 0.12);
  border-color: var(--larch);
  transform: translateY(-2px);
}
.harvest-sponsors .sponsor-placeholder-icon {
  font-family: var(--display);
  font-weight: 800;
  font-size: 1.8rem;
  color: var(--larch);
  margin-bottom: 6px;
  line-height: 1;
}
.harvest-sponsors .sponsor-card--placeholder .sponsor-name {
  color: var(--cedars);
  margin-bottom: 4px;
}
.harvest-sponsors .sponsor-placeholder-cta {
  font-family: var(--display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--larch);
  margin-top: 8px;
}
/* Host-tier placeholder uses the spotlight layout */
.harvest-sponsors .sponsor-spotlight--placeholder {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 48px 32px;
  border-radius: 6px;
  max-width: 720px; margin: 0 auto;
  cursor: pointer;
}
.harvest-sponsors .sponsor-spotlight--placeholder .sponsor-placeholder-icon {
  font-size: 3rem;
  margin-bottom: 18px;
}
.harvest-sponsors .sponsor-spotlight--placeholder .sponsor-name {
  font-family: var(--display);
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 800;
  color: var(--cedars);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}
.harvest-sponsors .sponsor-spotlight--placeholder .sponsor-blurb {
  font-size: 0.95rem;
  color: rgba(0,36,70, 0.7);
  max-width: 480px;
  line-height: 1.6;
  margin-bottom: 16px;
}
.harvest-sponsors .sponsor-spotlight--placeholder .sponsor-placeholder-cta {
  margin-top: 0;
  font-size: 0.78rem;
}

@media (max-width: 900px) {
  .harvest-sponsors .tier-cultivator .sponsor-grid { grid-template-columns: repeat(2, 1fr); max-width: none; }
  .harvest-sponsors .tier-friend .sponsor-grid { grid-template-columns: repeat(2, 1fr); }
  .harvest-sponsors .tier-sprout .sponsor-grid { grid-template-columns: repeat(3, 1fr); }
  .harvest-sponsors .tier-seed .sponsor-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 560px) {
  .harvest-sponsors .tier-cultivator .sponsor-grid,
  .harvest-sponsors .tier-friend .sponsor-grid { grid-template-columns: 1fr; }
  .harvest-sponsors .tier-sprout .sponsor-grid,
  .harvest-sponsors .tier-seed .sponsor-grid { grid-template-columns: repeat(2, 1fr); }
  /* A tier holding a single card (the placeholder) shouldn't sit half-width
     beside an empty cell — let it take the row. */
  .harvest-sponsors .sponsor-grid > :only-child { grid-column: 1 / -1; }
  .harvest-sponsors .sponsor-spotlight .sponsor-logo { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SINGLE STORY PAGE · editorial long-read template
   Body class: .is-story-page  +  .is-{dept}-page
   Template: single-mw_story.php
   ═══════════════════════════════════════════════════════════════════════════ */

.is-story-page .site-inner,
.is-story-page .content-sidebar-wrap,
.is-story-page .content { padding: 0; margin: 0; max-width: none; }
.is-story-page .entry { background: transparent; padding: 0; margin: 0; }

/* ─── HERO ─── */
/* Story pages reuse .prog-hero; only the background-image overlay is story-specific */
.story-hero-bg {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center;
  filter: saturate(0.85) contrast(1.05);
}
.story-hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(14,37,33,0.55) 0%, rgba(14,37,33,0.35) 40%, rgba(14,37,33,0.92) 100%);
}

/* ─── PULLQUOTE (inside prog-section--cream) ─── */
.story-pullquote-inner {
  display: grid; grid-template-columns: 1fr 2fr; gap: 60px; align-items: start;
}
.story-pullquote-text {
  font-weight: 500;
  font-size: clamp(28px, 3.6vw, 52px); line-height: 1.12; letter-spacing: -0.02em;
  color: #1e2d28; margin-bottom: 24px;
}
.story-pullquote-text em {
  font-style: italic;
  color: var(--dept-color, #2F6F63);
}
.story-pullquote-attrib {
  font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  color: rgba(0,0,0,0.4);
}

/* ─── BODY (inside prog-section--cream) ─── */
.story-body-inner { max-width: 680px; margin: 0 auto; }
.story-body-inner > p,
.story-body-inner p {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 18px; line-height: 1.85; color: #2e3a35;
  margin-bottom: 28px;
}
.story-body-inner > p:first-of-type::first-letter {
  font-family: 'Lexend Deca', sans-serif; font-weight: 500;
  font-size: 78px; line-height: 0.85;
  float: left; margin: 8px 14px 0 0;
  color: var(--cedars, #002446);
}
.story-body-inner p strong { color: var(--cedars, #002446); font-weight: 700; }
.story-body-inner h2,
.story-body-inner h3 {
  font-family: 'Lexend Deca', sans-serif; font-weight: 800;
  font-size: 26px; line-height: 1.25; letter-spacing: -0.01em;
  color: #1e2d28; margin: 48px 0 18px;
}
.story-body-inner ul,
.story-body-inner ol { margin: 0 0 28px 24px; }
.story-body-inner li {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 17px; line-height: 1.7; color: #2e3a35;
  margin-bottom: 10px;
}
.story-body-inner blockquote {
  border-left: 3px solid var(--dept-color, #2F6F63);
  padding: 4px 0 4px 20px; margin: 32px 0;
  font-family: 'Lexend Deca', sans-serif; font-weight: 700; font-style: italic;
  font-size: 22px; line-height: 1.5; color: var(--cedars, #002446);
}
/* Inline story photos (migrated tourism-grant project content) */
.story-body-inner .story-figure { margin: 36px 0; }
.story-body-inner .story-figure img { width: 100%; height: auto; display: block; border-radius: 4px; }
.story-body-inner .story-figure figcaption {
  font-family: 'Lexend Deca', sans-serif; font-size: 13px; line-height: 1.5;
  color: rgba(46,58,53,0.6); margin-top: 10px;
}
.story-body-inner .story-figure--pair {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
@media (max-width: 600px) {
  .story-body-inner .story-figure--pair { grid-template-columns: 1fr; }
}

/* ─── IMPACT STATS (inside prog-section--missions) ─── */
.story-impact-ghost {
  position: absolute; bottom: -4vw; left: -2vw;
  font-weight: 500;
  font-size: 20vw; line-height: 0.85;
  color: rgba(245,240,232,0.025); letter-spacing: -0.05em;
  pointer-events: none;
}
.story-impact-grid { display: grid; gap: 40px; }
.story-impact-grid--2up { grid-template-columns: repeat(2, 1fr); }
.story-impact-grid--3up { grid-template-columns: repeat(3, 1fr); }
.story-impact-grid--4up { grid-template-columns: repeat(4, 1fr); }
.story-impact-stat { padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.15); }
.story-impact-num {
  display: block; font-family: 'Lexend Deca', sans-serif; font-weight: 500;
  font-size: clamp(40px, 4.5vw, 64px); line-height: 1;
  color: var(--larch, #B7653A);
  margin-bottom: 14px; letter-spacing: -0.02em;
}
.story-impact-text {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 12px; font-weight: 500; letter-spacing: 1px;
  color: rgba(255,255,255,0.75); line-height: 1.5;
}

/* ─── RELATED (inside prog-section--cream) ─── */
.story-related-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px;
  max-width: 1160px; margin: 0 auto;
}
.related-card {
  display: block; background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  text-decoration: none; color: inherit;
  transition: transform 0.3s cubic-bezier(0.6,0.05,0.05,1), box-shadow 0.3s cubic-bezier(0.6,0.05,0.05,1);
}
.related-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(0,36,70,0.12);
}
.related-card-photo { aspect-ratio: 4 / 3; overflow: hidden; background: #ddd; }
.related-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.related-card-body { padding: 24px 26px 28px; }
.related-card-eyebrow {
  display: block;
  font-family: 'Lexend Deca', sans-serif;
  font-size: 9.5px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--dept-color, #2F6F63); margin-bottom: 10px;
}
.related-card-title {
  font-family: 'Lexend Deca', sans-serif; font-weight: 800;
  font-size: 20px; line-height: 1.25; letter-spacing: -0.01em;
  color: #1e2d28; margin: 0 0 12px;
}
.related-card-loc {
  font-family: 'Lexend Deca', sans-serif;
  font-size: 11px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase;
  color: rgba(0,0,0,0.4);
}

/* ─── responsive ─── */
@media (max-width: 900px) {
  .story-pullquote-inner { grid-template-columns: 1fr; gap: 24px; }
  .story-impact-grid--3up,
  .story-impact-grid--4up { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .story-related-grid { grid-template-columns: 1fr; }
  .story-body-inner > p:first-of-type::first-letter { font-size: 56px; }
}
@media (max-width: 560px) {
  .story-impact-grid--2up,
  .story-impact-grid--3up,
  .story-impact-grid--4up { grid-template-columns: 1fr; }
}

/* ═════════════════════════════════════════════════════════════════════════
   TOURISM GRANT PAGE · video, downloads, sponsor (migrated from
   ronantourismgrant.com)
   ═════════════════════════════════════════════════════════════════════════ */

.tg-video { max-width: 920px; margin: 0 auto; }
.tg-video iframe {
  width: 100%; aspect-ratio: 16 / 9; border: 0; display: block;
  border-radius: 6px; box-shadow: 0 10px 40px rgba(0,36,70,0.18);
}

.tg-downloads { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.tg-download-btn {
  background: var(--cedars); color: var(--cream);
  border: 1.5px solid var(--cedars);
}
.tg-download-btn:hover {
  background: var(--missions); border-color: var(--missions);
  border-width: 1.5px; color: var(--cream);
}

.tg-sponsor {
  display: grid; grid-template-columns: 280px 1fr; gap: 56px;
  align-items: center; max-width: 980px; margin: 0 auto;
}
.tg-sponsor-logo {
  background: var(--white); border-radius: 6px; padding: 32px 28px;
  display: flex; align-items: center; justify-content: center;
}
.tg-sponsor-logo img { max-width: 100%; height: auto; display: block; }
.tg-sponsor-body .section-label { color: var(--cedars); }
.tg-sponsor-body h2 {
  font-family: var(--display); font-weight: 800; letter-spacing: -0.01em;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem); color: var(--cedars); margin: 8px 0 14px;
}
.tg-sponsor-body p { font-size: 0.95rem; line-height: 1.75; color: rgba(0,17,38,0.7); margin: 0 0 10px; }
.tg-sponsor-link {
  display: inline-block; margin-top: 8px;
  font-family: var(--body); font-size: 0.85rem; font-weight: 700;
  color: var(--cedars); text-decoration: underline; text-underline-offset: 3px;
}
.tg-sponsor-link:hover { color: var(--missions); }

@media (max-width: 768px) {
  .tg-sponsor { grid-template-columns: 1fr; gap: 28px; }
  .tg-sponsor-logo { max-width: 320px; }
}

/* ─── Walkability comment-map embed ─────────────────────────────────────── */
.walk-map-embed {
  background: var(--white); border-radius: 6px; padding: 16px;
  min-height: 520px; margin-top: 40px;
  box-shadow: 0 10px 40px rgba(0,36,70,0.12);
}
.walk-map-embed iframe { width: 100%; border: 0; }

/* Story body links: match the editorial palette instead of browser blue. */
.story-body-inner a {
  color: var(--cedars, #002446);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(0,36,70,0.35);
  transition: color 0.15s, text-decoration-color 0.15s;
}
.story-body-inner a:hover {
  color: var(--dept-color, #2F6F63);
  text-decoration-color: currentColor;
}

/* Grids holding exactly four items: 2x2 (cards) or 4-up (stats) beats a 3+1
   orphan row. :has() scopes it to four-child grids only. */
.about-stat-band:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .about-stat-band:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .about-stat-band:has(> :nth-child(4):last-child) { grid-template-columns: 1fr; }
}
.prog-cards-grid:has(> .prog-card:nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); }

/* Card body links (services/landmark cards): larch on dark cards, cedars on
   the translucent-dark cards in wheat sections. Never browser blue. */
.prog-card a {
  color: var(--larch);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in srgb, var(--larch) 45%, transparent);
  transition: color 0.15s, text-decoration-color 0.15s;
}
.prog-card a:hover { color: var(--harvest); text-decoration-color: currentColor; }
.prog-section--wheat .prog-card a { color: var(--cedars); text-decoration-color: rgba(0,36,70,0.4); }
.prog-section--wheat .prog-card a:hover { color: var(--missions); }

/* A .btn inside a card is a CTA, not body copy. The .prog-card a rule above
   outranks .btn/.btn-white on specificity, which stripped the background and
   left only an underlined label, indented by the button's own padding so it
   read as misaligned against the card text. Restore the button, and anchor it
   to the card's bottom edge so CTAs line up across cards whose copy runs to
   different lengths. */
.prog-cards-grid .prog-card:has(.prog-card-cta) { display: flex; flex-direction: column; }
.prog-card .prog-card-cta { margin-top: auto; padding-top: 22px; }
.prog-card .prog-card-cta .btn {
  text-decoration: none;
  font-weight: 700;
}
.prog-card .prog-card-cta .btn-white { background: #fff; color: var(--cedars); }
.prog-card .prog-card-cta .btn-white:hover { background: var(--cream); color: var(--cedars); }

/* Service cards with a photo (Ronan Tourism landmark cards): image bleeds to
   the card edges above the text. */
.prog-card--photo { padding-top: 0; padding-left: 0; padding-right: 0; overflow: hidden; }
.prog-card--photo .prog-card-photo { margin: 0 0 20px; }
.prog-card--photo .prog-card-photo img {
  width: 100%; height: 200px; object-fit: cover; display: block;
}
.prog-card--photo h3, .prog-card--photo p { padding-left: 28px; padding-right: 28px; }
.prog-card--photo p:last-child { padding-bottom: 4px; }

/* ─── Photo-split extra block (text left, tilted photo pair right) ──────── */
.prog-split {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 72px; align-items: center;
}
.prog-split-text .section-label { display: block; margin-bottom: 14px; color: var(--larch-text); }
.prog-split-text h2 {
  font-family: var(--display); font-weight: 800; letter-spacing: -0.02em;
  font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.15;
  color: var(--cedars); margin: 0 0 18px;
}
.prog-split-body p { font-size: 1rem; line-height: 1.8; color: rgba(0,17,38,0.7); margin: 0 0 16px; }
.prog-split-body ul { list-style: none; margin: 26px 0 0; padding: 0; }
.prog-split-body li {
  display: flex; align-items: center; gap: 16px;
  font-size: 0.95rem; font-weight: 600; color: var(--cedars);
  padding: 9px 0;
}
/* Chip icons rotate by list position (mountain / compass / waves / eye),
   echoing the source design. Stroke color is --larch (#B7653A) baked into
   the data URIs — update both if the token ever changes. */
.prog-split-body li::before {
  content: ''; flex: 0 0 36px; width: 36px; height: 36px;
  border-radius: 9px; background-color: var(--white);
  background-repeat: no-repeat; background-position: center; background-size: 19px 19px;
  box-shadow: 0 2px 10px rgba(0,36,70,0.08);
}
.prog-split-body li:nth-child(4n+1)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CD9437' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19h18M5 19l5-10 4 7 2.5-3.5L20 19'/%3E%3C/svg%3E");
}
.prog-split-body li:nth-child(4n+2)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CD9437' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='3 11 22 2 13 21 11 13 3 11'/%3E%3C/svg%3E");
}
.prog-split-body li:nth-child(4n+3)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CD9437' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7c2-2 4-2 6 0s4 2 6 0 4-2 6 0M2 12c2-2 4-2 6 0s4 2 6 0 4-2 6 0M2 17c2-2 4-2 6 0s4 2 6 0 4-2 6 0'/%3E%3C/svg%3E");
}
.prog-split-body li:nth-child(4n+4)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CD9437' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
.prog-split-btn {
  display: inline-block; margin-top: 30px;
  background: var(--cedars); color: var(--cream);
  border: 1.5px solid var(--cedars);
}
.prog-split-btn:hover { background: var(--missions); border-color: var(--missions); border-width: 1.5px; color: var(--cream); }

.prog-split-photos {
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: center; padding: 36px 0 48px;
}
.prog-split-photo {
  width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
  border-radius: 20px; display: block;
  box-shadow: 0 18px 48px rgba(0,36,70,0.22);
}
.prog-split-photo--1 { transform: rotate(-4deg); position: relative; z-index: 1; }
.prog-split-photo--2 { transform: rotate(3deg) translateY(40px); margin-left: -18px; }

@media (max-width: 900px) {
  .prog-split { grid-template-columns: 1fr; gap: 28px; }
  .prog-split-photos { max-width: 460px; padding: 16px 0 56px; }
}

/* ─── Program-list rows with photos (e.g. Ronan Tourism events) ─────────── */
.prog-related-row--photo { grid-template-columns: 56px 176px 1fr auto; }
.prog-related-photo { display: block; border-radius: 10px; overflow: hidden; }
.prog-related-photo img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block;
  transition: transform 0.3s var(--ease);
}
.prog-related-row--photo:hover .prog-related-photo img { transform: scale(1.04); }
@media (max-width: 768px) {
  .prog-related-row--photo { grid-template-columns: 40px 80px 1fr auto; }
  .prog-related-photo img { aspect-ratio: 1 / 1; border-radius: 8px; }
}
@media (max-width: 768px) {
  /* Tall text beside a small photo: top-align so the thumb sits with the title. */
  .prog-related-row--photo { align-items: start; }
  .prog-related-row--photo .prog-related-num,
  .prog-related-row--photo .prog-related-arrow { margin-top: 6px; }
}

/* ─── Photo banner extra block (dimmed bg photo + frosted badge) ────────── */
.prog-banner {
  position: relative; border-radius: 24px; overflow: hidden;
  background-color: var(--cedars);
  background-size: cover; background-position: center;
  padding: clamp(48px, 6vw, 88px) clamp(28px, 5vw, 72px);
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 56px; align-items: center;
}
.prog-banner-scrim {
  position: absolute; inset: 0;
  background: color-mix(in srgb, var(--cedars) 78%, transparent);
}
.prog-banner-text { position: relative; z-index: 1; }
.prog-banner-text .section-label { display: block; color: var(--larch); margin-bottom: 16px; }
.prog-banner-text h2 {
  font-family: var(--display); font-weight: 800; letter-spacing: -0.02em;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.12;
  color: var(--white); margin: 0 0 18px;
}
.prog-banner-body p { font-size: 1rem; line-height: 1.8; color: rgba(255,255,255,0.78); margin: 0 0 14px; }
.prog-banner-body a { color: var(--cream); }
.prog-banner-btn {
  display: inline-block; margin-top: 22px;
  background: var(--larch); color: var(--cedars);
  border: 1.5px solid var(--larch); font-weight: 700;
}
.prog-banner-btn:hover { background: var(--harvest); border-color: var(--harvest); border-width: 1.5px; color: var(--cedars); }

.prog-banner-badge {
  position: relative; z-index: 1; justify-self: end;
  width: min(100%, 280px); padding: 44px 32px;
  border-radius: 18px; text-align: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.16);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.prog-banner-badge-icon {
  display: block; width: 52px; height: 52px; margin: 0 auto 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CD9437' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-6 9 6M4 9h16M5 9v9M9 12v6M12 12v6M15 12v6M19 9v9M3 21h18'/%3E%3C/svg%3E") center / contain no-repeat;
}
.prog-banner-badge-text {
  font-family: var(--body); font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,0.85); line-height: 1.9;
}

@media (max-width: 900px) {
  .prog-banner { grid-template-columns: 1fr; gap: 36px; }
  .prog-banner-badge { justify-self: start; }
}

/* ── Affiliations cards ───────────────────────────────────────────────────── */
.prog-affiliations-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
.prog-affiliation-card {
  background: #fff;
  padding: 40px 36px;
  display: flex; flex-direction: column;
}
.prog-affiliation-logo {
  margin-bottom: 24px;
  display: flex; justify-content: center;
}
.prog-affiliation-logo img {
  max-height: 115px; width: auto; object-fit: contain;
}
.prog-affiliation-card h3 {
  font-size: 1.15rem; font-weight: 800; letter-spacing: -0.01em;
  color: var(--cedars); margin-bottom: 12px;
}
.prog-affiliation-body {
  font-size: 0.92rem; line-height: 1.75; color: rgba(0,17,38,0.7);
}
.prog-affiliation-body p { margin: 0 0 12px; }
.prog-affiliation-body p:last-child { margin-bottom: 0; }
.prog-affiliation-link {
  margin-top: auto; padding-top: 20px;
  font-size: 0.82rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--dept-color, var(--larch-text)); text-decoration: none;
  transition: color 0.2s;
}
.prog-affiliation-link:hover { color: var(--cedars); }
@media (max-width: 700px) {
  .prog-affiliations-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SUCCESS STORIES launcher ([mw_success_stories]) — used on the News page.
   One featured story per department as equal, alternating image/text rows; each
   links to the story and to that department's /impact/ page.
   ═══════════════════════════════════════════════════════════════════════════ */
.home-stories { background: var(--cream); padding: 100px 10vw; position: relative; }
.home-stories::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: rgba(0,0,0,0.06); }
.home-stories-inner { max-width: 1160px; margin: 0 auto; }
.home-stories .prog-section-head { margin-bottom: 48px; }
.hs-features { display: flex; flex-direction: column; gap: clamp(48px, 6vw, 84px); }
.hs-feature { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.hs-feature--rev .hs-feature-photo { order: 2; }
.hs-feature-photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 2px; box-shadow: 0 18px 50px rgba(0,36,70,0.16); background: var(--hs-dept); }
.hs-feature-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s var(--ease); }
.hs-feature-photo:hover img { transform: scale(1.04); }
.hs-photo-fallback { display: block; width: 100%; height: 100%; background: var(--hs-dept); }
.hs-photo--logo { background: #fff; }
.hs-photo--logo img { object-fit: contain; padding: 12%; }
.hs-eyebrow { display: inline-block; font-family: var(--body); font-size: 9.5px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--cedars); border-left: 2px solid var(--hs-dept); padding-left: 12px; margin-bottom: 22px; }
.hs-quote { font-family: var(--display); font-size: clamp(22px, 2.4vw, 32px); font-weight: 500; line-height: 1.18; letter-spacing: -0.5px; color: #1e2d28; margin-bottom: 18px; }
.hs-quote em { font-style: italic; color: var(--larch-text); }
.hs-attrib { display: block; font-family: var(--body); font-size: 11px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(0,0,0,0.4); margin-bottom: 26px; }
.hs-feature-links { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.hs-link { display: inline-flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 12px; font-weight: 700; letter-spacing: 0.8px; color: var(--cedars); }
.hs-link--soft { color: var(--larch-text); border-bottom: 1px solid rgba(139,94,26,0.4); padding-bottom: 2px; }
.hs-link--soft:hover { color: var(--cedars); border-color: var(--cedars); }
.hs-arrow { display: inline-block; width: 24px; height: 1.5px; background: currentColor; position: relative; transition: width 0.3s var(--ease); }
.hs-arrow::after { content: ''; position: absolute; right: -1px; top: -3px; width: 6px; height: 6px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); }
.hs-link:hover .hs-arrow { width: 34px; }
@media (max-width: 860px) {
  .home-stories { padding: 72px 6vw; }
  .hs-feature { grid-template-columns: 1fr; gap: 24px; }
  .hs-feature--rev .hs-feature-photo { order: 0; }
}

/* ─── Annual Report flipbook (page-annual-report.php) ──────────────────────── */
.ar-flip-wrap { max-width: 1040px; margin: 8px auto 0; position: relative; }
.ar-flipbook { margin: 0 auto; }
.ar-flipbook .stf__parent { margin: 0 auto; }
.ar-flip-fallback { text-align: center; padding: 10px 0 0; }
.ar-flip-fallback img { max-width: 480px; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 12px 44px rgba(0,0,0,0.20); }
.ar-flip-fallback p { margin-top: 16px; color: rgba(0,17,38,0.7); font-size: 0.95rem; }
.ar-flip-fallback a { color: var(--larch-text); font-weight: 600; }
.ar-flip-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 26px; }
.ar-flip-btn {
  font-family: var(--body); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; padding: 9px 16px; border-radius: 3px; cursor: pointer;
  background: var(--cedars); color: var(--cream); border: none; text-decoration: none; line-height: 1; transition: background 0.15s;
}
.ar-flip-btn:hover { background: #0f2a22; }
.ar-flip-btn--dl { background: var(--larch); color: var(--cedars); }
.ar-flip-btn--dl:hover { background: #b8842f; }
.ar-flip-pageno { font-family: var(--body); font-size: 0.85rem; font-weight: 700; color: var(--cedars); min-width: 72px; text-align: center; }
.ar-flip-wrap:fullscreen { background: var(--cedars); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 28px; max-width: none; }
.ar-flip-wrap:fullscreen .ar-flipbook { max-width: 90vw; }
.ar-flip-wrap:fullscreen .ar-flip-pageno { color: var(--cream); }

/* ══════════════════════════════════════════════════════════════════════════
   MailerLite embed (Contact page, "Stay Connected" 01 card, wheat section).
   MailerLite injects its own <style> keyed on the wrapper id (#mlb2-<n>) with
   !important on the button, so a class selector cannot win even with !important.
   Match their id prefix ([id^="mlb2-"]) to get equal or higher specificity, and
   keep the loader button hidden (they hide it with an inline style; a display
   rule with !important on it would resurrect it).
   ══════════════════════════════════════════════════════════════════════════ */
.contact-list-form [id^="mlb2-"].ml-form-embedContainer,
.contact-list-form [id^="mlb2-"] .ml-form-embedWrapper,
.contact-list-form [id^="mlb2-"] .ml-form-embedBody,
.contact-list-form [id^="mlb2-"] .ml-form-successBody {
  background: transparent !important; padding: 0 !important; margin: 0 !important;
  width: 100% !important; max-width: none !important; border: 0 !important; box-shadow: none !important;
}
.contact-list-form [id^="mlb2-"] .ml-form-embedContent { display: none !important; }
.contact-list-form [id^="mlb2-"] .ml-form-fieldRow { margin: 0 0 14px !important; }
.contact-list-form [id^="mlb2-"] .ml-form-fieldRow.ml-last-item { margin-bottom: 18px !important; }
.contact-list-form [id^="mlb2-"] .ml-field-group { width: 100% !important; }
.contact-list-form #mlb2-45210793.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-fieldRow input.form-control,
.contact-list-form [id^="mlb2-"] .ml-form-embedBody input.form-control {
  width: 100% !important; font-family: var(--body) !important; font-size: 15px !important; line-height: 1.4 !important;
  padding: 13px 16px !important; border-radius: 3px !important; height: auto !important;
  background-color: var(--white) !important; border: 1px solid rgba(0,36,70,0.25) !important; color: var(--cedars) !important;
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04) !important; -webkit-appearance: none; appearance: none;
}
.contact-list-form [id^="mlb2-"] .ml-form-embedBody input.form-control::placeholder { color: rgba(0,36,70,0.45) !important; }
.contact-list-form [id^="mlb2-"] .ml-form-embedBody input.form-control:focus {
  outline: none !important; border-color: var(--larch) !important;
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04) !important;
}
.contact-list-form [id^="mlb2-"] .ml-form-embedBody .ml-form-embedSubmit { margin: 0 !important; }
/* Their rule: #mlb2-45210793.ml-form-embedContainer … button {background:#000 !important}. An ID
   beats any attribute selector, so we need an ID too. 45210793 is form d0whbT's wrapper id
   (stable per form). If the form is ever recreated in MailerLite, update the id here. */
.contact-list-form #mlb2-45210793.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button.primary,
.contact-list-form [id^="mlb2-"] .ml-form-embedBody .ml-form-embedSubmit button.primary {
  display: inline-flex !important; align-items: center !important; width: auto !important; height: auto !important;
  font-family: var(--body) !important; font-size: 14px !important; font-weight: 700 !important;
  letter-spacing: 0.08em !important; text-transform: uppercase !important; line-height: 1 !important;
  padding: 14px 28px !important; border-radius: 2px !important; border: 0 !important; cursor: pointer;
  background: var(--dept-color, var(--cedars)) !important; background-color: var(--dept-color, var(--cedars)) !important;
  color: #fff !important; transition: filter 0.15s;
}
.contact-list-form [id^="mlb2-"] .ml-form-embedBody .ml-form-embedSubmit button.primary:hover { filter: brightness(1.08); }
/* the loader button: only style it when MailerLite shows it; never force display */
.contact-list-form #mlb2-45210793.ml-form-embedContainer .ml-form-embedWrapper .ml-form-embedBody .ml-form-embedSubmit button.loading,
.contact-list-form [id^="mlb2-"] .ml-form-embedBody .ml-form-embedSubmit button.loading {
  width: auto !important; height: auto !important; padding: 14px 28px !important; border-radius: 2px !important; border: 0 !important;
  background: var(--dept-color, var(--cedars)) !important; background-color: var(--dept-color, var(--cedars)) !important; color: #fff !important;
}
.contact-list-form [id^="mlb2-"] .ml-form-successBody h4,
.contact-list-form [id^="mlb2-"] .ml-form-successContent h4 { font-family: var(--display) !important; font-size: 1.15rem !important; color: var(--cedars) !important; margin: 0 0 8px !important; }
.contact-list-form [id^="mlb2-"] .ml-form-successBody p,
.contact-list-form [id^="mlb2-"] .ml-form-successContent p { font-family: var(--body) !important; color: var(--cedars) !important; margin: 0 !important; }
.contact-list-form [id^="mlb2-"] .ml-error input.form-control { border-color: #b3261e !important; }
.contact-list-form [id^="mlb2-"] .ml-form-embedBody .ml-error-msg,
.contact-list-form [id^="mlb2-"] .label-description { font-family: var(--body) !important; color: var(--cedars) !important; }

/* ══════════════════════════════════════════════════════════════════════════
   Apply page: "What happens next" + paperwork checklist (page-loan-application.php)
   Sits below the gs- wizard on a cream section. Print = checklist only.
   ══════════════════════════════════════════════════════════════════════════ */
.la-prep .prog-section-head p { color: rgba(0,36,70,0.7); }
.la-prep-steps { grid-template-columns: repeat(3, 1fr); }
.la-prep .prog-step {
  background: var(--white);
  border-top: 3px solid var(--cedars);
  display: flex; flex-direction: column;
  box-shadow: 0 1px 2px rgba(0,36,70,0.06);
}
.la-prep .prog-step-num { color: var(--cedars); opacity: 0.25; }
.la-prep .prog-step h3   { color: var(--cedars); }
.la-prep .prog-step p    { color: rgba(0,36,70,0.72); }
.la-prep .prog-step .prog-card-cta { margin-top: auto; padding-top: 18px; }
.la-checklist {
  margin-top: 48px;
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.14);
  border-radius: 4px;
  padding: 36px 40px 32px;
}
.la-checklist-head {
  display: flex; flex-wrap: wrap; gap: 18px 24px;
  align-items: flex-end; justify-content: space-between;
  margin-bottom: 24px;
}
.la-checklist-head h3 { font-family: var(--display); font-size: 1.5rem; color: var(--cedars); margin: 6px 0 0; }
.la-checklist-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.la-checklist-list {
  list-style: none; margin: 0; padding: 0;
  font-family: var(--body); font-size: 1rem; line-height: 1.6; color: var(--cedars);
}
.la-checklist-list > li {
  position: relative; padding: 12px 0 12px 38px;
  border-top: 1px solid rgba(0,36,70,0.1);
}
.la-checklist-list > li::before {
  content: ""; position: absolute; left: 4px; top: 15px;
  width: 16px; height: 16px; border: 2px solid var(--cedars); border-radius: 3px; opacity: 0.6;
}
.la-checklist-list > li:first-child { border-top: 0; }
.la-checklist-list ul { list-style: none; margin: 10px 0 0; padding: 0; }
.la-checklist-list ul li { position: relative; padding: 6px 0 6px 26px; font-size: 0.95rem; color: rgba(0,36,70,0.8); }
.la-checklist-list ul li::before {
  content: ""; position: absolute; left: 2px; top: 11px;
  width: 12px; height: 12px; border: 2px solid var(--larch); border-radius: 2px; opacity: 0.8;
}
.la-checklist-list a { color: var(--larch-text, var(--larch)); font-weight: 600; }
.la-checklist-note { margin: 22px 0 0; font-family: var(--body); font-size: 0.9rem; color: rgba(0,36,70,0.65); }
.la-print-only { display: none; }
@media (max-width: 900px) {
  .la-prep-steps { grid-template-columns: 1fr; }
  .la-checklist { padding: 26px 22px 24px; }
}
@media print {
  body.is-loan-application-page * { visibility: hidden; }
  body.is-loan-application-page .la-checklist,
  body.is-loan-application-page .la-checklist * { visibility: visible; }
  body.is-loan-application-page .la-checklist {
    position: absolute; left: 0; top: 0; width: 100%;
    margin: 0; padding: 0; border: 0; box-shadow: none;
    opacity: 1 !important; transform: none !important;
  }
  body.is-loan-application-page .la-checklist-actions { display: none !important; }
  body.is-loan-application-page .la-print-only { display: block; font-family: var(--body); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #333; margin: 0 0 18px; }
  body.is-loan-application-page .la-checklist-list > li,
  body.is-loan-application-page .la-checklist-list ul li { color: #000; }
  body.is-loan-application-page .la-checklist-list > li::before,
  body.is-loan-application-page .la-checklist-list ul li::before { border-color: #000; opacity: 1; }
  body.is-loan-application-page .la-checklist-list a { color: #000; text-decoration: none; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Guided outline block (extra_blocks type "guide"): numbered sections with
   prompt lists, a notes area per section (plan-guide.js), print = guide only.
   ══════════════════════════════════════════════════════════════════════════ */
.prog-guide-head {
  display: flex; flex-wrap: wrap; gap: 18px 24px;
  align-items: flex-end; justify-content: space-between;
  margin-bottom: 14px;
}
.prog-guide-head h2 { margin: 6px 0 0; }
.prog-guide-tools { display: flex; flex-wrap: wrap; gap: 10px; }
.prog-guide-tools [hidden] { display: none !important; } /* .btn's inline-flex would otherwise beat the hidden attribute */
.prog-guide-note { font-family: var(--body); font-size: 0.9rem; color: rgba(0,36,70,0.65); margin: 0 0 32px; max-width: 70ch; }
.prog-guide-body { counter-reset: guide; max-width: 76ch; }
.prog-guide-body > h3 {
  counter-increment: guide;
  position: relative;
  font-family: var(--display); font-size: 1.45rem; line-height: 1.2; color: var(--cedars);
  margin: 0; padding: 34px 0 10px 64px;
  border-top: 1px solid rgba(0,36,70,0.14);
}
.prog-guide-body > h3:first-child { border-top: 0; padding-top: 0; }
.prog-guide-body > h3::before {
  content: counter(guide, decimal-leading-zero);
  position: absolute; left: 0; top: 30px;
  font-family: var(--display); font-size: 1.9rem; font-weight: 700; line-height: 1;
  color: var(--cedars); opacity: 0.22;
}
.prog-guide-body > h3:first-child::before { top: -4px; }
.prog-guide-body > p,
.prog-guide-body > ul { margin: 0 0 12px 64px; font-family: var(--body); font-size: 1rem; line-height: 1.65; color: rgba(0,36,70,0.85); }
.prog-guide-body > p > strong:first-child { color: var(--cedars); }
.prog-guide-body > ul { list-style: none; padding: 0; margin-bottom: 16px; }
.prog-guide-body > ul > li {
  position: relative; padding: 5px 0 5px 30px;
}
.prog-guide-body > ul > li::before {
  content: ""; position: absolute; left: 4px; top: 11px;
  width: 13px; height: 13px; border: 2px solid var(--cedars); border-radius: 3px; opacity: 0.55;
}
.guide-notes { margin: 6px 0 8px 64px; }
.guide-notes-label {
  display: block; font-family: var(--body); font-size: 10px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: var(--cedars); margin: 0 0 8px;
}
.guide-notes-input {
  width: 100%; min-height: 110px; resize: vertical;
  font-family: var(--body); font-size: 15px; line-height: 1.5; color: var(--cedars);
  padding: 13px 16px; border-radius: 3px;
  background: var(--white); border: 1px solid rgba(0,36,70,0.25);
  box-shadow: inset 0 1px 2px rgba(0,36,70,0.04);
  -webkit-appearance: none; appearance: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.guide-notes-input::placeholder { color: rgba(0,36,70,0.4); }
.guide-notes-input:focus {
  outline: none; border-color: var(--larch);
  box-shadow: 0 0 0 3px rgba(205,148,55,0.2), inset 0 1px 2px rgba(0,36,70,0.04);
}
.guide-notes-print, .prog-guide-print-only { display: none; }
@media (max-width: 720px) {
  .prog-guide-body > h3 { padding-left: 46px; font-size: 1.25rem; }
  .prog-guide-body > h3::before { font-size: 1.5rem; }
  .prog-guide-body > p, .prog-guide-body > ul, .guide-notes { margin-left: 0; }
}
@media print {
  body.has-plan-guide * { visibility: hidden; }
  body.has-plan-guide .prog-guide, body.has-plan-guide .prog-guide * { visibility: visible; }
  body.has-plan-guide .prog-guide {
    position: absolute; left: 0; top: 0; width: 100%; max-width: none;
    opacity: 1 !important; transform: none !important;
  }
  body.has-plan-guide .prog-guide .reveal { opacity: 1 !important; transform: none !important; }
  body.has-plan-guide .prog-guide-tools, body.has-plan-guide .prog-guide-note,
  body.has-plan-guide .guide-notes-input { display: none !important; }
  body.has-plan-guide .prog-guide-print-only { display: block; font-family: var(--body); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: #333; margin: 0 0 18px; }
  body.has-plan-guide .prog-guide-body { max-width: none; }
  body.has-plan-guide .prog-guide-body > h3 { break-after: avoid; page-break-after: avoid; padding: 20px 0 6px 48px; font-size: 1.2rem; }
  body.has-plan-guide .prog-guide-body > h3::before { top: 17px; font-size: 1.4rem; }
  body.has-plan-guide .prog-guide-body > p, body.has-plan-guide .prog-guide-body > ul { margin-left: 48px; font-size: 12.5px; margin-bottom: 8px; }
  body.has-plan-guide .prog-guide-body > ul > li { padding: 3px 0 3px 26px; }
  body.has-plan-guide .guide-notes { margin-left: 48px; }
  body.has-plan-guide .prog-guide-body > h3::before { opacity: 1; color: #000; }
  body.has-plan-guide .prog-guide-body > p, body.has-plan-guide .prog-guide-body > ul > li { color: #000; }
  body.has-plan-guide .prog-guide-body > ul > li::before { border-color: #000; opacity: 1; }
  body.has-plan-guide .guide-notes { break-inside: avoid; page-break-inside: avoid; }
  body.has-plan-guide .guide-notes-label { color: #000; }
  body.has-plan-guide .guide-notes-print {
    display: block; white-space: pre-wrap; font-family: var(--body); font-size: 12.5px; line-height: 1.5; color: #000;
    min-height: 64px; padding: 8px 10px; border: 1px solid #999; border-radius: 3px;
  }
}

/* ── Plan builder panel (plan-builder.js, below the guide tools) ─────────── */
.plan-build { margin: 0 0 32px; }
.plan-build-inner { background: var(--white); border: 1px solid rgba(0,36,70,0.14); border-top: 3px solid var(--larch); border-radius: 4px; padding: 30px 32px 26px; max-width: 76ch; }
.plan-build-head h3 { font-family: var(--display); font-size: 1.35rem; color: var(--cedars); margin: 6px 0 8px; }
.plan-build-head p { font-family: var(--body); color: rgba(0,36,70,0.72); margin: 0 0 20px; }
.plan-build-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.plan-build-field { display: block; }
.plan-build-field--wide { grid-column: 1 / -1; }
.plan-build-field span { display: block; font-family: var(--body); font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--cedars); margin: 0 0 8px; }
.plan-build-field input {
  width: 100%; font-family: var(--body); font-size: 15px; line-height: 1.4; padding: 12px 14px; border-radius: 3px;
  background: var(--white); border: 1px solid rgba(0,36,70,0.25); color: var(--cedars); box-shadow: inset 0 1px 2px rgba(0,36,70,0.04);
  -webkit-appearance: none; appearance: none;
}
.plan-build-field input:focus { outline: none; border-color: var(--larch); box-shadow: 0 0 0 3px rgba(205,148,55,0.2); }
.plan-build-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.plan-build-consent { grid-column: 1 / -1; display: flex; gap: 10px; align-items: flex-start; font-family: var(--body); font-size: 0.9rem; line-height: 1.5; color: rgba(0,36,70,0.8); }
.plan-build-consent input { margin-top: 4px; width: auto !important; flex: 0 0 auto; min-width: 0; }
.plan-build-consent a { color: var(--larch-text, var(--larch)); font-weight: 600; }
.plan-build-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.plan-build-error { grid-column: 1 / -1; margin: 0; font-family: var(--body); font-size: 0.92rem; color: #b3261e; }
.plan-build-error[hidden] { display: none; }
.plan-build-progress { padding: 6px 0 0; }
.plan-build-bar { height: 8px; border-radius: 4px; background: rgba(0,36,70,0.1); overflow: hidden; }
.plan-build-bar span { display: block; height: 100%; width: 4%; background: var(--larch); transition: width 0.6s ease; }
.plan-build-status { font-family: var(--display); font-size: 1.05rem; color: var(--cedars); margin: 14px 0 6px; }
.plan-build-small { font-family: var(--body); font-size: 0.85rem; color: rgba(0,36,70,0.6); margin: 0; }
@media (max-width: 720px) { .plan-build-form { grid-template-columns: 1fr; } .plan-build-inner { padding: 22px 18px 20px; } }

/* ── Plan builder v2: multi-step intake (plan-builder.js) ───────────────── */
.plan-intake .plan-build-inner { max-width: 82ch; }
.plan-steps { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; counter-reset: step; }
.plan-steps li { counter-increment: step; }
.plan-steps button { font-family: var(--body); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(0,36,70,0.55); background: none; border: 1px solid rgba(0,36,70,0.14); border-radius: 999px; padding: 6px 12px 6px 8px; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.plan-steps button::before { content: counter(step); display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(0,36,70,0.08); font-size: 11px; font-weight: 700; color: var(--cedars); }
.plan-steps .is-done button { color: var(--cedars); border-color: rgba(47,111,99,0.35); }
.plan-steps .is-done button::before { background: var(--flatwater, #2F6F63); color: #fff; content: "✓"; }
.plan-steps .is-current button { color: #fff; background: var(--cedars); border-color: var(--cedars); }
.plan-steps .is-current button::before { background: var(--larch); color: #fff; }
.plan-steps button[disabled] { cursor: default; opacity: .6; }
.plan-screen { display: grid; gap: 22px; }
.plan-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; padding-bottom: 6px; border-bottom: 1px solid rgba(0,36,70,0.1); margin-bottom: 4px; }
.plan-field-label { display: flex; align-items: baseline; gap: 10px; font-family: var(--display); font-size: 1.02rem; font-weight: 600; color: var(--cedars); margin: 0 0 6px; }
.plan-opt { font-family: var(--body); font-style: normal; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(0,36,70,0.45); }
.plan-help { display: block; font-family: var(--body); font-size: 0.88rem; color: rgba(0,36,70,0.62); margin: -2px 0 8px; }
.plan-field input[type="text"], .plan-field input[type="email"], .plan-field textarea, .plan-field select, .plan-contact input {
  width: 100%; font-family: var(--body); font-size: 1rem; color: var(--cedars); background: #fff; border: 1px solid rgba(0,36,70,0.22); border-radius: 3px; padding: 10px 12px; box-sizing: border-box; }
.plan-field textarea { resize: vertical; min-height: 96px; line-height: 1.5; }
.plan-field input:focus, .plan-field textarea:focus, .plan-field select:focus, .plan-contact input:focus { outline: none; border-color: var(--larch); box-shadow: 0 0 0 3px rgba(183,101,58,0.18); }
.plan-field input[disabled] { background: rgba(0,36,70,0.05); color: rgba(0,36,70,0.4); }
.plan-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.plan-inline input[type="text"] { max-width: 220px; }
.plan-inline select { max-width: 180px; }
.plan-prefix { font-family: var(--display); font-weight: 600; color: rgba(0,36,70,0.6); }
.plan-dk { font-family: var(--body); font-size: 0.9rem; color: rgba(0,36,70,0.7); display: inline-flex; align-items: center; gap: 6px; cursor: pointer; white-space: nowrap; }
.plan-dk input { accent-color: var(--larch); }
.plan-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.plan-choice { position: relative; cursor: pointer; }
.plan-choice input { position: absolute; opacity: 0; pointer-events: none; }
.plan-choice span { display: inline-block; font-family: var(--body); font-size: 0.95rem; color: var(--cedars); background: #fff; border: 1px solid rgba(0,36,70,0.22); border-radius: 3px; padding: 9px 14px; transition: var(--transition); }
.plan-choice:hover span { border-color: var(--cedars); }
.plan-choice.is-on span, .plan-choice input:checked + span { background: var(--cedars); color: #fff; border-color: var(--cedars); }
.plan-choice input:focus-visible + span { box-shadow: 0 0 0 3px rgba(183,101,58,0.3); }
.plan-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.plan-chip { position: relative; cursor: pointer; font-family: var(--body); font-size: 0.92rem; color: var(--cedars); background: #fff; border: 1px solid rgba(0,36,70,0.22); border-radius: 999px; padding: 7px 13px; transition: var(--transition); display: inline-flex; align-items: center; }
.plan-chip input { position: absolute; opacity: 0; pointer-events: none; }
.plan-chip:hover { border-color: var(--cedars); }
.plan-chip.is-on { background: var(--flatwater, #2F6F63); color: #fff; border-color: var(--flatwater, #2F6F63); }
.plan-chips--fill { margin-top: 8px; }
.plan-chips--fill .plan-chip { font-size: 0.85rem; padding: 5px 11px; }
.plan-chips--fill .plan-chip.is-on { background: var(--cedars); border-color: var(--cedars); }
.plan-other { margin-top: 8px; }
.plan-rows { display: grid; gap: 6px; }
.plan-rows-head, .plan-row { display: grid; grid-template-columns: 2fr 1fr 1fr 28px; gap: 8px; align-items: center; }
.plan-field--rows[data-field="startup"] .plan-rows-head, .plan-field--rows[data-field="startup"] .plan-row,
.plan-field--rows[data-field="monthly"] .plan-rows-head, .plan-field--rows[data-field="monthly"] .plan-row,
.plan-field--rows[data-field="competitors"] .plan-rows-head, .plan-field--rows[data-field="competitors"] .plan-row,
.plan-field--rows[data-field="suppliers"] .plan-rows-head, .plan-field--rows[data-field="suppliers"] .plan-row,
.plan-field--rows[data-field="before_launch"] .plan-rows-head, .plan-field--rows[data-field="before_launch"] .plan-row { grid-template-columns: 2fr 1fr 28px; }
.plan-rows-head span { font-family: var(--body); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(0,36,70,0.5); }
.plan-row input[type="text"] { padding: 8px 10px; font-size: 0.95rem; }
.plan-row-check { font-family: var(--body); font-size: 0.85rem; color: rgba(0,36,70,0.7); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.plan-row-check input { accent-color: var(--larch); }
.plan-row-x { background: none; border: 0; color: rgba(0,36,70,0.4); font-size: 20px; line-height: 1; cursor: pointer; padding: 0; }
.plan-row-x:hover { color: #b3261e; }
.plan-add { justify-self: start; background: none; border: 0; color: var(--larch-text, var(--larch)); font-family: var(--body); font-weight: 700; font-size: 0.9rem; cursor: pointer; padding: 8px 0 0; }
.plan-summary { background: var(--cream, #f5f0e8); border-left: 3px solid var(--larch); padding: 14px 18px; border-radius: 0 3px 3px 0; }
.plan-summary .section-label { display: block; margin-bottom: 4px; }
.plan-summary p { font-family: var(--body); color: var(--cedars); margin: 0; line-height: 1.55; }
.plan-intake .plan-build-actions { margin-top: 20px; align-items: center; }
.plan-open-link { font-family: var(--body); font-weight: 600; color: var(--cedars); margin-left: auto; }
.plan-intake .plan-build-small { margin-top: 10px; }
@media (max-width: 720px) {
  .plan-contact { grid-template-columns: 1fr; }
  .plan-rows-head { display: none; }
  .plan-row, .plan-field--rows .plan-row { grid-template-columns: 1fr 1fr; }
  .plan-row input:first-child { grid-column: 1 / -1; }
  .plan-inline input[type="text"] { max-width: none; flex: 1 1 160px; }
}

/* ── Builder section (builder on): centered column, form takes the full width ── */
.plan-builder-section .plan-builder-host { max-width: 940px; margin: 0 auto; }
.plan-builder-host .prog-guide-head { margin-bottom: 20px; align-items: flex-start; }
.plan-builder-host .prog-guide-head h2 { margin-top: 6px; }
.plan-builder-lede { font-family: var(--body); font-size: 1rem; line-height: 1.6; color: rgba(0,36,70,0.72); max-width: 62ch; margin: 12px 0 0; }
.plan-builder-lede a { color: var(--larch-text, var(--larch)); font-weight: 600; }
.plan-builder-host .plan-build { margin-bottom: 0; }
.plan-builder-host .plan-build-inner,
.plan-builder-host .plan-intake .plan-build-inner { max-width: none; }
.plan-builder-host .prog-guide-tools .btn { white-space: nowrap; }
@media (max-width: 900px) { .plan-builder-host .prog-guide-head { flex-direction: column; align-items: stretch; } }

/* ══════════════════════════════════════════════════════════════════════════
   Board votes (lib/board-votes.php) in the staff portal
   ══════════════════════════════════════════════════════════════════════════ */
.staff-portal-btn--ghost { background: transparent; color: var(--cedars); border: 1.5px solid rgba(0,36,70,0.35); }
.staff-portal-btn--ghost:hover { background: var(--cream); color: var(--cedars); }
.vote-badge { display: inline-block; font-family: var(--display); font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; background: rgba(0,36,70,0.08); color: var(--cedars); vertical-align: middle; }
.vote-badge--open { background: rgba(38,106,130,0.14); color: #1d5266; }
.vote-badge--passed { background: rgba(45,122,62,0.14); color: #1f5a2e; }
.vote-badge--failed { background: rgba(184,69,61,0.12); color: #8a322c; }
.vote-badge--draft { background: rgba(0,36,70,0.06); color: rgba(0,36,70,0.6); }
.vote-list h4, .vote-console h4 { font-family: var(--display); font-size: 0.8rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--larch-text); margin: 0 0 10px; }
.vote-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding: 12px 14px; border: 1px solid rgba(0,36,70,0.1); border-radius: 3px; margin-bottom: 8px; text-decoration: none; color: var(--cedars); background: #fff; transition: border-color .15s, background .15s; }
.vote-row:hover, .vote-row.is-open { border-color: var(--cedars); background: var(--cream); }
.vote-row-title { font-family: var(--display); font-weight: 700; font-size: 0.98rem; }
.vote-row-meta { font-size: 0.82rem; color: rgba(0,36,70,0.7); }
.vote-detail { position: relative; border: 1.5px solid var(--cedars); border-radius: 4px; padding: 22px 24px; margin: 0 0 24px; background: #fff; }
.vote-detail-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 12px; }
.vote-detail-head h3 { font-family: var(--display); font-size: 1.25rem; font-weight: 800; color: var(--cedars); margin: 6px 0 4px; }
.vote-detail-meta { font-size: 0.85rem; color: rgba(0,36,70,0.65); margin: 0; }
.vote-close-x { font-size: 26px; line-height: 1; color: rgba(0,36,70,0.4); text-decoration: none; }
.vote-motion { font-size: 1rem; line-height: 1.6; color: var(--cedars); border-left: 3px solid var(--larch); padding: 6px 16px; background: rgba(216,206,163,0.18); margin: 0 0 14px; }
.vote-motion p:last-child { margin-bottom: 0; }
.vote-attachment { font-size: 0.9rem; margin: 0 0 14px; }
.vote-attachment a { color: var(--larch-text); font-weight: 700; }
.vote-ballot { margin: 18px 0 8px; padding-top: 16px; border-top: 1px solid rgba(0,36,70,0.1); }
.vote-choices { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.vote-choice { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1.5px solid rgba(0,36,70,0.25); border-radius: 3px; font-family: var(--display); font-weight: 700; font-size: 0.95rem; color: var(--cedars); cursor: pointer; background: #fff; }
.vote-choice:has(input:checked), .vote-choice.is-selected { border-color: var(--cedars); background: var(--cedars); color: #fff; }
.vote-choice input { accent-color: var(--larch); }
.vote-comment { display: block; margin-bottom: 12px; }
.vote-comment span { display: block; font-family: var(--display); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--cedars); margin-bottom: 6px; }
.vote-comment textarea, .vote-new textarea, .vote-new input[type="text"], .vote-new input[type="datetime-local"], .vote-new select, .vote-invite input { width: 100%; font-family: var(--body); font-size: 15px; padding: 10px 12px; border: 1px solid rgba(0,36,70,0.25); border-radius: 3px; background: #fff; color: var(--cedars); }
.vote-ballot-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.vote-ballot-actions .staff-portal-btn { margin-top: 0; }
.vote-cast-note { font-size: 0.88rem; color: rgba(0,36,70,0.7); }
.vote-tally { margin: 16px 0 6px; padding-top: 14px; border-top: 1px solid rgba(0,36,70,0.1); }
.vote-tally-row { display: grid; grid-template-columns: 110px 1fr 36px; align-items: center; gap: 12px; margin-bottom: 6px; font-size: 0.92rem; }
.vote-tally-bar { height: 10px; background: rgba(0,36,70,0.08); border-radius: 5px; overflow: hidden; }
.vote-tally-bar span { display: block; height: 100%; background: var(--azure, #266A82); }
.vote-tally-n { text-align: right; font-family: var(--display); font-weight: 800; }
.vote-tally-foot { font-size: 0.85rem; color: rgba(0,36,70,0.7); margin: 8px 0 0; }
.vote-record { margin-top: 14px; }
.vote-record summary { cursor: pointer; font-family: var(--display); font-weight: 700; font-size: 0.85rem; color: var(--cedars); }
.vote-record-table { width: 100%; border-collapse: collapse; font-size: 0.88rem; margin: 10px 0; }
.vote-record-table th { text-align: left; font-family: var(--display); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(0,36,70,0.6); padding: 6px 8px; border-bottom: 1px solid rgba(0,36,70,0.15); }
.vote-record-table td { padding: 8px; border-bottom: 1px solid rgba(0,36,70,0.08); vertical-align: top; }
.vote-record-actions { margin: 6px 0 0; }
.vote-record-actions .staff-portal-btn { margin-top: 0; }
.vote-admin-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(0,36,70,0.1); }
.vote-admin-actions .staff-portal-btn { margin-top: 0; }
.vote-console { margin-top: 28px; padding-top: 22px; border-top: 2px solid rgba(0,36,70,0.1); }
.vote-console-note { font-size: 0.9rem; color: #8a322c; margin: 0 0 12px; }
.vote-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.vote-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
.vote-voters { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px 14px; padding: 10px 12px; border: 1px solid rgba(0,36,70,0.15); border-radius: 3px; background: #fff; }
.vote-voters label, .vote-check { display: flex; align-items: center; gap: 8px; font-size: 0.92rem; font-family: var(--body); color: var(--cedars); cursor: pointer; }
.vote-voters small, .vote-members small { color: rgba(0,36,70,0.55); }
.vote-invite { margin-top: 10px; }
.vote-link-btn { background: none; border: 0; color: #8a322c; font-family: var(--body); font-size: 0.85rem; cursor: pointer; padding: 0; text-decoration: underline; }
@media (max-width: 700px) { .vote-grid, .vote-grid--3 { grid-template-columns: 1fr; } .vote-tally-row { grid-template-columns: 90px 1fr 30px; } }

/* ─── Event card restyle (Oct 2026): matches the event page's Event Details panel.
   White panel, labelled Time / Where instead of emoji icons, real buttons, square corners. */
.event-card {
  grid-template-columns: 104px 1fr;
  gap: 40px;
  padding: 36px 40px;
  background: var(--white);
  border: 1px solid rgba(0,36,70,0.1);
  border-left: 3px solid var(--larch);
  border-radius: 0;
}
.event-card:hover { border-left-color: var(--cedars); }
.prog-section--wheat .event-card { background: var(--white); }
.event-card-date { padding: 18px 10px 16px; gap: 4px; }
.event-date-month { font-size: 11px; }
.event-date-day { font-size: 2.6rem; }
.event-date-year { font-size: 11px; color: rgba(245,240,232,0.5); }
.event-card-body { gap: 14px; padding: 0; }
.event-card-title { font-size: 1.6rem; font-weight: 500; letter-spacing: -0.4px; }
.event-card-excerpt { order: 1; font-size: 1rem; line-height: 1.6; color: rgba(0,36,70,0.7); }
.event-card-meta { order: 2; gap: 12px 40px; align-items: flex-start; padding-top: 14px; border-top: 1px solid rgba(0,36,70,0.08); }
.event-card-dates,
.event-card-time,
.event-card-location {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--cedars);
}
.event-card-dates::before,
.event-card-time::before,
.event-card-location::before {
  font-family: var(--body);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(0,36,70,0.5);
}
.event-card-dates::before { content: 'Dates'; }
.event-card-time::before { content: 'Time'; }
.event-card-location::before { content: 'Where'; }
.event-card-actions { order: 3; gap: 12px; margin-top: 6px; }
.event-card-actions .btn { padding: 12px 24px; font-size: 13px; border-radius: 0; }
@media (max-width: 700px) {
  .event-card { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px; }
  .event-card-date { flex-direction: row; justify-self: start; gap: 10px; padding: 10px 16px; align-items: baseline; }
  .event-date-day { font-size: 1.6rem; }
  .event-card-title { font-size: 1.35rem; }
  .event-card-actions .btn { flex: 1 1 auto; justify-content: center; }
}
