:root {
  --bg: #ffffff; --fg: #23211d; --heading: #100f0d; --muted: #737069;
  /* Deep green, pulled from the logo's #14C253 so the accent and the brand
     mark belong to the same family rather than fighting each other. */
  --accent: #0c7a3d; --accent-dark: #095c2e; --on-accent: #ffffff;
  --card-bg: #ffffff; --header-bg: #ffffff; --border: #e3e0d9;
  --chip-bg: #f4f2ec; --hover-shadow: none;
  --radius: 2px;
  --font-heading: 'Fraunces', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.theme-editorial body { background: var(--bg); }
.theme-editorial h1, .theme-editorial h2, .theme-editorial h3 { letter-spacing: -.02em; font-weight: 600; }

/* header: hairline, quiet, letterspaced caps nav */
/* Sticky header with a logo that starts large, hangs below the header, then
   shrinks on scroll. The negative margin is what lets it overflow without
   making the header itself taller. */
.theme-editorial .site-header {
  border-bottom: none;
  position: sticky; top: 0; z-index: 50;
  background: var(--header-bg);
  transition: box-shadow .25s ease;
}
.theme-editorial .site-header .wrap {
  padding-top: 20px; padding-bottom: 20px;
  align-items: center;
  transition: padding .3s cubic-bezier(.4, 0, .2, 1);
}
.theme-editorial .logo {
  font-size: 1.45rem; font-weight: 600; letter-spacing: -.03em;
  display: flex; align-items: center; position: relative; z-index: 2;
}
.theme-editorial .logo img {
  height: 150px; width: auto; display: block;
  margin-bottom: -52px;                 /* the overflow */
  transition: height .3s cubic-bezier(.4, 0, .2, 1),
              margin-bottom .3s cubic-bezier(.4, 0, .2, 1);
}

/* scrolled state */
html.is-scrolled .site-header { box-shadow: 0 1px 0 rgba(16, 15, 13, .09); }
html.is-scrolled .site-header .wrap { padding-top: 12px; padding-bottom: 12px; }
html.is-scrolled .logo img { height: 52px; margin-bottom: 0; }

@media (max-width: 860px) {
  .theme-editorial .logo img { height: 104px; margin-bottom: -34px; }
  html.is-scrolled .logo img { height: 44px; margin-bottom: 0; }
}
@media (max-width: 700px) {
  .theme-editorial .site-header .wrap { padding-top: 14px; padding-bottom: 14px; }
  .theme-editorial .logo img { height: 86px; margin-bottom: -26px; }
  html.is-scrolled .logo img { height: 40px; margin-bottom: 0; }
}

/* respect a reduced-motion preference: snap rather than animate */
@media (prefers-reduced-motion: reduce) {
  .theme-editorial .site-header .wrap,
  .theme-editorial .logo img { transition: none; }
}
.theme-editorial .logo span { color: var(--accent); }
.theme-editorial .site-header nav a {
  font-family: var(--font-body); font-size: .72rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: .13em; color: var(--fg);
}
.theme-editorial .theme-switch { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 500; color: var(--muted); }
.theme-editorial .theme-switch select { border-radius: 0; border: 1px solid var(--border); }

/* homepage masthead: full-width photo with the headline over it.
   Text is inset to line up with the logo above via the max() padding. */
.theme-editorial .masthead {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -48px;
  margin-bottom: 56px;
  min-height: clamp(440px, 64vh, 660px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--heading);
  isolation: isolate;
}
.theme-editorial .masthead-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: -2;
}
.theme-editorial .masthead::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(16,15,13,.20) 0%, rgba(16,15,13,.45) 45%, rgba(16,15,13,.88) 100%);
}
.theme-editorial .masthead-inner {
  position: relative;
  width: 100%;
  padding: 64px max(24px, calc(50vw - 516px));
  color: #fff;
}
.theme-editorial .masthead-inner h1 {
  color: #fff;
  font-size: clamp(2.4rem, 5.4vw, 4rem);
  line-height: 1; margin: 0 0 16px; max-width: 16ch;
}
.theme-editorial .masthead-inner p {
  margin: 0 0 30px; max-width: 46ch; font-size: 1.1rem;
  color: rgba(255,255,255,.88); line-height: 1.6;
}
.theme-editorial .masthead-actions {
  display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
}
.theme-editorial .masthead .button { background: #fff; color: var(--heading); }
.theme-editorial .masthead .button:hover { background: var(--accent); color: #fff; }
.theme-editorial .masthead-featured { color: #fff; display: block; }
.theme-editorial .masthead-featured .chip {
  color: rgba(255,255,255,.75); display: block; margin-bottom: 3px;
}
.theme-editorial .masthead-featured strong {
  font-family: var(--font-heading); font-size: 1.15rem; font-weight: 500;
  letter-spacing: -.01em; display: block;
  border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: 2px;
}
.theme-editorial .masthead-featured:hover strong { border-bottom-color: #fff; }
.theme-editorial .masthead--text-only { min-height: 0; background: none; margin-bottom: 24px; }
.theme-editorial .masthead--text-only::after { display: none; }
.theme-editorial .masthead--text-only .masthead-inner { color: var(--fg); padding-top: 40px; padding-bottom: 20px; }
.theme-editorial .masthead--text-only .masthead-inner h1 { color: var(--heading); }
.theme-editorial .masthead--text-only .masthead-inner p { color: var(--muted); }
.theme-editorial .masthead--text-only .button { background: var(--heading); color: #fff; }

@media (max-width: 860px) {
  .theme-editorial .masthead {
    margin-top: -32px; margin-bottom: 36px; min-height: clamp(380px, 58vh, 520px);
  }
  .theme-editorial .masthead-inner { padding: 40px 24px; }
  .theme-editorial .masthead-actions { gap: 20px; }
}

.theme-editorial .hero { text-align: left; padding: 40px 0 52px; }
.theme-editorial .hero h1 { font-size: clamp(2.8rem, 7vw, 4.6rem); line-height: .98; margin: 0 0 18px; max-width: 14ch; }
.theme-editorial .hero p { margin: 0 0 28px; max-width: 46ch; font-size: 1.1rem; color: var(--muted); line-height: 1.6; }
.theme-editorial .button {
  border-radius: 0; background: var(--heading); color: #fff; padding: 15px 32px;
  font-size: .74rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 500;
}
.theme-editorial .button:hover { background: var(--accent); }

.theme-editorial section h2 {
  font-size: .74rem; text-transform: uppercase; letter-spacing: .15em; font-family: var(--font-body);
  font-weight: 500; color: var(--muted); padding-bottom: 0;
  margin: 56px 0 4px;
}

/* categories: plain text list, no boxes */
.theme-editorial .category-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin-top: 0; }
.theme-editorial .category-card {
  border: none; border-radius: 0; background: none;
  text-align: left; padding: 16px 12px 16px 0; font-family: var(--font-heading);
  font-size: 1.05rem; font-weight: 500; letter-spacing: -.01em;
}
.theme-editorial .category-card:hover { color: var(--accent); }

/* recipe grid: images do the work — no borders, no shadows, no card */
.theme-editorial .recipe-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 36px 26px; }
.theme-editorial .recipe-card { background: none; border: none; border-radius: 0; box-shadow: none; }
.theme-editorial .recipe-card:hover { transform: none; box-shadow: none; }
.theme-editorial .recipe-card:hover h3 { color: var(--accent); }
.theme-editorial .recipe-card-img { aspect-ratio: 1 / 1; border-radius: 0; overflow: hidden; background: var(--chip-bg); }
.theme-editorial .recipe-card-img img { width: 100%; height: 100%; object-fit: cover; }
.theme-editorial .recipe-card-body { padding: 12px 0 0; }
.theme-editorial .recipe-card h3 { font-family: var(--font-heading); font-size: 1.12rem; line-height: 1.2; margin: 6px 0 5px; }
.theme-editorial .recipe-card .meta {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); font-weight: 500;
}
.theme-editorial .chip {
  background: none; border-radius: 0; padding: 0; color: var(--accent);
  font-size: .66rem; letter-spacing: .14em; font-weight: 600;
}

.theme-editorial .filter-bar { gap: 0 24px; border-bottom: 1px solid var(--border); padding-bottom: 2px; margin-bottom: 8px; }
.theme-editorial .filter-btn {
  border: none; border-radius: 0; background: none; padding: 10px 0; color: var(--muted);
  font-size: .72rem; text-transform: uppercase; letter-spacing: .11em; font-weight: 500;
  border-bottom: 2px solid transparent;
}
.theme-editorial .filter-btn.active { color: var(--heading); border-bottom-color: var(--accent); background: none; }
.theme-editorial .filter-btn:hover { color: var(--heading); }

/* recipe page: full-width photo with the title over it, matching the
   homepage masthead. Intro, timings and buttons sit below the photo so a
   long intro can't fight the image for legibility. */
.theme-editorial .recipe-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -48px;
  margin-bottom: 40px;
  min-height: clamp(400px, 58vh, 600px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--heading);
  isolation: isolate;
}
.theme-editorial .recipe-hero-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: -2;
}
.theme-editorial .recipe-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(16,15,13,.15) 0%, rgba(16,15,13,.42) 45%, rgba(16,15,13,.88) 100%);
}
.theme-editorial .recipe-hero-inner {
  position: relative; width: 100%;
  padding: 56px max(24px, calc(50vw - 516px));
  color: #fff;
}
.theme-editorial .recipe-hero-inner .chip { color: rgba(255,255,255,.8); display: block; margin-bottom: 10px; }
.theme-editorial .recipe-hero-inner h1 {
  color: #fff; margin: 0;
  font-size: clamp(2.2rem, 5vw, 3.7rem); line-height: 1.02; max-width: 18ch;
}

