/* ============================================================
   COHF — Components
   ============================================================ */

/* ---- Buttons ------------------------------------------------- */
.btn {
  --btn-bg: transparent;
  --btn-fg: var(--text);
  --btn-bd: currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 3rem;
  padding: 0.85rem 1.6rem;
  background: var(--btn-bg);
  color: var(--btn-fg);
  border: 1px solid var(--btn-bd);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease),
              border-color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn--primary { --btn-bg: var(--primary); --btn-fg: #fff; --btn-bd: var(--primary); }
.btn--primary:hover { --btn-bg: var(--primary-hover); --btn-bd: var(--primary-hover); color: #fff; }

.btn--secondary { --btn-bg: transparent; --btn-fg: var(--primary); --btn-bd: var(--primary); }
.btn--secondary:hover { --btn-bg: var(--primary); --btn-fg: #fff; }

.btn--accent { --btn-bg: var(--accent); --btn-fg: var(--c-charcoal); --btn-bd: var(--accent); }
.btn--accent:hover { --btn-bg: var(--c-gold-600); --btn-bd: var(--c-gold-600); color: #fff; }

.btn--ghost-invert { --btn-bg: transparent; --btn-fg: #fff; --btn-bd: rgba(255,255,255,0.5); }
.btn--ghost-invert:hover { --btn-bg: #fff; --btn-fg: var(--c-forest-800); --btn-bd: #fff; }

.btn--sm { min-height: 2.5rem; padding: 0.55rem 1.1rem; }

/* Quiet text link with arrow — used for "Explore our impact" style links */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fs-small);
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--primary);
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.15rem;
}
.link-arrow::after { content: "\2192"; transition: transform var(--dur) var(--ease); }
.link-arrow:hover::after { transform: translateX(0.28rem); }
.section--deep .link-arrow { color: var(--c-gold-300); }

/* ---- Site header --------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(252, 250, 246, 0.92);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.site-header.is-stuck { border-bottom-color: var(--rule); box-shadow: var(--shadow-sm); }

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  min-height: var(--header-h);
}

.site-brand { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; }
.site-brand img { max-height: 3rem; width: auto; }
.site-brand__mark { flex: none; }
.site-brand__text {
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--c-forest-800);
  text-decoration: none;
}
.site-brand__text span {
  display: block;
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--secondary);
  margin-top: 0.22rem;
}

.primary-nav ul { display: flex; align-items: center; gap: clamp(0.6rem, 1.3vw, 1.5rem); list-style: none; margin: 0; padding: 0; }
.primary-nav a {
  display: inline-block;
  padding: 0.5rem 0.1rem;
  font-size: 0.86rem;
  font-weight: 550;
  letter-spacing: 0.02em;
  color: var(--text);
  text-decoration: none;
  position: relative;
}
.primary-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0.15rem;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
.primary-nav a:hover::after,
.primary-nav .current-menu-item > a::after,
.primary-nav .current_page_ancestor > a::after { transform: scaleX(1); }
.primary-nav .current-menu-item > a { color: var(--c-forest-800); }

.header-actions { display: flex; align-items: center; gap: var(--space-sm); }

.nav-toggle {
  display: none;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  padding: 0.5rem 0.9rem;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-forest-800);
  cursor: pointer;
}
.nav-toggle__bars { display: grid; gap: 4px; width: 18px; }
.nav-toggle__bars span { display: block; height: 2px; background: currentColor; transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Mobile navigation panel */
.mobile-nav {
  position: fixed;
  inset: var(--header-h) 0 0 0;
  z-index: 99;
  background: var(--c-forest-800);
  color: var(--text-invert);
  padding: var(--space-xl) var(--gutter) var(--space-3xl);
  overflow-y: auto;
  transform: translateY(-8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav > nav > ul > li { border-bottom: 1px solid rgba(255,255,255,0.14); }
.mobile-nav a {
  display: block;
  padding: 1rem 0;
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: #fff;
  text-decoration: none;
}
.mobile-nav__actions { display: grid; gap: var(--space-sm); margin-top: var(--space-xl); }
.mobile-nav__meta { margin-top: var(--space-xl); font-size: var(--fs-small); color: rgba(244,241,233,0.7); }

@media (max-width: 63.9375em) {
  .primary-nav, .header-actions .btn { display: none; }
  .nav-toggle { display: inline-flex; }
}
body.nav-open { overflow: hidden; }

/* Subtle sticky mobile CTA */
.mobile-cta-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 90;
  display: none;
  gap: 1px;
  background: var(--rule);
  border-top: 1px solid var(--rule);
  transform: translateY(110%);
  transition: transform var(--dur) var(--ease);
}
.mobile-cta-bar.is-visible { transform: none; }
.mobile-cta-bar a {
  flex: 1;
  padding: 0.85rem 0.5rem;
  background: var(--c-warm-white);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: var(--c-forest-800);
}
.mobile-cta-bar a.is-primary { background: var(--primary); color: #fff; }
@media (max-width: 47.9375em) {
  .mobile-cta-bar { display: flex; }
  body { padding-bottom: 0; }
}

/* ---- Cards (editorial, square-ish, restrained) ---------------- */
.card {
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.card:hover { border-color: var(--c-sage-300); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--c-sage-100); }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease); }
.card:hover .card__media img { transform: scale(1.035); }
.card__body { display: flex; flex-direction: column; gap: var(--space-sm); padding: var(--space-lg); flex: 1; }
.card__kicker {
  font-size: var(--fs-eyebrow);
  font-weight: 650;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--secondary);
}
.card__title { font-size: var(--fs-h4); }
.card__title a { color: inherit; text-decoration: none; }
.card__title a:hover { color: var(--primary); }
.card__text { font-size: var(--fs-small); color: var(--text-soft); }
.card__foot { margin-top: auto; padding-top: var(--space-sm); }

/* Placeholder marker for images awaiting real Foundation photography */
.media-placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  background:
    linear-gradient(135deg, var(--c-sage-100) 0%, var(--c-cream) 55%, var(--c-gold-100) 100%);
  color: var(--c-forest-700);
  text-align: center;
  padding: var(--space-md);
}
.media-placeholder span {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.75;
}

/* ---- Programme index (editorial rows, not 12 identical cards) -- */
.programme-index { border-top: 1px solid var(--rule); }
.programme-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-md) var(--space-lg);
  align-items: start;
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: inherit;
  transition: background-color var(--dur) var(--ease);
}
.programme-row:hover { background: rgba(29, 70, 52, 0.035); }
.programme-row__num {
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--secondary);
  padding-top: 0.35rem;
  min-width: 2.2rem;
}
.programme-row__title { font-size: var(--fs-h3); transition: color var(--dur) var(--ease); }
.programme-row:hover .programme-row__title { color: var(--primary); }
.programme-row__purpose { font-size: var(--fs-small); color: var(--text-soft); max-width: 58ch; margin-top: var(--space-xs); }
.programme-row__cue {
  align-self: center;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--primary);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.programme-row:hover .programme-row__cue,
