/* =========================================================
   COOAAFRO-RO — design layer, Farm Minerals language
   ---------------------------------------------------------
   Bone canvas, olive and forest greens, square media corners, pill controls
   with dot flanks, and small uppercase supporting copy. Loads last and remaps
   the theme's own brand tokens, so the existing rules in style.css and
   scroll.css inherit it rather than being rewritten.

   This replaces assets/css/apple.css (the dark gallery treatment), which is
   left on disk unloaded — swapping the one filename in inc/enqueue.php moves
   between them, and removing the line entirely restores the original theme.
   ========================================================= */

:root {
  /* ---- Palette ---- */
  --fm-bone: #F4EDE6;          /* page canvas — sampled from the reference */
  --fm-bone-2: #e9e1d9;        /* alternating band */
  --fm-olive: #465626;         /* primary type and controls — sampled from the reference */
  --fm-olive-deep: #44522e;
  --fm-forest: #33411f;        /* dark panels and curtains */
  --fm-moss: #7d9150;
  --fm-sage: #9aa87a;
  --fm-cream: #f1ebe7;         /* type on green */
  --fm-rule: rgba(51, 65, 31, 0.16);

  /* ---- Type ---- */
  --fm-display: 'Inter', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fm-micro-size: 0.82rem;
  --fm-micro-track: 0.045em;

  /* =======================================================
     Remap of the theme's brand tokens
     ======================================================= */
  --green-900: #33411f;
  --green-800: #44522e;
  --green-700: #465626;
  --green-600: #7d9150;
  --green-500: #9aa87a;
  --green-100: #e3ddd3;
  --green-050: #e9e1d9;
  --amber-500: #465626;   /* no amber in this language — accents are the olive */
  --amber-600: #44522e;
  --cream: #f2ece8;
  --ink-900: #33411f;
  --ink-600: #5d6a4e;
  --ink-400: #8b9480;
  --green-logo: #33411f;
  --white: #ffffff;

  --font-heading: var(--fm-display);
  --font-body: var(--fm-display);

  /* Square media geometry; only controls are round. */
  --radius-lg: 0px;
  --radius-md: 0px;
  --shadow-soft: none;
  --shadow-hover: none;

  /* Scroll-layer roles */
  --sd-light: var(--fm-cream);
  --sd-dark: var(--fm-forest);
  --sd-accent: var(--fm-moss);
  --sd-mid: var(--fm-olive);
  --sd-deep: var(--fm-olive-deep);
  --sd-line: var(--fm-rule);
}

/* ---------- Base ---------- */
body {
  background-color: var(--fm-bone);
  color: var(--fm-forest);
  font-family: var(--fm-display);
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
}

/* Display type here is medium weight, not bold — the scale does the work. */
h1, h2, h3, h4, h5, .display-font,
.section-title, .sd-h2, .hero-title,
.sd-gw__a, .sd-gw__b, .sd-split__title, .sd-duo__title,
.sd-cta__title, .page-header__title, .sd-rows__title {
  font-family: var(--fm-display);
  font-weight: 500;
  color: var(--fm-olive);
  letter-spacing: -0.022em;
}
a { color: var(--fm-olive); }
::selection { background: var(--fm-olive); color: var(--fm-cream); }

/* Supporting copy is small uppercase, as on the reference. Scoped to the
   labels and leads — never to article prose, which has to stay readable. */
.section-lead, .sd-split__note, .sd-gridwall__note,
.sd-cta__text, .sd-rows__desc, .card-desc, .hero-subtitle {
  font-size: var(--fm-micro-size);
  letter-spacing: var(--fm-micro-track);
  text-transform: uppercase;
  line-height: 1.5;
  color: var(--ink-600);
}
.section-kicker, .sd-caps {
  background: none; padding: 0; border-radius: 0;
  color: var(--fm-olive);
  font-size: var(--fm-micro-size);
  font-weight: 500;
  letter-spacing: var(--fm-micro-track);
  text-transform: uppercase;
}
/* The four-point marker the reference sets beside its section labels. */
.section-kicker::before { content: "\2726"; margin-inline-end: .55em; opacity: .75; }
.section-kicker i { display: none; }

