diff --git a/app/components/ProductBlocks.tsx b/app/components/ProductBlocks.tsx index 270a059..6b6b089 100644 --- a/app/components/ProductBlocks.tsx +++ b/app/components/ProductBlocks.tsx @@ -99,7 +99,10 @@ export async function ProductBlocks({ product }: { product: Product }) { return
{renderProductBlock(block, ctx)}
; } return ( - + // py-12 md:py-16 — matches der-eine's own original Focus.tsx + // rhythm exactly (this system's reference template); py-8 sm:py-12 + // read as too tight right after the hero (reported 2026-08-30). + {renderProductBlock(block, ctx)} ); @@ -145,9 +148,16 @@ export function renderProductBlock(block: ProductBlock, ctx: ProductBlockContext // below — without this, a heading/prose block sat edge-to-edge while // the cards under it were capped, reading as "still not width-limited" // even after the cards themselves were (reported 2026-08-30). + // [&_h2>span]:hidden — RichText's heading converter always appends a + // small brand-underline span under every h2 (shared with blog/legal + // pages, where it's wanted); der-eine's own original heading had no + // such decoration, plain text only (reported 2026-08-30). Hidden via + // CSS rather than a RichText prop, same "override scoped to + // ProductBlocks.tsx, don't touch the shared renderer" approach as the + // quote/stepRow cases. case "richTextSection": return ( -
+
);