.programme-row:focus-visible .programme-row__cue { opacity: 1; transform: none; }
@media (min-width: 60em) {
  .programme-row { grid-template-columns: 3rem 1fr auto; align-items: center; }
}

/* Filter bar */
.filter-bar { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-xl); }
.filter-bar button {
  min-height: 2.5rem;
  padding: 0.45rem 1rem;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: 999px;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-soft);
  cursor: pointer;
  transition: all var(--dur) var(--ease);
}
.filter-bar button:hover { border-color: var(--primary); color: var(--primary); }
.filter-bar button[aria-pressed="true"] { background: var(--primary); border-color: var(--primary); color: #fff; }

/* ---- Impact figures ------------------------------------------- */
.impact-grid { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
@media (min-width: 40em)  { .impact-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62em)  { .impact-grid { grid-template-columns: repeat(4, 1fr); } }
.impact-card { background: var(--surface); padding: var(--space-xl) var(--space-lg); display: flex; flex-direction: column; gap: var(--space-xs); }
.section--cream .impact-card { background: var(--c-warm-white); }
.impact-card__figure {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 1.6rem + 2.6vw, 3.6rem);
  font-weight: 500;
  line-height: 1;
  color: var(--c-forest-700);
  letter-spacing: -0.03em;
}
.impact-card__figure .prefix { font-size: 0.5em; color: var(--secondary); vertical-align: 0.35em; margin-right: 0.12em; }
.impact-card__label { font-size: var(--fs-small); font-weight: 600; color: var(--text); }
.impact-card__note { font-size: 0.78rem; color: var(--text-soft); }
.impact-disclaimer {
  font-size: 0.82rem;
  color: var(--text-soft);
  border-left: 2px solid var(--accent);
  padding-left: var(--space-md);
  max-width: var(--measure);
}

/* ---- Approach journey ----------------------------------------- */
.journey { counter-reset: step; }
.journey__track { display: grid; gap: 1px; background: var(--rule); border-block: 1px solid var(--rule); }
@media (min-width: 48em) { .journey__track { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 72em) { .journey__track { grid-template-columns: repeat(4, 1fr); } }
.journey__step {
  position: relative;
  background: var(--c-warm-white);
  padding: var(--space-xl) var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  transition: background-color var(--dur) var(--ease);
}
.journey__step:hover, .journey__step:focus-within { background: var(--c-cream); }
.journey__step::before {
  content: "";
  position: absolute;
  inset-inline: 0; top: 0;
  height: 3px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-slow) var(--ease);
}
.journey__step.is-inview::before { transform: scaleX(1); }
.journey__num {
  font-family: var(--font-display);
  font-size: 0.9rem;
  color: var(--secondary);
  letter-spacing: 0.08em;
}
.journey__title { font-size: 1.08rem; text-transform: uppercase; letter-spacing: 0.04em; font-family: var(--font-body); font-weight: 700; }
.journey__text { font-size: var(--fs-small); color: var(--text-soft); }

/* ---- Timeline (horizontal desktop / vertical mobile) ----------- */
.timeline { position: relative; }
.timeline__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-xl); }
.timeline__item { position: relative; padding-left: 2.25rem; }
.timeline__item::before {
  content: "";
  position: absolute;
  left: 0.42rem; top: 0.55rem; bottom: -2.25rem;
  width: 1px;
  background: var(--c-sage-300);
}
.timeline__item:last-child::before { display: none; }
.timeline__item::after {
  content: "";
  position: absolute;
  left: 0; top: 0.4rem;
  width: 0.9rem; height: 0.9rem;
  border-radius: 50%;
  background: var(--c-warm-white);
  border: 2px solid var(--primary);
}
.timeline__item.is-inview::after { background: var(--accent); border-color: var(--accent); }
.timeline__year { font-family: var(--font-display); font-size: 1.5rem; color: var(--c-forest-700); }
.timeline__theme {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--secondary); margin-top: 0.2rem;
}
.timeline__text { font-size: var(--fs-small); color: var(--text-soft); margin-top: var(--space-sm); max-width: 44ch; }