.text-green, .text-amber { color: var(--fm-olive); }
.text-muted, .text-white-50 { color: var(--ink-600) !important; }
.bg-green { background-color: var(--fm-olive); }
.bg-green-900 { background-color: var(--fm-forest); }
.bg-green-050 { background-color: var(--fm-bone-2); }
.bg-cream { background-color: var(--fm-bone); }

/* ---------- Navigation ----------
   A solid bar, not a transparent one. The reference lets its nav float over the
   page and recolour per section; here the bar is filled bone at every scroll
   position and over every section, so the labels sit on a known background and
   the body copy of a text page never slides out from under them. The tone flip
   therefore does nothing to the bar's colours any more — it is kept only so the
   data-tone attribute stays meaningful for anything else that reads it. */
.site-header .navbar-cooaafro,
.sd-on .site-header .navbar-cooaafro,
.site-header.scrolled .navbar-cooaafro,
.sd-on .site-header.scrolled .navbar-cooaafro {
  background-color: var(--fm-bone) !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--fm-rule);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 16px 0 !important;
}
/* No scrim: there is nothing to see through any more. */
.sd-on .site-header::before { content: none; }
/* One olive colour, whatever is underneath. */
.site-header .nav-link,
.site-header .navbar-brand,
.site-header .search-toggle-btn,
.sd-on .site-header[data-tone="light"] .nav-link,
.sd-on .site-header[data-tone="light"] .navbar-brand,
.sd-on .site-header[data-tone="light"] .search-toggle-btn,
.sd-on .site-header[data-tone="dark"] .nav-link,
.sd-on .site-header[data-tone="dark"] .navbar-brand,
.sd-on .site-header[data-tone="dark"] .search-toggle-btn { color: var(--fm-olive) !important; }
.site-header .nav-link:hover,
.site-header .nav-link.active { color: var(--fm-forest) !important; }
/* The logo keeps its own colours: the bar is bone, which is the background its
   full-colour cut was drawn for, so it needs neither a plate nor the pale
   watermark version. */
.navbar-cooaafro .navbar-brand .brand-logo--on-light,
.site-header[data-tone="dark"] .navbar-cooaafro .navbar-brand .brand-logo--on-light,
.site-header.scrolled .navbar-cooaafro .navbar-brand .brand-logo--on-light,
.sd-on .site-header.scrolled[data-tone="dark"] .navbar-cooaafro .navbar-brand .brand-logo--on-light { display: block; }
.navbar-cooaafro .navbar-brand .brand-logo--on-dark,
.site-header[data-tone="dark"] .navbar-cooaafro .navbar-brand .brand-logo--on-dark,
.site-header.scrolled .navbar-cooaafro .navbar-brand .brand-logo--on-dark,
.sd-on .site-header.scrolled[data-tone="dark"] .navbar-cooaafro .navbar-brand .brand-logo--on-dark { display: none; }
/* The two pill controls sit on the bone bar, so their hairlines are the ink one. */
.site-header .search-toggle-btn,
.site-header .lang-switch-btn {
  border-color: var(--fm-rule) !important;
  color: var(--fm-olive) !important;
}
.site-header .search-toggle-btn:hover,
.site-header .lang-switch-btn:hover { border-color: var(--fm-olive) !important; }
.site-header .navbar-toggler { border-color: var(--fm-rule); }
.site-header .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23465626' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-cooaafro .nav-link {
  font-size: var(--fm-micro-size);
  font-weight: 500;
  letter-spacing: var(--fm-micro-track);
  text-transform: uppercase;
}
.site-header .dropdown-toggle::after,
.sd-on .site-header[data-tone="light"] .dropdown-toggle::after,
.sd-on .site-header[data-tone="dark"] .dropdown-toggle::after { border-top-color: var(--fm-olive); }
.dropdown-menu { background: var(--fm-bone); border: 1px solid var(--fm-rule); border-radius: 0; }
.dropdown-item { color: var(--fm-olive); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--fm-bone-2); color: var(--fm-forest); }
.search-toggle-btn, .lang-switch-btn {
  background: transparent !important;
  border: 1px solid var(--fm-rule) !important;
  border-radius: 9999px;
  font-size: var(--fm-micro-size);
  text-transform: uppercase;
  letter-spacing: var(--fm-micro-track);
}
.lang-switch-menu { background: var(--fm-bone); border: 1px solid var(--fm-rule); border-radius: 0; }
.navbar-toggler { border-color: var(--fm-rule); }

