/*
Theme Name:   Olivier Grows Child
Theme URI:    
Description:  Child theme for the Kadence parent. Custom CSS for olivier-grows.com lives in this file.
Author:       Olivier
Author URI:   
Template:     kadence
Version:      1.8.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  olivier-grows-child
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=JetBrains+Mono:wght@400&display=swap');

:root {
  --paper: #f4ede1;
  --paper-deep: #ede4d2;
  --paper-darker: #e1d6bf;
  --rule: #2c2622;
  --rule-soft: rgba(44, 38, 34, 0.22);
  --rule-faint: rgba(44, 38, 34, 0.12);
  --ink: #1f1a16;
  --ink-soft: #463e36;
  --ink-muted: #786d5f;
  --ink-faint: #9d9282;
  --clay: #b8593a;
  --clay-deep: #8a3e26;
  --moss: #4d5d3a;
}

body { background-color: var(--paper); }

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNDAiIGhlaWdodD0iMjQwIj48ZmlsdGVyIGlkPSJuIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC44NSIgbnVtT2N0YXZlcz0iMiIgc3RpdGNoVGlsZXM9InN0aXRjaCIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjE4ICAwIDAgMCAwIDAuMTQgIDAgMCAwIDAgMC4xMCAgMCAwIDAgMC4wNiAwIi8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsdGVyPSJ1cmwoJTIzbikiLz48L3N2Zz4=");
  mix-blend-mode: multiply;
  opacity: 0.65;
}

/* === KICKER + HEADLINE === */

.entry-content .kicker,
.content-container .kicker,
article .kicker {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clay);
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.entry-content .kicker::before,
.content-container .kicker::before,
article .kicker::before {
  content: '';
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--clay);
  flex-shrink: 0;
}

.entry-content h1,
.content-container h1,
article h1 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(40px, 6.8vw, 68px);
  line-height: 1.05;
  letter-spacing: -0.018em;
  color: var(--ink);
  margin-bottom: 36px;
}

.entry-content h1 em,
.content-container h1 em,
article h1 em {
  color: var(--clay);
  font-style: italic;
  font-weight: 400;
}

/* === LEDE + META === */

.entry-content .lede,
.content-container .lede,
article .lede {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 300;
  font-size: 21px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin-bottom: 24px;
  max-width: 46ch;
}

.entry-content dl.meta,
.content-container dl.meta,
article dl.meta {
  margin: 36px 0;
  padding: 18px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 32px;
  row-gap: 6px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12.5px;
}

.entry-content dl.meta dt,
.content-container dl.meta dt,
article dl.meta dt {
  color: var(--ink-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 10.5px;
  align-self: center;
  margin: 0;
  font-weight: 400;
}

.entry-content dl.meta dd,
.content-container dl.meta dd,
article dl.meta dd {
  color: var(--ink);
  font-size: 13px;
  margin: 0;
}

/* === SEPARATOR === */

.entry-content hr.wp-block-separator.wp-block-separator,
.content-container hr.wp-block-separator.wp-block-separator,
article hr.wp-block-separator.wp-block-separator,
.entry-content hr,
.content-container hr,
article hr {
  border: none !important;
  border-top: none !important;
  background: var(--rule) !important;
  height: 1px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 52px 0 !important;
  opacity: 1 !important;
}

/* === H2 + SECTION META === */

.entry-content h2,
.content-container h2,
article h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 26px;
  line-height: 1.25;
  letter-spacing: -0.005em;
  margin-bottom: 6px;
  color: var(--ink);
}

.entry-content h2 .num,
.content-container h2 .num,
article h2 .num {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-weight: 400;
  font-size: 12px;
  color: var(--clay);
  margin-right: 14px;
  vertical-align: 5px;
  letter-spacing: 0.06em;
}

.entry-content .section-meta,
.content-container .section-meta,
article .section-meta {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 24px;
}

/* === BLOCKQUOTE === */