/* no photo: fall back to dark type on white */
.theme-editorial .recipe-hero--text-only {
  min-height: 0; background: none; margin-bottom: 24px;
}
.theme-editorial .recipe-hero--text-only::after { display: none; }
.theme-editorial .recipe-hero--text-only .recipe-hero-inner { color: var(--fg); padding-top: 24px; padding-bottom: 8px; }
.theme-editorial .recipe-hero--text-only .recipe-hero-inner h1 { color: var(--heading); }
.theme-editorial .recipe-hero--text-only .recipe-hero-inner .chip { color: var(--accent); }

/* Desktop: ingredients pinned left, everything else in the right column.
   DOM order is lede -> ingredients -> main, so when this collapses to one
   column on mobile you get intro, then ingredients, then method. */
.theme-editorial .recipe-columns {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 0 60px;
  align-items: start;
}
/* Intro sits top-right, above the method. The sidebar spans both rows on the
   left. DOM order is intro -> sidebar -> method, so collapsing to one column
   on mobile gives intro, timings, ingredients, method. */
.theme-editorial .recipe-lede { grid-column: 2; grid-row: 1; margin-bottom: 36px; }
.theme-editorial .recipe-side { grid-column: 1; grid-row: 1 / span 2; }
.theme-editorial .recipe-main { grid-column: 2; grid-row: 2; min-width: 0; }
.theme-editorial .recipe-sidebar-top { margin-bottom: 36px; }
.theme-editorial .recipe-lede .excerpt {
  font-family: var(--font-heading); font-size: 1.2rem; line-height: 1.55;
  color: var(--fg); max-width: 62ch; margin: 0;
}
.theme-editorial .recipe-lede .excerpt p { margin: 0 0 16px; }
.theme-editorial .recipe-lede .excerpt p:last-child { margin-bottom: 0; }
.theme-editorial .recipe-lede .excerpt p { margin: 0 0 14px; }
.theme-editorial .recipe-toolbar {
  display: flex; flex-direction: column; align-items: flex-start; gap: 22px;
}
.theme-editorial .recipe-meta {
  border: none; border-radius: 0; background: none;
  padding: 0; margin: 0; gap: 26px; flex-wrap: wrap;
}
.theme-editorial .recipe-meta strong { font-size: .64rem; letter-spacing: .14em; color: var(--muted); font-weight: 500; }
.theme-editorial .recipe-meta span { font-family: var(--font-heading); font-size: 1.15rem; font-weight: 500; }