/* ---------- Controls: pills flanked by dots ---------- */
.btn-amber, .btn-cooaafro, .btn-primary {
  background-color: var(--fm-olive);
  border: none;
  color: var(--fm-cream);
  font-size: var(--fm-micro-size);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--fm-micro-track);
  border-radius: 9999px;
  padding: 14px 26px;
  box-shadow: none;
}
.btn-amber:hover, .btn-cooaafro:hover, .btn-primary:hover {
  background-color: var(--fm-olive-deep); color: var(--fm-cream); transform: none; box-shadow: none;
}
.btn-cooaafro-outline {
  background: transparent;
  color: var(--fm-olive);
  border: 1px solid var(--fm-olive);
  border-radius: 9999px;
  font-size: var(--fm-micro-size);
  text-transform: uppercase;
  letter-spacing: var(--fm-micro-track);
  padding: 14px 26px;
}
.btn-cooaafro-outline:hover { background: var(--fm-olive); color: var(--fm-cream); border-color: var(--fm-olive); }
/* "• LABEL •" — the dots are decoration, so they stay out of the accessible name. */
.btn-amber > span::before, .btn-cooaafro > span::before,
.btn-cooaafro-outline > span::before { content: "\2022"; margin-inline-end: .7em; }
.btn-amber > span::after, .btn-cooaafro > span::after,
.btn-cooaafro-outline > span::after { content: "\2022"; margin-inline-start: .7em; }
.btn i.fa-arrow-right, .btn i.fa-arrow-left { display: none; }

/* ---------- Cards: square, hairline, no shadow ---------- */
.card-cooaafro, .news-card, .team-card, .img-placeholder {
  background: transparent;
  border: none;
  border-top: 1px solid var(--fm-rule);
  border-radius: 0;
  box-shadow: none;
  padding-top: 1.6rem;
}
.card-cooaafro:hover, .news-card:hover, .team-card:hover { transform: none; box-shadow: none; border-top-color: var(--fm-olive); }
.card-icon { background: none; border-radius: 0; width: auto; height: auto; color: var(--fm-moss); font-size: 1.3rem; margin-bottom: 1.1rem; justify-content: flex-start; }
.card-cooaafro h4, .news-card-title, .team-name { font-size: 1.2rem; font-weight: 500; color: var(--fm-olive); letter-spacing: -0.018em; }
.news-card-media, .team-photo, .news-modal-media, .sd-media, .sd-gw__tile { border-radius: 0; background: var(--fm-bone-2); }
.news-card-date { color: var(--ink-400); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.news-card-readmore { color: var(--fm-olive); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.news-card-badge {
  background: rgba(242, 236, 232, 0.92) !important;
  color: var(--fm-olive) !important;
  border-radius: 9999px;
  font-size: 0.72rem;
  letter-spacing: var(--fm-micro-track);
}
.news-modal-content { background: var(--fm-bone); border-radius: 0; color: var(--fm-forest); }
.news-card-excerpt { text-transform: none; font-size: 0.95rem; letter-spacing: -0.01em; color: var(--ink-600); }

/* ---------- Section rhythm ---------- */
.section-py { padding: 10rem 0; }
@media (max-width: 767px) { .section-py { padding: 5rem 0; } }

/* ---------- Hero ---------- */
.hero-static, .sd-on .hero-static.sd-hero { background: var(--fm-forest); }
.sd-on .hero-static .hero-title, .hero-title {
  font-size: clamp(2.6rem, 7vw, 6.4rem);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--fm-cream);
}
.hero-eyebrow {
  display: block;
  color: var(--fm-cream);
  font-size: var(--fm-micro-size);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--fm-micro-track);
  opacity: .9;
  margin-bottom: 1.2rem;
  max-width: 34em;
}
.hero-subtitle, .hero-subtitle p { color: rgba(241, 235, 231, .78); max-width: 32em; }
.sd-hero__plinth { display: none; }  /* the hero is a full-bleed stage again, not a contained plinth */
/* A heavy olive wash, not a light veil. The photograph is there for texture and
   depth rather than for its own detail: cream type has to sit on it cleanly at
   every scroll position, and these are bright midday fields. Shared by the home
   hero and every inner-page header, so they read as one surface. */