@media (min-width: 62em) {
  .timeline__list { grid-template-columns: repeat(5, 1fr); gap: var(--space-lg); }
  .timeline__item { padding-left: 0; padding-top: 2.5rem; }
  .timeline__item::before { left: 0.45rem; right: -1.5rem; top: 0.45rem; bottom: auto; width: auto; height: 1px; }
  .timeline__item:last-child::before { display: block; right: 0; }
  .timeline__item::after { top: 0; left: 0; }
}
.section--deep .timeline__item::after { background: var(--c-forest-800); }
.section--deep .timeline__year { color: #fff; }
.section--deep .timeline__text { color: rgba(244,241,233,0.78); }
.section--deep .timeline__item::before { background: rgba(255,255,255,0.28); }

/* ---- Theory of change ----------------------------------------- */
.toc-flow { display: grid; gap: var(--space-md); }
.toc-step {
  display: grid;
  grid-template-columns: minmax(8rem, 12rem) 1fr;
  gap: var(--space-md) var(--space-lg);
  align-items: baseline;
  padding: var(--space-lg);
  background: var(--surface);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--c-sage-300);
}
.toc-step:nth-child(1) { border-left-color: var(--c-terracotta-600); }
.toc-step:nth-child(2) { border-left-color: var(--c-terracotta-400); }
.toc-step:nth-child(3) { border-left-color: var(--c-gold-500); }
.toc-step:nth-child(4) { border-left-color: var(--c-gold-300); }
.toc-step:nth-child(5) { border-left-color: var(--c-forest-500); }
.toc-step:nth-child(6) { border-left-color: var(--c-forest-600); }
.toc-step:nth-child(7) { border-left-color: var(--c-forest-700); }
.toc-step__level {
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--c-forest-800);
}
.toc-step__text { font-size: var(--fs-small); color: var(--text-soft); }
@media (max-width: 40em) { .toc-step { grid-template-columns: 1fr; } }