.theme-editorial .action-row { display: flex; gap: 10px; margin: 0 0 26px; }
.theme-editorial .action-btn {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 10px 18px;
  border-radius: 999px; border: 1px solid var(--border); background: none; color: var(--fg);
  font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 500;
  cursor: pointer; font-family: var(--font-body);
}
.theme-editorial .action-btn:hover { border-color: var(--heading); }
.theme-editorial .action-btn.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.theme-editorial .action-btn .icon { font-size: .95rem; }

/* body: ingredients as bordered boxes (Apple app), directions with STEP labels */
.theme-editorial .recipe-body h2 {
  margin: 0 0 18px; padding-bottom: 0; font-size: .74rem;
}
.theme-editorial .ingredients ul { list-style: none; padding: 0; margin: 0; }
.theme-editorial .ingredients li {
  border: 1px solid var(--border); border-radius: 8px; padding: 13px 15px; margin-bottom: 9px;
  font-size: .93rem; line-height: 1.4; background: var(--card-bg);
}

.theme-editorial .method ol { list-style: none; padding: 0; margin: 0; counter-reset: step; }
.theme-editorial .method li { counter-increment: step; padding: 0 0 26px; margin: 0; border: none; }
.theme-editorial .method li::before {
  content: "Step " counter(step); display: block; font-family: var(--font-body);
  font-size: .68rem; text-transform: uppercase; letter-spacing: .15em; font-weight: 600;
  color: var(--accent); margin-bottom: 7px;
}
.theme-editorial .method li { font-size: 1rem; line-height: 1.62; }