.brand-green-overlay {
  background: linear-gradient(180deg, rgba(70,86,38,.88) 0%, rgba(70,86,38,.9) 55%, rgba(51,65,31,.95) 100%) !important;
}
/* On the hero stage the secondary control has to read against the photograph. */
.hero-static .btn-cooaafro-outline {
  color: var(--fm-cream);
  border-color: rgba(241, 235, 231, .7);
}
.hero-static .btn-cooaafro-outline:hover { background: var(--fm-cream); color: var(--fm-forest); border-color: var(--fm-cream); }
.hero-static .btn-amber, .hero-static .btn-cooaafro { background: var(--fm-cream); color: var(--fm-forest); }
.hero-static .btn-amber:hover, .hero-static .btn-cooaafro:hover { background: #ffffff; color: var(--fm-forest); }
.sd-hero__cue { border-color: rgba(241, 235, 231, .55); }
.sd-on .hero-static.sd-hero .sd-hero__stage {
  background-image: var(--hero-poster);
  background-size: cover;
  background-position: center;
}
/* With the scroll layer on, .brand-green-overlay is removed and the photograph
   is the stage's own background, so the wash has to be re-applied here. It sits
   under the cursor trail (z-index 1) and the copy (z-index 2). */
.sd-on .hero-static.sd-hero .sd-hero__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, rgba(70,86,38,.88) 0%, rgba(70,86,38,.9) 55%, rgba(51,65,31,.95) 100%);
  pointer-events: none;
}

/* ---------- Frame sequence ---------- */
.sd-sequence { background: var(--fm-forest); }
.sd-sequence .brand-green-overlay {
  background: linear-gradient(180deg, rgba(51,65,31,.35) 0%, rgba(51,65,31,.05) 35%, rgba(51,65,31,.4) 100%) !important;
}

/* ---------- Statement grid ---------- */
.sd-gridwall { background: var(--fm-bone); color: var(--fm-forest); }
.sd-gridwall__rules { background-image: repeating-linear-gradient(to right, var(--fm-rule) 0 1px, transparent 1px 20%); }
.sd-gridwall__band { border-top: 1px solid var(--fm-rule); border-bottom: 1px solid var(--fm-rule); background: rgba(51,65,31,.02); }
.sd-gw__a, .sd-gw__b { color: var(--fm-olive); font-weight: 500; }
.sd-gridwall__note { color: var(--ink-600); }
@media (max-width: 991.98px) {
  .sd-gridwall__rules { background-image: repeating-linear-gradient(to right, var(--fm-rule) 0 1px, transparent 1px 50%); }
}

/* ---------- Split stat panel ---------- */
.sd-split { background: var(--fm-bone); color: var(--fm-forest); }
.sd-split__media { background: var(--fm-bone-2); }
.sd-split__panel { background: var(--fm-bone); }
.sd-split__title { color: var(--fm-olive); }
.sd-stat-row { border-top: 1px solid var(--fm-rule); }
.sd-stat-row:last-of-type { border-bottom: 1px solid var(--fm-rule); }
.sd-stat-row__num { color: var(--fm-olive); font-weight: 400; letter-spacing: -0.03em; }
.sd-stat-row__label, .sd-split__note { color: var(--ink-600); }

/* ---------- Duo ---------- */
.sd-duo { background: var(--fm-bone); color: var(--fm-forest); }
.sd-duo__media { background: var(--fm-bone-2); }
.sd-duo__title { color: var(--fm-olive); }