.entry-content blockquote,
.content-container blockquote,
article blockquote,
.entry-content .wp-block-quote,
.content-container .wp-block-quote,
article .wp-block-quote {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 300 !important;
  font-style: italic !important;
  font-size: 26px !important;
  line-height: 1.35 !important;
  color: var(--ink) !important;
  margin: 32px 0 !important;
  padding: 0 0 0 24px !important;
  border-left: 2px solid var(--clay) !important;
  border-right: none !important;
  max-width: 32ch !important;
  background: transparent !important;
  text-align: left !important;
}

.entry-content blockquote p,
.content-container blockquote p,
article blockquote p,
.entry-content .wp-block-quote p,
.content-container .wp-block-quote p,
article .wp-block-quote p {
  margin: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-family: inherit !important;
  font-style: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}

.entry-content blockquote cite,
.content-container blockquote cite,
article blockquote cite,
.entry-content blockquote .wp-block-quote__citation,
.content-container blockquote .wp-block-quote__citation,
article blockquote .wp-block-quote__citation,
.entry-content .wp-block-quote cite,
.content-container .wp-block-quote cite,
article .wp-block-quote cite,
.entry-content .wp-block-quote .wp-block-quote__citation,
.content-container .wp-block-quote .wp-block-quote__citation,
article .wp-block-quote .wp-block-quote__citation {
  display: block !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 11px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--ink-muted) !important;
  margin-top: 18px !important;
  line-height: 1.4 !important;
}

.entry-content blockquote cite::before,
.content-container blockquote cite::before,
article blockquote cite::before,
.entry-content blockquote .wp-block-quote__citation::before,
.content-container blockquote .wp-block-quote__citation::before,
article blockquote .wp-block-quote__citation::before,
.entry-content .wp-block-quote cite::before,
.content-container .wp-block-quote cite::before,
article .wp-block-quote cite::before,
.entry-content .wp-block-quote .wp-block-quote__citation::before,
.content-container .wp-block-quote .wp-block-quote__citation::before,
article .wp-block-quote .wp-block-quote__citation::before {
  content: '— ' !important;
}

/* === PIECE 4: HARVEST TABLE === */

/* Use Gutenberg's Table block. Apply class "harvest" via the block's       */
/* Advanced panel. The CSS handles the rest.                                 */
.entry-content .wp-block-table.harvest,
.content-container .wp-block-table.harvest,
article .wp-block-table.harvest {
  margin: 36px 0;
}

.entry-content .wp-block-table.harvest table,
.content-container .wp-block-table.harvest table,
article .wp-block-table.harvest table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14.5px;
  background: transparent;
}

.entry-content .wp-block-table.harvest th,
.content-container .wp-block-table.harvest th,
article .wp-block-table.harvest th {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-muted);
  text-align: left;
  padding: 14px 0 10px 0;
  border-bottom: 1px solid var(--rule-soft);
  border-top: none;
  background: transparent;
}

.entry-content .wp-block-table.harvest td,
.content-container .wp-block-table.harvest td,
article .wp-block-table.harvest td {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 15px;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule-faint);
  border-top: none;
  vertical-align: baseline;
  color: var(--ink);
  background: transparent;
}

/* Numerics — second and third columns get monospace + right-align. */
.entry-content .wp-block-table.harvest th:nth-child(n+2),
.entry-content .wp-block-table.harvest td:nth-child(n+2),
.content-container .wp-block-table.harvest th:nth-child(n+2),
.content-container .wp-block-table.harvest td:nth-child(n+2),
article .wp-block-table.harvest th:nth-child(n+2),
article .wp-block-table.harvest td:nth-child(n+2) {
  text-align: right;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  padding-left: 16px;
}

/* Latin name italic inside a crop cell — wrap latin name in <em> in the    */
/* table cell when editing.                                                  */
.entry-content .wp-block-table.harvest td em,
.content-container .wp-block-table.harvest td em,
article .wp-block-table.harvest td em {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: 12.5px;
  color: var(--ink-muted);
  display: block;
  margin-top: 2px;
}

