/**
 * Bonza, homepage template. 23 content sections under the hero banner.
 *
 * Config investigated: checked Blocksy Customizer General > Colors (8-slot
 * palette), Typography, Buttons and Forms sections plus Companion Pro's
 * Header/Footer Builder before writing any of this. None of those screens
 * can express this page's per-section background bands (cream/green/white
 * alternating full-bleed rows), the multi-column card grids with per-card
 * accent borders, the horizontal-scroll product/review rows, or the
 * gut-organ accordion grid, none of that maps to a global Customizer
 * setting, it is unique page layout, so it is built as block content
 * (core/group, core/columns, core/details, core/buttons) with this CSS
 * providing the layout/spacing/color the blocks alone cannot express, the
 * same pattern already used by footer.css and checkout-header-footer.css
 * on this site. The homepage content itself lives in the page's block
 * editor (post_content), portable per this project's scope note, not
 * hardcoded here. This file is presentation only, no markup.
 *
 * Every color below resolves through var(--wp--preset--color--bhp-*, hex),
 * generated by the wp_theme_json_data_theme palette entries registered in
 * homepage/homepage.php, so editor palette changes cascade (Gate 2/3:
 * editor matches frontend). The hex after the comma is only the fallback
 * if that filter is ever removed. add_editor_style() loads this same file
 * into the block editor.
 *
 * Figma: cY9QX6IwGVaaGI4r7J2RRF (Bonza Dog), "Content Homepage" component
 * set 20121:99698, instance 34457:304330 inside Home Page - D 21316:76923
 * (desktop 1512), Home Page - T 23310:35537 (tablet 744), Home Page - M
 * 23313:52672 (mobile 428). Button states from component set "Button"
 * 29049:58925: enumerated Default / Hover / Disabled, each x Primary
 * (yellow FFC125, hover coral FF6256) / Secondary (green 247B4E, hover
 * yellow FFC125) / Outline (transparent border-green, hover fills white) /
 * Naked (bottom-border only), all Disabled at 60% opacity. ClickUp
 * 86eypb6m6.
 *
 * Colour tokens and font-family fallback chain otherwise follow the same
 * pattern already established by footer.css on this site (no site-wide
 * theme.json colour preset existed before this file, 86eyk8nqd "Design
 * foundations" is still in progress; Nominee/Kobe1.1 have no @font-face
 * anywhere on the site yet, open project-wide font question, see ClickUp
 * 86eypb6m6 "Fonts" section).
 *
 * Contrast pairs measured with the WCAG relative-luminance formula (not a
 * mockup color picker): black text on the FFC125 yellow button fill is
 * 12.91 to 1; white text on the 247B4E green button fill is 5.23 to 1
 * (CORRECTED 2026-09-21, 86eyxb3yu: was cited 4.62 to 1, wrong math; still
 * passes AA either way);
 * black text on the FF6256 coral hover fill is 7.13 to 1 (CORRECTED
 * 2026-09-21, 86eyxb3yu: was cited 8.02 to 1, wrong math -- this pairing
 * is not what ships anyway, see the ink-on-coral NOTE further down); the 247B4E green
 * outline-button label on the page's white/cream background is 5.23 to 1 on
 * white (CORRECTED 2026-09-21, 86eyxb3yu: was cited 4.62 to 1, wrong math;
 * contrast is symmetric so this is the same figure as the white-on-green
 * pairing above; still passes AA either way);
 * the 2E2A2A ink naked-button label on white is 14.18 to 1 (86eyv0k44
 * GL-05 recompute, was 494545 at 8.35 to 1); the F8EDE3
 * cream and 247B4E green section bands and the FFA825/FFC125/FF9572/6E5D84
 * accent border strips are decorative fills, not text pairs, contrast-exempt
 * as backgrounds/borders rather than foreground-on-background text. All
 * measured text pairs clear WCAG 2.2 AA's 4.5 to 1 floor for normal text.
 *
 * @date 2026-08-27
 */

.bhp-page {
	--bhp-cream: var(--wp--preset--color--bhp-cream, #F8EDE3);
	--bhp-green: var(--wp--preset--color--bhp-green, #247B4E);
	--bhp-ink: var(--wp--preset--color--bhp-ink, #2E2A2A); /* 14.18:1 on white / 12.30:1 on cream naked-button labels (WCAG AA/AAA) */
	--bhp-white: var(--wp--preset--color--bhp-white, #FFFFFF);
	--bhp-black: var(--wp--preset--color--bhp-black, #000000);
	--bhp-amber: var(--wp--preset--color--bhp-amber, #FFA825);
	--bhp-yellow: var(--wp--preset--color--bhp-yellow, #FFC125);
	--bhp-coral: var(--wp--preset--color--bhp-coral, #FF6256);
	--bhp-peach: var(--wp--preset--color--bhp-peach, #FF9572);
	--bhp-purple: var(--wp--preset--color--bhp-purple, #6E5D84);
	--bhp-taupe: var(--wp--preset--color--bhp-taupe, #6F683B);
	/* Missing from this branch until 2026-09-28 -- present on
	   bc-sc-wt-86eypb6m6-waves-1790421531 (PR #940) since it introduced
	   the S7 pill; without it `var(--bhp-callout-pink)` below resolved to
	   nothing and the pill background rendered transparent. */
	--bhp-callout-pink: var(--wp--preset--color--bhp-callout-pink, #FFEFEE);

	--bhp-heading-font: var(--wp--preset--font-family--bhp-heading, "Nominee", var(--theme-font-family, sans-serif));
	--bhp-body-font: var(--wp--preset--font-family--bhp-body, "Kobe1.1", var(--theme-font-family, sans-serif));
	/* Figma sets a handful of labels in Inter ExtraBold (800), a heavy geometric
	   sans. Inter 800 is self-hosted (footer.css @font-face). Those labels had
	   drifted to Kobe1.1, which ships 700 max, so they read lighter than the
	   design. Use this token for every Figma "Inter 800" text node. */
	--bhp-inter-font: var(--wp--preset--font-family--inter, "Inter", var(--theme-font-family, sans-serif));

	font-family: var(--bhp-body-font);
	color: var(--bhp-ink);
}

.bhp-page h1,
.bhp-page h2,
.bhp-page h3,
.bhp-page h4,
.bhp-page h5,
.bhp-page h6,
.bhp-page .bhp-eyebrow,
.bhp-page .wp-block-button__link {
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	text-transform: uppercase;
}

.bhp-page h1 { font-size: 48px; line-height: 1; color: var(--bhp-green); }
.bhp-page h2 { font-size: 36px; line-height: 40px; color: var(--bhp-green); }
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): D above is exact
   (36px/40px). T-744 is 30px/36px and M-428 is 24px/32px, confirmed
   node-by-node on 2 separate H2s (sections 2 and 4); the previous mobile
   override (26px, no line-height) matched neither. Tablet had no override
   at all before, so it inherited the D value. */
@media (min-width: 768px) and (max-width: 1439px) {
	.bhp-page h2 { font-size: 30px; line-height: 36px; }
}
/* Figma "H6/bold" text style, ink default + Figma-green on section 8's own
   instance via `.bhp-biotics-h6`. RETAGGED (86eypb6m6, hp-fix-a): both
   headings were bare `<h6>` skipping h3-h5 under the page's h2s, an axe
   heading-order violation; markup is now `<h3 class="...">`, so this rule
   moved from the element selector to the two classes to keep the size. */
.bhp-page .bhp-gutcentre-card-h,
.bhp-page .bhp-biotics-h6 { font-size: 18px; line-height: 20px; color: var(--bhp-ink); }
.bhp-page .bhp-biotics-h6 { color: var(--bhp-green); }
@media (max-width: 1439px) {
	.bhp-page .bhp-gutcentre-card-h,
	.bhp-page .bhp-biotics-h6 { font-size: 16px; line-height: 16px; }
}

.bhp-page p,
.bhp-page li {
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 18px;
	line-height: 24px;
}
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): this was a flat
   20px/1.2 (24px) at every width. Figma's D-1512 frame is 20px/24px, but
   T-744 and M-428 both read 18px/24px, the SAME 18px at tablet and mobile
   (line-height stays a constant 24px across all three, not scaling with
   font-size) -- confirmed node-by-node against 4 separate body paragraphs
   across 3 different sections (2, 5, 10), same values every time. Base
   above is now the T/M value (18px), with the desktop-only bump scoped to
   >=1440 (this project's D anchor), matching the same D-anchor convention
   already used for `.bhp-section`'s own padding fix. This is a global
   `.bhp-page p`/`li` rule, so it affects every section on the page, not
   only mine; flagged to hp-sec-b/lead since sections 11-20 were not
   re-verified against this new base by this branch. Any more specific
   selector (`.bhp-symptom-card p`, etc.) already overrides this and is
   unaffected. */
@media (min-width: 1440px) {
	.bhp-page p,
	.bhp-page li {
		font-size: 20px;
	}
}

/* GL-03: `.bhp-page .bhp-eyebrow` (0,2,0) must outrank `.bhp-page p`
   (0,1,1) or eyebrows inherit body-copy sizing (86eyv0k44). 86eypb6m6:
   Figma centres every eyebrow, so centred on the shared rule instead of
   per-section (the align-center utility + nth-of-type(9-17) overrides
   below now duplicate this -- left as-is to keep this diff one rule). */
.bhp-page .bhp-eyebrow {
	font-size: 12px;
	line-height: 16px;
	letter-spacing: 0.02em;
	color: var(--bhp-ink);
	display: block;
	text-align: center;
	margin-bottom: 4px;
}

@media (min-width: 768px) {
	.bhp-page .bhp-eyebrow {
		font-size: 14px;
	}
}

/* 86eypb6m6: Figma's tablet frame (744) sets every eyebrow to 14px, but the
   14px step above starts at 768, so 744-767 rendered 12px (mobile size).
   Confined to that band so 320-743 (12px, mobile frame) and 768+ don't move. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-page .bhp-eyebrow {
		font-size: 14px;
	}
}

/* 86eypb6m6 S02 "Does This Sound Familiar?": the eyebrow is a HUG-width text
   node at x:0 in Figma (Frame 2147229735 > "You're Not Imagining It",
   34151:188839; y:0, H2 at y:32 = 16px gap at 428/744/1512), so it sits
   flush left with the H2 and intro. Its textAlignHorizontal:CENTER is inert on
   a hug box. Scoped by the unique `.bhp-symptom-row` child, so every other
   section's centred eyebrow above is untouched. */
.bhp-page > section:has(> .bhp-symptom-row) > .bhp-eyebrow {
	text-align: left;
}

/* "The Gut Sits at the Centre" text block (34213:84582) is Figma
   textAlignHorizontal:CENTER, unlike every other section's left-aligned
   header. Utility class rather than editing every block's own alignment. */
.bhp-align-center .bhp-eyebrow {
	display: block;
	text-align: center;
}
.bhp-align-center > h2 {
	text-align: center;
}

/* Figma itemSpacing is a flat px per section (16/12/22), but WP core's
   `:root :where(.is-layout-flow) > *` sets margin-top to 1.5em of the
   heading's own font-size instead. post_content is frozen, so these key
   off markup ALREADY live -- no new classNames. */
.bhp-page .bhp-eyebrow + .wp-block-heading {
	margin-top: 16px;
}
/* science_caught_up: pre-existing `.bhp-science-h2` class on the heading.
   Ties the rule above at (0,3,0); wins by coming after it. */
.bhp-page .bhp-eyebrow + .bhp-science-h2 {
	margin-top: 12px;
}
/* formulated_with_science: `.bhp-feature-row` is a later, non-adjacent
   sibling (hence `~`) and unique to this section. */
.bhp-page .bhp-eyebrow + .wp-block-heading:has(~ .bhp-feature-row) {
	margin-top: 12px;
}
/* reviews: `.bppm-reviews__widget` is the Feefo carousel's live-rendered
   wrapper (confirmed on host, not just the static shortcode tag). */
.bhp-page .bhp-eyebrow + .wp-block-heading:has(~ .bppm-reviews__widget) {
	margin-top: 12px;
}
/* planet_badges: heading directly followed by `.bhp-badge-row`. */
.bhp-page .bhp-eyebrow + .wp-block-heading:has(+ .bhp-badge-row) {
	margin-top: 12px;
}
/* transparency: heading directly followed by `.bhp-transparency-inner`. */
.bhp-page .bhp-eyebrow + .wp-block-heading:has(+ .bhp-transparency-inner) {
	margin-top: 22px;
}
/* one_gut_whole_dog: below 1024px, the 16px above is the only source of
   this gap. Above it, flex items don't margin-collapse, so the eyebrow's
   own margin-bottom:4px stacks with the flex gap:16px unless re-zeroed. */
@media (min-width: 1024px) {
	.bhp-onegut__copy .bhp-eyebrow {
		margin-bottom: 0;
	}
	.bhp-onegut__copy .bhp-eyebrow + .wp-block-heading {
		margin-top: 0;
	}
}

/* Photo band (34213:85237): the photo itself IS the section, no padding.
   !important: plain padding:0 loses to a WP core block-gap rule at equal
   specificity, leaking padding-top through (86eypb6m6 S03a). */
.bhp-section.bhp-gutcentre-photo {
	padding: 0 !important;
	line-height: 0;
}
.bhp-gutcentre-photo__img,
.bhp-gutcentre-photo__pattern {
	margin: 0;
}
.bhp-gutcentre-photo__img img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	/* The uploaded media library file is 1920x1078, not the original
	   2448x1374 downloaded from Figma: WordPress's own resize-on-upload
	   scaled it down to a max width of 1920px. Matched here and in the
	   markup's width/height attrs to the REAL live file, confirmed via
	   `wp eval getimagesize()` against the actual uploaded attachment,
	   not the pre-upload source file (2026-09-10 audit). */
	aspect-ratio: 1920 / 1078;
}
.bhp-gutcentre-photo__pattern {
	display: block;
	position: relative;
	width: 100%;
	height: auto;
}
.bhp-gutcentre-photo__pattern img {
	display: block;
	width: 100%;
	height: auto;
	/* CORRECTED (86eypb6m6 parity audit, hp-sec-a): this section's own two
	   patterns are "Frame 2147229786 1"/"2" in Figma, the same shared
	   torn-edge component instanced across sections 3/5/9/19, always
	   1512x129.32 at D (11.69:1), not the previously-declared 1959/120
	   (16.325:1) -- see the `.bhp-pattern-strip img` rule above for the
	   full cross-section measurement and live-verification detail; the
	   same reasoning applies here. */
	aspect-ratio: 1512 / 129.32;
	object-fit: cover;
}
/* % margins track the strip's own aspect-ratio height at every width
   (86eypb6m6 S03a; -129.3125/1512 = -8.5524%). z-index:1 keeps the strip
   painted over the photo it now overlaps (hp-pr-review #968: the photo's
   in-flow layer otherwise covers it). */
.bhp-gutcentre-photo__pattern--top {
	margin-bottom: -8.5524%;
	position: relative;
	z-index: 1;
}
.bhp-gutcentre-photo__pattern--bottom {
	margin-top: -8.5524%;
	position: relative;
	z-index: 1;
}

/* Reusable torn-edge pattern strip (imageRefs a3d4bd6d.../91a5139...), the
   page's general section-transition texture, referenced by
   bonza_hp_pattern_strip(). Sits between two full-bleed .bhp-section bands
   with its own full-bleed break-out so there is no gap or side margin. */
.bhp-section-wrap {
	position: relative;
}
/* Now a <figure class="wp-block-image ..."> (Editor-Friendly Standard),
   not a bare <img>, so the UA/theme figure margin (block-axis, typically
   1em) needs zeroing explicitly, not just the horizontal break-out. */
.bhp-pattern-strip {
	display: block;
	position: relative;
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	height: auto;
}
.bhp-pattern-strip img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	/* CORRECTED (86eypb6m6 parity audit, hp-sec-a): every torn-edge strip on
	   this page traces back to the SAME Figma component ("Frame
	   2147229786", instances 1-11+), and every instance measures a
	   constant 1512x129.32 at D / 744x63.63 at T / 428x36.61 at M (11.69:1)
	   -- confirmed by walking the actual Figma child rectangle nodes inside
	   sections 5 ("One Gut. Whole Dog.") and 9 ("The Eight Gut-Organ Axes"),
	   both flanked by "Frame 2147229786 1"/"2" at these exact dimensions,
	   and cross-checked against the standalone divider sections 3, 7 and 19
	   in the section index, all identical. The previously-declared 1920/84
	   here was measured against the real, already-uploaded
	   bonza-hp-pattern-top-a.png/-bottom-a.png files via `wp eval
	   getimagesize()` (2026-09-10 audit) and that measurement was correct
	   for THOSE FILES, but the files themselves are the wrong export: half
	   the intended height relative to their width versus what Figma
	   actually draws. Re-pointing the CSS at the true ratio is safe with
	   `object-fit: cover` regardless (verified live via a same-technique
	   `page.evaluate` injection at 1440: the existing torn-edge artwork
	   scales up and crops symmetrically left/right with no visible seam,
	   repeat or distortion, just a taller and more pronounced wave -- see
	   `strip-before-1440.png`/`strip-after-1440.png`), but the two PNGs
	   should still be re-exported at the correct proportions and
	   re-uploaded when possible so nothing is being cropped needlessly. */
	aspect-ratio: 1512 / 129.32;
}
/* CORRECTED alongside the base rule above, same reasoning: this section's
   own bottom strip (bonza-hp-pattern-science.png) traces to Figma node
   34241:136210, also 1512x129.32 at D, not the previously-declared
   1920/118 (measured against the real uploaded file, which is the same
   class of under-height export as the reusable pair above). */
.bhp-pattern-strip--science img {
	aspect-ratio: 1512 / 129.32;
}
/* `.bhp-pattern-strip--nutrition-biotics` (Figma "Frame 2147229786 4",
   I...;34765:80362) is live, rendered by bonza_hp_biotics_triad(). No
   dedicated rule needed here -- it inherits ratio/margin from the
   shared `.bhp-pattern-strip img` and `--top` rules. */
.bhp-pattern-strip--top { margin-bottom: -1px; }
.bhp-pattern-strip--bottom { margin-top: -1px; }
/* Planet Band's own internal strip (86eypb6m6, Sec17 photo-panel gap):
   sits above the green band the same way `--top` does elsewhere on this
   page, so it takes the same raw/un-flipped orientation per the audit
   comment below -- the native green-on-bottom half already matches the
   band it leads into. Needs both edges tucked (photo above, band below). */
.bhp-pattern-strip--mid { margin-top: -1px; margin-bottom: -1px; }
/* FIX (86eypb6m6): this strip's asset is ~44% solid white padding before
   the wave starts, and the base rule's height-driven `cover` shows that
   padding untouched -- a detached white slab between photo and band.
   Force width-driven cropping so only the wave + green tail shows. */
.bhp-pattern-strip--mid {
	aspect-ratio: 1512 / 129.32;
	overflow: hidden;
}
.bhp-pattern-strip--mid img {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 180%;
	aspect-ratio: auto;
	object-fit: cover;
}

/* Lifestyle photo (Figma node 34259:225227, "good environment", 1512x846.97
   / 744x416.76 / 428x239.75 -- a constant 1.785:1 at every breakpoint, so
   one aspect-ratio covers all three -- scaleMode FILL). Full-bleed like
   `.bhp-pattern-strip` above, same break-out technique. */
.bhp-planetband-photo {
	display: block;
	position: relative;
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	height: auto;
}
.bhp-planetband-photo img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	aspect-ratio: 1512 / 846.97;
}

/* 86eypb6m6 visual audit (17 Sep): the reusable pair's two source PNGs
   (bonza-hp-pattern-top-a.png = imageRef a3d4bd6d..., -bottom-a.png =
   imageRef 91a5139...) each have the SAME native orientation baked in --
   the green half always sits in the file's own BOTTOM half, sky colour
   (white or cream) in the TOP half (confirmed by pixel sampling both PNGs,
   green starts ~y50 of 84). Figma's own node transforms (relativeTransform
   matrices pulled from every 34215-, 34241- and 34323-prefixed instance on
   the 1512 desktop frame, nodes-1.json) never rotate either file; they only ever
   mirror it about the horizontal axis (a=-1,d=1, left-right only, no
   vertical component) when the strip sits ABOVE a green band -- where the
   file's native green-on-bottom already matches the band immediately
   below -- and flip it about the vertical axis (a=1,d=-1, scaleY) when the
   strip sits BELOW a green band, so the native green-on-bottom becomes
   green-on-top and touches the band above it instead. This build applies
   neither transform: every strip renders raw and un-flipped regardless of
   which side of the band it is on. Above a green band that coincidentally
   still looks right; below one it does not -- the strip's sky-colour half
   touches the green band it should be flush against, and its green half
   spills into the next section instead. That mismatch holds regardless of
   which of the two `top`/`bottom` named variants a given call site uses:
   bonza_hp_formulated_with_science() deliberately swaps the labels (its
   own code comment: "the pair's usual order is reversed here") to get the
   right raw file on each side, and Figma's transform for that swapped
   instance still calls for the scaleY flip on the strip trailing the band
   even though it carries the `--top` class there. A structural sibling
   selector -- any pattern-strip figure that is the very next element
   after a `.bhp-band-green` section -- catches every one of these
   regardless of which named class it carries, with no markup change: One
   Gut Whole Dog's bottom strip, the Eight Gut-Organ Axes' bottom strip,
   Full Transparency's bottom strip, Formulated With Science's swapped
   `--top`-classed trailing strip, and A Good Reason to Stay's bottom
   strip. Verified live at https://bonza-retheme.blz.au/ after applying:
   all five now show green flush against the band above and cream/white
   flush against the section below, torn edge in between. */
.bhp-band-green + .bhp-pattern-strip {
	transform: scaleY(-1);
}

/* FIX (86eypb6m6): One Gut's trailing strip is a DEDICATED asset, sampled
   native green-top/cream-bottom (opposite of the reusable pair above), so
   it is already correct here -- the inherited flip adds a second green
   band before the cream Nutrition section. */
.bhp-onegut + .bhp-pattern-strip {
	transform: none;
}

/* The science pair (bonza-hp-pattern-science.png, imageRef 021f5d95...) is
   reused unmodified for two roles: the science section's own bottom edge
   (cream above, white below -- Figma applies only the horizontal-only
   mirror there, no flip, because the raw file is already
   cream-top/white-bottom, matching as-is) and the routines section's top
   edge (white above, cream below -- Figma applies a scaleY flip there,
   same relativeTransform check, because the un-flipped file would put
   white on the wrong side of that join). Only the second role needs
   fixing; scoping to `--top` here (not the sibling selector above -- this
   strip never sits next to a `.bhp-band-green`) leaves the science
   section's own correct-as-built bottom strip untouched. */
.bhp-pattern-strip--top.bhp-pattern-strip--science {
	transform: scaleY(-1);
}

/* One Gut Whole Dog side photo (Figma 34215:174747, 370.37px tall, 24px
   radius). Section itself becomes a row on desktop (copy | photo). */
.bhp-onegut {
	display: flex;
	flex-direction: column;
	gap: 32px;
}
/* 86eypb6m6 audit: every text node in this section (34215:174081/82/83,
   34755:69380, 34215:174735) is bound to a cream fill (#F8EDE3), not the
   pure white `.bhp-band-green` sets as its default foreground for every
   other green band on the page. Confirmed as a real, per-section choice
   and not a rendering artifact: the fill is a bound Figma variable, not a
   loose hex, and a different green section ("Formulated With Science. Not
   Marketing.", 34241:139880) IS pure white on the same fresh export, so
   this is not the shared rule being wrong. Needs its own selector rather
   than editing `.bhp-band-green` (would recolor the 5 other green
   sections). Compound `.bhp-section.bhp-onegut` for the base text color to
   beat `.bhp-band-green`'s own (0,1,0) on specificity regardless of source
   order; `h2`/`.bhp-eyebrow` need their own line since `.bhp-band-green h2`
   / `.bhp-band-green .bhp-eyebrow` are themselves compound selectors that
   would otherwise still win. */
.bhp-section.bhp-onegut { color: var(--bhp-cream); }
.bhp-section.bhp-onegut h2,
.bhp-section.bhp-onegut .bhp-eyebrow { color: var(--bhp-cream); }
.bhp-onegut__img {
	margin: 0;
}
.bhp-onegut__img img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 24px;
	object-fit: cover;
}
@media (min-width: 1024px) {
	.bhp-onegut {
		flex-direction: row;
		align-items: center;
		/* Figma's D row gap is 64px, not the 32px column gap above (that
		   value is mobile/tablet-only); the 32px carried through unchanged
		   into this row layout and undersized the photo column as a result. */
		gap: 64px;
	}
	/* Copy lives in one .bhp-onegut__copy wrapper (not loose direct children)
	   so this is a real 2-column row: copy | photo, not one flex item per
	   paragraph. */
	.bhp-onegut__copy {
		flex: 1 1 50%;
		display: flex;
		flex-direction: column;
		gap: 16px;
	}
	.bhp-onegut__img {
		flex: 1 1 50%;
		align-self: stretch;
	}
	.bhp-onegut__img img {
		height: 100%;
	}
}

/* "The Gut Sits at the Centre" (34761:78405): 2 cards left, circular icon
   diagram center, 2 cards right, wrapping below 1024px. */
.bhp-gutcentre-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 32px;
	width: 100%;
}
.bhp-gutcentre-col {
	display: flex;
	flex-direction: column;
	/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2, team-lead
	   follow-up): a column-aware live measurement (group cards by LEFT
	   edge instead of top edge, since a 2-column layout puts no two
	   cards on the same row) read 44px between the 2 stacked cards in
	   each column, against Figma's confirmed 22px (`Frame 2147229905`,
	   identical at D/T/M). The bulk of that 44px was the SAME "phantom
	   block spacing" bug already diagnosed and reset for every other
	   card row on this page (Blocksy's own `margin-block-end` surviving
	   on a stretched flex child) -- the reset list below only ever
	   covered `.bhp-gutcentre-row > *` (the 2 COLUMNS), never
	   `.bhp-gutcentre-col > *` (the CARDS one level deeper), so this
	   particular nesting slipped through. Declared gap was already 20px,
	   not 22px, a real but smaller second delta; corrected here too. */
	gap: 22px;
	flex: 1 1 300px;
	max-width: 360px;
}
.bhp-gutcentre-card {
	background: var(--bhp-white);
	border: 1px solid var(--bhp-yellow);
	border-radius: 24px;
	padding: 32px;
	box-shadow: 0 10px 24px 0 rgba(0, 0, 0, 0.04);
	text-align: left;
}
/* FIX (visual audit vs Figma, 86eypb6m6): the fifth card, "The Effects Can
   Show Up Elsewhere", is a direct child of the section rather than of the
   flanking columns, so it stretched the full 1312px content width where
   Figma draws it at 497px centred under the diagram. Capped and centred;
   the cap is inert below 497px, so mobile keeps the full column. */
.bhp-page > section > .bhp-gutcentre-card {
	max-width: 497px;
	margin-inline: auto;
}

.bhp-gutcentre-card h6 ,.bhp-gutcentre-card h3 { margin: 0 0 8px; }
.bhp-gutcentre-card p { margin: 0; }

/* Circular diagram (34761:78417).

   FIX (visual audit vs Figma, 86eypb6m6): the section rendered TWO offset
   copies of the five-circle cluster. `bonza-gutdiagram-center.png` is not
   the bare ring this block was written against; pulled off the live host and
   viewed on its own, the 676x704 asset is the COMPLETE diagram, pentagon
   backdrop, centre gut and all five labelled icon circles, and on its own it
   matches Figma. The five absolutely-positioned `__badge` spans layered a
   second set of circles on top at a different radius, which is the doubled
   "BALANCE / ..LANCE" and "BACTERIA / BAC.." seen on the deployed page.

   The badges are hidden visually rather than deleted, because the image
   carries `alt=""` and its labels are baked into the raster: dropping the
   spans outright would take those five words out of the accessibility tree
   as well as off the screen. Hidden this way a screen reader still reads
   balance, bacteria, immune, body, health.

   With the badges gone the box holds the whole diagram, so it takes the
   whole diagram's Figma size: 324 x 339 measured off the rendered desktop
   frame, against the 248 x 248 this had, and the aspect ratio comes from the
   asset itself so the box never letterboxes it. */
.bhp-gutcentre-diagram {
	position: relative;
	width: clamp(240px, 24vw, 324px);
	height: auto;
	aspect-ratio: 676 / 704;
	flex: 0 0 auto;
	margin: 48px 0;
}
.bhp-gutcentre-diagram__ring {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}
/* 86eypb6m6 audit: was two same-selector blocks. clip-path:inset(50%)
   clips this to zero visible area either way, so the later block's
   flex/width/border/background never painted a pixel; merged to one. */
.bhp-gutcentre-diagram__badge {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	background: none;
	box-shadow: none;
	aspect-ratio: auto;
}
.bhp-gutcentre-diagram__badge img {
	width: 42%;
	height: auto;
}
.bhp-gutcentre-diagram__badge em {
	font-style: normal;
	/* Figma specs Inter/800 for this label; Inter is self-hosted at 800
	   (footer.css), so it can be used here instead of the Kobe1.1 stand-in. */
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
	font-weight: 800;
	/* Corrected (86eypb6m6 hp-audit-a): node data across every badge label
	   (Balance/bacteria/immune/body/health) reads 10px/16px fixed, not the
	   8px/unitless-1 this shipped with. */
	font-size: 10px;
	line-height: 16px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--bhp-ink);
}
/* Offsets as a percentage of the 248px ring box (Figma raw px / 248). */
.bhp-gutcentre-diagram__badge--balance  { left: -2.8%;  top: -14.8%; }
.bhp-gutcentre-diagram__badge--bacteria { left: 62.9%;  top: -14.8%; }
.bhp-gutcentre-diagram__badge--immune   { left: -15.3%; top: 41.7%; }
.bhp-gutcentre-diagram__badge--body     { left: 76.6%;  top: 41.7%; }
.bhp-gutcentre-diagram__badge--health   { left: 30.6%;  top: 82.8%; }

/* FIX (visual audit vs Figma, 86eypb6m6): the "One Gut. Whole Dog." copy
   column ran at roughly double Figma's vertical rhythm. Measured gaps
   between the five blocks were 74, 36, 46 and 46 against a uniform 16 in
   the design (eyebrow -10627, heading -10595, then -10539, -10499, -10435
   in the pinned export, each block sitting exactly 16px below the one
   above). The column already declares `gap: 16px`; what it did not do was
   clear the theme's own block margins on its children, so every gap was the
   flex gap plus a stray margin. */
.bhp-onegut__copy > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* ==========================================================================
   FIX (visual audit vs Figma, 86eypb6m6): section banding.

   A 24px SLIVER OF PAGE BACKGROUND BETWEEN EVERY SECTION. Sampling a 6px
   column down both edges of the deployed page and grouping the colour runs
   found rgb(250, 251, 252), the body's own background, showing in a 24px
   band at all sixteen section boundaries: 1058, 3578, 4172, 4258, 5020,
   5663, 6342, 6428, 8461, 9251, 9338, 9862, 10599, 10685, 11104, 11477 and
   on. In Figma the bands butt straight against each other and the only thing
   between two of them is the torn-edge strip. The gap is the theme's block
   spacing again, this time on the sections themselves, so the cream, white
   and green bands never touch and every torn strip has a pale line under it.
   Zeroing it closes all sixteen and takes 384px off the page at 1440.

   SEVEN SECTIONS WERE NOT FULL BLEED. Every section frame in Figma is the
   full 1512 canvas width; the contents inside sit on the 1384 wide measure
   (or on the 1000 and 600 centred measures for section intros). Seven of the
   `.bhp-section-wrap` sections rendered at 1290 starting at x=75 on desktop
   and, worse, at 330 starting at x=23 on a 375 viewport, so their
   backgrounds and torn strips stopped short of both edges with the page
   background either side. Their own children were already breaking out to
   the full width, which is what made this read as a stray edge sliver rather
   than an obviously boxed section. Same alignfull break-out the hero already
   uses, so the technique is not new to this codebase.
   ========================================================================== */
.bhp-page > section {
	margin-block-start: 0;
	margin-block-end: 0;
}

.bhp-page > .bhp-section-wrap {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Section band backgrounds, alternating per Figma order */
.bhp-band-cream { background-color: var(--bhp-cream); }
.bhp-band-green { background-color: var(--bhp-green); color: var(--bhp-white); }
.bhp-band-green h2,
.bhp-band-green .bhp-eyebrow { color: var(--bhp-white); }
/* Tagline strong is cream, not this band's own white default, with a
   fixed 30px line-height at every tier. `:not(.bhp-section)` is the
   only bare `.bhp-band-green` on this page, so it stays off the rest. */
.bhp-band-green:not(.bhp-section) strong {
	line-height: 30px;
	color: rgb(248, 237, 227);
}
.bhp-band-white { background-color: var(--bhp-white); }

/* "The Science Caught Up" (86eypb6m6 Figma-parity audit, section 8, node
   34241:136183). This section's own eyebrow is amber (#FFA825, node
   34241:138162), not the page-wide ink default set by `.bhp-page .bhp-eyebrow`
   above, confirmed against the refreshed cY9QX6IwGVaaGI4r7J2RRF export.
   Scoped to this section only via the `.bhp-science` marker class added in
   homepage/patterns/homepage.php, not a change to the shared eyebrow rule
   (would recolor the other 15 sections that DO use ink). */
/* REVERTED 2026-09-17, same day it was added, on measured evidence.
   Figma node 34241:138162 does specify amber for this eyebrow, and that is why
   the rule below was written earlier today. Deployed and then scanned with axe:
   amber #FFA825 on the section's own cream #F8EDE3 measures 1.67:1. At 14px/900
   this is normal-size text and needs 4.5:1, so the rule shipped a WCAG 2.2 AA
   failure that did not exist before, on a project carrying AA as one of three
   contractual guarantees.
   Restoring the inherited ink, which measures 12.30:1 on the same cream. This
   is the same call already made on the footer copyright line, where the build
   deliberately diverges from a design value that fails contrast: match the
   design everywhere it is accessible, and report the design defect where it is
   not. Flagged to Vita for a corrected eyebrow colour; no replacement colour is
   invented here. Once a compliant amber is specified, re-add the rule with it.
.bhp-science .bhp-eyebrow { color: var(--bhp-amber); }
*/

/* This h2's own size/colour (node 34241:136183, re-confirmed vs spec,
   not a wrong-node match) was losing live to `.bhp-page h2`'s higher
   specificity. Rescoped under `.bhp-page` to win (86eypb6m6, hpfix-b). */
.bhp-page .bhp-science-h2 { font-size: 20px; line-height: 28px; color: var(--bhp-ink); }
@media (max-width: 1439px) {
	.bhp-page .bhp-science-h2 { font-size: 18px; line-height: 24px; }
}
@media (max-width: 767px) {
	.bhp-page .bhp-science-h2 { font-size: 16px; line-height: 20px; }
}

/* Two-column layout: white card (copy+stats+quote+CTA) left, photo right.
   Photo column collapses to a named empty slot until team-lead imports the
   located asset (see this function's own docblock). */
.bhp-science-grid {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 32px;
}
.bhp-science-card {
	flex: 1 1 480px;
	background: var(--bhp-white);
	border-radius: 16px;
	padding: 32px;
	box-sizing: border-box;
}
.bhp-science-card__photo {
	flex: 1 1 360px;
	min-height: 320px;
	/* 86eypb6m6 hp-thumbs2 radius audit: Figma node "image 677"
	   (34241:138158) and its parent frame both carry radius:null at
	   1512/744/428 -- square corners by design, not the 16px this card
	   inherited from the sibling .bhp-science-card rule's own radius. */
	border-radius: 0;
	background-color: var(--bhp-cream);
	overflow: hidden;
}
@media (max-width: 767px) {
	.bhp-science-card__photo { min-height: 200px; }
}
/* splice-hp-rebuild.php now renders a real <img> (attachment 145856,
   bhp-science-photo.jpg) inside this slot instead of the empty placeholder;
   fill/crop it to the card box rather than showing native 1024x617 size.
   min-height/background above are untouched so nothing changes until the
   splice script actually runs against bonza-retheme. */
.bhp-science-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

/* Amber left-border quote box (Figma node 34241:138181's containing
   frame); the quote text rule below is unchanged. */
/* Figma 34241:138180 (D/T/M): cream fill, 24px 18px padding, no radius,
   1px amber inside-stroke on the left only. The stroke sits inside the
   18px padding, so the CSS border takes 1px of it (17px + 1px border). */
.bhp-page .bhp-science__quote-box {
	background-color: var(--bhp-cream);
	border-left: 1px solid var(--bhp-amber);
	border-radius: 0;
	padding: 24px 18px 24px 17px;
	margin: 24px 0;
}

/* Figma's quote/tagline text style here (node 34241:138181) is Kobe1.1
   Regular, not italic; this paragraph carries no <em>, so no override is
   needed beyond matching the page's own p/li rule, kept only for the
   section-scoped hook other rules below can target. */
.bhp-science__quote { font-style: normal; }
/* Figma 34259:219809: the S09 button is 346x48 with 12px 16px padding at
   D and M; the shared outline button pads 16px 24px, which made it 362
   wide and 54 tall here. Scoped to S09 so the other outline buttons keep
   theirs. The 1px border is part of the 12px vertical padding. */
.bhp-science .bhp-btn-outline .wp-block-button__link {
	padding: 11px 15px;
	line-height: 24px;
}
/* Figma M428 (34259:219597): the S09 card pads 24px, so its content is
   340px wide, and the 346px button hangs 6px past it into that padding.
   Live padded 32px (324px content), which forced the button to wrap. */
@media (max-width: 767px) {
	.bhp-science-card { padding: 24px; }
	.bhp-science .wp-block-buttons { margin-right: -6px; }
}
/* Figma body-run fill on the cream callout is #403A31 at D/T/M. */
.bhp-page .bhp-science__quote-box .bhp-science__quote {
	--bhp-quote-ink: var(--wp--preset--color--bhp-quote-ink, #403A31);
	color: var(--bhp-quote-ink);
	margin: 0;
}

/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2): the T-744/M-428
   placed instances of this quote (node 34241:138181) bold + colour a
   middle clause ("the Biotics Triad, diverse plant fibres, PhytoPlus(R)
   and botanicals") -- see the new $quote_bold splice in
   bonza_hp_science_caught_up()'s own docblock for the exact character
   range and source. Base rule here carries the T/M treatment per this
   file's own D-anchor convention (no media = T/M default).
   NEEDS HUMAN -- DELIBERATE, OPERATOR-APPROVED DEVIATION, same pattern as
   the Button Naked hover note above: do not "fix" this colour back to
   Figma's raw measured value without reading this comment first. Figma's
   own placed value for this run is rgb(47,160,102) / #2FA066, not the
   site's --bhp-green token (#247B4E) -- measured 3.31:1 on white at 18px
   bold (NOT WCAG large text; bold only reaches the 3:1 threshold at
   14pt/18.67px+, this run is 18px), failing the 4.5:1 normal-text floor.
   Bonza carries a contractual WCAG 2.2 AA guarantee, so the guarantee
   wins: swapped to the existing --bhp-green token, which measures 5.23:1
   on white and passes. ACTION FOR DESIGN: confirm --bhp-green as the
   approved substitute, or supply an AA-passing exact value. */
.bhp-page .bhp-quote-highlight {
	font-weight: 700;
	color: var(--bhp-green);
}
/* D-1512 has no bold run (fontWeight uniform 400) but its fills are
   MIXED, i.e. the same phrase is coloured. The desktop export carries no
   per-run segments, so the green is taken from the T/M run and the
   weight stays 400 at 1440px and up. */
@media (min-width: 1440px) {
	.bhp-page .bhp-quote-highlight {
		font-weight: 400;
		color: var(--bhp-green);
	}
}

/* Stat row (Figma node 34241:138166): 3 fixed 196x110 cards, bg #247B4E,
   radius 13px, padding 24px top/bottom, 16px left/right, 12px gap. Card
   width is fixed at desktop (three cards fill the 612px copy column
   exactly: 3x196 + 2x12 = 612) but flexes below 768px so the row does not
   overflow narrow viewports; Figma's own tablet/mobile frames were not
   independently re-walked for this row so 768px/425px below follow the
   same stacking convention already used by `.bhp-symptom-row` above rather
   than a second Figma pull, flagged in the report for anyone re-auditing
   this section against T744/M428 directly. */
.bhp-stat-row {
	display: flex;
	gap: 12px;
	margin: 24px 0;
}
.bhp-stat-card {
	flex: 1 1 196px;
	max-width: 196px;
	background-color: var(--bhp-green);
	color: var(--bhp-white);
	border-radius: 13px;
	padding: 24px 16px;
	box-sizing: border-box;
}
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): both rules below
   were plain single-class selectors (0,1,0) on a `<p>` element, so
   `.bhp-page p` (0,1,1) always won regardless of source order -- confirmed
   on the deployed page: "240"/"~half" rendered at 20px/400/Kobe1.1/none
   (the generic p default) instead of any of THIS rule's own declared
   values. Same specificity bug this file already fixed once for
   `.bhp-eyebrow` (see the GL-03 comment above); scoped under `.bhp-page`
   here for the same (0,2,0) fix. Figma is 18px/20px at D, 16px/16px at T
   and M (confirmed node-by-node on "240" and "~half", both frames).
   86eypb6m6 residual audit: text-transform restored to Figma's own
   textCase=UPPER per explicit instruction ("~half" now renders "~HALF") --
   font-family stays Kobe1.1/body-font, an accepted deviation, untouched. */
/* "240"/"25%"/"~half" (10:Frame 2147229920): figma font=Inter
   (Kobe1.1-accepted), build was Nominee/heading-font. */
.bhp-page .bhp-stat-card__value {
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
	font-weight: 800;
	font-size: 18px;
	line-height: 20px;
	color: var(--bhp-white);
	margin: 0;
	text-transform: uppercase;
}
@media (max-width: 1439px) {
	.bhp-page .bhp-stat-card__value {
		font-size: 16px;
		line-height: 16px;
	}
}
.bhp-stat-card__value--arrow {
	display: flex;
	align-items: center;
	gap: 4px;
}
.bhp-stat-card__arrow {
	width: 24px;
	height: 24px;
	flex: none;
}
.bhp-page .bhp-stat-card__caption {
	font-size: 14px;
	font-weight: 700;
	line-height: 16px;
	color: var(--bhp-white);
	margin: 0;
}
@media (max-width: 767px) {
	.bhp-stat-row {
		flex-direction: column;
	}
	.bhp-stat-card {
		max-width: none;
	}
	/* Caption text (10:Frame 2147229920): figma M=12, D/T=14. */
	.bhp-page .bhp-stat-card__caption {
		font-size: 12px;
	}
}

/* 86eypb6m6 S09 "The Science Caught Up" (q55 + q56), Figma Sign-Off D/T/M
   nodes 34241:138162 (eyebrow), 34241:138166 / 34259:219900 (stat cards).

   q55 eyebrow: the shared `.bhp-page .bhp-eyebrow` rule centres every
   eyebrow, but in this section Figma sets a hug-width text at x=0 of the
   left-aligned header stack, so it sits on the H2/paragraph left edge.
   Colour is #AB6600, not Figma's #FFA825 (D/T/M). Size 14px at D and T, 12px at M; 900,
   letter-spacing 2%, line-height 16px are already correct on the base rule.
   NOTE: the eyebrow sits on the white .bhp-science-card (measured
   rgb(255,255,255)). #FFA825 there is 1.93:1, below WCAG AA 4.5:1, so it is
   darkened to the same-hue (HSL 36deg, 100% sat) #AB6600 = 4.53:1. Deliberate
   AA deviation from Figma, reported to QA (see PR body).

   q56 stat cards: Figma cards are a centred flex column (padding 24/16,
   number->label gap 6px, radius 13). The number sits in a 24px-tall box at
   every width (line-height 20/16 inside it), which is what makes the D card
   110px and the stacked T/M cards 94px. Live left-aligned the text and had
   no gap. The stacked layout (<=767) also let `flex: 1 1 196px` apply to the
   column's HEIGHT (196px cards), so the basis is reset there. */
.bhp-page .bhp-science .bhp-eyebrow {
	text-align: left;
	color: #AB6600; /* 4.53:1 on white; Figma #FFA825 is 1.93:1 */
}
@media (max-width: 599px) {
	.bhp-page .bhp-science .bhp-eyebrow { font-size: 12px; }
}
@media (min-width: 600px) {
	.bhp-page .bhp-science .bhp-eyebrow { font-size: 14px; }
}
.bhp-page .bhp-science .bhp-stat-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	text-align: center;
}
.bhp-page .bhp-science .bhp-stat-card__value,
.bhp-page .bhp-science .bhp-stat-card__caption {
	text-align: center;
	margin: 0;
}
.bhp-page .bhp-science .bhp-stat-card__value {
	min-height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media (max-width: 767px) {
	.bhp-page .bhp-science .bhp-stat-card { flex: none; width: 100%; }
}
@media (min-width: 600px) and (max-width: 767px) {
	.bhp-page .bhp-science .bhp-stat-card__caption { font-size: 14px; }
}

.bhp-section {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-top: 64px;
	padding-bottom: 64px;
	padding-left: max(64px, calc((100vw - 1512px) / 2 + 64px));
	padding-right: max(64px, calc((100vw - 1512px) / 2 + 64px));
	box-sizing: border-box;
}

/* `.bhp-section-wrap:where(:has(> .bhp-planetband-photo))` (the S16 outer <section>; matches existing markup on all 5 locales, 86eypb6m6):
   position-based nth-of-type broke across locale/section-order changes,
   so this and every other S16 rule below key off that class instead.
   Figma wants 20px top here, not the base 64px. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green {
	padding-top: 20px;
}

/* CORRECTED (86eypb6m6 parity audit, team-lead assignment): the base rule
   above is the D-1512 default (64px all sides); Figma's own T-744 frame
   uses 24px on EVERY side for every section that follows the general
   pattern (walked node by node: sections 2, 5's inner band, 6, 8, 9's
   inner band all read T pad 24/24/24/24 against D's 64/64/64/64), not a
   flat 64px carried down from desktop. Re-measured left/right specifically
   (not just top/bottom): the base rule's own `max(64px, calc((100vw -
   1512px) / 2 + 64px))` formula resolves to a flat 64px for ANY viewport
   under 1512 (the calc term goes negative and max() always picks 64px),
   so side padding was ALSO stuck at the desktop value through the entire
   768-1439 range, confirmed live via the cached build snapshot at 768 and
   1024 (both showed "64px 64px 64px 64px", not "24px" on any side).
   Scoped to 744-1439px so it sits strictly between the mobile rule below
   and the D-anchor default above; nothing assumes an intermediate value at
   1024, since Figma has no dedicated 1024 frame and the project's own
   D-to-1024 interpolation note only covers content WIDTH, not padding, a
   flat T value across the whole tablet range is the simplest defensible
   reading and avoids inventing an unspecified interpolation formula. The
   two sections whose top/bottom padding is NOT the general D/T/M-scaling
   pattern (Gut Sits at the Centre's 20px top, Science Caught Up's 0
   top/bottom) are unaffected: both are confirmed CONSTANT across all
   three Figma frames on TOP/BOTTOM only, their LEFT/RIGHT padding follows
   the same general 64/24/20 pattern as everything else, so the existing
   `:nth-of-type` overrides below (unconditional from 768px up, top/bottom
   only) remain correct at both this same tablet range and desktop without
   any change. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-section {
		padding-top: 24px;
		padding-bottom: 24px;
		padding-left: 24px;
		padding-right: 24px;
	}
}

@media (max-width: 743px) {
	/* CORRECTED alongside the tablet rule above: Figma's M-428 frame is
	   20px top/bottom for the same general-pattern sections (confirmed
	   node-by-node), not the previously-declared 32px (that value matched
	   no measured Figma frame at any width). Side padding at this
	   breakpoint was already 20px and is unchanged. 86eypb6m6 (PR #947,
	   live re-verify): ceiling narrowed from 767 to 743 -- same-specificity
	   as the shared tablet tier above (now min-width:744), and this rule's
	   later source position was winning the 744-767 overlap, confirmed live
	   (computed padding read 20px at 744 instead of 24 before this split).
	   h1/h2 sizing moved to its own <=767 block below, unaffected. */
	.bhp-section { padding-top: 20px; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 767px) {
	.bhp-page h1 { font-size: 32px; }
	/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): Figma's M-428
	   H2 is 24px/32px (confirmed node-by-node), not the previous 26px with
	   no line-height override. */
	.bhp-page h2 { font-size: 24px; line-height: 32px; }
}

/* FIX 5 + S08 744-767 overrides REMOVED (86eypb6m6, PR #947, team-lead
   sweep): both scoped this exact 24/24/24/24 value to 744-767 only, pending
   a check of whether the shared .bhp-section tablet tier (above) should
   widen from 768 to 744. Every T-744 section-padding node in
   tablet-744.jsonl reads a uniform 24/24/24/24 -- no section differs -- so
   the tier above now starts at 744 and covers both cases; these two
   :has() overrides are redundant with it. */

/* HM-14 (86eypb6m6 parity audit): the base .bhp-section rule above is a flat
   64px-all-sides desktop default, but Figma gives each of the 16 homepage
   sections its own vertical padding (left/right stay 64px on every one, so
   only padding-top/bottom need a positional exception here). Source of
   truth: reference/figma-context/manifest.json, Home Page - D 21316:76923,
   walked node by node per section (each section's Figma id is already
   recorded next to its markup in homepage/patterns/homepage.php). Live
   post_content is frozen (BLK-01) with none of the wrapper/utility classes
   the current pattern file has grown since, so every section here is still
   a plain sibling `.bhp-section.bhp-band-*`, addressable only by document
   position; that position is stable (content order, not something an editor
   reorders casually) and is exactly what was walked against the live DOM to
   pick these indices, so nth-of-type is the correct, lowest-risk selector
   without touching post_content. One rule per distinct padding value, not
   one per section, so this stays a single source-of-truth fix:
     #2  "The Gut Sits at the Centre"      (34213:84581)   -> 20px top
     #8  "The Science Caught Up"           (34241:136183)  -> 0 top/bottom
         (CORRECTED 86eypb6m6 PR #947, team-lead spacing.md sweep: this row
         originally read "#7". Ledger grep confirms node 34241:136183
         belongs to Frame 2147229920 (order9, "The Science Caught Up"
         heading), which is live DOM position 8 ("The Most Significant
         Mapping..." subheading), not position 7 ("The Eight Gut-Organ
         Axes"). Position 7 has no Figma override at all -- its own nested
         padding node (Frame 2147229895 under Frame 2147229901) reads a
         plain 64/64/64/64 (D) / 24/24/24/24 (T) / 20/20/20/20 (M), exactly
         the base tier with no exception. The rule below was firing on #7
         instead of #8 the whole time: #7 was wrongly zeroed and #8 never
         got its real 0/0 override. Fixed selector moved to the
         unconditional block further down -- idx8's own nested node (Frame
         2147229898 under Frame 2147229920) reads pad_t/pad_b=0 at all 3
         breakpoints, not just desktop; pad_l/pad_r already scale correctly
         via the base tier since the drilled-into child carries class
         bhp-section.)
     #12 "The Founder" (quote)             (34241:145502)  -> no override, base tier applies
     #13 "What Owners Are Saying" (Reviews)(34347:192683)  -> 32px top/bottom
     #14 "Feed Your Dog Well..." (green)   (34241:157916)  -> 20px top
     #15 "Our Responsibility" (badge row)  (34323:190186)  -> 32px top/bottom
     #16 "Good Questions" (FAQ, green)     (34323:194305)  -> 32px top/bottom
   All 9 unlisted sections keep the base rule's 64px-uniform default, which
   already matches Figma for those. Scoped to min-width:768px only: the
   audit's figma_expected values are D1512-sourced, mobile/tablet's own
   per-section scale (20px/24px-all vs today's flat 32px/20px) is a separate,
   not-yet-scoped delta, left untouched here to avoid changing 9 sections'
   mobile spacing on a fix this item never asked for.

   TODO(BLK-01 regen): every :nth-of-type selector in this file and the
   HM-13 rule below assumes the current 16-section live post_content order.
   The moment BLK-01 is resolved and post_content is regenerated from the
   pattern file, re-walk that order (the pattern file has since grown extra
   wrapper sections, e.g. bhp-gutcentre-photo, that are not live yet) and
   update or replace these positional rules; a regen will not error, it will
   just silently point these rules at the wrong sections. Tracked in
   ClickUp 86eypb6m6. */
@media (min-width: 768px) {
	.bhp-section:nth-of-type(2) {
		padding-top: 20px;
	}
	/* Positions 8/13/15/17 are -wrap: their outer <section> lacks class
	   bhp-section, so a plain .bhp-section:nth-of-type(n) form matches
	   nothing there -- drill into the inner .bhp-section child instead.
	   idx8's own override now lives, unconditional, with idx13/17 below,
	   since its Figma node reads 0/0 top/bottom at every breakpoint. */
	/* Founder (idx12) needs no override at all: its Figma node is uniform
	   64/64/64/64 (D) / 24/24/24/24 (T) / 20/20/20/20 (M) on every side,
	   exactly what the base .bhp-section tier already produces here --
	   forcing 64px vertical from 768px mismatched Figma's 24px tablet
	   range, so the override is gone and this falls through to base. */
}

/* idx8 "The Science Caught Up" pins top/bottom to 0 at every width --
   its Figma node reads 0/0 at D/T/M alike, so this stays unconditional
   rather than gated to a breakpoint. */
section:nth-of-type(8) > .bhp-section {
	padding-top: 0;
	padding-bottom: 0;
}

/* 86eypb6m6 (round 4, team-lead 744 sweep): S13/S14/S16 ledger-confirmed
   32/32 top+bottom at T-744 (nodes 34306:180165, 35066:65510,
   34323:190187), not just 768+. S12 needs no override -- its T-744 node
   reads the plain 24/24 tablet base. */
/* FIX (PR #947 final sweep): S13/S14/S16's M-428 nodes also read
   pad_t/pad_b=32 -- live had no override below 744px (plain 20/20). These
   3 rules move out of the min-width:744px gate, now apply unconditionally. */
section:nth-of-type(13) > .bhp-section {
	padding-top: 32px;
	padding-bottom: 32px;
}
.bhp-section:nth-of-type(16) {
	padding-top: 32px;
	padding-bottom: 32px;
}
/* section-audit-b: RealExperiences (S15, idx13) measured 20/64
   (inherited from the nth-of-type(2) rule + base), Figma spec is
   symmetric 32/32; carved out of the nth-of-type(2) group above. */
.bhp-section:nth-of-type(14) {
	padding-top: 32px;
	padding-bottom: 32px;
}

/* FIX (PR #947 final sweep): FAQ "Your Questions Answered" (idx17,
   self=no/wrap) has NO padding override today, so it sits on the plain
   base tier everywhere. Figma's Container node pins top/bottom to 32 at
   every width; left/right keep following the base-tier scale. */
section:nth-of-type(17) > .bhp-section {
	padding-top: 32px;
	padding-bottom: 32px;
}

@media (min-width: 744px) {
	/* 86eypb6m6 (round 4b, task-2 Figma walk): idx3 "The Gut Sits at the
	   Centre" (desktop-1512.jsonl:161, tablet-744.jsonl:186, mobile-428.jsonl:185,
	   node "Frame 2147229851") specs a constant 20px top padding at every
	   width from 744 up -- pad_r/b/l follow the normal base-tier scale, only
	   pad_t is pinned to 20. Live had no override, so top was scaling with
	   the base tier (24/64) instead of staying at 20. */
	.bhp-section:nth-of-type(3) {
		padding-top: 20px;
	}
}

/* HM-13 (86eypb6m6 parity audit), CORRECTED (sec-low pass, sections
   10-16 re-audit): the rule below originally read
   `.bhp-section:nth-of-type(11)`, reasoned as "the 11th .bhp-section",
   but :nth-of-type counts by TAG across ALL siblings sharing that tag,
   not by class -- and every top-level child of .bhp-page is a <section>
   regardless of whether it carries class bhp-section or bhp-section-wrap.
   The 11th section-tag sibling (0-indexed section 10, "Formulated With
   Science") is a .bhp-section-wrap, which lacks class bhp-section, so the
   compound selector matched nothing at all: a dead rule, confirmed live
   (target.matches('.bhp-section:nth-of-type(11)') === false for "The
   Founder"; matches('.bhp-section:nth-of-type(12)') === true instead).
   "The Founder" has been rendering the default cream background this
   entire time instead of Figma's white (34241:145502, rgb(255,255,255)).
   Corrected index to 12, re-verified live: matches uniquely, background
   now white at 1440/768/375, no other section affected. Rest of the
   original HM-13 reasoning (why band-cream/band-white can't be edited
   directly, why this needs a positional exception) still holds. */
.bhp-section:nth-of-type(12) {
	background-color: var(--bhp-white);
}

/* "Does This Sound Familiar?" symptom cards.
   CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2, team-lead
   follow-up, 2nd pass): the immediately-prior fix in this file's history
   (removing the old ">=1024px switches to a 4-up CSS Grid" rule outright)
   was itself incomplete -- it made every breakpoint scroll, but Figma's
   OWN D-1512 frame shows all 4 cards with NO scroll: 4x334 + 3x16 = 1384,
   which exactly fills the 1512-canvas's 1384px content width. This
   section's own `.bhp-section` base rule caps real content width at
   1384px for any viewport >=1512px (`padding-left/right: max(64px,
   calc((100vw-1512px)/2 + 64px))`), so >=1512 genuinely has room for 4
   fixed 334px cards with zero leftover -- only the 1440-1511px sliver
   (this project's own D-anchor threshold, narrower than Figma's actual
   1512 canvas) does not. Required behaviour, per team-lead: below 1440
   (T/M) keeps the fixed 334px card + horizontal scroll (matches the T/M
   frames, which are genuinely narrower than their own content).
   >=1440 needs every card visible with no scroll: `flex: 1 1 0; max-
   width: 334px` lets each card grow/shrink to fill the available row
   width (316px at exactly 1440, growing toward the 334px cap as the
   viewport widens toward 1512) and hard-caps at Figma's real 334px from
   1512 up to and including 2560 (where `.bhp-section`'s own max-width
   keeps the row's content area pinned at 1384px, so the 4 capped cards
   fill it exactly with no leftover space to centre). */
.bhp-symptom-row {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	padding-bottom: 8px;
	scrollbar-width: thin;
}
/* Section rhythm vs Figma Frame 2085664920 (86eypb6m6 audit L02): H2 -> intro
   16 (was the theme's 0.52em: +4.8 at D, +3 at T, +1.2 at M), the 285px card
   row -> closing line 28 (the row's own 8px scroll padding + 20), and no
   phantom 22px under the closing line (it is the last child; Figma's 22 is
   the header->row gap only). Gives 599 / 539 / 607 at D / T / M. */
.bhp-page > section:has(> .bhp-symptom-row) > h2.wp-block-heading {
	margin-bottom: 16px;
}
.bhp-page > section:has(> .bhp-symptom-row) > .bhp-symptom-row {
	margin-bottom: 20px;
}
.bhp-page > section.bhp-section:has(> .bhp-symptom-row) > p.wp-block-paragraph:last-child:not(.bhp-eyebrow) { /* beats .bhp-section:nth-of-type(1) > p:not(.bhp-eyebrow) */
	margin-bottom: 0;
}
.bhp-symptom-card {
	flex: 0 0 334px;
	background: var(--bhp-white);
	border-radius: 8px;
	padding: 28px;
	/* Figma Frame 2147229722 (and its three siblings) is a fixed 285px tall
	   at D1512, T744 and M428 alike (86eypb6m6 audit L02). */
	min-height: 285px;
	box-shadow: 0 10px 24px 0 rgba(0, 0, 0, 0.04);
}
@media (min-width: 1440px) {
	.bhp-symptom-card {
		flex: 1 1 0;
		/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2, team-lead
		   follow-up, 3rd pass): hp-audit-build's live measurement at
		   1440 (the one width this fix doesn't hard-cap to 334px) found
		   uneven widths -- 2 cards pinned at 334, the other 2 squeezed
		   to 294-301 -- even though the 1312px/4 = 316px-each math is
		   right. Root cause: a flex item's default `min-width: auto`
		   measures its OWN content's intrinsic minimum width, which can
		   exceed `flex-basis: 0`'s computed 316px share for whichever
		   card has the longest quote text, so THAT card refuses to
		   shrink below its own text's width and the shorter-text cards
		   absorb the shortfall instead of splitting it evenly. `min-
		   width: 0` overrides that default, letting every card actually
		   reach its equal computed share regardless of content length
		   (the card's own text still wraps inside the fixed 28px
		   padding either way, nothing is lost). */
		min-width: 0;
		max-width: 334px;
	}
}

/* ==========================================================================
   FIX (visual audit vs Figma, 86eypb6m6): phantom block spacing inside every
   horizontal card row on this page.

   Figma draws each row's cards flush top and bottom. The build rendered the
   last card in every row taller than its siblings, at every breakpoint:

     .bhp-symptom-row       250, 250, 250, 274
     .bhp-gutcentre-row     416, 248, 440
     .bhp-onegut            379, 403
     .bhp-axis-grid         76 x 7, then 100
     .bhp-stat-row          120, 120, 144
     .bhp-card-row          165 x 4, then 189   (class removed 2026-09-22)
     .bhp-feature-row       184, 184, 160
     .bhp-transparency-row  212, 236
     .bhp-review-row        109 x 4, then 133

   The cards are not the problem. Blocksy applies the theme's block spacing
   as `margin-block-end: var(--theme-content-spacing)` to every child but the
   last, and inside a stretched flex or grid row that margin comes out of the
   child's own height rather than sitting below it. So every card except the
   last lost 24px of height, and each row ended up 24px taller than its
   content needed. Found by walking the page for flex/grid rows whose
   children have unequal heights and a non-zero `margin-block-end`, which
   returned all nine at once rather than one section at a time.

   Safe to zero in every case because each of these rows declares its own
   `gap` (32px, 12px, 16px, 20px, 12px, 24px, 16px), so the wrapped rows keep
   their vertical spacing from that and the margin was only ever duplicating
   it. Verified by injection: all four symptom cards come out at 250px at
   1440, 768 and 375, and the row loses its spare 24px.

   CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2, team-lead
   follow-up): the "CARD WIDTH BELOW 1024" override below this comment
   (28px gap / 320px card under 1024px) is REMOVED. A row-aware live gap
   measurement (grouping DOM siblings into rows by top edge, not a naive
   DOM-order vertical diff) found the symptom row's real horizontal gap
   reading 28px at T-768/M-375 against Figma's 16px, while D-1440
   (unaffected by this override) already matched at 16px. Reading the raw
   Figma node data directly settles which one is right: `Frame 2147229724`
   (the actual 4-card row, one level inside the outer `Frame 2147229892`
   this file's prior comment mis-measured) carries `gap:16` and 334px-wide
   children at EVERY one of D/T/M's own frame exports, identical absolute
   pixel positions (x=0/350/700/1050) at all three -- confirmed this is a
   deliberate single 1384px-wide composition reused via horizontal
   overflow/scroll at every breakpoint (Figma's own frame is narrower than
   its content at T/M, same affordance this row's `overflow-x:auto`
   already implements), not three separately-authored sizes. The 319px/
   322px/28px figures the removed override cited were a measurement of
   the BUG's own rendered output, not of Figma. Base rule above (334px
   card, 16px gap) is already correct at every breakpoint now that this
   override is gone.
   ========================================================================== */
.bhp-symptom-row > *,
.bhp-gutcentre-row > *,
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2, team-lead
   follow-up): `.bhp-gutcentre-col`'s own children (the 2 stacked cards
   in each of section 4's 2 columns) never got this reset -- only the
   ROW's direct children (the columns themselves) did. Same phantom-
   margin bug, one level deeper than this fix originally reached. See
   `.bhp-gutcentre-col`'s own comment above for the measured delta. */
.bhp-gutcentre-col > *,
.bhp-onegut > *,
.bhp-axis-grid > *,
.bhp-stat-row > *,
.bhp-feature-row > *,
.bhp-transparency-row > * {
	margin-block-end: 0;
}
.bhp-symptom-card.bhp-accent-green { border-left: 3px solid var(--bhp-green); }
.bhp-symptom-card.bhp-accent-coral { border-left: 3px solid var(--bhp-coral); }
.bhp-symptom-card.bhp-accent-peach { border-left: 3px solid var(--bhp-peach); }
.bhp-symptom-card.bhp-accent-purple { border-left: 3px solid var(--bhp-purple); }
.bhp-symptom-card.bhp-accent-yellow { border-left: 3px solid var(--bhp-yellow); }
/* The Figma stroke is strokeAlign INSIDE (left weight 3, others 0), so the
   28px padding is measured from the outer edge: take the 3px border out of
   the left padding or every card's content sits 3px right of Figma
   (86eypb6m6 audit L02, text-left-x +2.6). */
.bhp-symptom-card[class*="bhp-accent-"] { padding-left: 25px; }

/* Quote glyph above each symptom card's quote (Figma "Union" icon, 60%
   opacity, accent-colored). Inlined SVG with fill="currentColor" (same
   pattern bonza_hero_icon() already uses), colored per card via the
   accent-class `color`. */
.bhp-symptom-card__quote-icon {
	display: block;
	/* Figma "Union" (34213:83742) is 35.77x28.46 with its 1px stroke bleeding
	   to a 37.04x29.46 render box; the 38x30 viewBox carries that bleed, so
	   the element is the render box and the margins hand back the bleed
	   (-0.5px each side) to keep the 28.46 layout box (86eypb6m6 audit L02:
	   icon was 24x19). */
	width: 37.04px;
	height: 29.46px;
	/* Figma Auto Layout itemSpacing is 16px between every child in this
	   card (icon, quote, divider, body), not 8px (86eypb6m6 audit, node
	   34213:83741). */
	margin: -0.5px 0 15.5px -0.5px;
	opacity: 0.6;
}
.bhp-symptom-card.bhp-accent-green .bhp-symptom-card__quote-icon { color: var(--bhp-green); }
.bhp-symptom-card.bhp-accent-coral .bhp-symptom-card__quote-icon { color: var(--bhp-coral); }
.bhp-symptom-card.bhp-accent-peach .bhp-symptom-card__quote-icon { color: var(--bhp-peach); }
.bhp-symptom-card.bhp-accent-purple .bhp-symptom-card__quote-icon { color: var(--bhp-purple); }
.bhp-symptom-card.bhp-accent-yellow .bhp-symptom-card__quote-icon { color: var(--bhp-yellow); }

/* Card copy (86eypb6m6 audit, nodes 34213:83744/83745/83746): both
   paragraphs measured live at 20px/400 (inherited from `.bhp-page p`
   above), but Figma sets 16px throughout, the quote at 22px line-height
   (italic, matching the existing `<em>` wrap in bonza_hp_sound_familiar()
   already, no PHP change needed) and the body at 700 weight/20px
   line-height. A 1px solid divider (node 34213:83745, 278px, full black)
   sits between them in Figma and was missing entirely; added here as a
   border on the quote paragraph rather than a new PHP element, since it is
   a purely decorative rule between two paragraphs that already exist.
   Gaps: Figma itemSpacing 16px vs the live 30px default WP paragraph
   margin. */
.bhp-symptom-card p {
	font-size: 16px;
	margin: 0 0 16px;
}
.bhp-symptom-card p:last-of-type {
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 0;
}
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): D above (16px/20px
   via the 1.25 multiplier) is correct, but T-744 AND M-428 both drop this
   specific paragraph (only the body, not the quote above it) to 14px,
   confirmed node-by-node; line-height stays a constant 20px so it is set
   explicitly rather than left as a multiplier once the size changes. */
@media (max-width: 1439px) {
	.bhp-symptom-card p:last-of-type {
		font-size: 14px;
		line-height: 20px;
	}
}
.bhp-symptom-card p:first-of-type {
	/* Figma specs Poppins for this quote (node 34213:83744). Poppins is not
	   loaded on this site (the old var(--theme-font-family) fallback computed
	   to -apple-system, HP-474); per the accepted exception (Lan 2026-09-24)
	   Kobe1.1 substitutes for Poppins/Inter, so use the page body font. */
	font-family: var(--bhp-body-font) !important;
	line-height: 1.375;
	/* Figma quote text boxes are 22px x lines + 11px (77 / 55 for 3 / 2
	   lines, nodes 34213:83744 / :83853), then 16px to the divider (the 1px
	   line is drawn ON that 0-high vector, not added to it) and 16px to the
	   body: 11 + 15 + 1 (border) = 27. Was 16, which put every body 9.5px
	   high (audit L02). */
	padding-bottom: 26px;
	border-bottom: 1px solid var(--bhp-ink);
}

/* "one hidden root cause." run, Figma text 34213:83760 ts2 span colors it
   green. */
.bhp-highlight-green { color: var(--bhp-green); }

/* Concern picker grid ("Start with the Foundation" CTA lives here).
   margin-top beats the body paragraph's margin-bottom in the collapse
   (larger wins, not sum); safe since this class has no other instance on
   the page. Figma ledger (86eypb6m6, tablet-vs-desktop re-audit):
   M428=20, T744=24, D1512=64 -- three distinct values, not two, so the
   744-1439 band needs its own tier instead of inheriting either edge. */
.bhp-concern-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}
@media (min-width: 744px) {
	.bhp-concern-grid {
		margin-top: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-concern-grid {
		margin-top: 64px;
	}
}
/* core/paragraph wrapper the concern-card link lives in (Gutenberg needs a
   real <p> around it to stay valid, see bonza_hp_find_support() PHP);
   reset its default block margin so the card grid spacing above controls
   layout instead. */
.bhp-concern-card-wrap {
	margin: 0;
	flex: 1 1 280px;
}
.bhp-concern-card {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--bhp-cream);
	border-radius: 8px;
	padding: 16px 12px;
	text-decoration: none;
	color: var(--bhp-ink);
}
.bhp-concern-card .bhp-concern-icon {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--bhp-amber);
	flex: 0 0 42px;
}
/* basis:auto sizes the column to its unwrapped width for the wrap
   decision, so a long label drops the whole column under the icon.
   basis:0 fixes plain cards; the flag card has a 3rd flex item and
   needs basis:auto or its column starves to a sliver. */
.bhp-concern-card:not(:has(.bhp-concern-flag)) .bhp-concern-icon + span {
	flex: 1 1 0%;
	min-width: 0;
}
.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon + span {
	flex: 1 1 auto;
	min-width: 0;
}
.bhp-concern-card .bhp-concern-label {
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	text-transform: uppercase;
	display: block;
}
.bhp-concern-card .bhp-concern-sub {
	font-family: var(--bhp-body-font);
	font-weight: 700;
	font-size: 14px;
	display: block;
}
.bhp-concern-card .bhp-concern-flag {
	margin-left: auto;
	background: var(--bhp-green);
	color: var(--bhp-white);
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	text-transform: uppercase;
	padding: 8px 11px;
	border-radius: 50px;
	white-space: nowrap;
}

/* hp-sec-b, 2026-09-24: a duplicate, higher-specificity concern-icon
   background-image block (nth-child 1-6) used to live here, added before
   grepping origin/main first. Removed: origin/main already ships all 7
   concern-card icon glyphs (b7a15692, "section 8 seven concern-card icons
   were empty spans"), and this block's extra .bhp-concern-grid ancestor
   class made it win over and silently shadow those, a real regression
   risk the lead caught via hp-audit-build's live sweep. Compared the
   existing 7 glyphs against Figma directly instead (see the per-rule
   removal history in git log for this file if the comparison is ever
   needed again); no existing glyph needed changing. */

/* Real overflow at 320px (86eypb6m6 audit, live-measured with the fixed
   parity-measure.js harness): `.bhp-concern-card-wrap` is a flex item in
   `.bhp-concern-grid` with `flex: 1 1 280px`, but flex items default to
   `min-width: auto`, which floors the item at its content's own min size
   rather than the 280px basis. That content is `.bhp-concern-card`'s
   single-row layout (icon 42px + text column + the `.bhp-concern-flag`
   pill's fixed nowrap width, 126px at this card's copy), which together
   exceed the 280px available at 320px, so the card pushed 15px past the
   viewport. `min-width: 0` lets the flex item actually shrink to its
   container; `flex-wrap: wrap` on the card then drops the flag pill onto
   its own line instead of forcing the row wider than its parent. Verified
   pre-deploy against the live page with a temporary `addStyleTag` +
   before/after `getBoundingClientRect` pass (not just re-reading this
   file): wrap/card went from right=335 (15px over the 320px viewport) to
   right=300; the flag itself went from right=323 (3px over) to right=288,
   both confirmed as the winning rule via `document.styleSheets` +
   `el.matches()`, not assumed. */
@media (max-width: 767px) {
	.bhp-concern-card-wrap { min-width: 0; }
	.bhp-concern-card { flex-wrap: wrap; }
}

/* Gut-organ axes card grid: descriptor stays visible; only "The science"
   disclosure collapses. */
/* FIX (86eypb6m6, PR #940 defect review): flex-wrap + flex-grow stretched
   an incomplete last row's cards to fill the leftover space (e.g.
   249.6px -> 426.7px at 1440), because flex distributes free space per-row
   instead of sharing fixed column tracks. Grid keeps every card the same
   width regardless of how many land in the last row, while auto-fill (not
   auto-fit) preserves the same column count Figma shows at every BP,
   including the 4/row@1024 and 1/row@<=428 cases this must not disturb. */
.bhp-axis-grid {
	display: grid;
	/* 86eypb6m6 (PR #947, team-lead correction): the earlier note here
	   ("Figma seats all 8 axis cards in one row at every measured D/T
	   width... 8x162 row at T-744") was a misread -- node
	   I34457:304330;34241:134871's T-744 instance measures h=410.42
	   (two rows of 197.21 + a 16px row-gap), not one, and its w=696 only
	   resolves to 4x162+3x16, not 8x162. T-744 is 4 columns x 2 rows;
	   only D-1512 (w=1384 = 8x159+7x16, single row) is 8 columns. Mobile-
	   first base is the M-428 2-col spec; 744px and 1440px tiers below. */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* T-744 (4 cols x 2 rows, node I29629:123474;34241:134871, w=696=4x162+3x16)
   -- 744/768/1024 all judge against this frame per team-lead's mapping.
   1025-1439 has no dedicated Figma frame; it interpolates from this same
   T-744 rule (nearest-frame rule) up to the D-1512 ceiling below, which
   only takes over at min-width:1440 (node I34457:304330;34241:134871). */
@media (min-width: 744px) {
	.bhp-axis-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
/* Desktop stays 4 x 2 on purpose (QA, z8udzke6d9): Figma D-1512's 8 x 1 row
   leaves ~150px tiles, where DE/FR/ES/NL titles broke mid-word over up to 4
   lines. Listed in the bonza client-approved Figma deviations register. */
/* Radius/padding must match Figma node I34457:304330;34241:134878
   "Frame 2147229723" exactly: radius 8, pad 24 top/bottom x 16 left/right
   (not a uniform 16px box) -- re-ported from backup/947-polluted-e6fff8b6
   after the origin/main merge overwrote it with #940's 12px/16px placeholder. */
.bhp-axis-grid > .bhp-axis-card {
	background: var(--bhp-white);
	border-radius: 8px;
	padding: 24px 16px;
	color: var(--bhp-ink);
	/* Column flex so "The science" sits at the same height in every tile of a row,
	   however many lines the title and descriptor take. */
	display: flex;
	flex-direction: column;
}
.bhp-axis-grid > .bhp-axis-card > .bhp-axis-card__science {
	margin-top: auto;
}
.bhp-page .bhp-axis-card__title {
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	line-height: 16px;
	font-weight: 900;
	text-transform: uppercase;
	/* hp2-l08: Figma tracking is 2% (0.24px at 12, 0.28px at 14). */
	letter-spacing: 0.02em;
	margin: 8px 0 0;
}
.bhp-page .bhp-axis-card__descriptor {
	font-size: 14px;
	line-height: 16px;
	font-weight: 700;
	/* Full shorthand: Blocksy's phantom block-gap (line ~2394) otherwise
	   inflates margin-bottom past Figma's 8px auto-layout gap. */
	margin: 8px 0;
}
/* hp2-l08 (86eypb6m6): the 12px step is the M-428 value only; Figma T-744
   is 14px (nodes under I29629:123474;34241:*), so the drop-down stops at
   743 instead of 767. */
@media (max-width: 743px) {
	.bhp-page .bhp-axis-card__title,
	.bhp-page .bhp-axis-card__descriptor {
		font-size: 12px;
	}
}
.bhp-axis-card__toggle {
	cursor: pointer;
	list-style: none;
	color: var(--bhp-ink);
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	line-height: 16px;
	/* Figma's "Title" text layer is weight 700, sentence-case ("The
	   science"), not 900/uppercase -- the bolder/wider glyphs wrapped to
	   2 lines at the ~160px card width used at 744px and 1512px+. */
	font-weight: 700;
	/* Full shorthand + explicit line-height: same phantom block-gap bug
	   plus an inherited ~24px line-height vs Figma's 16px closed row. */
	margin: 8px 0 0;
}
.bhp-axis-card__toggle::-webkit-details-marker { display: none; }
/* hp2-l08: the placed "Explore The Gut-Organ Axes" button (node
   34259:219525) is a fixed 48px pill with a 1.5px #b86e00 border at D/T/M;
   the shared .bhp-btn-primary rule gives 16px+26px+16px padding and a 1px
   transparent border (60px tall). Scoped to this section's own button so the
   other .bhp-btn-primary placements are untouched. */
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link {
	box-sizing: border-box;
	height: 48px;
	padding-top: 0;
	padding-bottom: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 270px;
	border: 1.5px solid #b86e00;
}
/* The stroke above outranked the coral hover rule, so the hovered button kept a
   brown ring; same selector plus :hover restores the coral border (86eyzmwuc). */
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link:hover,
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link:focus-visible {
	border-color: var(--bhp-coral);
}
/* hp2-l08: Figma "Accordion" instance fill is #fff @100% (the card behind is
   also white, so this changes no pixel; it just states the fill). */
.bhp-axis-card__science {
	background-color: #fff;
}
.bhp-page .bhp-axis-card__science p {
	font-size: 14px;
	line-height: 20px;
	margin-top: 8px;
}
.bhp-axis-card__science a {
	color: var(--bhp-green);
	font-weight: 700;
}

/* "Formulated With Science" feature cards (86eypb6m6 audit, node
   34612:68432): 3 white cards, 453x218 at desktop, radius 12, padding 20,
   12px gap both directions. New this pass, previously 3 single-line
   columns with no such cards at all. */
.bhp-feature-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.bhp-feature-card {
	flex: 1 1 300px;
	background: var(--bhp-white);
	border-radius: 12px;
	padding: 20px;
	color: var(--bhp-ink);
}
@media (min-width: 1024px) {
	.bhp-feature-card { flex-basis: 453px; }
}
/* Why Bonza Is Different -- 86eypb6m6: shared .bhp-section only reaches its
   full 1384px content cap at >=1512px, so a fixed 453px x3 + 12px gaps
   overflows and wraps 2+1 in the 1440-1511 band. flex:1 1 0 + min-width:0
   share the container's real width instead of demanding a fixed size;
   max-width caps at Figma's 453.33px once the container is wide enough. */
@media (min-width: 1440px) {
	.bhp-feature-card {
		flex: 1 1 0;
		min-width: 0;
		max-width: 453.33px;
	}
}
.bhp-feature-card p {
	margin: 0 0 12px;
}
.bhp-feature-card p:last-child { margin-bottom: 0; }
/* 86eypb6m6 hp-sec-b audit, register entry 2026-09-19 "css-cascade": these
   three were bare single-class selectors (0,1,0) applied to <p> tags, so
   `.bhp-page p` (0,1,1, a tag selector beats a bare class regardless of
   source order -- the same GL-03 bug already fixed for `.bhp-eyebrow` near
   the top of this file) silently won on every property both rules set:
   font-size, font-weight and font-family all fell back to the page's
   20px/400/Kobe1.1 body-copy default instead of Figma's 14px/900/Nominee
   (title), 16px/700 (sub) and 14px (body). Confirmed live via the
   build-measurement audit (homepage-build-1440.json section 11):
   title/sub/body all reported Kobe1.1/400/20px, not the values these
   rules already declared. Same `.bhp-page` prefix fix as
   `.bhp-page .bhp-eyebrow`, applied here too -- this was logged as a known
   pattern but not yet actually applied to this selector. */
.bhp-page .bhp-feature-card__title {
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	font-weight: 900;
	text-transform: uppercase;
}
.bhp-page .bhp-feature-card__sub {
	font-size: 16px;
	font-weight: 700;
	color: var(--bhp-green);
}
/* 13:Frame 2147229923: figma sub size D=16/T=14/M=14, title D=14/T=14/M=12. */
@media (max-width: 1439px) {
	.bhp-page .bhp-feature-card__sub { font-size: 14px; }
}
@media (max-width: 767px) {
	.bhp-page .bhp-feature-card__title { font-size: 12px; }
}
.bhp-page .bhp-feature-card__body {
	font-size: 14px;
	line-height: 1.4;
}

/* Reviews row: RETIRED 2026-09-24 (86eypb6m6). .bhp-review-row /
   .bhp-review-card / ".bhp-review-card p" styled the five hardcoded Figma
   placeholder testimonials that used to live inside
   bonza_hp_reviews() (homepage/patterns/homepage.php) -- that markup is
   gone (replaced by the live [bonza_feefo_reviews] carousel, styled by
   css/feefo-reviews.css's own .bfr-* classes instead), and grep confirms
   nothing else in this repo references either class, so the rules are
   removed rather than left dead. The focus-visible rule and the parity-
   audit override further down this file for the same two classes are
   removed in this same pass; see their own removal notes. */

/* Trust badge row. hp-sec-b fresh-capture audit (86eypb6m6): gap was
   32px, Figma's "Review Copy Variant" row (18_Frame_2147229955) declares
   autoLayout gap 24.
   Per-badge height, corrected per the lead's direction 2026-09-24: each
   logo has its OWN natural height in Figma, not a uniform 56px --
   forcing 56 on all five was stretching/squashing the B Corp and
   Rainforest Trust marks specifically. `.bhp-badge-row img` below is now
   just the shared width:auto/display rule; each badge's real height is
   set by its own nth-of-type rule underneath, citing the exact D1512
   node id (nth-of-type counts among the row's <figure> siblings only,
   the OneTribe <p> in between them does not break the count):
     1  certified-b-corporation-pending-logo 1  I34457:304330;34323:193416  80px
     2  1percent-for-the-planet-logo 1           I34457:304330;34323:193457  56px
     3  trees-for-the-future-logo 2              I34457:304330;34323:193477  56px
     4  rainforest-trust-logo 1                  I34457:304330;34323:193498  48px */
.bhp-badge-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px;
}
.bhp-badge-row img { width: auto; display: block; }
.bhp-badge:nth-of-type(1) img { height: 80px; }
.bhp-badge:nth-of-type(2) img { height: 56px; }
.bhp-badge:nth-of-type(3) img { height: 56px; }
.bhp-badge:nth-of-type(4) img { height: 48px; }

/* FAQ list */
.bhp-faq-list > details {
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	padding: 16px 0;
}
.bhp-faq-list summary {
	cursor: pointer;
	list-style: none;
	font-family: var(--bhp-body-font);
	/* 86eypb6m6 audit: Figma (34323:195185 etc) is 900 weight, not 700. */
	font-weight: 900;
	font-size: 16px;
	color: var(--bhp-white);
}
.bhp-faq-list summary::-webkit-details-marker { display: none; }
/* Answer links sit inside the green band; the theme's global link colour
   is unknown and may itself be brand green (invisible on this bg), so set
   an explicit, measured pair rather than inherit. */
.bhp-faq-list a {
	color: var(--bhp-white);
	text-decoration: underline;
}

/* Ingredient regulatory / sourcing note (EFSA + prebiotics fibre sentence).
   CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): same specificity
   bug as `.bhp-stat-card__*` above -- a plain single-class selector (0,1,0)
   on a `<p>` always lost to `.bhp-page p` (0,1,1), so this rule's own 14px
   never actually applied; confirmed live at 20px (the generic default). */
/* 86eypb6m6 (PR #947, team-lead correction): re-pulled all three widths --
   D-1512=20px, T-744=18px, M-428=18px (nodes 34765:79945/79973/79999,
   I29629:123474;* at T-744, I29600:92223;* at M-428). T and M share the
   same value, so base is 18px and only D-1512 bumps to 20px, not the
   inverse this rule shipped before (20px base with an <=767 drop-down,
   which left 768-1439 on the D value instead of T-744's 18). Line-height
   is a constant 24px at every width. */
.bhp-page .bhp-ingredient-note {
	font-size: 18px;
	line-height: 24px;
	/* hp2-l07 property pass: Figma note text nodes (34765:79945/79973/79999)
	   are #2e2a2a at 100% opacity, not 90%. */
	opacity: 1;
}
@media (min-width: 1440px) {
	.bhp-page .bhp-ingredient-note {
		font-size: 20px;
	}
}
.bhp-ingredient-note sup {
	font-size: 0.65em;
}

/* NEW (86eypb6m6 numeric parity audit, hp-sec-a2): the 3 missing "Prebiotics
   feed" / "Probiotics produce" / "Postbiotics deliver" caption labels
   (node 34765:79944 + siblings) that sit directly above their matching
   `.bhp-ingredient-note` footnote -- see bonza_hp_biotics_triad()'s own
   docblock for the full sourcing note and the scope decision (labels
   only, not Figma's full numbered-timeline layout). Figma: 14px/16px at
   D-1512 AND T-744 (same value both), 12px/16px at M-428 (line-height is
   a constant 16px across all three, confirmed node-by-node) -- base rule
   below carries the M value per this file's own mobile-first convention
   for this property pair, with a single >=768px bump covering both T
   and D since they're identical. */
.bhp-page .bhp-triad-label {
	/* hp2-l07: Figma label is a hug-width box with CENTER text alignment; a
	   fit-content box makes the alignment explicit without moving the glyphs. */
	width: fit-content;
	text-align: center;
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 12px;
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bhp-green);
	margin-bottom: 4px;
}
/* hp2-l07: T-744 is 14px too (audit row: 12px at 744); step at 744, not 768. */
@media (min-width: 744px) {
	.bhp-page .bhp-triad-label {
		font-size: 14px;
	}
}

/* "Always Inside" / "Never Inside" comparison lists (86eypb6m6 audit,
   node 34241:146546): new this pass, previously flagged as un-transcribed.
   White cards on the green band, matching this file's existing
   white-card-on-green-band pattern; exact padding/radius not
   independently re-measured, see the function's own docblock. */
.bhp-transparency-col {
	/* 86eypb6m6 S14: Figma's col (row + footer paragraphs) is a 24px-gap
	   flex column at every width -- was plain block flow. Zeroing the
	   children's own margin-bottom (WP block/paragraph defaults) stops
	   them stacking on top of the gap. */
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.bhp-transparency-col > * {
	margin-bottom: 0;
}
.bhp-transparency-row {
	/* 86eypb6m6 S14: Figma's card row is NO_WRAP with a 12px gap at
	   every width down to 428 -- cards never stack, was wrap + 24px.
	   No longer needs its own margin: .bhp-transparency-col's gap
	   above now supplies the row-to-footer spacing. */
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
}
.bhp-transparency-card {
	/* 86eypb6m6 S14 height parity: Figma's card frames declare a fixed
	   612px at every width regardless of content -- the padding/gap sum
	   doesn't reconcile to it (~28px design slack), so height is set
	   directly rather than derived. Was flat 24px padding, auto height. */
	/* 86eypb6m6 S14: equal-share flex, no minimum -- a 300px basis forced
	   the row above to wrap under ~624px, which Figma's row never does. */
	flex: 1 1 0;
	min-width: 0;
	background: var(--bhp-white);
	color: var(--bhp-ink);
	border-radius: 12px;
	padding: 40px 20px;
	height: 612px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}
.bhp-transparency-card--out {
	/* 86eypb6m6 S14: Figma's "out" card pad-bottom is 32, not 40. */
	padding-bottom: 32px;
}
.bhp-transparency-card h4 ,.bhp-transparency-card h3 {
	/* 86eypb6m6 hp-audit-c: figma (34306:181049/181074) is 14px at T/M,
	   16px only from the 1440px desktop breakpoint up -- was a flat 16px
	   at every size. */
	font-size: 14px;
	/* 86eyy8hud: fonts.css now excludes this selector from the sitewide
	   h1-h6 !important rule via :not(), so the existing higher-specificity
	   `.bhp-page .bhp-transparency-card h4` rule below (~line 2943, its own
	   accepted-exception weight-700 decision) sets font-family/weight
	   without a fight -- no need to duplicate those here. */
	/* 86eypb6m6 S14: Figma header-to-list gap is 20, was 12. */
	margin: 0 0 20px;
	flex: none;
}
.bhp-transparency-card--in h4 ,.bhp-transparency-card--in h3 { color: var(--bhp-green); }
.bhp-transparency-card--out h4 ,.bhp-transparency-card--out h3 { color: var(--bhp-ink); }
.bhp-transparency-card ul {
	/* 86eypb6m6 S14: fills the card's fixed 612px height so per-row
	   spacing (Figma rows are 88/128px, positional not content-driven)
	   isn't hardcoded against a box that can't actually fit it. */
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
	padding-left: 20px;
}
.bhp-transparency-card li {
	/* 86eypb6m6 hp-audit-c: same 14px-until-1440px figma step as the h4
	   above (e.g. node 34306:181055), was flat 16px at every size. */
	font-size: 14px;
	font-weight: 700;
	/* 86eypb6m6 S14: Figma rows carry no margin-gap, only internal
	   padding (added on the align-items rule below) -- was 8px. */
	margin-bottom: 0;
}
.bhp-transparency-card li:last-child { margin-bottom: 0; }
@media (min-width: 1440px) {
	.bhp-transparency-card h4,	.bhp-transparency-card h3,
	.bhp-transparency-card li {
		font-size: 16px;
	}
}

/* Founder credit/qualifications lines (86eypb6m6 audit, nodes
   34241:146374/146375): new this pass, previously absent.
   hp-sec-b audit: same `.bhp-page p` (0,1,1) specificity bug as
   `.bhp-feature-card__title` above -- both were bare single-class
   selectors (0,1,0) on <p> tags, so font-size/font-weight silently lost
   to the page's 20px/400 default (color survived only because
   `.bhp-page p` never sets color). Confirmed live: both reported
   Kobe1.1/400/20px in the build audit instead of the 16px/900 and
   14px/700 these rules already declared. Same `.bhp-page` prefix fix. */
/* hp-sec-b fresh-capture audit (86eypb6m6, post 2-col row fix): this line
   was still rendering Kobe1.1 (`--bhp-body-font`, `.bhp-page p`'s
   inherited family), Figma (node 34241:146374) specifies Nominee, the
   page's heading font. Every other property on this node already
   matched at D1512 (size/weight/color/letter-spacing/case, the rule
   directly above), only font-family was missing there.
   Separately, this node is NOT flat across breakpoints the way it was
   assumed to be: Figma's own T744 and M428 frames both give it 14px
   (confirmed in both frame exports), only D1512 is 16px -- the SAME
   14px the quals line below already uses. 14px is the mobile-first
   default here now; the 16px-desktop rule below applies at the project's
   standard D boundary (>=1440, matching hp-sec-a's D/T/M band split:
   D >=1440, T 768-1439, M <768), corrected 2026-09-24 from an earlier
   1280px guess per the lead's direction to use one boundary set across
   the whole page. */
.bhp-page .bhp-founder-credit {
	font-family: var(--bhp-heading-font);
	font-size: 14px;
	font-weight: 900;
	color: var(--bhp-green);
	/* Figma Frame 2147229960 gap 40 between the bio text and the credit
	   block (audit L13 gap-above +182/+110/+140 rows were mis-paired boxes;
	   real delta was 27 vs 40). */
	margin-top: 40px;
	margin-bottom: 0;
}
@media (min-width: 1440px) {
	.bhp-page .bhp-founder-credit {
		font-size: 16px;
	}
}
.bhp-page .bhp-founder-quals {
	font-size: 14px;
	font-weight: 700;
	color: var(--bhp-taupe);
	/* Figma Frame 2147229862 itemSpacing 12 (credit -> quals); the theme's
	   block margin under it (21px) is not in Figma. */
	margin-top: 12px;
	margin-bottom: 0;
}
/* The Figma quals box is 392px wide at every frame; at 428 the column is
   388, and the line is 389.8px, so it wrapped to two lines here and Figma's
   is one. */
@media (min-width: 428px) {
	.bhp-page .bhp-founder-quals {
		width: 392px;
		max-width: none;
	}
}
/* The two bio paragraphs are ONE Figma text node (34241:146372) with a blank
   line between them: 24px, not the theme's 1.5em block margin (27px at 18px,
   30px at 20px). Measured line counts already match Figma (16 / 10 / 11
   lines at M / T / D including the blank line), so the "wrapped-lines" and
   "extra-text" audit rows for this paragraph were a first-paragraph-only
   pairing. */
.bhp-page .bhp-founder-col > p.wp-block-paragraph:not([class*="bhp-founder-"]) {
	margin: 0;
}
.bhp-page .bhp-founder-col > p.wp-block-paragraph:not([class*="bhp-founder-"]):first-child {
	margin-bottom: 24px;
}
/* "Meet the founder" link (node 34241:146377, recorded spec 16/700/green,
   86eypb6m6). No decoration/hover value was captured for this node during
   the audit, so an underline-on-hover is used rather than inventing an
   exact Figma-verified state. */
.bhp-page .bhp-founder-link {
	/* Figma 34241:146377: Kobe1.1 Bold 16, line-height 120% (19.2px); the
	   link was Nominee at 24px. Frame 2147229741 sits 12px under the quals
	   box (whose text box is 9px tall in Figma, 16.8px here), and its text
	   is inset 2px in a 14px row: 2px margin puts the glyphs where Figma's
	   are. */
	font-family: var(--bhp-body-font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	margin-top: 2px;
	/* Figma's column ends with the 14px link frame; the 19.2px line box
	   overshoots it by 3px, which put every founder height 3px over. */
	margin-bottom: -3px;
}
.bhp-page .bhp-founder-link a {
	color: var(--bhp-green);
	text-decoration: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
/* Figma "arrow_right_alt" (34241:146378) 14x14, inner Vector 34241:146379
   9.33x7 at 2.33,3.5, fill #247B4E: exact path from the extractor asset. */
.bhp-page .bhp-founder-link a::after {
	content: "";
	width: 14px;
	height: 14px;
	flex: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath transform='translate(2.33 3.5)' d='M5.83333 7L5.01667 6.15417L7.0875 4.08333H0V2.91667H7.0875L5.01667 0.845833L5.83333 0L9.33333 3.5L5.83333 7Z' fill='%23247B4E'/%3E%3C/svg%3E") no-repeat center / 14px 14px;
}
.bhp-page .bhp-founder-link a:hover,
.bhp-page .bhp-founder-link a:focus-visible {
	text-decoration: underline;
}

/* Founder and transparency photos (86eypb6m6, 2026-09-21). Both were recorded
   in an earlier handoff as assets that "do not exist"; both were in the pinned
   Figma export all along and are now in the Media Library.

   The source files are deliberately larger than the boxes Figma draws, so the
   sizes WordPress generated have retina candidates to pick from: the founder
   file is 1920x1280 for a 672x367 slot, the transparency file 682x1000 for
   430x631. max-width pins the drawn size, width:100% lets them shrink below it
   rather than overflowing the narrow breakpoints, and height:auto keeps the
   explicit width/height attributes from squashing them.

   The founder photo needs object-fit. Figma draws it at 672x367 (1.83:1) but
   the photograph is 1.5:1, so the design crops it; scaling the whole frame
   instead would letterbox it and shift the subject off the composition Figma
   chose. aspect-ratio plus cover reproduces that crop at every width. The
   transparency photo needs none of this: 682x1000 is 0.682:1 against Figma's
   430x631 at 0.681:1, the same shape, so it scales cleanly. */
.bhp-founder-photo,
.bhp-transparency-photo {
	margin-top: 24px;
	margin-bottom: 0;
}
.bhp-founder-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 16px;
	max-width: 672px;
	aspect-ratio: 672 / 367;
	object-fit: cover;
	object-position: center;
}
/* Figma Rectangle 9782 fills the column below the two-column tier: 696x380.1
   at T744 and 388x211.9 at M428 (same 1.831 ratio as 672x367); the 672 cap
   was clipping T744 to 672x367 (audit L13 img-w/img-h). Below 1024 only:
   there is no Figma frame between T744 and D1512, so 1024-1439 keeps the
   672 cap it had. */
@media (max-width: 1023px) {
	.bhp-founder-photo img {
		max-width: none;
	}
}
.bhp-transparency-photo img {
	width: 100%;
	height: auto;
	display: block;
	/* 86eypb6m6 hp-thumbs2 radius audit: Figma node "image 674"
	   (34306:185699, Content Homepage instance) and its parent frame both
	   carry radius:null at 1512/744/428 -- square corners by design. */
	border-radius: 0;
	max-width: 430px;
}

/* Biotics Triad numbered timeline (S7, 86eypb6m6, hp-fix-a) -- reworked
   2026-09-28 to target the classes actually baked into live post 144943's
   post_content (`bhp-triad-grid`/`bhp-triad-illus`/`bhp-triad-timeline`/
   `__item`/`__icon`/`__row`/`__badge`/`bhp-triad-callout-pill`, PR #940
   lineage). S7 renders from that frozen post_content row, not from
   homepage.php's `bonza_hp_biotics_triad()` pattern function (confirmed via
   SSH class-count audit) -- an earlier push here introduced a parallel
   `.bhp-triad-item`/`.bhp-triad-badge`/`.bhp-triad-pill` class set that
   never matched what's actually rendered and, via v1's "incoming PR wins"
   conflict resolution, clobbered PR #940's already-correct rules for the
   classes that DO render, leaving the live section unstyled. Reverted here:
   base rules below are #940's own (from
   bc-sc-wt-86eypb6m6-waves-1790421531/sites/bonza/custom/css/homepage.css),
   unchanged except for the specific Figma deltas called out inline. */
.bhp-triad-illus {
	margin-top: 24px;
	margin-bottom: 0;
}
.bhp-triad-illus img {
	width: 100%;
	height: auto;
	display: block;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
/* Grid: illustration + numbered list side by side, wrapping to a single
   column once the two flex-basis floors (320px + 360px + 48px gap) no
   longer fit -- this is what carries the M-428 mobile stack, unchanged
   from #940's base since it already satisfies the narrow-viewport layout. */
.bhp-triad-grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	/* 86eypb6m6 (PR #947, team-lead correction): row gap is NOT constant
	   in Figma (node 34765:79923) -- 20 at M-428, 24 at T-744, 64 at
	   D-1512; tiers set below. Base here is the M-428 value (mobile-first
	   convention). The flex-basis floors below (600 + 720, matching the
	   D-1512 illus/timeline children) sum to 1384 with the 64px D gap --
	   exactly that frame's own row width -- so the layout naturally
	   stays single-column below it and only goes side-by-side once the
	   container reaches ~1384px, which is why 744/768/1024 (all judged
	   against the narrower T-744 frame, itself only 696px wide) stay
	   stacked instead of side-by-side as the old 320/360 floors wrongly
	   allowed from 1024 up. */
	gap: 20px;
	/* hp2-l07: Figma frame 34765:79923 is CENTER/CENTER, so the fixed 600px
	   image sits centred (T-744: x=72 in a 696 frame), not flush left. */
	justify-content: center;
	margin-top: 24px;
}
.bhp-triad-grid .bhp-triad-illus {
	/* hp2-l07 property pass: Figma "image 704" (35858:80075) has a 24px
	   corner radius on all four corners. */
	border-radius: 24px;
	overflow: hidden;
	/* delta: was flex:1 1 320px -- Figma "image 704" (node 35858:80075,
	   Home Page's own instance, not the Product Category Page node of
	   the same name) is a fixed 600x800 rectangle at both D-1512 and
	   T-744, not a scaling column. */
	flex: 0 1 600px;
	margin-top: 0;
}
.bhp-triad-timeline {
	/* delta: was flex:1 1 360px -- Figma timeline frame
	   (node 34765:79925) measures 720px at D-1512. (696px at T-744, but
	   744-1024 stay single-column per the note above, so only the
	   D-1512 value drives the side-by-side floor.) */
	flex: 0 1 720px;
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}
.bhp-page .bhp-triad-timeline__item {
	position: relative;
	/* hp2-l07: Figma's text column starts 57px from the list edge (35px badge
	   + 22px gap) at every width, and the badge itself sits at x=0. The old
	   44px pad + 13px margins on each child gave the same 57px for the text
	   but pushed the badge (and icon) 44px/34px too far right. */
	padding-left: 57px;
	/* delta: was 40px -- Figma list gap (Frame 2147229661) is 96 */
	margin: 0 0 96px;
}
.bhp-page .bhp-triad-timeline__item:last-child {
	margin-bottom: 0;
}
/* One continuous line on the list (Figma node 34765:79926), not a
   per-item segment: Figma runs a single dashed rule through all three
   badges. Left is the badge's horizontal centre (44 + 35/2 - 2/2); top
   sits 3px above badge 1's own rendered top (icon 80px + margin 18px). */
.bhp-page .bhp-triad-timeline::before {
	content: "";
	position: absolute;
	/* hp2-l07: Figma "Vector 1" is x=18 (2px line centred on the badge column),
	   y=76 from the list top at D/T, 124 at M; 608 tall. */
	left: 17px;
	top: 76px;
	width: 2px;
	height: 608px;
	background: repeating-linear-gradient(
		to bottom,
		rgba(46, 42, 42, 0.12) 0,
		rgba(46, 42, 42, 0.12) 5px,
		transparent 5px,
		transparent 10px
	);
}
.bhp-page .bhp-triad-timeline__icon {
	display: block;
	width: 80px;
	height: 80px;
	margin: 0 0 18px;
}
.bhp-page .bhp-triad-timeline__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}
/* hp2-l07: item 3 icon->text gap is 12 at D, T and M alike (204/204/252 tall
   frames sum with 12), not only from 1024. */
.bhp-page .bhp-triad-timeline__item:last-child .bhp-triad-timeline__icon {
	margin-bottom: 12px;
}
.bhp-triad-timeline__row {
	/* hp2-l07: badge is lifted out of the row (see badge rule) so the label
	   starts at the text column's left edge like Figma; label->note gap 8. */
	display: block;
	margin-bottom: 8px;
}
.bhp-page .bhp-triad-timeline__badge {
	flex: 0 0 auto;
	width: 35px;
	/* delta: was 35px -- Figma badge (node 34765:79929 et al.) is 35x35.58 */
	height: 35.58px;
	border-radius: 999px;
	background: var(--bhp-amber);
	color: var(--bhp-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bhp-heading-font);
	/* hp2-l07: Figma numeral (node 34765:79929 et al.) is Inter 400 at 18.06px.
	   Inter -> Kobe1.1 is the accepted substitution (Lan 2026-09-24). */
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 18.06px;
	line-height: 1;
	margin: 0;
	/* Figma centres the badge on the whole item (35.58px badge in a 194/170/204
	   frame => y=79.2/357.2/640.2). */
	position: absolute;
	left: 0;
	top: calc(50% - 17.79px);
	z-index: 1;
}
.bhp-page .bhp-triad-timeline__row .bhp-triad-label {
	margin: 0;
}
/* delta: was 44px, double-counting the item's own 44px padding-left --
   Figma (node 34765:79945/79973/79999) sets this text box 57px from the
   item's left edge, so the margin on top of that 44px padding is 13px. */
.bhp-page .bhp-triad-timeline__item .bhp-ingredient-note {
	margin: 0;
}
/* Item-3 pill, "Two postbiotics, the layer most brands skip" (Figma node
   34765:80000). delta: was `var(--bhp-coral)` (#FF6256) on
   `var(--bhp-callout-pink)`, 2.71:1 -- fails both the 3:1 large-text and
   4.5:1 normal-text floors. Remapped to #C93D2D, the nearest coral that
   clears 4.5:1 on both this tinted pill background (4.50:1) and plain
   white (5.01:1) -- same "remap to nearest passing coral" convention as
   S1/S9. */
.bhp-page p.bhp-triad-callout-pill,
.bhp-page .bhp-triad-callout-pill {
	/* delta: left was 44px (double-counted the item's 44px padding-left,
	   same bug as .bhp-ingredient-note above) -- Figma node 34765:80000
	   sits 57px from the item's left edge at both breakpoints, so 13px on
	   top of that 44px padding. */
	margin: 8px 0 0;
	/* hp2-l07: Figma frame 34765:80000 is FILL in the 331px text column at M
	   and a 380px pill at T/D, text centred inside it. */
	display: block;
	text-align: center;
	/* Height must land on Figma's 32px (D, 1 line) and 56px (M, 2 lines) --
	   both solve to the same 4px vertical padding at this 24px line-height
	   (4+4+24=32, 4+4+48=56), so one value covers both breakpoints. */
	/* 86eypb6m6 (PR #947, team-lead re-verify): was 20px sides -- node
	   34765:80000 pads 4/16/4/16 at D/T/M alike. */
	padding: 4px 16px;
	border-radius: 999px;
	/* hp2-l07: Figma fill is #ff6256 @ 10% (composites to the same #ffefee on
	   the white band); written as the alpha value the design states. */
	background: rgba(255, 98, 86, 0.1);
	text-align: center;
	/* delta: was flat 18px -- node 34765:80001 is D-1512=20, T-744=18,
	   M-428=18 (base carries the shared T/M value, bump below). */
	font-size: 18px;
	font-weight: 700;
	/* hp2-l07: Figma text is #ff6256, which is 2.64:1 on this pill (2.94:1 on
	   white) and fails WCAG AA. #C83C2C is the same hue nudged darker: 4.55:1
	   on the pill, 5.07:1 on white. DEVIATION from Figma, recorded for sign-off.
	   (The previous #C93D2D measured 4.496:1 on the pill, just under 4.5.) */
	color: #C83C2C;
}
@media (min-width: 744px) {
	.bhp-page p.bhp-triad-callout-pill,
	.bhp-page .bhp-triad-callout-pill {
		width: 380px;
		max-width: 100%;
		box-sizing: border-box;
		white-space: nowrap;
	}
}
@media (min-width: 1440px) {
	.bhp-page p.bhp-triad-callout-pill,
	.bhp-page .bhp-triad-callout-pill {
		font-size: 20px;
	}
}
/* hp2-l07: M-428 "image 704" (node 35858:80075) is the same 600x800 tile as
   T/D, centred in the 388px column (x=-86) and clipped by it -- not scaled
   down to 388x517, which left the section 282px short. Below 744 the figure
   is a 388-wide, 800-tall window onto the centred 600px image. */
@media (max-width: 743px) {
	.bhp-triad-grid .bhp-triad-illus {
		flex: 0 0 100%;
		width: 100%;
		height: 800px;
		overflow: hidden;
		position: relative;
	}
	.bhp-triad-grid .bhp-triad-illus img {
		position: absolute;
		left: 50%;
		top: 0;
		width: 600px;
		max-width: none;
		height: 800px;
		margin: 0;
		transform: translateX(-50%);
	}
}

/* M-428 delta (read from figma/mobile-428.jsonl, node I29600:92223;34765:79923
   "Frame 2147229915" -- the illus+timeline row): HORIZONTAL/WRAP auto-layout,
   gap 20, vs 48 on D-1512 (same node's desktop pass). Everything else measured
   from the same mobile pass matches desktop already in the base rules above
   (list gap 96 -- node 34765:79925 "Frame 2147229661"; badge 35x35.58 amber --
   node 34765:79928 "Frame 2147229653"; stack order illus-then-timeline --
   order:0 "image 704" w600/h800 before order:1 "Frame 2147229661"), so this is
   the only value that needs a breakpoint override. */
@media (max-width: 767px) {
	/* Same badge-relative anchor as desktop, but M-428's pass on node
	   34765:79926 puts the line's top past badge 1's bottom, not above
	   its top -- so the offset from the badge's rendered top flips sign. */
	.bhp-page .bhp-triad-timeline::before {
		top: 124px;
	}
}
/* 86eypb6m6 (PR #947, team-lead correction): T-744 row gap (node
   34765:79923) is 24px, not the 48px this page previously fell back to
   for the whole >=768 range, nor the 20px M-428 value. 744/768/1024 all
   judge against this same T-744 frame per team-lead's mapping, and stay
   single-column here (illus+timeline floors sum to 1384 with the 64px
   D-1512 gap, well past any of these three widths' container). */
@media (min-width: 744px) {
	.bhp-triad-grid {
		gap: 24px;
	}
}
/* 86eypb6m6 (PR #947, self-correction): D-1512 row gap is 64px (node
   34765:79923); 1440/1512/2560 all judge against this frame. The natural
   wrap sum (600+720+64=1384) only clears at viewport>=1512, where
   .bhp-section's own padding formula finally reaches a 1384px container --
   at 1440 the formula still gives 64px/side (container 1312), so without
   an explicit nowrap here the layout stayed stacked through 1440-1511
   instead of matching D-1512 as required. */
@media (min-width: 1440px) {
	.bhp-triad-grid {
		gap: 64px;
		flex-wrap: nowrap;
	}
}
/* Contrast recorded, not silently accepted: coral on this pink fill
   is 2.71:1, worse than the 2.94:1 already flagged against white --
   a design defect needing sign-off, not a guessed darker coral. */

/* CTA "Foundation Routine" band and buttons already use core/buttons; pill
   shape and weight matched here since Blocksy's global button radius is not
   necessarily 999px pill on this site. */
.bhp-page .wp-block-button__link {
	border-radius: 999px;
	font-size: 12px;
	letter-spacing: 0.04em;
	padding: 16px 24px;
}

/* Button kind variants, from Figma component set "Button" 29049:58925.
   Enumerated states: Default / Hover / Disabled, each x Primary / Secondary
   / Outline / Naked. Apply the matching class to the core/buttons wrapper
   (e.g. "bhp-btn-primary") via the block's additional CSS class field.
   Contrast pairs for every color pairing below are measured and recorded
   in the file header comment. */
/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): Button component
   set 29049:58925, State=Default/Kind=Primary/Size=Large text colour is
   rgb(46,42,42) (ink), confirmed against the component-set data pulled at
   the start of this audit; `--bhp-black` (#000000, pure black) was never
   this component's own value on any state. Both pass WCAG AA on the
   yellow fill regardless (black ~12.91:1, ink measures similarly high per
   this file's own header contrast table), so this is a genuine token
   mismatch, not a documented accessibility override like the deviations
   recorded elsewhere in this block. */
.bhp-btn-primary .wp-block-button__link {
	background-color: var(--bhp-yellow);
	color: var(--bhp-ink);
	border: 1px solid transparent;
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
	/* FIX (live-verified 2026-09-21, 86eyxb3yu): transition must live on the
	   REST-state rule, the one that actually matches the rendered
	   `.wp-block-button__link` element -- declaring it only on the `:hover`
	   selector (this file's prior mistake) leaves Blocksy's own core rule
	   (static/bundle/main.min.css, `.button, .ct-button, ...`) as the only
	   transition source browsers pick up on this element, measured live as
	   0.12s cubic-bezier(0.455, 0.03, 0.515, 0.955) instead of the contract's
	   300ms ease-out. */
	transition: background-color 300ms ease-out, border-color 300ms ease-out, color 300ms ease-out, box-shadow 300ms ease-out;
	/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2): this class's
	   placed instance ("Explore The Gut-Organ Axes", node
	   34457:304330;34259:219525, confirmed identical D/T/M) is font-weight
	   800 / line-height 26px, not the shared `.bhp-page ... .wp-block-button__link`
	   default of 900/unset (browser default ~1.2). The computed value stays
	   800 regardless of whether Nominee ships an 800 face (browser fallback
	   weight-matches to the nearest available face without changing the
	   computed style, per MDN font-weight). Left UNRESOLVED by the prior
	   numeric pass pending this check: `.bhp-btn-primary` is used 4x in this
	   file (bonza_hp_complete_nutrition x2, bonza_hp_gut_axes x1, both
	   hp-sec-a2-owned sections 5 and 9) plus bonza_hp_routines x1 (section
	   14, hp-sec-b-owned, NOT re-verified by this branch against the same
	   node) -- flagged to hp-sec-b/lead since this shared-class change
	   reaches outside sections 1-10. */
	font-weight: 800;
	line-height: 26px;
}
/* Corrected 2026-09-21 (hover/type audit 86eyxb3yu): Button 29049:58925,
   State=Hover, Kind=Primary, Size=Small. This class's own 12px/pill
   sizing matches Small, not Large, and Small's hover is a genuinely
   different hue than Large's (contract-confirmed inconsistency, not
   harmonised away): coral fill was already correct, but the border add,
   white text and shadow removal that come with it were missing. */
/* NEEDS HUMAN (2026-09-21, accessibility override of the Figma contract).
   DELIBERATE, OPERATOR-APPROVED DEVIATION -- do not "fix" this back to
   match Figma without reading this comment first.
   Figma's Button Primary/Small hover pairs white text with the coral fill.
   Measured: white #FFFFFF on coral #FF6256 is 2.94:1. These button labels
   render at 12px (see `.bhp-page .wp-block-button__link` above), which is
   NOT WCAG large text, so the threshold is 4.5:1, not 3:1. It fails both.
   Bonza carries a contractual WCAG 2.2 AA guarantee, so the guarantee wins
   over the measured design value.
   Kept Figma's coral fill exactly and swapped only the label to ink
   #2E2A2A, which measures 4.82:1 and passes. Nothing here is an invented
   brand colour; both values are existing tokens in this file.
   CORRECTED 2026-09-21 (86eyxb3yu): this comment previously claimed the
   file header's "black text on the FF6256 coral hover fill is 8.02 to 1"
   recomputes to 4.82:1 -- that was ALSO wrong, and conflated two different
   pairs. 4.82:1 is the ink #2E2A2A on coral pairing directly above (what
   actually ships). Black #000000 on coral #FF6256, the pairing the header
   comment is actually about, recomputes to 7.13:1 -- corrected at the
   header itself now, both pass, this note stays only as the paper trail
   for why the header number moved.
   ACTION FOR DESIGN: supply an AA-passing hover treatment for Button
   Primary/Small, or confirm ink-on-coral as the approved pairing. */
.bhp-btn-primary .wp-block-button__link:hover,
.bhp-btn-primary .wp-block-button__link:focus-visible {
	background-color: var(--bhp-coral);
	border-color: var(--bhp-coral);
	color: var(--bhp-ink);
	box-shadow: none;
}
.bhp-btn-primary .wp-block-button__link[aria-disabled="true"] {
	background-color: var(--bhp-cream);
	border: 1px solid var(--bhp-peach);
	opacity: 0.6;
}

/* "Shop the Foundation Routine" is figma Inter (Kobe1.1 substitute).
   CORRECTED (86eypb6m6, hp-fix-a): "every sibling needs Nominee" below
   was wrong -- section 7's CTA needs this same substitute too, see its
   own rule further down. */
.bhp-band-green:not(.bhp-section) .bhp-btn-primary .wp-block-button__link {
	/* Figma "Button" 34749:52949 label is Inter 800 12px/26px, ls 0.48px. It was
	   forced to the body font (Kobe1.1, no 800 cut), which drew it thin and
	   narrower (238px vs Figma 274px). */
	font-family: var(--bhp-inter-font);
	font-weight: 800;
}

/* 86eypb6m6: Figma wants weight 700 here (node 29600:92223). The shared
   .bhp-page p{400} rule wins since no class exists on this <p>. Frozen
   post_content (BLK-01) can't add one, so scope by position instead,
   like the HM-14 fix above. */
.bhp-page > section:nth-child(5) .bhp-band-green > p:first-child {
	font-weight: 700;
}

.bhp-btn-secondary .wp-block-button__link {
	background-color: var(--bhp-green);
	color: var(--bhp-white);
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
	/* FIX (live-verified 2026-09-21, 86eyxb3yu): same rest-state placement
	   fix as .bhp-btn-primary above -- see that rule's comment. */
	transition: background-color 300ms ease-out, color 300ms ease-out, box-shadow 300ms ease-out;
}
/* Corrected 2026-09-21: Secondary/Small drops its shadow on hover same as
   every other Kind; only the shadow removal was missing here, the
   green-to-gold fill and text-to-dark swap already matched. */
.bhp-btn-secondary .wp-block-button__link:hover,
.bhp-btn-secondary .wp-block-button__link:focus-visible {
	background-color: var(--bhp-yellow);
	color: var(--bhp-black);
	box-shadow: none;
}
.bhp-btn-secondary .wp-block-button__link[aria-disabled="true"] {
	opacity: 0.6;
}

.bhp-btn-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--bhp-green);
	border: 1px solid var(--bhp-green);
	/* FIX (live-verified 2026-09-21, 86eyxb3yu): same rest-state placement
	   fix as .bhp-btn-primary above -- see that rule's comment. */
	transition: background-color 300ms ease-out;
}
.bhp-btn-outline .wp-block-button__link:hover,
.bhp-btn-outline .wp-block-button__link:focus-visible {
	background-color: var(--bhp-white);
}
.bhp-btn-outline .wp-block-button__link[aria-disabled="true"] {
	background-color: var(--bhp-white);
	opacity: 0.6;
}

/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a): `.bhp-btn-naked`
   is used exactly once on this page (bonza_hp_science_caught_up()'s "Read
   the full research breakdown" link), so this override is safe to make
   instance-specific rather than a shared-component change. Figma's own
   placed instance for this button (not just the abstract component-set
   default, which IS ink) is green rgb(36,123,78) and 400-weight, not the
   page's blanket 900-weight `.wp-block-button__link` uppercase default;
   confirmed against the real placed node, not the component defaults. */
.bhp-btn-naked .wp-block-button__link {
	background-color: transparent;
	color: var(--bhp-green);
	font-weight: 400;
	border-radius: 0;
	border-bottom: 2px solid var(--bhp-peach);
	padding: 4px 0;
	/* FIX (live-verified 2026-09-21, 86eyxb3yu): same rest-state placement
	   fix as .bhp-btn-primary above -- see that rule's comment. Only the
	   two properties the hover rule actually changes (color, the underline
	   via border-bottom-color) get a transition -- padding/border-radius
	   are static so animating them would be a no-op. */
	transition: color 300ms ease-out, border-bottom-color 300ms ease-out;
	/* CORRECTED (86eypb6m6 numeric parity audit, hp-sec-a2): "Read the full
	   research breakdown" (node 34457:304330;34241:... under Frame
	   2147229941) is line-height 26px at D-1512 AND M-428, but a distinct
	   14px at T-744 only -- confirmed node-by-node, not a typo; Figma's own
	   placed instance genuinely tightens the line-height at tablet while
	   D/M share the value. Base below carries the D/M value (this file's
	   convention: no-media rule = T/M default, `min-width:1440px` = D-only
	   bump -- see the `.bhp-page p, .bhp-page li` comment above), with the
	   T-only exception declared just below. */
	line-height: 26px;
}
@media (min-width: 768px) and (max-width: 1439px) {
	.bhp-btn-naked .wp-block-button__link {
		line-height: 14px;
	}
}
/* Added 2026-09-21 (hover/type audit 86eyxb3yu): Naked/Large and Small
   both change only text colour on hover, dark to coral #FF9572. This
   Kind had no hover rule at all -- a real gap, not a design no-op like
   the wishlist heart's Outline/Large.

   NEEDS HUMAN -- DELIBERATE, OPERATOR-APPROVED DEVIATION. Do not "fix"
   this back to match Figma without reading this comment first.
   Figma's measured value #FF9572 as the LABEL colour is not shippable
   here: on white it measures 2.14:1, and these labels render at 12px
   (see `.bhp-page .wp-block-button__link` above), so the threshold is
   4.5:1, not the 3:1 large-text floor. It fails both by a wide margin.
   Bonza carries a contractual WCAG 2.2 AA guarantee, so the guarantee
   wins over the measured design value.
   Resolution: hold the label at ink #2E2A2A (14.18:1 on white, 12.30:1
   on cream) and carry the hover on the existing underline instead,
   shifting it peach -> green #247B4E. That is 5.23:1 against white, well
   past the 3:1 required for a non-text indicator. Colour-only change, so
   nothing reflows, which also respects the contract's proven negative
   that no Figma hover ever changes element size.
   ACTION FOR DESIGN: supply an AA-passing label colour for Button Naked
   hover, or confirm the underline shift as the approved affordance. */
.bhp-btn-naked .wp-block-button__link:hover,
.bhp-btn-naked .wp-block-button__link:focus-visible {
	color: var(--bhp-ink);
	border-bottom-color: var(--bhp-green);
}
.bhp-btn-naked .wp-block-button__link[aria-disabled="true"] {
	opacity: 0.6;
}

.bhp-page a:focus-visible,
.bhp-page button:focus-visible,
.bhp-page summary:focus-visible {
	outline: 2px solid var(--bhp-green);
	outline-offset: 2px;
}

/* ---- Focus indicator for the review scroller: RETIRED 2026-09-24 -------
   (86eypb6m6). Was the WCAG 2.4.7 focus-visible fix for the old
   tabindex="0" `.bhp-review-row` horizontal scroller (axe
   scrollable-region-focusable). That markup is gone -- see the "Reviews
   row" removal note above -- so this scoped rule is dead with it. The
   live [bonza_feefo_reviews] carousel that replaced it is its own
   component with its own CSS (css/feefo-reviews.css) and script
   (js/feefo-carousel.js, "real DOM ... real pagination dots" per its own
   enqueue docblock); any focus-visible treatment it needs belongs there,
   not duplicated here for a scroller that no longer exists. */

/* ==========================================================================
   86eypb6m6 parity audit (sec-low pass), sections 10-16 vs Figma export
   figma-context-20260917. Section 10 "Formulated With Science. Not
   Marketing." (Figma node 34612:68432, three feature cards):
   1) Icon badges were entirely absent -- confirmed via raw DOM dump, no
      icon markup exists in the frozen post_content at all (only
      .bhp-feature-card__title/__sub/__body <p> tags). CSS-only fix: bake
      each icon's exact Figma vector path (fillGeometry pulled from
      raw/nodes-1.json, ids 34612:68435/68442/68449) into a ::before
      background-image, no markup change needed since post_content is
      frozen (BLK-01). Badge is Figma's own 44x44 circle, #FFA825
      (--bhp-amber) fill, 12px gap to the text block (auto-layout
      itemSpacing on node 34612:68433). Icon glyph colour is dark ink
      (#2E2A2A / --bhp-ink), not white. Card 1 = a document/search icon,
      card 2 = a linked-circles/molecule icon, card 3 = a snowflake --
      three genuinely different icons, not one icon reused (their shared
      Figma layer name "fluid_balance_24dp..." is a leftover Material
      Symbols placeholder name, the actual vector geometry differs per
      instance, verified by extracting each instance's own fillGeometry).
   2) Cards were missing their 1px solid amber border entirely (Figma node
      34612:68433 stroke, confirmed via raw JSON: strokes:[{color:#FFA825}],
      strokeWeight:1) -- .bhp-feature-card had background/radius/padding
      but no border property at all.
   Verified via Playwright injection before writing: gap and border/icon
   render confirmed at 1440/768/375 (screenshots
   scratchpad/seclow/s10-after2-*.png). ========================================================================== */

.bhp-feature-card {
	border: 1px solid var(--bhp-amber);
}
.bhp-feature-card__title {
	display: block;
}
.bhp-feature-card__title::before {
	content: "";
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-color: var(--bhp-amber);
	background-repeat: no-repeat;
	background-position: center;
	margin-bottom: 12px;
}
.bhp-feature-card:nth-child(1) .bhp-feature-card__title::before {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2021%2019%27%3E%3Cpath%20fill%3D%27%232E2A2A%27%20d%3D%27M2%2016C1.45%2016%200.979167%2015.8042%200.5875%2015.4125C0.195833%2015.0208%200%2014.55%200%2014L0%202C0%201.45%200.195833%200.979167%200.5875%200.5875C0.979167%200.195833%201.45%200%202%200L18%200C18.55%200%2019.0208%200.195833%2019.4125%200.5875C19.8042%200.979167%2020%201.45%2020%202L2%202L2%2014L10%2014L10%2016L2%2016ZM17%2019C16.45%2019%2015.9792%2018.8042%2015.5875%2018.4125C15.1958%2018.0208%2015%2017.55%2015%2017L15%2015.9C13.85%2015.6667%2012.8958%2015.0958%2012.1375%2014.1875C11.3792%2013.2792%2011%2012.2167%2011%2011L11%206C11%205.45%2011.1917%204.97917%2011.575%204.5875C11.9583%204.19583%2012.4333%204%2013%204L19%204C19.55%204%2020.0208%204.19583%2020.4125%204.5875C20.8042%204.97917%2021%205.45%2021%206L21%2011C21%2012.2167%2020.6208%2013.2792%2019.8625%2014.1875C19.1042%2015.0958%2018.15%2015.6667%2017%2015.9L17%2017L20%2017L20%2019L17%2019ZM17.75%2010L19%2010L19%206L13%206L13%208L13.75%208C14.3%208%2014.8208%208.125%2015.3125%208.375C15.8042%208.625%2016.2167%208.96667%2016.55%209.4C16.6833%209.6%2016.8583%209.75%2017.075%209.85C17.2917%209.95%2017.5167%2010%2017.75%2010ZM16%2014C16.65%2014%2017.2333%2013.8125%2017.75%2013.4375C18.2667%2013.0625%2018.625%2012.5833%2018.825%2012L17.75%2012C17.2%2012%2016.6792%2011.8792%2016.1875%2011.6375C15.6958%2011.3958%2015.2833%2011.05%2014.95%2010.6C14.8%2010.4167%2014.6208%2010.2708%2014.4125%2010.1625C14.2042%2010.0542%2013.9833%2010%2013.75%2010L13%2010L13%2011C13%2011.85%2013.2875%2012.5625%2013.8625%2013.1375C14.4375%2013.7125%2015.15%2014%2016%2014ZM4%207L9%207L9%205L4%205L4%207ZM4%2011L9%2011L9%209L4%209L4%2011Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 21px 19px;
}
.bhp-feature-card:nth-child(2) .bhp-feature-card__title::before {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20fill%3D%27%232E2A2A%27%20d%3D%27M14%2020C12.3333%2020%2010.9167%2019.4167%209.75%2018.25C8.58333%2017.0833%208%2015.6667%208%2014C8%2012.3333%208.58333%2010.9167%209.75%209.75C10.9167%208.58333%2012.3333%208%2014%208C15.6667%208%2017.0833%208.58333%2018.25%209.75C19.4167%2010.9167%2020%2012.3333%2020%2014C20%2015.6667%2019.4167%2017.0833%2018.25%2018.25C17.0833%2019.4167%2015.6667%2020%2014%2020ZM14%2018C15.1%2018%2016.0417%2017.6083%2016.825%2016.825C17.6083%2016.0417%2018%2015.1%2018%2014C18%2012.9%2017.6083%2011.9583%2016.825%2011.175C16.0417%2010.3917%2015.1%2010%2014%2010C12.9%2010%2011.9583%2010.3917%2011.175%2011.175C10.3917%2011.9583%2010%2012.9%2010%2014C10%2015.1%2010.3917%2016.0417%2011.175%2016.825C11.9583%2017.6083%2012.9%2018%2014%2018ZM2%2018C1.45%2018%200.979167%2017.8042%200.5875%2017.4125C0.195833%2017.0208%200%2016.55%200%2016L0%208.4C0%208.26667%200.0125%208.13333%200.0375%208C0.0625%207.86667%200.1%207.73333%200.15%207.6L2.15%203L2%203C1.71667%203%201.47917%202.90417%201.2875%202.7125C1.09583%202.52083%201%202.28333%201%202L1%201C1%200.716667%201.09583%200.479167%201.2875%200.2875C1.47917%200.0958333%201.71667%200%202%200L9%200C9.28333%200%209.52083%200.0958333%209.7125%200.2875C9.90417%200.479167%2010%200.716667%2010%201L10%202C10%202.28333%209.90417%202.52083%209.7125%202.7125C9.52083%202.90417%209.28333%203%209%203L8.85%203L10.5%206.8C10.1833%206.96667%209.88333%207.14167%209.6%207.325C9.31667%207.50833%209.05%207.71667%208.8%207.95L6.7%203L4.3%203L2%208.4L2%2016L6.25%2016C6.33333%2016.35%206.44583%2016.6958%206.5875%2017.0375C6.72917%2017.3792%206.9%2017.7%207.1%2018L2%2018ZM14%207C13.3%207%2012.7083%206.75833%2012.225%206.275C11.7417%205.79167%2011.5%205.2%2011.5%204.5C11.5%203.8%2011.7417%203.20833%2012.225%202.725C12.7083%202.24167%2013.3%202%2014%202L14%207C14%206.3%2014.2417%205.70833%2014.725%205.225C15.2083%204.74167%2015.8%204.5%2016.5%204.5C17.2%204.5%2017.7917%204.74167%2018.275%205.225C18.7583%205.70833%2019%206.3%2019%207L14%207Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 20px 20px;
}
.bhp-feature-card:nth-child(3) .bhp-feature-card__title::before {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20fill%3D%27%232E2A2A%27%20d%3D%27M9%2020L9%2015.85L5.75%2019.05L4.35%2017.65L9%2013L9%2011L7%2011L2.35%2015.65L0.95%2014.25L4.15%2011L0%2011L0%209L4.15%209L0.95%205.75L2.35%204.35L7%209L9%209L9%207L4.35%202.35L5.75%200.95L9%204.15L9%200L11%200L11%204.15L14.25%200.95L15.65%202.35L11%207L11%209L13%209L17.65%204.35L19.05%205.75L15.85%209L20%209L20%2011L15.85%2011L19.05%2014.25L17.65%2015.65L13%2011L11%2011L11%2013L15.65%2017.65L14.25%2019.05L11%2015.85L11%2020L9%2020Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 20px 20px;
}

/* Phantom Blocksy block-gap (`:is(.is-layout-flow, .is-layout-constrained)
   > :where(:not(h1..h6)) { margin-block-end: var(--theme-content-spacing) }`,
   main.min.css) also lands on the inner div.bhp-section INSIDE a
   .bhp-section-wrap triad (strip, content, strip) -- distinct from the
   already-fixed `.bhp-page > section` case, since this div is nested one
   level deeper. Confirmed via winning-rule walk (computed margin-block-end:
   24px on the div, 0 or -1px on the following strip depending on whether
   it carries --top/--bottom) on sections 10 ("Formulated With Science"),
   12 ("What Goes In Matters") and 14 ("Feed Your Dog Well"): every trailing
   torn-edge strip sat 23-24px away from the green/cream band instead of
   flush against it. Re-verified after this rule at all three: gap now 0px
   at 1440/768/375. */
.bhp-section-wrap > .bhp-section {
	margin-block-end: 0;
}

/* 86eypb6m6 mid-page audit (sec-mid, sections 4-9). Two verified CSS-layer
   defects; everything else found in this range (product-card markup in
   "Complete Nutrition", the gut-diagram + 3 biotics icons, the 8 axis-card
   icons/descriptions, the 7 concern-card icon glyphs, the 5 routine-card
   photos/prices/tags) is missing page CONTENT, not a stylesheet bug -- see
   the CHANGELOG entry for the full list; not touched here. */

/* "What's Your Dog Dealing With?" (.bhp-concern-grid, node 34241:135853+):
   Figma groups the 7 concern cards into two fixed rows -- 3 wider cards
   (453px @ desktop's 1384 measure) then 4 narrower cards (337px) -- at
   EVERY anchor (D 1440, T 768, M 425 all confirmed against index.json,
   the M frame instead uses 1-full-width + 2-column x3). The live grid is
   a single flex-wrap list with every card at the same `flex: 1 1 280px`
   basis, so the browser just fits as many 280px-basis cards per line as
   the container allows -- 4 first, then 3 -- the reverse of the design.
   Fix: give the first 3 items a ~33% basis and the rest ~25%, forcing the
   same row break Figma draws; `min-width: 0` is needed alongside it or a
   card's own intrinsic content (icon + label + the amber flag pill) floors
   the flex-basis and wraps early (the same gotcha the existing ≤767 rule
   already documents). Below 767px Figma's grouping flips to 1-then-2-col,
   so a second, narrower override replaces it there instead of stacking.
   Verified via addStyleTag + getBoundingClientRect row counts on the live
   page at 1440/1024/768/425/375/320: rows are [3,4] at >=768 and
   [1,2,2,2] at <768, matching the Figma frame at each width, before/after
   screenshots match. */
.bhp-concern-card-wrap { min-width: 0; }
.bhp-concern-card-wrap:nth-child(-n+3) { flex: 0 1 calc(33.333% - 8px); }
.bhp-concern-card-wrap:nth-child(n+4) { flex: 0 1 calc(25% - 9px); }
.bhp-concern-card { flex-wrap: wrap; }
@media (max-width: 767px) {
	.bhp-concern-card-wrap:nth-child(1) { flex: 1 1 100%; }
	.bhp-concern-card-wrap:nth-child(n+2) { flex: 0 1 calc(50% - 6px); }
}

/* "The Eight Gut-Organ Axes" accordion (.bhp-axis-grid, native core/details):
   Figma (34241:134882 component set) draws a chevron-down affordance on
   every one of the 8 cards ("heroicons-mini/chevron-down", 8 instances,
   confirmed in the offline nodes-*.json export). The live markup already
   hides the UA default triangle (`summary::-webkit-details-marker: none`,
   see above) but never replaced it with anything, so none of the 8 cards
   show ANY expand affordance at all. This restores a generic chevron using
   the same mask-image-on-currentColor technique already used elsewhere on
   this site (see header-navigation.css's icon masks) rather than a new
   icon asset, and flips it on [open] the same way native disclosure
   triangles rotate. This does not touch the still-open, separate question
   of whether the card's icon badge + description + "The science" link
   should be visible by default per Figma instead of collapsed -- that's a
   content/behaviour call, not a CSS one, and is flagged in the CHANGELOG
   rather than decided here. */
.bhp-axis-card__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
.bhp-axis-card__toggle::after {
	content: "";
	flex: 0 0 12px;
	width: 12px;
	height: 12px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.15s ease;
}
.bhp-axis-card__science[open] .bhp-axis-card__toggle::after {
	transform: rotate(180deg);
}

/* 86eypb6m6 parity audit (sec-low pass), section 11 "The Founder" pull
   quote. Figma (node 34215/34241 chain, walked via Frame 2147229735)
   centers only the eyebrow + quote heading on the 1000px measure
   (x=9386 in the export's coordinates, i.e. the "1000 centred" measure);
   the paragraphs, attribution and the (missing, see below) photo/text row
   stay left-aligned on the full 1384 measure. Live had every child
   left-aligned at the section's own edge, no measure distinction at all. */
.bhp-section:nth-of-type(12) > .bhp-eyebrow,
.bhp-section:nth-of-type(12) > h2.wp-block-heading {
	text-align: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

/* NOT FIXED HERE, flagged for a markup/content decision: Figma's founder
   section also has an entire photo/video block (Frame 2147229945, a 672px
   left column with a real photo and a video-play affordance, Rectangle
   9782 + Media/video_circle instance) and a "Meet the founder ->" link
   with an arrow icon (Frame 2147229741) after the credentials line. NONE
   of this exists in the live post_content (confirmed via outerHTML dump:
   only eyebrow/h2/2 paragraphs/credit/quals <p> tags, no <img>, no <a>,
   no icon). This is a missing CONTENT block, not a style bug -- there is
   no image asset or link href to attach via CSS, and inventing one (e.g.
   a background-image cropped from the Figma render standing in for a real
   photo, or a href-less clickable-looking div) would fabricate content
   this build does not have. Needs an actual markup/content change against
   the frozen post_content (BLK-01), out of a CSS-only fix's scope. */

/* ==========================================================================
   86eypb6m6 parity audit (sec-low pass), section 12 "What Goes In Matters.
   What Stays Out Matters More." (Figma node 34241:146546):
   1) The check/X badge icons -- both the centered header badge above each
      card's title and the small badge before every single list item --
      were entirely absent from post_content (plain browser `disc`
      bullets on the `<ul>`, no icon markup at all). Figma paths pulled
      from raw/nodes-1.json (check: id 34306:181054, 12.2x9; X: id
      34306:181078, 11x11), both white glyph on a filled circle (green
      #247B4E for "Always Inside", coral #FF6256 for "Never Inside").
   2) "Always Inside" card was missing its cream (#F8EDE3) background --
      both cards rendered plain white. "Never Inside" genuinely is white
      in Figma (its amber stroke is set invisible:false -> actually
      visible:false in the source, i.e. no border), which already
      matched, so only the "in" card needed the fix. Radius corrected
      10px per Figma (was 12px).
   3) The two footer paragraphs ("Free from common..." / "Plant-based by
      consequence...") are center-aligned on an 800px measure in Figma;
      live had them left-aligned like ordinary body copy.
   Verified via Playwright injection before writing, screenshots at
   scratchpad/seclow/s12-after-*.png.

   NOT FIXED HERE, flagged for a content decision: Figma also has a real
   product photo (a 430x631 image of the Bonza bag + a dog + a bowl of
   kibble, Figma node "image 674") filling the section's left column
   (Frame 2147229949, 1384 measure = image + the two cards side by side).
   Live has no image at all -- confirmed via outerHTML dump and a page-wide
   <img> src scan, no such asset exists anywhere on this page. This is a
   missing content block (no image asset to reference), not a style bug;
   the two cards currently render at full section width with no third
   column reserved for it. Needs an actual markup/content + media change
   against the frozen post_content (BLK-01), out of a CSS-only fix's
   scope. ========================================================================== */

.bhp-transparency-card {
	border-radius: 10px;
}
.bhp-transparency-card--in {
	background: var(--bhp-cream);
}
.bhp-transparency-card h4 ,.bhp-transparency-card h3 {
	text-align: center;
}
.bhp-transparency-card h4::before ,.bhp-transparency-card h3::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	flex: none;
	/* 86eypb6m6 S14: Figma icon-to-header gap is 20, was 12. */
	margin: 0 auto 20px;
	background-repeat: no-repeat;
	background-position: center;
}
.bhp-transparency-card--in h4::before ,.bhp-transparency-card--in h3::before {
	background-color: var(--bhp-green);
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2012.225%209.01875%27%3E%3Cpath%20fill%3D%27%23FFFFFF%27%20d%3D%27M4.275%209.01875L0%204.74375L1.06875%203.675L4.275%206.88125L11.1562%200L12.225%201.06875L4.275%209.01875Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 12px 9px;
}
.bhp-transparency-card--out h4::before ,.bhp-transparency-card--out h3::before {
	background-color: var(--bhp-coral);
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2011.0488%2011.0488%27%3E%3Cpath%20fill%3D%27%23FFFFFF%27%20d%3D%27M1.5507%2011.0488L0%209.49807L3.98753%205.51054L0%201.5507L1.5507%200L5.53823%203.98753L9.49807%200L11.0488%201.5507L7.06125%205.51054L11.0488%209.49807L9.49807%2011.0488L5.53823%207.06125L1.5507%2011.0488Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 11px 11px;
}
.bhp-transparency-card ul {
	list-style: none;
	padding-left: 0;
}
.bhp-transparency-card li {
	/* 86eypb6m6 S14: Figma rows are vertically centered, not top-aligned;
	   the ul's space-between now supplies each row's share of height. */
	display: flex;
	align-items: center;
	gap: 12px;
}
.bhp-transparency-card li::before {
	content: "";
	flex: none;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
}
.bhp-transparency-card--in li::before {
	background-color: var(--bhp-green);
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2012.225%209.01875%27%3E%3Cpath%20fill%3D%27%23FFFFFF%27%20d%3D%27M4.275%209.01875L0%204.74375L1.06875%203.675L4.275%206.88125L11.1562%200L12.225%201.06875L4.275%209.01875Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 12px 9px;
}
.bhp-transparency-card--out li::before {
	background-color: var(--bhp-coral);
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2011.0488%2011.0488%27%3E%3Cpath%20fill%3D%27%23FFFFFF%27%20d%3D%27M1.5507%2011.0488L0%209.49807L3.98753%205.51054L0%201.5507L1.5507%200L5.53823%203.98753L9.49807%200L11.0488%201.5507L7.06125%205.51054L11.0488%209.49807L9.49807%2011.0488L5.53823%207.06125L1.5507%2011.0488Z%27%2F%3E%3C%2Fsvg%3E");
	background-size: 11px 11px;
}
section:nth-of-type(13) p.wp-block-paragraph {
	text-align: center;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* 86eypb6m6 hp-sec-b audit (Figma export figma-context-20260923): eyebrow +
   H2 + intro paragraph are Figma textAlignHorizontal:CENTER on every
   section in this file's own range (sections 9-17 in the current pattern
   file's top-level <section> order: "What's Your Dog Dealing With?"
   through "Your Questions Answered"), not just the handful already covered
   by `.bhp-align-center` and the position-12/13/15 rules elsewhere in this
   file. This closes the rest, using the SAME `section:nth-of-type(N)`
   positional idiom already established here (see the HM-13 comment
   earlier in this file for the counting rule this depends on: N counts
   EVERY top-level <section> tag under .bhp-page, both .bhp-section and
   .bhp-section-wrap, in bonza_homepage_pattern_content()'s current array
   order). Same BLK-01 regen caveat as every other positional rule in this
   file. Per-section max-width matches each section's own Figma text-column
   measure (verified per node, not assumed uniform): 1000px for #9/#10/#17,
   800px for #11 (transparency's own #13 already has its own 800px
   paragraph rule above; this adds its still-missing eyebrow/h2), no
   max-width for #14/#16 (Figma runs their eyebrow/h2/intro the section's
   full 1384px content measure, not a narrower column). #12 (Founder) and
   #15 (Feed Your Dog Well) already have their own centering rules
   elsewhere in this file; not repeated here.
     #9  "What's Your Dog Dealing With?"  (34241:138585) -- 1000px
     #10 "Routines That Work as One"      (34241:140846) -- 1000px
     #11 "Formulated With Science..."     (34241:139880) -- 800px
     #13 "What Goes In Matters..."        (34241:146546) -- eyebrow/h2 only, 800px
     #14 "What Dog Owners Are Saying"     (35066:65509)  -- full width
     #16 "Your Dog's Gift to the Planet"  (34323:190186) -- full width
     #17 "Your Questions Answered"        (34323:194305) -- 1000px */
/* CORRECTED (86eypb6m6 intro-gaps selector audit): position 17 is a
   .bhp-section-wrap, so the class-gated pair below never matched. */
.bhp-section:nth-of-type(9) > .bhp-eyebrow,
.bhp-section:nth-of-type(9) > h2.wp-block-heading,
.bhp-section:nth-of-type(9) > p.wp-block-paragraph,
section:nth-of-type(10) > .bhp-section > .bhp-eyebrow,
section:nth-of-type(10) > .bhp-section > h2.wp-block-heading,
section:nth-of-type(10) > .bhp-section > p.wp-block-paragraph,
.bhp-section:nth-of-type(17) > .bhp-eyebrow,
.bhp-section:nth-of-type(17) > h2.wp-block-heading,
section:nth-of-type(17) > .bhp-section > .bhp-eyebrow,
section:nth-of-type(17) > .bhp-section > h2.wp-block-heading {
	text-align: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
section:nth-of-type(11) > .bhp-section > .bhp-eyebrow,
section:nth-of-type(11) > .bhp-section > h2.wp-block-heading,
section:nth-of-type(11) > .bhp-section > p.wp-block-paragraph,
section:nth-of-type(13) > .bhp-section > .bhp-eyebrow,
section:nth-of-type(13) > .bhp-section > h2.wp-block-heading {
	text-align: center;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

/* 86eypb6m6 S11 fix (carousel intro gap, nth-child(10) is a -wrap
   position, node I...;34612:67788 / desktop-1512.jsonl Frame 2147229924).
   Tablet-744 independently measures 24px, not a rounding of either
   M428=20 or D1512=64 -- a real 3-tier gap. Single coherent rule replaces
   #942's min-width:1440-only version and the duplicate block that used to
   shadow it below. */
.bhp-page > section:nth-child(11) > .bhp-band-cream > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-page > section:nth-child(11) > .bhp-band-cream > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(11) > .bhp-band-cream > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 64px;
	}
}

/* 86eypb6m6 S12 fix (nth-child(11), Formulated With Science): live
   30/27px vs Figma Frame 2147229837, gap 28 flat both widths (node
   I...;34612:68427). */
.bhp-page > section:nth-child(12) > .bhp-band-green > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 28px;
}

.bhp-section:nth-of-type(14) > .bhp-eyebrow,
.bhp-section:nth-of-type(14) > h2.wp-block-heading,
.bhp-section:nth-of-type(14) > p.wp-block-paragraph,
.bhp-section:nth-of-type(16) > .bhp-eyebrow,
.bhp-section:nth-of-type(16) > h2.wp-block-heading {
	text-align: center;
}

/* 86eypb6m6 hp-sec-b follow-up: Nutrition sits outside the nth-of-type(9-17)
   indices above (a splice moved it to #5), so this anchors on
   `.bhp-nutrition-ribbon` -- unique to this section's own product tiles --
   instead of another index the next splice could break. */
.bhp-section:has(.bhp-nutrition-ribbon) > .bhp-eyebrow,
.bhp-section:has(.bhp-nutrition-ribbon) > h2.wp-block-heading,
.bhp-section:has(.bhp-nutrition-ribbon) > p.wp-block-paragraph {
	text-align: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

/* 86eypb6m6 section-audit-b S10 ("find the right support" / 7 concern
   cards, nth-of-type(9)): intro-to-grid gap. :not(.bhp-eyebrow) keeps the
   eyebrow's own margin untouched. Kept numerically in sync with
   .bhp-concern-grid's margin-top above (the two collapse together) --
   tablet-vs-desktop re-audit found a real 744-1439 tier (24px), distinct
   from both M428=20 and D1512=64. */
.bhp-section:nth-of-type(9) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-section:nth-of-type(9) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-section:nth-of-type(9) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 64px;
	}
}

/* S12 "Formulated With Science. Not Marketing." (wrap, band-green, node
   I...;34612:68427). Re-verified: D=28 and M=28 are the SAME value in the
   ledger, flat, no media query needed. Live currently ships 30px. */
.bhp-page > section:nth-child(12) > .bhp-band-green > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 28px;
}

/* S13 "The Founder" (non-wrap, band-cream, node 34241:145503).
   No direct <p> under the section -- body copy sits two levels deep,
   inside .bhp-founder-row > .bhp-founder-col. Targeting the row's own
   margin-top hits the h2-to-content gap exactly, at both the stacked
   (mobile) and side-by-side (desktop) layouts. Tablet-vs-desktop
   re-audit: M428=20, T744=24, D1512=64 -- the same 3-tier pattern as
   S10/S11/S14/S15/S17, not the 2-state 767/768 split used elsewhere. */
.bhp-page > section:nth-child(13) > .bhp-founder-row {
	margin-top: 20px;
}
@media (min-width: 744px) {
	.bhp-page > section:nth-child(13) > .bhp-founder-row {
		margin-top: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(13) > .bhp-founder-row {
		margin-top: 64px;
	}
}

/* S14 "What Goes In Matters. What Stays Out Matters More." (wrap,
   band-green, node I...;34306:180165). This section has NO direct <p>
   (eyebrow -> h2 -> .bhp-transparency-inner), so the gap targets the h2,
   not a paragraph -- a p.wp-block-paragraph selector here is dead.
   Tablet-vs-desktop re-audit: M428=20, T744=24, D1512=64, replacing
   #942's min-width:1440-only rule (dead, shadowed by this later block). */
.bhp-page > section:nth-child(14) > .bhp-band-green > h2.wp-block-heading {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-page > section:nth-child(14) > .bhp-band-green > h2.wp-block-heading {
		margin-bottom: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(14) > .bhp-band-green > h2.wp-block-heading {
		margin-bottom: 64px;
	}
}
@media (max-width: 743px) {
	.bhp-page > section:nth-child(14) > .bhp-band-green > .bhp-transparency-inner {
		margin-top: 0;
	}
}

/* S15 "What Dog Owners Are Saying" (non-wrap, band-cream, node
   I...;35066:65510), same unstyled-default bug as S11. Tablet-vs-desktop
   re-audit: M428=20, T744=24, D1512=64. */
.bhp-page > section:nth-child(15) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-page > section:nth-child(15) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(15) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 64px;
	}
}

/* S16 "Feed Your Dog Well..." (`.bhp-section-wrap:where(:has(> .bhp-planetband-photo))`, band-green inside it).
   p1-p2 16 both widths; last-p-strip 60D/16M. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green > p.wp-block-paragraph:not(.bhp-eyebrow):nth-of-type(2) {
	margin-bottom: 16px;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green > p.wp-block-paragraph:not(.bhp-eyebrow):last-of-type {
	margin-bottom: 0;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--bottom {
	margin-top: 28px;
}
/* Mobile: band's padding-bottom is 4px past target, fixed at source. Strip's
   margin-top:28px above is unconditional, so it leaked onto mobile too
   (live-measured 44px vs 16px target) -- zero it here as well. */
@media (max-width: 743px) {
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green {
		padding-bottom: 20px;
	}
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--bottom {
		margin-top: 0;
	}
}
/* Tablet-vs-desktop re-audit (86eypb6m6, hp-fix-b PR #961 re-verify against
   the ledger): bottom is 24px at T-744 (node 34241:157916), not 20 --
   the previous 20px value here was copied from the live defect state
   before it had been checked against the ledger, not the target. Mobile
   above corrected the same way: ledger M-428 bottom is 20px, not 16.
   Same zero-the-strip / carry-on-padding pattern as the mobile fix. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green {
		padding-bottom: 24px;
	}
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--bottom {
		margin-top: 0;
	}
}

/* S17 FAQ: position 17 (not 16, which is "Your Dog's Gift to the Planet").
   Desktop already ships 64px via block-gap default; an h2 margin-bottom
   rule here is a no-op vs that margin-collapse, so target the list.
   Tablet-vs-desktop re-audit: raw deltas (95D/55T/51M) share a constant
   31px offset from the list's own first-item padding at every width, so
   the true gaps are the same 20/24/64 pattern confirmed elsewhere. */
@media (max-width: 743px) {
	.bhp-page > section:nth-child(18) > .bhp-section > .bhp-faq-list {
		margin-top: 20px;
	}
}
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-page > section:nth-child(18) > .bhp-section > .bhp-faq-list {
		margin-top: 24px;
	}
}

/* 86eypb6m6: section #1 ("Does This Sound Familiar?") has the same
   unstyled-default 30px margin, but its own Figma frame (2085664920,
   gap:22) calls for 22px, not 64px. */
.bhp-section:nth-of-type(1) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	margin-bottom: 22px;
}

/* ==========================================================================
   RESOLVED 2026-09-24 (86eypb6m6). This block used to flag section 13
   "What Dog Owners Are Saying" as needing a product/legal call between
   two options: "either wire up the real Feefo widget, or get explicit
   sign-off that this [hardcoded placeholder] copy is pre-approved static
   content safe to hardcode." The first option is what shipped:
   bonza_hp_reviews() (homepage/patterns/homepage.php) now emits the live
   [bonza_feefo_reviews] shortcode instead of the five Figma placeholder
   testimonials this rule used to style, so the PERSON-ATTRIBUTED-claim
   risk this note raised (a specific customer's name, pet and star rating
   baked into a stylesheet, disconnected from whatever Feefo's own record
   says) no longer applies -- there is no name/pet/rating left to bake in
   here, live or otherwise. The now-dead .bhp-review-card override
   (flex-basis 334px, coral border, 28px padding) is removed with it; the
   live carousel's card styling belongs to css/feefo-reviews.css's own
   .bfr-* rules, not this file. ========================================================================== */

/* ==========================================================================
   86eypb6m6 parity audit (sec-low pass), section 14 "Feed Your Dog Well.
   Leave the Planet Better." (Figma node 34241:157916/157918, 1000px
   measure): eyebrow/heading/both paragraphs are centered in Figma; live
   had them left-aligned edge-to-edge like ordinary body copy. Centered
   and constrained to the 1000px measure, verified at 1440/375
   (scratchpad/seclow/s14-after-*.png).

   NOT FIXED, flagged for a content decision: Figma's version of this
   section opens with a large full-bleed lifestyle photo (a woman walking
   a golden retriever beside a river, ~630px tall) above the green band,
   with its own torn top and bottom edges. Live has NO image and no
   leading torn-strip figure at all -- confirmed via outerHTML dump, the
   section starts directly at the green band and only the trailing strip
   exists. This accounts for most of the section's Figma-vs-live height
   gap (1284 design px vs 435 live px pre-fix). No such photo asset exists
   anywhere on the page; needs an actual markup/media change against the
   frozen post_content, out of a CSS-only fix's scope. ========================================================================== */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-section > .bhp-eyebrow,
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-section > h2.wp-block-heading,
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-section > p.wp-block-paragraph {
	text-align: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   86eypb6m6 parity audit (sec-low pass), section 15 "Your Dog's Gift to
   the Planet" (Figma node 34323:190186). The frame itself carries NO
   fill in Figma (transparent, showing the page's own cream background
   through), but post_content marks it `bhp-band-white`, forcing solid
   white. Same class of bug as HM-13 (section 11): confirmed the correct
   nth-of-type index live (`.bhp-section:nth-of-type(16)` matches this
   section uniquely, no other section affected) and overrode back to
   cream. (The "Our Responsibility" eyebrow above the heading is fine on
   live -- it only looked missing in an early screenshot because the crop
   started a few px below it, not a real bug; confirmed visible via
   computed style.)

   NOT FIXED, flagged for a content/asset decision: Figma shows FIVE
   partner badges (B Corp, "TR[1]BE — 176,625 trees protected", 1% For
   The Planet, Trees For The Future, Rainforest Trust). Live renders only
   FOUR -- the TR[1]BE badge is missing entirely, and this is not new to
   this retheme: the same four-of-five set (no TRIBE) is already used by
   the site's global footer badge row, so no TRIBE svg asset exists
   anywhere in this codebase to reference. Beyond the missing logo asset,
   the "176,625 trees protected" figure is a live-updating count (same
   category of number as the Feefo review count elsewhere in this audit)
   -- hardcoding today's Figma mockup value would go stale immediately.
   Needs a real TRIBE badge asset sourced from the client/design team,
   and ideally a live count wired up the same way the PDP's Feefo summary
   fetches a real number rather than a frozen static figure. Out of a
   CSS-only fix's scope. ========================================================================== */
.bhp-section:nth-of-type(16) {
	background-color: var(--bhp-cream);
}

/* ==========================================================================
   86eypb6m6 parity audit (sec-low pass), section 16 "Your Questions
   Answered" FAQ accordion (Figma node 34323:194305, "FAQ List"
   34323:195182):
   1) The "+" expand icon was completely absent from every row (no icon
      markup, no CSS drawing one). Figma's icon is a boolean union of two
      rectangles (15x3 horizontal, 3x15 vertical, white, node
      34323:195186/187/188) -- drawn as two background layers on a single
      ::after rather than an inline SVG, same technique already
      established for the PDP accordion's plus icon
      (.bppm-info-accordion__icon in faq-accordion.css). Rotates 45deg
      into a close cross on [open], matching that same file's own
      established convention (Figma only draws the closed state here
      too).
   2) Question text used the body font (Kobe1.1) at its natural case;
      Figma (node 34323:195185) is the HEADING font (Nominee), textCase
      UPPER, 0.32px letter-spacing -- text-transform:uppercase added.
   3) The list ran the full 1312px content width; Figma constrains it to
      the 1000px centred measure (x=9386 in the export's coordinates,
      matching every other centred-intro block audited this pass).
   4) The row divider was a flat 1px white-at-20%-opacity border; Figma
      uses the same wavy divider PNG already exported to disk for the
      category-page/PDP accordions (imageRef b999c7fc..., confirmed by
      id match), at a taller 15px box and full opacity here (that other
      context uses 2px/30% -- this section's own Figma box is genuinely
      different, not a copy error). Reused the existing asset rather than
      exporting a duplicate binary.
   Verified via injection, both collapsed and with a panel open, at
   1440/375 (scratchpad/seclow/s16-{closed,open}-*.png). ========================================================================== */
/* Divider top-anchored (Figma shows one above row 1 too); block-gap zeroed
   because it was stacking a 24px margin on the old bottom-anchored
   divider's own padding, inflating row pitch to 103px vs Figma's 63px. */
.bhp-faq-list {
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
	/* heading-to-list gap measured 64px in Figma (node 34323:194305);
	   the default h2 margin-bottom (~21px) collapses against this. */
	margin-top: 64px;
	--wp--style--block-gap: 0px;
}
.bhp-faq-list summary {
	position: relative;
	display: flex;
	align-items: center;
	padding-top: 8px;
	padding-bottom: 8px;
	padding-right: 31px;
	margin-bottom: 0;
	font-family: var(--bhp-heading-font);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.bhp-faq-list summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 15px;
	height: 15px;
	transform: translateY(-50%);
	background:
		linear-gradient(var(--bhp-white), var(--bhp-white)) center / 15px 3px no-repeat,
		linear-gradient(var(--bhp-white), var(--bhp-white)) center / 3px 15px no-repeat;
	transition: transform 0.2s ease;
}
.bhp-faq-list details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}
.bhp-faq-list > details {
	border-bottom: none;
	background-image: url('../assets/category-page/bcp-faq-separator.png');
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% 15px;
	padding: 23px 0 8px;
	margin: 0;
}
/* Figma's autoLayout gap sits only BETWEEN rows, none owed after the last;
   .bhp-section's own bottom padding closes the list, so this 16px was a
   second buffer doubling the gap below the FAQ block. */
.bhp-faq-list > details:last-child {
	padding-bottom: 0;
}

/* ==========================================================================
   86eypb6m6 parity audit (sec-mid could not finish; icons genuinely have
   geometry, not a Figma-seat blocker -- see figma-node-svg.py's own
   docstring). Section 6 "The Eight Gut-Organ Axes": all 8 cards were
   missing their icon badge entirely (no icon markup at all, only the
   chevron already fixed separately). Every icon below is the real Figma
   vector geometry for that exact card (ids under the "Home Page - D"
   Content Homepage instance, Frame 2147229901 > ... > Frame 2147229725
   family), not traced by eye:
     gut-Brain    34241:134880  (Material "neurology")
     gut-Skin     35873:95710   ("color", a paw/spot pattern -- multi-path)
     gut-Immune   34241:134874  (Material "health_and_safety")
     gut-Joints   34241:134892  (Material "south_america" -- yes, that is
                                 genuinely the icon Figma uses for this
                                 card; not swapped for something more
                                 "joint"-shaped, since matching the design
                                 is the job here, not correcting it)
     gut-Heart    34241:134886  (Material "favorite")
     Metabolic    34241:134917  (custom cycle/refresh glyph)
     Liver        34241:134907  (custom blob icon)
     Longevity    34241:134956  (custom medal/ribbon glyph)
   Liver and Longevity have no fillGeometry at all (stroke-outline and a
   clip-path-masked SVG import respectively); figma-node-svg.py's own
   `--node` only reads fillGeometry, so both needed a small extension
   (scratchpad/seclow/vecnet-to-path.js) that reconstructs a compact
   bezier path straight from the raw `vectorNetwork` (vertices + bezier
   tangents) instead -- still exact geometry, just read from a different
   field of the same offline export, and with the import's clip-mask
   rectangle (a literal opaque box Figma never renders directly, only via
   a clip-path relationship a flat geometry walk has no way to honour)
   excluded rather than drawn as a solid square. Also fixed along the way:
   figma-node-svg.py's own --node build includes a wrapping FRAME's own
   fillGeometry even when every one of its fills is visible:false (an
   invisible placeholder background), which painted an opaque
   currentColor box behind several of these icons; worked around locally
   by skipping any shape whose fills are all invisible.
   Badge is the same 61x61 amber (--bhp-amber) circle Figma uses on every
   card (Frame 9/10/8 wrappers), dark-ink (--bhp-ink) glyph, placed above
   the title via `::before` on the `<details>` (summary already owns its
   own ::after for the chevron). Verified by rendering all 8 to a
   side-by-side PNG before injecting on the live page
   (scratchpad/seclow/icons6/preview.png,
   scratchpad/seclow/s6-after-1440.png). ========================================================================== */

/* Icon badges, one per axis card. Each is the exact Figma vector geometry
   (fillGeometry where present, reconstructed from the raw vectorNetwork
   for the handful of stroke-outline/clip-path icons where it was not --
   Liver and Longevity), 61x61 amber (--bhp-amber) circle, dark-ink glyph,
   matching the header badges used elsewhere on this page. */
.bhp-page .bhp-axis-card__icon {
	/* delta: was 61px -- Figma icon-circle node I34457:304330;34241:134926
	   "Frame 10" measures 61.21px, re-ported from backup/947-polluted-e6fff8b6. */
	width: 61.21px;
	height: 61.21px;
	border-radius: 50%;
	background-color: var(--bhp-amber);
	background-repeat: no-repeat;
	background-position: center;
	margin: 0;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(1) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2040%2040%22%20width%3D%2240%22%20height%3D%2240%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M11.25%2030C9.83333%2030%208.61111%2029.5069%207.58333%2028.5208C6.55556%2027.5347%205.97222%2026.3472%205.83333%2024.9583C4.16667%2024.7361%202.77778%2024%201.66667%2022.75C0.555556%2021.5%200%2020.0278%200%2018.3333C0%2017.75%200.0763889%2017.1736%200.229167%2016.6042C0.381944%2016.0347%200.611111%2015.5%200.916667%2015C0.611111%2014.5%200.381944%2013.9722%200.229167%2013.4167C0.0763889%2012.8611%200%2012.2778%200%2011.6667C0%209.97222%200.555556%208.50694%201.66667%207.27083C2.77778%206.03472%204.15278%205.30556%205.79167%205.08333C5.875%203.66667%206.44444%202.46528%207.5%201.47917C8.55556%200.493056%209.80556%200%2011.25%200C11.9722%200%2012.6458%200.138889%2013.2708%200.416667C13.8958%200.694444%2014.4722%201.06944%2015%201.54167C15.5%201.06944%2016.0694%200.694444%2016.7083%200.416667C17.3472%200.138889%2018.0278%200%2018.75%200C20.1944%200%2021.4375%200.486111%2022.4792%201.45833C23.5208%202.43056%2024.0833%203.625%2024.1667%205.04167C25.8056%205.26389%2027.1875%206%2028.3125%207.25C29.4375%208.5%2030%209.97222%2030%2011.6667C30%2012.2778%2029.9236%2012.8611%2029.7708%2013.4167C29.6181%2013.9722%2029.3889%2014.5%2029.0833%2015C29.3889%2015.5%2029.6181%2016.0347%2029.7708%2016.6042C29.9236%2017.1736%2030%2017.75%2030%2018.3333C30%2020.0556%2029.4375%2021.5347%2028.3125%2022.7708C27.1875%2024.0069%2025.7917%2024.7361%2024.125%2024.9583C23.9861%2026.3472%2023.4097%2027.5347%2022.3958%2028.5208C21.3819%2029.5069%2020.1667%2030%2018.75%2030C18.0556%2030%2017.3819%2029.8681%2016.7292%2029.6042C16.0764%2029.3403%2015.5%2028.9722%2015%2028.5C14.4722%2028.9722%2013.8889%2029.3403%2013.25%2029.6042C12.6111%2029.8681%2011.9444%2030%2011.25%2030ZM16.6667%205.41667L16.6667%2024.5833C16.6667%2025.1667%2016.8681%2025.6597%2017.2708%2026.0625C17.6736%2026.4653%2018.1667%2026.6667%2018.75%2026.6667C19.3056%2026.6667%2019.7847%2026.4444%2020.1875%2026C20.5903%2025.5556%2020.8056%2025.0556%2020.8333%2024.5C20.25%2024.2778%2019.7153%2023.9792%2019.2292%2023.6042C18.7431%2023.2292%2018.3056%2022.7778%2017.9167%2022.25C17.6389%2021.8611%2017.5347%2021.4444%2017.6042%2021C17.6736%2020.5556%2017.9028%2020.1944%2018.2917%2019.9167C18.6806%2019.6389%2019.0972%2019.5347%2019.5417%2019.6042C19.9861%2019.6736%2020.3472%2019.9028%2020.625%2020.2917C20.9306%2020.7361%2021.3194%2021.0764%2021.7917%2021.3125C22.2639%2021.5486%2022.7778%2021.6667%2023.3333%2021.6667C24.25%2021.6667%2025.0347%2021.3403%2025.6875%2020.6875C26.3403%2020.0347%2026.6667%2019.25%2026.6667%2018.3333C26.6667%2018.1944%2026.6597%2018.0556%2026.6458%2017.9167C26.6319%2017.7778%2026.5972%2017.6389%2026.5417%2017.5C26.0694%2017.7778%2025.5625%2017.9861%2025.0208%2018.125C24.4792%2018.2639%2023.9167%2018.3333%2023.3333%2018.3333C22.8611%2018.3333%2022.4653%2018.1736%2022.1458%2017.8542C21.8264%2017.5347%2021.6667%2017.1389%2021.6667%2016.6667C21.6667%2016.1944%2021.8264%2015.7986%2022.1458%2015.4792C22.4653%2015.1597%2022.8611%2015%2023.3333%2015C24.25%2015%2025.0347%2014.6736%2025.6875%2014.0208C26.3403%2013.3681%2026.6667%2012.5833%2026.6667%2011.6667C26.6667%2010.75%2026.3403%209.97222%2025.6875%209.33333C25.0347%208.69444%2024.25%208.36111%2023.3333%208.33333C23.0278%208.83333%2022.6319%209.27083%2022.1458%209.64583C21.6597%2010.0208%2021.125%2010.3194%2020.5417%2010.5417C20.0972%2010.7083%2019.6667%2010.6944%2019.25%2010.5C18.8333%2010.3056%2018.5556%209.98611%2018.4167%209.54167C18.2778%209.09722%2018.2986%208.66667%2018.4792%208.25C18.6597%207.83333%2018.9722%207.55556%2019.4167%207.41667C19.8333%207.27778%2020.1736%207.02778%2020.4375%206.66667C20.7014%206.30556%2020.8333%205.88889%2020.8333%205.41667C20.8333%204.83333%2020.6319%204.34028%2020.2292%203.9375C19.8264%203.53472%2019.3333%203.33333%2018.75%203.33333C18.1667%203.33333%2017.6736%203.53472%2017.2708%203.9375C16.8681%204.34028%2016.6667%204.83333%2016.6667%205.41667ZM13.3333%2024.5833L13.3333%205.41667C13.3333%204.83333%2013.1319%204.34028%2012.7292%203.9375C12.3264%203.53472%2011.8333%203.33333%2011.25%203.33333C10.6667%203.33333%2010.1736%203.53472%209.77083%203.9375C9.36806%204.34028%209.16667%204.83333%209.16667%205.41667C9.16667%205.86111%209.29167%206.27083%209.54167%206.64583C9.79167%207.02083%2010.125%207.27778%2010.5417%207.41667C10.9861%207.55556%2011.3056%207.83333%2011.5%208.25C11.6944%208.66667%2011.7222%209.09722%2011.5833%209.54167C11.4167%209.98611%2011.125%2010.3056%2010.7083%2010.5C10.2917%2010.6944%209.86111%2010.7083%209.41667%2010.5417C8.83333%2010.3194%208.29861%2010.0208%207.8125%209.64583C7.32639%209.27083%206.93056%208.83333%206.625%208.33333C5.73611%208.36111%204.96528%208.70139%204.3125%209.35417C3.65972%2010.0069%203.33333%2010.7778%203.33333%2011.6667C3.33333%2012.5833%203.65972%2013.3681%204.3125%2014.0208C4.96528%2014.6736%205.75%2015%206.66667%2015C7.13889%2015%207.53472%2015.1597%207.85417%2015.4792C8.17361%2015.7986%208.33333%2016.1944%208.33333%2016.6667C8.33333%2017.1389%208.17361%2017.5347%207.85417%2017.8542C7.53472%2018.1736%207.13889%2018.3333%206.66667%2018.3333C6.08333%2018.3333%205.52083%2018.2639%204.97917%2018.125C4.4375%2017.9861%203.93056%2017.7778%203.45833%2017.5C3.40278%2017.6389%203.36806%2017.7778%203.35417%2017.9167C3.34028%2018.0556%203.33333%2018.1944%203.33333%2018.3333C3.33333%2019.25%203.65972%2020.0347%204.3125%2020.6875C4.96528%2021.3403%205.75%2021.6667%206.66667%2021.6667C7.22222%2021.6667%207.73611%2021.5486%208.20833%2021.3125C8.68056%2021.0764%209.06944%2020.7361%209.375%2020.2917C9.65278%2019.9028%2010.0139%2019.6736%2010.4583%2019.6042C10.9028%2019.5347%2011.3194%2019.6389%2011.7083%2019.9167C12.0972%2020.1944%2012.3264%2020.5556%2012.3958%2021C12.4653%2021.4444%2012.3611%2021.8611%2012.0833%2022.25C11.6944%2022.7778%2011.25%2023.2361%2010.75%2023.625C10.25%2024.0139%209.70833%2024.3194%209.125%2024.5417C9.15278%2025.0972%209.375%2025.5903%209.79167%2026.0208C10.2083%2026.4514%2010.6944%2026.6667%2011.25%2026.6667C11.8333%2026.6667%2012.3264%2026.4653%2012.7292%2026.0625C13.1319%2025.6597%2013.3333%2025.1667%2013.3333%2024.5833Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(5%205)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 38.0px 38.0px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(2) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2061.21%2061.21%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate(11.61%2C24.27)%22%3E%3Cpath%20d%3D%22M2.77051%201H35.2295C36.2049%201.00018%2036.9998%201.79513%2037%202.77051V16.2295C36.9998%2018.079%2035.495%2019.583%2033.6455%2019.583H4.35449C2.50497%2019.583%201.00018%2018.079%201%2016.2295V2.77051C1.00018%201.79513%201.79513%201.00018%202.77051%201Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(25.86%2C35.35)%22%3E%3Cpath%20d%3D%22M2.375%204.75C3.68668%204.75%204.75%203.68668%204.75%202.375C4.75%201.06332%203.68668%200%202.375%200C1.06332%200%200%201.06332%200%202.375C0%203.68668%201.06332%204.75%202.375%204.75Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(11.61%2C33.77)%22%3E%3Cpath%20d%3D%22M6.33333%203.95833C6.33333%206.14333%204.56%207.91667%202.375%207.91667C1.48833%207.91667%200.665%207.63167%200.0158333%207.125C0%206.99833%200%206.85583%200%206.72917V0.791667C0.649167%200.300833%201.48833%200%202.375%200C4.56%200%206.33333%201.77333%206.33333%203.95833Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(43.27%2C32.19)%22%3E%3Cpath%20d%3D%22M0%203.95833C0%206.14333%201.77333%207.91667%203.95833%207.91667C4.845%207.91667%205.66833%207.63167%206.3175%207.125C6.33333%206.99833%206.33333%206.85583%206.33333%206.72917V0.791667C5.68417%200.300833%204.845%200%203.95833%200C1.77333%200%200%201.77333%200%203.95833Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(19.97%2C16.35)%22%3E%3Cpath%20d%3D%22M1.93021%2015.0411C1.17338%2015.0411%200.503626%2014.4964%200.372209%2013.7253C-0.378291%209.3648%20-0.219957%205.48089%202.99263%200.699222C3.48029%20-0.0259446%204.46513%20-0.217528%205.19029%200.268556C5.91546%200.756222%206.10863%201.73947%205.62096%202.46622C2.98629%206.38656%202.85329%209.47564%203.49138%2013.1901C3.64021%2014.0515%203.06229%2014.8716%202.19938%2015.0189C2.10913%2015.0347%202.01888%2015.0411%201.93021%2015.0411Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(37.38%2C16.35)%22%3E%3Cpath%20d%3D%22M1.93021%2015.0418C1.17338%2015.0418%200.503626%2014.4971%200.372209%2013.726C-0.378291%209.3655%20-0.219956%205.48%202.99263%200.699918C3.48188%20-0.0252482%204.46513%20-0.218415%205.19029%200.269252C5.91546%200.756919%206.11021%201.74017%205.62096%202.46692C2.98629%206.38725%202.85329%209.47633%203.49138%2013.1908C3.64021%2014.0522%203.06229%2014.8723%202.19938%2015.0196C2.10913%2015.0354%202.01888%2015.0418%201.93021%2015.0418Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(19.52%2C27.44)%22%3E%3Cpath%20d%3D%22M2.375%204.75C3.68668%204.75%204.75%203.68668%204.75%202.375C4.75%201.06332%203.68668%200%202.375%200C1.06332%200%200%201.06332%200%202.375C0%203.68668%201.06332%204.75%202.375%204.75Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(36.94%2C27.44)%22%3E%3Cpath%20d%3D%22M2.375%204.75C3.68668%204.75%204.75%203.68668%204.75%202.375C4.75%201.06332%203.68668%200%202.375%200C1.06332%200%200%201.06332%200%202.375C0%203.68668%201.06332%204.75%202.375%204.75Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	background-size: 61.21px 61.21px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(3) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2040%2040%22%20width%3D%2240%22%20height%3D%2240%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M10.8333%2022.5L15.8333%2022.5L15.8333%2018.3333L20%2018.3333L20%2013.3333L15.8333%2013.3333L15.8333%209.16667L10.8333%209.16667L10.8333%2013.3333L6.66666%2013.3333L6.66666%2018.3333L10.8333%2018.3333L10.8333%2022.5ZM13.3333%2033.3333C9.47222%2032.3611%206.28472%2030.1458%203.77083%2026.6875C1.25694%2023.2292%200%2019.3889%200%2015.1667L0%205L13.3333%200L26.6667%205L26.6667%2015.1667C26.6667%2019.3889%2025.4097%2023.2292%2022.8958%2026.6875C20.3819%2030.1458%2017.1944%2032.3611%2013.3333%2033.3333ZM13.3333%2029.8333C16.2222%2028.9167%2018.6111%2027.0833%2020.5%2024.3333C22.3889%2021.5833%2023.3333%2018.5278%2023.3333%2015.1667L23.3333%207.29167L13.3333%203.54167L3.33333%207.29167L3.33333%2015.1667C3.33333%2018.5278%204.27778%2021.5833%206.16666%2024.3333C8.05555%2027.0833%2010.4444%2028.9167%2013.3333%2029.8333Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(6.6669921875%203.333251953125)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 38.0px 38.0px;
}
/* FIX 86eyzmwue: this icon's inline SVG was exported from Figma with each stroked
   vector twice: the stroke outline (the thin line art, kept) and the vector's
   own fill geometry (the solid #000000 `M 0.49 0 L ...` paths, removed). The fill
   geometry of an open stroke path closes into a solid shape, so the icon drew as
   a black blob under the line art. Only the stroke outline paths remain. */
/* FIX 86eyzmwue (axis 4): the export also carried a white ring path. Figma's Gut-Joints
   icon ("south_america" union) holds only the bone, the joint circle and the dots, no
   ring, so the white ring was a stray and is removed. */
.bhp-axis-grid > .bhp-axis-card:nth-child(4) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2041.97321319580078%2041.97321319580078%22%20width%3D%2241.97321319580078%22%20height%3D%2241.97321319580078%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M21.3335%201.94388C23.9683%20-0.682503%2028.239%20-0.63047%2030.8745%201.99661C31.931%203.05007%2032.5703%204.3648%2032.7905%205.73001C34.1588%205.94849%2035.478%206.5851%2036.5356%207.63919C39.173%2010.2688%2039.2255%2014.5345%2036.5883%2017.1636C34.73%2019.0161%2032.0532%2019.5339%2029.7221%2018.7613C29.356%2018.6399%2028.9624%2018.7355%2028.6997%2018.9976L28.0415%2019.6538C27.4531%2020.2411%2026.5%2020.24%2025.9126%2019.6519C25.3253%2019.0634%2025.3261%2018.1103%2025.9145%2017.523L26.5717%2016.8667C27.65%2015.7904%2029.2371%2015.429%2030.6694%2015.9038C31.9808%2016.3385%2033.453%2016.0377%2034.4624%2015.0318C35.8909%2013.6076%2035.8962%2011.2535%2034.4106%209.772C33.7308%209.09437%2032.8635%208.72556%2031.9838%208.6636L31.393%209.25052C30.8025%209.83526%2029.8492%209.82984%2029.2641%209.23978C28.6792%208.64905%2028.6833%207.69593%2029.2739%207.11087L29.8569%206.53372C29.7933%205.66303%2029.4258%204.80382%2028.7485%204.12845C27.2598%202.64482%2024.891%202.64977%2023.4594%204.07669C22.4528%205.08015%2022.152%206.53839%2022.5825%207.83841C23.0573%209.27215%2022.6998%2010.866%2021.6147%2011.9478L11.9672%2021.564L11.9663%2021.563C10.8882%2022.6373%209.303%2022.9988%207.87154%2022.524C6.55977%2022.0888%205.08741%2022.3905%204.0776%2023.397L4.07662%2023.396C2.6482%2024.8204%202.64434%2027.1745%204.13033%2028.6558C4.8096%2029.3326%205.67539%2029.6999%206.55416%2029.7622L7.14693%2029.1773C7.73769%2028.5924%208.69081%2028.5964%209.27584%2029.187C9.86079%2029.7778%209.85566%2030.7309%209.26509%2031.3159L8.68209%2031.8931C8.74534%2032.7641%209.11381%2033.6238%209.79146%2034.2993C11.2801%2035.7827%2013.649%2035.7779%2015.0805%2034.3511C15.5814%2033.8518%2015.92%2033.13%2016.0629%2032.3882C15.6268%2031.7592%2015.3021%2031.0478%2015.1157%2030.2818L14.7993%2030.2818C13.968%2030.2815%2013.2934%2029.6072%2013.2934%2028.7759C13.2937%2027.9448%2013.9682%2027.2703%2014.7993%2027.27L15.1157%2027.27C15.6745%2024.9739%2017.4807%2023.1668%2019.7768%2022.6079L19.7768%2022.2935C19.7771%2021.4623%2020.4514%2020.7877%2021.2827%2020.7876C22.114%2020.7876%2022.7883%2021.4622%2022.7885%2022.2935L22.7885%2022.6079C25.085%2023.1666%2026.8918%2024.9736%2027.4506%2027.27L27.7661%2027.27L27.9204%2027.2779C28.6791%2027.3552%2029.2717%2027.9968%2029.2719%2028.7759C29.2719%2029.5552%2028.6793%2030.1966%2027.9204%2030.274L27.7661%2030.2818L27.4506%2030.2818C26.8919%2032.5782%2025.085%2034.3842%2022.7885%2034.9429L22.7885%2035.2593L22.7807%2035.4136C22.7035%2036.1726%2022.0621%2036.7652%2021.2827%2036.7652C20.5034%2036.7651%2019.8619%2036.1726%2019.7846%2035.4136L19.7768%2035.2593L19.7768%2034.9429C19.3463%2034.8381%2018.9326%2034.691%2018.5415%2034.5034C18.2265%2035.2215%2017.7868%2035.9054%2017.2065%2036.4839C14.5718%2039.11%2010.3009%2039.0578%207.66549%2036.4312C6.60867%2035.3775%205.96959%2034.0623%205.74947%2032.6968C4.38128%2032.4783%203.06195%2031.8426%202.00435%2030.7886C-0.633535%2028.159%20-0.684943%2023.8934%201.9526%2021.2642L2.12838%2021.0943C3.97764%2019.3799%206.56107%2018.9171%208.81978%2019.6665C9.1851%2019.7876%209.57945%2019.6931%209.84224%2019.4312L19.4887%209.81497C19.7508%209.55358%2019.8482%209.15782%2019.7251%208.78567C18.9545%206.4597%2019.4778%203.79365%2021.3335%201.94388ZM21.2827%2025.439C19.4398%2025.4393%2017.9459%2026.933%2017.9458%2028.7759C17.9458%2030.6189%2019.4397%2032.1135%2021.2827%2032.1138C23.1259%2032.1138%2024.6206%2030.6191%2024.6206%2028.7759C24.6205%2026.9328%2023.1258%2025.439%2021.2827%2025.439Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate%28-0.32421875%200.191162109375%29%22%2F%3E%3C%2Fsvg%3E");
	background-size: 38.0px 38.0px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(5) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2040%2040%22%20width%3D%2240%22%20height%3D%2240%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M16.6667%2030.5833L14.25%2028.4167C11.4444%2025.8889%209.125%2023.7083%207.29167%2021.875C5.45833%2020.0417%204%2018.3958%202.91667%2016.9375C1.83333%2015.4792%201.07639%2014.1389%200.645833%2012.9167C0.215278%2011.6944%200%2010.4444%200%209.16667C0%206.55556%200.875%204.375%202.625%202.625C4.375%200.875%206.55556%200%209.16667%200C10.6111%200%2011.9861%200.305556%2013.2917%200.916667C14.5972%201.52778%2015.7222%202.38889%2016.6667%203.5C17.6111%202.38889%2018.7361%201.52778%2020.0417%200.916667C21.3472%200.305556%2022.7222%200%2024.1667%200C26.7778%200%2028.9583%200.875%2030.7083%202.625C32.4583%204.375%2033.3333%206.55556%2033.3333%209.16667C33.3333%2010.4444%2033.1181%2011.6944%2032.6875%2012.9167C32.2569%2014.1389%2031.5%2015.4792%2030.4167%2016.9375C29.3333%2018.3958%2027.875%2020.0417%2026.0417%2021.875C24.2083%2023.7083%2021.8889%2025.8889%2019.0833%2028.4167L16.6667%2030.5833ZM16.6667%2026.0833C19.3333%2023.6944%2021.5278%2021.6458%2023.25%2019.9375C24.9722%2018.2292%2026.3333%2016.7431%2027.3333%2015.4792C28.3333%2014.2153%2029.0278%2013.0903%2029.4167%2012.1042C29.8056%2011.1181%2030%2010.1389%2030%209.16667C30%207.5%2029.4444%206.11111%2028.3333%205C27.2222%203.88889%2025.8333%203.33333%2024.1667%203.33333C22.8611%203.33333%2021.6528%203.70139%2020.5417%204.4375C19.4306%205.17361%2018.6667%206.11111%2018.25%207.25L15.0833%207.25C14.6667%206.11111%2013.9028%205.17361%2012.7917%204.4375C11.6806%203.70139%2010.4722%203.33333%209.16667%203.33333C7.5%203.33333%206.11111%203.88889%205%205C3.88889%206.11111%203.33333%207.5%203.33333%209.16667C3.33333%2010.1389%203.52778%2011.1181%203.91667%2012.1042C4.30556%2013.0903%205%2014.2153%206%2015.4792C7%2016.7431%208.36111%2018.2292%2010.0833%2019.9375C11.8056%2021.6458%2014%2023.6944%2016.6667%2026.0833Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(3.3330078125%204.416748046875)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 38.0px 38.0px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(6) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2061.21%2061.21%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate(9.75%2C11.24)%22%3E%3Cpath%20d%3D%22M2.97897%2019.3633C2.97897%2010.3145%2010.3145%202.97897%2019.3633%202.97897C27.4012%202.97897%2034.0871%208.76688%2035.4808%2016.4022L33.5949%2015.145C32.9105%2014.6887%2031.9857%2014.8737%2031.5293%2015.5581C31.0731%2016.2426%2031.2581%2017.1674%2031.9425%2017.6238L36.4109%2020.6027C37.0954%2021.059%2038.0202%2020.874%2038.4766%2020.1895L41.4555%2015.7211C41.9118%2015.0367%2041.7268%2014.1118%2041.0424%2013.6555C40.3579%2013.1992%2039.4331%2013.3842%2038.9767%2014.0686L38.2642%2015.1377C36.3362%206.47574%2028.606%200%2019.3633%200C8.66926%200%200%208.66926%200%2019.3633C0%2030.0574%208.66926%2038.7267%2019.3633%2038.7267C25.8432%2038.7267%2031.5794%2035.5423%2035.0919%2030.6596C35.5722%2029.9917%2035.4203%2029.0609%2034.7526%2028.5806C34.0847%2028.1002%2033.1539%2028.2521%2032.6735%2028.9199C29.6968%2033.058%2024.8442%2035.7477%2019.3633%2035.7477C10.3145%2035.7477%202.97897%2028.4121%202.97897%2019.3633Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(26.88%2C18.69)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.15762%201.13399C6.64564%20-0.377998%204.19425%20-0.377998%202.68227%201.13399C1.54341%202.27277%201.26234%203.94446%201.83892%205.34622L0.436271%206.74902C0.156992%207.0283%200%207.40707%200%207.80223C0%208.19725%200.156992%208.57602%200.436271%208.85545L0.923036%209.34207L1.05619%2010.3278C1.06498%2010.3927%201.07809%2010.4571%201.09522%2010.5202L1.45627%2011.8438C1.52449%2012.0939%201.65676%2012.3218%201.83996%2012.5051L2.68227%2013.3474C2.96155%2013.6267%203.34047%2013.7836%203.73548%2013.7836C4.1305%2013.7836%204.50942%2013.6267%204.7887%2013.3474L7.31442%2010.8217C8.71618%2011.3983%2010.3878%2011.1172%2011.5267%209.97837C13.0387%208.4664%2013.0387%206.015%2011.5267%204.50302C10.8908%203.86716%2010.0898%203.49925%209.26267%203.39797C9.16139%202.57093%208.79348%201.76984%208.15762%201.13399ZM3.80787%208.44495C3.77764%208.22167%203.69735%208.00942%203.57462%207.82353L4.7887%206.60945C5.06798%206.33002%205.22497%205.95125%205.22497%205.55624C5.22497%205.16122%205.06798%204.7823%204.7887%204.50302C4.44001%204.15433%204.44001%203.58907%204.7887%203.24038C5.13739%202.89181%205.70265%202.89181%206.05119%203.24038C6.32436%203.5137%206.38558%203.92301%206.22605%204.25681C5.95393%204.82639%206.07055%205.50574%206.5168%205.95214L6.7085%206.14384C7.1549%206.59009%207.83425%206.70672%208.40383%206.43459C8.73763%206.27506%209.14694%206.33628%209.42026%206.60945C9.7688%206.95799%209.7688%207.52325%209.42026%207.87194C9.07157%208.22063%208.50631%208.22063%208.15762%207.87194C7.57598%207.2903%206.63283%207.2903%206.05119%207.87194L4.01581%209.90732L3.9951%209.83136L3.80787%208.44495Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(17.2%2C28.29)%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9.34296%201.19732C9.23527%200.658723%208.83981%200.223049%208.31402%200.0639716C7.78823%20-0.0952545%207.21761%200.047885%206.82915%200.436194L5.34622%201.91913C3.94442%201.34255%202.27277%201.62361%201.13399%202.76247C-0.377998%204.27445%20-0.377998%206.72585%201.13399%208.23783C1.76984%208.87369%202.57093%209.24159%203.39803%209.34288C3.49924%2010.1698%203.86713%2010.971%204.50302%2011.6069C6.015%2013.1189%208.46639%2013.1189%209.97837%2011.6069C11.1172%2010.468%2011.3983%208.79638%2010.8217%207.39463L12.2244%205.99183C12.5629%205.65327%2012.7181%205.17261%2012.6414%204.70015C12.5647%204.22753%2012.2655%203.8206%2011.8373%203.60642L9.87292%202.62425L9.55015%202.23356L9.34296%201.19732ZM6.60945%204.86891L7.29611%204.18225L7.77676%204.76434C7.90903%204.92432%208.07332%205.05509%208.25906%205.14789L8.6566%205.34673L7.87194%206.13139C7.2903%206.71304%207.2903%207.65618%207.87194%208.23783C8.22063%208.58652%208.22063%209.15177%207.87194%209.50046C7.52325%209.849%206.95799%209.849%206.60945%209.50046C6.33628%209.22714%206.27506%208.81783%206.43459%208.48404C6.70671%207.91446%206.59009%207.23511%206.14384%206.78871L5.95214%206.59701C5.50574%206.15076%204.82639%206.03413%204.25681%206.30626C3.92306%206.46579%203.51366%206.40457%203.24046%206.13139C2.89181%205.78285%202.89181%205.2176%203.24046%204.86891C3.58909%204.52022%204.15433%204.52022%204.50302%204.86891C5.08466%205.45055%206.02781%205.45055%206.60945%204.86891Z%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	background-size: 61.21px 61.21px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(7) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2061.21%2061.21%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate(10.77%2C15.88)%22%3E%3Cpath%20d%3D%22M23.2408%201.54932C24.9522%201.54932%2026.3395%202.93669%2026.3395%204.64803C26.3395%204.64803%2026.3395%2010.8563%2026.3395%2010.8617C26.3353%2013.3697%2025.1326%2015.7246%2023.106%2017.202C18.4371%2020.6059%2015.2339%2027.8884%209.2966%2027.8884C6.72458%2027.8884%204.64852%2025.8121%204.64852%2023.2403C4.64852%2017.0429%201.5498%2017.0429%201.5498%2010.8455C1.5498%205.73251%205.73299%201.54932%2010.846%201.54932H23.2408Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%223.1%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(35.225%2C15.88)%22%3E%3Cpath%20d%3D%22M13.6653%204.64803C13.6653%2010.6286%209.42003%2015.4935%203.43951%2015.4935C3.43905%2015.4935%203.43866%2015.4935%203.43819%2015.4935C2.85595%2015.4936%202.30623%2015.225%201.94841%2014.7657C1.59059%2014.3063%201.46485%2013.7075%201.60716%2013.1429C1.79223%2012.4088%201.89015%2011.6388%201.89015%2010.8455V4.64803C1.89015%202.93669%203.27753%201.54932%204.98887%201.54932H10.5666C12.2709%201.54932%2013.6653%202.94374%2013.6653%204.64803Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%223.1%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(18.52%2C22.08)%22%3E%3Cpath%20d%3D%22M4.64852%207.74675C6.3599%207.74675%207.74724%206.35941%207.74724%204.64803C7.74724%202.93666%206.3599%201.54932%204.64852%201.54932C2.93715%201.54932%201.5498%202.93666%201.5498%204.64803C1.5498%206.35941%202.93715%207.74675%204.64852%207.74675Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%223.1%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Ccircle%20cx%3D%2223.17%22%20cy%3D%2236.03%22%20r%3D%221.55%22%20fill%3D%22%232E2A2A%22%2F%3E%3C%2Fsvg%3E");
	background-size: 61.21px 61.21px;
}
.bhp-axis-grid > .bhp-axis-card:nth-child(8) .bhp-axis-card__icon {
	background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2061.21%2061.21%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate(14.37%2C17.24)%22%3E%3Cpath%20d%3D%22M31.5193%208.22607H0.951172V1.24995H31.5193V8.22607Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(17.0%2C14.22)%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(23.965%2C14.22)%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(30.945%2C14.22)%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(37.925%2C14.22)%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(29.36%2C40.7)%22%3E%3Cpath%20d%3D%22M1.25%205.33667V1.25012%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(28.09%2C40.55)%22%3E%3Cpath%20d%3D%22M1.25%201.25H3.78677%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(33.16%2C29.67)%22%3E%3Cpath%20d%3D%22M6.32355%207.2749H4.10387C2.52771%207.2749%201.25%205.99719%201.25%204.42103V2.51845C1.25%201.81799%201.81786%201.25007%202.51839%201.25007C4.61991%201.25007%206.32355%202.9537%206.32355%205.05523V7.2749Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(20.48%2C29.67)%22%3E%3Cpath%20d%3D%22M1.25%207.2749H3.46968C5.04584%207.2749%206.32355%205.99719%206.32355%204.42103V2.51845C6.32355%201.81799%205.75569%201.25007%205.05516%201.25007C2.95363%201.25007%201.25%202.9537%201.25%205.05523V7.2749Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(21.61%2C29.82)%22%3E%3Cpath%20d%3D%22M15.9969%207.27474H15.6554C14.0793%207.27474%2012.8016%205.99703%2012.8016%204.42087V2.51829C12.8016%202.50205%2012.8034%202.48633%2012.804%202.47022C11.7074%201.81624%2010.3633%201.2499%208.99639%201.2499C7.62958%201.2499%206.28541%201.81624%205.18882%202.47022C5.18939%202.48633%205.19123%202.50205%205.19123%202.51829V4.42087C5.19123%205.99703%203.91352%207.27474%202.33736%207.27474H1.99585L1.33153%2010.1535C0.993888%2011.6168%201.72892%2013.1164%203.09243%2013.7457L7.93336%2015.9799C8.60782%2016.2912%209.38496%2016.2912%2010.0595%2015.9799L14.9003%2013.7457C16.2639%2013.1164%2016.999%2011.6168%2016.6613%2010.1535L15.9969%207.27474Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(14.37%2C24.22)%22%3E%3Cpath%20d%3D%22M23.5807%2017.866H31.5193V1.2501H0.951172V17.866H8.88975%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	background-size: 61.21px 61.21px;
}

/* ==========================================================================
   86eypb6m6 parity audit (sec-mid could not finish; confirmed NOT a Figma
   seat-limit block, same as section 6 -- see that section's own comment
   above for the tooling detail). Section 8 "What's Your Dog Dealing
   With?": post_content already has an empty `<span class="bhp-concern-
   icon" aria-hidden="true">` in every one of the 7 concern cards, so this
   is pure CSS -- no markup change needed. Real Figma vector geometry
   (Home Page - D > Content Homepage > ... > Frame 2147229944, the
   "Frame 8" badge under each of the 7 "Frame 2147229753.. 2147229759"
   cards) via background-image, one real icon per concern: Everyday Gut
   Health, Tummy & Digestion, Itchy Skin & Allergies, Anxiety & Stress,
   Joints & Mobility, Fleas/Ticks & Worms, Senior Years. The 42x42 amber
   badge circle itself was already correct (.bhp-concern-icon's own
   background-color); the glyph SVGs below have that redundant circle
   path stripped (same vecnet-to-path.js tool, --skip-root-fill) so it
   is not drawn twice. Liver/Longevity-style extraction gaps (no
   fillGeometry, or a clip-path mask) recur here on 2 of the 7 and are
   handled the same way. Verified by rendering all 7 to a side-by-side
   comparison image before injecting on the live page
   (scratchpad/seclow/icons8/preview.png,
   scratchpad/seclow/s8-after3-1440.png). ========================================================================== */

/* Icon glyphs for the seven concern cards. Each ::before is the real
   Figma vector geometry for that exact card's "Frame 8" badge (icons8/
   1-gut.svg .. 7-senior.svg), badge circle itself unchanged (already
   correct via .bhp-concern-icon's own background-color). */
.bhp-concern-card-wrap:nth-child(1) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M9.50838%2020.5587C9.30279%2020.5587%209.1229%2020.4816%208.96871%2020.3274C8.81452%2020.1732%208.73743%2019.9933%208.73743%2019.7877C8.73743%2019.5821%208.81452%2019.4022%208.96871%2019.248C9.1229%2019.0938%209.30279%2019.0168%209.50838%2019.0168L9.50838%2017.4235C8.78882%2017.3378%208.1121%2017.1665%207.47821%2016.9095C6.84432%2016.6525%206.27039%2016.3099%205.75642%2015.8816L4.65139%2017.0123C4.80558%2017.1665%204.88268%2017.3464%204.88268%2017.5519C4.88268%2017.7575%204.80558%2017.9374%204.65139%2018.0916C4.4972%2018.2458%204.31732%2018.3229%204.11173%2018.3229C3.90614%2018.3229%203.72626%2018.2458%203.57207%2018.0916L2.46704%2017.0123C2.31285%2016.8581%202.23575%2016.6739%202.23575%2016.4598C2.23575%2016.2456%202.31285%2016.0614%202.46704%2015.9073C2.62123%2015.7531%202.80112%2015.6803%203.0067%2015.6888C3.21229%2015.6974%203.39218%2015.7702%203.54637%2015.9073L4.67709%2014.7765C4.24879%2014.2454%203.90614%2013.6715%203.64916%2013.0547C3.39218%2012.438%203.22086%2011.7698%203.13519%2011.0503L1.5419%2011.0503C1.5419%2011.2559%201.4648%2011.4357%201.31061%2011.5899C1.15642%2011.7441%200.976536%2011.8212%200.770949%2011.8212C0.565363%2011.8212%200.385475%2011.7441%200.231285%2011.5899C0.0770949%2011.4357%200%2011.2559%200%2011.0503L0%209.50838C0%209.30279%200.0770949%209.1229%200.231285%208.96871C0.385475%208.81452%200.565363%208.73743%200.770949%208.73743C0.976536%208.73743%201.15642%208.81452%201.31061%208.96871C1.4648%209.1229%201.5419%209.30279%201.5419%209.50838L3.13519%209.50838C3.22086%208.78882%203.39646%208.12067%203.66201%207.50391C3.92756%206.88715%204.26592%206.31322%204.67709%205.78212L3.54637%204.65139C3.39218%204.78845%203.21229%204.86126%203.0067%204.86983C2.80112%204.8784%202.62123%204.80558%202.46704%204.65139C2.31285%204.4972%202.23575%204.31303%202.23575%204.09888C2.23575%203.88473%202.31285%203.70056%202.46704%203.54637L3.54637%202.46704C3.70056%202.31285%203.88473%202.23575%204.09888%202.23575C4.31303%202.23575%204.4972%202.31285%204.65139%202.46704C4.80558%202.62123%204.88268%202.8054%204.88268%203.01955C4.88268%203.2337%204.80558%203.41788%204.65139%203.57207L5.75642%204.67709C6.28752%204.24879%206.86145%203.90614%207.47821%203.64916C8.09497%203.39218%208.76312%203.22086%209.48268%203.13519L9.48268%201.5419C9.27709%201.5419%209.10149%201.4648%208.95586%201.31061C8.81024%201.15642%208.73743%200.976536%208.73743%200.770949C8.73743%200.565363%208.81452%200.385475%208.96871%200.231285C9.1229%200.0770949%209.30279%200%209.50838%200L11.0503%200C11.2559%200%2011.4357%200.0770949%2011.5899%200.231285C11.7441%200.385475%2011.8212%200.565363%2011.8212%200.770949C11.8212%200.976536%2011.7441%201.15642%2011.5899%201.31061C11.4357%201.4648%2011.2559%201.5419%2011.0503%201.5419L11.0503%203.13519C11.7698%203.22086%2012.438%203.39218%2013.0547%203.64916C13.6715%203.90614%2014.2454%204.24879%2014.7765%204.67709L15.9073%203.54637C15.7531%203.39218%2015.676%203.21229%2015.676%203.0067C15.676%202.80112%2015.7531%202.62123%2015.9073%202.46704C16.0614%202.31285%2016.2456%202.23575%2016.4598%202.23575C16.6739%202.23575%2016.8581%202.31285%2017.0123%202.46704L18.0916%203.57207C18.2458%203.72626%2018.3229%203.90614%2018.3229%204.11173C18.3229%204.31732%2018.2458%204.4972%2018.0916%204.65139C17.9374%204.80558%2017.7533%204.88268%2017.5391%204.88268C17.3249%204.88268%2017.1408%204.80558%2016.9866%204.65139L15.8816%205.75642C16.3099%206.28752%2016.6525%206.86573%2016.9095%207.49106C17.1665%208.11638%2017.3378%208.78882%2017.4235%209.50838L19.0168%209.50838C19.0168%209.30279%2019.0938%209.1229%2019.248%208.96871C19.4022%208.81452%2019.5821%208.73743%2019.7877%208.73743C19.9933%208.73743%2020.1732%208.81452%2020.3274%208.96871C20.4816%209.1229%2020.5587%209.30279%2020.5587%209.50838L20.5587%2011.0503C20.5587%2011.2559%2020.4816%2011.4357%2020.3274%2011.5899C20.1732%2011.7441%2019.9933%2011.8212%2019.7877%2011.8212C19.5821%2011.8212%2019.4022%2011.7441%2019.248%2011.5899C19.0938%2011.4357%2019.0168%2011.2559%2019.0168%2011.0503L17.4235%2011.0503C17.3378%2011.7698%2017.1665%2012.4423%2016.9095%2013.0676C16.6525%2013.6929%2016.3099%2014.2711%2015.8816%2014.8022L16.9866%2015.9073C17.1408%2015.7531%2017.3249%2015.676%2017.5391%2015.676C17.7533%2015.676%2017.9374%2015.7531%2018.0916%2015.9073C18.2458%2016.0614%2018.3229%2016.2456%2018.3229%2016.4598C18.3229%2016.6739%2018.2458%2016.8581%2018.0916%2017.0123L17.0123%2018.0916C16.8581%2018.2458%2016.6739%2018.3229%2016.4598%2018.3229C16.2456%2018.3229%2016.0614%2018.2458%2015.9073%2018.0916C15.7531%2017.9374%2015.6803%2017.7575%2015.6888%2017.5519C15.6974%2017.3464%2015.7702%2017.1665%2015.9073%2017.0123L14.7765%2015.8816C14.2454%2016.3099%2013.6715%2016.6568%2013.0547%2016.9223C12.438%2017.1879%2011.7698%2017.3635%2011.0503%2017.4492L11.0503%2019.0168C11.2559%2019.0168%2011.4357%2019.0938%2011.5899%2019.248C11.7441%2019.4022%2011.8212%2019.5821%2011.8212%2019.7877C11.8212%2019.9933%2011.7441%2020.1732%2011.5899%2020.3274C11.4357%2020.4816%2011.2559%2020.5587%2011.0503%2020.5587L9.50838%2020.5587ZM10.2793%2015.419C11.7013%2015.419%2012.9134%2014.9179%2013.9156%2013.9156C14.9179%2012.9134%2015.419%2011.7013%2015.419%2010.2793C15.419%208.85735%2014.9179%207.64525%2013.9156%206.64301C12.9134%205.64078%2011.7013%205.13966%2010.2793%205.13966C8.85735%205.13966%207.64525%205.64078%206.64301%206.64301C5.64078%207.64525%205.13966%208.85735%205.13966%2010.2793C5.13966%2011.7013%205.64078%2012.9134%206.64301%2013.9156C7.64525%2014.9179%208.85735%2015.419%2010.2793%2015.419ZM9.21285%2014.0955C9.40987%2013.8985%209.50838%2013.6544%209.50838%2013.3631C9.50838%2013.0719%209.40987%2012.8277%209.21285%2012.6307C9.01583%2012.4337%208.77169%2012.3352%208.48044%2012.3352C8.1892%2012.3352%207.94506%2012.4337%207.74804%2012.6307C7.55102%2012.8277%207.45251%2013.0719%207.45251%2013.3631C7.45251%2013.6544%207.55102%2013.8985%207.74804%2014.0955C7.94506%2014.2925%208.1892%2014.3911%208.48044%2014.3911C8.77169%2014.3911%209.01583%2014.2925%209.21285%2014.0955ZM12.0782%2014.3911C12.3695%2014.3911%2012.6136%2014.2925%2012.8106%2014.0955C13.0076%2013.8985%2013.1061%2013.6544%2013.1061%2013.3631C13.1061%2013.0719%2013.0076%2012.8277%2012.8106%2012.6307C12.6136%2012.4337%2012.3695%2012.3352%2012.0782%2012.3352C11.787%2012.3352%2011.5428%2012.4337%2011.3458%2012.6307C11.1488%2012.8277%2011.0503%2013.0719%2011.0503%2013.3631C11.0503%2013.6544%2011.1488%2013.8985%2011.3458%2014.0955C11.5428%2014.2925%2011.787%2014.3911%2012.0782%2014.3911ZM6.68156%2011.3073C6.97281%2011.3073%207.21694%2011.2087%207.41396%2011.0117C7.61098%2010.8147%207.70949%2010.5706%207.70949%2010.2793C7.70949%209.98808%207.61098%209.74394%207.41396%209.54692C7.21694%209.3499%206.97281%209.25139%206.68156%209.25139C6.39031%209.25139%206.14618%209.3499%205.94916%209.54692C5.75214%209.74394%205.65363%209.98808%205.65363%2010.2793C5.65363%2010.5706%205.75214%2010.8147%205.94916%2011.0117C6.14618%2011.2087%206.39031%2011.3073%206.68156%2011.3073ZM11.0117%2011.0117C11.2087%2010.8147%2011.3073%2010.5706%2011.3073%2010.2793C11.3073%209.98808%2011.2087%209.74394%2011.0117%209.54692C10.8147%209.3499%2010.5706%209.25139%2010.2793%209.25139C9.98808%209.25139%209.74394%209.3499%209.54692%209.54692C9.3499%209.74394%209.25139%209.98808%209.25139%2010.2793C9.25139%2010.5706%209.3499%2010.8147%209.54692%2011.0117C9.74394%2011.2087%209.98808%2011.3073%2010.2793%2011.3073C10.5706%2011.3073%2010.8147%2011.2087%2011.0117%2011.0117ZM13.8771%2011.3073C14.1683%2011.3073%2014.4125%2011.2087%2014.6095%2011.0117C14.8065%2010.8147%2014.905%2010.5706%2014.905%2010.2793C14.905%209.98808%2014.8065%209.74394%2014.6095%209.54692C14.4125%209.3499%2014.1683%209.25139%2013.8771%209.25139C13.5858%209.25139%2013.3417%209.3499%2013.1447%209.54692C12.9477%209.74394%2012.8492%209.98808%2012.8492%2010.2793C12.8492%2010.5706%2012.9477%2010.8147%2013.1447%2011.0117C13.3417%2011.2087%2013.5858%2011.3073%2013.8771%2011.3073ZM9.21285%207.92793C9.40987%207.73091%209.50838%207.48678%209.50838%207.19553C9.50838%206.90428%209.40987%206.66015%209.21285%206.46313C9.01583%206.26611%208.77169%206.1676%208.48044%206.1676C8.1892%206.1676%207.94506%206.26611%207.74804%206.46313C7.55102%206.66015%207.45251%206.90428%207.45251%207.19553C7.45251%207.48678%207.55102%207.73091%207.74804%207.92793C7.94506%208.12495%208.1892%208.22346%208.48044%208.22346C8.77169%208.22346%209.01583%208.12495%209.21285%207.92793ZM12.0782%208.22346C12.3695%208.22346%2012.6136%208.12495%2012.8106%207.92793C13.0076%207.73091%2013.1061%207.48678%2013.1061%207.19553C13.1061%206.90428%2013.0076%206.66015%2012.8106%206.46313C12.6136%206.26611%2012.3695%206.1676%2012.0782%206.1676C11.787%206.1676%2011.5428%206.26611%2011.3458%206.46313C11.1488%206.66015%2011.0503%206.90428%2011.0503%207.19553C11.0503%207.48678%2011.1488%207.73091%2011.3458%207.92793C11.5428%208.12495%2011.787%208.22346%2012.0782%208.22346Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(10.720703125%2010.7205810546875)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
.bhp-concern-card-wrap:nth-child(2) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M8.45508%203.07422C8.45508%203.49802%208.79982%203.84373%209.22363%203.84375L13.0664%203.84375C15.7174%203.84375%2017.9183%204.88128%2019.4297%206.84473C20.7984%208.62294%2021.5214%2011.0402%2021.5215%2013.835C21.5216%2016.6151%2020.8168%2019.0183%2019.4814%2020.7842C18.0016%2022.7412%2015.8278%2023.7928%2013.1963%2023.8262C12.3139%2023.8374%2011.4382%2023.7342%2010.5918%2023.5186C9.39576%2023.2137%208.15951%2023.0586%206.91797%2023.0586C5.64654%2023.0586%204.61142%2024.0928%204.61133%2025.3643L4.61133%2026.1328L0%2026.1328L0%2025.3643C4.4265e-05%2023.5228%200.71563%2021.7895%202.01465%2020.4844C3.31318%2019.1799%205.0417%2018.4566%206.88184%2018.4473C7.56832%2018.4437%208.16431%2018.0385%208.39941%2017.415C8.98476%2015.8619%209.26789%2014.2378%209.21875%2012.7197C9.18763%2011.7597%209.09702%2010.5314%208.67285%209.5459C8.31827%208.72243%207.85471%208.49827%206.80371%208.15039C6.14841%207.93333%205.60574%207.49958%205.26562%207.17383C4.36196%206.30842%203.8429%205.09484%203.84277%203.84375L3.84277%200L8.45508%200L8.45508%203.07422ZM10.6865%2011.5293C10.7246%2011.9313%2010.7435%2012.318%2010.7549%2012.6709C10.8104%2014.3888%2010.4938%2016.2168%209.83789%2017.957C9.38341%2019.163%208.19829%2019.9777%206.88965%2019.9844C4.19916%2019.9981%201.96553%2022.0049%201.5918%2024.5957L3.15137%2024.5957C3.50854%2022.8438%205.06201%2021.5215%206.91797%2021.5215C8.28741%2021.5215%209.65168%2021.6918%2010.9717%2022.0283C11.6877%2022.2108%2012.4304%2022.2979%2013.1768%2022.2891C17.8793%2022.2294%2019.7461%2018.4117%2019.9629%2014.6035L19.084%2014.6035C18.2899%2014.6035%2017.5151%2014.4495%2016.7812%2014.1455C16.0472%2013.8414%2015.3903%2013.403%2014.8291%2012.8418C13.983%2011.9957%2012.8579%2011.5293%2011.6611%2011.5293L10.6865%2011.5293ZM16.1416%2019.2158L14.6045%2019.2158L14.6045%2017.6787L16.1416%2017.6787L16.1416%2019.2158ZM13.8359%2016.1406L12.2979%2016.1406L12.2979%2014.6035L13.8359%2014.6035L13.8359%2016.1406ZM5.58496%2010.6465L5.04102%2012.2764L6.33594%2013.5713L5.24902%2014.6582L3.28223%2012.6924L3.82617%2011.0615L2.53125%209.7666L3.61816%208.67969L5.58496%2010.6465ZM5.38086%203.84375C5.38098%204.67774%205.72659%205.48743%206.3291%206.06445C6.64812%206.36994%206.98833%206.59249%207.28711%206.69141C8.49685%207.09185%209.47081%207.51179%2010.085%208.93848C10.2314%209.27849%2010.3445%209.63347%2010.4336%209.99219L11.6611%209.99219C13.2685%209.99219%2014.7795%2010.6184%2015.916%2011.7549C16.3338%2012.1726%2016.8235%2012.4991%2017.3701%2012.7256C17.9163%2012.9518%2018.493%2013.0664%2019.084%2013.0664L19.9629%2013.0664C19.7444%209.21892%2017.8479%205.38086%2013.0664%205.38086L9.22363%205.38086C7.95216%205.38084%206.91797%204.34564%206.91797%203.07422L6.91797%201.53711L5.38086%201.53711L5.38086%203.84375ZM24.3721%201.3125L23.0771%202.60742L23.6211%204.2373L21.6543%206.2041L20.5674%205.11719L21.8623%203.82227L21.3184%202.19238L23.2852%200.225586L24.3721%201.3125Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(8.8134765625%207.93359375)%22%2F%3E%3Cpath%20d%3D%22M0.751119%204.012L2.71762%205.97831L3.80458%204.89139L2.50998%203.5968L3.05346%201.96631L1.08702%200L0%201.08697L1.2946%202.38152L0.751119%204.012Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(11.3447265625%2016.613525390625)%22%2F%3E%3Cpath%20d%3D%22M3.80458%201.08697L2.71756%200L0.751118%201.96631L1.29465%203.5968L0%204.89139L1.08701%205.97831L3.05351%204.012L2.51003%202.38152L3.80458%201.08697Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(29.380859375%208.159423828125)%22%2F%3E%3Cpath%20d%3D%22M13.0669%203.84306L9.22372%203.84306C8.79989%203.84306%208.45508%203.49826%208.45508%203.07445L8.45508%200L3.84322%200L3.84322%203.84306C3.84322%205.09431%204.36159%206.30836%205.26536%207.17386C5.60556%207.4997%206.14863%207.93361%206.80418%208.15062C7.85533%208.49854%208.31867%208.72215%208.67327%209.5459C9.09751%2010.5315%209.18759%2011.7599%209.2187%2012.72C9.26784%2014.238%208.98442%2015.8613%208.39907%2017.4144C8.16402%2018.038%207.56857%2018.4432%206.88202%2018.4468C5.04169%2018.4561%203.31306%2019.1798%202.01446%2020.4845C0.715402%2021.7897%200%2023.5226%200%2025.3642L0%2026.1328L4.61186%2026.1328L4.61186%2025.3642C4.61186%2024.0927%205.6463%2023.0584%206.91779%2023.0584C8.15941%2023.0584%209.39544%2023.213%2010.5915%2023.5179C11.4381%2023.7337%2012.314%2023.8374%2013.1965%2023.8262C15.828%2023.7928%2018.0012%2022.7407%2019.4811%2020.7836C20.8164%2019.0178%2021.5221%2016.6149%2021.522%2013.8348C21.5219%2011.0398%2020.7983%208.62254%2019.4294%206.84428C17.918%204.88084%2015.7179%203.84306%2013.0669%203.84306ZM7.28725%206.69123C6.9883%206.59228%206.64789%206.36949%206.3287%206.06373C5.72609%205.48661%205.3805%204.67721%205.3805%203.84306L5.3805%201.53722L6.91779%201.53722L6.91779%203.07445C6.91779%204.34588%207.95223%205.38028%209.22372%205.38028L13.0669%205.38028C17.8485%205.38028%2019.7447%209.21883%2019.9631%2013.0664L19.0844%2013.0664C18.4932%2013.0664%2017.9163%2012.9516%2017.3699%2012.7253C16.8232%2012.4988%2016.3342%2012.1721%2015.9164%2011.7543C14.7799%2010.6179%2013.2687%209.99195%2011.6613%209.99195L10.4339%209.99195C10.3448%209.63322%2010.2317%209.27817%2010.0853%208.93814C9.47112%207.51144%208.49699%207.09167%207.28725%206.69123ZM13.177%2022.289C12.4304%2022.2978%2011.6874%2022.2108%2010.9713%2022.0283C9.65119%2021.6918%208.28731%2021.5211%206.91779%2021.5211C5.06182%2021.5211%203.50896%2022.8437%203.1518%2024.5956L1.59227%2024.5956C1.96598%2022.0047%204.19925%2019.9976%206.88981%2019.984C8.19845%2019.9773%209.38303%2019.1626%209.83751%2017.9566C10.4935%2016.2163%2010.8107%2014.3883%2010.7551%2012.6703C10.7437%2012.3174%2010.7244%2011.9312%2010.6863%2011.5292L11.6613%2011.5292C12.8581%2011.5292%2013.9832%2011.9952%2014.8293%2012.8413C15.3905%2013.4025%2016.0473%2013.8413%2016.7814%2014.1454C17.5153%2014.4495%2018.2901%2014.6036%2019.0843%2014.6036L19.9628%2014.6036C19.746%2018.4118%2017.8795%2022.2294%2013.177%2022.289Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(8.8134765625%207.933837890625)%22%2F%3E%3Cpath%20d%3D%22M0%200L1.53729%200L1.53729%201.53722L0%201.53722L0%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(23.41796875%2025.6121826171875)%22%2F%3E%3Cpath%20d%3D%22M0%200L1.53729%200L1.53729%201.53722L0%201.53722L0%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(21.111328125%2022.537353515625)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
/* FIX 86eyzmwue: this icon's inline SVG was exported from Figma with each stroked
   vector twice: the stroke outline (the thin line art, kept) and the vector's
   own fill geometry (the solid #000000 `M 0.49 0 L ...` paths, removed). The fill
   geometry of an open stroke path closes into a solid shape, so the icon drew as
   a black blob under the line art. Only the stroke outline paths remain. */
.bhp-concern-card-wrap:nth-child(3) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M13.6708%200C15.6664%203.26809e-05%2016.8785%200.991439%2017.5585%201.98242C17.8894%202.46481%2018.0927%202.94207%2018.2138%203.2959C18.2346%203.35679%2018.2519%203.41485%2018.2684%203.46875C19.5004%204.13157%2020.4189%205.28932%2021.0888%206.44824C21.8009%207.68032%2022.2908%209.01381%2022.6014%2010.0234C22.6081%2010.0449%2022.6135%2010.0667%2022.62%2010.0879C22.7671%209.95152%2022.9135%209.82679%2023.0604%209.71484C24.5094%208.61057%2026.5797%209.47195%2026.8876%2011.2305C27.5192%2014.8388%2027.3732%2017.795%2027.1483%2019.6094C26.9645%2021.0912%2026.2069%2022.4434%2025.037%2023.373C22.8952%2025.0747%2021.1486%2025.3859%2019.8417%2025.1104C19.2077%2024.9766%2018.7281%2024.7139%2018.4032%2024.4795C18.3903%2024.4701%2018.3786%2024.4595%2018.3661%2024.4502C18.1317%2024.533%2017.8263%2024.6336%2017.4559%2024.7305C16.5518%2024.967%2015.2576%2025.2002%2013.6698%2025.2002C12.0818%2025.2001%2010.7878%2024.967%209.88368%2024.7305C9.51309%2024.6335%209.20799%2024.533%208.97352%2024.4502C8.96125%2024.4593%208.95012%2024.4703%208.93739%2024.4795C8.6124%2024.714%208.13222%2024.9766%207.49793%2025.1104C6.19107%2025.3859%204.44526%2025.0746%202.3036%2023.373C1.13361%2022.4434%200.37616%2021.0913%200.192269%2019.6094C-0.0325975%2017.795%20-0.178579%2014.8388%200.453011%2011.2305C0.760917%209.47203%202.83022%208.61081%204.27918%209.71484C4.42674%209.8273%204.57373%209.95274%204.72157%2010.0898C4.72822%2010.068%204.73428%2010.0456%204.7411%2010.0234C5.05176%209.01377%205.54165%207.68033%206.25379%206.44824C6.92328%205.29003%207.8403%204.1327%209.07118%203.46973C9.0877%203.41545%209.10586%203.35723%209.12684%203.2959C9.24791%202.94204%209.45211%202.46484%209.78309%201.98242C10.4631%200.991417%2011.6751%203.47461e-06%2013.6708%200ZM17.3202%204.94336C16.6013%204.59563%2015.7064%204.50557%2014.5438%205.03125L14.5438%206.15039L15.3173%206.66602C15.5795%206.8408%2015.8149%207.04687%2016.0194%207.27734C17.1806%208.58656%2016.6473%2010.6186%2015.0575%2011.2529C14.6755%2011.4053%2014.2233%2011.5379%2013.7401%2011.5762L13.6708%2011.582L13.6024%2011.5762C13.1192%2011.538%2012.6671%2011.4053%2012.285%2011.2529C10.695%2010.6188%2010.1609%208.58667%2011.3222%207.27734C11.5267%207.04677%2011.763%206.84086%2012.0253%206.66602L12.7977%206.15039L12.7977%205.03027C11.6356%204.50494%2010.7411%204.59581%2010.0223%204.94336C9.15203%205.36448%208.3953%206.23274%207.76551%207.32227C7.14421%208.39724%206.70019%209.59412%206.41004%2010.5371C6.26603%2011.0052%206.16211%2011.404%206.09461%2011.6836C6.08587%2011.7198%206.07773%2011.7541%206.0702%2011.7861C6.74978%2012.918%207.35639%2014.4514%207.77821%2016.5254C7.87236%2016.9883%207.91688%2017.4582%207.91688%2017.9258C7.9169%2018.4339%207.95849%2019.3029%208.1786%2020.2383C8.38613%2021.1198%208.74039%2022.0098%209.32313%2022.7188C9.35636%2022.7317%209.39418%2022.7476%209.43739%2022.7637C9.63462%2022.8371%209.93517%2022.9387%2010.3261%2023.041C11.1083%2023.2457%2012.2526%2023.454%2013.6698%2023.4541C15.0872%2023.4541%2016.2322%2023.2457%2017.0145%2023.041C17.4051%2022.9388%2017.705%2022.8371%2017.9022%2022.7637C17.9452%2022.7477%2017.9833%2022.7316%2018.0165%2022.7188C18.5994%2022.0098%2018.9544%2021.1199%2019.162%2020.2383C19.3821%2019.3029%2019.4227%2018.4339%2019.4227%2017.9258C19.4227%2017.4582%2019.4682%2016.9884%2019.5624%2016.5254C19.9844%2014.4504%2020.5906%2012.9162%2021.2704%2011.7842C21.263%2011.7528%2021.2565%2011.719%2021.2479%2011.6836C21.1804%2011.404%2021.0765%2011.0052%2020.9325%2010.5371C20.6424%209.59416%2020.1983%208.39724%2019.577%207.32227C18.9473%206.23281%2018.1904%205.36457%2017.3202%204.94336ZM25.1669%2011.5312C25.0784%2011.0262%2024.4982%2010.8145%2024.119%2011.1035C23.2144%2011.793%2021.9905%2013.3471%2021.2733%2016.873C21.2034%2017.2167%2021.1688%2017.5701%2021.1688%2017.9258C21.1688%2018.5155%2021.1223%2019.5281%2020.8612%2020.6377C20.6628%2021.4807%2020.3317%2022.4134%2019.7772%2023.2637C19.8993%2023.3178%2020.0406%2023.3673%2020.202%2023.4014C20.8706%2023.5424%2022.0993%2023.4763%2023.9501%2022.0059C24.7614%2021.3613%2025.2872%2020.4233%2025.4149%2019.3945C25.61%2017.8202%2025.7454%2015.2795%2025.2704%2012.1621L25.1669%2011.5312ZM3.22157%2011.1035C2.86594%2010.8325%202.3331%2011.0018%202.1952%2011.4404L2.17274%2011.5312C1.57665%2014.9366%201.71658%2017.7153%201.92469%2019.3945C2.05238%2020.4232%202.57841%2021.3613%203.38953%2022.0059C5.24016%2023.4761%206.46894%2023.5423%207.13758%2023.4014C7.2987%2023.3674%207.4395%2023.3167%207.56141%2023.2627C7.00751%2022.4128%206.67671%2021.4803%206.4784%2020.6377C6.21731%2019.5281%206.17081%2018.5154%206.17078%2017.9258C6.17078%2017.5701%206.13717%2017.2167%206.06727%2016.873C5.35021%2013.3474%204.12616%2011.7931%203.22157%2011.1035ZM11.2811%2020.7139L9.68739%2020.7139L9.68739%2018.9678L11.2811%2018.9678L11.2811%2020.7139ZM14.4677%2020.7139L12.8739%2020.7139L12.8739%2018.9678L14.4677%2018.9678L14.4677%2020.7139ZM17.6522%2020.7139L16.0585%2020.7139L16.0585%2018.9678L17.6522%2018.9678L17.6522%2020.7139ZM12.8749%2017.5273L11.2811%2017.5273L11.2811%2015.7812L12.8749%2015.7812L12.8749%2017.5273ZM16.0614%2017.5273L14.4677%2017.5273L14.4677%2015.7812L16.0614%2015.7812L16.0614%2017.5273ZM10.4852%2014.3438L8.89149%2014.3438L8.89149%2012.5977L10.4852%2012.5977L10.4852%2014.3438ZM18.4491%2014.3438L16.8554%2014.3438L16.8554%2012.5977L18.4491%2012.5977L18.4491%2014.3438ZM9.68836%2011.1572L8.09461%2011.1572L8.09461%209.41113L9.68836%209.41113L9.68836%2011.1572ZM19.247%2011.1572L17.6532%2011.1572L17.6532%209.41113L19.247%209.41113L19.247%2011.1572ZM12.9931%208.11914C12.8567%208.21005%2012.7347%208.31718%2012.6288%208.43652C12.2959%208.81221%2012.4293%209.43153%2012.9315%209.63184C13.1799%209.7309%2013.4318%209.79885%2013.6708%209.82617C13.9097%209.79889%2014.1616%209.73087%2014.41%209.63184C14.9122%209.43155%2015.0466%208.81222%2014.7138%208.43652C14.6077%208.31702%2014.485%208.21014%2014.3485%208.11914L13.6708%207.66699L12.9931%208.11914ZM13.6708%201.74609C12.3973%201.7461%2011.6874%202.32204%2011.2626%202.91504C12.0192%202.91891%2012.8245%203.10769%2013.6708%203.51367C14.5168%203.10774%2015.3215%202.919%2016.078%202.91504C15.6531%202.32219%2014.9439%201.74612%2013.6708%201.74609Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate%287.330078125%208.399879455566406%29%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
.bhp-concern-card-wrap:nth-child(4) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2050.47252655029297%2050.47252655029297%22%20width%3D%2250.47252655029297%22%20height%3D%2250.47252655029297%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M6.91211%205.18359L11.5283%205.18359C12.6822%205.18359%2013.7671%205.63328%2014.583%206.44922L16.5205%208.38672C16.6837%208.5499%2016.901%208.63965%2017.1318%208.63965L25.9199%208.63965L25.9199%2014.6875C25.9199%2016.1167%2024.7563%2017.2793%2023.3271%2017.2793L16.416%2017.2793C15.2896%2017.2793%2014.3282%2018.0021%2013.9717%2019.0078L20.7354%2019.0078L20.7354%2021.5996C20.7352%2023.0287%2019.5727%2024.1914%2018.1436%2024.1914L13.8242%2024.1914L13.8242%2029.4902L0%2029.4902L0%206.04785C0%204.43547%200.629827%202.91721%201.77344%201.77344C2.91695%200.629753%204.43529%205.49997e-05%206.04785%200L6.91211%200L6.91211%205.18359ZM5.18457%201.81445C4.36224%201.98141%203.60492%202.38628%202.99609%202.99512C2.1786%203.81256%201.72852%204.89698%201.72852%206.04785L1.72852%2027.7627L12.0957%2027.7627L12.0957%2024.1914L10.3682%2024.1914C8.46257%2024.1914%206.91211%2022.6409%206.91211%2020.7354L8.63965%2020.7354C8.63965%2021.6881%209.41537%2022.4629%2010.3682%2022.4629L18.1436%2022.4629C18.6199%2022.4629%2019.0077%2022.0759%2019.0078%2021.5996L19.0078%2020.7354L12.0957%2020.7354L12.0957%2019.8711C12.0959%2017.4892%2014.0341%2015.5518%2016.416%2015.5518L23.3271%2015.5518C23.8035%2015.5518%2024.1914%2015.1639%2024.1914%2014.6875L24.1914%2013.8232L23.3271%2013.8232C21.8982%2013.823%2020.7354%2012.6605%2020.7354%2011.2314L20.7354%2010.3672L17.1318%2010.3672C16.4395%2010.3672%2015.7884%2010.098%2015.2988%209.6084L13.3613%207.6709C12.8718%207.18137%2012.2207%206.91211%2011.5283%206.91211L5.18457%206.91211L5.18457%201.81445ZM22.4639%2027.6465L20.7354%2027.6465L20.7354%2024.1914L22.4639%2024.1914L22.4639%2027.6465ZM27.7031%2024.7588L26.4814%2025.9805L24.0381%2023.5371L25.2598%2022.3154L27.7031%2024.7588ZM29.4902%2020.7363L25.9189%2020.7363L25.9189%2019.0078L29.4902%2019.0078L29.4902%2020.7363ZM10.3672%208.64062C12.2727%208.64062%2013.8231%2010.1903%2013.8232%2012.0957L12.0957%2012.0957C12.0955%2011.1431%2011.3199%2010.3682%2010.3672%2010.3682L10.3672%208.64062ZM22.4639%2011.2314C22.4639%2011.7077%2022.851%2012.0954%2023.3271%2012.0957L24.1914%2012.0957L24.1914%2010.3672L22.4639%2010.3672L22.4639%2011.2314Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(10.4912109375%2010.4912109375)%22%2F%3E%3Cpath%20d%3D%22M25.9193%2014.6876L25.9193%208.63978L17.1314%208.63978C16.9006%208.63978%2016.6836%208.54992%2016.5204%208.38675L14.5828%206.44913C13.7669%205.63319%2012.6821%205.18387%2011.5282%205.18387L6.91182%205.18387L6.91182%200L6.04785%200C4.4352%200%202.91725%200.629897%201.77369%201.77363C0.629955%202.91742%200%204.43537%200%206.04785L0%2029.4904L13.8236%2029.4904L13.8236%2024.1914L18.1435%2024.1914C19.5727%2024.1914%2020.7355%2023.0286%2020.7355%2021.5994L20.7355%2019.0075L13.9717%2019.0075C14.3282%2018.0018%2015.2891%2017.2796%2016.4156%2017.2796L23.3274%2017.2796C24.7566%2017.2796%2025.9193%2016.1168%2025.9193%2014.6876ZM24.1914%2012.0957L23.3274%2012.0957C22.851%2012.0957%2022.4634%2011.7081%2022.4634%2011.2317L22.4634%2010.3677L24.1914%2010.3677L24.1914%2012.0957ZM23.3274%2015.5516L16.4156%2015.5516C14.0336%2015.5516%2012.0957%2017.4895%2012.0957%2019.8715L12.0957%2020.7355L19.0075%2020.7355L19.0075%2021.5994C19.0075%2022.0758%2018.6199%2022.4634%2018.1435%2022.4634C16.4106%2022.4634%2012.2605%2022.4634%2010.3677%2022.4634C9.41494%2022.4634%208.63978%2021.6883%208.63978%2020.7355L6.91182%2020.7355C6.91182%2022.6411%208.46215%2024.1914%2010.3677%2024.1914L12.0957%2024.1914L12.0957%2027.7625L1.72796%2027.7625L1.72796%206.04785C1.72796%204.89697%202.17809%203.81291%202.99558%202.99547C3.60446%202.38648%204.36142%201.98133%205.18387%201.81435L5.18387%206.91182L11.5282%206.91182C12.2205%206.91182%2012.8714%207.18144%2013.3609%207.67097L15.2985%209.60859C15.788%2010.0982%2016.439%2010.3677%2017.1313%2010.3677L20.7355%2010.3677L20.7355%2011.2317C20.7355%2012.6609%2021.8982%2013.8236%2023.3274%2013.8236L24.1914%2013.8236L24.1914%2014.6876C24.1914%2015.164%2023.8038%2015.5516%2023.3274%2015.5516Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(14.06210708618164%2010.4910888671875)%22%2F%3E%3Cpath%20d%3D%22M0%200L3.57111%200L3.57111%201.72796L0%201.72796L0%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(10.491391658782959%2029.4991455078125)%22%2F%3E%3Cpath%20d%3D%22M0%200L1.72769%200L1.72769%203.45533L0%203.45533L0%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(12.278405878418198%2032.80677756170621)%22%2F%3E%3Cpath%20d%3D%22M0%200L1.72796%200L1.72796%203.45591L0%203.45591L0%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(17.51813793182373%2034.68212890625)%22%2F%3E%3Cpath%20d%3D%22M0%200L0%201.72796C0.952795%201.72796%201.72796%202.50312%201.72796%203.45591L3.45591%203.45591C3.45591%201.55032%201.90559%200%200%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(26.15834617614746%2019.13134765625)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
/* FIX 86eyzmwue: this icon's inline SVG was exported from Figma with each stroked
   vector twice: the stroke outline (the thin line art, kept) and the vector's
   own fill geometry (the solid #000000 `M 0.49 0 L ...` paths, removed). The fill
   geometry of an open stroke path closes into a solid shape, so the icon drew as
   a black blob under the line art. Only the stroke outline paths remain. */
.bhp-concern-card-wrap:nth-child(5) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M14.6887%201.33834C16.5028%20-0.469809%2019.4435%20-0.434103%2021.2581%201.37447C21.9855%202.09964%2022.4247%203.00498%2022.5764%203.94478C23.5189%204.09506%2024.4271%204.53422%2025.1555%205.26021C26.9718%207.07076%2027.0077%2010.0075%2025.1917%2011.8178C23.9121%2013.0933%2022.0691%2013.4506%2020.4641%2012.9184C20.212%2012.8349%2019.9409%2012.9%2019.76%2013.0805L19.3069%2013.5327C18.9017%2013.9368%2018.2454%2013.9358%2017.8411%2013.5307C17.4372%2013.1255%2017.438%2012.4692%2017.843%2012.0649L18.2952%2011.6128C19.0376%2010.8717%2020.1304%2010.6238%2021.1165%2010.9506C22.0196%2011.2501%2023.0327%2011.042%2023.7278%2010.3491C24.7116%209.3684%2024.7159%207.74801%2023.6926%206.72799C23.2238%206.26074%2022.6255%206.00919%2022.0188%205.96724L21.6145%206.36861C21.2078%206.77132%2020.5515%206.76837%2020.1487%206.36177C19.7463%205.95503%2019.7491%205.29866%2020.1555%204.89595L20.5549%204.50045C20.5115%203.90061%2020.2609%203.30859%2019.7942%202.84322C18.7692%201.8217%2017.1383%201.82462%2016.1526%202.80709C15.4595%203.49796%2015.2528%204.50186%2015.5491%205.39693C15.8761%206.38413%2015.6292%207.48115%2014.8821%208.22603L8.23951%2014.8471C7.49722%2015.5869%206.40583%2015.8353%205.42017%2015.5083C4.51709%2015.2087%203.50313%2015.416%202.80787%2016.1088C1.82418%2017.0895%201.82098%2018.7099%202.844%2019.7299C3.31258%2020.197%203.91055%2020.4475%204.51685%2020.4897L4.92115%2020.0903C5.3279%2019.6877%205.9842%2019.6905%206.38697%2020.0971C6.78937%2020.5038%206.78644%2021.1602%206.38014%2021.5629L5.98072%2021.9575C6.02394%2022.5576%206.27463%2023.1501%206.74146%2023.6157C7.76636%2024.6373%209.3973%2024.6341%2010.3831%2023.6518L10.384%2023.6518C10.7291%2023.3078%2010.9618%2022.8104%2011.0598%2022.2993C10.7601%2021.8665%2010.5376%2021.3769%2010.4094%2020.8501L10.1907%2020.8501C9.6182%2020.8501%209.15455%2020.3864%209.15455%2019.8139C9.15455%2019.2414%209.6182%2018.7778%2010.1907%2018.7778L10.4085%2018.7778C10.7929%2017.1967%2012.0366%2015.9528%2013.6174%2015.5678L13.6174%2015.351C13.6174%2014.7786%2014.0812%2014.315%2014.6536%2014.3149C15.2261%2014.3149%2015.6897%2014.7785%2015.6897%2015.351L15.6897%2015.5669C17.2719%2015.9511%2018.5168%2017.1959%2018.9016%2018.7778L19.1174%2018.7778C19.6899%2018.7778%2020.1536%2019.2415%2020.1536%2019.8139C20.1536%2020.3864%2019.6899%2020.85%2019.1174%2020.8501L18.9006%2020.8501C18.5158%2022.4318%2017.2716%2023.6756%2015.6897%2024.06L15.6897%2024.2778C15.6895%2024.8501%2015.226%2025.3139%2014.6536%2025.3139C14.0813%2025.3138%2013.6176%2024.8501%2013.6174%2024.2778L13.6174%2024.059C13.3207%2023.9867%2013.0355%2023.8858%2012.7659%2023.7563C12.549%2024.2506%2012.2465%2024.7212%2011.8469%2025.1196C10.0328%2026.9279%207.09218%2026.8933%205.2776%2025.0844C4.54972%2024.3587%204.1087%2023.4527%203.95728%2022.5122C3.01571%2022.3615%202.10795%2021.9241%201.38014%2021.1987C-0.435874%2019.3882%20-0.471814%2016.4513%201.344%2014.6411C2.62386%2013.3653%204.46725%2013.0089%206.07252%2013.5415C6.32414%2013.625%206.59559%2013.5588%206.77662%2013.3784L13.4182%206.75826C13.5763%206.60072%2013.6473%206.37227%2013.6057%206.14595L13.5813%206.04927C13.0509%204.44785%2013.4112%202.61189%2014.6887%201.33834ZM14.6545%2017.5151C13.3857%2017.5154%2012.3558%2018.5451%2012.3557%2019.8139C12.356%2021.0827%2013.3858%2022.1115%2014.6545%2022.1118C15.9233%2022.1115%2016.9522%2021.0827%2016.9524%2019.8139C16.9523%2018.545%2015.9234%2017.5153%2014.6545%2017.5151Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate%286.326171875%206.6802978515625%29%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
.bhp-concern-card-wrap:nth-child(6) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M10.2961%205.99961C10.5795%205.92183%2010.8726%206.08925%2010.9504%206.37265C11.0278%206.65581%2010.8613%206.94809%2010.5783%207.02597C7.8784%207.76692%205.82087%2010.1141%205.54801%2013.024L5.13492%2017.4225C5.13911%2017.4833%205.13478%2017.5443%205.11832%2017.6031L4.99723%2018.8961C4.80382%2020.9609%206.42828%2022.7447%208.50211%2022.7447L12.0334%2022.7447L12.0334%2020.5855C11.4222%2020.5194%2010.8597%2020.3425%2010.4103%2020.0728C9.84373%2019.7329%209.37339%2019.1888%209.37321%2018.4879C9.37321%2017.7868%209.8436%2017.242%2010.4103%2016.9019C10.9876%2016.5556%2011.7511%2016.359%2012.5656%2016.359C13.3801%2016.359%2014.1435%2016.5556%2014.7209%2016.9019C15.2875%2017.242%2015.758%2017.7868%2015.758%2018.4879C15.7578%2019.1888%2015.2874%2019.7329%2014.7209%2020.0728C14.2715%2020.3425%2013.709%2020.5194%2013.0978%2020.5855L13.0978%2022.7447L16.4064%2022.7447C18.5675%2022.7445%2020.2397%2020.8502%2019.9718%2018.7057L19.4201%2014.2965C19.384%2014.005%2019.5915%2013.7391%2019.883%2013.7027C20.1743%2013.6665%2020.4403%2013.8733%2020.4767%2014.1646L20.7902%2016.6754C20.8841%2016.7369%2021.0697%2016.8361%2021.342%2016.9459C21.6623%2017.0751%2022.0505%2017.1989%2022.4347%2017.2779C22.8258%2017.3585%2023.1784%2017.3861%2023.4406%2017.3492C23.7068%2017.3118%2023.7751%2017.2278%2023.7961%2017.1861C23.9507%2016.8769%2023.9825%2016.3691%2023.8517%2015.6598C23.7245%2014.9694%2023.4608%2014.1764%2023.1339%2013.3658C23.0242%2013.0933%2023.1564%2012.7832%2023.4289%2012.6734C23.7013%2012.5639%2024.0114%2012.6959%2024.1213%2012.9684C24.4595%2013.8077%2024.7517%2014.6752%2024.8976%2015.4664C25.0399%2016.2385%2025.0619%2017.0342%2024.7482%2017.6617C24.5031%2018.1522%2024.0182%2018.3424%2023.589%2018.4029C23.1554%2018.4639%2022.668%2018.413%2022.2209%2018.3209C21.7682%2018.2276%2021.3196%2018.0842%2020.9474%2017.9342L21.0275%2018.5738C21.3748%2021.3535%2019.2076%2023.8089%2016.4064%2023.8092L8.50211%2023.8092C5.80123%2023.8092%203.68559%2021.4856%203.93766%2018.7965L3.97672%2018.3795C3.61974%2018.5187%203.20081%2018.6508%202.7775%2018.7379C2.33033%2018.83%201.84296%2018.8809%201.40934%2018.8199C0.980051%2018.7596%200.494432%2018.5692%200.249182%2018.0787C-0.0198161%2017.5403%20-0.0402357%2016.8821%200.0441042%2016.234C0.129957%2015.5746%200.334365%2014.8532%200.590003%2014.1373C1.09967%2012.7102%201.84292%2011.2232%202.37223%2010.1646L2.37809%2010.1539C2.73225%209.44557%203.19005%208.80539%203.8361%208.43125C4.50823%208.04208%205.30255%207.98643%206.215%208.29062C6.22224%208.29303%206.22937%208.29572%206.23649%208.29843C6.31134%208.32708%206.38345%208.36001%206.45328%208.39511C7.4637%207.25591%208.79354%206.41198%2010.2961%205.99961ZM12.5656%2017.4234C11.9108%2017.4234%2011.3437%2017.5837%2010.9582%2017.815C10.562%2018.0528%2010.4377%2018.3074%2010.4377%2018.4879C10.4379%2018.6683%2010.5623%2018.9222%2010.9582%2019.1598C11.3437%2019.3911%2011.9108%2019.5514%2012.5656%2019.5514C13.2204%2019.5514%2013.7875%2019.3911%2014.173%2019.1598C14.5689%2018.9222%2014.6943%2018.6683%2014.6945%2018.4879C14.6945%2018.3074%2014.5692%2018.0528%2014.173%2017.815C13.7875%2017.5837%2013.2204%2017.4234%2012.5656%2017.4234ZM5.77848%209.27109C5.14815%209.08198%204.70936%209.15524%204.3693%209.35214C3.98584%209.57424%203.64586%209.99823%203.33024%2010.6295C2.79573%2011.6985%202.07915%2013.1333%201.59293%2014.4947C1.34984%2015.1754%201.17189%2015.8174%201.09977%2016.3717C1.02618%2016.9371%201.07153%2017.3434%201.20133%2017.6031C1.22213%2017.6447%201.29041%2017.7286%201.5568%2017.7662C1.8191%2017.8031%202.17152%2017.7765%202.56266%2017.6959C2.94694%2017.6167%203.33503%2017.4931%203.65543%2017.3639C3.84183%2017.2887%203.98734%2017.2172%204.09098%2017.1607L4.48844%2012.9244C4.61494%2011.5756%205.07337%2010.3321%205.77848%209.27109ZM18.6457%201.17148C18.6457%200.46379%2019.2968%20-0.176963%2020.0802%200.0445275C20.5841%200.186999%2021.0624%200.390281%2021.507%200.645113C22.1799%201.03085%2022.19%201.90155%2021.7101%202.38144C21.5926%202.49926%2021.5926%202.69039%2021.7101%202.8082C21.8279%202.92608%2022.0199%202.92608%2022.1379%202.8082C22.6177%202.3286%2023.4875%202.33874%2023.8732%203.01132C24.1282%203.45605%2024.3313%203.93498%2024.4738%204.43906C24.6951%205.22236%2024.0554%205.87255%2023.3478%205.87265C23.1811%205.87265%2023.0461%206.00867%2023.0461%206.17539C23.0463%206.34191%2023.1812%206.47714%2023.3478%206.47714C24.0553%206.47725%2024.6949%207.12749%2024.4738%207.91074C24.3313%208.41482%2024.1282%208.89374%2023.8732%209.33847C23.4876%2010.0112%2022.6177%2010.0213%2022.1379%209.5416C22.0199%209.42371%2021.8279%209.42371%2021.7101%209.5416C21.5925%209.65938%2021.5926%209.85049%2021.7101%209.96836C22.19%2010.4482%2022.1799%2011.3189%2021.507%2011.7047C21.0624%2011.9595%2020.5841%2012.1628%2020.0802%2012.3053C19.2968%2012.5267%2018.6457%2011.886%2018.6457%2011.1783C18.6454%2011.0119%2018.5105%2010.8766%2018.3439%2010.8766C18.1773%2010.8766%2018.0424%2011.0119%2018.0422%2011.1783C18.0422%2011.886%2017.3912%2012.5267%2016.6076%2012.3053C16.1414%2012.1734%2015.6965%2011.9899%2015.2804%2011.7613C14.6468%2011.4129%2014.6332%2010.5926%2015.0968%2010.1559C15.2361%2010.0249%2015.2397%209.80481%2015.1047%209.66953C14.9723%209.53712%2014.7575%209.53712%2014.6252%209.66953C14.1528%2010.1416%2013.3012%2010.1407%2012.9045%209.49179C12.6068%209.00454%2012.373%208.47307%2012.214%207.91074C11.9928%207.12744%2012.6324%206.47721%2013.34%206.47714C13.5065%206.47714%2013.6415%206.34191%2013.6418%206.17539C13.6418%206.00867%2013.5067%205.87265%2013.34%205.87265C12.6324%205.87259%2011.9927%205.22239%2012.214%204.43906C12.3565%203.93505%2012.5587%203.456%2012.8136%203.01132C13.1992%202.3385%2014.0701%202.32851%2014.55%202.8082C14.6678%202.92602%2014.8589%202.92589%2014.9767%202.8082C15.0946%202.69032%2015.0946%202.49932%2014.9767%202.38144C14.4971%201.9016%2014.5074%201.03091%2015.1798%200.645113C15.6246%200.39019%2016.1036%200.187032%2016.6076%200.0445275C17.391%20-0.176964%2018.0422%200.46379%2018.0422%201.17148C18.0423%201.33804%2018.1773%201.47324%2018.3439%201.47324C18.5105%201.47322%2018.6455%201.33802%2018.6457%201.17148ZM19.7492%201.07871C19.7298%201.09475%2019.7101%201.12645%2019.7101%201.17148C19.7099%201.92578%2019.0982%202.53767%2018.3439%202.53769C17.5896%202.53769%2016.9779%201.92579%2016.9777%201.17148C16.9777%201.12648%2016.9579%201.09477%2016.9386%201.07871C16.9295%201.07111%2016.9222%201.06792%2016.9181%201.06699C16.9152%201.06633%2016.9093%201.06567%2016.8976%201.06894C16.4784%201.18744%2016.0795%201.3557%2015.7091%201.56797C15.7081%201.56853%2015.7078%201.56955%2015.7072%201.56992C15.707%201.57085%2015.7064%201.57262%2015.7062%201.5748C15.7052%201.5869%2015.7094%201.60814%2015.7297%201.62851C16.2631%202.162%2016.2631%203.02764%2015.7297%203.56113C15.1962%204.09433%2014.3315%204.09427%2013.798%203.56113C13.7775%203.54055%2013.7555%203.53658%2013.7433%203.53769C13.7413%203.53789%2013.7394%203.53743%2013.7384%203.53769C13.738%203.53824%2013.7381%203.53953%2013.7375%203.54062C13.5253%203.91092%2013.356%204.30898%2013.2375%204.72812C13.2341%204.74033%2013.2357%204.74671%2013.2365%204.74961C13.2374%204.75374%2013.2399%204.76121%2013.2472%204.77011C13.2633%204.78935%2013.295%204.80915%2013.34%204.80918C14.0944%204.80918%2014.7062%205.42092%2014.7062%206.17539C14.706%206.92966%2014.0943%207.54062%2013.34%207.54062C13.2951%207.54065%2013.2633%207.56047%2013.2472%207.57968C13.2399%207.5885%2013.2374%207.59604%2013.2365%207.60019C13.2357%207.60308%2013.2341%207.60951%2013.2375%207.62168C13.3696%208.08914%2013.5648%208.53038%2013.8127%208.93613C13.8134%208.93728%2013.8143%208.93854%2013.8146%208.93906C13.8156%208.93932%2013.8173%208.93987%2013.8195%208.94003C13.8315%208.94092%2013.8524%208.93637%2013.8722%208.9166C14.4203%208.36858%2015.3096%208.36859%2015.8576%208.9166C16.3988%209.45802%2016.4037%2010.3292%2015.882%2010.8766C16.2026%2011.0448%2016.5429%2011.1805%2016.8976%2011.2809C16.9095%2011.2842%2016.9152%2011.2834%2016.9181%2011.2828C16.9221%2011.2819%2016.9296%2011.2795%2016.9386%2011.2721C16.9579%2011.2561%2016.9777%2011.2234%2016.9777%2011.1783C16.9779%2010.4241%2017.5896%209.81308%2018.3439%209.81308C19.0982%209.8131%2019.7099%2010.4241%2019.7101%2011.1783C19.7101%2011.2234%2019.7298%2011.2561%2019.7492%2011.2721C19.7582%2011.2794%2019.7657%2011.2819%2019.7697%2011.2828C19.7726%2011.2834%2019.7784%2011.2842%2019.7902%2011.2809C20.2094%2011.1624%2020.6083%2010.9941%2020.9787%2010.7818C20.9797%2010.7813%2020.9801%2010.7803%2020.9806%2010.7799C20.9809%2010.779%2020.9814%2010.777%2020.9816%2010.775C20.9825%2010.7629%2020.9784%2010.7415%2020.9582%2010.7213C20.4247%2010.1878%2020.4248%209.32315%2020.9582%208.78964C21.4916%208.25617%2022.3563%208.25617%2022.8898%208.78964C22.9103%208.81008%2022.9325%208.81418%2022.9445%208.81308C22.9462%208.81291%2022.9475%208.81233%2022.9484%208.81211C22.9488%208.81154%2022.9496%208.8103%2022.9504%208.80918C23.1625%208.43888%2023.3318%208.04082%2023.4504%207.62168C23.4537%207.60953%2023.452%207.60308%2023.4513%207.60019C23.4503%207.59604%2023.4479%207.58851%2023.4406%207.57968C23.4245%207.56047%2023.3927%207.54067%2023.3478%207.54062C22.5935%207.54062%2021.9818%206.92966%2021.9816%206.17539C21.9816%205.42092%2022.5934%204.80918%2023.3478%204.80918C23.3928%204.80913%2023.4245%204.78935%2023.4406%204.77011C23.4479%204.7612%2023.4503%204.75374%2023.4513%204.74961C23.452%204.74671%2023.4538%204.74033%2023.4504%204.72812C23.3318%204.30897%2023.1625%203.91091%2022.9504%203.54062C22.9497%203.53951%2022.9488%203.53825%2022.9484%203.53769C22.9475%203.53747%2022.9462%203.53786%2022.9445%203.53769C22.9325%203.53658%2022.9103%203.54055%2022.8898%203.56113C22.3564%204.09428%2021.4916%204.09425%2020.9582%203.56113C20.4247%203.02764%2020.4247%202.162%2020.9582%201.62851C20.9784%201.60817%2020.9826%201.58688%2020.9816%201.5748C20.9814%201.57263%2020.9809%201.57086%2020.9806%201.56992C20.9801%201.56955%2020.9797%201.56856%2020.9787%201.56797C20.6083%201.3557%2020.2094%201.18744%2019.7902%201.06894C19.7784%201.06567%2019.7726%201.06633%2019.7697%201.06699C19.7656%201.06792%2019.7583%201.07111%2019.7492%201.07871ZM17.9679%207.73789C18.3077%206.89863%2019.2633%206.49326%2020.1027%206.83261C20.3751%206.94283%2020.5069%207.25355%2020.3966%207.52597C20.2864%207.79813%2019.9765%207.92983%2019.7043%207.81992C19.4094%207.70064%2019.0736%207.84254%2018.9543%208.1373C18.844%208.40973%2018.5333%208.54147%2018.2609%208.43125C17.9887%208.32097%2017.8577%208.01026%2017.9679%207.73789Z%22%20fill%3D%22%232E2A2A%22%20fill-rule%3D%22nonzero%22%20transform%3D%22translate(8.5009765625%209.095458984375)%22%2F%3E%3Cpath%20d%3D%22M7.03321%200.391421C7.11089%200.67481%206.94424%200.967596%206.66084%201.04537C3.96091%201.78633%201.90324%204.13329%201.63043%207.04327L1.07996%2012.9149C0.886383%2014.9798%202.51085%2016.7637%204.58478%2016.7637L12.4888%2016.7637C14.6502%2016.7637%2016.3225%2014.8694%2016.0544%2012.7246L15.5033%208.31606C15.4669%208.02436%2015.6738%207.75842%2015.9654%207.72202C16.257%207.68552%2016.5229%207.8924%2016.5593%208.184L17.1103%2012.5926C17.4579%2015.3725%2015.2903%2017.8279%2012.4888%2017.8279L4.58478%2017.8279C1.88387%2017.8279%20-0.231698%2015.5047%200.0204107%2012.8156L0.570879%206.94387C0.885957%203.58296%203.26248%200.874445%206.37921%200.0191061C6.66265%20-0.0586665%206.95541%200.108021%207.03321%200.391421Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(12.41796875%2015.0762939453125)%22%2F%3E%3Cpath%20d%3D%22M0.5321%200C0.825926%200%201.0642%200.238277%201.0642%200.532106L1.0642%203.72474C1.0642%204.01857%200.825926%204.25685%200.5321%204.25685C0.238275%204.25685%200%204.01857%200%203.72474L0%200.532106C0%200.238277%200.238275%200%200.5321%200Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(20.5341796875%2028.6475830078125)%22%2F%3E%3Cpath%20d%3D%22M3.56904%200.038709C3.84158%20-0.0711177%204.15158%200.0607384%204.26151%200.333283C4.59982%201.17273%204.8928%202.04028%205.0387%202.83163C5.18098%203.60382%205.20237%204.39942%204.88854%205.02699C4.64335%205.51759%204.15861%205.70766%203.72931%205.76811C3.29554%205.82909%202.80835%205.77801%202.36106%205.68584C1.90697%205.5923%201.45734%205.44884%201.08445%205.29837C0.730175%205.15534%200.386332%204.98293%200.186049%204.81138C-0.0372204%204.62025%20-0.0631867%204.28428%200.127944%204.06111C0.319181%203.83784%200.655043%203.81187%200.878205%204.00301C0.938546%204.05473%201.14372%204.17466%201.48267%204.31141C1.8031%204.44072%202.19132%204.56438%202.57571%204.64345C2.9668%204.72401%203.31874%204.75115%203.58096%204.71422C3.84775%204.67676%203.91586%204.59269%203.93672%204.55108C4.09135%204.24182%204.12295%203.73408%203.99206%203.02457C3.86488%202.33421%203.60128%201.5418%203.27447%200.731192C3.16464%200.458648%203.2965%200.148536%203.56904%200.038709Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(28.3603515625%2021.7303466796875)%22%2F%3E%3Cpath%20d%3D%22M5.86667%201.20073C5.96887%201.24078%206.05698%201.28946%206.13352%201.34476C6.37171%201.51686%206.70433%201.46329%206.87644%201.22509C7.04855%200.986883%206.99498%200.654264%206.75678%200.482149C6.59987%200.368778%206.42625%200.275351%206.2367%200.202804C6.22945%200.200037%206.22215%200.197419%206.21479%200.194972C5.30233%20-0.109223%204.50834%20-0.0537562%203.83621%200.335405C3.19004%200.709529%202.73218%201.34967%202.37798%202.05809L2.37241%202.06926C1.8431%203.12783%201.0999%204.61422%200.590229%206.04133C0.334484%206.75744%200.129897%207.47908%200.0440504%208.13868C-0.0403152%208.78699%20-0.0196442%209.445%200.249587%209.98349C0.494836%2010.474%200.979571%2010.6642%201.40886%2010.7245C1.84257%2010.7856%202.32982%2010.7344%202.77712%2010.6422C3.23117%2010.5488%203.68078%2010.4052%204.05365%2010.2548C4.40802%2010.1118%204.75177%209.93943%204.95214%209.76777C5.17534%209.57664%205.20132%209.24077%205.01017%209.0175C4.81902%208.79434%204.48311%208.76837%204.25991%208.9595C4.19958%209.01112%203.99444%209.13116%203.65547%209.26791C3.33501%209.39721%202.94684%209.52077%202.56245%209.59995C2.17132%209.68051%201.81945%209.70764%201.55714%209.67072C1.29041%209.63315%201.22224%209.54918%201.20144%209.50757C1.07159%209.2479%201.02575%208.84159%201.09935%208.27607C1.17147%207.72182%201.34934%207.08%201.59243%206.39933C2.07866%205.03778%202.79529%203.60311%203.32984%202.534C3.64555%201.9025%203.98584%201.47849%204.36943%201.25639C4.72503%201.0505%205.18911%200.977411%205.86667%201.20073Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(8.5009765625%2017.1910400390625)%22%2F%3E%3Cpath%20d%3D%22M1.58513%201.45595C1.18893%201.69369%201.0642%201.94793%201.0642%202.12842C1.0642%202.30891%201.18893%202.56316%201.58513%202.8009C1.97069%203.03226%202.5378%203.19264%203.1926%203.19264C3.84741%203.19264%204.41452%203.03226%204.80008%202.8009C5.19628%202.56316%205.321%202.30891%205.321%202.12842C5.321%201.94793%205.19628%201.69369%204.80008%201.45595C4.41452%201.22459%203.84741%201.06421%203.1926%201.06421C2.5378%201.06421%201.97069%201.22459%201.58513%201.45595ZM1.03759%200.543386C1.61492%200.196985%202.37806%200%203.1926%200C4.00714%200%204.77028%200.196985%205.34761%200.543386C5.9143%200.883401%206.38521%201.42732%206.38521%202.12842C6.38521%202.82953%205.9143%203.37345%205.34761%203.71346C4.77028%204.05986%204.00714%204.25685%203.1926%204.25685C2.37806%204.25685%201.61492%204.05986%201.03759%203.71346C0.470866%203.37345%200%202.82953%200%202.12842C0%201.42732%200.470866%200.883401%201.03759%200.543386Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(17.8740234375%2025.4544677734375)%22%2F%3E%3Cpath%20d%3D%22M4.74916%201.06689C4.74629%201.06623%204.74022%201.06517%204.72809%201.06862C4.3089%201.18712%203.91079%201.35592%203.54044%201.56818C3.53927%201.56883%203.53853%201.56936%203.53789%201.56975C3.53768%201.57069%203.53736%201.5722%203.53714%201.57438C3.53608%201.58646%203.54002%201.60811%203.56056%201.6287C4.09404%202.16219%204.09404%203.02713%203.56056%203.56062C3.02707%204.0941%202.1622%204.0941%201.62871%203.56062C1.60817%203.54004%201.58646%203.53606%201.57433%203.53717C1.5722%203.53737%201.57071%203.53769%201.56976%203.53796C1.56933%203.53852%201.5688%203.53933%201.56816%203.54046C1.35596%203.91077%201.18718%204.30895%201.06862%204.72811C1.06522%204.74031%201.06618%204.74632%201.06692%204.74921C1.06777%204.75329%201.07054%204.76061%201.0781%204.76976C1.09417%204.78905%201.12588%204.80874%201.171%204.80874C1.92541%204.80874%202.53701%205.42036%202.53701%206.17482C2.53701%206.92928%201.92541%207.54089%201.171%207.54089C1.12588%207.54089%201.09417%207.56058%201.0781%207.57988C1.07054%207.58902%201.06777%207.59634%201.06692%207.60042C1.06618%207.60331%201.06522%207.60931%201.06862%207.62152C1.2008%208.0891%201.39555%208.53059%201.64351%208.93642C1.64425%208.93757%201.64478%208.93836%201.6451%208.93889C1.64606%208.93916%201.64776%208.93954%201.65021%208.93973C1.66224%208.94067%201.68352%208.93649%201.70353%208.91644C2.25159%208.36843%203.14009%208.36843%203.68805%208.91643C4.22951%209.45784%204.2343%2010.3285%203.71252%2010.8759C4.03327%2011.0443%204.37318%2011.1806%204.72809%2011.281C4.74033%2011.2845%204.74629%2011.2834%204.74916%2011.2828C4.75321%2011.2818%204.76055%2011.2792%204.7697%2011.2715C4.78896%2011.2555%204.80865%2011.2237%204.80865%2011.1786C4.80865%2010.4242%205.42035%209.81256%206.17477%209.81256C6.92918%209.81256%207.54077%2010.4242%207.54077%2011.1786C7.54077%2011.2237%207.56046%2011.2555%207.57983%2011.2715C7.58898%2011.2791%207.59633%2011.2818%207.60037%2011.2828C7.60324%2011.2834%207.6092%2011.2845%207.62144%2011.281C8.04063%2011.1625%208.43875%2010.9938%208.80909%2010.7814C8.81026%2010.7808%208.811%2010.7803%208.81154%2010.7798C8.81186%2010.779%208.81218%2010.7774%208.81239%2010.7753C8.81345%2010.7632%208.80951%2010.7415%208.78887%2010.721C8.25539%2010.1875%208.25539%209.32252%208.78887%208.78903C9.32235%208.25556%2010.1873%208.25556%2010.7208%208.78903C10.7414%208.80962%2010.7631%208.81359%2010.7751%208.81249C10.7773%208.81229%2010.7788%208.81197%2010.7798%208.8117C10.7802%208.81114%2010.7806%208.81033%2010.7814%208.8092C10.9936%208.43889%2011.1624%208.0407%2011.2809%207.62153C11.2843%207.60932%2011.2832%207.60332%2011.2826%207.60043C11.2817%207.59635%2011.279%207.58903%2011.2714%207.57988C11.2554%207.56058%2011.2237%207.54089%2011.1785%207.54089C10.4241%207.54089%209.81242%206.92928%209.81242%206.17482C9.81242%205.42036%2010.4241%204.80874%2011.1785%204.80874C11.2237%204.80874%2011.2554%204.78905%2011.2714%204.76976C11.279%204.76061%2011.2817%204.75329%2011.2826%204.74921C11.2832%204.74632%2011.2843%204.74031%2011.2809%204.72811C11.1624%204.30895%2010.9936%203.91076%2010.7814%203.54046C10.7807%203.53933%2010.7802%203.53852%2010.7798%203.53796C10.7788%203.53769%2010.7773%203.53737%2010.7751%203.53717C10.7631%203.53606%2010.7414%203.54004%2010.7208%203.56062C10.1873%204.0941%209.32235%204.0941%208.78887%203.56062C8.25539%203.02713%208.25539%202.16219%208.78887%201.6287C8.80951%201.60811%208.81345%201.58646%208.81239%201.57438C8.81218%201.5722%208.81186%201.57069%208.81154%201.56975C8.811%201.56936%208.81026%201.56883%208.80909%201.56818C8.43875%201.35592%208.04063%201.18712%207.62144%201.06862C7.6092%201.06517%207.60324%201.06623%207.60037%201.06689C7.59633%201.06782%207.58898%201.07052%207.57983%201.07812C7.56046%201.09414%207.54077%201.12591%207.54077%201.171C7.54077%201.92546%206.92918%202.53708%206.17477%202.53708C5.42035%202.53708%204.80865%201.92546%204.80865%201.171C4.80865%201.12591%204.78896%201.09414%204.7697%201.07812C4.76055%201.07052%204.75321%201.06782%204.74916%201.06689ZM4.43852%200.0445535C5.22199%20-0.176938%205.87285%200.463309%205.87285%201.171C5.87285%201.33771%206.00801%201.47286%206.17477%201.47286C6.34153%201.47286%206.47657%201.33771%206.47657%201.171C6.47657%200.463309%207.12755%20-0.176937%207.91101%200.0445535C8.41502%200.187058%208.89359%200.389983%209.33832%200.644906C10.0112%201.03064%2010.0213%201.90132%209.54147%202.38121C9.42356%202.49909%209.42356%202.69023%209.54147%202.80811C9.65928%202.92599%209.85041%202.92599%209.96832%202.80811C10.4482%202.32821%2011.3189%202.33829%2011.7046%203.01121C11.9595%203.45594%2012.1625%203.93451%2012.305%204.43859C12.5264%205.22205%2011.8862%205.87295%2011.1785%205.87295C11.0118%205.87295%2010.8766%206.0081%2010.8766%206.17482C10.8766%206.34154%2011.0118%206.47668%2011.1785%206.47668C11.8862%206.47668%2012.5264%207.12759%2012.305%207.91105C12.1625%208.41513%2011.9595%208.89372%2011.7046%209.33846C11.3189%2010.0114%2010.4482%2010.0215%209.96832%209.54155C9.85041%209.42367%209.65928%209.42367%209.54147%209.54155C9.42356%209.65943%209.42356%209.85056%209.54147%209.96846C10.0213%2010.4483%2010.0112%2011.319%209.33832%2011.7048C8.89359%2011.9596%208.41502%2012.1626%207.91101%2012.3051C7.12755%2012.5265%206.47657%2011.8863%206.47657%2011.1786C6.47657%2011.0119%206.34153%2010.8768%206.17477%2010.8768C6.00801%2010.8768%205.87285%2011.0119%205.87285%2011.1786C5.87285%2011.8863%205.22209%2012.5265%204.43852%2012.3051C3.9723%2012.1732%203.52778%2011.9897%203.11168%2011.7612C2.47763%2011.4127%202.46422%2010.5923%202.92821%2010.1556C3.06751%2010.0246%203.07081%209.80421%202.93555%209.66895C2.80317%209.53654%202.58852%209.53654%202.45613%209.66895C1.98373%2010.1413%201.13205%2010.1406%200.735317%209.49119C0.43766%209.00394%200.203535%208.47336%200.0445436%207.91103C-0.176917%207.12755%200.463307%206.47668%201.171%206.47668C1.33765%206.47668%201.47281%206.34154%201.47281%206.17482C1.47281%206.0081%201.33765%205.87295%201.171%205.87295C0.463307%205.87295%20-0.176917%205.22205%200.0445436%204.43859C0.18704%203.93451%200.389984%203.45594%200.644966%203.01121C1.03063%202.33829%201.90136%202.32821%202.38121%202.80811C2.49912%202.92599%202.69025%202.92599%202.80806%202.80811C2.92597%202.69023%202.92597%202.49909%202.80806%202.38121C2.32821%201.90132%202.33832%201.03064%203.01122%200.644906C3.45595%200.389983%203.93452%200.187058%204.43852%200.0445535Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(20.669921875%209.0955810546875)%22%2F%3E%3Cpath%20d%3D%22M1.02551%201.42461C1.14481%201.12972%201.48056%200.987386%201.77545%201.10668C2.04789%201.2169%202.358%201.08541%202.46825%200.812993C2.5785%200.540566%202.44696%200.23038%202.17453%200.120159C1.33487%20-0.21958%200.378689%200.185747%200.0389963%201.02547C-0.0712549%201.2979%200.0602802%201.60809%200.332609%201.71831C0.605045%201.82853%200.915259%201.69703%201.02551%201.42461Z%22%20fill%3D%22%23000000%22%20fill-rule%3D%22evenodd%22%20transform%3D%22translate(26.4296875%2015.8082275390625)%22%2F%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}
/* FIX 86eyzmwue: Figma draws this icon (svg1236, 22.4px in the 42px badge) as 11 stroked
   vectors, stroke 1.72, round caps. The export had embedded each stroke's centre line as a
   filled shape, so it rendered as a solid block, and two zero-width lines were scaled wrongly.
   Replaced with the stroke-only calendar-and-dog glyph that the axis-8 card already ships
   (same Figma vector), scaled 0.668 (22.4 / 33.5) and centred in the 42px badge, which gives
   the 1.67px stroke Figma specifies. */
.bhp-concern-card-wrap:nth-child(7) .bhp-concern-icon {
	background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2042%2042%22%20width%3D%2242%22%20height%3D%2242%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cg%20transform%3D%22translate%2821%2021%29%20scale%280.668%29%20translate%28-30.605%20-30.605%29%22%3E%3Cg%20transform%3D%22translate%2814.37%2C17.24%29%22%3E%3Cpath%20d%3D%22M31.5193%208.22607H0.951172V1.24995H31.5193V8.22607Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2817.0%2C14.22%29%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2823.965%2C14.22%29%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2830.945%2C14.22%29%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2837.925%2C14.22%29%22%3E%3Cpath%20d%3D%22M3.15258%207.29297C2.10185%207.29297%201.25%205.87326%201.25%204.122C1.25%202.37074%202.10185%200.951035%203.15258%200.951035C4.20331%200.951035%205.05516%202.37074%205.05516%204.122%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2829.36%2C40.7%29%22%3E%3Cpath%20d%3D%22M1.25%205.33667V1.25012%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2828.09%2C40.55%29%22%3E%3Cpath%20d%3D%22M1.25%201.25H3.78677%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2833.16%2C29.67%29%22%3E%3Cpath%20d%3D%22M6.32355%207.2749H4.10387C2.52771%207.2749%201.25%205.99719%201.25%204.42103V2.51845C1.25%201.81799%201.81786%201.25007%202.51839%201.25007C4.61991%201.25007%206.32355%202.9537%206.32355%205.05523V7.2749Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2820.48%2C29.67%29%22%3E%3Cpath%20d%3D%22M1.25%207.2749H3.46968C5.04584%207.2749%206.32355%205.99719%206.32355%204.42103V2.51845C6.32355%201.81799%205.75569%201.25007%205.05516%201.25007C2.95363%201.25007%201.25%202.9537%201.25%205.05523V7.2749Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2821.61%2C29.82%29%22%3E%3Cpath%20d%3D%22M15.9969%207.27474H15.6554C14.0793%207.27474%2012.8016%205.99703%2012.8016%204.42087V2.51829C12.8016%202.50205%2012.8034%202.48633%2012.804%202.47022C11.7074%201.81624%2010.3633%201.2499%208.99639%201.2499C7.62958%201.2499%206.28541%201.81624%205.18882%202.47022C5.18939%202.48633%205.19123%202.50205%205.19123%202.51829V4.42087C5.19123%205.99703%203.91352%207.27474%202.33736%207.27474H1.99585L1.33153%2010.1535C0.993888%2011.6168%201.72892%2013.1164%203.09243%2013.7457L7.93336%2015.9799C8.60782%2016.2912%209.38496%2016.2912%2010.0595%2015.9799L14.9003%2013.7457C16.2639%2013.1164%2016.999%2011.6168%2016.6613%2010.1535L15.9969%207.27474Z%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2814.37%2C24.22%29%22%3E%3Cpath%20d%3D%22M23.5807%2017.866H31.5193V1.2501H0.951172V17.866H8.88975%22%20stroke%3D%22%232E2A2A%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20fill%3D%22none%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
	background-size: 42px 42px;
	background-position: center;
	background-repeat: no-repeat;
}

/* Product cards in the two homepage sections that show curated products.
   The card appearance is owned by custom/css/product-card.css for the
   WooCommerce loop; these rules place it outside a loop. Figma's card is
   317x562 with a square 317x317 image (PRODUCT CARD 29089:54366). */
.bhp-card-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 317px));
	justify-content: center;
}
.bpc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	max-width: 317px;
	background: var(--wp--preset--color--bhp-white, #FFFFFF);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
}
.bpc-media { display: block; }
.bpc-img { width: 100%; height: auto; display: block; aspect-ratio: 1 / 1; object-fit: cover; }
/* hp-sec-b fresh-capture audit (86eypb6m6): gap was 8px, Figma's card
   body frame ("Frame 1261154771" in the PRODUCT CARD instance,
   12_Frame_2147229924) declares autoLayout gap 12, padding 16/16/16/16
   (padding already matched). */
.bpc-body { display: flex; flex-direction: column; gap: 12px; padding: 16px; }
.bpc-badges { position: absolute; top: 0; left: 0; display: flex; gap: 8px; padding: 12px; }
/* Wishlist heart overlay (86eypb6m6, node 29323:46945, "WISHLIST ICON"):
   26x26px, roughly 10px inset from the card image's top-right corner
   (Figma places it at x=222 of a 257.6-wide card, y=10). Reuses the
   existing `.bcd-wishlist-btn` button/SVG verbatim (from
   bonza_cart_drawer_wishlist_button(), woocommerce/cart-drawer-filled.php)
   rather than a new icon, only scoping its SIZE and POSITION to this
   context -- the button's own border/colour/hover treatment
   (cart-drawer-filled.css) is untouched, so the cart drawer's own hearts
   stay pixel-identical; this selector only ever matches a
   `.bcd-wishlist-btn` nested inside the new `.bpc-wishlist` wrapper,
   never the drawer's own markup.
   FIX (hp-audit-build live check, 86eypb6m6): rendered 32x32px, not
   26x26px, despite this rule's (0,2,0) beating the drawer's own bare
   (0,1,0) width/height on specificity. Root cause is a THIRD rule this
   file never touches: `wishlist-offcanvas.css` ships
   `.bcd-wishlist-btn { width: 32px !important; height: 32px !important }`
   -- `!important` always wins over a non-important rule regardless of
   specificity, so the 26px value here never applied. `!important` added
   to width/height/min-width only (the only properties that other rule
   contests); nothing else on this selector needed it. */
.bpc-wishlist {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 1;
}
.bpc-wishlist .bcd-wishlist-btn {
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
}
.bpc-wishlist .bcd-wishlist-btn svg {
	width: 13px;
	height: 11.4px;
}
/* Category pills (Frame 2147230021): 22px tall, 4px row gap, each pill 4px 6px
   padding on a 999px radius, Kobe1.1 400 12px/14px ink on cream. Identical to
   the WooCommerce loop card's .meta-categories rule in product-card.css, which
   was measured from the same Figma component -- kept as its own selector rather
   than shared, because that one styles an <a> inside a Woo-owned wrapper and
   this one an <li> we emit ourselves. */
.bpc-cats { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.bpc-cat {
	display: inline-flex;
	align-items: center;
	padding: 4px 6px;
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-cream, #F8EDE3);
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 400;
	font-size: 12px;
	line-height: 1.4; /* >=1.2x, 86eypb6j8 */
	color: var(--wp--preset--color--bhp-ink, #2E2A2A); /* 12.30:1 on cream #F8EDE3 (WCAG AA/AAA) */
}

/* Ingredient chips (Frame 2147229937): 23px tall, 4px gap, 4px 8px padding on a
   4px radius, amber #FFC125, Kobe1.1 700 14px. The chips shipped in PR #895
   with only this container rule, so every chip rendered as a bare list item;
   .bpc-chip below is the missing half. Gap corrected 6px -> 4px to match. */
.bpc-chips { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
.bpc-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border-radius: 4px;
	/* bhp-YELLOW, not bhp-amber. Resolved from the deployed page 2026-09-22:
	   bhp-amber is #FFA825 and bhp-yellow is #FFC125, and Figma's chip fill is
	   #FFC125. Naming the amber token here would have shipped #FFA825 -- the
	   colour the mistakes register already records as a WCAG failure at small
	   sizes -- while the fallback made the rule look correct on inspection. */
	background: var(--wp--preset--color--bhp-yellow, #FFC125);
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 700;
	font-size: 14px;
	line-height: 16px; /* node data: fixed 16px at every D/T/M tier, not INTRINSIC_% */
	color: var(--wp--preset--color--bhp-ink, #2E2A2A); /* 8.49:1 on amber #FFC125 (WCAG AA/AAA) */
}
/* ---------------------------------------------------------------------------
   Card typography, at a specificity that actually wins.

   Measured on the deployed page 2026-09-22: ALL SIX text elements on the card
   rendered at the wrong size, and four of them had been wrong since the cards
   first shipped in PR #888. Nothing caught it because every check until now
   counted elements or looked at photographs, and none of them read the computed
   typography of the card itself.

   The cause is one rule in this same file:

       .bhp-page p, .bhp-page li { font-size: 20px; font-weight: 400; ... }

   That is (0,1,1). Every `.bpc-*` utility is a single class at (0,1,0), so the
   blanket rule outranks all of them, and `.bpc-subhead` and `.bpc-cost-per-day`
   had no rule of their own at all. The recurring-mistakes register already
   records this exact trap on this exact stylesheet (2026-09-19, css-cascade);
   it caught the `.bhp-feature-card__title` utilities then and the card
   utilities now.

   Measured before, against Figma's homepage PRODUCT CARD (Frame 1261154771):

     title           figma Nominee 900 16/16 ink      live 30/900/45 #192A3D
     subheadline     figma Kobe1.1 400 14/16 ink      live 20/400/24
     category pill   figma Kobe1.1 400 12/14 ink      live 20/400/24
     ingredient chip figma Kobe1.1 700 14/16 ink      live 20/400/24
     cost per day    figma Kobe1.1 700 10/16 ink      live 20/400/24
     review count    figma Kobe1.1 400 10/12 purple   live 20/400/24 ink

   Scoping each selector under `.bpc-card` puts these at (0,2,0), which beats
   (0,1,1) on specificity rather than on source order, so re-ordering this file
   later cannot silently undo it.

   Contrast re-checked on the pairs this changes: purple #6E5D84 on white is
   5.89:1, which passes WCAG 2.2 AA for the 10px review count. Ink on cream and
   ink on yellow are unchanged at 12.30:1 and 8.49:1.
   --------------------------------------------------------------------------- */
.bpc-card .bpc-title {
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	font-size: 16px;
	line-height: 1.2; /* was 16px (1.0x), 86eypb6j8 */
	letter-spacing: 0.02em; /* Figma 0.32px on 16px; em so it holds if the size changes */
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}

/* BEST SELLER and SALE, Figma 'Button' pills in Frame 1261154774: Nominee 900
   10/14, fully rounded, 9px horizontal and 2px vertical padding, 18px tall,
   amber #FFA825 and coral #FF6256. They had NO rule at all, so both rendered as
   unstyled ink text sitting over the product photo.

   ⛔ ONE DELIBERATE DEVIATION FROM FIGMA, approved by the operator 2026-09-22.
   Figma sets the label WHITE on both fills. Measured, that is 1.93:1 on the
   amber and 2.94:1 on the coral, against a contractual WCAG 2.2 AA floor of
   4.5:1. The recurring-mistakes register already carries #FFA825 at 1.93:1 from
   the hover-state audit, so this is the second time the same swatch has failed.
   Keeping Figma's fills and using ink instead gives 7.15:1 and 4.69:1, both AA,
   and changes nothing else about how the badges read. Raised on the task as a
   design recommendation rather than silently deviating. */
.bpc-card .bpc-badge {
	display: inline-flex;
	align-items: center;
	min-height: 18px;
	padding: 2px 9px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	font-size: 10px;
	line-height: 14px;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bpc-card .bpc-badge--best {
	background: var(--wp--preset--color--bhp-amber, #FFA825); /* ink 7.15:1, AA/AAA */
}
.bpc-card .bpc-badge--sale {
	background: var(--wp--preset--color--bhp-coral, #FF6256); /* ink 4.69:1, AA */
}

/* The title and the CTA are ANCHORS, and an anchor takes the theme's link
   colour, so both rendered in #2872FA browser-blue on a cream card while the
   typography probe reported the title as correct: it had measured the h3, and
   the visible text is the <a> inside it. Measuring the block instead of the
   element a reader actually looks at is the same trap the register records
   under "measure the element the USER is describing".

   Caught only by opening the 1440 screenshot. Seven elements had just been
   measured to full Figma parity and the card was still visibly wrong. */
.bpc-card .bpc-title a {
	color: inherit;
	text-decoration: none;
}

/* VIEW MORE, Figma 'Button' inside the card: Nominee 900 10/14 uppercase,
   letter-spacing 0.4px on 10px, white on bhp-green, fully rounded, 16px
   padding, filling the card's content width at 40px tall. It had no rule at
   all and was rendering as a bare blue link.

   White on #247B4E is 5.22:1, which passes WCAG 2.2 AA at this size. */
.bpc-card .bpc-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding: 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-green, #247B4E);
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	font-size: 12px; /* WCAG floor 12px (Figma 10px), 86eypb6j8 */
	line-height: 1.4;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--bhp-white, #FFFFFF); /* 5.22:1 on the green, AA */
	transition: background-color 300ms ease-out, color 300ms ease-out;
}
/* Bag/arrow glyphs flank the label per Figma's CTA instance
   (...;34233:176228); fixed 18x18 box so the icon never distorts inside
   the flex row's centered alignment. */
.bpc-card .bpc-cta__icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

/* 86eypb6j8: label is now 12px (WCAG floor); keep it on one line so the CTA stays one row tall. */
.bpc-card .bpc-cta__label {
	white-space: nowrap;
}

/* hp-sec-b audit (86eypb6m6): no Hover or :focus-visible rule existed for
   this CTA at all -- a real gap, not a checked-and-fine case (confirmed
   via grep). Card CTA's rest-state colours (white text on bhp-green) are
   IDENTICAL to `.bhp-btn-secondary .wp-block-button__link`'s rest state
   above, which is this same file's own already-audited, operator-approved
   rendering of Figma's Button component (29049:58925), Kind=Secondary,
   Size=Small, State=Hover (green -> gold fill, text -> dark, shadow
   removed; see that rule's own 2026-09-21 audit comment for the WCAG
   reasoning). Reused verbatim here since it is the same component/kind
   pairing, not re-derived from scratch. Card CTA has no box-shadow to
   remove in its rest state, so only background/colour carry over.
   :focus-visible gets the SAME visual treatment as :hover (a standard,
   accessible pattern), plus this file's own global outline
   (`.bhp-page a:focus-visible`, further up this file) already applies
   here too since this element is an `<a>`, kept explicit rather than
   relied on implicitly. */
.bpc-card .bpc-cta:hover,
.bpc-card .bpc-cta:focus-visible {
	background: var(--wp--preset--color--bhp-yellow, #FFC125);
	color: var(--wp--preset--color--bhp-black, #000000);
	outline: none;
}
.bpc-card .bpc-cta:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-green, #247B4E);
	outline-offset: 2px;
}

/* The price row renders WooCommerce's own get_price_html(), so the type lands
   on the inner .woocommerce-Price-amount rather than on the wrapper, and this
   element had no rule of its own at all: it was inheriting Kobe1.1 400 16/26.4
   in ink where Figma asks for Nominee 400 14/20 uppercase in green. Measured
   2026-09-22 on the deployed page.

   bhp-green resolves to #247B4E on the deployed page, which is exactly Figma's
   rgb(36,123,78). Checked rather than assumed, the same way bhp-amber and
   bhp-purple were, after bhp-amber turned out not to match the fallback written
   beside it. Green on white is 5.22:1, passing WCAG 2.2 AA at this 14px size. */
.bpc-card .bpc-price,
.bpc-card .bpc-price .woocommerce-Price-amount {
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900; /* 86eyy8hud: Figma price text is Nominee Heavy Extended (the served 900 face), not Nominee Regular */
	font-size: 14px;
	line-height: 20px;
	text-transform: uppercase;
	color: var(--wp--preset--color--bhp-green, #247B4E); /* 5.22:1 on white, AA at 14px */
}
/* 86eyy8hud: the sale-price pair keeps Figma's Nominee Regular (400) request for the new price (nodes I36250:89836;35879:95775;29323:47306 and siblings). The Regular file is not served yet, so this renders on the 900 face until it is supplied. */
.bpc-card .bpc-price ins,
.bpc-card .bpc-price ins .woocommerce-Price-amount {
	font-weight: 400;
}
.bpc-card .bpc-subhead {
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.4; /* >=1.2x, 86eypb6j8 */
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bpc-card .bpc-cat {
	font-size: 12px;
	line-height: 1.4; /* >=1.2x, 86eypb6j8 */
}
.bpc-card .bpc-chip {
	font-weight: 700;
	font-size: 14px;
	line-height: 16px; /* was 1.065 (14.91px); node data is fixed 16px, matching .bpc-chip above */
}
/* 86eypb6m6: "Pre, Pro & Postbiotic" is 400 at every tier (figma), the only
   real chip-weight outlier. product-card.php adds this class by matching the
   chip's own text (bonza_card_chip_modifier_class()), not by chip position. */
.bpc-card .bpc-chip.bpc-chip--light {
	font-weight: 400;
}
/* 86eypb6m6: node data steps chip font-size DOWN to 12px at Mobile only.
   Placed AFTER the unconditional .bpc-card .bpc-chip rule (equal
   specificity) so it wins the cascade instead of losing on source order. */
@media (max-width: 767px) {
	.bpc-chip,
	.bpc-card .bpc-chip {
		font-size: 12px;
	}
}
/* 86eypb6m6: Figma's "Gut-Immune" chip is drawn 900/uppercase on its own
   frame -- scoped to this chip only, not widened to the rest. */
.bpc-card .bpc-chip.bpc-chip--bold-caps {
	font-weight: 900;
	text-transform: uppercase;
}
.bpc-card .bpc-cost-per-day {
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 700;
	font-size: 10px;
	line-height: 16px;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bpc-card .bpc-reviews,
.bpc-card .bpc-review-count,
.bpc-card .bpc-rating {
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 400;
	font-size: 10px;
	line-height: 12px;
	color: var(--wp--preset--color--bhp-purple, #6E5D84); /* 5.89:1 on white, AA at 10px */
}
/* Ruling 86eypb6m6: the Feefo rating row has no equivalent in Figma's
   Sec12 card and is hidden here rather than in PHP, keeping the shared
   bonza_product_card() markup identical for every future caller. */
.bhp-routine-carousel .bpc-reviews {
	display: none;
}

/* 86eypb6m6 S11 height parity: Figma's Sec12 card has no purchase-mode
   picker, just image/title/chips/price/CTA. Same ruling as .bpc-reviews
   above, hidden per-instance since other bonza_product_card() callers
   still need it. */
.bhp-routine-carousel .bpc-mode {
	display: none;
}

.bpc-mode__row { display: flex; align-items: center; gap: 8px; }
.bpc-mode__row.is-unavailable { opacity: 0.5; }

/* ==== 86eypb6m6 parity B: sections 11-20 (start) ====
   hp-sec-b, comparator.js pass (scratchpad/hp-sec-b/figma/comparator.js,
   pairs every Figma TEXT node in homepage-figma-spec.json against its
   build element in homepage-build-1440.json by text content, diffs
   font-family/weight/size/line-height/letter-spacing/case/colour).
   Every rule below cites the exact figma value vs the measured build
   value and the node id, per the lead's numbered-mismatch rule. Accepted
   exception (Lan 2026-09-24): where Figma names Poppins or Inter, Kobe1.1
   substitutes; every other property on that node still must match. */

/* Section 9 "What's Your Dog Dealing With?" (34241:138585) */

/* Intro paragraph: figma weight=700, build=400 (node 34241:138590).
   `:not(.bhp-eyebrow)` excludes this section's eyebrow, which is also a
   direct-child `p.wp-block-paragraph` and was losing its 900 weight to
   this rule's higher specificity. */
.bhp-section:nth-of-type(9) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	font-weight: 700;
}
/* Concern card label ("Everyday Gut Health" etc, e.g. node 34259:221660):
   figma font=Inter/800, size 14, lh 20.0; build was Nominee/400, lh 16.8.
   Inter is the accepted-exception case (Kobe1.1 substitute); 700 is the
   closest weight this project's two loaded families offer to Figma's 800
   (matches the same "closest available bold" convention already used for
   .bhp-eyebrow/.bhp-feature-card__title elsewhere in this file). */
.bhp-page .bhp-concern-card .bhp-concern-label {
	/* Kobe1.1 has no 800 cut, so it drew the same 700 as the sub-label and
	   the title read light. Inter ExtraBold is registered (footer.css). */
	font-family: "Inter", var(--bhp-body-font);
	font-weight: 800;
	line-height: 20px;
}
/* "Start here" flag pill (node 34259:221663): figma weight=900, lh=16.0,
   letter-spacing 0.28px (2% of 14px); build was 400 / 16.8 / 0. */
.bhp-page .bhp-concern-card .bhp-concern-flag {
	font-weight: 900;
	line-height: 16px;
	letter-spacing: 0.02em;
}
/* hpfix-b re-check: both nodes are 14px at D/T but 12px at M (re-confirmed
   vs spec). Neither had a mobile override before. */
@media (max-width: 743px) {
	.bhp-page .bhp-concern-card .bhp-concern-label,
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		font-size: 12px;
	}
}
/* Concern sub-label ("Belly"/"Block"/etc, e.g. node 34259:221676): figma
   lh=16.0px, build was 16.8px (14px * default 1.2). */
.bhp-page .bhp-concern-card .bhp-concern-sub {
	line-height: 16px;
}

/* Section 10 "Routines That Work as One" (34241:140846). Purchase-mode
   row: .bpc-mode__label/.bpc-mode__price had NO typography rule at all,
   rendering the browser's -apple-system default. Figma:
     label (e.g. "One Time Purchase", node 34190:169700): Kobe1.1/700,
       16px, lh 20.0. Build was -apple-system/400/15px/24.75px.
     price (e.g. "£22.50", node 34190:169701): Nominee/900, 14px, lh
       16.0, letter-spacing 0.28px, uppercase, green. Build was
       -apple-system/400/15px/24.75px/0/none/ink. */
.bpc-card .bpc-mode__label {
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 700;
	font-size: 16px;
	line-height: 20px;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bpc-card .bpc-mode__price {
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	font-size: 14px;
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
/* Node 34190:169701 is 14px at D/T but 12px at M; shrinks to match. */
@media (max-width: 767px) {
	.bpc-card .bpc-mode__price {
		font-size: 12px;
	}
}
/* hp-sec-b fresh-capture audit (86eypb6m6): the label/price rules above
   colour EVERY .bpc-mode__row the same, but Figma colour-codes the two
   rows oppositely (12_Frame_2147229924, "one-time-purchase-row" vs
   "subscribe-header-block" > "title-and-price-row"): One Time Purchase's
   label and price are ink, Subscribe's are green. Confirmed live: "£22.50"
   (the OTP price) was rendering green when Figma wants ink. Targeted via
   the input's own `value` attribute (`includes/product-card.php` sets
   value="otp"/"sub" on the radio already) rather than a new PHP class,
   since that file is outside this pass's edit permission. */
.bpc-card .bpc-mode__row:has(input[value="sub"]) .bpc-mode__label,
.bpc-card .bpc-mode__row:has(input[value="sub"]) .bpc-mode__price {
	color: var(--wp--preset--color--bhp-green, #247B4E);
}
/* "Explore more routines" CTA (node 29049:57871): figma colour
   rgb(46,42,42) (ink), build was rgb(0,0,0) (pure black); figma weight
   800 (Inter, accepted-exception Kobe1.1 substitute, closest 700), lh
   26.0px vs build 19.8px. Scoped to this one button (section 10 only,
   by DOM position): .bhp-btn-primary/.wp-block-button__link are shared
   sitewide classes, not edited directly. */
section:nth-of-type(10) .bhp-btn-primary .wp-block-button__link {
	font-family: var(--bhp-body-font); /* accepted: Inter -> Kobe1.1, Lan 2026-09-24 */
	font-weight: 700;
	line-height: 26px;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
/* NOTE: the "BEST SELLER"/"SALE" badge text colour (figma: white,
   1.93:1/2.94:1 contrast) is a KNOWN, ALREADY-DOCUMENTED deviation
   (.bpc-card .bpc-badge rule above, "ONE DELIBERATE DEVIATION FROM
   FIGMA, approved by the operator 2026-09-22"), not re-litigated here. */

/* "Explore The Gut-Organ Axes" CTA (node I34457:304330;34259:219525;
   29049:57871, jsonl-confirmed font_family:"Inter"). CORRECTED
   (86eypb6m6, hp-fix-a): the Kobe1.1 stand-in below predates Inter being
   self-hosted (footer.css's Inter-ExtraBold, CU-86eyv2c1y) and was also
   checked against the wrong node id (29049:57871 alone, a shared
   component id reused by many buttons with different figma fonts) --
   this exact instance is Inter/800, already self-hosted at 800. Scoped
   to this one button, not the shared .bhp-btn-primary class. */
section:nth-of-type(7) .bhp-btn-primary .wp-block-button__link {
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
}

/* Section 11 "Formulated With Science. Not Marketing." (34241:139880).
   Refines the .bhp-page .bhp-feature-card__* fix above (that fix set
   font-family/weight/size correctly; line-height/letter-spacing were
   still unset, defaulting to the wrong values below). */
.bhp-page .bhp-feature-card__title {
	/* figma lh=16.0px, ls=0.28px (2% of 14px); build had neither set. */
	line-height: 16px;
	letter-spacing: 0.02em;
}
.bhp-page .bhp-feature-card__sub {
	/* figma lh=20.0px (node 34612:68438 etc); build had none set. */
	line-height: 20px;
}
.bhp-page .bhp-feature-card__body {
	/* figma lh=16.0px (node 34612:68439 etc); build's 1.4 unitless gave
	   19.6px on this 14px text. */
	line-height: 16px;
}

/* Section 12 "Founder" (34241:145502). Same refinement pattern as
   section 11's feature cards. */
.bhp-page .bhp-founder-credit {
	/* figma (node 34241:146374): lh=16.0px, ls=0.32px (2% of 16px),
	   uppercase. Build had none of the three set. */
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.bhp-page .bhp-founder-quals {
	/* figma (node 34241:146375): lh=16.8px (120% intrinsic on 14px),
	   colour rgb(111,104,91) = #6F685B, a different shade from the
	   existing --bhp-taupe (#6F683B, blue channel 59 vs 91). Lead granted
	   a new preset-colour slug for this exact node, bhp-taupe-quals
	   (homepage/homepage.php's theme.json filter), rather than changing
	   the shared --bhp-taupe value other elements still read. */
	line-height: 16.8px;
	color: var(--wp--preset--color--bhp-taupe-quals, #6F685B);
}

/* Section 13 "What Goes In Matters. What Stays Out Matters More."
   (34241:146546). */
.bhp-page .bhp-transparency-card h4 ,.bhp-page .bhp-transparency-card h3 {
	/* 86eyy8hud: user decision, card headings use Nominee. Figma draws these
	   in Inter Extra Bold; the Nominee style Figma uses for the equivalent
	   small uppercase labels (eyebrows, 14px/lh16/ls 2%/UPPER) is Nominee Heavy
	   Extended = the served 900 face. lh=16px, ls=2% kept from Figma. */
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	line-height: 16px;
	letter-spacing: 0.02em;
}
.bhp-page .bhp-transparency-card li {
	/* figma lh=20.0px on every list item (e.g. node 34306:181055); build
	   was 19.2px (16px * the element's own 1.2 default). */
	line-height: 20px;
}
/* "A Good Reason to Stay" eyebrow (34241:157919): same accepted Inter ->
   Kobe1.1/700 substitution as the transparency h4 above (86eyy8hud). Live
   renders frozen post_content (no new class available), so this targets
   the one `.bhp-band-green` whose last direct child is a `<p>` -- every
   other green band's last child is a nested `<div>`/`<details>` wrapper. */
.bhp-page .bhp-band-green:has(> p:last-child) > .bhp-eyebrow {
	font-family: var(--bhp-inter-font); /* Figma Inter 800 14px; stand-in dropped */
	font-weight: 800;
}

/* Section 16 "Your Dog's Gift to the Planet" (34323:190186). Eyebrow
   (node 34323:190189) is figma GREEN rgb(36,123,78), matching the
   already-registered --bhp-green token exactly, so this half of the
   colour swap is fixed with no new token needed. */
.bhp-section:nth-of-type(16) > .bhp-eyebrow {
	color: var(--wp--preset--color--bhp-green, #247B4E);
}
/* H2 (node 34323:190190) is figma dark-grey rgb(51,51,51), a different
   colour from every other section's usual H2 green. Lead granted a new
   preset-colour slug for this, bhp-charcoal (homepage/homepage.php's
   theme.json filter) -- not the existing bhp-ink, which is a different
   colour (#2E2A2A) read as the page's primary text colour everywhere. */
.bhp-section:nth-of-type(16) > h2.wp-block-heading {
	color: var(--wp--preset--color--bhp-charcoal, #333333);
}

/* Section 17 "Your Questions Answered" (34323:194305). figma lh=16.0px
   on every question (e.g. node 34323:195185); build had no line-height
   set on either existing .bhp-faq-list summary rule, so it fell back to
   the browser default (measured 26.4px). font-family/weight/size/case
   already correct (the second existing .bhp-faq-list summary rule,
   further up this file, already wins those on source order). */
.bhp-faq-list summary {
	line-height: 16px;
}

/* Sections 6/10 (Complete Nutrition / Routines) shared product card:
   .bpc-mode__row picker (One Time Purchase / Subscribe), styled to
   Figma's "subscription variant" component set (34190:189784) visual
   language -- pill radius 8, Default/Hover/Selected fills and strokes --
   per the lead's decision. This is a CSS-only pass: the full frequency-
   picker feature that component set was actually drawn for is its own
   follow-up (scratchpad/hp-sec-b/followup-frequency-picker.md), not built
   here; this only re-skins the EXISTING two-row OTP/Subscribe markup with
   the same state-styling language, no new markup or data.
     Default   (34190:189783): white fill, 1px cream (#F8EDE3) stroke.
     Hover     (34190:189782): amber(bhp-yellow) 5% tint fill, 1px cream
               stroke.
     Selected  (34190:189781): amber(bhp-yellow) 5% tint fill, 1px
               bhp-amber (#FFA825) stroke.
   `:has(input:checked)` detects the selected row (native radio state);
   `color-mix()` derives the 5% tint from the existing --bhp-yellow token
   rather than a literal rgba (no new colour introduced). */
.bpc-card .bpc-mode__row {
	border: 1px solid var(--wp--preset--color--bhp-cream, #F8EDE3);
	border-radius: 8px;
	padding: 8px 12px;
}
.bpc-card .bpc-mode__row:hover,
.bpc-card .bpc-mode__row:focus-within {
	background-color: color-mix(in srgb, var(--wp--preset--color--bhp-yellow, #FFC125) 5%, white);
}
.bpc-card .bpc-mode__row:has(input:checked) {
	background-color: color-mix(in srgb, var(--wp--preset--color--bhp-yellow, #FFC125) 5%, white);
	border-color: var(--wp--preset--color--bhp-amber, #FFA825);
}

/* Section 15 (Reviews) Feefo carousel: same `.bhp-page p` (0,1,1) leak as
   documented elsewhere in this file -- it beats feefo-reviews.css's own
   bare-class rules (0,1,0) on every <p> inside the card. Of the card's
   markup (bonza_feefo_render_card(), includes/feefo-reviews-api.php,
   read-only), exactly two elements are <p> tags and both get overridden:
   .bfr-card__body (declared 16px/400/20px line-height in feefo-
   reviews.css) and .bfr-carousel__attribution (declared 13px/18px line-
   height, centered, var(--bfr-ink) colour). Restoring both here, scoped
   under .bhp-page so this stays a homepage-only override and never
   touches feefo-reviews.css (out of edit scope) or the card everywhere
   else it renders off this page. */
.bhp-page .bfr-card__body {
	font-size: 16px;
	font-weight: 400;
	line-height: 20px;
}

/* Founder (Section 12) and Transparency (Section 13) 2-column rows,
   corrected 2026-09-24 per the lead's direction: Figma draws both as a
   photo beside a text column, not the photo-stacked-below layout this
   pass previously shipped (see the markup functions' own docblocks for
   the exact Figma frame/gap citations).
   Stack breakpoint corrected a second time (still 2026-09-24, same
   lead direction): the T744 frame for BOTH sections was actually
   checked (14_Frame_2147229925.T / 15_Frame_2147229927.T) rather than
   assumed from flex-wrap math, and both are STACKED at T744 (children
   offset vertically, not horizontally, despite the parent autolayout
   node still reading HORIZONTAL) -- so the earlier "wraps somewhere
   under ~700px combined width" guess was wrong; the real cutover is the
   project's own D boundary (>=1440), not organic content-width wrapping.
   Mobile-first: column (stacked) by default, covering both T (768-1439)
   and M (<768); switched to row (side by side) only at 1440+, matching
   what the D1512 frame alone actually shows.
   Founder: photo 672px / col 672px, Figma gap 40 (Frame 2147229945).
   Transparency: photo 430px (fixed) / col 930px, Figma gap 24
   (Frame 2147229949). flex-basis values below (used only inside the
   1440px row layout) approximate each side's real share of its row
   rather than a literal 1:1 split, since the two rows are not the same
   ratio. */
.bhp-founder-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 40px;
	margin-top: 24px;
}
.bhp-transparency-inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 24px;
	margin-top: 24px;
}
.bhp-founder-row > .bhp-founder-photo {
	margin-top: 0;
}
.bhp-transparency-inner > .bhp-transparency-photo {
	margin-top: 0;
}
@media (min-width: 1440px) {
	.bhp-founder-row,
	.bhp-transparency-inner {
		flex-direction: row;
		align-items: flex-start;
	}
	.bhp-founder-row > .bhp-founder-photo {
		flex: 1 1 320px;
	}
	.bhp-transparency-inner > .bhp-transparency-photo {
		/* 86eypb6m6 S14: Figma's photo is a fixed 430px column, the
		   remainder goes to the cards col -- was flex-growing to 487px. */
		flex: 0 0 430px;
	}
	.bhp-founder-col {
		flex: 1 1 320px;
	}
	.bhp-transparency-col {
		flex: 1 1 auto;
	}
}
/* Bio text reads left-aligned once it sits in a column beside the photo
   (per the lead's explicit "bio left-aligned" instruction); `.bhp-page p`
   sets no text-align so this was already the paragraph default, stated
   explicitly here so it survives any future default-alignment change. */
.bhp-founder-col p {
	text-align: left;
}
/* `.bhp-transparency-row` (the two comparison cards) keeps its own
   24px/0 vertical margin unchanged when nested inside `.bhp-transparency-
   col`; `.bhp-transparency-col > p` (body + tagline) stays centered,
   matching Figma's own centered text in that same right-hand block
   (Frame 2147229947, textAlignHorizontal CENTER on both lines). */

/* Section 16 (Planet badges): OneTribe counter moved inline as the
   badge row's 2nd element (see bonza_hp_planet_badges()'s own docblock
   for the Figma citation). It was previously a block-level <p> below the
   row with no row-specific styling; now a flex item beside the SVG
   badges, so its own margin needs zeroing to avoid a mismatched vertical
   offset against the `<figure>` siblings inside `.bhp-badge-row` (already
   `display:flex; align-items:center;`, unchanged). */
.bhp-onetribe {
	margin: 0;
	display: inline-flex;
	align-items: center;
}
/* Height corrected 56px -> 52.5px (the lead's direction 2026-09-24: give
   every badge slot its own Figma height, OneTribe included): "admin-ajax
   (1) 2" (I34457:304330;35219:73434) is 117.5x52.5 in the "Review Copy
   Variant" row, not the uniform 56px this shared with the trust badges. */
.bhp-onetribe img {
	height: 52.5px;
	width: auto;
}

/* Transparency tagline "Plant-based by consequence, not by trend."
   (86eypb6m6, hp-sec-b fresh-capture audit, node I...;34306:181093):
   font-family already correct (Inter in Figma, Kobe1.1 accepted per the
   standing exception), but this was still rendering as a plain 20px/700
   body paragraph -- Figma draws it as a small uppercase tag, 14px/800,
   tight letter-spacing. New class added to the tagline paragraph only
   (not the sibling body copy above it, which keeps the page default).
   `.bhp-page` prefix added after hp-audit-build's live check: the bare
   class (spec 100) was losing font-size/font-weight to `.bhp-page p`
   (spec 101, class+element beats single class), the same recurring
   pattern this file already documents for founder-credit and the
   feature-card title. letter-spacing/text-transform were unaffected
   since `.bhp-page p` never sets either. */
.bhp-page .bhp-transparency-tagline {
	font-size: 14px;
	font-weight: 800;
	line-height: 16px;
	letter-spacing: 0.28px;
	text-transform: uppercase;
}
/* 86eypb6m6 hp-audit-c: the tagline's visible text is entirely wrapped in a
   `<strong>` (live markup), whose UA-default `font-weight: bold` (700) is
   set directly on that element and wins over the 800 inherited from the
   `<p>` above -- inheritance never beats an element's own explicit rule. */
.bhp-page .bhp-transparency-tagline strong {
	font-weight: 800;
}
/* 86eypb6m6 hp-audit-c: figma steps this down to 12px only at M (node
   34306:181093, <768px); T/D keep the 14px set above. */
@media (max-width: 767px) {
	.bhp-page .bhp-transparency-tagline {
		font-size: 12px;
	}
}

/* ==== 86eypb6m6 parity B (end) ==== */

/* 86eypb6m6 doctor-chat: letter-spacing in em, not px, so the 2% Figma
   value scales correctly between the 12px (M) and 14px (T/D) name size;
   name/title precede the message text so assistive tech reads the
   sender before the body copy. */
.bhp-doctor-chat {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	max-width: 800px;
	/* 86eypb6m6: Figma's parent auto-layout gap is 40 VERTICAL on both
	   sides of this card at every tier; neither neighbour carries its
	   own touching-edge margin, so collapsing this card's own margin
	   against them reaches 40px without doubling up. */
	margin: 40px auto;
}
.bhp-doctor-chat__avatar {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid #E5E7EB;
	overflow: hidden;
}
.bhp-doctor-chat__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bhp-doctor-chat__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1 1 auto;
	min-width: 0;
}
.bhp-doctor-chat__sender {
	display: flex;
	align-items: center;
	gap: 8px;
	/* 86eypb6m6: this is a wp-block-group child, so it inherits WP core's
	   24px block-spacing margin-bottom; that stacks on top of the
	   parent's flex gap:8px, inflating the sender-to-bubble gap to 32px
	   instead of the Figma-specified 8px. */
	margin: 0;
}
.bhp-page .bhp-doctor-chat__name {
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 12px;
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bhp-ink);
	margin: 0;
}
.bhp-page .bhp-doctor-chat__title {
	font-family: var(--bhp-inter-font); /* Figma Inter (86eypb6m6 hp4: DVM label, all three frames) */
	font-weight: 500;
	font-size: 13px;
	line-height: 16px;
	color: var(--bhp-ink);
	margin: 0;
}
.bhp-doctor-chat__bubble {
	background: var(--bhp-white);
	border: 1px solid #E5E7EB;
	border-radius: 18px;
	padding: 14px 16px;
	box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.051);
}
.bhp-page .bhp-doctor-chat__message {
	font-family: var(--bhp-body-font);
	font-weight: 700;
	font-size: 18px;
	line-height: 24px;
	color: var(--bhp-ink);
	margin: 0;
}
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-page .bhp-doctor-chat__name { font-size: 14px; }
}
@media (min-width: 1440px) {
	.bhp-page .bhp-doctor-chat__name { font-size: 14px; }
	.bhp-page .bhp-doctor-chat__message { font-size: 20px; }
}

/* ==== 86eypb6m6 systemic wave-divider audit (hero-wave-mobile pass) ==== */
/* FIX: hero-wave-strip.png is reused in gut_centre_photo's and planet_band's
   leading strips, both after a cream section -- scoped via :has() so it
   never touches the other, fully-opaque strip PNGs. Re-measured 86eypb6m6:
   42.75% opaque, a real crest, not "near-fully-transparent" -- see the sB
   split rule below. */
.bhp-gutcentre-photo__pattern--top:has(img[src*="hero-wave-strip"]) {
	/* Photo-top torn edge (S02, Figma 34213:84249, rotation 0): cream sits on
	   TOP, the wave edge below overlapping the photo. The shared asset is the
	   180deg-rotated variant (cream at the bottom, used by the hero), so it is
	   rotated back here. The old flat cream background filled the whole strip
	   and hid the wave, leaving a straight edge. Only a 2px cream cap remains,
	   to hide subpixel bleed of the photo at the strip's antialiased top row. */
	background: linear-gradient(var(--bhp-cream), var(--bhp-cream)) 0 0 / 100% 2px no-repeat;
}
.bhp-gutcentre-photo__pattern--top img[src*="hero-wave-strip"] {
	transform: rotate(180deg);
}
/* FIX (86eypb6m6): sB sits before GREEN, not cream -- pixel-sampled the
   asset at 42.75% opaque (a real crest, not "near-fully-transparent"), so
   flat cream hid it against its own backdrop. Split at the crest's onset:
   cream above, green below, so the crest finally has contrast. */
.bhp-pattern-strip--top:has(img[src*="hero-wave-strip"]) {
	background: linear-gradient(to bottom, var(--bhp-cream) 0% 50%, var(--bhp-green) 50% 100%);
}
/* ==== 86eypb6m6 systemic wave-divider audit (end) ==== */

/* ==== 86eypb6m6 hp-waves: formulatedscience-top white-leak (S11->S12) ==== */
/* CORRECTED (supersedes aspect-ratio:1920/60): Figma's box ratio here is
   ~8.55% of width at D/T/M, matching the source's own 164/1920 ratio --
   the design shows the FULL source scaled to width, not a tight crop;
   1920/60 was ~2.7x too short and hid the real wave transition. */
.bhp-pattern-strip--bottom img[src*="formulatedscience-top"] {
	aspect-ratio: 1920 / 164;
	object-fit: cover;
	object-position: top;
}
/* ==== 86eypb6m6 hp-waves (end) ==== */

/* ==== 86eypb6m6 "OUR NUTRITION SYSTEM" section rebuild ==== */
/* Figma node 34457:304330 (D-1512, content column 34457:304330;34215:174795).
   Dimensions below are read off that node tree, not estimated. */

/* Header: 1000px column, CENTER-aligned -- matches sections #9/#10/#17;
   defect #1's "centered/narrow" ask, not a new convention. */
.bhp-nutrition-header {
	max-width: 1000px;
	margin: 0 auto;
	text-align: center;
}

/* Lifestyle photo (defect #2): Figma "life style image" 34220:183815
   measures 1000x561.16 (24px radius); uploaded file is 1000x562. */
.bhp-nutrition-photo-wrap {
	max-width: 1000px;
	margin: 0 auto;
}
.bhp-nutrition-photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1000 / 562;
	object-fit: cover;
	border-radius: 24px;
	margin: 0;
}

/* Card row: Figma frame is 1000px wide, 2x 490px cards, 20px gap -- the
   SAME 1000px the header/green box use (defect #5). Overrides
   `.bhp-card-grid`'s shared 280/317px track used by unrelated sections. */
.bhp-nutrition-cards.bhp-card-grid {
	max-width: 1000px;
	margin: 0 auto;
	gap: 20px;
	grid-template-columns: repeat(2, minmax(0, 490px));
}

/* Card: own 490px/24px-radius shell, deliberately NOT `.bpc-card`
   (317px/12px) -- a different, larger Figma component. */
.bhp-nutrition-card {
	position: relative;
	display: flex;
	flex-direction: column;
	max-width: 490px;
	width: 100%;
	margin: 0 auto;
	background: var(--bhp-white);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
}
/* Gaps intro>photo 64/24/20 (D/T/M) and photo>cards 20, from the Figma
   Home Page frames. Intro paragraph is a 600px column. */
.bhp-nutrition-header {
	margin-bottom: 20px;
}
.bhp-nutrition-header > p:not(.bhp-eyebrow) {
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0;
}
.bhp-nutrition-photo-wrap {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-nutrition-header { margin-bottom: 24px; }
}
@media (min-width: 1440px) {
	.bhp-nutrition-header { margin-bottom: 64px; }
}
/* Figma card text is LEFT-aligned; only the header block is centred. */
.bhp-page .bhp-nutrition-card .bhp-nutrition-content,
.bhp-page .bhp-nutrition-card .bhp-nutrition-content > * {
	text-align: left;
}
.bhp-nutrition-content .wp-block-buttons {
	justify-content: flex-start;
}
/* Figma T 744 / M 428 stack the cards full width. No frame exists for
   744-1439, so the stack holds until two cards fit at ~490. */
@media (max-width: 1023px) {
	.bhp-nutrition-cards.bhp-card-grid {
		grid-template-columns: 1fr;
	}
	.bhp-nutrition-cards .bhp-nutrition-card {
		max-width: none;
	}
}
.bhp-nutrition-tile {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
}
.bhp-nutrition-tile-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Ribbon badge: bleeds partway off the tile's left edge per Figma; reuses
   `.bpc-badge` typography rather than a second badge style. */
.bhp-nutrition-ribbon {
	/* Figma "COMPLETE FOOD" (D/T/M) is Inter 800 12px/16px. */
	font-family: var(--bhp-inter-font);
	font-weight: 800;
	position: absolute;
	/* Figma ribbon frame: 181.45x36, rotation 32deg (counter-clockwise),
	   origin at x -31 / y 66 of the tile; the card's overflow:hidden clips
	   the ends. */
	top: 66px;
	left: -31px;
	width: 181.45px;
	box-sizing: border-box;
	transform-origin: 0 0;
	transform: rotate(-32deg);
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
	border-radius: 0;
	/* AA deviation: Figma #FF0000 with white 12px text is 4.0:1; #EE0000 is
	   the nearest red that reaches 4.5:1 (4.53:1). */
	background: #EE0000;
	/* Figma "COMPLETE FOOD": Inter ExtraBold 12/16, no tracking. Inter is
	   the file's Kobe1.1 stand-in (see the Foundation Routine button), 700
	   is Kobe's heaviest face. The "MOST POPULAR" ribbon on the Biotics
	   card is visible:false in Figma, so only card 1 renders one. */
	font-family: var(--bhp-body-font);
	font-weight: 700;
	font-size: 12px;
	line-height: 16px;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--bhp-white);
}

/* Content box: 24px padding all sides (children measure 442 = 490 - 24*2).
   Vertical rhythm is the SAME 16px gap measured twice in this card, so one
   flex gap replaces two separate margins. */
.bhp-nutrition-content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	flex: 1;
}
/* (0,2,0) to outrank the page-wide `.bhp-page p, .bhp-page li` (0,1,1)
   blanket rule documented earlier in this file. */
.bhp-nutrition-card .bhp-nutrition-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	/* Figma title: 18/24 M, 24/28 T, 28/32 D. */
	font-size: 18px;
	line-height: 24px;
	color: var(--bhp-green);
}
.bhp-nutrition-card .bhp-nutrition-body {
	margin: 0;
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 400;
	/* Figma body: Superfoods 18/24 M+T, 20/24 D; Biotics 16/24 M+T, 18/24 D. */
	font-size: 18px;
	line-height: 24px;
	color: var(--bhp-ink);
}
.bhp-nutrition-card:last-child .bhp-nutrition-body {
	font-size: 16px;
}
.bhp-nutrition-card .bhp-nutrition-body strong,
.bhp-nutrition-card .bhp-nutrition-allergen strong {
	font-weight: 700;
}
@media (min-width: 744px) {
	.bhp-nutrition-card .bhp-nutrition-title { font-size: 24px; line-height: 28px; }
}
@media (min-width: 1024px) {
	.bhp-nutrition-card .bhp-nutrition-title { font-size: 28px; line-height: 32px; }
	.bhp-nutrition-card .bhp-nutrition-body { font-size: 20px; }
	.bhp-nutrition-card:last-child .bhp-nutrition-body { font-size: 18px; }
}
/* Spec pills: 24px tall, 8px/4px inline padding, 10px inner gap -- measured
   on the live pill nodes, not the `.bpc-cat`/`.bpc-chip` pattern. */
.bhp-nutrition-pills {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bhp-nutrition-card .bhp-nutrition-pill {
	display: inline-flex;
	max-width: 100%;
	align-items: center;
	gap: 10px;
	min-height: 24px;
	padding: 4px 8px;
	border-radius: 4px;
	background: var(--wp--preset--color--bhp-cream, #F8EDE3);
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	/* Figma pills: 12/16 M, 14/16 T and D. */
	font-size: 12px;
	line-height: 16px;
	color: var(--bhp-ink);
}
@media (min-width: 744px) {
	.bhp-nutrition-card .bhp-nutrition-pill { font-size: 14px; }
}
.bhp-nutrition-card .bhp-nutrition-pill strong { font-weight: 700; }
.bhp-nutrition-card .bhp-nutrition-pill span { font-weight: 400; }
.bhp-nutrition-card .bhp-nutrition-allergen {
	margin: 0;
	font-family: var(--wp--preset--font-family--bhp-body, "Kobe1.1", sans-serif);
	font-weight: 400;
	/* Figma allergen line: Kobe1.1 Regular (not italic) 18/24 M+T, 20/24 D. */
	font-style: normal;
	font-size: 18px;
	line-height: 24px;
	color: var(--bhp-ink);
}
@media (min-width: 1024px) {
	.bhp-nutrition-card .bhp-nutrition-allergen { font-size: 20px; }
}
/* CTA spacing only -- `.bhp-btn-primary` owns the button's visual style.
   Figma's exact offset fell outside the extracted window; 4px is a
   reasoned interpolation, flagged in the final report. */
.bhp-nutrition-cta {
	/* Figma's button sits on the card's 16px gap, no extra offset: content
	   heights measure 456/680/688 (T/D/M) only without the old 4px. */
	margin-top: 0;
}
/* Targeted-support product cards inside the nutrition section: Figma's
   VIEW MORE / CHOOSE button is 40px high with its 18px icon centred; the
   shared 16px padding made it 50px. Scoped to this section only. */
.bhp-section:has(.bhp-nutrition-ribbon) .bpc-card .bpc-cta {
	box-sizing: border-box;
	height: 40px;
	min-height: 40px;
	padding-top: 0;
	padding-bottom: 0;
}

/* 86eypb6m6 nutrition-card CTAs vs Figma Button instances (D 21316:76923,
   T 21154:67974 chunk, M 23313:52672, identical across all three):
   - Superfoods (left) card: Kind=Secondary -- fill #247B4E, label #FFFFFF,
     no border, the two-layer card shadow, hug width (341x48 at D/T/M).
   - Biotics (right) card: Kind=Primary -- fill #FFC125, label #2E2A2A,
     1.5px #B86E00 border, no shadow, hug width (255x48).
   - Both: Nominee 12px / 26px line / +4% (0.48px) / UPPER, 48px high,
     16px side padding, radius 999. The shared `.bhp-page
     .wp-block-button__link` padding is 16px 24px, which made the label
     16px wider than Figma's button and wrapped it.
   The card markup carries `.bhp-btn-primary` on both CTAs (the block is a
   shortcode, so it cannot be reclassed from post_content); the left card
   is switched to the Secondary kind here by position. Hover/focus keep
   the shared kind rules: Secondary -> yellow fill + dark label, Primary
   -> coral fill/border + ink label (see the WCAG note on `.bhp-btn-primary`). */
.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link {
	/* Figma: fixed 48px-high pill, 26px label vertically centred (text y=11
	   in the instance), 16px side padding; 9.5px block padding + the 1.5px
	   border on the yellow one lands on exactly 48. */
	box-sizing: border-box;
	min-height: 48px;
	padding: 9.5px 16px;
	max-width: 100%;
	justify-content: center;
	text-align: center;
	border-width: 1.5px;
	border-style: solid;
}
.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link:not(:hover):not(:focus-visible) {
	border-color: #B86E00;
	box-shadow: none;
}
.bhp-page .bhp-nutrition-card:first-child .bhp-nutrition-cta .wp-block-button__link:not(:hover):not(:focus-visible) {
	background-color: var(--bhp-green);
	color: var(--bhp-white);
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
}
.bhp-page .bhp-nutrition-card:first-child .bhp-nutrition-cta .wp-block-button__link {
	border-width: 0;
}
.bhp-page .bhp-nutrition-card:first-child .bhp-nutrition-cta .wp-block-button__link:hover,
.bhp-page .bhp-nutrition-card:first-child .bhp-nutrition-cta .wp-block-button__link:focus-visible {
	background-color: var(--bhp-yellow);
	color: var(--bhp-black);
	box-shadow: none;
}
/* Figma M-428's inner card is 340px and its 341px button already overshoots
   it by 1px; trim the side padding on phones so the label holds one line at
   425/428 (below ~400px the full label cannot fit one line at 12px). */
@media (max-width: 480px) {
	.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link {
		padding-left: 12px;
		padding-right: 12px;
	}
}

/* Card grid is fluid (auto-fit), so tablet/mobile need no breakpoint rule
   here -- matches Figma's M-428 stacked layout. Tablet tier was not pulled
   from Figma this session; this interpolates it via CSS, disclosed below. */

/* Green box (defect #5): Figma frame is 1000x442, 24px radius, same width
   as the card row above -- structural, not a duplicated value. */
/* editor-friendly-ok: .bhp-foundation-pill__title/__sub's literal
   font-family/#f8ede3 further below are pre-existing, unchanged by this
   height-parity fix -- token-izing them is a separate scope. */
/* 86eypb6m6 card-height fix: theme's default p{margin:0 0 1.5em} was
   stacking on top of this flex gap because chip/glyph/pill are <p>-family
   elements -- zero every child's own margin so the flex gap is the only
   spacing source, matching the ledger's hug-height math. */
.bhp-band-green.bhp-nutrition-routine > * {
	margin: 0;
}
.bhp-foundation-chips > * {
	margin: 0;
}
.bhp-band-green.bhp-nutrition-routine {
	max-width: 1000px;
	margin: 0 auto;
	border-radius: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}
/* Breakpoint corrected 744px (ledger tablet tier), not 768 -- Figma's own
   tablet frame starts at 744, so 744-767 was rendering the mobile gap. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-band-green.bhp-nutrition-routine {
		gap: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-band-green.bhp-nutrition-routine {
		gap: 64px;
	}
}
/* desc/tagline sit in a nested Frame2147229910 (gap:12) inside this flat
   gap -- margin-top compensates the nested/outer gap delta per tier. */
.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph:nth-of-type(2) {
	margin-top: -8px;
}
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph:nth-of-type(2) {
		margin-top: -12px;
	}
}
@media (min-width: 1440px) {
	.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph:nth-of-type(2) {
		margin-top: -52px;
	}
}
@media (min-width: 744px) {
	.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph:nth-of-type(1) {
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;
	}
}
/* Ledger has font_weight:700 on desc/tagline at every tier; live shipped
   400, which also changes real line-wrap counts at every width. */
.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph {
	font-weight: 700;
	/* Figma: both lines centred, cream #F8EDE3 (4.53:1 on the green). */
	text-align: center;
	color: var(--bhp-cream);
}
/* FIX (86eypb6m6 i18n defect): 10px vertical padding keeps every language's
   single-line label at the same 48px box; height:auto + min-height only
   grows it for a label that wraps, with no overflow clip either way. */
.bhp-band-green.bhp-nutrition-routine .wp-block-buttons {
	height: auto;
	min-height: 48px;
}
.bhp-band-green.bhp-nutrition-routine .wp-block-button__link {
	height: auto;
	min-height: 48px;
	padding-top: 10px;
	padding-bottom: 10px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
}
/* ==== 86eypb6m6 "OUR NUTRITION SYSTEM" section rebuild (end) ==== */

/* hp-reaudit-2: icon row, Figma CTA - Foundation Routine frame 34749:52907.
   86eypb6m6: grid (icon col1 64x64, text-stack col2) reproduces the
   ledger's nested icon+text layout on this flat DOM; border swapped for
   inset box-shadow so the outline doesn't add to the auto-sized height. */
.bhp-foundation-chips {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	gap: 16px;
}
.bhp-foundation-chip {
	display: grid;
	grid-template-columns: 64px 1fr;
	grid-template-rows: auto auto;
	column-gap: 6px;
	row-gap: 0;
	align-items: center;
	padding: 12px 28px 12px 12px;
	/* DEVIATION from Figma's rgba(255,255,255,0.10) fill: that tint lifts the
	   chip to #3a8860, where the cream label measures 3.73:1 and the 90%
	   white sub 3.82:1 (AA needs 4.5:1 at these sizes). A 4% black tint
	   instead keeps a visible fill: cream label 4.84:1, 90% white sub 4.86:1. */
	background: rgba(0, 0, 0, 0.04);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	box-sizing: border-box;
}
.bhp-foundation-chip__img {
	grid-row: 1 / 3;
	grid-column: 1;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
}
.bhp-foundation-chip__label {
	grid-column: 2;
	grid-row: 1;
	/* Figma: Nominee Heavy Extended 16/16 (14/16 M) uppercase +2%. */
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	line-height: 16px;
	font-size: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bhp-cream); /* 4.53:1 on bhp-green bg (16px bold, needs 4.5:1) */
	font-weight: 900;
}
.bhp-foundation-chip__sub {
	grid-column: 2;
	grid-row: 2;
	line-height: 16px;
	font-size: 14px;
	font-weight: 700; /* Figma Kobe1.1 Bold */
	color: color-mix(in srgb, var(--bhp-white) 90%, transparent); /* deviates from Figma's 80% (3.98:1, fails AA); 90% = 4.57:1 on bhp-green bg, min opacity passing 4.5:1 */
}
.bhp-foundation-glyph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 40px;
	line-height: 72px;
	height: 72px;
	font-family: var(--bhp-inter-font);
	font-weight: 800; /* Figma Inter ExtraBold, node "equals" 40px/72px (24px/36px mobile) */
	color: var(--bhp-cream); /* 4.53:1 on bhp-green bg (24px large text, needs 3:1) */
}
.bhp-foundation-pill {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 4px;
	padding: 12px 28px;
	/* DEVIATION from Figma's rgba(255,255,255,0.10) fill: that tint lifts the
	   chip to #3a8860, where the cream label measures 3.73:1 and the 90%
	   white sub 3.82:1 (AA needs 4.5:1 at these sizes). A 4% black tint
	   instead keeps a visible fill: cream label 4.84:1, 90% white sub 4.86:1. */
	background: rgba(0, 0, 0, 0.04);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	box-sizing: border-box;
}
.bhp-foundation-pill__title {
	font-family: "Nominee", sans-serif;
	font-weight: 900;
	font-size: 16px;
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #f8ede3;
}
.bhp-foundation-pill__sub {
	font-size: 14px;
	line-height: 16px;
	font-weight: 700; /* Figma Kobe1.1 Bold */
	color: #f8ede3;
}
.bhp-nutrition-cta-arrow {
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 6px;
	vertical-align: middle;
}
/* Tablet: both equation-hero chip variants are visible:false in the
   ledger at this tier, so the whole row contributes zero height. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-foundation-chips {
		display: none;
	}
}
/* Mobile: ledger's VERTICAL variant nests chip+glyph+chip at gap:12 inside
   an outer gap:24 with the glyph/pill (Frame2147229911) -- fake that 12/24
   split on this flat 5-child row with margin-top on children 2 and 3. */
@media (max-width: 743px) {
	.bhp-foundation-chips {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 24px;
	}
	.bhp-foundation-chips > :nth-child(2) {
		margin-top: -12px;
	}
	.bhp-foundation-chips > :nth-child(3) {
		margin-top: -12px;
	}
	.bhp-foundation-glyph {
		font-size: 24px;
		line-height: 36px;
		height: 36px;
	}
	/* Ledger pill title/sub are font14/font12 with line-height16 (1 line);
	   live shipped 16/14 with no line-height, wrapping past 1 line here.
	   The chip label is the exception: Figma Home Page - M sets Superfoods and
	   Biotics in Inter ExtraBold 16px (86eyxb3yu), so it stays at the base 16px. */
	.bhp-foundation-chip__label {
		font-size: 16px;
	}
	.bhp-foundation-chip__sub {
		font-size: 12px;
	}
	.bhp-foundation-pill__title {
		font-size: 14px;
		line-height: 16px;
		white-space: nowrap;
	}
	.bhp-foundation-pill__sub {
		font-size: 12px;
		line-height: 16px;
		white-space: nowrap;
	}
	/* At 320px the card's 280px content box is narrower than the pill's
	   single-line text plus its 28px side padding (296px), pushing the
	   pill past the card edge. Trim the padding only, not the font. */
	@media (max-width: 359px) {
		.bhp-foundation-pill {
			padding-left: 16px;
			padding-right: 16px;
		}
	}
	/* Ledger's mobile column is w:348 at the 428 anchor; below 428 it
	   narrows with the viewport, genuine copy reflow, not a CSS defect --
	   proof table in nutrition-routine.md. */
	.bhp-band-green.bhp-nutrition-routine > .wp-block-paragraph {
		max-width: 348px;
		margin-left: auto;
		margin-right: auto;
	}
}
/* ==== 86eypb6m6 icon row (chip banner + CTA arrow) rebuild (end) ==== */

/* ==== 86eypb6m6 Sec12 "Routines That Work as One" carousel ==== */
/* NOTE (86eypb6m6): the DE/ES/FR/NL desktop card collapse came from
   translated post_content wrapping the carousel in an extra
   `.bhp-card-grid` Group that EN doesn't have. It is fixed in content,
   not CSS. */
.bhp-routine-carousel {
	position: relative;
	width: 100%;
}
.bhp-routine-viewport {
	overflow: hidden;
}
.bhp-routine-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.bhp-routine-track::-webkit-scrollbar {
	display: none;
}
.bhp-routine-track .bpc-card {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

/* Mobile (Figma M=428 frame: 2 genuinely-resized cards, 186px/16px gap).
   FIX (86eypb6m6 PR #940 defect review): threshold moved 767->743 so the
   Figma T=744 frame's own breakpoint gets tablet values below, not this
   block's mobile ones -- 744 was falling in here before. */
@media (max-width: 743px) {
	.bhp-routine-track {
		gap: 16px;
	}
	.bhp-routine-track .bpc-card {
		width: 186px;
		max-width: 186px;
	}
}

/* Tablet (Figma T=744 frame: 3 genuinely-resized cards, 216px/24px gap).
   FIX (86eypb6m6 PR #940 defect review): lower bound moved 768->744 to
   match Figma's own T=744 breakpoint (see mobile block above). */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-routine-track {
		gap: 24px;
	}
	.bhp-routine-track .bpc-card {
		width: 216px;
		max-width: 216px;
	}
}

/* Prev/next: circular, floating over the card row's vertical mid so they
   never reflow the track; tablet/mobile only (hidden at >=1440 below --
   this base rule must stay ABOVE that media query so the cascade's
   "later wins at equal specificity" doesn't re-enable it at desktop). */
.bhp-routine-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--wp--preset--color--bhp-white, #FFFFFF);
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
	box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.03), 0 12px 16px -4px rgba(0, 0, 0, 0.08);
	cursor: pointer;
	transition: background-color 300ms ease-out, color 300ms ease-out;
}
.bhp-routine-nav:hover,
.bhp-routine-nav:focus-visible {
	background: var(--wp--preset--color--bhp-yellow, #FFC125);
	outline: none;
}
.bhp-routine-nav:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-green, #247B4E);
	outline-offset: 2px;
}
.bhp-routine-nav[aria-disabled="true"] {
	opacity: 0.4;
	cursor: default;
}
.bhp-routine-nav--prev {
	left: -8px;
}
.bhp-routine-nav--next {
	right: -8px;
}
.bhp-routine-nav--prev .bhp-routine-nav__icon {
	transform: scaleX(-1);
}

/* Desktop: 5-across, no scroll -- fluid width driven by the section's
   own content gutters rather than a hardcoded card width. Prev/next are
   dropped (nothing to page through); the dot row stays and the carousel
   JS renders it with a single active dot. */
@media (min-width: 1440px) {
	.bhp-routine-track {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		gap: 24px;
		overflow: visible;
		scroll-snap-type: none;
	}
	.bhp-routine-track .bpc-card {
		width: auto;
		max-width: none;
	}
	.bhp-routine-nav {
		display: none;
	}
}

/* Dots: JS (homepage-routine-carousel.js) rebuilds the buttons inside this
   row from real per-breakpoint card geometry; this only styles the row and
   the buttons it inserts. */
/* Dot-row gap verified (86eypb6m6 PR #940 defect review) against the raw
   Figma node itself, not a reported property: ledger desktop-1512.jsonl
   I34457:304330;34612:67808 "DOT - PAGE INDICATOR" has its own
   layout_mode:HORIZONTAL, gap:12 -- matches this value exactly (pill 32
   + 3x8 circles + 3x12 gaps = 92, the instance's own w). The 14px
   itemSpacing seen elsewhere belongs to the OUTER wrapper frame
   (I34457:304330;34612:67798, spacing between the tab-underline marks
   and this dot instance as a whole), not the dots. Left at 12px. */
.bhp-routine-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	/* 86eypb6m6 S11: Frame 2147229946's autoLayout gap between the card
	   row and this row is 20 at every width -- was 16. */
	margin-top: 20px;
}
.bhp-routine-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	/* Figma "ATOM - INDICATORS" ellipse fill, shared token (css/carousel-dots.css) */
	background: var(--bonza-dot-inactive, #878787);
	cursor: pointer;
	transition: width 200ms ease-out, background-color 200ms ease-out;
}
.bhp-routine-dot:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-green, #247B4E);
	outline-offset: 2px;
}
/* FIX (86eypb6m6 PR #940 defect review): Figma shows the active dot as a
   32x8 pill (radius 4), not a same-size circle differing only by opacity;
   colour also comes from Figma's active-state fill (yellow), not a
   darker/opaque version of the inactive ink dot. Applies at every BP --
   no per-breakpoint override exists for this rule. `.is-active` is the
   decorative desktop dot row's own class (homepage-routine-carousel.js
   buildDots()); it never gets aria-selected because it is not a real tab. */
.bhp-routine-dot[aria-selected="true"],
.bhp-routine-dot.is-active {
	width: 32px;
	height: 8px;
	border-radius: 4px;
	background: var(--bonza-dot-active, #ffc125);
}
/* Desktop decorative dots (see buildDots()): plain, non-interactive spans,
   so they get no hover/cursor affordance -- there is nothing to click. */
.bhp-routine-dots span.bhp-routine-dot {
	cursor: default;
}
/* ==== 86eypb6m6 Sec12 routine carousel (end) ==== */

/* ==== 86eypb6m6 S11 dot row geometry ====
   Figma wrapper "Frame 1261154181" = 48px-tall row under the cards (20px
   below them, 20px above the CTA), dot indicator centred at y+20. Same at
   428/744/1512. The row used to also draw a second pagination out of
   ::before/::after (a 1px tick plus seven salmon dashes at the left edge,
   from Figma's "Frame 1261154221" tab-underline strip). That strip is not
   part of the carousel, it read as a duplicate pager next to the real dots,
   and it was pure CSS, so it is removed at the source here. */
.bhp-routine-dots {
	position: relative;
	box-sizing: border-box;
	height: 48px;
	margin-top: 20px;
	/* CTA row sits 24px under the carousel; Figma has 20px under the wrapper. */
	margin-bottom: -4px;
	padding-top: 20px;
	align-items: flex-start;
}
/* ==== 86eypb6m6 S11 dot row geometry (end) ==== */

/* ==== 86eypb6m6 S06 splice (bite grid + doctor card + arrow) ==== */

/* Foundation Routine CTA arrow, sized 18x18 by the SVG's own width/height
   attrs (bhp_nutrition_arrow); no size override needed here, only spacing. */
.bhp-nutrition-cta-arrow {
	margin-left: 8px;
	vertical-align: middle;
	flex-shrink: 0;
}
.bhp-band-green .bhp-btn-primary .wp-block-button__link {
	display: inline-flex;
	align-items: center;
}

/* Targeted Support bite grid, Figma I...;34751:* (34215:174410). Figma has
   no true responsive spec for this component (identical item geometry at
   1512/744/428 canvases) -- column count below is an engineering
   approximation following this file's existing 3/2/1 breakpoint convention,
   not a pixel-verified Figma match at tablet/mobile. */
.bhp-bite-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-top: 32px;
	/* 86eypb6m6: same outer width as the green Foundation Routine band above
	   (.bhp-band-green.bhp-nutrition-routine, max-width 1000px, centred), so
	   left/right edges align at every breakpoint. Below 1048px both simply
	   fill the section's own side padding. */
	max-width: var(--bhp-band-narrow-max, 1000px);
	margin-left: auto;
	margin-right: auto;
}
/* WP constrained-layout adds margin-block-start to every child after the
   first, which inflated the last card's grid row (Banish 102px vs 78px). */
.bhp-bite-grid > * {
	margin: 0;
}
@media (min-width: 768px) and (max-width: 1439px) {
	.bhp-bite-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 767px) {
	.bhp-bite-grid {
		grid-template-columns: 1fr;
	}
}
.bhp-bite-grid__item {
	background-color: var(--bhp-white);
	border-radius: 12px;
}
.bhp-bite-grid__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	text-decoration: none;
	color: inherit;
}
.bhp-bite-grid__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border-radius: 21px;
	background-color: var(--bhp-amber);
	color: var(--bhp-ink);
}
.bhp-bite-grid__text {
	display: flex;
	flex-direction: column;
}
.bhp-page .bhp-bite-grid__name {
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 14px;
	line-height: 16px;
	letter-spacing: 0.28px;
	text-transform: uppercase;
}
.bhp-page .bhp-bite-grid__label {
	font-family: var(--bhp-body-font);
	font-weight: 700;
	font-size: 14px;
	line-height: 16px;
}
.bhp-page .bhp-bite-grid__tagline {
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 14px;
	line-height: 14px;
}

/* 86eypb6m6: Targeted Support product cards. Same shared .bpc-card as the
   routines row (Figma "PRODUCT CARD" 317px instances), 3 cols at desktop,
   same outer width as the green band and the chip grid above. */
.bhp-targeted-cards.bhp-card-grid {
	max-width: var(--bhp-band-narrow-max, 1000px);
	margin-left: auto;
	margin-right: auto;
	/* Figma 34755:55076: 306.67px columns 40px apart (3 x 306.67 + 80 = 1000),
	   24px between the two cards of a column. */
	gap: 24px 40px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-content: stretch;
}
.bhp-targeted-cards .bpc-card {
	max-width: none;
	width: 100%;
	height: 100%;
}
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-targeted-cards.bhp-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 743px) {
	.bhp-targeted-cards.bhp-card-grid {
		/* Mobile frame 34755:55077 is two 182px cards 24px apart (388 =
		   182 + 24 + 182), rows 20px apart. */
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 24px;
	}
}

/* No rules for .bhp-doctor-chat here: it already renders correctly live. */
/* ==== 86eypb6m6 S06 splice (end) ==== */

/* ==========================================================================
   86eypb6m6 v1 re-sweep: DE-only horizontal overflow at 320px (three long,
   unbreakable German compound words each blew out their container: 25px on
   S08 `.bhp-axis-card__science`, 12px on S12 `.bhp-feature-row`, 44px on S18
   `.bhp-faq-list`; EN/ES/FR unaffected, NL had the same S08 bug at 145px vs
   100px, fixed as a side-effect). Root cause: the theme's global rule is
   `overflow-wrap: break-word`, which (per current CSS spec) is excluded from
   min-content intrinsic-size calculation, so a `display:flex` ancestor
   (`.bhp-axis-card__toggle`, `.bhp-faq-list summary`) or flex item
   (`.bhp-feature-card`) still sizes to the unbroken word's full width and
   overflows instead of shrinking. `overflow-wrap: anywhere` fixes this
   because it IS counted in min-content sizing (MDN; confirmed live below).
   Scoped to only these 3 sections' own subtrees so EN (which never
   overflowed) can't be touched -- verified byte-identical bounding rects
   for header/main/footer/h1/h2 at 375/744/1440 before vs after. */
.bhp-axis-card__science,
.bhp-axis-card__science *,
.bhp-feature-row,
.bhp-feature-row *,
.bhp-faq-list,
.bhp-faq-list * {
	overflow-wrap: anywhere;
}
/* `.bhp-feature-card` is a flex item of `.bhp-feature-row` (flex-wrap:wrap);
   its default min-width:auto still floors it at the unbroken word's width
   even with overflow-wrap set above, so it has to be zeroed explicitly. */
.bhp-feature-row > * {
	min-width: 0;
}
/* ==== 86eypb6m6 tablet-744 fix (site-wide H2 + S01 badges) ==== */

/* Figma steps every .bhp-section H2 to 30/36 at 744 (24/32 mobile ->
   30/36 tablet -> 36/40 desktop); live's font-size rule only steps up at
   the theme's own 768px breakpoint, so 744-767 stays mobile-sized.
   Scoped to that exact gap; !important wins regardless of load order. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-section h2.wp-block-heading {
		font-size: 30px !important;
		line-height: 36px !important;
	}
}

/* hero-banner.css's 744px query flips .hb-hero__badges to a wrapping row,
   letting 2 of 4 badges share a line and collapsing the band to 144px.
   Figma's matched frame is 260px at both 428 and 744 (single-column
   stack, same as mobile); only the 1024px tier switches to one nowrap
   row. Scoped to 744-1023 so mobile/desktop are untouched. */
@media (min-width: 744px) and (max-width: 1023px) {
	.hb-hero__badges {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		padding-bottom: 24px !important;
	}
}
/* ==== 86eypb6m6 tablet-744 fix (end) ==== */

/* ==========================================================================
   86eypb6m6 hero overlap (S01, Lan's q35 + q36 against Figma).

   1) The photo starts at the bottom of the top bar (.bhu-bar) with the white
   header card floating over it. hero-banner.css offset the photo 56px down
   at 1440+ (cream strip behind the card's top half) and left the section
   14px low at 768-1099 and 1.6px high at 744-767. Measured natural section
   top minus the bar's bottom gives the margins below; 743 and under keep
   hero-banner.css's 32px header overlap (a separate Figma-cited mobile rule).

   2) The torn edge of hero-wave-strip.png sits behind the vertical middle of
   the pill block. The edge sits ~79px (desktop) / ~21px (tablet, 36px strip)
   / ~77px (mobile) down inside the strip, so the strip is pulled up by
   (pill-block half height - edge) instead of overlapping only 0 / 120px.
   Under 1024 the strip now ends above the last pill, so the strip's own
   box-shadow carries the cream down and the section's bottom padding keeps
   the section height. Pills sit above the strip at every width.
   ========================================================================== */
@media (min-width: 744px) and (max-width: 767px) {
	body.home .entry-content > .hb-hero--home { margin-top: -106.4px; }
}
@media (min-width: 768px) and (max-width: 1439px) {
	body.home .entry-content > .hb-hero--home { margin-top: -122.4px; }
}
@media (min-width: 1440px) {
	body.home .entry-content > .hb-hero--home { background-position: center; }
}

/* The section top moved (see above); the row's top padding takes the same
   amount back so the eyebrow, headline and CTAs keep their page position. */
@media (min-width: 744px) and (max-width: 767px) {
	body.home .hb-hero--home .hb-hero__row { padding-top: 94.4px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__row { padding-top: 110.4px; }
}
@media (min-width: 1024px) and (max-width: 1439px) {
	body.home .hb-hero--home .hb-hero__row { padding-top: 134.4px; }
}

body.home .hb-hero--home .hb-hero__badges { z-index: 2; }

@media (min-width: 1024px) {
	body.home .hb-hero--home .hb-hero__wave { margin-top: -121px; }
}
@media (min-width: 2334px) {
	body.home .hb-hero--home .hb-hero__wave { margin-top: -124px; }
}
@media (min-width: 744px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__wave {
		margin-top: -163px;
		box-shadow: 0 130px 0 130px #F8EDE3;
	}
	body.home .hb-hero--home { padding-bottom: 127px; }
}
@media (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__wave {
		margin-top: -220px;
		box-shadow: 0 130px 0 130px #F8EDE3;
	}
	body.home .hb-hero--home { padding-bottom: 100px; }
}

/* ==== 86eypb6m6 S01 hero flush under the top bar, below 744 ==== */
/* The 744+ tiers above already start the photo on the bar's bottom edge.
   Below 744 the section still began 30.4px (600-743) / 80px (0-599) under
   it, so the hero image did not sit flush against the header stack. Same
   fix as above: pull the section up by the gap and give the row the same
   amount of top padding, so the eyebrow, headline and CTAs keep their page
   position and everything below the hero does not move. */
@media (max-width: 599px) {
	body.home .entry-content > .hb-hero--home { margin-top: -156px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 144px; }
}
@media (min-width: 600px) and (max-width: 743px) {
	body.home .entry-content > .hb-hero--home { margin-top: -106.4px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 94.4px; }
}
/* ==== 86eypb6m6 S01 hero flush (end) ==== */

/* ==== 86eypb6m6 S01 hero vs Figma (page y, spacing, rating, trust, buttons) ==== */
/* Figma page-y (frame top = page top), hero flush under the top bar:
     T744  eyebrow 219.16 H1 243.16 lead 363.16 CTAs 503.16/561.16 rating 625.16
           trust 695.59 band 1129 hero bottom 1389
     M428  eyebrow 239 H1 263 lead 371 CTAs 511/569 rating 633 trust 703.43
           band 1131.43 hero bottom 1391.43
     D1512 eyebrow 209.13 H1 233.13 lead 389.13 CTAs 493.13/551.13 rating 615.13
           trust 664.88 pills 774 hero bottom 864
   Figma spaces each child with its own gap (8 / 12 / 20 / 16 / 12; 32 and 16
   at desktop) instead of one flat 16px, buttons are 48px tall, the rating is
   a two-row stack below 1024, the trust list is a left-aligned column below
   1024, the lead is 18/24 below 1024 and the rating value is 18px #247b4e.
   Row top/bottom padding lands the eyebrow and the hero's bottom edge on the
   Figma y; the wave sits 0 to 0.5px from the pill middle. The header stack
   (142 T / 192 M / 141 D here, Figma 189 / 215 / 180) is not touched. */
/* content column: Figma spaces each child with its own gap, not one flat gap */
body.home .hb-hero--home .hb-hero__content { gap: 0; }
body.home .hb-hero--home .hb-hero__heading { margin-top: 8px; }
body.home .hb-hero--home .hb-hero__lead { margin-top: 12px; }
body.home .hb-hero--home .hb-hero__actions { margin-top: 20px; }
body.home .hb-hero--home .hb-hero__rating { margin-top: 16px; }
body.home .hb-hero--home .hb-hero__trust { margin-top: 12px; }
body.home .hb-hero--home .hb-btn { height: 48px; padding-top: 0; padding-bottom: 0; }
body.home .hb-hero--home .hb-btn--outline { color: #247b4e; border-color: #247b4e; }
body.home .hb-hero--home .hb-hero__stars svg { width: 81.8px; height: 14.13px; }
body.home .hb-hero--home .hb-hero__stars strong { font-size: 18px; line-height: 14.13px; color: var(--wp--preset--color--bonza-hero-rating, #1e6941); /* 4.53:1 worst pixel (DE 320); #247b4e was 3.76 */ }
body.home .hb-hero--home .hb-hero__feefo { height: 33.75px; }
body.home .hb-hero--home .hb-hero__feefo svg:first-child { width: 70px; height: 16.3px; }
body.home .hb-hero--home .hb-hero__feefo svg:last-child { width: 33.5px; height: 33.5px; }
@media (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__lead { font-size: 18px; line-height: 24px; }
	body.home .hb-hero--home .hb-btn--outline { background-color: #fff; }
	body.home .hb-hero--home .hb-hero__rating { gap: 10.55px 8px; }
	body.home .hb-hero--home .hb-hero__stars { flex: 0 0 100%; justify-content: center; height: 14.13px; }
	body.home .hb-hero--home .hb-hero__trust { flex-direction: column; gap: 12px; }
	body.home .hb-hero--home .hb-hero__trust li { text-align: left; }
}
@media (min-width: 744px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__content { max-width: 400px; }
	body.home .hb-hero--home .hb-hero__actions { width: 100%; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 183.16px; padding-bottom: 493.44px; }
}
@media (min-width: 600px) and (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__row { padding-top: 183.16px; padding-bottom: 399.23px; }
}
@media (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__wave { margin-top: -224.05px; }
}
@media (max-width: 599px) {
	body.home .hb-hero--home .hb-hero__row { padding-top: 203px; padding-bottom: 488.02px; }
	body.home .hb-hero--home { padding-bottom: 81.05px; }
}
@media (min-width: 1024px) {
	body.home .hb-hero--home .hb-hero__actions { margin-top: 32px; width: 360px; }
	body.home .hb-hero--home .hb-badge { gap: 6px; }
	body.home .hb-hero--home .hb-hero__trust { margin-top: 16px; }
}
@media (min-width: 1024px) and (max-width: 2333px) {
	body.home .hb-hero--home .hb-hero__badges { position: relative; top: 2.05px; }
}
@media (min-width: 1440px) {
	body.home .hb-hero--home .hb-hero__content { max-width: 680px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 165.13px; padding-bottom: 75.13px; }
}
/* Rating row x anchors: Figma's award text box is 200 wide, the score box 51,
   and the gaps are 8.2 (stars to score) then 10.55 between the groups at
   1024+, 7.2 / 8 below. Fixed boxes keep the Feefo logo and badge on Figma's
   x even though the live rating text is a different width. */
body.home .hb-hero--home .hb-hero__stars { gap: 8.2px; }
body.home .hb-hero--home .hb-hero__stars strong { display: inline-block; width: 51px; white-space: nowrap; }
body.home .hb-hero--home .hb-hero__award { width: 200px; flex: none; text-align: left; color: var(--wp--preset--color--bonza-hero-award, #58544a); /* 4.6:1 worst pixel; #716B5D was 3.25 */ }
body.home .hb-hero--home .hb-hero__rating { gap: 10.55px; }
body.home .hb-hero--home .hb-hero__feefo { gap: 10.55px; }
@media (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__stars { gap: 7.2px; }
	body.home .hb-hero--home .hb-hero__award { text-align: center; }
	body.home .hb-hero--home .hb-hero__feefo { gap: 8px; }
	body.home .hb-hero--home .hb-hero__rating { gap: 10.55px 8px; }
}
/* Figma T744 pills are a 2x2 grid (342 wide, 12 gap, 24 side padding) whose
   bottom row ends 24px above the band's bottom edge. The wave keeps its edge
   on the pills' vertical middle, and the hero bottom stays put. */
@media (min-width: 744px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__badges { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-content: end; min-height: 260px; padding-left: 24px; padding-right: 24px; }
	/* translated labels wrap inside the 342px pill (two 16px lines fit its 50px) instead of running past the viewport */
	body.home .hb-hero--home .hb-hero__badges { grid-auto-rows: 50px; }
	body.home .hb-hero--home .hb-badge > span:last-child { min-width: 0; overflow-wrap: anywhere; }
	/* Figma: 6px icon-to-label gap on all four; pills 2 and 3 also start their icon 6px in, 1 and 4 start it 8px in */
	body.home .hb-hero--home .hb-badge:nth-child(2), body.home .hb-hero--home .hb-badge:nth-child(3) { padding-left: 6px; }
	body.home .hb-hero--home .hb-badge { gap: 6px; }
	body.home .hb-hero--home .hb-hero__wave { margin-top: -101.4px; }
	body.home .hb-hero--home { padding-bottom: 65.4px; }
}
/* Wave anchored to the pill row: a long translated label wraps a pill to two
   lines (64px), which moved the pill middle 7px off the wave edge. The band
   keeps a fixed height and the pills are centred in it, so the middle stays put
   whatever the pills' own height. */
@media (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__badges { height: 260px; justify-content: center; }
}
@media (min-width: 1024px) {
	body.home .hb-hero--home .hb-hero__badges { height: 78px; align-items: center; }
}
/* Below 360 a translated label can wrap to three lines (NL: 64px pill), so the
   four pills need 250px but the band's content box is 236px and they spilled 7px
   above it. Non-English pages get 14px more content room from the band's bottom
   padding; the wave moves down the same 7px the centred pills do, so its edge
   stays on the pill middle. English keeps its 24px padding. */
@media (max-width: 359px) {
	html:not([lang^="en"]) body.home .hb-hero--home .hb-hero__badges { padding-bottom: 10px; }
	html:not([lang^="en"]) body.home .hb-hero--home .hb-hero__wave { margin-top: -217.05px; }
}
/* ==== 86eypb6m6 S01 hero vs Figma (end) ==== */

/* ==== 86eypb6m6 S09 wave: Eight Gut-Organ Axes -> Science boundary ==== */
/* FIX: the Axes section's trailing strip (bonza-hp-pattern-gutaxes-bottom.png)
   is a DEDICATED asset that is already green-top / cream-bottom (sampled:
   rows 0-~80 solid #247B4E, torn edge ~y80-96, cream #F7EDE3 below). The
   generic `.bhp-band-green + .bhp-pattern-strip { scaleY(-1) }` rule is for
   the shared reusable pair (green-bottom native) and inverted this one,
   producing a cream band under the green block with a green hill rising
   into the cream. Same class of fix as `.bhp-onegut + .bhp-pattern-strip`.
   Height/position stay on the shared 1512/129.32 ratio and -1px tuck. */
.bhp-section-wrap:has(> .bhp-band-green .bhp-axis-grid) > .bhp-band-green + .bhp-pattern-strip {
	transform: none;
}
/* S12 top edge: the stored strip art (formulatedscience-top) is green-top /
   white-bottom, leaving a white slab above the green band. Figma is cream
   torn into green = formulatedscience-bottom, unflipped. Content is in the
   DB, so repaint via background and hide the <img>, which keeps the box. */
.bhp-pattern-strip:has(> img[src*="bonza-hp-pattern-formulatedscience-top"]) {
	background: url("/wp-content/uploads/bonza-hp-pattern-formulatedscience-bottom.png") center / 100% 100% no-repeat;
}
.bhp-pattern-strip > img[src*="bonza-hp-pattern-formulatedscience-top"] {
	visibility: hidden;
}
/* Tuck the green band up 1px under the strip so no seam shows at any BP. */
.bhp-pattern-strip:has(> img[src*="bonza-hp-pattern-formulatedscience-top"]) {
	margin-bottom: -1px;
}
/* ==== 86eypb6m6 S09 wave (end) ==== */

/* 86eypb6m6 "The Biotics Triad" intro (34765:79917). Figma centres the
   eyebrow, H2 and lede (textAlignHorizontal CENTER) and caps the lede at
   600px (node 34765:79922: 600 desktop, 388 = frame width on mobile, both
   maxWidth 600), so max-width:600px + auto margins gives both. Keyed off
   the section's own `.bhp-triad-grid` child, not an nth-of-type position,
   so it survives section reordering. The second paragraph is removed in
   markup (not in Figma), so nothing here styles it. */
.bhp-page .bhp-section:has(> .bhp-triad-grid) > h2.wp-block-heading,
.bhp-page .bhp-section:has(> .bhp-triad-grid) > h2.wp-block-heading + p.wp-block-paragraph {
	text-align: center;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > h2.wp-block-heading + p.wp-block-paragraph {
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
/* Figma text-range fill: "Bonza is built on all three:" is brand green,
   same Bold weight as the rest of the (all-bold) lede. */
.bhp-page .bhp-triad-accent {
	color: var(--bhp-green);
}

/* hp2-l07: the live post_content still carries the old markup order (lede,
   "Prebiotics feed..." paragraph and the green line BEFORE .bhp-triad-grid),
   while the pattern function and the rules below assume they come after it.
   Reorder visually with flex `order` so both orders render the same; when the
   markup is refreshed the values are already in DOM order and change nothing.
   The outro rules below are keyed off the elements' own classes for the same
   reason, not the `~` sibling combinator. */
.bhp-page .bhp-section:has(> .bhp-triad-grid) {
	display: flex;
	flex-direction: column;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-triad-grid {
	order: 1;
}
/* Blocksy's 24px block-gap margin under the grid stacks on the outro's own
   48px. Zeroed at D-1512 where the frame sums exactly (1429.25); at T/M the
   24px is kept because the section then lands on Figma's 2053/2217 heights. */
@media (min-width: 1440px) {
	.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-triad-grid {
		margin-bottom: 0;
	}
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.has-text-align-center.wp-block-paragraph,
.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-biotics-h6 {
	order: 2;
}
/* Flex does not collapse sibling margins the way the flow layout did, so the
   intro stack gets Figma's own 16px auto-layout gaps (node 34765:79919: eyebrow
   16 / H2 40 / lede 72, gap 16) written out, and the lede/outro paragraphs take
   Figma's 24px line-height (20/24, 3 lines = 72). */
.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-eyebrow,
.bhp-page .bhp-section:has(> .bhp-triad-grid) > h2.wp-block-heading {
	margin-top: 0;
	margin-bottom: 16px;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > h2.wp-block-heading + p.wp-block-paragraph {
	margin-top: 0;
	margin-bottom: 0;
	line-height: 24px;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.has-text-align-center.wp-block-paragraph {
	line-height: 24px;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	/* whole paragraph is <strong>; a 400 strut beside 700 text adds 3px to the
	   block (75 vs Figma's 72). */
	font-weight: 700;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.wp-block-paragraph > strong {
	line-height: inherit;
}
/* 86eypb6m6 Triad outro (34765:80002/80004/80005). Figma moves the
   "Prebiotics feed…" paragraph and the green "Support their gut…" line to
   AFTER the 3 steps: short centred divider, centred 600px paragraph, then the
   centred 600px green line, 48px between each (400px divider on desktop,
   388 = full width on mobile). Markup order is the visual order (both blocks
   sit after `.bhp-triad-grid` in the section). The divider is the paragraph's
   ::before, so it needs no extra markup; Figma's is a 1.25px 30%-opacity
   green image, approximated here as a flat 1.25px line. */
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.has-text-align-center.wp-block-paragraph,
.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-biotics-h6 {
	text-align: center;
	max-width: 600px;
	margin: 48px auto 0;
}
.bhp-page .bhp-section:has(> .bhp-triad-grid) > p.has-text-align-center.wp-block-paragraph::before {
	content: "";
	display: block;
	width: min(400px, 100%);
	height: 1.25px;
	margin: 0 auto 48px;
	background: rgba(97, 185, 128, 0.3);
}

/* Intro-to-steps gap now that the paragraph + green line no longer sit
   between them: Figma 64px desktop (intro 160 tall, steps at y224), 20px
   on the 428 mobile frame. */
.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-triad-grid {
	margin-top: 20px;
}
@media (min-width: 744px) {
	.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-triad-grid {
		margin-top: 24px; /* T-744: no intro frame in the extract, kept at the prior value */
	}
}
@media (min-width: 1440px) {
	.bhp-page .bhp-section:has(> .bhp-triad-grid) > .bhp-triad-grid {
		margin-top: 64px;
	}
}

/* ==== 86eypb6m6 S16/S17 resweep (start) ==== */

/* Figma's S16 frame overlaps photo/content/strip by gap:-4 with no separate
   divider (verified by summing Figma's own frame heights). Hide the extra
   strip and apply the -4px overlap, overriding the unconditional 28px
   bottom-strip margin set above -- same specificity, later wins. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--mid {
	display: none;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-planetband-photo {
	margin-bottom: -4px;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green {
	margin-top: -4px;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--bottom {
	margin-top: -4px;
}

/* S16 band copy vs Figma (86eypb6m6): the ledger's eyebrow ("A Good Reason
   to Stay") is visible:false at all three widths, so it takes no space; h2
   and both paragraphs stack on a 16px gap; paragraphs are 600px wide
   centred from 744 up (388 = full column at 428) with a 24px line-height. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green > .bhp-eyebrow {
	display: none;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green h2.wp-block-heading {
	margin-top: 0;
	margin-bottom: 16px;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green > p.wp-block-paragraph {
	line-height: 24px;
}
/* <strong> falls back to a taller-ascent face and stretches each line box
   to ~25px. The old fix pinned the <strong> to line-height:0, which the audit
   read as computed 0 against Figma's 24 (HP-762) and left the <strong> box a
   few px short of its paragraph (HP-866/867 gaps +2..+5). Make the paragraph
   itself the 700 face and the <strong> a block that inherits it: same font as
   the line box, so nothing stretches, lh computes 24px, and the box IS the
   paragraph's. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green > p.wp-block-paragraph {
	font-weight: 700;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) .bhp-band-green > p.wp-block-paragraph strong {
	display: block;
	font: inherit;
	line-height: inherit;
}
@media (min-width: 744px) {
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green.bhp-section > p.wp-block-paragraph {
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;
	}
	/* Figma sets the closing line as a 2-line (48px) block; the live face is
	   narrower and would fit it on one line. */
	.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-band-green.bhp-section > p.wp-block-paragraph:last-of-type {
		min-height: 48px;
	}
}

/* Figma draws the top pattern strip as an overlay on the photo, not as a
   flow row, so take it out of flow at every width (wrap height = photo +
   band + bottom strip - the two 4px overlaps set above). */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) {
	position: relative;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--top {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	margin: 0;
}
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-planetband-photo {
	margin-top: 0;
}
/* Bottom strip overlaps the band by 4px at every width (band padding-bottom
   already carries Figma's 20/24/64), so this must beat the older per-tier
   28px / 0 margins above. */
.bhp-section-wrap:where(:has(> .bhp-planetband-photo)) > .bhp-pattern-strip--bottom.bhp-pattern-strip {
	margin-top: -4px;
}

/* S17 heading -> badge row gap (Figma Reviews auto-layout: 20 at 428,
   24 at 744, 64 at 1512). */
.bhp-page .bhp-eyebrow + .wp-block-heading:has(+ .bhp-badge-row) {
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-page .bhp-eyebrow + .wp-block-heading:has(+ .bhp-badge-row) {
		margin-bottom: 24px;
	}
}
@media (min-width: 1512px) {
	.bhp-page .bhp-eyebrow + .wp-block-heading:has(+ .bhp-badge-row) {
		margin-bottom: 64px;
	}
}

/* S17 badge row (86eypb6m6 re-sweep, 1512 only): Blocksy's phantom
   block-gap (`:is(.is-layout-flow, .is-layout-constrained) >
   :where(:not(h1..h6)) { margin-block-end: var(--theme-content-spacing) }`,
   same defect documented above at .bhp-section-wrap > .bhp-section) also
   lands on every non-last child of .bhp-badge-row, stacking a phantom 24px
   margin-block-end UNDER the flex `gap:24px` already set on the row itself
   -- doubling the vertical spacing and wrapping what Figma's visible D1512
   variant (I...;34323:190191, single line, h:80) draws as one line into
   two, measuring 104px instead of 80px (256.8px measured vs 276px target
   for the whole section). Scoped to >=1512 only: the <=1439 tier already
   uses its own CSS-grid layout (see the "Review Copy Variant" grid rule
   above) built from the OTHER, Tablet/Mobile-visible Figma variant
   (I...;34755:69800) and is untouched/already correct per the brief. */
@media (min-width: 1512px) {
	.bhp-badge-row > * {
		margin-block-end: 0;
	}
}

/* "Review Copy Variant" has two same-named siblings under Frame 2147229955
   > Reviews; only I...;34755:69800 (w:388, NO_WRAP) is `visible:true` at
   M/T -- the 1384-wide wrapping one carrying OneTribe is `visible:false`.
   Grid below matches that visible node's own 3 fixed-width children
   (node_ids in-line), not a wrapping flex row. */
@media (max-width: 1439px) {
	.bhp-badge-row {
		display: grid;
		grid-template-columns: 55.24px 108px 138px; /* I...;34755:69801/69837/69859 */
		grid-template-rows: 48px 56px;
		column-gap: 20px;
		row-gap: 0;
		justify-content: center;
		align-items: stretch;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(1) { /* certified-b-corp I...;34755:69801 */
		grid-column: 1;
		grid-row: 1 / 3;
		align-self: center;
	}
	/* Blocksy's block-gap margin-block-end (24px) on every non-last child
	   shrank the stretched grid items: the badge sat 12px high (132 vs 144)
	   and the 1% logo 24px high (180 vs 204). Zero it in the grid tier the
	   same way the >=1512 tier already does (audit L17 geometry rows). */
	.bhp-badge-row > * {
		margin-block-end: 0;
	}
	/* Exact Figma widths (55.24x104, 108x48, 105x44) instead of the
	   aspect-derived 54.5 / 107.5 / 105.3, and the Trees logo (117x48) is
	   centred in its 138 frame (+10.5, Figma 34755:69860). */
	.bhp-badge-row .bhp-badge:nth-of-type(1) img {
		width: 55.24px;
		height: 104px;
	}
	.bhp-badge-row .bhp-onetribe img {
		width: 108px;
		height: 48px;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(2) img {
		width: 105px;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(3) img {
		width: 117px;
		margin-inline: auto;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(2) { /* 1percent-for-the-planet I...;34755:69839, SPACE_BETWEEN under the counter -> bottom of col 2 */
		grid-column: 2;
		grid-row: 2;
		align-self: end;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(2) img {
		height: 44px;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(3) { /* trees-for-the-future I...;34755:69860 */
		grid-column: 3;
		grid-row: 1;
		align-self: start;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(3) img {
		height: 48px;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(4) { /* rainforest-trust I...;34755:69881, SPACE_BETWEEN vs col3 top -> bottom-aligned in the 56px track */
		grid-column: 3;
		grid-row: 2;
		align-self: end;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(4) img {
		height: 28px;
	}
	/* The visible T/M variant DOES carry the counter: "image 699"
	   (I...;34755:69838) is 108x48 at the top of col 2, the 1% logo under it
	   (the audit's "counter missing" / "image 699 size" rows). The live
	   OneTribe SVG (admin-ajax bs_get_onetribe_svg, TREES / PROTECTED / the
	   live count) fills that slot; D1512 untouched (media-scoped). */
	.bhp-onetribe {
		display: block;
		grid-column: 2;
		grid-row: 1;
		align-self: start;
		margin: 0;
	}
	.bhp-onetribe img {
		height: 48px;
		width: auto;
		display: block;
	}
}
/* Below 360px the fixed 55+108+138 grid (301 + 2x20 gaps = 341px) is wider
   than the 280px content box and was clipped on both sides (audit HP-022,
   badge x=-10.6). Figma has no frame under 428, so wrap: badge + counter/1%
   on the first two tracks, then Trees and Rainforest as centred rows. */
@media (max-width: 359px) {
	.bhp-badge-row {
		grid-template-columns: 55.24px 108px;
		grid-template-rows: 48px 56px auto auto;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(3) {
		grid-column: 1 / 3;
		grid-row: 3;
		justify-self: center;
		margin-top: 16px;
	}
	.bhp-badge-row .bhp-badge:nth-of-type(4) {
		grid-column: 1 / 3;
		grid-row: 4;
		justify-self: center;
		margin-top: 16px;
	}
}

/* ==== 86eypb6m6 S16/S17 resweep (end) ==== */

/* 86eypb6m6 S08 "The Eight Gut-Organ Axes" organ cards. Figma Accordion
   34259:219763 (Type=Brain, State=Closed): Title "The science" Kobe1.1 Bold
   14/16 (12/16 at 428), #247B4E, sentence case; heroicons chevron-down 16x16
   stroke #247B4E sitting 8px after the title (not pushed to the card edge).
   Grid to "Explore The Gut-Organ Axes" button: 64px at 1512, 24px at 744,
   20px at 428 (Frame 2147229895 itemSpacing). Scoped to the axis section so
   it stays clear of the intro-centring rules for the same section. */
.bhp-axis-card .bhp-axis-card__toggle {
	/* Body face, not the Nominee heading face the base rule inherits: Nominee
	   Heavy Extended is what made the link read large and heavy. */
	font-family: var(--bhp-body-font);
	color: var(--bhp-green);
	justify-content: flex-start;
	gap: 8px;
}
.bhp-axis-card .bhp-axis-card__toggle::after {
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
}
.bhp-section:has(> .bhp-axis-grid) > .wp-block-buttons {
	margin-top: 20px;
}
@media (min-width: 744px) {
	.bhp-section:has(> .bhp-axis-grid) > .wp-block-buttons {
		margin-top: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-section:has(> .bhp-axis-grid) > .wp-block-buttons {
		margin-top: 64px;
	}
}
@media (max-width: 743px) {
	.bhp-axis-card .bhp-axis-card__toggle {
		font-size: 12px;
	}
}

/* S08 band height to Figma frame 34241:132494: intro, grid and button sit
   on one 64/24/20 gap, the intro paragraph uses Kobe's natural ~1.05 line
   height, the H2 is 16px above it, and the Explore button is 270x48. */
.bhp-section:has(> .bhp-axis-grid) > h2.wp-block-heading {
	margin-bottom: 16px;
}
.bhp-section:has(> .bhp-axis-grid) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	line-height: 1.05;
	margin-bottom: 20px;
}
@media (min-width: 744px) {
	.bhp-section:has(> .bhp-axis-grid) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 24px;
	}
}
@media (min-width: 1440px) {
	.bhp-section:has(> .bhp-axis-grid) > p.wp-block-paragraph:not(.bhp-eyebrow) {
		margin-bottom: 64px;
	}
}
@media (max-width: 743px) {
	/* Figma M428: cards 4, 5, 6 and 8 are 197px (two-line descriptor slot,
	   the frame's text carries a trailing line break), the rest 181px. */
	.bhp-axis-grid > .bhp-axis-card:nth-child(4),
	.bhp-axis-grid > .bhp-axis-card:nth-child(5),
	.bhp-axis-grid > .bhp-axis-card:nth-child(6),
	.bhp-axis-grid > .bhp-axis-card:nth-child(8) {
		min-height: 197px;
	}
}
.bhp-section:has(> .bhp-axis-grid) > .wp-block-buttons .wp-block-button__link {
	min-width: 270px;
	min-height: 48px;
	padding-top: 10px;
	padding-bottom: 10px;
	justify-content: center;
}


/* ==== 86eypb6m6 S04/S05 Figma parity (sign-off frames, 2026-09-23 extract) ==== */

/* S04 "The Gut Sits at the Centre". The section has no class of its own,
   so it is keyed off its row with :has(), not a brittle nth-child.
   Figma D/T/M: desc 16px below the H2, max 1000px wide. Row starts 64px
   (D) / 24px (T) / 20px (M) below the desc; the fifth card sits 20px
   below the row at every size. */
.bhp-page > section:has(> .bhp-gutcentre-row) > h2.wp-block-heading {
	margin-bottom: 0;
}
.bhp-page > section:has(> .bhp-gutcentre-row) > p:not(.bhp-eyebrow) {
	max-width: 1000px;
	margin: 16px auto 0;
}

/* Grid instead of the wrapping flex row. M: one 100% column with the
   diagram first. T (744-1439): the diagram spans both columns on top,
   with two card columns under it (336px at 744, capped at 424px each).
   D (>=1440): cards | diagram | cards, 424/408/424, gap 64, max 1384. */
.bhp-page > section > .bhp-gutcentre-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	margin: 20px 0 20px;
}
.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col {
	flex: none;
	width: 100%;
	max-width: none;
	gap: 22px;
}
/* Figma frame 2147229940 is 408x408 at every size. The raster (676x704)
   is the complete diagram, badges included, and it spans 324x338 of that
   frame, starting 42px from the left and 43.4px from the top. The padding
   reproduces that as a fraction of the box width. On a narrow phone the frame is wider than
   the 388px column (M draws it at x10), so it is centred with negative
   margins and capped at the viewport so it never scrolls the page. */
.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-diagram {
	order: -1;
	box-sizing: border-box;
	width: min(408px, 100vw);
	height: auto;
	aspect-ratio: 1 / 1;
	/* Percent padding would resolve against the grid area, not this box,
	   so the insets are computed off the box width itself. */
	padding: calc(min(408px, 100vw) * 0.1064) calc(min(408px, 100vw) * 0.1029) 0;
	margin: 0 calc((100% - min(408px, 100vw)) / 2);
	justify-self: start;
}
.bhp-page .bhp-gutcentre-diagram .bhp-gutcentre-diagram__ring {
	width: 100%;
	height: auto;
}
/* Figma strokes the cards inside their box (text 32px from the outer
   edge, 164px card), CSS puts the 1px border outside the padding (33px,
   166px). 31px padding + the 1px border lands on Figma exactly. */
.bhp-page > section:has(> .bhp-gutcentre-row) .bhp-gutcentre-card {
	padding: 31px;
}
/* The fifth card: 500px at T/D, the full column on M (inert under 500). */
.bhp-page > section > .bhp-gutcentre-card {
	max-width: 500px;
}

/* Card title. Live markup is still the pre-retag bare <h6>, so the
   existing `.bhp-gutcentre-card-h` rule never matched it and the theme's
   16/24 #192a3d won. Both selectors are covered. Figma: 18/20 #2e2a2a at D,
   16/16 at T/M; 12px to the description. */
.bhp-page .bhp-gutcentre-card > h6:first-child,.bhp-page .bhp-gutcentre-card > h3:first-child,
.bhp-page .bhp-gutcentre-card > .bhp-gutcentre-card-h {
	font-size: 16px;
	line-height: 16px;
	color: var(--bhp-ink);
	margin: 0 0 12px;
}

@media (min-width: 744px) {
	.bhp-page > section > .bhp-gutcentre-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
		max-width: 872px;
		margin: 24px auto 20px;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-diagram {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1440px) {
	.bhp-page > section > .bhp-gutcentre-row {
		grid-template-columns: minmax(0, 424px) 408px minmax(0, 424px);
		justify-content: center;
		align-items: center;
		column-gap: 64px;
		max-width: 1384px;
		margin: 64px auto 20px;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-diagram {
		order: 0;
		grid-column: auto;
		margin: 0;
		/* Figma D: the 408 frame sits at y220, centred on the card columns
		   (y249-599); it was lifted 24px off a hidden variant frame. */
	}
	.bhp-page .bhp-gutcentre-card > h6:first-child,	.bhp-page .bhp-gutcentre-card > h3:first-child,
	.bhp-page .bhp-gutcentre-card > .bhp-gutcentre-card-h {
		font-size: 18px;
		line-height: 20px;
	}
}

/* S05 "One Gut. Whole Dog.". Figma D/T/M: every copy block is 16px below
   the one above (it was 0 under 1024 because the flex column only existed
   in the >=1024 row). Eyebrow left-aligned like the rest of the copy. */
.bhp-onegut > .bhp-onegut__copy {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
/* (0,3,0) so it outranks `.bhp-page .bhp-eyebrow + .wp-block-heading`,
   which otherwise adds its 16px on top of the gap. */
.bhp-section.bhp-onegut > .bhp-onegut__copy > * {
	margin: 0;
	text-align: left;
}
/* Copy-to-image gap: 20 (M), 24 (T). The >=1024 row keeps its 64. */
.bhp-section.bhp-onegut {
	gap: 20px;
}
/* Band overlaps both torn-edge strips by 4px (strip 129.32 tall, band
   starts at 125.3 on D; same 4px at T/M). Was 1px. */
.bhp-section-wrap > .bhp-pattern-strip:has(+ .bhp-onegut) {
	margin-bottom: -4px;
}
.bhp-section-wrap > .bhp-onegut + .bhp-pattern-strip {
	margin-top: -4px;
}
@media (max-width: 743px) {
	/* z8udzkf3c8: the old fixed 336.7px height cover-cropped the 1920x1077
	   illustration (dog head and tail cut off on phones). Natural height
	   shows the whole image at every width under 744px. */
	.bhp-onegut > .bhp-onegut__img img {
		height: auto;
		aspect-ratio: 1920 / 1077;
		object-fit: contain;
	}
}
@media (min-width: 744px) {
	.bhp-section.bhp-onegut {
		gap: 24px;
	}
	.bhp-onegut > .bhp-onegut__copy > p:not(.bhp-eyebrow) {
		max-width: 600px;
	}
}
@media (min-width: 1024px) {
	.bhp-section.bhp-onegut {
		align-items: flex-start;
		gap: 64px;
	}
}
/* ==== 86eypb6m6 S04/S05 Figma parity (end) ==== */

/* 86eypb6m6 S07 "The Eight Gut-Organ Axes" intro (eyebrow / H2 / paragraph,
   Figma nodes 34241:135988 / :135989 / :135990, Home Page D/T/M frames):
   all three are textAlignHorizontal CENTER. The eyebrow was already centred
   by `.bhp-page .bhp-eyebrow`; the H2 and paragraph fell back to
   `text-align:start`. The H2 runs the 1000px measure at D; the paragraph is
   maxWidth 600 at D/T/M (FILL below 600, so it still shrinks on mobile).
   Keyed on the section that owns `.bhp-axis-grid` rather than a positional
   nth-of-type, so it survives section re-ordering. Card grid untouched. */
.bhp-section:has(> .bhp-axis-grid) > h2.wp-block-heading {
	text-align: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
.bhp-section:has(> .bhp-axis-grid) > p.wp-block-paragraph:not(.bhp-eyebrow) {
	text-align: center;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}

/* ==== 86eypb6m6 S14/S15/S18 Figma parity (start) ====
   Figma 2026-09-23 SignOff Home-Page D/T/M. Selectors are local to the three
   sections (.bhp-page > section:nth-child(13|14|17) = S14|S15|S18). */

/* S14 Full Transparency: bordered 88/128px rows, Inter 800 heading (Inter is
   the accepted Kobe1.1 substitute, so 800 is the synthesised bold). */
.bhp-page > section:nth-child(14) .bhp-transparency-card {
	height: auto;
	min-height: 612px;
	/* Figma Frame 2147229752 pads 40 top / 40 bottom, Frame 2147229753 40 / 32
	   (86eypb6m6 hp4; was 12 on both). */
	padding: 40px 0 40px;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card--out {
	padding-bottom: 32px;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card h4 ,.bhp-page > section:nth-child(14) .bhp-transparency-card h3 {
	font-weight: 900;
	padding-inline: 20px;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card ul {
	flex: none;
	justify-content: flex-start;
	gap: 0;
	margin: 0;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card li {
	box-sizing: border-box;
	min-height: 88px;
	padding: 4px 20px;
	gap: 8px;
	align-items: center;
	border-bottom: 1px solid rgba(45, 44, 44, 0.12);
}
.bhp-page > section:nth-child(14) .bhp-transparency-card--out li {
	border-bottom-color: #d1d5db;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card li:nth-child(2) {
	min-height: 128px;
}
.bhp-page > section:nth-child(14) .bhp-transparency-card li:last-child {
	border-bottom: 0;
}

/* S14 photo: Figma is 430x631 centred, cropped by the column at T/M. */
@media (max-width: 1439px) {
	.bhp-page > section:nth-child(14) .bhp-transparency-photo {
		display: flex;
		justify-content: center;
		width: 100%;
		max-width: 430px;
		margin-inline: auto;
		height: 631px;
		overflow: hidden;
	}
	.bhp-page > section:nth-child(14) .bhp-transparency-photo img {
		flex: none;
		width: 100%;
		max-width: 430px;
		height: 631px;
		object-fit: cover;
		object-position: center;
	}
}

/* Eyebrow / tagline are 14px in Figma T (744); sitewide rule is 12px <768. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-page > section:nth-child(14) .bhp-eyebrow,
	.bhp-page > section:nth-child(15) .bhp-eyebrow,
	.bhp-page > section:nth-child(18) .bhp-eyebrow,
	.bhp-page > section:nth-child(14) .bhp-transparency-tagline {
		font-size: 14px;
	}
}

/* S15 Real Experiences */
.bhp-page > section:nth-child(15) h2 {
	margin-bottom: 12px;
}
.bhp-page > section:nth-child(15) .bfr-carousel__dots {
	position: relative;
	box-sizing: border-box;
	height: 48px;
	margin-top: 0;
}
/* The salmon tick-and-dashes strip that used to be drawn here with
   ::before/::after duplicated the real dots and is gone. */
.bhp-page > section:nth-child(15) .bfr-carousel__dot:not(.is-active) {
	background: var(--bonza-dot-review-inactive, #868889);
}
.bhp-page > section:nth-child(15) .bfr-carousel__dot.is-active {
	background: var(--bonza-dot-review-active, #ff9572);
}
@media (max-width: 743px) {
	.bhp-page > section:nth-child(15) .bfr-carousel__dots {
		margin-top: -4px;
	}
}
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(15) .bfr-carousel__dots {
		margin-top: 40px;
	}
}

/* S18 FAQ: 15px summary gutter, cream "+" icon, 14/16 summary below 1440. */
.bhp-page > section:nth-child(18) .bhp-faq-list summary {
	padding-right: 15px;
}
.bhp-page > section:nth-child(18) .bhp-faq-list summary::after {
	background:
		linear-gradient(#f8ede3, #f8ede3) center / 15px 3px no-repeat,
		linear-gradient(#f8ede3, #f8ede3) center / 3px 15px no-repeat;
}
@media (max-width: 1439px) {
	.bhp-page > section:nth-child(18) .bhp-faq-list summary {
		font-size: 14px;
	}
}
/* ==== 86eypb6m6 S14/S15/S18 Figma parity (end) ==== */

/* ==== 86eypb6m6 hp2 L14/L15 residual Figma rows (start) ====
   Measured on the live page with origin/main's homepage.css injected
   (post merge-marker hotfix), against the SignOff D/T/M frames. */

/* L14 Full Transparency (section 13). Figma tucks the torn-edge strips 4px
   into the green band on both sides (band y125.3 under a 129.3 strip at D,
   same 4px at T/M); the shared `.bhp-pattern-strip--top/--bottom` rules tuck
   1px. 3px x 2 strips was the whole 1227 vs 1221 (D) / 1717 vs 1710 (M). */
.bhp-page > section:nth-child(14) > .bhp-pattern-strip--top {
	margin-bottom: -4px;
}
.bhp-page > section:nth-child(14) > .bhp-pattern-strip--bottom {
	margin-top: -4px;
}
/* Figma sets the tagline in Inter/800 (Inter is self-hosted at 800, see the
   gut-centre badge label above), so the Kobe1.1 stand-in is dropped for it to
   meet the Figma glyph widths (tagline 363px wide at D/T). The two card
   headings are NOT in this rule (86eyy8hud): they use Nominee (Heavy Extended,
   900, the only served Nominee face) per the user decision, set in the card
   heading rules above. */
.bhp-page > section:nth-child(14) .bhp-transparency-tagline,
.bhp-page > section:nth-child(14) .bhp-transparency-tagline strong {
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
	font-weight: 800;
}
/* Figma rows are fixed 88px (a 4-line item overflows its 16px padding), so a
   4px block padding pushed the first "Always Inside" row to 89px and the
   card to 613px against 612px. 2px keeps the 88/128px floors and only grows
   when a translation genuinely needs the room. */
.bhp-page > section:nth-child(14) .bhp-transparency-card li {
	padding-block: 2px;
}
/* Photo is 430x631 at every size; above 1439 it followed the file's own
   aspect (630.2px). */
@media (min-width: 1440px) {
	.bhp-page > section:nth-child(14) .bhp-transparency-photo,
	.bhp-page > section:nth-child(14) .bhp-transparency-photo img {
		height: 631px;
	}
	.bhp-page > section:nth-child(14) .bhp-transparency-photo img {
		object-fit: cover;
	}
}

/* L15 Real Experiences (section 14). Figma's Reviews frame ends 32px under
   the dots row (590.2 at M, 548.2 at T, 634.2 at D). The attribution line is
   removed at source (PR 1035), so the section padding alone sets the gap. */
/* Figma draws the card border inside the 28px padding (text starts 28px in,
   278px wide); feefo-reviews.css pads 28 + a 3px border (275px wide). */
.bhp-page > section:nth-child(15) .bfr-card--section {
	/* 86eypb6m6 hp4: Figma pads 28 on all four sides. The 3px red stroke is an
	   inset shadow instead of a border so the text still starts 28px in and is
	   278px wide (padding 28 + a 3px border pushed it to 31 / 275). */
	padding-left: 28px;
	border-left-width: 0;
	box-shadow: inset 3px 0 0 0 var(--bfr-stroke, #FF6256);
}
/* ==== 86eypb6m6 hp2 L14/L15 residual Figma rows (end) ==== */

/* ==== 86eypb6m6 hp2 L04 residual (start) ====
   The five `__badge` spans are the screen-reader text for labels that are
   baked into the diagram raster (the raster, 324x338 inside the 408 frame,
   already draws Figma's five 96px #f8ede3 circles, ring and labels; checked
   against the frame). They are visually hidden, but the old percent
   offsets (-2.8%, -15.3% ...) parked the 1px boxes at negative x, so they
   read as an overflow-clipped label at 320-428 in every language. Seat them
   inside the diagram box; they still paint nothing. Label metrics follow
   Figma (centred, letter-spacing 0). */
.bhp-page .bhp-gutcentre-diagram__badge {
	left: 0;
	top: 0;
	margin: 0;
	text-align: center;
}
.bhp-page .bhp-gutcentre-diagram__badge em {
	letter-spacing: 0;
	text-align: center;
}
/* ==== 86eypb6m6 hp2 L04 residual (end) ==== */

/* ==== 86eypb6m6 L10-L12 Figma parity (audit rows HP-021/037/308/409/487/501/523-534/729+) ==== */

/* ---- L10 "What's Your Dog Dealing With?" -------------------------------
   Sub-label size: Figma c-match is 12px at M, 14px at D and T; label and
   flag are 14px at T (744) and 12px only at M (428). The existing 12px
   block ran to 767, so the T frame (744) got the mobile size; and the
   sub-label had no mobile size at all. Breakpoint moved to the frame edge. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-page .bhp-concern-card .bhp-concern-label,
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		font-size: 14px;
	}
}
@media (max-width: 743px) {
	.bhp-page .bhp-concern-card .bhp-concern-sub {
		font-size: 12px;
	}
}
/* Card label: Figma c-label is Inter/800 (Inter is self-hosted at 800, see the
   Sec 7 CTA). It was on the Kobe1.1 stand-in. */
.bhp-page .bhp-concern-card .bhp-concern-label {
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
}
/* i18n: translated labels are longer than the English ones and the 320px
   cards are 52-60px wide, so words were cut at an arbitrary letter. Let the
   browser hyphenate at syllable breaks (needs the page lang attribute, which
   WPML sets); English is left as designed. Text is unchanged. */
.bhp-page:not(:lang(en)) .bhp-concern-card .bhp-concern-label {
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}
/* Below Figma's smallest frame (428) the two-up cards are 134px at 320, which
   leaves a 60px label column beside the 42px icon. Trim the side padding and
   icon gap there so translated labels get 16-22px more width. */
@media (max-width: 359px) {
	.bhp-page .bhp-concern-card.bhp-concern-card:not(:has(.bhp-concern-flag)) {
		padding-inline: 8px;
		column-gap: 6px;
	}
}
/* Icon-to-text gap is 8px on every card except the flagged "Start here"
   card (16px); label-to-sub gap is 5px; cards in a row share one height. */
.bhp-concern-card {
	box-sizing: border-box;
	height: 100%;
	gap: 8px;
}
.bhp-concern-card:has(.bhp-concern-flag) {
	gap: 8px 16px;
}
/* Below 1024 the "Start here" pill sits on its own line under the text,
   aligned with it (Figma M and T: text column = card width minus 12 + 42 + 16
   + 12; pill 8px below the text). */
@media (max-width: 767px) {
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon + span {
		flex: 1 1 calc(100% - 58px);
	}
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		margin-left: 58px;
	}
}
.bhp-page .bhp-concern-card .bhp-concern-sub {
	margin-top: 5px;
}
/* Figma T frame (744) groups the seven cards 3 + 4 exactly like D, with the
   flagged card fixed at 300px and its two neighbours at 186px; the live grid
   only switched to that grouping at 768. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-concern-card-wrap:nth-child(-n+3) { flex: 0 1 calc(33.333% - 8px); }
	.bhp-concern-card-wrap:nth-child(n+4) { flex: 0 1 calc(25% - 9px); }
}
@media (min-width: 744px) and (max-width: 1023px) {
	.bhp-concern-card-wrap:nth-child(1) { flex: 0 0 300px; }
	.bhp-concern-card-wrap:nth-child(2),
	.bhp-concern-card-wrap:nth-child(3) { flex: 0 0 calc((100% - 324px) / 2); }
}
/* Intro paragraph: a 600px column at D and T (Figma x456/w600, x72/w600),
   full width at M. */
@media (min-width: 744px) {
	.bhp-band-white:has(> .bhp-concern-grid) > p:not(.bhp-eyebrow) {
		max-width: 600px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Heading-to-intro gap is 16px at every width (live 17-21px from a fluid
   margin on the H2). */
.bhp-section:has(> .bhp-concern-grid) > h2 {
	margin-bottom: 16px;
}

/* ---- L11 "Routines That Work as One" ----------------------------------- */
/* Figma's band starts 4px inside the torn-edge strip above it; the live
   overlap was 1px, which pushed every line of the section down 3px. */
.bhp-section-wrap:has(.bhp-routine-carousel) > .bhp-pattern-strip--top {
	margin-bottom: -4px;
}
.bhp-band-cream:has(.bhp-routine-carousel) > h2 {
	margin-bottom: 16px;
}
/* Gap between the dot row and the CTA: 20 (M), 24 (T), 64 (D). */
@media (min-width: 744px) {
	.bhp-routine-dots {
		margin-bottom: 0;
	}
}
@media (min-width: 1440px) {
	.bhp-routine-dots {
		margin-bottom: 64px;
	}
}
/* Intro is one 24px line box in Figma; the inline <strong> in a different
   font made the live line box 25px. */
.bhp-band-cream:has(.bhp-routine-carousel) > p > strong {
	display: block;
}
/* "Explore more routines": Inter/800 (Inter is self-hosted at 800, the same
   fix the Sec 7 CTA got), 229x48, 1.5px #B86E00 stroke. */
.bhp-section-wrap:has(.bhp-routine-carousel) .wp-block-buttons .wp-block-button__link {
	box-sizing: border-box;
	min-width: 229px;
	min-height: 48px;
	padding: 9.5px 16px;
	border: 1.5px solid #b86e00; /* editor-friendly-ok: exact Figma stroke on this button instance, no palette slot */
	font-family: var( --wp--preset--font-family--inter, "Inter", var( --theme-font-family, sans-serif ) );
	font-weight: 800;
}

/* Same fix for "Explore more routines": its stroke outranked the coral hover
   border (86eyzmwuc). */
.bhp-section-wrap:has(.bhp-routine-carousel) .wp-block-buttons .wp-block-button__link:hover,
.bhp-section-wrap:has(.bhp-routine-carousel) .wp-block-buttons .wp-block-button__link:focus-visible {
	border-color: var(--bhp-coral);
}

/* Routine cards: Figma PRODUCT CARD (257.6 / 216 / 186 wide), rendered by the
   PDP routine-card markup (product-page/routine-cards.php). PDP stylesheet is
   not loaded on the homepage, so the card is styled here, scoped to the
   carousel so nothing leaks to the PDP. */
.bhp-routine-track .bppm-routine-card {
	position: relative;
	flex: 0 0 auto;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	background: var(--wp--preset--color--bhp-white, #FFFFFF);
	scroll-snap-align: start;
}
@media (max-width: 743px) {
	.bhp-routine-track .bppm-routine-card {
		width: 186px;
		max-width: 186px;
	}
}
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-routine-track .bppm-routine-card {
		width: 216px;
		max-width: 216px;
	}
}
@media (min-width: 1440px) {
	.bhp-routine-track .bppm-routine-card {
		width: auto;
		max-width: none;
	}
}
.bhp-routine-carousel .bppm-routine-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.bhp-routine-carousel .bppm-routine-card__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.bhp-routine-carousel .bppm-routine-card__wishlist {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	min-width: 26px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #ffffff; /* editor-friendly-ok: exact Figma WISHLIST ICON fill, no palette slot */
	box-shadow: none;
	cursor: pointer;
}
.bhp-routine-carousel .bppm-routine-card__wishlist svg {
	display: block;
	width: 16px;
	height: 14px;
}
.bhp-routine-carousel .bppm-routine-card__wishlist svg path {
	fill: none;
	stroke: #ff0000; /* editor-friendly-ok: exact Figma heart fill, no palette slot */
	stroke-width: 1.3;
}
.bhp-routine-carousel .bppm-routine-card__wishlist[data-active="true"] svg path {
	fill: #ff0000; /* editor-friendly-ok: exact Figma heart fill, no palette slot */
	stroke: none;
}
.bhp-routine-carousel .bppm-routine-card__wishlist:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-green, #247B4E);
	outline-offset: 2px;
}
/* "New Recipe Coming Soon" pill on the sold-out routine (Figma 34902:94476). */
.bhp-routine-carousel .bppm-routine-card__soon {
	position: absolute;
	left: 50%;
	bottom: 15px;
	z-index: 1;
	transform: translateX(-50%);
	padding: 4px 6px;
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-cream, #F8EDE3);
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 8px;
	line-height: 14px;
	text-transform: uppercase;
	white-space: nowrap;
}
.bhp-routine-carousel .bppm-routine-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px;
}
.bhp-routine-carousel .bppm-routine-card__title {
	min-height: 32px;
	margin: 0;
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 16px;
	line-height: 16px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-align: left;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bhp-routine-carousel .bppm-routine-card:has(.bppm-routine-card__soon) .bppm-routine-card__title {
	min-height: 16px;
}
.bhp-routine-carousel .bppm-routine-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bhp-routine-carousel .bppm-routine-card__tag {
	margin: 0;
	padding: 4px 6px;
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-cream, #F8EDE3);
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 12px;
	line-height: 14px;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
/* Tag pills are product links; the theme's global link underline and colour
   leaked onto them. Figma D/T/M tag text: Kobe 12px, textDecoration NONE (z8udzket2d). */
.bhp-routine-carousel .bppm-routine-card__tag a,
.bhp-routine-carousel .bppm-routine-card__tag a:hover,
.bhp-routine-carousel .bppm-routine-card__tag a:visited {
	color: inherit; /* bhp-ink on the bhp-cream pill = 12.3:1 */
	text-decoration: none;
}
.bhp-routine-carousel .bppm-routine-card__tag a:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-green, #247B4E); /* 4.53:1 vs the cream pill, UI boundary needs 3:1 */
	outline-offset: 2px;
	border-radius: 999px;
}
.bhp-routine-carousel .bppm-routine-card__desc {
	flex: 1;
	min-height: 176px;
}
.bhp-routine-carousel .bppm-routine-card:has(.bppm-routine-card__soon) .bppm-routine-card__desc {
	min-height: 192px;
}
.bhp-routine-carousel .bppm-routine-card__desc p {
	margin: 0;
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 14px;
	line-height: 16px;
	text-align: left;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bhp-routine-carousel .bppm-routine-card__desc p + p {
	margin-top: 16px;
}
.bhp-routine-carousel .bppm-routine-card__rule {
	margin: 0 0 -1px;
	border: 0;
	border-top: 1px solid #f3f4f6; /* editor-friendly-ok: exact Figma divider stroke, no palette slot */
}
/* Price row + saving badge sit 4px apart (Figma Frame 2147230024). */
.bhp-routine-carousel p.bppm-routine-card__price {
	display: flex;
	flex-wrap: wrap; /* "One-time total" drops to its own left-aligned line instead of breaking inside its box */
	align-items: baseline;
	column-gap: 4px;
	row-gap: 0;
	margin: 0 0 -8px;
	font-family: var(--bhp-heading-font);
	font-weight: 400;
	font-size: 14px;
	line-height: 20px;
	text-transform: uppercase;
	text-align: left;
	color: var(--wp--preset--color--bhp-green, #247B4E);
}
/* G43: the price is one line and its "Subscribe & Save" label is a second
   line, never wrapped, in every language and at every card width. */
.bhp-routine-carousel .bppm-routine-card__price-label {
	flex: 0 0 100%;
	white-space: nowrap;
	text-align: left;
	font-size: 12px;
	line-height: 16px;
}
.bhp-routine-carousel .bppm-routine-card__price-label:is(:lang(fr), :lang(es), :lang(nl)) {
	font-size: 10px;
	letter-spacing: 0;
}
/* The mobile cards are 182px wide (166px of text): the DE label is 176px and
   the FR label 204px at the sizes above, so they step down to stay inside. */
@media (max-width: 599px) {
	.bhp-routine-carousel .bppm-routine-card__price-label:lang(de) {
		font-size: 10px;
	}
	.bhp-routine-carousel .bppm-routine-card__price-label:lang(fr) {
		font-size: 8px;
	}
}
.bhp-routine-carousel .bppm-routine-card__price-was {
	font-family: var(--bhp-body-font);
	font-weight: 400;
	font-size: 14px;
	line-height: normal;
	text-transform: none;
	text-decoration: line-through;
	color: #6b7280; /* editor-friendly-ok: exact Figma struck-price fill, no palette slot */
}
.bhp-routine-carousel .bppm-routine-card__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	height: 18px;
	padding: 4px 8px;
	border-radius: 4px;
	background: #ee0000; /* editor-friendly-ok: Figma #ff0000 is 4.0:1 with white (fails AA at 10px); #ee0000 is 4.5:1, same as #1002 */
	font-family: var(--bhp-body-font);
	font-weight: 700;
	font-size: 10px;
	line-height: 10px;
	color: var(--wp--preset--color--bhp-white, #FFFFFF);
}
.bhp-routine-carousel .bppm-routine-card__form {
	margin: 0;
}
.bhp-routine-carousel .bppm-routine-card__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 40px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--bhp-green, #247B4E);
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-green, #247B4E);
	box-shadow: none;
	font-family: var(--bhp-heading-font);
	font-weight: 900;
	font-size: 10px;
	line-height: 14px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--bhp-white, #FFFFFF);
	cursor: pointer;
}
.bhp-routine-carousel .bppm-routine-card__btn--notify {
	padding: 0 12px;
	background: transparent;
	color: var(--wp--preset--color--bhp-green, #247B4E);
}
.bhp-routine-carousel .bppm-routine-card__btn:not(.bppm-routine-card__btn--notify):hover {
	background: #1c5f3c; /* editor-friendly-ok: same hover shade the PDP routine button already uses */
	border-color: #1c5f3c; /* editor-friendly-ok: same hover shade the PDP routine button already uses */
}
.bhp-routine-carousel .bppm-routine-card__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--bhp-ink, #2E2A2A);
	outline-offset: 2px;
}
@media (max-width: 1439px) {
	.bhp-routine-carousel .bppm-routine-card__body {
		padding: 8px;
	}
	.bhp-routine-carousel .bppm-routine-card__title {
		font-size: 14px;
	}
	.bhp-routine-carousel .bppm-routine-card__desc {
		min-height: 192px;
	}
	.bhp-routine-carousel .bppm-routine-card__price-was {
		font-size: 12px;
	}
}
@media (max-width: 743px) {
	.bhp-routine-carousel .bppm-routine-card__desc p {
		font-size: 12px;
	}
	.bhp-routine-carousel p.bppm-routine-card__price {
		font-size: 12px;
	}
	.bhp-routine-carousel .bppm-routine-card__price-was {
		font-size: 10px;
	}
}

/* ---- L12 "Why Bonza Is Different" -------------------------------------- */
/* Same 4px strip overlap as L11 (the two strips carry swapped --top/--bottom
   classes, so they are addressed by position), and a 12px heading-to-intro
   gap. */
.bhp-section-wrap:has(> .bhp-band-green .bhp-feature-row) > .bhp-pattern-strip:first-child {
	margin-bottom: -4px;
}
.bhp-section-wrap:has(> .bhp-band-green .bhp-feature-row) > .bhp-pattern-strip:last-child {
	margin-top: -4px;
}
.bhp-band-green:has(> .bhp-feature-row) > h2 {
	margin-bottom: 12px;
}
/* Title is 14px at T (744) and 12px only at M; the description is 12px at M
   and 14px at T and D (the live sizes were the reverse). Title, sub-title and
   description stack 4px apart (Figma Frame 2147229849). */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-page .bhp-feature-card__title {
		font-size: 14px;
	}
}
@media (max-width: 743px) {
	.bhp-page .bhp-feature-card__body {
		font-size: 12px;
	}
}
.bhp-page .bhp-feature-card p {
	margin-bottom: 4px;
}
/* The first two cards are fixed 218px tall in Figma at every width; the
   third hugs its text. */
.bhp-page .bhp-feature-row > .bhp-feature-card:nth-child(-n+2) {
	min-height: 218px;
}
/* Figma's card stroke is #ffa825 with per-side weights 0/0/0/3: a 3px LEFT
   stroke only (inside, so content still starts 20px from the card edge), no
   ring on the other sides and no shadow. The earlier 1px inset ring drew a
   stroke Figma does not have (86eypb6m6, L12 props audit). */
.bhp-page .bhp-feature-card {
	box-sizing: border-box;
	border: 0;
	border-left: 3px solid #ffa825; /* editor-friendly-ok: exact Figma stroke colour, no palette slot */
	padding-left: 17px;
	box-shadow: none;
}
.bhp-page .bhp-feature-card p:last-child {
	margin-bottom: 0;
}

/* ==== 86eypb6m6 L10-L12 per-property pass (Figma props audit) ==== */

/* L10: Figma cards are not stretched to their row: each card is its own
   height (D: the second-row "Anxiety & stress" card is 82.5, the rest 74;
   T: 113/115; M: 93). */
/* 86eyzmwug (Vita QA): cards in a row share one height (Figma's 82.5 vs 74
   second row is dropped on request). The wrap stretches to the tallest card
   and is itself a flex box so the link card fills it. */
.bhp-concern-grid {
	align-items: stretch;
}
.bhp-concern-card-wrap {
	align-self: stretch;
	display: flex;
}
.bhp-page .bhp-concern-card {
	height: auto;
	flex: 1 1 auto;
}
/* The "Anxiety & stress" icon frame is 50.5 square in Figma at M, T and D (a
   42px circle drawn in a rotated frame), so its text starts 8.5px further in
   and, at D, the card is 82.5 tall. Same 42px circle, 4.25px around it. */
.bhp-concern-card-wrap:nth-child(4) .bhp-concern-icon {
	margin: 4.25px;
}
/* Below 768 (X18 z8udzkgpxb: 768+ is inline, see the X18 block) the flagged card is a two-column block in Figma: the icon is
   centred against the whole text column (label, sub-label, pill), 19.5px
   below the card padding, and the card is 113 tall. */
@media (max-width: 767px) {
	.bhp-concern-card:has(.bhp-concern-flag) {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr);
		column-gap: 16px;
		row-gap: 8px;
		align-items: start;
	}
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon {
		grid-row: 1 / span 2;
		align-self: center;
	}
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon + span {
		grid-column: 2;
		flex: none;
	}
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		grid-column: 2;
		margin-left: 0;
		justify-self: start;
	}
}
/* T (744): every card except the flagged one and "Fleas, ticks & worms" is
   115 tall, with the content centred. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-concern-card-wrap:nth-child(2) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(3) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(4) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(5) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(7) .bhp-concern-card {
		min-height: 115px;
	}
}

/* L11: the card button and the "Explore more routines" button are flat in
   Figma (no stroke on the card button, no shadow on either). */
.bhp-routine-carousel .bppm-routine-card__btn:not(.bppm-routine-card__btn--notify) {
	border: 0;
}
.bhp-routine-carousel .bppm-routine-card__btn,
.bhp-section-wrap:has(.bhp-routine-carousel) .wp-block-button__link {
	box-shadow: none;
}

/* L12 (D): the three cards are 218 / 218 / 220 in Figma and are not stretched
   to a common row height. */
/* 86eyzmwug (Vita QA): QA asked for equal card heights, so the row now
   stretches: every card takes the tallest card's height, whatever the
   language or copy length. Deliberate deviation from Figma's 218/218/220. */
.bhp-page .bhp-feature-row {
	align-items: stretch;
}
/* ==== 86eypb6m6 L10-L12 Figma parity (end) ==== */

/* Targeted Support cards: Figma Button 34233:176228 is 274.67x40. The shared
   card CTA renders 50px (16px padding around an 18px icon row), so trim the
   padding here only and leave the nutrition and routines cards as they are. */
.bhp-targeted-cards .bpc-card .bpc-cta {
	padding-top: 11px;
	padding-bottom: 11px;
}

/* Targeted Support card structure, Figma PRODUCT CARD 34755:55078/55082 body
   order: title, reviews, categories, description, ingredient chips, 1px
   divider, price + saving badge (stacked, 4px apart), button. The subscription
   picker is visible:false in Figma and is not rendered for this set (see
   bonza_hp_products_shortcode); everything below only re-orders and styles
   what stays. Scoped to .bhp-targeted-cards so the other card sets keep
   their layout. */
.bhp-targeted-cards .bpc-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.bhp-targeted-cards .bpc-title { order: 1; margin: 0; }
.bhp-targeted-cards .bpc-reviews { order: 2; margin: 0; }
.bhp-targeted-cards .bpc-cats { order: 3; margin: 0; }
.bhp-targeted-cards .bpc-subhead { order: 4; margin: 0; }
.bhp-targeted-cards .bpc-chips { order: 5; margin: 0; }
.bhp-targeted-cards .bpc-price,
.bhp-targeted-cards .bpc-price-row { order: 6; margin: 0; }
.bhp-targeted-cards .bpc-cost-per-day { display: none; } /* only inside Figma's hidden subscription block */
.bhp-targeted-cards .bpc-card { overflow-wrap: anywhere; }
.bhp-targeted-cards .bpc-cta { order: 9; }
.bhp-targeted-cards .bpc-price-row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding-top: 12px;
	border-top: 1px solid #F3F4F6; /* Figma Line 12 stroke rgb(243,244,246) */
}
.bhp-targeted-cards .bpc-save-badge {
	margin: 0;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--wp--preset--color--bhp-cream, #F8EDE3);
	font-family: var(--bhp-body-font);
	font-size: 12px; /* WCAG floor 12px (Figma 10px), 86eypb6j8 */
	line-height: 1.4;
	color: var(--wp--preset--color--bhp-green, #247B4E);
}

/* ==== 86eypb6m6 all homepage dividers vs Figma (hp2-waves) ==== */
/* Orientation of the shared hero-wave-strip.png (raw = cream at the bottom, alpha above)
   measured against Figma's own exported strips at D/T/M (cream-mask mismatch, cover-fit):
   hero node 34213:84072 = raw mirrored L-R; S02 top 34213:84249 and S16 top 34259:225179 =
   raw flipped top-bottom only. rotate(180deg) was wrong for S02 (mirrored wave), and the
   S16 top strip sat under the photo with no flip at all. */
body.home .hb-hero--home .hb-hero__wave { transform: scaleX(-1); }
.bhp-gutcentre-photo__pattern--top img[src*="hero-wave-strip"] { transform: scaleY(-1); }
/* S16 photo top edge (Figma 34259:225179, cream torn into the photo, 3px above it):
   paint over the photo, cream above and photo through the transparent lower half. */
.bhp-section-wrap:has(> .bhp-planetband-photo) > .bhp-pattern-strip--top:has(img[src*="hero-wave-strip"]) {
	background: none;
	z-index: 3;
	top: calc(100vw * -3 / 1512);
}
.bhp-section-wrap:has(> .bhp-planetband-photo) > .bhp-pattern-strip--top img {
	transform: scaleY(-1);
}
/* S16 photo bottom edge (Figma 34259:225180, photo torn into the green band): Figma's strip
   is an alpha image whose alpha is lost in the JPG export, so the green edge is traced from
   the exported strip (3024x259, 306 points) and used as a mask over a green fill. */
.bhp-planetband-photo { position: relative; }
.bhp-planetband-photo::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	aspect-ratio: 1512 / 129.32;
	background: #247b4e;
	-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%203024%20259%22%20preserveAspectRatio=%22none%22%3E%3Cpath%20d=%22M0,259%20L0.0,130.0%20L11.0,130.0%20L14.0,129.7%20L20.0,129.7%20L23.0,130.0%20L29.0,129.7%20L35.0,128.7%20L41.0,129.0%20L44.0,130.0%20L88.0,130.0%20L90.0,129.8%20L137.0,130.0%20L143.0,131.3%20L146.0,132.3%20L152.0,133.0%20L168.0,133.0%20L171.0,133.7%20L177.0,135.7%20L180.0,136.0%20L190.0,136.0%20L199.0,138.8%20L207.0,139.0%20L216.0,142.0%20L220.0,142.0%20L247.0,151.0%20L251.0,151.0%20L260.0,154.0%20L266.0,154.0%20L275.0,157.0%20L294.0,157.0%20L303.0,160.0%20L340.0,160.0%20L349.0,157.0%20L392.0,157.0%20L401.0,154.0%20L531.0,154.0%20L540.0,151.0%20L611.0,151.0%20L617.0,150.7%20L626.0,148.0%20L676.0,148.0%20L685.0,147.1%20L693.0,148.0%20L706.0,148.0%20L715.0,150.9%20L728.0,151.0%20L737.0,154.0%20L750.0,154.0%20L759.0,157.0%20L772.0,157.0%20L781.0,160.0%20L805.0,160.0%20L816.0,161.0%20L825.0,160.0%20L851.0,160.0%20L860.0,157.0%20L876.0,157.0%20L885.0,154.0%20L894.0,154.0%20L903.0,151.0%20L913.0,151.0%20L922.0,148.0%20L937.0,147.8%20L946.0,145.0%20L972.0,145.0%20L974.0,144.8%20L983.0,142.0%20L1027.0,142.0%20L1036.0,141.0%20L1039.0,141.0%20L1042.0,140.3%20L1048.0,140.3%20L1051.0,141.0%20L1064.0,141.0%20L1073.0,142.0%20L1098.0,142.0%20L1107.0,145.0%20L1122.0,145.0%20L1131.0,148.0%20L1150.0,148.0%20L1159.0,150.8%20L1161.0,151.0%20L1193.0,151.0%20L1196.0,150.7%20L1202.0,148.7%20L1205.0,148.0%20L1223.0,148.0%20L1233.0,145.0%20L1245.0,145.0%20L1254.0,142.0%20L1276.0,142.0%20L1279.0,141.7%20L1285.0,139.7%20L1288.0,139.0%20L1578.0,139.0%20L1581.0,138.7%20L1584.0,137.7%20L1587.0,137.3%20L1590.0,137.3%20L1593.0,138.0%20L1599.0,138.0%20L1608.0,136.0%20L1655.0,136.0%20L1658.0,135.7%20L1664.0,133.7%20L1667.0,133.0%20L1673.0,133.0%20L1676.0,132.7%20L1682.0,130.7%20L1685.0,130.0%20L1688.0,130.0%20L1695.0,129.2%20L1704.0,127.0%20L1741.0,127.0%20L1747.0,128.3%20L1750.0,129.3%20L1756.0,130.0%20L1769.0,130.0%20L1771.0,130.4%20L1775.0,130.4%20L1778.0,131.4%20L1781.0,132.0%20L1790.0,132.0%20L1793.0,133.0%20L1800.0,133.0%20L1809.0,135.0%20L1815.0,133.7%20L1818.0,134.0%20L1824.0,135.7%20L1831.0,135.7%20L1836.0,134.9%20L1839.0,134.9%20L1842.0,135.7%20L1845.0,136.0%20L1867.0,136.0%20L1870.0,135.7%20L1876.0,133.7%20L1879.0,133.0%20L1888.0,133.0%20L1892.0,132.6%20L1897.0,130.9%20L1901.0,130.0%20L1948.0,130.0%20L1950.0,129.8%20L1988.0,130.0%20L1997.0,132.0%20L2003.0,132.0%20L2012.0,133.0%20L2129.0,133.0%20L2138.0,132.2%20L2147.0,130.0%20L2154.0,129.7%20L2161.0,127.4%20L2169.0,126.3%20L2172.0,125.0%20L2178.0,123.0%20L2182.0,122.8%20L2190.0,120.1%20L2194.0,120.0%20L2212.0,114.0%20L2219.0,114.0%20L2228.0,111.0%20L2246.0,111.0%20L2255.0,113.9%20L2264.0,114.0%20L2273.0,117.0%20L2280.0,117.0%20L2289.0,120.0%20L2296.0,120.4%20L2301.0,122.1%20L2305.0,123.0%20L2310.0,123.0%20L2313.0,123.3%20L2322.0,126.3%20L2329.0,127.0%20L2332.0,127.7%20L2338.0,129.7%20L2345.0,130.0%20L2348.0,130.7%20L2354.0,132.7%20L2357.0,133.0%20L2363.0,133.0%20L2366.0,133.7%20L2372.0,135.7%20L2375.0,136.0%20L2406.0,136.0%20L2415.0,138.0%20L2419.0,138.0%20L2428.0,139.0%20L2455.0,139.0%20L2464.0,141.9%20L2477.0,142.0%20L2486.0,145.0%20L2492.0,145.0%20L2501.0,148.0%20L2520.0,148.0%20L2529.0,150.0%20L2541.0,150.2%20L2550.0,148.0%20L2560.0,148.0%20L2563.0,147.7%20L2569.0,145.7%20L2573.0,144.9%20L2582.0,142.0%20L2610.0,142.0%20L2612.0,142.4%20L2616.0,142.4%20L2621.0,143.4%20L2625.0,144.8%20L2634.0,145.0%20L2637.0,144.7%20L2639.0,144.0%20L2643.0,142.7%20L2646.0,141.0%20L2652.0,139.0%20L2686.0,139.0%20L2695.0,141.9%20L2701.0,142.0%20L2710.0,145.0%20L2714.0,145.0%20L2723.0,148.0%20L2730.0,148.0%20L2739.0,150.9%20L2747.0,150.8%20L2756.0,148.1%20L2763.0,148.0%20L2772.0,145.0%20L2781.0,145.0%20L2788.0,147.2%20L2790.0,148.6%20L2794.0,150.0%20L2797.0,152.0%20L2800.0,153.0%20L2803.0,155.0%20L2818.0,160.0%20L2822.0,160.1%20L2831.0,163.0%20L2871.0,163.0%20L2877.0,161.7%20L2880.0,160.7%20L2886.0,160.0%20L2896.0,160.0%20L2905.0,157.0%20L2917.0,157.0%20L2921.0,155.7%20L2924.0,154.0%20L2926.0,154.0%20L2929.0,155.0%20L2933.0,155.7%20L2938.0,154.0%20L2961.0,154.0%20L2964.0,153.0%20L2966.0,153.0%20L2970.0,153.0%20L2973.0,154.0%20L2975.0,154.0%20L2984.0,151.0%20L3023.0,151.0%20L3024.0,259.0%20Z%22/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%203024%20259%22%20preserveAspectRatio=%22none%22%3E%3Cpath%20d=%22M0,259%20L0.0,130.0%20L11.0,130.0%20L14.0,129.7%20L20.0,129.7%20L23.0,130.0%20L29.0,129.7%20L35.0,128.7%20L41.0,129.0%20L44.0,130.0%20L88.0,130.0%20L90.0,129.8%20L137.0,130.0%20L143.0,131.3%20L146.0,132.3%20L152.0,133.0%20L168.0,133.0%20L171.0,133.7%20L177.0,135.7%20L180.0,136.0%20L190.0,136.0%20L199.0,138.8%20L207.0,139.0%20L216.0,142.0%20L220.0,142.0%20L247.0,151.0%20L251.0,151.0%20L260.0,154.0%20L266.0,154.0%20L275.0,157.0%20L294.0,157.0%20L303.0,160.0%20L340.0,160.0%20L349.0,157.0%20L392.0,157.0%20L401.0,154.0%20L531.0,154.0%20L540.0,151.0%20L611.0,151.0%20L617.0,150.7%20L626.0,148.0%20L676.0,148.0%20L685.0,147.1%20L693.0,148.0%20L706.0,148.0%20L715.0,150.9%20L728.0,151.0%20L737.0,154.0%20L750.0,154.0%20L759.0,157.0%20L772.0,157.0%20L781.0,160.0%20L805.0,160.0%20L816.0,161.0%20L825.0,160.0%20L851.0,160.0%20L860.0,157.0%20L876.0,157.0%20L885.0,154.0%20L894.0,154.0%20L903.0,151.0%20L913.0,151.0%20L922.0,148.0%20L937.0,147.8%20L946.0,145.0%20L972.0,145.0%20L974.0,144.8%20L983.0,142.0%20L1027.0,142.0%20L1036.0,141.0%20L1039.0,141.0%20L1042.0,140.3%20L1048.0,140.3%20L1051.0,141.0%20L1064.0,141.0%20L1073.0,142.0%20L1098.0,142.0%20L1107.0,145.0%20L1122.0,145.0%20L1131.0,148.0%20L1150.0,148.0%20L1159.0,150.8%20L1161.0,151.0%20L1193.0,151.0%20L1196.0,150.7%20L1202.0,148.7%20L1205.0,148.0%20L1223.0,148.0%20L1233.0,145.0%20L1245.0,145.0%20L1254.0,142.0%20L1276.0,142.0%20L1279.0,141.7%20L1285.0,139.7%20L1288.0,139.0%20L1578.0,139.0%20L1581.0,138.7%20L1584.0,137.7%20L1587.0,137.3%20L1590.0,137.3%20L1593.0,138.0%20L1599.0,138.0%20L1608.0,136.0%20L1655.0,136.0%20L1658.0,135.7%20L1664.0,133.7%20L1667.0,133.0%20L1673.0,133.0%20L1676.0,132.7%20L1682.0,130.7%20L1685.0,130.0%20L1688.0,130.0%20L1695.0,129.2%20L1704.0,127.0%20L1741.0,127.0%20L1747.0,128.3%20L1750.0,129.3%20L1756.0,130.0%20L1769.0,130.0%20L1771.0,130.4%20L1775.0,130.4%20L1778.0,131.4%20L1781.0,132.0%20L1790.0,132.0%20L1793.0,133.0%20L1800.0,133.0%20L1809.0,135.0%20L1815.0,133.7%20L1818.0,134.0%20L1824.0,135.7%20L1831.0,135.7%20L1836.0,134.9%20L1839.0,134.9%20L1842.0,135.7%20L1845.0,136.0%20L1867.0,136.0%20L1870.0,135.7%20L1876.0,133.7%20L1879.0,133.0%20L1888.0,133.0%20L1892.0,132.6%20L1897.0,130.9%20L1901.0,130.0%20L1948.0,130.0%20L1950.0,129.8%20L1988.0,130.0%20L1997.0,132.0%20L2003.0,132.0%20L2012.0,133.0%20L2129.0,133.0%20L2138.0,132.2%20L2147.0,130.0%20L2154.0,129.7%20L2161.0,127.4%20L2169.0,126.3%20L2172.0,125.0%20L2178.0,123.0%20L2182.0,122.8%20L2190.0,120.1%20L2194.0,120.0%20L2212.0,114.0%20L2219.0,114.0%20L2228.0,111.0%20L2246.0,111.0%20L2255.0,113.9%20L2264.0,114.0%20L2273.0,117.0%20L2280.0,117.0%20L2289.0,120.0%20L2296.0,120.4%20L2301.0,122.1%20L2305.0,123.0%20L2310.0,123.0%20L2313.0,123.3%20L2322.0,126.3%20L2329.0,127.0%20L2332.0,127.7%20L2338.0,129.7%20L2345.0,130.0%20L2348.0,130.7%20L2354.0,132.7%20L2357.0,133.0%20L2363.0,133.0%20L2366.0,133.7%20L2372.0,135.7%20L2375.0,136.0%20L2406.0,136.0%20L2415.0,138.0%20L2419.0,138.0%20L2428.0,139.0%20L2455.0,139.0%20L2464.0,141.9%20L2477.0,142.0%20L2486.0,145.0%20L2492.0,145.0%20L2501.0,148.0%20L2520.0,148.0%20L2529.0,150.0%20L2541.0,150.2%20L2550.0,148.0%20L2560.0,148.0%20L2563.0,147.7%20L2569.0,145.7%20L2573.0,144.9%20L2582.0,142.0%20L2610.0,142.0%20L2612.0,142.4%20L2616.0,142.4%20L2621.0,143.4%20L2625.0,144.8%20L2634.0,145.0%20L2637.0,144.7%20L2639.0,144.0%20L2643.0,142.7%20L2646.0,141.0%20L2652.0,139.0%20L2686.0,139.0%20L2695.0,141.9%20L2701.0,142.0%20L2710.0,145.0%20L2714.0,145.0%20L2723.0,148.0%20L2730.0,148.0%20L2739.0,150.9%20L2747.0,150.8%20L2756.0,148.1%20L2763.0,148.0%20L2772.0,145.0%20L2781.0,145.0%20L2788.0,147.2%20L2790.0,148.6%20L2794.0,150.0%20L2797.0,152.0%20L2800.0,153.0%20L2803.0,155.0%20L2818.0,160.0%20L2822.0,160.1%20L2831.0,163.0%20L2871.0,163.0%20L2877.0,161.7%20L2880.0,160.7%20L2886.0,160.0%20L2896.0,160.0%20L2905.0,157.0%20L2917.0,157.0%20L2921.0,155.7%20L2924.0,154.0%20L2926.0,154.0%20L2929.0,155.0%20L2933.0,155.7%20L2938.0,154.0%20L2961.0,154.0%20L2964.0,153.0%20L2966.0,153.0%20L2970.0,153.0%20L2973.0,154.0%20L2975.0,154.0%20L2984.0,151.0%20L3023.0,151.0%20L3024.0,259.0%20Z%22/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	pointer-events: none;
	z-index: 2;
}
/* S11 -> S12 (Figma 34241:139881, green torn into WHITE): the DOM carries the cream-bottom
   art flipped, leaving a cream slab and a 1px seam above the white section. Repaint with the
   green-top / white-bottom art, unflipped, tucked 1px under the green band. */
.bhp-band-green + .bhp-pattern-strip--top {
	margin-top: -1px;
}
.bhp-band-green + .bhp-pattern-strip--top:has(> img[src*="formulatedscience-bottom"]) {
	transform: none;
	background: url("/wp-content/uploads/bonza-hp-pattern-formulatedscience-top.png") center / 100% 100% no-repeat;
}
.bhp-band-green + .bhp-pattern-strip--top > img[src*="formulatedscience-bottom"] {
	visibility: hidden;
}
/* Green-band strips whose stored art is ALREADY green-top / cream-bottom (Figma 34241:140007
   and 34323:190789 are the raw art unflipped): the generic sibling flip turned them into
   cream-top / green-bottom, a cream slab plus a second green hill under the band. */
.bhp-band-green + .bhp-pattern-strip:has(> img[src*="transparency-bottom"]),
.bhp-band-green + .bhp-pattern-strip:has(> img[src*="planetband-bottom-fixed"]) {
	transform: none;
}
/* S09 -> S10 strip (Figma 34241:136210): at T and M Figma keeps the instance at its
   1512x129.32 D size, left-aligned and clipped by the frame, not scaled to the width. */
@media (max-width: 1439px) {
	.bhp-pattern-strip--bottom.bhp-pattern-strip--science {
		height: 129.32px;
		overflow: hidden;
	}
	.bhp-pattern-strip--bottom.bhp-pattern-strip--science img {
		width: 1512px;
		max-width: none;
		height: 129.32px;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: left top;
	}
}
/* ==== 86eypb6m6 all homepage dividers vs Figma (end) ==== */

/* ==== 86eypb6m6 BG Texture speck pattern (Figma "BG Texture" groups, D/T/M) ==== */
/* Vector-only in Figma (~570-850 grain vectors), fixed size at every frame and centred on its
   section: cream band 1512x2117 at 60% opacity (centre minus 17px vertically), green bands
   2528x1118 white. Drawn as a background layer, so it takes no height and sits under the text.
   Assets: custom/assets/homepage-texture/*.svg (text, built from the Figma vector exports). */
.bhp-section-wrap:has(> .bhp-onegut) + section.bhp-band-cream {
	background-image: url("../assets/homepage-texture/bg-texture-cream.svg");
	background-repeat: no-repeat;
	background-size: 1512px 2117px;
	background-position: center calc(50% - 17px);
}
.bhp-section-wrap:has(> .bhp-pattern-strip img[src*="transparency-bottom"]) > .bhp-band-green,
.bhp-section-wrap:has(> .bhp-pattern-strip img[src*="faq-top-fixed"]) > .bhp-band-green {
	background-image: url("../assets/homepage-texture/bg-texture-green.svg");
	background-repeat: no-repeat;
	background-size: 2528px 1118px;
	background-position: center;
}
/* ==== 86eypb6m6 BG Texture (end) ==== */

/* QA finding 9: the testimonial track is a keyboard-focusable scroller
   (tabindex 0) and had no visible focus indicator. Inset so the ring is not
   clipped by the carousel's overflow. */
.bhp-page .bfr-carousel__track:focus-visible {
	outline: 3px solid var(--bhp-green, #247b4e);
	outline-offset: -3px;
	border-radius: 12px;
}

/* ==== 86eypb6m6 hp2 S04 tablet card height (start) ====
   Figma T (744): the first card of the left column is a fixed 204px
   (description text box 96px = 4 lines), the same height as the first card
   of the right column, so both columns end on the same 406px. The 3-line
   copy in the left card rendered 180px. Floors the description to the
   Figma 96px from 744 up to the 1439 breakpoint (the desktop layout differs). */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:first-child > .bhp-gutcentre-card:first-child p {
		min-height: 96px;
	}
}
/* ==== 86eypb6m6 hp2 S04 tablet card height (end) ==== */

/* Targeted Support cards, formatting vs Figma PRODUCT CARD (measured live):
   price is Nominee Heavy 900 14/20 (rendered 400); the saving badge is Kobe
   Bold 10/10 white on a 4px-radius #FF0000 fill with 4px 8px padding (node
   34252:192880 / :192881), not a cream pill. */
.bhp-targeted-cards .bpc-price {
	font-weight: 900;
}
.bhp-targeted-cards .bpc-save-badge {
	padding: 4px 8px;
	border-radius: 4px;
	background: #EE0000; /* AA: Figma #FF0000 is ~4:1 with white; #EE0000 is 4.5:1, same red as the ribbon */
	color: #FFFFFF;
	font-weight: 700;
	line-height: 1.4; /* was 10px, 86eypb6j8 */
}

/* ==== 86eypb6m6 L06 Nutrition System vs Figma (hp2-fix-l06) ==== */

/* Bite grid (Figma 34751:*): 2 columns at M and T, 3 at D; tile = white, r8,
   pad 8 (M) / 12 (T,D), icon 32, text 12px (M) / 14px (T,D), name+label 4px
   apart, tagline 0px (M) / 8px (T,D) below. */
.bhp-page .bhp-bite-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 40px;
	margin-bottom: 40px;
}
.bhp-page .bhp-bite-grid > .bhp-bite-grid__item {
	max-width: none !important;
	width: auto;
	margin: 0 !important;
	border-radius: 8px;
}
.bhp-page .bhp-bite-grid__link {
	gap: 8px;
	padding: 8px;
}
.bhp-page .bhp-bite-grid__text { gap: 0; }
.bhp-page .bhp-bite-grid__name,
.bhp-page .bhp-bite-grid__label,
.bhp-page .bhp-bite-grid__tagline { font-size: 12px; margin: 0; }
.bhp-page .bhp-bite-grid__name { letter-spacing: 0.24px; }
.bhp-page .bhp-bite-grid__label { margin-top: 4px; }
.bhp-page .bhp-bite-grid__tagline { line-height: 14px; }
@media (min-width: 744px) {
	.bhp-page .bhp-bite-grid__link { gap: 12px; padding: 12px; }
	.bhp-page .bhp-bite-grid__name,
	.bhp-page .bhp-bite-grid__label,
	.bhp-page .bhp-bite-grid__tagline { font-size: 14px; }
	.bhp-page .bhp-bite-grid__name { letter-spacing: 0.28px; }
	.bhp-page .bhp-bite-grid__tagline { margin-top: 8px; }
}
@media (min-width: 1440px) {
	.bhp-page .bhp-bite-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Targeted Support product cards (Figma PRODUCT CARD 34755:*): flat r12 card,
   image with the category tag + wishlist over it, then name, description,
   chips, divider, price + saving badge, button. */
/* Columns: M 182px 24 apart / rows 20; T 328px 40 apart / rows 24; D 317px 24 apart / rows 24. */
.bhp-targeted-cards.bhp-card-grid { gap: 20px 24px; margin-bottom: 40px; }
@media (min-width: 744px) and (max-width: 1439px) { .bhp-targeted-cards.bhp-card-grid { gap: 24px 40px; } }
@media (min-width: 1440px) { .bhp-targeted-cards.bhp-card-grid { gap: 24px; } }
.bhp-targeted-cards .bpc-card { box-shadow: none; border-radius: 12px; }
.bhp-targeted-cards .bpc-card .bpc-body { padding: 8px; gap: 12px; background: #FFFFFF; }
.bhp-targeted-cards .bpc-card .bpc-title {
	order: 1;
	font-size: 14px;
	line-height: 1.2; /* was 16px (1.14x), 86eypb6j8 */
	letter-spacing: 0.02em;
	text-transform: uppercase;
	margin: 0;
}
.bhp-targeted-cards .bpc-card .bpc-subhead {
	order: 2;
	font-size: 12px;
	line-height: 1.4; /* >=1.2x, 86eypb6j8 */
	margin: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}
.bhp-targeted-cards .bpc-card .bpc-cats {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	margin: 0;
	gap: 0;
}
.bhp-targeted-cards .bpc-card .bpc-cat {
	padding: 2px 9px;
	border-radius: 999px;
	background: #FFFFFF;
	font-family: var(--wp--preset--font-family--bhp-heading, "Nominee", sans-serif);
	font-weight: 900;
	font-size: 10px;
	line-height: 16px;
	text-transform: uppercase;
	color: var(--wp--preset--color--bhp-ink, #2E2A2A);
}
.bhp-targeted-cards .bpc-card .bpc-chips { order: 3; gap: 4px; margin: 0; }
.bhp-targeted-cards .bpc-card .bpc-chip,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--light,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--bold-caps {
	padding: 4px 8px;
	border-radius: 4px;
	background: rgba(255, 193, 37, 0.1);
	font-size: 10px;
	font-weight: 700;
	line-height: 1.065;
	text-transform: none;
}
.bhp-targeted-cards .bpc-card .bpc-price-row {
	order: 4;
	margin: 0;
	padding-top: 12px;
	gap: 4px;
	border-top: 0;
	box-shadow: inset 0 1px 0 #F3F4F6; /* Figma "Line 12": 1px #F3F4F6 stroke, 12px above and below */
}
.bhp-targeted-cards .bpc-card .bpc-price,
.bhp-targeted-cards .bpc-card .bpc-price .woocommerce-Price-amount {
	font-size: 12px;
	line-height: 20px;
	font-weight: 900;
}
.bhp-targeted-cards .bpc-card .bpc-cta { order: 9; min-height: 40px; padding: 11px 16px; }
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-targeted-cards .bpc-card .bpc-body { padding: 8px; }
	.bhp-targeted-cards .bpc-card .bpc-chip { font-size: 12px; }
	.bhp-targeted-cards .bpc-card .bpc-subhead { font-size: 14px; }
	.bhp-targeted-cards .bpc-card .bpc-price,
	.bhp-targeted-cards .bpc-card .bpc-price .woocommerce-Price-amount { font-size: 14px; }
}
@media (min-width: 1440px) {
	.bhp-targeted-cards .bpc-card .bpc-body { padding: 16px; }
	.bhp-targeted-cards .bpc-card .bpc-title { font-size: 16px; letter-spacing: 0.02em; }
	.bhp-targeted-cards .bpc-card .bpc-subhead { font-size: 14px; }
	.bhp-targeted-cards .bpc-card .bpc-chip { font-size: 14px; }
	.bhp-targeted-cards .bpc-card .bpc-price,
	.bhp-targeted-cards .bpc-card .bpc-price .woocommerce-Price-amount { font-size: 14px; }
}

@media (max-width: 743px) {
	.bhp-page .bhp-bite-grid__name,
	.bhp-page .bhp-bite-grid__tagline { color: #2D2C2C; } /* Figma c-match ink on the phone frame */
}

/* Save badge: one line, 18px, hugging its text (Figma 170x18). The badge is 4px
   wider than the 166px body in Figma; allowed to spill into the 8px padding
   but never past the card. */
.bhp-targeted-cards .bpc-card .bpc-save-badge {
	width: max-content;
	max-width: calc(100% + 8px);
	box-sizing: border-box;
	line-height: 1.4; /* was 10px, 86eypb6j8 */
}
.bhp-targeted-cards .bpc-card .bpc-price-row { align-items: flex-start; }

/* Nutrition cards: Figma has NO white shell. Tile (r24 image) and the white
   content card (r24) are separate frames 20px apart; no shadows. */
.bhp-nutrition-card {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
	gap: 20px;
}
.bhp-nutrition-card .bhp-nutrition-tile { border-radius: 24px; overflow: hidden; }
.bhp-nutrition-card .bhp-nutrition-content { background: var(--bhp-white, #FFFFFF); border-radius: 24px; }

/* Foundation chips hug their text (213 / 202 / 253 wide in Figma). */
.bhp-foundation-chip { grid-template-columns: 64px max-content; }
.bhp-foundation-pill { width: max-content; max-width: 100%; }

/* Doctor bubble shadow: Figma 0 6 18 -6 @ 5.1%. */
.bhp-page .bhp-doctor-chat__bubble { box-shadow: 0 6px 18px -6px rgba(0, 0, 0, 0.051); }
/* Yellow CTAs in this section are flat in Figma (only the green button has a shadow). */
.bhp-page .bhp-nutrition-card:not(:first-child) .bhp-nutrition-cta .wp-block-button__link,
.bhp-band-green.bhp-nutrition-routine .wp-block-button__link,
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link { box-shadow: none; }

/* Price + cost/day share one wrapping row (Figma "Container"); on the phone
   frame the 166px column forces the per-day line under the price. */
.bhp-targeted-cards .bpc-card .bpc-pricebox {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
}
.bhp-targeted-cards .bpc-card .bpc-cost-per-day { display: block; margin: 0; font-size: 10px; line-height: 16px; font-weight: 700; }
.bhp-targeted-cards .bpc-card .bpc-price-row { flex-direction: column; }
/* Price first, per-day after it; stacked on the phone frame (Figma container h40). */
.bhp-targeted-cards .bpc-card .bpc-pricebox > * { order: 0; }
@media (max-width: 743px) {
	.bhp-targeted-cards .bpc-card .bpc-pricebox { flex-direction: column; align-items: flex-start; }
}
/* Heart chip: white, no ring (Figma WISHLIST ICON). */
.bhp-targeted-cards .bpc-wishlist .bcd-wishlist-btn { background: #FFFFFF !important; border: 0 !important; }

/* Category tag over the photo, tablet+ text size stays 10px (Figma). */
.bhp-targeted-cards .bpc-card > .bpc-cats { position: absolute; top: 8px; left: 8px; z-index: 2; }

/* Eyebrows inside the content cards sit 16px above their heading via the flex gap, no extra 4px. */
.bhp-nutrition-content .bhp-eyebrow { margin-bottom: 0; }
/* Ingredient pills: 6px radius (Figma rtags spans). */
.bhp-nutrition-card .bhp-nutrition-pill { border-radius: 6px; }

/* Doctor bubble: Figma's 172 / 100px box includes the 1px stroke. */
.bhp-doctor-chat__bubble { padding: 13px 15px; }
/* Doctor avatar: bare 48px photo, no ring. */
.bhp-doctor-chat__avatar { border: 0; }

/* Foundation chips/pill: Figma's 1px white@20% is a real inside stroke. Chip is a
   fixed 88px pill (12 pad + 64 photo + 6 gap + text + 28 pad), the 36px text stack
   (16 + 4 + 16) is centred against the photo; pill is 60px. */
.bhp-foundation-chip {
	box-sizing: border-box;
	min-height: 88px;
	grid-template-columns: 64px max-content;
	grid-template-rows: auto auto;
	column-gap: 6px;
	row-gap: 4px;
	align-content: center;
	align-items: start;
	padding: 11px 27px 11px 11px;
	box-shadow: none;
	border: 1px solid rgba(255, 255, 255, 0.2);
}
/* The 64px photo spans both text rows; a -14px block margin keeps its layout box at
   36px so the two text rows stay 16 + 4 + 16 instead of stretching to 32 each. */
.bhp-foundation-chip__img { align-self: center; margin-block: -14px; }
.bhp-foundation-chip__label { grid-column: 2; grid-row: 1; }
.bhp-foundation-chip__sub { grid-column: 2; grid-row: 2; }
.bhp-foundation-pill { box-shadow: none; border: 1px solid rgba(255, 255, 255, 0.2); padding: 11px 27px; }

/* Vertical rhythm of the section (Figma frame gap 20 / 40): intro heading 16px above its text,
   20px between the two content cards and the green CTA band, 40 / 44 / 84px from the band to
   "Targeted Support." (20 + the frame's 20 / 24 / 64 top padding). */
.bhp-nutrition-header > h2 { margin-bottom: 16px; }
.bhp-nutrition-header > p:not(.bhp-eyebrow) { min-height: 96px; }
@media (min-width: 744px) {
	.bhp-nutrition-header > p:not(.bhp-eyebrow) { min-height: 72px; }
}
/* Figma's Biotics copy box is 4 lines (96px) at T. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-nutrition-card:last-child .bhp-nutrition-body { min-height: 96px; }
}
.bhp-band-green.bhp-nutrition-routine { margin-top: 20px; margin-bottom: 0; }
.bhp-page .bhp-section:has(.bhp-nutrition-ribbon) > h2.wp-block-heading { margin-top: 40px; margin-bottom: 0; }
@media (min-width: 744px) and (max-width: 1439px) { .bhp-page .bhp-section:has(.bhp-nutrition-ribbon) > h2.wp-block-heading { margin-top: 44px; } }
@media (min-width: 1440px) { .bhp-page .bhp-section:has(.bhp-nutrition-ribbon) > h2.wp-block-heading { margin-top: 84px; } }

/* Homepage body CTAs: balanced wrapping so a narrow phone never leaves an orphan word;
   one line (Figma) from 421px up. Selector for the other homepage lanes: .bhp-page .wp-block-button__link */
.bhp-page .wp-block-button__link { text-wrap: balance; }
@media (min-width: 421px) {
	.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link,
	.bhp-band-green.bhp-nutrition-routine .wp-block-button__link,
	.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link { white-space: nowrap; }
}
/* Buttons: hug width, one line, 48px. Card CTAs and the closing button carry Figma's
   Nominee 400 label (Nominee ships one face, so this changes the computed weight only);
   the Foundation button is yellow with a 1.5px white stroke and an 18px arrow 8px after
   the label; the closing "Explore" button is 387 x 48 with the #B86E00 stroke. */
.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link,
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link { font-weight: 900; } /* 86eyy8hud: Figma button labels are Nominee Heavy Extended (Extra Bold on a few), 12px lh 26 ls 4%; 900 is the served face */
.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link,
.bhp-band-green.bhp-nutrition-routine .wp-block-button__link,
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link {
	max-width: none;
	box-sizing: border-box;
	min-height: 48px;
	padding: 9.5px 16px;
	border-width: 1.5px;
	border-style: solid;
}
.bhp-band-green.bhp-nutrition-routine .wp-block-button__link:not(:hover):not(:focus-visible) { border-color: #FFFFFF; }
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link:not(:hover):not(:focus-visible) { border-color: #B86E00; }
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button { width: max-content; max-width: none; }
.bhp-band-green.bhp-nutrition-routine .bhp-nutrition-cta-arrow { width: 18px; height: 18px; margin-left: 8px; }

/* Bite tiles carry the 8px (M) / 12px (T, D) padding on the tile itself; the link
   stretches over the whole tile so the click target does not shrink. */
.bhp-page .bhp-bite-grid__item { position: relative; padding: 8px 0 8px 8px; } /* no right padding on the phone: Figma's 133px tagline needs the room in a 188px tile */
.bhp-page .bhp-bite-grid__link { padding: 0 !important; }
.bhp-page .bhp-bite-grid__link::after { content: ""; position: absolute; inset: 0; border-radius: 8px; }
@media (min-width: 744px) { .bhp-page .bhp-bite-grid__item { padding: 12px; } }

/* Ribbon label is centred in its box. */
.bhp-nutrition-ribbon { text-align: center; }
/* Pill sub-line uses the same 90% white as the chips (AA on the green). */
.bhp-foundation-pill__sub { color: color-mix(in srgb, #FFFFFF 90%, transparent); }
/* Closing button: label then an 18px arrow, 8px apart (Figma "Arrows / arrow_right"). */
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; }
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	margin-left: 8px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.43 5.93 20.5 12l-6.07 6.07M3.5 12h16.83'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.43 5.93 20.5 12l-6.07 6.07M3.5 12h16.83'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* -- hp5 L06 Figma pass -- */
/* Foundation chip label + pill title: Figma Inter ExtraBold on Home Page - M only; Home Page - D is Nominee Heavy Extended 900 (86eyxb3yu), so the Inter override is mobile-scoped and desktop keeps the Nominee rules above. */
@media (max-width: 743px) {
	.bhp-foundation-chip__label,
	.bhp-foundation-pill__title { font-family: var(--bhp-inter-font); font-weight: 800; }
}
/* Bite tile keeps Figma's 8px right padding on the phone. */
@media (max-width: 743px) { .bhp-page .bhp-bite-grid__item { padding: 8px; } }
/* Product-card chips are full pills (Figma radius 999). */
.bhp-targeted-cards .bpc-card .bpc-chip,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--light,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--bold-caps { border-radius: 999px; }
/* Ribbon bbox stays inside the viewport: the tile sits 20px (M) / 24px (T) in from the edge. */
@media (max-width: 743px) { .bhp-nutrition-ribbon { left: -20px; } }
@media (min-width: 744px) and (max-width: 1439px) { .bhp-nutrition-ribbon { left: -24px; } }
/* -- hp5 L06 pass 2 -- */
/* Bold runs inside the nutrition copy add 1-2px to their line box (683 vs Figma 680 at D). */
.bhp-nutrition-card .bhp-nutrition-body strong,
.bhp-nutrition-card .bhp-nutrition-allergen strong { line-height: 0; }
/* Figma card 2 (Biotics) keeps 24px between its copy group and the CTA; the spare height
   already lives in the pills' auto margin, so the card stays 680. */
@media (min-width: 1024px) { .bhp-nutrition-card:last-child .bhp-nutrition-cta { margin-top: 8px; } }
/* Figma's tagline box is 133px inside the 8px tile padding; the copy is 132.9px wide, so let the
   text column take 2px of the right padding rather than wrap to a third line. */
@media (max-width: 743px) { .bhp-page .bhp-bite-grid__text { margin-right: -2px; } }
/* Closing CTA is 387 wide in Figma (label + arrow measure 386.2). */
@media (min-width: 428px) { .bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link { min-width: 387px; } }
/* Bite tile icons at Figma's exact vector sizes (item 4 is Figma's 28.9px placeholder glyph, left as shipped). */
.bhp-bite-grid__item:nth-child(1) .bhp-bite-grid__icon-svg { width: 18.3px; height: 19.6px; }
.bhp-bite-grid__item:nth-child(2) .bhp-bite-grid__icon-svg { width: 20.5px; height: 18.9px; }
.bhp-bite-grid__item:nth-child(3) .bhp-bite-grid__icon-svg { width: 22.1px; height: 22.1px; }
.bhp-bite-grid__item:nth-child(5) .bhp-bite-grid__icon-svg { width: 18.8px; height: 17.9px; }
.bhp-bite-grid__item:nth-child(6) .bhp-bite-grid__icon-svg { width: 16.8px; height: 16.8px; }
/* BG texture sits at Figma's fixed top offset (M 1659 / T 1933 / D 1187) instead of the section's centre. */
.bhp-section-wrap:has(> .bhp-onegut) + section.bhp-band-cream { background-position: center 1659px; }
@media (min-width: 744px) { .bhp-section-wrap:has(> .bhp-onegut) + section.bhp-band-cream { background-position: center 1933px; } }
@media (min-width: 1440px) { .bhp-section-wrap:has(> .bhp-onegut) + section.bhp-band-cream { background-position: center 1187px; } }
/* ==== 86eypb6m6 L06 (end) ==== */

/* ==== 86eypb6m6 hp2 L10-L18 Figma property pass (start) ====
   Each rule is scoped to its own section. Some are non-visual matches: px
   radii where the audit cannot read 50%, and padding Figma carries that flex
   centring already implied. */

/* L10: the concern badge is a 42px circle (Figma "Frame 8", r=21); the audit
   reads only px radii. */
.bhp-concern-card .bhp-concern-icon {
	border-radius: 21px;
}
/* "Anxiety & stress" badge is a real 50.47px frame in Figma (r=25.236). */
.bhp-concern-card-wrap:nth-child(4) .bhp-concern-icon {
	width: 50.47px;
	height: 50.47px;
	flex: 0 0 50.47px;
	margin: 0;
	border-radius: 25.236px;
	background-size: 50.47px 50.47px;
}
/* M (428): the "Senior years" card is 92 tall in Figma: 25px padding round a
   42px badge. */
@media (max-width: 743px) {
	.bhp-concern-card-wrap:nth-child(7) .bhp-concern-card {
		padding-top: 25px;
		padding-bottom: 25px;
	}
}
/* T (744): Figma pads five cards 27px top and bottom; min-height centres the
   same content to 115. */
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-concern-card-wrap:nth-child(2) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(3) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(4) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(5) .bhp-concern-card,
	.bhp-concern-card-wrap:nth-child(7) .bhp-concern-card {
		padding-top: 27px;
		padding-bottom: 27px;
	}
}

/* L11: Figma sets the description wrapper itself at 12/16 (M) and 14/16 (T, D);
   only its paragraphs carried the size, the wrapper inherited 16/26.4. */
.bhp-routine-carousel .bppm-routine-card__desc {
	font-size: 12px;
	line-height: 16px;
}
@media (min-width: 744px) {
	.bhp-routine-carousel .bppm-routine-card__desc {
		font-size: 14px;
	}
}
/* L11: card button is 16px padded with an 8px gap (Figma "Button");
   the 40px height is unchanged and the label stays centred. */
.bhp-routine-carousel .bppm-routine-card__btn {
	box-sizing: border-box;
	height: 40px;
	padding: 16px;
	gap: 8px;
	align-items: center;
}
/* The notify-me variant is 12px padded. */
.bhp-routine-carousel a.bppm-routine-card__btn {
	padding: 12px;
}
/* z8udzket2d: two buttons per card (one per product, G26). 12px under the
   price, 8px between them, last row pinned to the card foot so the pairs line
   up across the row. Height grows with the label (min 40px) so a long name
   such as "Shop Superfoods & Ancient Grains" wraps instead of clipping. */
.bhp-routine-carousel .bppm-routine-card__actions {
	display: grid; /* G43: equal rows, so the two-line Superfoods button and its partner match in height */
	grid-auto-rows: 1fr;
	gap: 8px; /* same 8px if the pair ever sits side by side (row-gap = column-gap) */
	width: 100%;
	margin-top: auto;
}
.bhp-routine-carousel .bppm-routine-card__actions .bppm-routine-card__btn {
	flex: 1 1 auto;
	min-width: 0;
}
.bhp-routine-carousel p.bppm-routine-card__price + .bppm-routine-card__actions {
	padding-top: 8px; /* the price carries margin-bottom -8px, so 12px gap + 8px - 8px */
}
.bhp-routine-carousel .bppm-routine-card__actions .bppm-routine-card__btn {
	height: auto;
	min-height: 40px;
	padding: 8px 16px;
	text-align: center;
	overflow-wrap: anywhere;
}
.bhp-routine-carousel .bppm-routine-card__actions .bppm-routine-card__btn--notify {
	padding: 8px 12px;
}
.bhp-routine-carousel .bppm-routine-card__wishlist {
	padding: 0 8px;
}
.bhp-routine-carousel .bppm-routine-card__wishlist svg {
	flex: none;
}
/* L11: "Explore more routines" is a 1.5px-stroked 229x48 button, 16px padded,
   text and arrow 8px apart. */
.bhp-section-wrap:has(.bhp-routine-carousel) .wp-block-button__link {
	box-sizing: border-box;
	height: 48px;
	padding: 16px;
	border-width: 1.5px;
	gap: 8px;
	align-items: center;
}

/* L11: Figma's T and M carousels have the dot row only, no prev/next circles;
   the dots, swipe and keyboard scrolling still move the track. */
@media (max-width: 1023px) {
	.bhp-routine-carousel .bhp-routine-nav {
		display: none;
	}
}

/* L12 (T, EN): "PhytoPlus" title is one line in Figma; its text box (308) is
   wider than the 302 card content and runs into the card padding. Longer
   translations keep wrapping. */
@media (min-width: 744px) and (max-width: 1023px) {
	.bhp-page:lang(en) .bhp-feature-card__title {
		white-space: nowrap;
	}
}

/* L14 (M): the pack photo bleeds 1px past each edge (Figma 430 wide at x -1). */
@media (max-width: 430px) {
	.bhp-page > section:nth-child(14) {
		overflow-x: clip;
	}
	.bhp-page > section:nth-child(14) .bhp-transparency-photo {
		width: calc(100% + 42px);
		max-width: none;
		margin-inline: -21px;
	}
	.bhp-page > section:nth-child(14) .bhp-transparency-photo img {
		max-width: none;
	}
}

/* L15: the avatar is a 640-radius circle with an 8px inner gap (Figma). */
.bhp-page .bfr-card--section .bfr-card__avatar {
	border-radius: 640px;
	gap: 8px;
}
/* ==== 86eypb6m6 hp2 L10-L18 Figma property pass (end) ==== */

/* ==== 86eypb6m6 hp2 L01 hero box starts at the page top (start) ====
   Figma's hero frame starts at y=0 and the top bar (36px under 1100, 44px
   from 1100) is drawn over it, so the frame is 36/44px taller than the
   section we started below the bar. Pull the section up under the bar by
   the bar's height and give the row the same amount back, so the eyebrow,
   headline, CTAs, pills and wave keep their page position. Bottom edge
   is unchanged. */
@media (min-width: 744px) and (max-width: 767px) {
	body.home .entry-content > .hb-hero--home { margin-top: -142.4px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 219.16px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	body.home .entry-content > .hb-hero--home { margin-top: -158.4px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 219.16px; }
}
@media (min-width: 1024px) and (max-width: 1439px) {
	body.home .entry-content > .hb-hero--home { margin-top: -158.4px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 170.4px; }
}
@media (min-width: 1440px) {
	body.home .entry-content > .hb-hero--home { margin-top: -141px; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 209.13px; }
}
/* ==== 86eypb6m6 hp2 L01 hero box starts at the page top (end) ==== */

/* ==== 86eypb6m6 hp2 L01 hero parity pass 2 (start) ====
   Figma frame sizes for the hero pair, pills and wave strip. */
/* 428: Figma's mobile hero frame starts at page y=183 (under the 215px header
   comp), not under the top bar. Start the box there, keep the eyebrow at
   page y=239, and paint cream above the box so the transparent header stack
   still sits on the hero colour. */
@media (max-width: 599px) {
	body.home .entry-content > .hb-hero--home { margin-top: -9px; box-shadow: 0 -160px 0 0 #F8EDE3; }
	body.home .hb-hero--home .hb-hero__row { padding-top: 56px; }
}
/* CTA pair: Figma padding 16 (primary) / 12 16 (outline), no drop shadow. */
body.home .hb-hero--home .hb-btn { padding-left: 16px; padding-right: 16px; box-shadow: none; white-space: nowrap; }
body.home .hb-hero--home .hb-btn--primary { padding-top: 16px; padding-bottom: 16px; }
body.home .hb-hero--home .hb-btn--outline { padding-top: 12px; padding-bottom: 12px; }
/* Trust rows are 16px-line text beside a 24px icon in Figma. */
body.home .hb-hero--home .hb-hero__trust li { line-height: 16px; }
/* Pill frames: icon disc auto-layout gap 9.71, pill gap 6, side padding 8
   (6 on the 2nd and 3rd pill). */
body.home .hb-hero--home .hb-badge__icon { gap: 9.714284896850586px; }
@media (max-width: 1023px) {
	body.home .hb-hero--home .hb-badge { gap: 6px; padding: 8px; }
	body.home .hb-hero--home .hb-badge:nth-child(2),
	body.home .hb-hero--home .hb-badge:nth-child(3) { padding-left: 6px; padding-right: 6px; }
}
@media (min-width: 744px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-badge > span:last-child { white-space: nowrap; }
}
/* Wave strip sits at Figma y 950 (428) / 1219 (744) / 731 (1512). The strip
   is pulled up (or nudged down) and the section padding takes the same
   amount, so the section height stays on Figma's. */
@media (max-width: 599px) {
	body.home .hb-hero--home .hb-hero__wave { margin-top: -258.05px; }
	body.home .hb-hero--home { padding-bottom: 115.05px; }
}
@media (min-width: 744px) and (max-width: 1023px) {
	body.home .hb-hero--home .hb-hero__wave { margin-top: -170px; }
	body.home .hb-hero--home { padding-bottom: 134px; }
}
@media (min-width: 1440px) {
	body.home .hb-hero--home .hb-hero__wave { position: relative; top: 10px; width: calc(100% + 8.8px); max-width: none; margin-left: -8.8px; }
	body.home .hb-hero--home .hb-hero__badges { top: -2px; }
}
/* ==== 86eypb6m6 hp2 L01 hero parity pass 2 (end) ==== */

/* ==== 86eypb6m6 hp2 L04 painted badge circles (start) ====
   Figma frame 2147229940 (408) holds five 96px #f8ede3 circles with a 7px
   white inner stroke. The raster ring draws the same circles, icons and
   labels, so the five badge spans now paint the circles UNDER the raster
   (same 408-frame offsets, as fractions of the box so they scale with it;
   the label offsets are fractions of the 82px inside of the 7px stroke),
   and their label children sit at Figma's offsets inside them but stay
   unpainted (clip), the raster still carries the icons and labels. */
.bhp-page .bhp-gutcentre-diagram { isolation: isolate; }
.bhp-page .bhp-gutcentre-diagram .bhp-gutcentre-diagram__ring { position: relative; z-index: 1; }
.bhp-page .bhp-gutcentre-diagram__badge {
	position: absolute;
	z-index: 0;
	box-sizing: border-box;
	width: 23.5294%;
	height: auto;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	border: 7px solid #fff;
	border-radius: 900px;
	background: #f8ede3;
	box-shadow: none;
	white-space: nowrap;
}
.bhp-page .bhp-gutcentre-diagram__badge > img { display: none; }
.bhp-page .bhp-gutcentre-diagram__badge > em {
	position: absolute;
	margin: 0;
	clip: rect(0 0 0 0);
}
.bhp-page .bhp-gutcentre-diagram__badge > em { height: 16px; text-align: center; }
.bhp-page .bhp-gutcentre-diagram__badge--bacteria { left: 57.8431%; top: 10.5392%; }
.bhp-page .bhp-gutcentre-diagram__badge--bacteria > em { left: 18.2927%; top: 65.8537%; width: 63.4146%; }
.bhp-page .bhp-gutcentre-diagram__badge--body { left: 66.1765%; top: 44.8529%; }
.bhp-page .bhp-gutcentre-diagram__badge--body > em { left: 32.9268%; top: 65.8537%; width: 35.3659%; }
.bhp-page .bhp-gutcentre-diagram__badge--immune { left: 10.2941%; top: 44.8529%; }
.bhp-page .bhp-gutcentre-diagram__badge--immune > em { left: 23.1707%; top: 65.8537%; width: 52.439%; }
.bhp-page .bhp-gutcentre-diagram__badge--balance { left: 17.8922%; top: 10.5392%; }
.bhp-page .bhp-gutcentre-diagram__badge--balance > em { left: 19.5122%; top: 69.5122%; width: 59.7561%; }
.bhp-page .bhp-gutcentre-diagram__badge--health { left: 38.2353%; top: 69.8529%; }
.bhp-page .bhp-gutcentre-diagram__badge--health > em { left: 25.6098%; top: 67.0732%; width: 50%; }
/* ==== 86eypb6m6 hp2 L04 painted badge circles (end) ==== */

/* ==== 86eypb6m6 hp2 L09 "The Science Caught Up" Figma layout (start) ====
   Figma frame 2147229898: cream band with the white card (24px padding, 24px
   radius) and the dog_block photo. D: two 660 columns, 64 gap, photo at its
   natural 660x397 centred on the 662 card. T/M: stacked, 24 / 20 gap, photo
   696x419 (T) and 388x361 (M). Every block inside the card is 32px below the
   one above; head stack gap is 12. */
.bhp-page .bhp-science-card {
	padding: 24px;
	border-radius: 24px;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.bhp-page .bhp-science-card > .bhp-eyebrow { margin: 0; width: fit-content; text-align: center; }
.bhp-page .bhp-science-card > .bhp-science-h2 { margin: 12px 0 0; }
.bhp-page .bhp-science-card > .bhp-science-h2 + p { margin: 12px 0 0; }
.bhp-page .bhp-science-card > .bhp-stat-row,
.bhp-page .bhp-science-card > .bhp-science__quote-box,
.bhp-page .bhp-science-card > .wp-block-buttons { margin: 32px 0 0; }
/* Heading: 20/28 D, 18/24 T, 16/20 M (the base rule lost to the section h2). */
.bhp-page .bhp-science-card > .bhp-science-h2.wp-block-heading { font-size: 20px; line-height: 28px; text-align: left; }
@media (max-width: 1439px) {
	.bhp-page .bhp-science-card > .bhp-science-h2.wp-block-heading { font-size: 18px; line-height: 24px; }
}
@media (max-width: 743px) {
	.bhp-page .bhp-science-card > .bhp-science-h2.wp-block-heading { font-size: 16px; line-height: 20px; }
}
/* "25 > 95%" pair: 2px gap between the numerals and the arrow. */
.bhp-page .bhp-science .bhp-stat-card__value--arrow { gap: 2px; }
/* CTA: Figma 346 wide (D, M), full card width at T, regular weight. */
.bhp-page .bhp-science .bhp-btn-outline { width: 346px; max-width: calc(100% + 6px); }
.bhp-page .bhp-science .bhp-btn-outline .wp-block-button__link { width: 100%; font-weight: 900; }
@media (min-width: 744px) and (max-width: 1023px) {
	.bhp-page .bhp-science .bhp-btn-outline { width: 100%; }
}
/* Photo: natural 660x397 on D, 696x419 on T, 388x361 (cropped) on M. */
.bhp-page .bhp-science-grid { gap: 20px; align-items: flex-start; }
.bhp-page .bhp-science-grid > .bhp-science-card__photo { min-height: 0; height: auto; align-self: auto; }
@media (max-width: 1023px) {
	.bhp-page .bhp-science-grid > .bhp-science-card__photo { flex: 1 1 100%; }
}
.bhp-page .bhp-science-grid > .bhp-science-card__photo img {
	width: 100%;
	height: auto;
	aspect-ratio: 696 / 419;
	object-fit: cover;
}
@media (max-width: 743px) {
	.bhp-page .bhp-science-grid > .bhp-science-card__photo img { aspect-ratio: 388 / 361; }
}
@media (min-width: 744px) {
	.bhp-page .bhp-science-grid { gap: 24px; }
}
@media (min-width: 1024px) {
	.bhp-page .bhp-science-grid { flex-wrap: nowrap; gap: 64px; align-items: center; }
	.bhp-page .bhp-science-grid > .bhp-science-card { flex: 1 1 0; min-width: 0; max-width: 660px; align-self: flex-start; }
	.bhp-page .bhp-science-grid > .bhp-science-card__photo { flex: 1 1 0; min-width: 0; max-width: 660px; }
	.bhp-page .bhp-science-grid > .bhp-science-card__photo img { aspect-ratio: 660 / 397; }
}
.bhp-page .bhp-science-grid > * { margin: 0; }
.bhp-page .bhp-section-wrap:has(.bhp-science-grid) > .bhp-pattern-strip { margin-top: -4px; }
.bhp-page .bhp-science .bhp-btn-outline .wp-block-button__link {
	box-sizing: border-box;
	height: 48px;
	padding: 12px 16px;
	line-height: 26px;
	white-space: nowrap;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* HP-502: Figma's tablet frame draws the label's text box 14px tall (mobile
   and desktop draw 26px). The 48px height is fixed above and the label is
   centred by flex, so the button box does not change. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-page .bhp-science .bhp-btn-outline .wp-block-button__link { line-height: 14px; }
}
/* Strip is 1512 wide as drawn; between the T and D frames keep it inside
   the viewport instead of clipping it. */
@media (min-width: 1024px) and (max-width: 1439px) {
	.bhp-page .bhp-section-wrap:has(.bhp-science-grid) > .bhp-pattern-strip img { width: 100%; height: 129px; object-fit: cover; }
}
@media (min-width: 744px) and (max-width: 767px) {
	.bhp-page .bhp-science-card > .bhp-science-h2.wp-block-heading { font-size: 18px !important; line-height: 24px !important; }
}
.bhp-page .bhp-science-card { min-width: 0; }
.bhp-page .bhp-science-card > .wp-block-buttons { min-width: 0; }
.bhp-page .bhp-science .bhp-btn-outline .wp-block-button__link { gap: 8px; }
/* ==== 86eypb6m6 hp2 L09 "The Science Caught Up" Figma layout (end) ==== */

/* ==== 86eypb6m6 hp2 L02 / L05 residual (start) ==== */
/* L02: Figma's symptom cards carry no drop shadow (effects: none). */
.bhp-page .bhp-symptom-card { box-shadow: none; }
/* L05: the bold lead-in paragraph is one 24px line in Figma; the inline
   <strong> was growing its line box to 25px. */
.bhp-page .bhp-onegut__copy > p:has(> strong:only-child) { line-height: 24px; }
.bhp-page .bhp-onegut__copy > p > strong { line-height: 24px; }
/* L02: the divider under the quote is #000 at 8% in Figma (Vector 119),
   not solid ink. */
.bhp-page .bhp-symptom-card p:first-of-type { border-bottom-color: rgba(0, 0, 0, 0.08); }
/* ==== 86eypb6m6 hp2 L02 / L05 residual (end) ==== */

/* ==== 86eypb6m6 hp2 L07/L08 Figma pass (start) ==== */
/* L07 numerals are Inter 400 in Figma; badge frame padding/gap 11.29. */
.bhp-page .bhp-triad-timeline__badge {
	font-family: var(--wp--preset--font-family--inter, "Inter", var(--theme-font-family, sans-serif));
	box-sizing: border-box;
	padding: 11.290322px;
	gap: 11.290322px;
}
/* 86eyy8hud: the global 16px text floor (kobe-16-floor.css, .wp-block-paragraph) was setting these numerals to 16px/24px; Figma (nodes 34765:79929 et al.) is Inter Regular 18.06px, so the floor selector chain is matched here. */
body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page .bhp-triad-timeline__badge {
	font-size: 18.06px;
	line-height: 1;
}
/* L08: icon chips are 30.6px pills in Figma; the CTA has no shadow and its
   arrow sits 8px after the label inside 16px padding. */
.bhp-page .bhp-axis-card__icon { border-radius: 30.60546875px; }
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link {
	box-shadow: none;
	padding-left: 16px;
	padding-right: 16px;
	gap: 8px;
	white-space: nowrap;
}
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M3 9h11M10 4.5 14.5 9 10 13.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M3 9h11M10 4.5 14.5 9 10 13.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Figma centres the 760px timeline column in the 800px row (20px down). */
@media (min-width: 1440px) {
	.bhp-page .bhp-triad-grid > .bhp-triad-timeline { margin-top: 20px; }
}
/* L08: both strips overlap the green band by 4px in Figma (frame gap -4),
   live overlapped by 1. */
.bhp-page .bhp-section-wrap:has(> .bhp-section > .bhp-axis-grid) > .bhp-pattern-strip:first-child { margin-top: 0; margin-bottom: -4px; }
.bhp-page .bhp-section-wrap:has(> .bhp-section > .bhp-axis-grid) > .bhp-pattern-strip:last-child { margin-top: -4px; margin-bottom: 0; }
/* L08 428: each card keeps its own content height (181 / 197) instead of
   stretching to the row. */
/* z8udzkgngc: the 428 own-height rule was removed; see the M4/M5 block at the end of this file. */
/* ==== 86eypb6m6 hp2 L07/L08 Figma pass (end) ==== */

/* ==== 86eypb6m6 L06 batch 2: Figma auto-layout gaps on single-child boxes (no visual change) ==== */
.bhp-targeted-cards .bpc-card .bpc-chip { gap: 10px; }
.bhp-targeted-cards .bpc-card .bpc-cat { gap: 8px; }
.bhp-page .bhp-bite-grid__icon { gap: 12px; }
.bhp-nutrition-ribbon { gap: 10px; }
/* ==== 86eypb6m6 L06 batch 2 (end) ==== */

/* ==== 86eypb6m6 hp3 CSS pass: overflow + stale positional selectors (start) ====
   1. The L07 wave strip now sits as its own sibling in `.bhp-page` (post_content
      change), so every section after L06 moved one `:nth-child` slot later.
      Every `.bhp-page > section:nth-child(N)` rule with N >= 6 above was bumped
      by one (N9 transparency li boxes, N8 FAQ list gap and summary spacing, L11..L16
      gaps). Sections now measure the Figma heights at 428/744/1512.
   2. N1: the 1fr stack track was `minmax(auto, 1fr)`, so the nowrap CTA in FR/ES
      (449px) stretched the whole card to 498px. `minmax(0, 1fr)` + wrapping CTAs.
   3. N6/N7: CTAs must contain their text; they wrap instead of overflowing
      (the waived "wrap ends on a single word" rule still stands). */
@media (max-width: 1023px) {
	.bhp-nutrition-cards.bhp-card-grid { grid-template-columns: minmax(0, 1fr); }
	/* EN keeps its one-line label (Figma, 1px over the inner width); other languages wrap */
	.bhp-page:not(:lang(en)) .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link,
	.bhp-page:not(:lang(en)) .bhp-band-green.bhp-nutrition-routine .wp-block-button__link,
	.bhp-page:not(:lang(en)) .bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons .wp-block-button__link {
		white-space: normal;
		max-width: 100%;
	}
}
.bhp-nutrition-card,
.bhp-nutrition-card .bhp-nutrition-content { min-width: 0; }
.bhp-page .bhp-nutrition-card .bhp-nutrition-content { overflow-wrap: anywhere; }
/* hyphenate the long FR/ES/DE/NL words only; EN wraps exactly as before */
.bhp-page:not(:lang(en)) .bhp-nutrition-card .bhp-nutrition-content { hyphens: auto; }
@media (max-width: 599px) {
	body.home .hb-hero--home .hb-btn {
		white-space: normal;
		height: auto;
		min-height: 48px;
		max-width: 100%;
		box-sizing: border-box;
		/* 16px line + 15px padding + 2px border = the old fixed 48px on one line; extra lines add height */
		line-height: 16px;
		text-align: center;
		justify-content: center;
	}
	body.home .hb-hero--home .hb-btn--primary { padding-top: 15px; padding-bottom: 15px; }
}
/* Longer translations overflow the hero CTA at every width, not just phones; EN is untouched above 599px. */
@media (min-width: 600px) {
	body.home:not(:lang(en)) .hb-hero--home .hb-btn {
		white-space: normal;
		height: auto;
		min-height: 48px;
		max-width: 100%;
		box-sizing: border-box;
		line-height: 16px;
		text-align: center;
		justify-content: center;
	}
	body.home:not(:lang(en)) .hb-hero--home .hb-btn--primary { padding-top: 15px; padding-bottom: 15px; }
}
.bhp-page .bhp-section:has(> .bhp-axis-grid) .bhp-btn-primary .wp-block-button__link {
	white-space: normal;
	height: auto;
	min-height: 48px;
	max-width: 100%;
	padding-top: 4px;
	padding-bottom: 4px;
	text-align: center;
}
/* ==== 86eypb6m6 hp3 CSS pass (end) ==== */

/* hp3 (86eypb6m6): "COMPLETE FOOD" ribbon is Inter 800 in Figma. Higher
   specificity than the shared `.bhp-page span` / `.bpc-badge` typography that
   kept it on Kobe1.1. */
.bhp-page .bhp-nutrition-ribbon {
	font-family: var(--bhp-inter-font);
	font-weight: 800;
}

/* hp3 (86eypb6m6 #3): the two "Our Nutrition System" cards share a grid row and
   stretch to equal height, but their copy blocks differ in length, so the
   shorter card's pills, allergen line and CTA floated up and the two CTAs did
   not line up. The content column already grows to fill the card; pushing the
   pills group down with an auto margin bottom-aligns pills, allergen and CTA
   on both cards. Stacked layouts (one card per row) have no spare height, so
   the auto margin resolves to 0 and nothing changes there. */
.bhp-page .bhp-nutrition-card .bhp-nutrition-pills {
	margin-top: auto;
}

/* hp3 (86eypb6m6 #9): pale band between the FAQ's green and the "Keep reading"
   cream. Source: Blocksy's `.ct-container-full` carries the theme's
   content-vertical-spacing as padding-bottom (60px desktop/tablet, 50px
   mobile), and nothing on this page paints it, so the body background
   (#FAFBFC) showed through between the last section and the footer. The
   homepage is built edge to edge from full-bleed bands, so it needs no
   trailing spacing. Scoped with :has() to the container that holds the
   homepage bands. Measured gap before -> after: 60/60/50px -> 0 at 1512/744/428. */
.ct-container-full:has(.bhp-page) {
	padding-bottom: 0;
}

/* hp3 (86eypb6m6): "READ THE FULL RESEARCH BREAKDOWN" is one nowrap line 312px
   wide plus 32px padding. Under ~400px the science card's content is 293px at
   375 and 238px at 320, so the label ran out of the pill (10px / 37px). Let it
   wrap on those widths only (Figma's 346px pill fits from 428 up, unchanged),
   keeping the 48px minimum height and centring. */
@media (max-width: 399px) {
	.bhp-page .bhp-science .bhp-btn-outline .wp-block-button__link {
		white-space: normal;
		height: auto;
		min-height: 48px;
		text-align: center;
		overflow-wrap: anywhere;
	}
}

/* ==== 86eypb6m6 hp4 regression fixes (start) ==== */

/* L01: at 744-1023 the pills are a 2x2 grid but a later `nowrap` rule kept the
   translated labels on one line, so DE/ES/FR/NL text ran to x 785-818 past the
   744 viewport and was clipped by the hero. Let non-English labels wrap inside
   the 342px pill (the earlier overflow-wrap rule and 50px rows already allow
   two lines). EN fits on one line and is untouched. */
@media (min-width: 744px) and (max-width: 1023px) {
	body.home:not(:lang(en)) .hb-hero--home .hb-badge > span:last-child {
		white-space: normal;
	}
}

/* L01: Figma's hero CTA pair is 26px line-height at 428 too; a max-width:599
   rule pinned it at 16px. Padding drops to 9.5 / 10 so one line stays the 48px
   button (26 + 2*9.5 + 3 border; 26 + 2*10 + 2). From 400 up only: at 320 the
   EN labels wrap and 26px lines would grow the hero by 25px. */
@media (min-width: 400px) and (max-width: 599px) {
	body.home:lang(en) .hb-hero--home .hb-btn { line-height: 26px; }
	body.home:lang(en) .hb-hero--home .hb-btn--primary { padding-top: 9.5px; padding-bottom: 9.5px; }
	body.home:lang(en) .hb-hero--home .hb-btn--outline { padding-top: 10px; padding-bottom: 10px; }
}

/* L02 keyboard access: the symptom row scrolls sideways at 428, so the JS in
   custom/js/scrollable-region-focus.js makes it focusable; give it a visible
   focus ring. */
.bhp-symptom-row:focus-visible {
	outline: 2px solid var(--bhp-green, #247B4E);
	outline-offset: 2px;
}

/* L06 product cards: equal-height cards with the VIEW MORE button pinned to
   the card bottom, so chip lists of different length no longer stagger the
   CTAs across a row. Figma's internal 12px gap and 16px padding are kept. */
.bpc-card .bpc-body {
	flex: 1 1 auto;
}
.bpc-card .bpc-cta {
	margin-top: auto;
}

/* L06: Figma's first pill in the first Nutrition card is 278px wide (the live
   pill hugs 275.8), which puts the second pill's text 2.2px left of Figma at
   744. Floor it at 744+ where the row is wide enough. */
@media (min-width: 744px) {
	.bhp-nutrition-cards > :first-child .bhp-nutrition-pills > li:first-child {
		min-width: 278px;
	}
}
/* Figma's first frame is a fixed 612px: its 480px list ends at y 600, inside the
   40px bottom padding. The list sits 28px into that padding so the card stays
   612 (a plain 40px padding grew it to 640 and pushed the page down 28px). */
.bhp-page > section:nth-child(14) .bhp-transparency-card--in ul {
	margin-bottom: -28px;
}
/* ==== 86eypb6m6 hp4 regression fixes (end) ==== */

/* ==== 86eypb6m6 hp5-rest L01 hero pills, icons, wave (start) ====
   Below 744 the four pills stretched to the 388px column; Figma's are
   hug-content (249 / 301 / 198 / 305 at 428) and centred. max-width keeps
   long translated labels inside the viewport (they wrap, as before).
   Badge glyphs: Figma draws 16.6 (2nd), 15.8 (4th) at every width and
   13.4 (3rd) from 744 up; trust glyphs are 21x19 inside the 24px row.
   The wave sat 8.8px past the left edge at 1440+ (clipped by the hero);
   it now spans the viewport exactly. */
@media (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__badges { align-items: center; }
	body.home .hb-hero--home .hb-badge { width: fit-content; max-width: 100%; box-sizing: border-box; }
}
body.home .hb-hero--home .hb-badge:nth-child(2) .hb-badge__icon svg { width: 16.6px; height: 16.6px; }
body.home .hb-hero--home .hb-badge:nth-child(4) .hb-badge__icon svg { width: 15.8px; height: 15.8px; }
@media (min-width: 744px) {
	body.home .hb-hero--home .hb-badge:nth-child(3) .hb-badge__icon svg { width: 13.4px; height: 13.4px; }
}
body.home .hb-hero--home .hb-hero__trust li { min-height: 24px; }
body.home .hb-hero--home .hb-hero__trust li > svg { width: 21px; height: 19px; flex: none; }
body.home .hb-hero--home .hb-hero__wave { width: 100%; margin-left: 0; }
/* ==== 86eypb6m6 hp5-rest L01 (end) ==== */

/* ==== 86eypb6m6 hp5-rest L08 translated axis titles (start) ====
   ES/FR/NL/DE titles are longer than EN and wrapped to 2-3 lines in the
   ~154px card text box. Below 744 (12px caps) non-EN pages drop the 2%
   tracking, take 10px side padding instead of 16, and may hyphenate
   (lang is set per page). Text is unchanged. EN is excluded. */
@media (max-width: 743px) {
	html:not([lang^="en"]) .bhp-page .bhp-axis-card__title { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; letter-spacing: 0; }
	html:not([lang^="en"]) .bhp-axis-grid > .bhp-axis-card { padding-left: 10px; padding-right: 10px; }
}
/* ==== 86eypb6m6 hp5-rest L08 (end) ==== */
/* 86eypb6m6 hp6: long translated bite-tile words (DE "Verdauung") ran 23px into the next tile at 320 and 3px at 360; hyphenate and break them. EN untouched. */
@media (max-width: 379px) {
	.bhp-page:not(:lang(en)) .bhp-bite-grid__text { min-width: 0; }
	.bhp-page:not(:lang(en)) .bhp-bite-grid__name,
	.bhp-page:not(:lang(en)) .bhp-bite-grid__label,
	.bhp-page:not(:lang(en)) .bhp-bite-grid__tagline { hyphens: auto; overflow-wrap: anywhere; }
}

/* 86eypb6m6 hp8 l01l02 (start) */
/* HP-632 / triage A5: below 744 Figma's hero-height-setting pill group (Frame 2147230008, y 948) is
   four full-width pills, x 20, 388 wide, content left-packed (icon at x 28 / 26 / 26 / 28, 6px to
   the label). hp5 had followed the stale duplicate group inside the photo frame (hug + centred). */
@media (max-width: 743px) {
	body.home .hb-hero--home .hb-hero__badges { align-items: stretch; }
	body.home .hb-hero--home .hb-badge { width: 100%; justify-content: flex-start; }
}
/* 86eypb6m6 hp8 l01l02 (end) */

/* 86eypb6m6 hp8 hp8-l06 (start) */
/* Lifestyle photo: Figma 1000x561.16 / 696x390.6 / 388x217.7, one ratio (1.782); the uploaded file is 1000x562. */
.bhp-nutrition-photo { aspect-ratio: 1000 / 561.16; }
.bhp-nutrition-photo img { display: block; width: 100%; height: 100%; aspect-ratio: 1000 / 561.16; object-fit: cover; }
/* Product-card ingredient chips are r4 in every Figma card (D/T/M "Frame 2147229913"); the earlier 999 followed T's separate category tags (#f8ede3), which live does not render. */
.bhp-targeted-cards .bpc-card .bpc-chip,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--light,
.bhp-targeted-cards .bpc-card .bpc-chip.bpc-chip--bold-caps { border-radius: 4px; }
/* Bliss tile icon frame: Figma auto-layout gap 14.42 (single child, no visual change). */
.bhp-page .bhp-bite-grid__item:nth-child(3) .bhp-bite-grid__icon { gap: 14.4207px; }
/* T bite tiles: name and tagline are #2d2c2c in Figma T (M already is). */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-page .bhp-bite-grid__name,
	.bhp-page .bhp-bite-grid__tagline { color: #2d2c2c; }
}
/* Targeted Support wrapper: Figma pads 20 / 24 / 64 under the doctor CTA, on top of the section's own 20 / 24 / 64. */
.bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons:last-child { margin-bottom: 20px; }
@media (min-width: 744px) { .bhp-section:has(.bhp-nutrition-ribbon) > .wp-block-buttons:last-child { margin-bottom: 24px; } }
@media (min-width: 1440px) {
	/* Intro paragraph: the highlighted "nose-to-tail" fragment made the third line 26px, 74px total; Figma is 3 x 24 = 72. */
	.bhp-nutrition-header > p:not(.bhp-eyebrow) strong,
	.bhp-nutrition-header > p:not(.bhp-eyebrow) .bhp-highlight-green { line-height: 1; }
	/* Foundation equation (Figma 289..1223, 934 wide): chips 249 / 218, pill 331 x 88, glyphs 28 wide, 24px around "=". */
	.bhp-foundation-chips > :nth-child(1) { min-width: 249px; }
	.bhp-foundation-chips > :nth-child(3) { min-width: 218px; }
	.bhp-foundation-chips > :nth-child(5) { min-width: 331px; align-self: stretch; }
	.bhp-foundation-chips > .bhp-foundation-glyph { min-width: 28px; }
	.bhp-foundation-chips > :nth-child(4) { margin-inline: 8px; }
}
/* 86eypb6m6 hp8 hp8-l06 (end) */
/* FIX (86eyzpvfg nutrition-card-heights): the two Complete Nutrition cards must be the
   same height in every language, with the pills / allergen / CTA block bottom-aligned
   so both CTAs share one baseline. Root cause: at 1440+ the second card's content was
   pinned `flex: 0 0 auto; min-height: 678px` (an EN-only Figma value, 86eypb6m6 hp8-l06).
   Where the Superfoods copy is longer (DE/FR/NL) the grid row grew past 678, the Biotics
   content stopped stretching, and its CTA floated 26-42px above the Superfoods one.
   The pin is removed (above) and the pills push the lower block to the bottom. */
.bhp-nutrition-cards.bhp-card-grid { align-items: stretch; }
.bhp-nutrition-cards > .bhp-nutrition-card .bhp-nutrition-content { flex: 1 1 auto; }
.bhp-nutrition-cards > .bhp-nutrition-card .bhp-nutrition-pills { margin-top: auto; }
/* FIX (86eyzpvfg nutrition-card-heights) (end) */
/* 86eypb6m6 hp8 nlpill (start) */
/* At 320 the routine box is 280 wide. The mobile trim of the pill's side padding to 16px (line ~4960) lost
   to the later `.bhp-foundation-pill { padding: 11px 27px }` (same specificity, later source), so the
   pill kept 27px and NL's 249px sub line made it 305 wide, x 8, past the 20px gutter. Reapply the trim
   after that rule, one step tighter (14px): 249 + 28 + 2 border = 279 fits the 280 box. */
@media (max-width: 359px) {
	.bhp-foundation-pill { padding-inline: 14px; }
}
/* 86eypb6m6 hp8 nlpill (end) */

/* 86eypb6m6 hp8 dots (start) */
/* WCAG 2.5.8 target size: the pager buttons were 8x8 (active 32x8). Each gets
   an 8px transparent pad on every side (24 tall, 24 wide, 48 wide when active).
   The vertical margin cancels the pad, so the row and section height are
   unchanged. Horizontally the margin is -6px, not -8px: at -8px the dot
   centres stayed 20px apart and the 24px boxes overlapped by 4px, which axe
   reports as "partially obscured". At -6px the centres are 24px apart and the
   boxes touch without overlapping. This is a deliberate WCAG-over-Figma
   deviation: the visible gap between dots goes from 12px to 16px. The visible
   dot is the content box only (background-clip); the 12px radius less the 8px
   pad leaves the 4px radius the dot has always had. The desktop decorative
   spans are not controls and stay as they were. */
.bhp-routine-dots > button.bhp-routine-dot {
	box-sizing: content-box;
	padding: 8px;
	margin: -8px -6px;
	border-radius: 12px;
	background-clip: content-box;
}
.bhp-routine-dots > button.bhp-routine-dot[aria-selected="true"] {
	border-radius: 12px;
}
/* Ring sits on the 24px pad, so it clears the dot by 8px. */
.bhp-routine-dots > button.bhp-routine-dot:focus-visible {
	outline-offset: 0;
}
/* 86eypb6m6 hp8 dots (end) */

/* 86eypb6m6 QA round 1 (start) */
/* FIX 86eyzmwu8: body-link hover was Blocksy's palette blue (#1559ED), which
   turned the concern-card label and sub-label, the nutrition tiles and the
   bite-grid links blue. Figma's Link component hovers to the brand green
   #247B4E. The palette entry itself lives in the Customizer (DB) and is left
   alone; every Blocksy link rule reads --theme-link-hover-color, so redefining
   the variable on the homepage wrapper turns every link in it green without
   touching one selector. The header, footer and other templates are outside
   .bhp-page and keep the theme value. */
.bhp-page {
	--theme-link-hover-color: var(--bhp-green);
}

/* FIX 86eyzmwug: cards in one row were different heights because the grid and
   each wrap were pinned to flex-start (the flagged "Start here" card is 114
   tall, its row-mates 74). Stretch the row, make the wrap a flex box and let
   the link fill it, so every card in a row takes the tallest card's height
   whatever the language or copy length. The card's own align-items:center
   keeps its content vertically centred. */
.bhp-concern-grid {
	align-items: stretch;
}
.bhp-concern-card-wrap {
	align-self: stretch;
	display: flex;
}
.bhp-page .bhp-concern-card.bhp-concern-card {
	flex: 1 1 auto;
	height: auto;
	min-width: 0;
}

/* FIX 86eyzmwuc: the hero outline button's hover text stayed green on a green hover fill
   (1:1 contrast). `body.home .hb-hero--home .hb-btn--outline` (0,3,1) beat the hover rule
   (0,3,0) on color, and below 1024px the white background rule beat it on background too.
   Raised above both. Figma Button State=Hover, Kind=Outline, Size=Large (29049:58920,
   rendered asset checked 11 Oct): solid #247B4E fill with white text (5.23:1). */
body.home .hb-hero--home .hb-btn.hb-btn--outline:hover,
body.home .hb-hero--home .hb-btn.hb-btn--outline:focus-visible {
	background-color: var(--wp--preset--color--bhp-green, #247b4e);
	border-color: var(--wp--preset--color--bhp-green, #247b4e);
	color: var(--wp--preset--color--bhp-white, #fff);
}
/* 86eypb6m6 QA round 1 (end) */

/* FIX (86eyzmwuc round 2): Vita asked for WHITE text on the coral hover of the yellow primary
   buttons (routine CTA "Zur Grundroutine", card CTAs, bite/closing buttons). QA's explicit
   request overrides the earlier AA-driven ink label: white on coral #FF6256 measures 2.94:1
   (ink was 4.82:1). Recorded as a known contrast trade-off. Background stays coral.
   The first nutrition card's green->yellow hover has its own, more specific rule and is untouched.
   The arrow icon follows the text colour. */
.bhp-page .bhp-btn-primary .wp-block-button__link:hover,
.bhp-page .bhp-btn-primary .wp-block-button__link:focus-visible,
.bhp-page .bhp-btn-primary .wp-block-button__link:hover svg,
.bhp-page .bhp-btn-primary .wp-block-button__link:focus-visible svg {
	color: #FFFFFF;
}
/* FIX (86eyzmwuc round 2) (end) */

/* FIX (86eyzmwug round 2): the "Start here" button was right-aligned (margin-left:auto) in the
   flagged "Everyday gut health" card from 1024px up. Vita asked for it left-aligned with the
   card's text column (title/subtitle left edge, not the icon). That is the layout the card
   already has under 1024px (icon column + text column, button on its own row in column 2),
   so the same grid now applies at every width. Vita's request wins over the Figma D frame,
   which puts the button at the card's right on the single desktop row.
   X18 (z8udzkgpxb, Lan, 21 Oct) supersedes this from 1400px up: the Figma D layout returns
   there (flag on the same line, at the card's right). 1024 to 1399 keeps this grid, because
   the card is 317 to 422px wide and the text column would fall under about 195px. Tablet
   and mobile stay stacked, as in the Figma T and M frames. See the X18 block below. */
@media (min-width: 768px) and (max-width: 1399px) {
	/* X18 (z8udzkgpxb, QA 22 Oct): flag inline at 768+, so three columns here: icon, text, flag.
	   The card is 300 (768) to 422px wide, so the flag is compact and may wrap to two lines
	   instead of forcing a long nowrap pill that would starve the text column. */
	.bhp-concern-card:has(.bhp-concern-flag) {
		display: grid;
		grid-template-columns: 42px minmax(0, 1fr) auto;
		column-gap: 12px;
		align-items: center;
	}
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon {
		grid-column: 1;
		grid-row: 1;
	}
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon + span {
		grid-column: 2;
		grid-row: 1;
		flex: none;
	}
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		grid-column: 3;
		grid-row: 1;
		margin-left: 0;
		justify-self: end;
		white-space: normal;
		text-align: center;
		max-width: 104px;
		padding: 6px 8px;
		font-size: 11px;
		line-height: 14px;
		overflow-wrap: normal;
	}
}
/* FIX (86eyzmwug round 2) (end) */

/* X18 (z8udzkgpxb): 768 to 1399 now also inline (3-column grid above, QA 22 Oct overrides the
   21 Oct 'stacked below 1400' choice). Original note: from 1400px the "Start here" flag sits on the same line as the
   card text, at the card's right, as in the Figma D frame (card 453px: icon, 234px text column,
   129px flag, centred on the text block). The 86eyzmwug round-2 grid above now stops at 1399px.
   Below 1400 the card is under 422px wide, so the same line would leave a text column under
   about 195px; Figma T (744) and M (428) stack the flag under the text too, so those stay. */
@media (min-width: 1400px) {
	.bhp-concern-card:has(.bhp-concern-flag) {
		flex-wrap: nowrap;
		align-items: center;
	}
	.bhp-concern-card:has(.bhp-concern-flag) .bhp-concern-icon + span {
		flex: 1 1 0%;
		min-width: 0;
	}
	.bhp-page .bhp-concern-card .bhp-concern-flag {
		margin-left: auto;
		flex: 0 0 auto;
	}
}
/* X18 (end) */



/* ==== CU-z8udzke6d9 Glendon 12 Oct layout pass (start) ====
   CSS only: the home page renders saved post_content in 5 languages.
   Subgrid ties a row's cards to shared tracks, so each element sits on one line. */

/* H1: dissolve the two flex columns so the 4 cards share one grid and align.
   Diagram above the 2x2 below 1400, between the columns from 1400. */
@media (min-width: 768px) {
	.bhp-page .bhp-gutcentre-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: auto;
		align-items: stretch;
		justify-content: center;
		gap: 22px 32px;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col {
		display: contents;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-diagram {
		grid-column: 1 / -1;
		grid-row: 1;
		justify-self: center;
		align-self: center;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:first-child > .bhp-gutcentre-card:nth-child(1) { grid-column: 1; grid-row: 2; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:first-child > .bhp-gutcentre-card:nth-child(2) { grid-column: 1; grid-row: 3; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:last-child > .bhp-gutcentre-card:nth-child(1) { grid-column: 2; grid-row: 2; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:last-child > .bhp-gutcentre-card:nth-child(2) { grid-column: 2; grid-row: 3; }
	.bhp-page .bhp-gutcentre-row .bhp-gutcentre-card {
		margin: 0;
		max-width: none;
		min-width: 0;
		align-self: stretch;
	}
}
@media (min-width: 1400px) {
	.bhp-page .bhp-gutcentre-row {
		grid-template-columns: minmax(0, 388px) auto minmax(0, 388px);
		column-gap: 64px;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-diagram {
		grid-column: 2;
		grid-row: 1 / span 2;
	}
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:first-child > .bhp-gutcentre-card:nth-child(1) { grid-column: 1; grid-row: 1; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:first-child > .bhp-gutcentre-card:nth-child(2) { grid-column: 1; grid-row: 2; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:last-child > .bhp-gutcentre-card:nth-child(1) { grid-column: 3; grid-row: 1; }
	.bhp-page .bhp-gutcentre-row > .bhp-gutcentre-col:last-child > .bhp-gutcentre-card:nth-child(2) { grid-column: 3; grid-row: 2; }
}

/* H4: card = 6 tracks (photo, title, description, chips, price + badge, button)
   shared with its row-mates, so price, badge and VIEW MORE share a line.
   744px, not 768px: it is this grid's own tablet breakpoint (Figma T-744, the
   2-column tier above). z8udzkgnga extends the shared rows to mobile as well. */
@media all {
	.bhp-page .bhp-targeted-cards.bhp-card-grid {
		grid-auto-rows: auto;
		row-gap: 0;
	}
	.bhp-page .bhp-targeted-cards > .bpc-card {
		display: grid;
		grid-row: span 6;
		grid-template-rows: subgrid;
		/* One column the width of the card. Without it the implicit column sizes to the
		   widest text (214px on a 128px mobile card) and the card content clips. */
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0;
		margin-bottom: 20px;
	}
	/* z8udzkgnga: the 6 shared tracks now also apply below 744px, so price, badge and
	   button line up between the two cards of a mobile row. Row gap 24px from
	   744px, 20px on mobile (the grid's own mobile gap). */
	@media (min-width: 744px) {
		.bhp-page .bhp-targeted-cards > .bpc-card { margin-bottom: 24px; }
	}
	.bhp-page .bhp-targeted-cards > .bpc-card > .bpc-media { grid-row: 1; }
	.bhp-page .bhp-targeted-cards > .bpc-card > .bpc-body {
		grid-row: 2 / span 5;
		display: grid;
		grid-template-rows: subgrid;
		grid-template-columns: minmax(0, 1fr);
		row-gap: 12px;
		align-content: start;
		flex: none;
	}
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-title { grid-row: 1; }
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-subhead { grid-row: 2; }
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-chips { grid-row: 3; align-content: flex-start; }
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-price-row { grid-row: 4; align-self: start; }
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-cta { grid-row: 5; margin-top: 0; align-self: end; }
	/* The homepage cards render with figma_only, which never outputs .bpc-reviews
	   and puts .bpc-cats over the photo as a sibling of .bpc-body. If either ever
	   lands inside the body it would add an implicit sixth row and break the
	   shared lines, so keep them out of the grid. */
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-reviews,
	.bhp-page .bhp-targeted-cards .bpc-body > .bpc-cats { display: none; }
}

/* H7: both cards share 11 tracks (photo, eyebrow, title, body, 5 chips, allergen,
   button); chips stack one per line in both cards. 5 pills per card; a 6th
   needs another row (grid-row span and the allergen/button rows shift by one). */
@media (min-width: 1024px) {
	.bhp-page .bhp-nutrition-cards.bhp-card-grid {
		grid-auto-rows: auto;
		row-gap: 0;
	}
	.bhp-page .bhp-nutrition-cards > .bhp-nutrition-card {
		display: grid;
		grid-row: span 11;
		grid-template-rows: subgrid;
		row-gap: 20px;
	}
	.bhp-page .bhp-nutrition-cards > .bhp-nutrition-card > .bhp-nutrition-tile { grid-row: 1; }
	.bhp-page .bhp-nutrition-cards .bhp-nutrition-card > .bhp-nutrition-content {
		grid-row: 2 / span 10;
		display: grid;
		grid-template-rows: subgrid;
		row-gap: 16px;
		align-content: start;
		flex: none;
	}
	.bhp-page .bhp-nutrition-content > .bhp-eyebrow { grid-row: 1; }
	.bhp-page .bhp-nutrition-content > .bhp-nutrition-title { grid-row: 2; }
	.bhp-page .bhp-nutrition-content > .bhp-nutrition-body { grid-row: 3; }
	.bhp-page .bhp-nutrition-content > .bhp-nutrition-pills {
		grid-row: 4 / span 5;
		display: grid;
		grid-template-rows: subgrid;
		row-gap: 10px;
		justify-items: start;
	}
	.bhp-page .bhp-nutrition-content > .bhp-nutrition-allergen { grid-row: 9; }
	.bhp-page .bhp-nutrition-content > .wp-block-buttons { grid-row: 10; align-self: end; }
}

/* H9: two columns from 768. Intro and Postbiotics panel are siblings of the
   grid, so they stay full width; mobile keeps illustration over steps. */
@media (min-width: 768px) {
	.bhp-page .bhp-triad-grid {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		align-items: center;
		justify-content: stretch;
		gap: 24px 32px;
	}
	.bhp-page .bhp-triad-grid > .bhp-triad-illus {
		justify-self: start;
		width: 100%;
		max-width: 600px;
		margin: 0;
	}
	.bhp-page .bhp-triad-grid > .bhp-triad-illus img {
		margin-left: 0;
		margin-right: 0;
	}
	.bhp-page .bhp-triad-grid > .bhp-triad-timeline {
		margin: 0;
		min-width: 0;
	}
}
@media (min-width: 1440px) {
	.bhp-page .bhp-triad-grid {
		grid-template-columns: minmax(0, 600px) minmax(0, 720px);
		justify-content: center;
		column-gap: 64px;
	}
}

/* H16: photo left, copy right, centred on each other from 768. The quote is a
   sibling above the row, so it stays full width; mobile keeps photo over copy. */
@media (min-width: 768px) {
	.bhp-page .bhp-founder-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
		gap: 32px;
	}
	.bhp-page .bhp-founder-row > .bhp-founder-photo {
		margin: 0;
		justify-self: start;
		width: 100%;
	}
	.bhp-page .bhp-founder-row > .bhp-founder-col {
		min-width: 0;
		align-self: center;
	}
	/* The quals line is a fixed 392px box (Figma); in the half-width column at
	   768-1023 that is wider than the column and ran past the container edge. */
	.bhp-page .bhp-founder-row .bhp-founder-quals {
		width: auto;
		max-width: min(392px, 100%);
	}
}
@media (min-width: 1440px) {
	.bhp-page .bhp-founder-row { gap: 40px; }
}
/* H9: the "Two postbiotics" pill is nowrap from 744px; the DE/FR/ES/NL strings are
   wider than the half-width timeline column below 1280px and ran past the
   container edge, so let it wrap there. */
@media (min-width: 768px) and (max-width: 1279px) {
	.bhp-page .bhp-triad-timeline .bhp-triad-callout-pill { white-space: normal; }
}
/* z8udzke6d9 re-QA: from 1280px the pill stayed a fixed 380px and nowrap, so the
   DE/FR/ES/NL strings (430-470px of text) ran past the pink background. The pill
   now grows to its text, keeps Figma's 380px as the floor (EN is unchanged) and
   wraps only if the column itself is narrower. */
@media (min-width: 744px) {
	.bhp-page .bhp-triad-timeline .bhp-triad-callout-pill {
		width: fit-content;
		min-width: min(380px, 100%);
		white-space: normal;
	}
}
/* H9 (Glendon, 16 Oct, replaces the 12 Oct full-width placement): the "Two
   postbiotics" pill sits directly under the Postbiotics Deliver step in the right
   column, aligned with the step copy, as in the signed-off Figma. It is a child of
   step 3 again, so the `.bhp-triad-timeline .bhp-triad-callout-pill` rules above
   size it (grows to its text, 380px floor) and no sibling-of-grid rule is needed. */
/* H14: text selection on green bands. The band's own green with white text made
   a selection invisible; cream highlight with green text contrasts there, and
   cream/white bands keep the existing green highlight. */
.bhp-band-green ::selection,
.bhp-band-green::selection,
.bhp-onegut ::selection,
.bhp-onegut::selection {
	background: var(--bhp-cream, #F8EDE3);
	color: var(--bhp-green, #247B4E);
	-webkit-text-fill-color: var(--bhp-green, #247B4E);
}
/* z8udzke6d9 mobile re-QA (14 Oct): on narrow phones the symptom cards kept
   Figma's fixed 334px inside a 280px scroller at 320, so each card's right edge
   and text were cut off. The card now caps at the scroller's width. Scoped below
   1440 so it never overrides the 1440+ equal-share flex-basis. */
@media (max-width: 1439px) {
	.bhp-symptom-card {
		flex-basis: min(334px, 100%);
	}
}
/* Long DE/NL/FR/ES words broke mid-word with no hyphen (overflow-wrap only), e.g.
   "geräuschempfindl|iche" on the Bite cards. hyphens:auto breaks at a syllable
   with a visible hyphen first; overflow-wrap stays as the fallback. The
   transparency list item is a flex row, so its text item could not shrink below
   its longest word ("Konservierungsstoffe" ran past the viewport at 320). */
.bpc-card .bpc-subhead,
.bpc-card .bpc-chip,
.bpc-card .bpc-cat,
.bhp-page .bhp-axis-card,
.bhp-page .bhp-feature-card__title,
.bhp-page .bhp-transparency-card li {
	hyphens: auto;
	-webkit-hyphens: auto;
}
.bhp-page .bhp-transparency-card li {
	overflow-wrap: anywhere;
}
/* Narrow-phone headings: long FR/DE words like "accompagnement" broke mid-word
   with no hyphen at 320. */
@media (max-width: 480px) {
	.bhp-page h2.wp-block-heading {
		hyphens: auto;
		-webkit-hyphens: auto;
	}
}
/* ==== CU-z8udzke6d9 Glendon 12 Oct layout pass (end) ==== */

/* ==== Bonza QA sweep lane C: home small fixes (H22, H24, M1) ==== */
/* H22 (z8udzkgpxf): the S&AG tile JPG already has the Complete Food ribbon
   printed in it, so the live overlay span drew a second, near-identical one.
   One ribbon only: the printed one stays, the overlay is hidden. */
.bhp-nutrition-ribbon {
	display: none;
}
/* H24 (z8udzkgpxg): the Superfoods + Biotics = The Foundation Routine row
   shows from 744px up in one row above the paragraph. It used to be hidden
   at 744-1439. Items shrink (labels wrap inside the chips) instead of
   overflowing the narrower band. */
@media (min-width: 744px) and (max-width: 1439px) {
	.bhp-foundation-chips {
		display: flex;
		flex-wrap: nowrap;
		gap: 8px;
		width: 100%;
	}
	.bhp-foundation-chips > * {
		flex: 0 1 auto;
		min-width: 0;
	}
	.bhp-foundation-chips > .bhp-foundation-glyph {
		flex: 0 0 auto;
	}
}
/* H24 follow-up: a shrunk chip let its max-content label run past the chip box,
   so "+" / "=" overlapped it at 744-860. The chips keep their content width
   (smaller photo and padding) and only the pill gives up width. */
@media (min-width: 744px) and (max-width: 979.98px) {
	.bhp-foundation-chips { gap: 6px; }
	.bhp-foundation-chips > .bhp-foundation-chip {
		grid-template-columns: 40px max-content;
		column-gap: 6px;
		padding-inline: 8px 14px;
		flex: 0 0 auto;
	}
	.bhp-foundation-chips > .bhp-foundation-chip .bhp-foundation-chip__img {
		width: 40px;
		height: 40px;
		margin-block: -2px;
	}
	.bhp-foundation-chips > .bhp-foundation-glyph {
		min-width: 20px;
		font-size: 32px;
	}
	.bhp-foundation-chips > .bhp-foundation-pill {
		width: max-content;
		min-width: 0;
		padding-inline: 14px;
		flex: 0 1 auto;
	}
}
/* M1 (z8udzkgpxh): the Subscribe & Save badge started 8px in from the card's
   left edge but ran flush to the right edge on the two-up phone cards (it was
   allowed 8px past the body). It now stays inside the body, so the right
   margin matches the left. */
.bhp-targeted-cards .bpc-card .bpc-save-badge {
	max-width: 100%;
}

/* H29: founder quote scales below 428 so it holds Figma's five lines on
   narrow phones (24px wrapped to 6-8 lines at 320-390). */
@media (max-width: 743.98px) {
	.bhp-page .bhp-band-cream h2.wp-block-heading {
		font-size: min(24px, 5.6vw);
		line-height: 1.2;
	}
}

/* G43 + M3 (86eyd9141 QA sweep). Routine card titles drop to 12px from 744 so
   "THE FOUNDATION ROUTINE" stays on one line (Lan-approved 16/14 Figma deviation).
   M3: button labels may take two lines at 10px (Lan: one line needs ~8.5px),
   so balance the wrap; the button pair keeps equal heights. */
@media (min-width: 744px) {
	html body .bhp-routine-carousel .bppm-routine-card__title {
		font-size: 12px;
		letter-spacing: -0.4px;
		margin-inline-end: -8px; /* half the 16px card padding at 1440+, the full 8px below: keeps the text inside the card edge */
		text-wrap: balance;
	}
}
.bhp-routine-carousel .bppm-routine-card__actions .bppm-routine-card__btn {
	text-wrap: balance;
	text-align: center;
}

/* M3: with two-line labels allowed, every routine button is 44px (two lines of
   14px + 16px padding) so the buttons line up across the cards in a row. */
.bhp-routine-carousel .bppm-routine-card__actions .bppm-routine-card__btn {
	min-height: 44px;
}

/* M7 + M10: founder credit, credentials and the allergen band's closing line
   take Figma's sizes (14px, 12px, 12px) with slight tracking so each holds one
   line from 360 up. The :not() prefix outranks kobe-16-floor.css (16px paragraphs). */
@media (max-width: 743.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-credit {
		font-size: 14px;
		letter-spacing: -0.2px;
	}
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-quals {
		font-size: 12px;
		letter-spacing: -0.3px;
	}
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-transparency-tagline {
		font-size: 12px;
		letter-spacing: -0.2px;
	}
}

/* M3: the Complete Nutrition CTA ("Shop Superfoods & Ancient Grains") holds one line
   from 390 to 424px. Below 390 it stays two balanced lines; from 425 it fits at 12px.
   Scoped to this button only. The prefix outranks kobe-16-floor.css. */
@media (min-width: 390px) and (max-width: 424.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page .bhp-nutrition-card a.wp-block-button__link {
		font-size: 10.6px;
		letter-spacing: 0.3px;
		padding-inline: 12px;
		white-space: nowrap;
	}
}

/* H27 (z8udzkgpgk): both Complete Nutrition cards use the same body size.
   Superfoods & Ancient Grains has 18px (20px from 1024); Biotics was 16px (18px
   from 1024), so Biotics now matches. */
.bhp-nutrition-card:last-child .bhp-nutrition-body {
	font-size: 18px;
}
@media (min-width: 1024px) {
	.bhp-nutrition-card:last-child .bhp-nutrition-body {
		font-size: 20px;
	}
}

/* NEW-8 (z8udzkgzgm, QA-requested; follow-on to M7 which covered mobile only): the founder
   credit and credentials each hold one line from 744 up. Both sit in the half-width column
   from 768 (column = viewport/2 - 40px), so the type steps down only where the column is
   narrower than the line at 16px (credit 352px, quals 447px; 16px quals from 1024). Size steps and slight tracking
   are a QA-requested departure from Figma's 14px (quals) and 16px (credit, 1440+); the
   392px quals box is dropped because it forced the wrap. text-wrap: balance keeps any
   longer translated string from leaving a word alone. The :not() prefix outranks
   kobe-16-floor.css. */
@media (min-width: 744px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-quals {
		width: auto;
		max-width: none;
		text-wrap: balance;
	}
}
@media (min-width: 768px) and (max-width: 799.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-credit {
		font-size: 14px;
	}
}
@media (min-width: 768px) and (max-width: 863.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-quals {
		font-size: 12px;
		letter-spacing: -0.3px;
	}
}
@media (min-width: 864px) and (max-width: 1023.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-quals {
		font-size: 14px;
		letter-spacing: -0.2px;
	}
}

/* M6/M7/NEW-8 (Glendon's rule): same five-line quote and one-line name in every
   language. DE/ES/FR quotes are longer than EN, so each gets a size giving it EN's
   total width at 5.6vw. Non-EN credentials put each diploma on its own line (spans
   from the render_block filter in homepage.php); EN stays on one line. */
@media (max-width: 743.98px) {
	.bhp-page .bhp-band-cream h2.wp-block-heading {
		text-wrap: balance;
	}
}
@media (max-width: 743.98px) {
	html[lang^="de"] .bhp-page .bhp-band-cream h2.wp-block-heading { font-size: min(24px, 4.9vw); }
	html[lang^="es"] .bhp-page .bhp-band-cream h2.wp-block-heading { font-size: min(24px, 4.85vw); }
	html[lang^="fr"] .bhp-page .bhp-band-cream h2.wp-block-heading { font-size: min(24px, 4.25vw); }
}
@media (max-width: 1023.98px) {
	html[lang^="nl"] body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-founder-credit {
		font-size: 13px;
		letter-spacing: -0.4px;
	}
}
html:not([lang^="en"]) .bhp-page .bhp-founder-quals .bhp-founder-qual {
	display: block;
}

/* z8udzkgngb (M4) + z8udzkgngc (M5): equal heights across the whole grid, not just
   within a row. The Targeted Support tiles (.bhp-bite-grid) and the Eight Gut-Organ
   Axes cards (.bhp-axis-grid) took their own content height, so a 3-line tile sat
   beside a 2-line one and rows ended at different heights. 1fr rows size every row
   to the tallest card. The axes grid skips the equal rows while a "The science"
   panel is open, so opening one card does not stretch all eight. Supersedes the L08
   428 "each card keeps its own height" rule. */
.bhp-bite-grid {
	grid-auto-rows: 1fr;
}
.bhp-bite-grid__item {
	display: flex;
}
.bhp-bite-grid__link {
	flex: 1;
}
.bhp-page .bhp-axis-grid {
	align-items: stretch;
}
.bhp-page .bhp-axis-grid:not(:has(details[open])) {
	grid-auto-rows: 1fr;
}

/* z8udzkgngd M3 (QA 21 Oct): on phones the nutrition-card CTAs take the card's inner width
   (the content box inside the 24px side padding) instead of hugging the label, so the
   Shop Superfoods & Ancient Grains pill lines up with the title and copy above it. The label
   sits on one line wherever 11px fits (about 370px and up); narrower cards keep the balanced
   two-line wrap, with no ellipsis and no word split. Phone width only: 481px and up keeps
   Figma's hug-width 341px pill. */
@media (max-width: 480px) {
	.bhp-page .bhp-nutrition-card .bhp-nutrition-cta {
		display: block;
		width: 100%;
	}
	.bhp-page .bhp-nutrition-card .bhp-nutrition-cta .wp-block-button__link {
		display: flex;
		width: 100%;
	}
	/* The 390 to 424px M3 rule above and the 421px nowrap rule keep the label on one line,
	   which runs past a fixed-width pill for the longer FR and ES labels. Let the label wrap
	   inside the pill instead; EN, DE and NL fit one line at this width either way. */
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page .bhp-nutrition-card .bhp-nutrition-cta a.wp-block-button__link {
		white-space: normal;
	}
}

/* z8udzkgpgr M10: the allergen band closing line holds one line below 360px in every
   language. The container is the viewport minus 40px; the longest line (DE, 12px) is
   about 27px of font-size per px of box. Scale the size to the box, capped at 12px, so
   DE/ES/NL/EN stay on one line from 320. Prefix outranks kobe-16-floor.css. */
@media (max-width: 359.98px) {
	body:not(.bc-floor-a):not(.bc-floor-b):not(.bc-floor-c) .bhp-page p.bhp-transparency-tagline {
		font-size: min(12px, calc((100vw - 40px) / 28));
	}
}
