c4d9b1075c
Task 13a. Rewrite themes/trade-pro/blocks.css as two layers: - Layer A: current app/static/blocks.css verbatim (old theme copy was stale, missing V8.34+ hero slider / layout-variant / card-style rules); keeps all platform contracts (site-runtime.js hero track, responsive.py 820/540 device semantics, card-style/fit variants, V8.33.1 section-vs-inner class fix). - Layer B: .sf-theme-trade-pro scoped bridge to the sf-tp-* template language: hero (dark gradient + scrim + inverse button), features (soft band + white cards + icon-circle index), collection (hairline cards, hover lift, 4:3 media, pill tag), image_text (1fr/1.22fr + photo frame), stats (white stat bar with hairline dividers), cta (gradient band + ghost button), richtext (article-body typography incl. tables), plus gallery/faq/tabs/carousel/ video/pricing/attributes in the same tokens. 68 distinct --sf-tp-* token references; breakpoints 900/620 follow the template. Section backgrounds use a .sf-canvas chain (0,4,0) so they beat pro-base's later-loading .pro-custom-content rules in both static and editor cascades; user inline --sf-bg/--sf-fg still win via var() fallbacks; canvas hooks (block-id attrs, selection outlines, site-design padding/h1 controls) untouched. Tests: test_trade_pro_blocks_visual_bridge covers distribution (theme file served verbatim, not platform), full multi-block DOM structure with pro.js filter hooks, scoped rule/token/breakpoint contracts and editor-safety red lines. 36/36 in test_theme_registry + test_theme_pro_v3; full suite 453 passed / 11 failed (identical to pre-change baseline). Co-Authored-By: Claude Code <noreply@anthropic.com>