/* === PIECE 4: CLAUDE FOOTNOTE ASIDE ===                                    */
/* Markup (Custom HTML block):                                                */
/* <aside class="footnote">                                                   */
/*   <span class="marker">※</span>                                            */
/*   <span>I sometimes use <em>Claude</em> ...</span>                         */
/* </aside>                                                                   */

.entry-content aside.footnote,
.content-container aside.footnote,
article aside.footnote {
  margin: 56px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--rule-soft);
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-muted);
  max-width: 56ch;
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 4px;
}

.entry-content aside.footnote .marker,
.content-container aside.footnote .marker,
article aside.footnote .marker {
  color: var(--clay);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 16px;
  line-height: 1.35;
}

.entry-content aside.footnote em,
.content-container aside.footnote em,
article aside.footnote em {
  color: var(--ink-soft);
  font-style: italic;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
}

/* === PIECE 4: CTA — START WITH POST #01 ===                                */
/* Markup (Custom HTML block):                                                */
/* <p class="start">                                                          */
/*   <a href="/post-01/">Start with Post #01</a>                              */
/*   <span class="ref">How the plot came to exist · what it's actually for</span> */
/* </p>                                                                       */

.entry-content p.start,
.content-container p.start,
article p.start {
  margin-top: 56px !important;
  padding-top: 28px !important;
  border-top: 1px solid var(--rule) !important;
  font-size: inherit;
}

.entry-content p.start a,
.content-container p.start a,
article p.start a {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 400 !important;
  font-style: italic !important;
  font-size: 26px !important;
  color: var(--clay) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--clay) !important;
  padding-bottom: 4px !important;
  display: inline-block !important;
  transition: color 0.2s, border-color 0.2s;
  background-image: none !important;
}

.entry-content p.start a::after,
.content-container p.start a::after,
article p.start a::after {
  content: ' →';
  font-style: normal;
  display: inline-block;
  transition: transform 0.2s;
}

.entry-content p.start a:hover,
.content-container p.start a:hover,
article p.start a:hover {
  color: var(--clay-deep) !important;
  border-color: var(--clay-deep) !important;
}

.entry-content p.start a:hover::after,
.content-container p.start a:hover::after,
article p.start a:hover::after {
  transform: translateX(4px);
}

/* The caption sits below the link as a second line. */
.entry-content p.start .ref,
.content-container p.start .ref,
article p.start .ref {
  display: block;
  margin-top: 14px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

/* ============================================================ */
/* === KICKER OVERRIDE — WINS AGAINST KADENCE'S BODY FONT === */
/* ============================================================ */
/* DevTools confirmed Kadence applies --global-body-font-family   */
/* (IBM Plex Sans) to every paragraph inside .single-entry, with  */
/* enough specificity to beat our earlier .kicker rule.           */
/* These selectors are scoped enough to win, plus !important.     */

.entry-content p.kicker,
.single-entry .entry-content p.kicker,
.single .entry-content p.kicker,
article .entry-content p.kicker,
body .entry-content p.kicker {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--clay) !important;
  margin-top: 0 !important;
  margin-bottom: 22px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  line-height: 1.4 !important;
  max-width: none !important;
}

.entry-content p.kicker::before,
.single-entry .entry-content p.kicker::before,
.single .entry-content p.kicker::before,
article .entry-content p.kicker::before,
body .entry-content p.kicker::before {
  content: '' !important;
  display: inline-block !important;
  width: 28px !important;
  height: 1px !important;
  background: var(--clay) !important;
  flex-shrink: 0 !important;
}

/* On single posts, override the kicker bottom margin to be tight. */
.single-entry .entry-content p.kicker,
.single .entry-content p.kicker {
  margin-bottom: 14px !important;
}