/* ---------- Hairline rows ---------- */
.sd-rows { border-top: 1px solid var(--fm-rule); }
.sd-rows__item { border-inline-end: 1px solid var(--fm-rule); }
.sd-rows__idx { color: var(--fm-moss); }
.sd-rows__title { color: var(--fm-olive); }
@media (max-width: 767.98px) { .sd-rows__item { border-bottom: 1px solid var(--fm-rule); } }

/* ---------- Horizontal track ---------- */
.sd-horizontal, .sd-horizontal.bg-green-900 { background: var(--fm-forest) !important; }
/* scroll.css gives this one a translucent chip at two-class specificity, which
   outranks the single-class reset above — so it is cleared here too. */
.sd-horizontal .section-kicker { background: none; padding: 0; border-radius: 0; color: var(--fm-cream); }
.sd-horizontal .sd-h2, .sd-horizontal .section-title { color: var(--fm-cream); }
.sd-horizontal .section-lead { color: rgba(241,235,231,.72); }
.sd-horizontal__track .card-cooaafro { background: none; border-top: 1px solid rgba(241,235,231,.26); padding-top: 1.6rem; }
.sd-horizontal__track .card-cooaafro:hover { border-top-color: var(--fm-cream); }
.sd-horizontal__track .card-icon { color: var(--fm-sage); }
.sd-horizontal__track .card-cooaafro h4 { color: var(--fm-cream); }
.sd-horizontal__track .card-desc { color: rgba(241,235,231,.7) !important; }

/* ---------- Photo band ---------- */
.sd-band { background: var(--fm-forest); }
.sd-band__veil { background: linear-gradient(180deg, rgba(51,65,31,.4) 0%, rgba(51,65,31,.1) 45%, rgba(51,65,31,.8) 100%); }
.sd-band__kicker { background: none; color: var(--fm-cream); }
.sd-band .section-title { color: var(--fm-cream); }