/* ---- Leadership ------------------------------------------------ */
.leader-card { display: flex; flex-direction: column; gap: var(--space-md); }
.leader-card__media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-sage-100); border-radius: var(--radius-sm); }
.leader-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.95); transition: transform var(--dur-slow) var(--ease); }
.leader-card:hover .leader-card__media img { transform: scale(1.03); }
.leader-card__name { font-size: 1.1rem; }
.leader-card__role { font-size: 0.78rem; font-weight: 650; letter-spacing: 0.1em; text-transform: uppercase; color: var(--secondary); margin-top: 0.15rem; }
.leader-card__bio { font-size: var(--fs-small); color: var(--text-soft); margin-top: var(--space-sm); }

/* ---- Quote / story ---------------------------------------------- */
.pullquote {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 1rem + 1.4vw, 2rem);
  line-height: 1.34;
  color: var(--c-forest-800);
  max-width: 24ch;
}
.pullquote cite { display: block; margin-top: var(--space-md); font-family: var(--font-body); font-size: 0.85rem; font-style: normal; color: var(--text-soft); letter-spacing: 0.05em; }

.story-meta { display: flex; flex-wrap: wrap; gap: var(--space-md); font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-soft); }
.story-meta span { display: inline-flex; gap: 0.4rem; }
.story-meta strong { color: var(--c-forest-800); font-weight: 650; }

.story-stages { display: grid; gap: var(--space-lg); }
@media (min-width: 55em) { .story-stages { grid-template-columns: repeat(3, 1fr); } }
.story-stage { border-top: 2px solid var(--rule); padding-top: var(--space-md); }
.story-stage:nth-child(1) { border-top-color: var(--c-terracotta-600); }
.story-stage:nth-child(2) { border-top-color: var(--c-gold-500); }
.story-stage:nth-child(3) { border-top-color: var(--c-forest-600); }
.story-stage h3 { font-family: var(--font-body); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--text-soft); }
.story-stage p { font-size: var(--fs-small); margin-top: var(--space-sm); }

/* ---- CTA band ---------------------------------------------------- */
.cohf-cta {
  position: relative;
  background: var(--c-forest-800);
  color: var(--text-invert);
  overflow: hidden;
}
.cohf-cta::after {
  content: "";
  position: absolute;
  right: -12%; top: -40%;
  width: 46rem; height: 46rem;
  background: radial-gradient(circle at center, rgba(217,162,39,0.18) 0%, transparent 62%);
  pointer-events: none;
}
.cohf-cta__inner { position: relative; z-index: 1; display: grid; gap: var(--space-xl); align-items: center; }
@media (min-width: 62em) { .cohf-cta__inner { grid-template-columns: 1.25fr 0.75fr; } }
.cohf-cta__title { font-size: var(--fs-h2); color: #fff; }
.cohf-cta__text { color: rgba(244,241,233,0.84); max-width: 52ch; margin-top: var(--space-md); }
.cohf-cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
@media (min-width: 62em) { .cohf-cta__actions { justify-content: flex-end; } }

/* ---- Forms -------------------------------------------------------- */
.cohf-form { display: grid; gap: var(--space-lg); max-width: 40rem; }
.field { display: grid; gap: 0.4rem; }
.field > label { font-size: var(--fs-small); font-weight: 650; color: var(--c-forest-800); }
.field .hint { font-size: 0.78rem; color: var(--text-soft); }
.field .required { color: var(--secondary); }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="search"], input[type="number"], select, textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 0.9rem;
  background: var(--surface);
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  font: inherit;
  font-size: var(--fs-small);
  color: var(--text);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
