/* Sacred Herbology baseline styles - Head of IT 17/09/2026. Marketing's redesign replaces these. */
.sh-header { background: var(--wp--preset--color--white); border-bottom: 1px solid #e7e5e4; }
.sh-header .wp-block-site-title { font-family: var(--wp--preset--font-family--serif); font-size: 1.6rem; margin: 0; }
.sh-header .wp-block-site-title a { text-decoration: none; color: var(--wp--preset--color--forest); }
.sh-hero { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--cream); text-align: center; }
.sh-hero h1 { color: var(--wp--preset--color--cream); margin: 0; }
.sh-footer { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--cream); }
.sh-footer a { color: var(--wp--preset--color--cream); }
.sh-footer p { margin: 0.35rem 0; }
/* card columns: home page only (Community Outreach 21/09/2026 - the old global rule boxed the product gallery too) */
.sh-home-content .wp-block-columns .wp-block-column { background: var(--wp--preset--color--white); border: 1px solid #e7e5e4; border-radius: 12px; padding: 1.25rem; }
.sh-home-content .wp-block-columns .wp-block-column img { border-radius: 8px; }
.wp-block-details { border-bottom: 1px solid #e7e5e4; padding: 0.75rem 0; }
.wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--forest); }
.is-style-sh-card { background: var(--wp--preset--color--white); border: 1px solid #e7e5e4; border-radius: 12px; padding: 1.5rem; }
@media (max-width: 781px) { .sh-hero { padding-top: 2rem !important; padding-bottom: 2rem !important; } }

/* ==========================================================================
   Journal - Community Outreach (Jesse Kirby), 21/09/2026, collab 2aaf21e8.
   Mobile first. Palette: forest / cream / ink / stone / rust. Serif = Instrument Serif, sans = Figtree.
   Templates: home.html (index), archive.html (categories), single.html (reading). PHP: inc/journal.php.
   ========================================================================== */
:root {
  --sh-forest: var(--wp--preset--color--forest, #1b4332);
  --sh-ink: var(--wp--preset--color--ink, #1a1a1a);
  --sh-stone: var(--wp--preset--color--stone, #57534e);
  --sh-cream: var(--wp--preset--color--cream, #fcfaf7);
  --sh-rust: var(--wp--preset--color--rust, #9a3412);
  --sh-line: #e7e2da;
  --sh-paper: #ffffff;
  --sh-sage: #eef3ef;
  --sh-ember: #fbf1ea;
  --sh-serif: var(--wp--preset--font-family--serif, "Instrument Serif", Georgia, serif);
  --sh-sans: var(--wp--preset--font-family--sans, Figtree, system-ui, sans-serif);
  --sh-measure: 40rem;
}

/* ---------- shared bits ---------- */
.sh-journal-eyebrow, .sh-journal-eyebrow a, .sh-j-eyebrow {
  font-family: var(--sh-sans); font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--sh-rust); text-decoration: none; margin: 0;
}
.sh-journal-eyebrow a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sh-journal-date { font-size: .85rem; color: var(--sh-stone); }

/* ---------- index hero + category chips ---------- */
.sh-journal-hero { padding: 2.75rem 1.25rem 2.25rem !important; position: relative; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 0%, #245c45 0%, var(--sh-forest) 55%, #133024 100%); }
.sh-j-kicker { text-align: center; margin: 0 0 .35rem; font-size: .74rem; letter-spacing: .22em; text-transform: uppercase; color: #cfe3d6; }
.sh-j-kicker a { color: inherit; text-decoration: none; }
.sh-j-kicker a:hover { color: #fff; }
.sh-journal-hero h1 { font-size: clamp(2.8rem, 11vw, 5.2rem); letter-spacing: -.01em; }
.sh-journal-intro { color: #e8efe9; font-family: var(--sh-serif); font-style: italic; font-size: clamp(1.15rem, 3.6vw, 1.45rem); margin: .4rem auto 0; max-width: 34rem; text-align: center; }
.sh-journal-hero .wp-block-term-description p { margin: 0; }
.sh-j-chips { display: flex; gap: .5rem; margin: 1.6rem -1.25rem 0; padding: 0 1.25rem .25rem; overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch; justify-content: flex-start; }
.sh-j-chips::-webkit-scrollbar { display: none; }
.sh-j-chip { flex: 0 0 auto; font-size: .85rem; font-weight: 500; color: var(--sh-cream); text-decoration: none; white-space: nowrap;
  border: 1px solid rgba(252, 250, 247, .35); border-radius: 999px; padding: .45rem .95rem; transition: background .2s, border-color .2s; }
.sh-j-chip:hover, .sh-j-chip:focus-visible, .sh-j-chip[aria-current="page"] { background: var(--sh-cream); color: var(--sh-forest); border-color: var(--sh-cream); }

/* ---------- index grid + cards ---------- */
.sh-j-main { padding: 2rem 1.1rem 3.5rem !important; }
.sh-j-grid { list-style: none; margin: 0 auto !important; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: 1fr; max-width: 1200px; }
.sh-j-grid > li { margin: 0 !important; }
.sh-journal-card { height: 100%; display: flex; flex-direction: column; background: var(--sh-paper); border: 1px solid var(--sh-line);
  border-radius: 16px; overflow: hidden; padding: 0 !important; transition: transform .25s ease, box-shadow .25s ease; }
.sh-journal-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(27, 67, 50, .45); }
/* one tile ratio everywhere (29/09/2026): the figure owns the 3:2 box, the image fills it absolutely.
   The old img height:100% resolved against an auto-height figure, so the 900x600 attributes and the
   stretched flex card set the box and lazy tiles blew out to hundreds of px on mobile. */
.sh-card-media { margin: 0 !important; overflow: hidden; position: relative; flex: 0 0 auto; aspect-ratio: 3 / 2; background: #eeeae0; }
.sh-card-media a { position: absolute; inset: 0; display: block; }
.sh-card-media img { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none;
  aspect-ratio: auto !important; object-fit: cover !important; object-position: center; border-radius: 0 !important; transition: transform .6s ease; }
.sh-journal-card:hover .sh-card-media img { transform: scale(1.03); }
.sh-card-body { display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1.2rem 1.25rem; flex: 1; }
.sh-card-body > * { margin: 0 !important; }
.sh-card-title { font-size: 1.55rem !important; line-height: 1.12 !important; }
.sh-card-title a { color: var(--sh-forest); text-decoration: none; }
.sh-card-title a:hover { color: var(--sh-rust); }
.sh-card-excerpt p { margin: 0; color: #44403c; font-size: .98rem; line-height: 1.6; }
.sh-card-excerpt .wp-block-post-excerpt__more-text { display: none; }
.sh-card-foot { margin-top: auto !important; padding-top: .6rem; border-top: 1px solid var(--sh-line); align-items: center; }
.sh-card-more { font-size: .88rem; font-weight: 600; color: var(--sh-forest); text-decoration: none; }
.sh-card-more::after { content: " \2192"; }
.sh-j-pager { margin-top: 2.5rem; }
@media (min-width: 640px) {
  .sh-j-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .sh-j-chips { justify-content: center; flex-wrap: wrap; overflow: visible; margin: 1.8rem auto 0; padding: 0; }
  .sh-journal-hero { padding: 4.5rem 1.5rem 3.5rem !important; }
}
@media (min-width: 1000px) {
  .sh-j-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem; }
  /* lead story: first card on page 1 runs across two columns, image beside the text */
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child { grid-column: 1 / -1; }
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-journal-card { flex-direction: row; }
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-media { flex: 0 0 60%; aspect-ratio: 3 / 2 !important; align-self: center; }
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-body { padding: 2.5rem 2.5rem 2rem; justify-content: center; }
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-foot { margin-top: 1rem !important; }
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-title { font-size: 2.3rem !important; }
  .sh-j-main { padding: 3rem 1.5rem 5rem !important; }
}

/* ---------- single: header ---------- */
.sh-journal-single { padding: 0 0 3.5rem !important; }
.sh-j-head { max-width: 46rem; margin: 0 auto; padding: 1.75rem 1.25rem 1.5rem; }
.sh-j-trail { gap: .5rem .9rem; align-items: center; margin-bottom: 1rem; }
.sh-journal-back { margin: 0; }
.sh-journal-back a { font-size: .85rem; font-weight: 500; color: var(--sh-stone); text-decoration: none; }
.sh-journal-back a::before { content: "\2190\00a0"; }
.sh-journal-back a:hover { color: var(--sh-forest); }
.sh-j-trail .sh-journal-eyebrow::before { content: ""; display: inline-block; width: 1.25rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: .75rem; opacity: .6; }
.sh-j-title { font-size: clamp(2.35rem, 8.5vw, 4.1rem) !important; line-height: 1.04 !important; letter-spacing: -.012em; margin: 0 0 1rem !important; color: var(--sh-forest); text-wrap: balance; }
.sh-j-standfirst p { font-family: var(--sh-serif); font-size: clamp(1.25rem, 4vw, 1.55rem); line-height: 1.35; color: var(--sh-stone); margin: 0; text-wrap: pretty; }
.sh-j-standfirst .wp-block-post-excerpt__more-text { display: none; }
.sh-j-byline { display: flex; flex-direction: column; gap: .2rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--sh-line); font-size: .9rem; color: var(--sh-stone); }
.sh-j-by strong { color: var(--sh-ink); font-weight: 600; }
.sh-j-role { display: block; font-size: .85rem; }
@media (min-width: 640px) {
  .sh-j-byline { flex-direction: row; justify-content: space-between; align-items: flex-end; }
  .sh-j-role { display: inline; }
  .sh-j-role::before { content: ", "; }
  .sh-j-head { padding-top: 3rem; padding-bottom: 2rem; }
}

/* ---------- single: hero photo ---------- */
.sh-j-hero { margin: 0 auto 2.25rem; max-width: 1140px; }
.sh-j-hero img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.sh-j-hero figcaption, .sh-j-body figcaption { font-size: .8rem; line-height: 1.45; color: var(--sh-stone); padding: .6rem 1.25rem 0; }
.sh-j-hero figcaption a, .sh-j-body figcaption a { color: inherit; text-decoration: underline; text-decoration-color: rgba(87, 83, 78, .4); text-underline-offset: 2px; }
@media (min-width: 900px) {
  .sh-j-hero { padding: 0 1.5rem; }
  .sh-j-hero img { border-radius: 18px; aspect-ratio: 16 / 9; }
  .sh-j-hero figcaption { padding: .7rem .25rem 0; text-align: right; }
}

/* ---------- single: reading body ---------- */
.sh-j-body { max-width: calc(var(--sh-measure) + 2.5rem); margin: 0 auto; padding: 0 1.25rem; font-size: 1.1rem; line-height: 1.78; color: #292524; }
.sh-j-body > * { margin-top: 0; margin-bottom: 1.35rem; }
.sh-j-body p { hanging-punctuation: first; text-wrap: pretty; }
.sh-j-body > p:first-of-type::first-letter {
  font-family: var(--sh-serif); float: left; font-size: 4.3em; line-height: .82; padding: .08em .1em 0 0; color: var(--sh-forest);
}
.sh-j-body h2 { font-size: clamp(1.7rem, 5.2vw, 2.15rem) !important; line-height: 1.15; color: var(--sh-forest); margin: 2.8rem 0 1rem; text-wrap: balance; }
.sh-j-body h2::before { content: ""; display: block; width: 2.25rem; height: 2px; background: var(--sh-rust); margin-bottom: .9rem; opacity: .85; }
.sh-j-body a { color: var(--sh-forest); text-decoration: underline; text-decoration-color: rgba(27, 67, 50, .35); text-underline-offset: 3px; }
.sh-j-body a:hover { color: var(--sh-rust); text-decoration-color: currentColor; }
.sh-j-body ul { padding-left: 0; list-style: none; }
.sh-j-body ul > li { position: relative; padding-left: 1.4rem; margin-bottom: .7rem; }
.sh-j-body ul > li::before { content: ""; position: absolute; left: .15rem; top: .72em; width: .42rem; height: .42rem; border-radius: 50%; background: var(--sh-forest); opacity: .75; }
@media (min-width: 640px) { .sh-j-body { font-size: 1.16rem; } }

/* in-body figures */
.sh-j-figure { margin: 2.25rem -1.25rem !important; }
.sh-j-figure img { display: block; width: 100%; height: auto; }
.sh-j-figure.is-portrait img { max-height: 78vh; width: auto; max-width: 100%; margin: 0 auto; }
@media (min-width: 720px) {
  .sh-j-figure { margin: 2.5rem -4rem !important; }
  .sh-j-figure img { border-radius: 12px; }
  .sh-j-figure figcaption { padding: .6rem 0 0; }
  .sh-j-figure.is-portrait { margin: 2.5rem auto !important; max-width: 30rem; }
  .sh-j-figure.is-portrait img { max-height: none; width: 100%; }
}

/* safety panels: the lines Medicine checked */
.sh-j-safety { background: var(--sh-ember); border: 1px solid #f1d9c8; border-left: 4px solid var(--sh-rust); border-radius: 14px; padding: 1.35rem 1.2rem .4rem; margin: 2.5rem 0 !important; }
.sh-j-safety > * { margin-top: 0; margin-bottom: 1.1rem; }
.sh-j-safety p, .sh-j-note p { font-size: 1.02rem; line-height: 1.65; }
.sh-j-safety h2 { margin: 0 0 .9rem !important; color: var(--sh-rust); font-size: clamp(1.5rem, 4.6vw, 1.85rem) !important; }
.sh-j-safety h2::before { display: none; }
.sh-j-safety ul > li { padding-left: 1.55rem; font-size: 1.02rem; line-height: 1.65; }
.sh-j-safety ul > li::before { width: .5rem; height: .5rem; border-radius: 1px; transform: rotate(45deg); background: var(--sh-rust); top: .62em; opacity: 1; }
.sh-j-safety a[href^="tel:"] { font-weight: 700; color: var(--sh-rust); white-space: nowrap; }
@media (min-width: 640px) { .sh-j-safety { padding: 1.75rem 1.9rem .6rem; } }

/* etiquette / practical notes */
.sh-j-note { background: var(--sh-sage); border-radius: 14px; padding: 1.35rem 1.2rem .4rem; margin: 2.5rem 0 !important; }
.sh-j-note > * { margin-top: 0; margin-bottom: 1.1rem; }
.sh-j-note h2 { margin: 0 0 .9rem !important; font-size: clamp(1.5rem, 4.6vw, 1.85rem) !important; }
.sh-j-note h2::before { display: none; }
@media (min-width: 640px) { .sh-j-note { padding: 1.75rem 1.9rem .6rem; } }

/* "Where this comes from" */
.sh-j-sources { margin: 3rem 0 0 !important; padding-top: 1.5rem; border-top: 1px solid var(--sh-line); }
.sh-j-sources h2 { font-size: 1.45rem !important; margin: 0 0 .9rem !important; color: var(--sh-ink); }
.sh-j-sources h2::before { display: none; }
.sh-j-sources ul { counter-reset: src; margin: 0; }
.sh-j-sources ul > li { counter-increment: src; padding-left: 2rem; font-size: .92rem; line-height: 1.55; color: #44403c; margin-bottom: .75rem; }
.sh-j-sources ul > li::before { content: counter(src); width: auto; height: auto; background: none; border-radius: 0; opacity: 1; top: 0; left: 0;
  font-family: var(--sh-serif); font-size: 1.1rem; line-height: 1.35; color: var(--sh-rust); min-width: 1.4rem; }

/* signature (markup from sh-bylines.php; name only since 21/09/2026, no contributors block) */
.sh-j-body .sh-byline, .sh-j-body .sh-contributors { border: 0; background: none; padding: 0; }
.sh-j-body .sh-byline { margin: 3rem 0 0 !important; padding: 1.4rem 1.3rem; background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 14px; margin-bottom: 1rem !important; }
.sh-j-body .sh-byline p { font-size: .92rem; line-height: 1.55; color: var(--sh-stone); margin: 0; }
.sh-j-body .sh-byline strong { display: inline-block; font-family: var(--sh-serif); font-weight: 400; font-size: 1.55rem; line-height: 1.15; color: var(--sh-forest); margin-bottom: .2rem; }
.sh-j-body .sh-contributors { margin: 0 0 1rem !important; padding: 1.1rem 1.3rem 1.2rem; background: #f7f4ef; border: 1px solid var(--sh-line); border-top: 0; border-radius: 0 0 14px 14px; }
.sh-j-body .sh-contributors-title { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--sh-rust); font-weight: 600; margin: 0 0 .6rem; }
.sh-j-body .sh-contributors ul { margin: 0; padding: 0; }
.sh-j-body .sh-contributors li { padding-left: 0; margin: 0 0 .55rem; font-size: .88rem; line-height: 1.5; color: var(--sh-stone); }
.sh-j-body .sh-contributors li::before { display: none; }
.sh-j-body .sh-contributors li strong { color: var(--sh-ink); font-weight: 600; }
.sh-j-body .sh-contributors li em { font-style: normal; color: #6b6660; }

/* "In our shop" (article) and "Read the story" (product page) */
.sh-j-shop, .sh-j-story { display: grid; grid-template-columns: 1fr; background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 16px; overflow: hidden; }
.sh-j-shop { width: calc(100% - 2.5rem); max-width: calc(var(--sh-measure) + 2.5rem); margin: 1.5rem auto 0; }
.sh-j-shop-media img, .sh-j-story-media img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.sh-j-shop-body, .sh-j-story-body { padding: 1.1rem 1.25rem 1.2rem; display: flex; flex-direction: column; gap: .4rem; justify-content: center; }
.sh-j-shop-body p, .sh-j-story-body p { margin: 0; }
.sh-j-shop-title, .sh-j-story-title { font-family: var(--sh-serif); font-size: 1.5rem; line-height: 1.15; }
.sh-j-shop-title a, .sh-j-story-title a { color: var(--sh-forest); text-decoration: none; }
.sh-j-shop-title a:hover, .sh-j-story-title a:hover { color: var(--sh-rust); }
.sh-j-shop-note { font-size: .85rem; font-weight: 600; color: #b3261e; }
.sh-j-story-excerpt { font-size: .93rem; line-height: 1.55; color: #44403c; }
.sh-j-shop-cta a, .sh-j-story-cta a { display: inline-block; margin-top: .35rem; font-size: .9rem; font-weight: 600; color: var(--sh-paper); background: var(--sh-forest);
  border-radius: 999px; padding: .55rem 1.1rem; text-decoration: none; transition: background .2s; }
.sh-j-shop-cta a:hover, .sh-j-story-cta a:hover { background: var(--sh-ink); }
.sh-j-story { margin: 1.75rem 0 0; }
@media (min-width: 560px) {
  .sh-j-shop { grid-template-columns: 38% 1fr; }
  .sh-j-shop-media img { aspect-ratio: auto; min-height: 100%; }
}
@media (min-width: 1100px) {
  .sh-j-story { grid-template-columns: 40% 1fr; }
  .sh-j-story-media img { aspect-ratio: auto; min-height: 100%; }
}

/* previous / next */
.sh-journal-nav { max-width: calc(var(--sh-measure) + 2.5rem); margin: 2.5rem auto 0 !important; padding: 1.25rem 1.25rem 0; border-top: 1px solid var(--sh-line); gap: 1rem; }
.sh-journal-nav .post-navigation-link-previous, .sh-journal-nav .post-navigation-link-next { flex: 1 1 45%; font-size: .9rem; color: var(--sh-stone); }
.sh-journal-nav .post-navigation-link-next { text-align: right; }
.sh-journal-nav a { display: block; font-family: var(--sh-serif); font-size: 1.2rem; line-height: 1.2; color: var(--sh-forest); text-decoration: none; margin-top: .2rem; }
.sh-journal-nav a:hover { color: var(--sh-rust); }

@media (prefers-reduced-motion: reduce) {
  .sh-journal-card, .sh-card-media img { transition: none; }
  .sh-journal-card:hover, .sh-journal-card:hover .sh-card-media img { transform: none; }
}

/* ==========================================================================
   Site polish - Community Outreach (Jesse Kirby), 21/09/2026, collab 81ded505.
   Header, home page (hero, Journal strip, product and standards cards, FAQ, newsletter), shop, footer.
   ========================================================================== */
/* ---------- header ---------- */
.sh-header { position: sticky; top: 0; z-index: 50; background: transparent; border-bottom: 1px solid var(--sh-line); }
/* Blur lives on a pseudo-element: backdrop-filter on the header itself traps the fixed mobile menu inside the 60px bar. */
.sh-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); pointer-events: none; }
.sh-header .wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; height: 100vh; height: 100dvh; z-index: 100000; background: #fff; overflow-y: auto; }
.admin-bar .sh-header { top: 32px; }
.sh-header > .alignwide { padding-top: .65rem !important; padding-bottom: .65rem !important; }
.sh-header .wp-block-site-logo img { width: 44px !important; height: auto; }
.sh-header .wp-block-site-title { font-size: 1.5rem; letter-spacing: -.005em; }
.sh-header .wp-block-navigation { gap: 1.6rem; }
.sh-header .wp-block-navigation-item__content { font-size: .82rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sh-ink); text-decoration: none; padding: .35rem 0; border-bottom: 1.5px solid transparent; }
.sh-header .wp-block-navigation-item__content:hover, .sh-header .current-menu-item .wp-block-navigation-item__content { color: var(--sh-forest); border-bottom-color: var(--sh-rust); }
.sh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.1rem; }
@media (max-width: 599px) { .sh-header .wp-block-site-title { font-size: 1.3rem; } .sh-header .wp-block-site-logo img { width: 38px !important; } }

/* ---------- buttons ---------- */
.sh-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .8rem 1.5rem; border-radius: 999px; font-weight: 600; font-size: .98rem; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.sh-btn-light { background: var(--sh-cream); color: var(--sh-forest); }
.sh-btn-light:hover { background: #fff; color: var(--sh-rust); }
.sh-btn-ghost { border: 1.5px solid rgba(252, 250, 247, .7); color: var(--sh-cream); }
.sh-btn-ghost:hover { background: rgba(252, 250, 247, .12); border-color: var(--sh-cream); color: #fff; }

/* ---------- home hero ---------- */
.sh-home-hero { position: relative; overflow: hidden; background: #0f2419; color: var(--sh-cream); min-height: min(82vh, 720px); display: flex; align-items: flex-end; margin-top: 0 !important; }
.sh-home-hero .sh-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 42%; }
.sh-home-hero::before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(10, 26, 18, .15) 0%, rgba(10, 26, 18, .35) 45%, rgba(10, 26, 18, .92) 100%); }
.sh-home-hero-inner { position: relative; z-index: 2; width: 100%; max-width: 1200px; margin: 0 auto; padding: 8rem 1.25rem 3.25rem; }
.sh-home-kicker { margin: 0 0 .6rem; font-size: .74rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: #d9e9de; }
.sh-home-title { margin: 0; font-family: var(--sh-serif); font-weight: 400; color: #fff; font-size: clamp(3.1rem, 13vw, 6.6rem); line-height: .95; letter-spacing: -.015em; text-wrap: balance; }
.sh-home-lede { margin: 1rem 0 0; max-width: 32rem; font-family: var(--sh-serif); font-style: italic; font-size: clamp(1.2rem, 3.8vw, 1.55rem); line-height: 1.35; color: #eef3ef; }
.sh-home-ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 0; }
.sh-home-hero-credit { position: absolute; z-index: 2; right: 1rem; bottom: .6rem; left: 1rem; margin: 0; text-align: right; font-size: .68rem; line-height: 1.4; color: rgba(252, 250, 247, .62); }
.sh-home-hero-credit a { color: inherit; }
@media (min-width: 900px) {
  .sh-home-hero { align-items: center; }
  .sh-home-hero .sh-hero-img { object-position: 30% 45%; }
  .sh-home-hero::before { background: linear-gradient(90deg, rgba(10, 26, 18, .05) 0%, rgba(10, 26, 18, .25) 38%, rgba(10, 26, 18, .88) 72%, rgba(10, 26, 18, .95) 100%); }
  .sh-home-hero-inner { padding: 5rem 2rem 5rem 52%; }
}

/* ---------- home content column ---------- */
.sh-home-main { padding: 0 0 4rem !important; }
.sh-home-content { padding: 0 1.25rem; }
.sh-home-content > h2 { text-align: center !important; margin: 4.5rem auto 2rem !important; font-size: clamp(2rem, 6vw, 2.8rem) !important; }
.sh-home-content > h2::after { content: ""; display: block; width: 2.5rem; height: 2px; background: var(--sh-rust); margin: 1rem auto 0; opacity: .85; }
.sh-home-content > p:has(+ h2) { text-align: center; margin: 4.5rem auto -3.6rem !important; font-size: .74rem; font-weight: 600; letter-spacing: .16em; color: var(--sh-rust); }
.sh-home-content > p:has(+ h2) + h2 { margin-top: 4.2rem !important; }

/* where your money goes */
.sh-money-band { margin: 0 calc(50% - 50vw) !important; max-width: none !important; width: 100vw; padding: 3rem 1.25rem 3.25rem !important; background: var(--sh-paper); border-bottom: 1px solid var(--sh-line); }
.sh-money-band > * { max-width: 44rem; margin-left: auto !important; margin-right: auto !important; }
.sh-money-band h2 { font-size: clamp(1.7rem, 5vw, 2.2rem) !important; margin: 0 auto .8rem !important; }
.sh-money-band p { color: var(--sh-stone); font-size: 1.02rem; line-height: 1.7; margin: 0 auto; }

/* ---------- home Journal strip ---------- */
.sh-home-journal { margin: 0 calc(50% - 50vw) !important; max-width: none !important; width: 100vw; background: var(--sh-sage); padding: 3.5rem 1.25rem 3rem; }
.sh-hj-wrap { max-width: 1200px; margin: 0 auto; }
.sh-hj-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem 2rem; margin-bottom: 1.75rem; }
.sh-hj-heading { margin: .45rem 0 0 !important; font-size: clamp(1.8rem, 5.5vw, 2.6rem) !important; max-width: 36rem; text-wrap: balance; }
.sh-hj-all { font-weight: 600; font-size: .95rem; color: var(--sh-forest); text-decoration: none; border-bottom: 1.5px solid var(--sh-rust); padding-bottom: .15rem; }
.sh-hj-all:hover { color: var(--sh-rust); }
.sh-hj-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.sh-hj-card { display: grid; grid-template-columns: 7.5rem 1fr; background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 14px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.sh-hj-card:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -20px rgba(27, 67, 50, .5); }
.sh-hj-media { display: block; }
.sh-hj-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sh-hj-body { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; gap: .3rem; }
.sh-hj-body p { margin: 0; }
.sh-hj-title { margin: 0 !important; font-size: 1.22rem !important; line-height: 1.15 !important; text-wrap: balance; }
.sh-hj-title a { color: var(--sh-forest); text-decoration: none; }
.sh-hj-title a:hover { color: var(--sh-rust); }
.sh-hj-excerpt { color: #44403c; font-size: 1rem; line-height: 1.6; }
.sh-hj-meta { margin-top: auto !important; padding-top: .25rem; font-size: .8rem; color: var(--sh-stone); }
.sh-hj-card.is-lead { grid-template-columns: 1fr; }
.sh-hj-card.is-lead .sh-hj-media img { aspect-ratio: 3 / 2; height: auto; }
.sh-hj-card.is-lead .sh-hj-body { padding: 1.2rem 1.25rem 1.3rem; gap: .5rem; }
.sh-hj-card.is-lead .sh-hj-title { font-size: 1.75rem !important; }
.sh-hj-note, .sh-j-photo-note { margin: 1.25rem 0 0 !important; font-size: .78rem; color: var(--sh-stone); text-align: right; }
.sh-j-photo-note { text-align: center; }
@media (min-width: 900px) {
  .sh-home-journal { padding: 5rem 2rem 4.25rem; }
  .sh-hj-grid { grid-template-columns: 1.35fr 1fr; grid-template-rows: repeat(3, auto); gap: 1.25rem; }
  .sh-hj-card.is-lead { grid-row: 1 / span 3; }
  .sh-hj-card.is-lead .sh-hj-media img { aspect-ratio: 4 / 3; }
  .sh-hj-card.is-lead .sh-hj-body { padding: 1.6rem 1.8rem 1.7rem; }
  .sh-hj-card.is-lead .sh-hj-title { font-size: 2.25rem !important; }
  .sh-hj-card:not(.is-lead) { grid-template-columns: 11rem 1fr; }
  .sh-hj-card:not(.is-lead) .sh-hj-body { padding: 1.1rem 1.25rem; justify-content: center; }
  .sh-hj-card:not(.is-lead) .sh-hj-title { font-size: 1.4rem !important; }
}

/* ---------- home product cards (the two 3-up columns rows with images) ---------- */
.sh-home-content > .wp-block-columns { max-width: 1200px !important; gap: 1.25rem; margin-top: 1.25rem !important; margin-bottom: 0 !important; }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column { position: relative; display: flex; flex-direction: column; padding: 0 0 1.25rem; border-radius: 16px; border-color: var(--sh-line); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column:hover { transform: translateY(-3px); box-shadow: 0 16px 32px -20px rgba(27, 67, 50, .5); }
.sh-home-content .wp-block-column > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.sh-home-content .wp-block-column .wp-block-image { margin: 0 0 1rem !important; background: #f3efe6; aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sh-home-content .wp-block-column .wp-block-image a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.sh-home-content .wp-block-column .wp-block-image img { width: 100%; height: 100%; object-fit: contain; border-radius: 0 !important; mix-blend-mode: multiply; padding: .75rem; transition: transform .5s ease; }
.sh-home-content .wp-block-column:hover .wp-block-image img { transform: scale(1.04); }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > :not(.wp-block-image) { padding-left: 1.25rem; padding-right: 1.25rem; }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > p:first-of-type { font-size: .9rem; color: var(--sh-rust); }
.sh-home-content .wp-block-columns:has(.wp-block-image) h3 { font-size: 1.55rem !important; line-height: 1.12; margin: .25rem 0 .5rem !important; }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > p:not(:first-of-type) { font-size: .88rem; color: var(--sh-stone); }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-buttons { margin-top: auto !important; padding-top: 1rem; }
.sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-button__link { padding: .6rem 1.2rem; font-size: .9rem; }
@media (max-width: 781px) {
  .sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column { display: grid; grid-template-columns: 8.5rem 1fr; grid-auto-rows: min-content; column-gap: 1rem; padding: 0; }
  .sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > .wp-block-image { grid-row: 1 / span 6; margin: 0 !important; aspect-ratio: auto; height: 100%; min-height: 9.5rem; }
  .sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > :not(.wp-block-image) { padding: 0 1rem 0 0; }
  .sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-column > p:first-of-type { padding-top: .9rem; }
  .sh-home-content .wp-block-columns:has(.wp-block-image) h3 { font-size: 1.3rem !important; }
  .sh-home-content .wp-block-columns:has(.wp-block-image) .wp-block-buttons { padding: .6rem 1rem .9rem 0; }
  .sh-home-content > .wp-block-columns { gap: .9rem; margin-top: .9rem !important; }
}

/* ---------- home standards (3-up columns without images) ---------- */
.sh-home-content .wp-block-columns:not(:has(.wp-block-image)) .wp-block-column { padding: 1.6rem 1.5rem 1.4rem; border-radius: 16px; border-color: var(--sh-line); border-top: 3px solid var(--sh-forest); }
.sh-home-content .wp-block-columns:not(:has(.wp-block-image)) h3 { font-size: 1.6rem !important; margin-bottom: .6rem !important; }
.sh-home-content .wp-block-columns:not(:has(.wp-block-image)) p { color: #44403c; font-size: .98rem; line-height: 1.65; }

/* ---------- home FAQ + newsletter ---------- */
.sh-home-content > p:has(+ h2) + h2 + p { text-align: center; color: var(--sh-stone); max-width: 36rem; margin: -1rem auto 1.75rem !important; }
.sh-home-content .wp-block-details { background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 12px; padding: 0; margin: 0 auto .75rem !important; }
.sh-home-content .wp-block-details summary { list-style: none; position: relative; padding: 1.05rem 3rem 1.05rem 1.25rem; font-size: 1.02rem; color: var(--sh-forest); }
.sh-home-content .wp-block-details summary::-webkit-details-marker { display: none; }
.sh-home-content .wp-block-details summary::after { content: "+"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; font-weight: 400; color: var(--sh-rust); transition: transform .2s; }
.sh-home-content .wp-block-details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.sh-home-content .wp-block-details > p { padding: 0 1.25rem 1.1rem; margin: 0; color: #44403c; }
.sh-home-content > h2:nth-last-of-type(1) + p { text-align: center; color: var(--sh-stone); max-width: 32rem; margin: -1rem auto 1.25rem !important; }
.sh-home-content > .wp-block-buttons:last-child { justify-content: center; }

/* ---------- shop archive + product pages ---------- */
.woocommerce ul.products li.product, .wc-block-product { text-align: left; }
.wc-block-product-template .wc-block-product, .wp-block-woocommerce-product-template .wc-block-product { background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 16px; overflow: hidden; padding-bottom: 1.1rem; transition: transform .25s ease, box-shadow .25s ease; }
.wc-block-product-template .wc-block-product:hover { transform: translateY(-3px); box-shadow: 0 16px 32px -20px rgba(27, 67, 50, .5); }
/* Shop images are designed square cards (bin/sh_product_card.py, 09/10/2026): show them whole, on white, untinted. */
.wc-block-product .wc-block-components-product-image { background: #fff; margin-bottom: .9rem !important; }
.wc-block-product .wc-block-components-product-image img { aspect-ratio: 1 / 1 !important; object-fit: cover !important; mix-blend-mode: normal; padding: 0; }
.wc-block-product > :not(.wc-block-components-product-image) { padding-left: 1.1rem; padding-right: 1.1rem; }
.wc-block-product .wp-block-post-title { font-family: var(--sh-serif); font-size: 1.4rem !important; line-height: 1.15; }
.wc-block-product .wp-block-post-title a { text-decoration: none; color: var(--sh-forest); }
.single-product .sh-j-story { max-width: 44rem; }

/* ---------- footer ---------- */
.sh-footer { background: #13301f; color: #dfe9e2; padding: 3.5rem 1.25rem 1.5rem !important; margin-top: 0 !important; font-size: .95rem; }
.sh-footer a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.sh-footer a:hover { text-decoration-color: #fff; }
.sh-footer p { margin: 0 0 .35rem; }
.sh-foot-grid { max-width: 1200px; margin: 0 auto; display: grid; gap: 2.25rem; grid-template-columns: 1fr; }
.sh-foot-mark { gap: .75rem; align-items: center; margin-bottom: 1rem !important; }
.sh-foot-mark .wp-block-site-logo img { width: 52px; border-radius: 8px; background: #fff; }
.sh-foot-mark .wp-block-site-title { font-family: var(--sh-serif); font-size: 1.8rem; color: #fff; margin: 0; }
.sh-foot-support { max-width: 30rem; line-height: 1.65; color: #c9d8ce; }
.sh-foot-h { font-size: .72rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #9fc0aa; margin-bottom: .8rem !important; }
.sh-foot-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.sh-foot-nav a { text-decoration: none; font-weight: 500; }
.sh-foot-nav a:hover { text-decoration: underline; }
.sh-foot-order { color: #c9d8ce; }
.sh-foot-order-name { font-family: var(--sh-serif); font-size: 1.3rem; line-height: 1.25; color: #fff; }
.sh-foot-base { max-width: 1200px; margin: 2.75rem auto 0 !important; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .82rem; color: #9fb4a6; gap: .25rem 1.5rem; }
.sh-foot-base p { margin: 0; }
@media (min-width: 800px) {
  .sh-footer { padding: 4.5rem 2rem 1.75rem !important; }
  .sh-foot-grid { grid-template-columns: 1.6fr .8fr 1.2fr; gap: 3rem; }
  .sh-foot-nav ul { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .sh-hj-card, .sh-home-content .wp-block-column, .sh-home-content .wp-block-column img { transition: none; }
}

/* single product */
.single-product .woocommerce-product-gallery__image { background: #f3efe6; border-radius: 18px; }
.single-product .wp-block-post-title { font-size: clamp(2.2rem, 6vw, 3.3rem) !important; line-height: 1.05; }
.single-product .woocommerce-Tabs-panel h1 { font-size: clamp(1.8rem, 5vw, 2.4rem) !important; margin-top: 0; }
.single-product .woocommerce-Tabs-panel h2 { font-size: clamp(1.5rem, 4.5vw, 1.9rem) !important; margin-top: 2.25rem; }
.single-product .woocommerce-Tabs-panel h3 { font-size: 1.3rem !important; margin-top: 1.75rem; }
.single-product .woocommerce-Tabs-panel { max-width: 46rem; line-height: 1.7; }
.single-product .woocommerce-tabs ul.tabs li a, .single-product .wc-tabs li a { text-decoration: none; }

/* "More from the Journal" under each entry - internal links. Community Outreach, 22/09/2026. */
.sh-j-more { width: calc(100% - 2.5rem); max-width: calc(var(--sh-measure) + 2.5rem); margin: 2.5rem auto 0; padding-top: 1.75rem; border-top: 1px solid var(--sh-line); }
.sh-j-more .sh-j-eyebrow { margin: 0; }
.sh-j-more-heading { margin: .35rem 0 1.1rem !important; font-size: clamp(1.5rem, 4.5vw, 1.9rem) !important; }
.sh-j-more-list { display: grid; gap: .85rem; }
.sh-j-more .sh-hj-card { grid-template-columns: 7.5rem 1fr; }
.sh-j-more .sh-hj-media img { aspect-ratio: 1 / 1; }
.sh-j-more .sh-hj-title { font-size: 1.2rem !important; }
.sh-j-more-all { margin: 1.1rem 0 0; text-align: right; }
@media (min-width: 700px) {
  .sh-j-more .sh-hj-card { grid-template-columns: 10rem 1fr; }
  .sh-j-more .sh-hj-media img { aspect-ratio: 3 / 2; }
  .sh-j-more .sh-hj-body { justify-content: center; padding: 1rem 1.25rem; }
  .sh-j-more .sh-hj-title { font-size: 1.35rem !important; }
}

/* =====================================================================================================
   Mobile fit - Head of IT, 29/09/2026 (Dr Iggulden: "it's all squished up and half of it's cut off").
   Designed cards and plates carry type, so CSS never crops them: natural aspect, height auto, contain.
   Backup of the pre-change file: sh.css.bak-mobilefit-20260929.
   ===================================================================================================== */

/* No sideways scroll anywhere. The two full-bleed home bands were 100vw PLUS their padding. */
.sh-home-journal, .sh-money-band { box-sizing: border-box; }
/* Safety net for desktop classic scrollbars (100vw includes the scrollbar); clip does not break sticky. */
.wp-site-blocks { overflow-x: clip; }

/* Designed card thumbnails: whole card, every width, no hover zoom (a zoom crops the edges). */
/* Journal index tiles (Head of History and Philosophy, 29/09/2026 23:30): the auto-ratio override above collapsed
   the tile box, so tiles rendered blank or at random heights on mobile. Every sh-card thumbnail is a 900x600
   hard crop (3:2), so a fixed 3:2 box with cover shows the whole designed card and crops nothing. */
.sh-card-media, .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-media { aspect-ratio: 3 / 2 !important; background: var(--sh-paper); }
.sh-card-media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; aspect-ratio: auto !important;
  object-fit: cover !important; transform: none !important; }
.sh-hj-media img, .sh-j-story-media img, .sh-j-hero img {
  width: 100% !important; height: auto !important; aspect-ratio: auto !important; min-height: 0 !important;
  object-fit: contain !important; transform: none !important; }
@media (max-width: 999px) { .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-media { align-self: stretch; } }
@media (min-width: 1000px) { .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-media { align-self: center; } }
.sh-hj-media, .sh-j-story-media { display: flex; align-items: center; background: var(--sh-paper); }

/* Article head: the designed hero shows whole, never 16/10 or 16/9 cropped. */
.sh-j-hero { max-width: 1040px; }

/* Home "The Journal" and "More from the Journal": on a phone every card stacks, card art full width. */
.sh-hj-card, .sh-j-more .sh-hj-card { grid-template-columns: 1fr; }
@media (min-width: 700px) {
  .sh-hj-card:not(.is-lead), .sh-j-more .sh-hj-card { grid-template-columns: 13rem 1fr; align-items: center; }
  .sh-hj-card:not(.is-lead) .sh-hj-media, .sh-j-more .sh-hj-media { padding: .6rem; }
}
@media (min-width: 900px) {
  .sh-hj-card:not(.is-lead) { grid-template-columns: 12rem 1fr; }
}

/* Shop panel inside an article: the product cover carries type too - letterbox it, never crop. */
.sh-j-shop-media { display: flex; align-items: center; justify-content: center; background: #f3efe6; }
.sh-j-shop-media img { object-fit: contain !important; padding: .75rem; mix-blend-mode: multiply; }

/* In-body figures (plates): the -4rem pull-out only where there is room for it. At 720-879px it
   pushed every figure 20px past the viewport. */
@media (min-width: 720px) and (max-width: 879px) {
  .sh-j-figure { margin: 2.5rem 0 !important; }
}

/* Journal category chips: wrap on a phone instead of a sideways strip with half a chip showing. */
@media (max-width: 639px) {
  .sh-j-chips { flex-wrap: wrap; justify-content: center; overflow: visible; margin: 1.4rem 0 0; padding: 0; gap: .45rem; }
  .sh-j-chip { font-size: .8rem; padding: .4rem .8rem; }
}

/* Shop grid on a phone: two columns of 170px cannot carry 1.4rem display type. */
@media (max-width: 599px) {
  .wc-block-product .wp-block-post-title { font-size: 1.12rem !important; line-height: 1.2; }
  .wc-block-product > :not(.wc-block-components-product-image) { padding-left: .75rem; padding-right: .75rem; }
  .wc-block-product .wp-block-button__link, .wc-block-product .wc-block-components-product-button__button { font-size: .78rem; padding: .5rem .7rem; white-space: normal; }
}

/* Read-aloud card on index pages: mounted under the page title, never above the site header. */
.sh-rd-mount { max-width: 1200px; margin: 0 auto; padding: 1.5rem 1.1rem 0; box-sizing: border-box; }
.sh-rd-mount:empty { display: none; }
.sh-card-pic { display: block; width: 100%; }

/* =====================================================================================================
   Tiles fit - Head of IT, 04/10/2026 (Dr Iggulden: "too vertically long with heaps of white gap ...
   you have to scroll a whole page just to see one"). Backup: sh.css.bak-tiles-20261004.
   Root cause: WordPress emits sizes="auto" on lazy images, and Chrome gives those images size
   containment (contain-intrinsic-size 3000x1500). The 29/09 mobile-fit rule set aspect-ratio:auto
   !important on .sh-hj-media / .sh-j-story-media images, which threw away the width/height ratio,
   so every home, "More from the Journal" and product-page story thumbnail fell back to 1500px tall
   with the designed card letterboxed in the middle. Fix: give those boxes their 3:2 ratio back.
   Cards carry type, so the whole card is shown (contain); off-ratio cards letterbox on paper.
   ===================================================================================================== */
.sh-hj-media img, .sh-j-story-media img {
  aspect-ratio: 3 / 2 !important; height: auto !important; contain-intrinsic-size: auto none; object-fit: contain !important; }
.sh-hj-media, .sh-j-story-media { padding: 0 !important; align-self: start; }
.sh-hj-card { align-items: start; }
.sh-hj-body { padding: .85rem 1rem .95rem; gap: .25rem; }
.sh-hj-title { font-size: 1.18rem !important; }
.sh-hj-card.is-lead .sh-hj-body { padding: 1rem 1.1rem 1.1rem; gap: .35rem; }
.sh-hj-card.is-lead .sh-hj-title { font-size: 1.5rem !important; }
.sh-hj-excerpt { font-size: .95rem; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sh-hj-meta { margin-top: .15rem !important; padding-top: 0; }
@media (min-width: 700px) {
  /* home: lead story across the top, art beside the text; the next three in a row beneath */
  .sh-hj-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-template-rows: none !important; gap: 1.25rem; }
  .sh-hj-card.is-lead { grid-column: 1 / -1; grid-row: auto !important; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important; align-items: center; }
  .sh-hj-card.is-lead .sh-hj-media img { aspect-ratio: 3 / 2 !important; }
  .sh-hj-card.is-lead .sh-hj-body { padding: 1.5rem 2rem; }
  .sh-hj-card.is-lead .sh-hj-title { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; }
  .sh-hj-card:not(.is-lead) { grid-template-columns: 1fr !important; }
  .sh-hj-card:not(.is-lead) .sh-hj-media { padding: 0 !important; }
  .sh-hj-card:not(.is-lead) .sh-hj-body { padding: .9rem 1.1rem 1rem; justify-content: flex-start; }
  .sh-hj-card:not(.is-lead) .sh-hj-title { font-size: 1.22rem !important; }
  /* "More from the Journal" under an article stays a compact list: art left, text right */
  .sh-j-more .sh-hj-card { grid-template-columns: 12rem 1fr !important; align-items: center; }
  .sh-j-more .sh-hj-body { padding: .8rem 1.1rem; }
}
@media (max-width: 699px) {
  /* "More from the Journal" on a phone: small designed thumb beside the title, three to a screen */
  .sh-j-more .sh-hj-card { grid-template-columns: 9.5rem 1fr !important; align-items: center; }
  .sh-j-more .sh-hj-body { padding: .6rem .8rem; }
  .sh-j-more .sh-hj-title { font-size: 1.05rem !important; }
}
/* product page "Read the story": art sits at its own ratio, no min-height stretch */
@media (min-width: 1100px) { .sh-j-story { align-items: center; } .sh-j-story-media img { min-height: 0 !important; } }

/* Journal index + category tiles: contain, not cover - a 1200x630 hand card was losing its edges
   (Myrrh). Tighter body, excerpt clamped, so one long excerpt no longer stretches a whole row. */
.sh-card-media img { object-fit: contain !important; }
.sh-card-body { gap: .4rem; padding: .85rem 1rem 1rem; }
.sh-card-title { font-size: 1.32rem !important; }
.sh-card-excerpt p { font-size: .94rem; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sh-card-foot { padding-top: .45rem; }
.sh-card-foot p, .sh-card-foot a { font-size: .85rem; }
@media (min-width: 1000px) {
  .sh-journal-index:not(.paged) .sh-j-grid > li:first-child .sh-card-excerpt p { -webkit-line-clamp: 4; font-size: 1rem; }
  .sh-j-grid { gap: 1.25rem; }
}
@media (max-width: 639px) {
  .sh-card-excerpt p { -webkit-line-clamp: 2; }
  .sh-card-title { font-size: 1.25rem !important; }
  .sh-j-grid { gap: 1rem; }
}

/* ---------- read-aloud buttons ----------
 * Light lime with dark text, in light and dark mode alike. The shared reader turned the
 * label near-black in dark mode while the green stayed forest, so it could not be read. */
body .aipx-rd-card .aipx-rd-start,
body .aipx-rd button.aipx-rd-btn.is-play,
body .aipx-rd button.aipx-rd-btn.is-play:hover {
  background: #cdeea6; color: #10261a;
}
body .aipx-rd-card .aipx-rd-start:hover { background: #bfe78f; filter: none; }

/* home: live shop strip (sacred-herbology/home-shop), 25/10/2026 */
.sh-hs { margin: 3rem auto 3.5rem; text-align: center; width: 100%; box-sizing: border-box; }
.sh-hs-grid { width: 100%; }
.sh-hs .sh-j-eyebrow { margin-bottom: .35rem; }
.sh-hs-heading { font-family: var(--sh-serif); font-size: clamp(2rem, 6vw, 2.8rem) !important; color: var(--sh-forest); margin: 0 0 1.6rem !important; }
.sh-hs-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; text-align: left; }
.sh-hs-card { flex: 0 1 calc(50% - .5rem); min-width: 0; box-sizing: border-box; }
@media (max-width: 899px) { .sh-hs-card .sh-j-eyebrow { font-size: .62rem; letter-spacing: .08em; } .sh-hs-title { font-size: 1.08rem !important; } }
.sh-hs-card { display: flex; flex-direction: column; background: var(--sh-paper); border: 1px solid var(--sh-line); border-radius: 16px; overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease; }
.sh-hs-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(27, 67, 50, .12); }
.sh-hs-media { display: block; background: #f3efe6; }
.sh-hs-media img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 0 !important; }
.sh-hs-body { padding: .9rem 1rem 1.05rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.sh-hs-body p { margin: 0; }
.sh-hs-title { font-family: var(--sh-serif); font-size: 1.22rem !important; line-height: 1.18; margin: 0 !important; }
.sh-hs-title a { color: var(--sh-forest); text-decoration: none; }
.sh-hs-title a:hover { color: var(--sh-rust); }
.sh-hs-price { margin-top: auto !important; padding-top: .45rem; font-weight: 600; color: var(--sh-ink); }
.sh-hs-soon { font-family: var(--sh-serif); font-style: italic; font-weight: 500; color: var(--sh-rust); letter-spacing: .02em; }
.sh-hs-all { margin-top: 1.6rem !important; }
.sh-hs-all a { display: inline-block; font-weight: 600; font-size: .95rem; color: var(--sh-paper); background: var(--sh-forest); padding: .7rem 1.4rem; border-radius: 999px; text-decoration: none; }
.sh-hs-all a:hover { background: var(--sh-ink); }
@media (min-width: 900px) { .sh-hs-grid { gap: 1.25rem; } .sh-hs-card { flex-basis: calc(25% - .94rem); max-width: 300px; } }