/* ============================================================ */
/* === GAP KILLER — single posts, top-of-content vertical mess  */
/* ============================================================ */
/* Even with margin-top: 0 !important on the H1, large gaps     */
/* persist between kicker → H1 and H1 → next-block. This may be */
/* Kadence's lobotomized-owl rule (.entry-content > * + *) or    */
/* extra padding on a wrapper. Brute-force everything to zero.   */

.single-entry .entry-content > *,
.single .entry-content > * {
  margin-top: 0 !important;
}

.single-entry .entry-content > p.kicker + h1,
.single .entry-content > p.kicker + h1,
.single-entry .entry-content > p.kicker + .wp-block-html h1,
.single .entry-content > p.kicker + .wp-block-html h1 {
  margin-top: 0 !important;
}

.single-entry .entry-content > h1,
.single .entry-content > h1,
.single-entry .entry-content .wp-block-html h1,
.single .entry-content .wp-block-html h1 {
  margin-top: 0 !important;
  margin-bottom: 24px !important;
}

/* The H1 → image gap. */
.single-entry .entry-content > h1 + figure,
.single-entry .entry-content > h1 + .wp-block-image,
.single .entry-content > h1 + figure,
.single .entry-content > h1 + .wp-block-image,
.single-entry .entry-content > .wp-block-html + figure,
.single-entry .entry-content > .wp-block-html + .wp-block-image,
.single .entry-content > .wp-block-html + figure,
.single .entry-content > .wp-block-html + .wp-block-image {
  margin-top: 16px !important;
}

/* Some Custom HTML blocks render inside an extra wrapper that adds */
/* its own margin. Zero it out at the wrapper level too.            */
.single-entry .entry-content .wp-block-html,
.single .entry-content .wp-block-html {
  margin-top: 0 !important;
}

/* ============================================================ */
/* === H3 — Fraunces Semibold, not italic (v1.7.0) =========== */
/* ============================================================ */
/* Sub-section heading. Same family as H1/H2; weight 600 is the */
/* differentiator. Not italic — italics reserved for lede and   */
/* blockquote.                                                   */

.entry-content h3,
.content-container h3,
article h3,
.single-entry .entry-content h3,
.single .entry-content h3 {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 600 !important;
  font-style: normal !important;
  font-size: 21px !important;
  line-height: 1.3 !important;
  letter-spacing: -0.005em !important;
  color: var(--ink) !important;
  margin: 36px 0 12px !important;
}

/* ============================================================ */
/* === HARVEST TABLE V2 (v1.8.0) ============================== */
/* ============================================================ */
/* Comprehensive harvest table styling. Works whether the table  */
/* lives inside a Gutenberg Table block (.wp-block-table.harvest */
/* > table) or as a raw <table class="harvest"> in a Custom HTML */
/* block. Scoped for both pages and posts. Overrides the .single */
/* body rules that would otherwise clobber crop names.            */

/* Selector strategy: target both wrapped and unwrapped paths,    */
/* with high enough specificity to win on .single posts.          */

.entry-content table.harvest,
.entry-content .wp-block-table.harvest table,
.single .entry-content table.harvest,
.single .entry-content .wp-block-table.harvest table,
article table.harvest,
article .wp-block-table.harvest table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 14.5px !important;
  background: transparent !important;
  margin: 36px 0 !important;
  table-layout: auto !important;
}

/* Caption — "HARVEST LOG · ALL WEIGHTS TO THE GRAM" — sits above */
/* the table as a kicker-style label.                              */
.entry-content table.harvest caption,
.entry-content .wp-block-table.harvest table caption,
.single .entry-content table.harvest caption,
.single .entry-content .wp-block-table.harvest table caption,
article table.harvest caption,
article .wp-block-table.harvest table caption {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-muted) !important;
  text-align: left !important;
  padding: 0 0 12px 0 !important;
  border-bottom: 1px solid var(--rule) !important;
  caption-side: top !important;
  margin: 0 !important;
  display: table-caption !important;
}