/* ---------- CTA ---------- */
.sd-cta { background: var(--fm-forest); color: var(--fm-cream); }
.sd-cta__rule { background: rgba(241,235,231,.26); opacity: 1; }
.sd-cta__title { color: var(--fm-cream); }
.sd-cta__text { color: rgba(241,235,231,.72); }
.sd-cta__link { color: var(--fm-cream); border-bottom-color: rgba(241,235,231,.45); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.sd-cta__link:hover { color: var(--fm-cream); }
.sd-cta__link i { display: none; }
.sd-cta__link span::before { content: "\2022"; margin-inline-end: .7em; }
.sd-cta__link span::after { content: "\2022"; margin-inline-start: .7em; }

/* ---------- Inner page headers ---------- */
.page-header { background-color: var(--fm-forest); }
.page-header__bg { background-color: var(--fm-forest); }
.page-header h1, .page-header__title { color: var(--fm-cream); }
.page-header .breadcrumb-cooaafro { color: rgba(241,235,231,.7); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.page-header .breadcrumb-cooaafro a { color: var(--fm-cream); }
.page-header__rule { background: rgba(241,235,231,.3); }

/* ---------- Timeline / checklist ---------- */
.timeline::after { background: var(--fm-moss); }
.timeline-dot { background: var(--fm-bone-2); border-color: var(--fm-bone); }
.sd-on .timeline-item.is-active .timeline-dot { background: var(--fm-olive); border-color: var(--fm-bone); }
.timeline-year { color: var(--fm-olive); }
.sd-check::before { background: var(--fm-rule); }
.sd-check::after { background: var(--fm-olive); }
.sd-check .check-item .check-icon { background: var(--fm-bone); box-shadow: inset 0 0 0 1px var(--fm-rule); }
.sd-check .check-item.is-done .check-icon { background: var(--fm-olive); color: var(--fm-cream); box-shadow: none; }

/* ---------- Chapter rail ---------- */
.sd-rail__dot { background: var(--fm-olive); box-shadow: none; opacity: .4; }
.sd-rail a.is-active .sd-rail__dot { opacity: 1; }
.sd-rail__label { background: var(--fm-forest); color: var(--fm-cream); border-radius: 9999px; font-size: 0.72rem; text-transform: uppercase; letter-spacing: var(--fm-micro-track); }

/* ---------- Forms ---------- */
.form-control, .form-select, .search-box-input {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--fm-rule);
  border-radius: 0;
  color: var(--fm-forest);
  padding: 12px 2px;
  font-size: 1rem;
}
.form-control:focus, .form-select:focus, .search-box-input:focus {
  background: transparent; border-bottom-color: var(--fm-olive); color: var(--fm-forest); box-shadow: none; outline: none;
}
.form-control::placeholder { color: var(--ink-400); }
.form-label { color: var(--ink-600); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.search-overlay { background: rgba(242, 236, 232, 0.96); backdrop-filter: blur(16px); }
.search-results { background: var(--fm-bone); border: 1px solid var(--fm-rule); border-radius: 0; }
.search-result-title { color: var(--fm-olive); }
.search-result-sub, .search-no-results { color: var(--ink-600); }

/* ---------- Footer ---------- */
.footer-cooaafro { background: var(--fm-forest); color: rgba(241,235,231,.72); }
.footer-cooaafro h5, .footer-cooaafro h4 { color: var(--fm-cream); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.footer-cooaafro a { color: rgba(241,235,231,.72); font-size: var(--fm-micro-size); text-transform: uppercase; letter-spacing: var(--fm-micro-track); }
.footer-cooaafro a:hover { color: var(--fm-cream); }
.footer-bottom { border-top: 1px solid rgba(241,235,231,.18); color: rgba(241,235,231,.5); font-size: 0.72rem; }

/* ---------- Preloader ---------- */
.sd-preloader__layer:nth-child(1) { background: var(--fm-sage); }
.sd-preloader__layer:nth-child(2) { background: var(--fm-moss); }
.sd-preloader__layer:nth-child(3) { background: var(--fm-olive); }
.sd-preloader__layer:nth-child(4) { background: var(--fm-forest); color: var(--fm-cream); }
.sd-preloader__count { color: var(--fm-cream); font-size: var(--fm-micro-size); letter-spacing: var(--fm-micro-track); }

/* =========================================================
   COLUMN CURTAIN — the reference's signature transition.
   A section can carry a row of full-height panels that slide clear at
   staggered offsets as it is scrolled, uncovering what sits behind. Built by
   scroll.js from [data-sd-curtain]; the panels are decorative and the section
   reads normally with the scroll layer off.
   ========================================================= */
.sd-curtain {
  position: absolute; inset: 0; z-index: 4;
  display: grid; pointer-events: none;
}
.sd-curtain__panel { background: var(--fm-bone); will-change: transform; }
.sd-curtain--forest .sd-curtain__panel { background: var(--fm-forest); }
/* Hairlines between panels keep the grid legible mid-slide, as on the reference. */
.sd-curtain__panel + .sd-curtain__panel { box-shadow: inset 1px 0 0 var(--fm-rule); }
.sd-curtain--forest .sd-curtain__panel + .sd-curtain__panel { box-shadow: inset 1px 0 0 rgba(241,235,231,.12); }
/* No JS, reduced motion, or effects off: never leave content behind a curtain. */
html:not(.sd-on) .sd-curtain,
.sd-reduced .sd-curtain { display: none; }

/* ---------- Article body ---------- */
.news-article-content { font-size: 1.05rem; line-height: 1.65; color: var(--fm-forest); }
.news-article-content p { margin-bottom: 1.4em; }
.news-article-content strong { color: var(--fm-olive); font-weight: 600; }
.news-article-content a { color: var(--fm-olive); text-decoration: underline; }
/* The media wall's structure is in style.css so it survives swapping this layer
   out; here it only picks up the bone/olive palette and the square corners. */
.news-media__cell { background: var(--fm-bone-2); box-shadow: 0 0 0 1px var(--fm-rule); }
.news-media__open:focus-visible { outline-color: var(--fm-olive); }
.news-article-content__img { border-radius: 0; }
.news-article-content .mejs-container, .news-article-content .mejs-poster { background: var(--fm-bone-2) !important; }
.news-media__cell--video .mejs-container, .news-media__cell--video .mejs-poster { background: var(--fm-forest) !important; }
.news-lightbox {
  background: rgba(31, 42, 18, 0.975);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