.theme-editorial .ingredients .amount {
  font-weight: 500; color: var(--heading); white-space: nowrap;
}
.theme-editorial .ingredient-group {
  font-family: var(--font-body); font-size: .68rem; text-transform: uppercase;
  letter-spacing: .14em; font-weight: 600; color: var(--accent);
  margin: 22px 0 10px;
}
.theme-editorial .ingredients ul + .ingredient-group { margin-top: 26px; }

.theme-editorial .outro { margin-top: 36px; max-width: 66ch; font-size: .98rem; line-height: 1.62; }

.theme-editorial .gallery {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px; margin-top: 40px;
}
.theme-editorial .gallery figure { margin: 0; }
.theme-editorial .gallery img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 10px; }

.theme-editorial .notes { margin-top: 48px; max-width: 68ch; }
.theme-editorial .notes h2 {
  padding-bottom: 0; margin: 0 0 20px; font-size: .74rem;
  text-transform: uppercase; letter-spacing: .15em; font-family: var(--font-body); font-weight: 500; color: var(--muted);
}
.theme-editorial .note { margin-bottom: 22px; }
.theme-editorial .note h3 { font-family: var(--font-heading); font-size: 1.08rem; margin: 0 0 5px; }
.theme-editorial .note p { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--fg); }

.theme-editorial .tip-box {
  background: #f4f1ea; border: none; border-radius: 12px;
  padding: 20px 24px; margin-top: 44px; font-size: .95rem; max-width: 62ch;
}
.theme-editorial .tip-box strong {
  display: block; font-family: var(--font-body); font-size: .68rem; text-transform: uppercase;
  letter-spacing: .15em; color: var(--accent); margin-bottom: 6px; font-weight: 600;
}
.theme-editorial .tags { margin-top: 26px; }
.theme-editorial .tag { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-right: 14px; }

@media (max-width: 860px) {
  .theme-editorial .recipe-hero { margin-top: -32px; min-height: clamp(320px, 48vh, 460px); }
  .theme-editorial .recipe-hero-inner { padding: 32px 24px; }
  .theme-editorial .recipe-toolbar { gap: 20px; }
  .theme-editorial .recipe-columns { display: block; }
  .theme-editorial .recipe-side { margin-bottom: 8px; }
  .theme-editorial .recipe-lede { margin-bottom: 32px; }
  .theme-editorial .recipe-body { grid-template-columns: 1fr; gap: 36px; }
}

/* ---------------------------------------------------------------- thoughts */
.theme-editorial .page-intro { max-width: 62ch; font-size: 1.05rem; color: var(--muted); margin: 0 0 40px; }
.theme-editorial .empty-note { color: var(--muted); font-style: italic; }

.theme-editorial .article-list { max-width: 68ch; }
.theme-editorial .article-item { display: block; padding: 28px 0; color: var(--fg); }
.theme-editorial .article-item + .article-item { border-top: 1px solid var(--border); }
.theme-editorial .article-item time {
  font-size: .66rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--muted); font-weight: 500; display: block; margin-bottom: 8px;
}
.theme-editorial .article-item h2 {
  font-family: var(--font-heading); font-size: 1.6rem; line-height: 1.15;
  margin: 0 0 8px; color: var(--heading); text-transform: none; letter-spacing: -.02em;
  padding: 0; border: none;
}
.theme-editorial .article-item:hover h2 { color: var(--accent); }
.theme-editorial .article-item p { margin: 0; color: var(--muted); font-size: .98rem; line-height: 1.6; }