textarea { min-height: 9rem; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); }
.form-notice { padding: var(--space-md) var(--space-lg); border-left: 3px solid var(--accent); background: var(--c-gold-100); font-size: var(--fs-small); }
.form-notice--error { border-left-color: var(--c-terracotta-600); background: var(--c-terracotta-100); }
.form-notice--success { border-left-color: var(--c-forest-500); background: var(--c-sage-100); }
.cohf-honeypot { position: absolute !important; left: -9999px; }

.search-form__row { display: flex; gap: var(--space-xs); }
.search-form__label { font-size: var(--fs-small); font-weight: 600; display: block; margin-bottom: 0.35rem; }

/* ---- Resources ------------------------------------------------------ */
.resource-row {
  display: grid;
  gap: var(--space-sm) var(--space-lg);
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--rule);
}
.resource-row__type { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--secondary); }
.resource-row__title { font-size: var(--fs-h4); margin-top: 0.2rem; }
.resource-row__meta { font-size: 0.8rem; color: var(--text-soft); margin-top: 0.3rem; }
@media (max-width: 40em) { .resource-row { grid-template-columns: 1fr; } }

/* ---- Accountability pillars ------------------------------------------ */
.pillars { display: grid; gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
@media (min-width: 45em) { .pillars { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 68em) { .pillars { grid-template-columns: repeat(3, 1fr); } }
.pillar { background: var(--surface); padding: var(--space-xl) var(--space-lg); }
.section--cream .pillar { background: var(--c-warm-white); }
.pillar h3 { font-family: var(--font-body); font-size: 0.86rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-forest-800); }
.pillar p { font-size: var(--fs-small); color: var(--text-soft); margin-top: var(--space-sm); }

/* ---- Breadcrumbs ------------------------------------------------------ */
.breadcrumbs { font-size: 0.78rem; color: var(--text-soft); letter-spacing: 0.04em; }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; }
.breadcrumbs li + li::before { content: "/"; margin-right: 0.45rem; opacity: 0.5; }
.breadcrumbs a { color: inherit; }

/* ---- Pagination -------------------------------------------------------- */
.pagination { margin-top: var(--space-2xl); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.pagination .page-numbers {
  display: inline-grid; place-items: center;
  min-width: 2.75rem; min-height: 2.75rem;
  padding: 0 0.6rem;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: var(--fs-small);
}
.pagination .page-numbers.current { background: var(--primary); border-color: var(--primary); color: #fff; }

/* ---- Site footer --------------------------------------------------------- */
.site-footer { background: var(--c-forest-900); color: rgba(244,241,233,0.82); padding-block: var(--space-3xl) var(--space-xl); }
.site-footer h2, .site-footer h3 { color: #fff; }
.site-footer a { color: rgba(244,241,233,0.82); text-decoration: none; }
.site-footer a:hover { color: var(--c-gold-300); text-decoration: underline; }
.footer-top { display: grid; gap: var(--space-2xl); }
@media (min-width: 62em) { .footer-top { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } }
.footer-brand__name { font-family: var(--font-display); font-size: 1.35rem; color: #fff; line-height: 1.2; }
.footer-brand__motto { font-family: var(--font-display); font-style: italic; color: var(--c-gold-300); margin-top: var(--space-xs); }
.footer-brand__desc { font-size: var(--fs-small); margin-top: var(--space-md); max-width: 38ch; }
.footer-col h3 { font-family: var(--font-body); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--c-sage-300); }
.footer-col ul { list-style: none; margin: var(--space-md) 0 0; padding: 0; display: grid; gap: 0.6rem; font-size: var(--fs-small); }
.footer-contact { font-size: var(--fs-small); font-style: normal; display: grid; gap: 0.6rem; margin-top: var(--space-md); }
.footer-bottom {
  margin-top: var(--space-2xl);
  padding-top: var(--space-lg);
  border-top: 1px solid rgba(255,255,255,0.12);
  display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-lg);
  justify-content: space-between; align-items: center;
  font-size: 0.8rem;
}
.footer-bottom ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-md); margin: 0; padding: 0; }
.footer-social-note { font-size: 0.78rem; color: rgba(244,241,233,0.55); }

/* ---- Reveal animation (purposeful, subtle) --------------------------------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}
[data-reveal].is-inview { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; }
}
.no-js [data-reveal] { opacity: 1; transform: none; }