.entry-content table.harvest caption .right,
.entry-content .wp-block-table.harvest table caption .right,
.single .entry-content table.harvest caption .right,
.single .entry-content .wp-block-table.harvest table caption .right,
article table.harvest caption .right,
article .wp-block-table.harvest table caption .right {
  float: right !important;
  color: var(--ink-faint) !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em !important;
}

/* Header row — column labels in the same caption style. */
.entry-content table.harvest th,
.entry-content .wp-block-table.harvest table th,
.single .entry-content table.harvest th,
.single .entry-content .wp-block-table.harvest table th,
article table.harvest th,
article .wp-block-table.harvest table th {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-weight: 400 !important;
  font-size: 10px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-muted) !important;
  text-align: left !important;
  padding: 14px 0 10px 0 !important;
  border-bottom: 1px solid var(--rule-soft) !important;
  border-top: none !important;
  background: transparent !important;
  vertical-align: baseline !important;
}

/* Body cells — default body-text styling. */
.entry-content table.harvest td,
.entry-content .wp-block-table.harvest table td,
.single .entry-content table.harvest td,
.single .entry-content .wp-block-table.harvest table td,
article table.harvest td,
article .wp-block-table.harvest table td {
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 16px !important;
  padding: 18px 0 !important;
  border-bottom: 1px solid var(--rule-faint) !important;
  border-top: none !important;
  vertical-align: baseline !important;
  color: var(--ink) !important;
  background: transparent !important;
}

/* Crop name cell — Fraunces serif for crop names. */
.entry-content table.harvest td.crop,
.entry-content .wp-block-table.harvest table td.crop,
.single .entry-content table.harvest td.crop,
.single .entry-content .wp-block-table.harvest table td.crop,
article table.harvest td.crop,
article .wp-block-table.harvest table td.crop {
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 19px !important;
  line-height: 1.3 !important;
  color: var(--ink) !important;
}

/* Latin name — italic Fraunces inside the crop cell. */
.entry-content table.harvest td.crop .latin,
.entry-content .wp-block-table.harvest table td.crop .latin,
.single .entry-content table.harvest td.crop .latin,
.single .entry-content .wp-block-table.harvest table td.crop .latin,
article table.harvest td.crop .latin,
article .wp-block-table.harvest table td.crop .latin {
  font-family: 'Fraunces', Georgia, serif !important;
  font-style: italic !important;
  font-weight: 300 !important;
  font-size: 14px !important;
  color: var(--ink-muted) !important;
  display: block !important;
  margin-top: 4px !important;
}

/* Numeric columns (.num) — monospace, right-aligned, tabular figures. */
.entry-content table.harvest th.num,
.entry-content table.harvest td.num,
.entry-content .wp-block-table.harvest table th.num,
.entry-content .wp-block-table.harvest table td.num,
.single .entry-content table.harvest th.num,
.single .entry-content table.harvest td.num,
.single .entry-content .wp-block-table.harvest table th.num,
.single .entry-content .wp-block-table.harvest table td.num,
article table.harvest th.num,
article table.harvest td.num,
article .wp-block-table.harvest table th.num,
article .wp-block-table.harvest table td.num {
  text-align: right !important;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-variant-numeric: tabular-nums !important;
  white-space: nowrap !important;
  padding-left: 16px !important;
}

/* Yield numbers (the main number in each row) — slightly larger. */
.entry-content table.harvest tbody td.num:not(.delta),
.entry-content .wp-block-table.harvest table tbody td.num:not(.delta),
.single .entry-content table.harvest tbody td.num:not(.delta),
.single .entry-content .wp-block-table.harvest table tbody td.num:not(.delta),
article table.harvest tbody td.num:not(.delta),
article .wp-block-table.harvest table tbody td.num:not(.delta) {
  font-size: 17px !important;
  color: var(--ink) !important;
}