.theme-editorial .article-hero {
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  margin-top: -48px; margin-bottom: 44px; max-height: 56vh; overflow: hidden;
}
.theme-editorial .article-hero img { width: 100%; height: 100%; object-fit: cover; }
.theme-editorial .article-head { max-width: 62ch; margin: 0 0 36px; }
.theme-editorial .article-head time {
  font-size: .66rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--muted); font-weight: 500; display: block; margin-bottom: 12px;
}
.theme-editorial .article-head h1 {
  font-size: clamp(2.1rem, 4.4vw, 3.2rem); line-height: 1.05; margin: 0 0 16px;
}
.theme-editorial .article-head .standfirst {
  font-family: var(--font-heading); font-size: 1.2rem; line-height: 1.5;
  color: var(--muted); margin: 0;
}
.theme-editorial .article-body { max-width: 62ch; font-size: 1.05rem; line-height: 1.7; }
.theme-editorial .article-body h2, .theme-editorial .article-body h3 {
  font-family: var(--font-heading); text-transform: none; letter-spacing: -.02em;
  color: var(--heading); font-size: 1.5rem; margin: 40px 0 12px; padding: 0; border: none;
}
.theme-editorial .article-body p { margin: 0 0 20px; }
.theme-editorial .article-body figure { margin: 32px 0; }
.theme-editorial .article-body blockquote {
  margin: 32px 0; padding-left: 22px; border-left: 3px solid var(--accent);
  font-family: var(--font-heading); font-size: 1.2rem; color: var(--fg);
}

@media (max-width: 860px) {
  .theme-editorial .article-hero { margin-top: -32px; margin-bottom: 28px; }
}

/* ------------------------------------------------------------------ footer */
.theme-editorial .site-footer { border-top: 1px solid var(--border); margin-top: 80px; padding: 56px 0 40px; }
.theme-editorial .footer-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px; margin-bottom: 40px;
}
.theme-editorial .footer-brand img { height: 64px; width: auto; margin-bottom: 16px; }
.theme-editorial .footer-brand p {
  margin: 0; max-width: 34ch; color: var(--muted); font-size: .95rem; line-height: 1.6;
}
.theme-editorial .footer-col h3 {
  font-family: var(--font-body); font-size: .66rem; text-transform: uppercase;
  letter-spacing: .15em; font-weight: 600; color: var(--muted);
  margin: 0 0 14px; padding: 0; border: none;
}
.theme-editorial .footer-col ul { list-style: none; padding: 0; margin: 0; }
.theme-editorial .footer-col li { margin-bottom: 9px; }
.theme-editorial .footer-col a { color: var(--fg); font-size: .95rem; }
.theme-editorial .footer-col a:hover { color: var(--accent); }
.theme-editorial .footer-legal {
  margin: 0; font-size: .8rem; color: var(--muted);
  border-top: 1px solid var(--border); padding-top: 24px;
}
.theme-editorial .category-card .count {
  display: inline-block; margin-left: 8px; font-family: var(--font-body);
  font-size: .68rem; color: var(--muted); font-weight: 500;
}
@media (max-width: 760px) {
  .theme-editorial .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .theme-editorial .site-footer { margin-top: 48px; padding: 40px 0 32px; }
}

.theme-editorial .action-btn[hidden] { display: none; }

/* =========================================================================
   PRINT
   A recipe you can actually cook from: one column, black on white, no
   navigation or buttons, and steps that don't split across a page break.
   ========================================================================= */
@media print {

  @page { margin: 15mm 14mm; }

  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
    overflow-x: visible;
  }

  /* chrome and interactive bits have no business on paper */
  .site-header nav,
  .site-footer,
  .action-row,
  .filter-bar,
  .gallery,
  .masthead,
  .recipe-hero-bg,
  .article-hero,
  .tags { display: none !important; }

  /* keep a small masthead so a printed page is identifiably yours */
  .site-header { border: none !important; position: static !important; box-shadow: none !important; }
  .theme-editorial .logo img { margin-bottom: 0 !important; }
  .site-header .wrap { padding: 0 0 8mm 0 !important; display: block !important; }
  .theme-editorial .logo img { height: 14mm !important; }

  .wrap { max-width: none !important; padding: 0 !important; margin: 0 !important; }
  main.wrap { padding: 0 !important; min-height: 0 !important; }

  /* hero becomes a plain heading rather than white-on-photo */
  .recipe-hero {
    position: static !important; width: auto !important;
    margin: 0 0 6mm 0 !important; min-height: 0 !important;
    background: none !important; display: block !important;
    overflow: visible !important;
  }
  .recipe-hero::after { display: none !important; }
  .recipe-hero-inner { padding: 0 !important; color: #000 !important; }
  .recipe-hero-inner h1 { color: #000 !important; font-size: 22pt !important; margin: 0 0 2mm !important; }
  .recipe-hero-inner .chip { color: #000 !important; }

  /* single column: overview, then ingredients, then method */
  .recipe-columns { display: block !important; }
  .recipe-side, .recipe-main { width: auto !important; }
  .recipe-lede { margin-bottom: 5mm !important; }
  .recipe-lede .excerpt { font-size: 11pt !important; color: #000 !important; }

  .recipe-meta { gap: 10mm !important; padding: 0 0 4mm 0 !important; }
  .recipe-meta strong { color: #000 !important; }

  .ingredients { margin-bottom: 6mm; }
  .ingredients ul { columns: 2; column-gap: 10mm; }
  .ingredients li {
    border: none !important; border-bottom: 1pt solid #ddd !important;
    border-radius: 0 !important; padding: 1.5mm 0 !important; margin: 0 !important;
    background: none !important; break-inside: avoid;
  }
  .ingredients .amount { font-weight: 600; }

  .method li { padding-bottom: 4mm !important; break-inside: avoid; page-break-inside: avoid; }
  .method li::before { color: #000 !important; }

  h2, h3 { color: #000 !important; break-after: avoid; page-break-after: avoid; }

  .tip-box {
    background: none !important; border: 1pt solid #999 !important;
    border-radius: 0 !important; padding: 3mm 4mm !important; break-inside: avoid;
  }
  .tip-box strong { color: #000 !important; }

  .notes, .outro { break-inside: avoid; }

  a { color: #000 !important; text-decoration: none !important; }
  /* print the destination of content links, but not of every nav item */
  .recipe-main a[href^="http"]::after,
  .article-body a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }

  /* so a printed sheet can be traced back to the page it came from */
  .recipe::after {
    content: "plasticfree.kitchen";
    display: block; margin-top: 8mm; padding-top: 3mm;
    border-top: 1pt solid #ccc; font-size: 9pt; color: #444;
  }
}

/* ------------------------------------------------------- ingredient glossary */
.theme-editorial .glossary-count {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--muted); font-weight: 500; margin: 0 0 28px;
}
.theme-editorial .glossary-jump {
  display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 0 0 44px;
}
.theme-editorial .glossary-jump a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; height: 30px; padding: 0 6px;
  border: 1px solid var(--border); border-radius: 4px;
  font-size: .78rem; font-weight: 500; color: var(--fg);
}
.theme-editorial .glossary-jump a:hover { border-color: var(--accent); color: var(--accent); }
.theme-editorial .glossary-group { margin-bottom: 40px; }
.theme-editorial .glossary-group h2 {
  font-family: var(--font-heading); font-size: 1.9rem; text-transform: none;
  letter-spacing: -.02em; color: var(--accent); font-weight: 600;
  margin: 0 0 12px; padding: 0; border: none; scroll-margin-top: 24px;
}
.theme-editorial .glossary-list { list-style: none; padding: 0; margin: 0; }
.theme-editorial .glossary-list li {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 16px;
  padding: 14px 0; border-bottom: 1px solid var(--border);
}
.theme-editorial .glossary-name {
  font-family: var(--font-heading); font-size: 1.08rem; font-weight: 500; color: var(--heading);
}
.theme-editorial .glossary-uses {
  font-size: .66rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--muted); font-weight: 500; white-space: nowrap; align-self: center;
}
.theme-editorial .glossary-recipes {
  grid-column: 1 / -1; font-size: .9rem; color: var(--muted); line-height: 1.6;
}
.theme-editorial .glossary-recipes a { color: var(--muted); }
.theme-editorial .glossary-recipes a:hover { color: var(--accent); }
@media (max-width: 600px) {
  .theme-editorial .glossary-list li { grid-template-columns: 1fr; }
  .theme-editorial .glossary-uses { align-self: start; }
}