/* Delta column — the +340 / -40 / ±0 cell. Smaller, color-coded. */
.entry-content table.harvest td.num.delta,
.entry-content .wp-block-table.harvest table td.num.delta,
.single .entry-content table.harvest td.num.delta,
.single .entry-content .wp-block-table.harvest table td.num.delta,
article table.harvest td.num.delta,
article .wp-block-table.harvest table td.num.delta {
  font-size: 15px !important;
  color: var(--ink-muted) !important;
  width: 80px !important;
}

/* Up — moss green for positive yield change. */
.entry-content table.harvest td.num.delta.up,
.entry-content .wp-block-table.harvest table td.num.delta.up,
.single .entry-content table.harvest td.num.delta.up,
.single .entry-content .wp-block-table.harvest table td.num.delta.up,
article table.harvest td.num.delta.up,
article .wp-block-table.harvest table td.num.delta.up {
  color: var(--moss) !important;
}

/* Down — clay red for negative yield change. */
.entry-content table.harvest td.num.delta.down,
.entry-content .wp-block-table.harvest table td.num.delta.down,
.single .entry-content table.harvest td.num.delta.down,
.single .entry-content .wp-block-table.harvest table td.num.delta.down,
article table.harvest td.num.delta.down,
article .wp-block-table.harvest table td.num.delta.down {
  color: var(--clay-deep) !important;
}

/* tfoot — TOTAL row. Mono monospace caption-style label, bigger    */
/* number on the right.                                              */
.entry-content table.harvest tfoot td,
.entry-content .wp-block-table.harvest table tfoot td,
.single .entry-content table.harvest tfoot td,
.single .entry-content .wp-block-table.harvest table tfoot td,
article table.harvest tfoot td,
article .wp-block-table.harvest table tfoot td {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 10.5px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink-muted) !important;
  padding: 18px 0 0 0 !important;
  border-bottom: none !important;
  border-top: 1px solid var(--rule) !important;
  vertical-align: baseline !important;
}

/* tfoot numeric cells — keep them monospace right-aligned, slightly */
/* bigger than caption text but still smaller than yield rows.        */
.entry-content table.harvest tfoot td.num,
.entry-content .wp-block-table.harvest table tfoot td.num,
.single .entry-content table.harvest tfoot td.num,
.single .entry-content .wp-block-table.harvest table tfoot td.num,
article table.harvest tfoot td.num,
article .wp-block-table.harvest table tfoot td.num {
  font-size: 15px !important;
  color: var(--ink) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  padding-left: 16px !important;
}

/* Last tbody row — kill bottom border so the tfoot top border doesn't */
/* double up.                                                            */
.entry-content table.harvest tbody tr:last-child td,
.entry-content .wp-block-table.harvest table tbody tr:last-child td,
.single .entry-content table.harvest tbody tr:last-child td,
.single .entry-content .wp-block-table.harvest table tbody tr:last-child td,
article table.harvest tbody tr:last-child td,
article .wp-block-table.harvest table tbody tr:last-child td {
  border-bottom: none !important;
}

/* Mobile responsive — drop padding and font sizes on narrow screens. */
@media (max-width: 600px) {
  .entry-content table.harvest td,
  .entry-content .wp-block-table.harvest table td,
  .single .entry-content table.harvest td,
  .single .entry-content .wp-block-table.harvest table td {
    padding: 14px 0 !important;
  }
  .entry-content table.harvest td.crop,
  .entry-content .wp-block-table.harvest table td.crop,
  .single .entry-content table.harvest td.crop,
  .single .entry-content .wp-block-table.harvest table td.crop {
    font-size: 16px !important;
  }
  .entry-content table.harvest td.num.delta,
  .entry-content .wp-block-table.harvest table td.num.delta,
  .single .entry-content table.harvest td.num.delta,
  .single .entry-content .wp-block-table.harvest table td.num.delta {
    width: 60px !important;
    font-size: 13px !important;
  }
  .entry-content table.harvest caption .right,
  .single .entry-content table.harvest caption .right,
  article table.harvest caption .right {
    display: none !important;
  }
}
