@inneranimalmedia/agentsam-sdk 2.6.11 → 2.6.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/apps/cad-creator/shared/cad/package.json +1 -1
  2. package/apps/client-cms-editor/backend/package.json +2 -2
  3. package/apps/client-cms-editor/frontend/package.json +3 -3
  4. package/apps/client-cms-editor/frontend/src/adapters/http-authoring.test.ts +161 -0
  5. package/apps/client-cms-editor/frontend/src/adapters/http.ts +296 -65
  6. package/apps/client-cms-editor/frontend/src/editor/CmsEditor.tsx +47 -16
  7. package/apps/client-cms-editor/frontend/src/editor/composition-groups.test.ts +40 -0
  8. package/apps/client-cms-editor/frontend/src/editor/legacy/CmsEditorPrototype.tsx +28 -28
  9. package/apps/client-cms-editor/frontend/src/editor/useCmsEditorController.ts +3 -3
  10. package/apps/client-cms-editor/frontend/src/styles/agentsam-drawer.css +5 -4
  11. package/apps/client-cms-editor/frontend/src/styles/studio.css +150 -149
  12. package/apps/client-cms-editor/package.json +1 -1
  13. package/apps/client-cms-editor/reference/harvest/plans/INNERANIMALS-CONTENT-001.md +1 -1
  14. package/apps/client-cms-editor/shared/cms/package.json +1 -1
  15. package/apps/client-cms-editor/shared/cms/src/editor-types.ts +42 -1
  16. package/docs/CMS_CONTEXTUAL_COMPOSER.md +4 -4
  17. package/docs/PRODUCT_LIFECYCLE.md +38 -38
  18. package/docs/REPO_FILE_MAP.txt +2 -2
  19. package/docs/THEME_REFINERY.md +6 -6
  20. package/docs/WINDOWS_RUNTIME_INSTALL.md +1 -1
  21. package/docs/adr/ADR-0002-brand-campaign-plugin-boundaries.md +603 -0
  22. package/docs/adr/ADR-0003-copro-clean-room-product-architecture.md +34 -0
  23. package/docs/adr/ADR-0003-product-portfolio-and-package-taxonomy.md +146 -0
  24. package/docs/adr/ADR-0004-product-composition-and-provider-neutrality.md +56 -0
  25. package/docs/adr/ADR-0005-offer-graduation-standard.md +66 -0
  26. package/docs/adr/README.md +25 -0
  27. package/docs/architecture/AGENTSAM_APPLICATION_CONTRACT.md +1 -1
  28. package/docs/architecture/DUAL_ANALYTICS_PRODUCT.md +1 -1
  29. package/docs/content-studio/HOST_MOUNT_CHECKLIST.md +1 -1
  30. package/docs/content-studio/REVISION_GATE_2026-09-27.md +3 -3
  31. package/docs/contracts/google-cloud-oauth-setup.md +1 -1
  32. package/docs/local-studio/WORKMODE_DONOR_NOTES.md +3 -3
  33. package/docs/plans/ASTRA-BRIEF-2026-09-18.md +1 -1
  34. package/docs/plans/LOCAL-STUDIO-REAL-APP-CONTRACT-ADDENDUM-2026-09-27.md +2 -2
  35. package/docs/plans/MACHINE-FIRST-APPS-TUI-2026-09-24.md +1 -1
  36. package/docs/plans/NEXT-AGENT-HANDOFF.md +2 -2
  37. package/docs/plans/TOMORROW-EXTENSIVE-TODO-2026-09-26.md +68 -68
  38. package/docs/plans/TOMORROW-MACHINE-FIRST-BRIEFING.md +1 -1
  39. package/docs/plans/UNIVERSAL-INGEST-MACHINE-FIRST-2026-09-24.md +1 -1
  40. package/docs/prd/PRD-agentsam-analytics.md +174 -0
  41. package/docs/prd/PRD-agentsam-brand.md +181 -0
  42. package/docs/prd/PRD-agentsam-browser.md +177 -0
  43. package/docs/prd/PRD-agentsam-cad-studio.md +177 -0
  44. package/docs/prd/PRD-agentsam-campaign.md +1178 -0
  45. package/docs/prd/PRD-agentsam-commerce-studio.md +180 -0
  46. package/docs/prd/PRD-agentsam-content-studio.md +179 -0
  47. package/docs/prd/PRD-agentsam-copro.md +39 -0
  48. package/docs/prd/PRD-agentsam-database-studio.md +175 -0
  49. package/docs/prd/PRD-agentsam-developer-studio.md +175 -0
  50. package/docs/prd/PRD-agentsam-hosted-runtime.md +180 -0
  51. package/docs/prd/PRD-agentsam-knowledge.md +174 -0
  52. package/docs/prd/PRD-agentsam-local-studio.md +180 -0
  53. package/docs/prd/PRD-agentsam-merch.md +177 -0
  54. package/docs/prd/PRD-agentsam-platform.md +179 -0
  55. package/docs/prd/PRD-agentsam-site-studio.md +180 -0
  56. package/docs/prd/PRD-agentsam-work.md +180 -0
  57. package/docs/prd/README.md +39 -0
  58. package/docs/product/COPRO-DONOR-AUDIT.md +9 -0
  59. package/docs/product/COPRO-EXECUTION-PLAN.md +81 -0
  60. package/docs/product/COPRO-UI-QUALITY-GATE.md +119 -0
  61. package/docs/product/OFFER-PORTFOLIO.md +158 -0
  62. package/docs/product/PACKAGE-TAXONOMY.md +78 -0
  63. package/examples/hyperspace-demo/dist/assets/index-SZ2LfOpJ.js +242 -0
  64. package/examples/hyperspace-demo/dist/index.html +13 -0
  65. package/native/agentsam-machine/core/src/lib.rs +2 -2
  66. package/package.json +55 -35
  67. package/packages/agentsam-brand/package.json +3 -2
  68. package/packages/agentsam-brand/src/public.js +192 -0
  69. package/packages/agentsam-contracts/README.md +1 -1
  70. package/packages/agentsam-contracts/package.json +1 -1
  71. package/packages/agentsam-errors/package.json +1 -1
  72. package/packages/agentsam-goap/package.json +2 -2
  73. package/packages/agentsam-hooks/package.json +1 -1
  74. package/packages/agentsam-knowledge/package.json +1 -1
  75. package/packages/agentsam-merch/package.json +1 -1
  76. package/packages/agentsam-merch/test/merch.test.mjs +1 -1
  77. package/packages/agentsam-nav/dist/browser.global.js +34 -71
  78. package/packages/agentsam-nav/dist/browser.js +759 -3157
  79. package/packages/agentsam-nav/dist/index.js +751 -3149
  80. package/packages/agentsam-nav/package.json +1 -1
  81. package/packages/agentsam-queue-control/package.json +1 -1
  82. package/packages/agentsam-repository/package.json +1 -1
  83. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  84. package/packages/agentsam-vault/package.json +1 -1
  85. package/packages/agentsam-workbench/package.json +5 -4
  86. package/packages/agentsam-workbench/src/agent/MiniAgentSam.tsx +28 -4
  87. package/packages/agentsam-workbench/src/agent/contextual-composer.css +72 -70
  88. package/packages/agentsam-workbench/src/agent/mini-agentsam.css +228 -10
  89. package/packages/connectors/cfoa/package.json +1 -1
  90. package/packages/heuristic-theme/package.json +1 -1
  91. package/packages/identity/package.json +1 -1
  92. package/packages/identity/src/frontend/auth-portal/pages/login.html +1 -1
  93. package/packages/identity/src/frontend/auth-portal/pages/reset.html +1 -1
  94. package/packages/identity/src/frontend/auth-portal/pages/signup.html +1 -1
  95. package/packages/identity/tests/chatgpt-provider.test.mjs +3 -3
  96. package/packages/identity/tests/oauth-consent-view.test.mjs +11 -11
  97. package/packages/providers/completeful/README.md +3 -3
  98. package/packages/providers/completeful/package.json +1 -1
  99. package/packages/theme-cypress/README.md +11 -0
  100. package/packages/{theme-church-site → theme-cypress}/package.json +14 -11
  101. package/packages/theme-cypress/prebuild.json +23 -0
  102. package/packages/theme-cypress/site/assets/generated/favicon.svg +7 -0
  103. package/packages/theme-cypress/site/assets/generated/media-044ba16613.webp +0 -0
  104. package/packages/theme-cypress/site/assets/generated/media-0a1ea6f6d9.webp +0 -0
  105. package/packages/theme-cypress/site/assets/generated/media-0c06778307.webp +0 -0
  106. package/packages/theme-cypress/site/assets/generated/media-1539ed373a.webp +0 -0
  107. package/packages/theme-cypress/site/assets/generated/media-2df479fd2d.webp +0 -0
  108. package/packages/theme-cypress/site/assets/generated/media-2e8bd0d9bc.webp +0 -0
  109. package/packages/theme-cypress/site/assets/generated/media-41d4e2643c.webp +0 -0
  110. package/packages/theme-cypress/site/assets/generated/media-46205bfde8.webp +0 -0
  111. package/packages/theme-cypress/site/assets/generated/media-50c5f3e279.webp +0 -0
  112. package/packages/theme-cypress/site/assets/generated/media-5f1467778c.webp +0 -0
  113. package/packages/theme-cypress/site/assets/generated/media-6703642b22.webp +0 -0
  114. package/packages/theme-cypress/site/assets/generated/media-87a490bc8e.webp +0 -0
  115. package/packages/theme-cypress/site/assets/generated/media-997c10ef39.webp +0 -0
  116. package/packages/theme-cypress/site/assets/generated/media-a423735c21.webp +0 -0
  117. package/packages/theme-cypress/site/assets/generated/media-c9cea5245b.webp +0 -0
  118. package/packages/theme-cypress/site/assets/generated/media-cab3c84c60.webp +0 -0
  119. package/packages/theme-cypress/site/assets/generated/media-ce06595d59.webp +0 -0
  120. package/packages/theme-cypress/site/assets/generated/media-d268905e7e.webp +0 -0
  121. package/packages/theme-cypress/site/assets/generated/media-f6711b5053.webp +0 -0
  122. package/packages/theme-cypress/site/assets/generated/media-manifest.json +226 -0
  123. package/packages/theme-cypress/site/assets/generated/social-card.webp +0 -0
  124. package/packages/theme-cypress/site/assets/generated/theme-mark-192.png +0 -0
  125. package/packages/theme-cypress/site/assets/generated/theme-mark-512.png +0 -0
  126. package/packages/theme-cypress/site/assets/generated/theme-mark.svg +7 -0
  127. package/packages/theme-cypress/site/beliefs.html +175 -0
  128. package/packages/theme-cypress/site/community.html +175 -0
  129. package/packages/theme-cypress/site/connect.html +319 -0
  130. package/packages/theme-cypress/site/donate.html +106 -0
  131. package/packages/theme-cypress/site/groups.html +1352 -0
  132. package/packages/theme-cypress/site/help.html +1 -0
  133. package/packages/theme-cypress/site/icons/clock.svg +4 -0
  134. package/packages/theme-cypress/site/icons/email.svg +4 -0
  135. package/packages/theme-cypress/site/icons/giving.svg +4 -0
  136. package/packages/theme-cypress/site/icons/home.svg +4 -0
  137. package/packages/theme-cypress/site/icons/location.svg +4 -0
  138. package/packages/theme-cypress/site/icons/media.svg +4 -0
  139. package/packages/theme-cypress/site/icons/ministries.svg +6 -0
  140. package/packages/theme-cypress/site/icons/prayer.svg +5 -0
  141. package/packages/theme-cypress/site/icons/visit.svg +6 -0
  142. package/packages/theme-cypress/site/index.html +1013 -0
  143. package/packages/theme-cypress/site/mensgroup.html +477 -0
  144. package/packages/theme-cypress/site/mission.html +512 -0
  145. package/packages/theme-cypress/site/unified-footer.css +172 -0
  146. package/packages/theme-cypress/site/unified-footer.js +175 -0
  147. package/packages/theme-cypress/site/unified-header.css +226 -0
  148. package/packages/theme-cypress/site/unified-header.js +111 -0
  149. package/packages/theme-cypress/site/womansgroup.html +452 -0
  150. package/packages/{theme-church-site → theme-cypress}/src/index.js +22 -35
  151. package/packages/theme-cypress/src/node.js +69 -0
  152. package/packages/theme-cypress/test/theme.test.mjs +47 -0
  153. package/packages/theme-ember/README.md +11 -0
  154. package/packages/{theme-fuelnfree-site → theme-ember}/package.json +14 -11
  155. package/packages/theme-ember/prebuild.json +23 -0
  156. package/packages/theme-ember/site/about.html +1840 -0
  157. package/packages/theme-ember/site/assets/generated/favicon.svg +7 -0
  158. package/packages/theme-ember/site/assets/generated/media-1e0b1e6ee6.webp +0 -0
  159. package/packages/theme-ember/site/assets/generated/media-2371dcb426.webp +0 -0
  160. package/packages/theme-ember/site/assets/generated/media-2db4f5ff9e.webp +0 -0
  161. package/packages/theme-ember/site/assets/generated/media-4ed07a756e.webp +0 -0
  162. package/packages/theme-ember/site/assets/generated/media-58182cf167.webp +0 -0
  163. package/packages/theme-ember/site/assets/generated/media-5b8b8472ae.webp +0 -0
  164. package/packages/theme-ember/site/assets/generated/media-71f4bd16a1.webp +0 -0
  165. package/packages/theme-ember/site/assets/generated/media-7c1c8120bc.webp +0 -0
  166. package/packages/theme-ember/site/assets/generated/media-832b176433.webp +0 -0
  167. package/packages/theme-ember/site/assets/generated/media-931439701c.webp +0 -0
  168. package/packages/theme-ember/site/assets/generated/media-c2860d40d1.webp +0 -0
  169. package/packages/theme-ember/site/assets/generated/media-c56974d198.webp +0 -0
  170. package/packages/theme-ember/site/assets/generated/media-cb83a44ff4.webp +0 -0
  171. package/packages/theme-ember/site/assets/generated/media-df02ccdfcf.webp +0 -0
  172. package/packages/theme-ember/site/assets/generated/media-fab72cd344.webp +0 -0
  173. package/packages/theme-ember/site/assets/generated/media-manifest.json +190 -0
  174. package/packages/theme-ember/site/assets/generated/social-card.webp +0 -0
  175. package/packages/theme-ember/site/assets/generated/theme-mark-192.png +0 -0
  176. package/packages/theme-ember/site/assets/generated/theme-mark-512.png +0 -0
  177. package/packages/theme-ember/site/assets/generated/theme-mark.svg +7 -0
  178. package/packages/theme-ember/site/community.html +1664 -0
  179. package/packages/theme-ember/site/index.html +2044 -0
  180. package/packages/theme-ember/site/shop.html +2104 -0
  181. package/packages/{theme-fuelnfree-site → theme-ember}/src/index.js +23 -33
  182. package/packages/theme-ember/src/node.js +69 -0
  183. package/packages/theme-ember/test/theme.test.mjs +47 -0
  184. package/packages/theme-forge/README.md +11 -0
  185. package/packages/theme-forge/package.json +44 -0
  186. package/packages/theme-forge/prebuild.json +23 -0
  187. package/packages/theme-forge/site/apple-touch-icon.png +0 -0
  188. package/packages/theme-forge/site/assets/generated/favicon.svg +7 -0
  189. package/packages/theme-forge/site/assets/generated/media-manifest.json +17 -0
  190. package/packages/theme-forge/site/assets/generated/social-card.webp +0 -0
  191. package/packages/theme-forge/site/assets/generated/theme-mark-192.png +0 -0
  192. package/packages/theme-forge/site/assets/generated/theme-mark-512.png +0 -0
  193. package/packages/theme-forge/site/assets/generated/theme-mark.svg +7 -0
  194. package/packages/theme-forge/site/assets/index-DBOqQVsA.css +1 -0
  195. package/packages/theme-forge/site/assets/index-pXC0o9jp.js +241 -0
  196. package/packages/theme-forge/site/assets/workbox-window.prod.es5-Bd17z0YL.js +2 -0
  197. package/packages/theme-forge/site/index.html +5 -0
  198. package/packages/theme-forge/site/manifest.webmanifest +1 -0
  199. package/packages/theme-forge/site/pwa-192x192.png +0 -0
  200. package/packages/theme-forge/site/pwa-512x512.png +0 -0
  201. package/packages/theme-forge/site/sw.js +107 -0
  202. package/packages/theme-forge/site/workbox-7e5eb42b.js +3395 -0
  203. package/packages/theme-forge/src/index.js +76 -0
  204. package/packages/theme-forge/src/node.js +69 -0
  205. package/packages/theme-forge/test/theme.test.mjs +47 -0
  206. package/packages/theme-grove/README.md +11 -0
  207. package/packages/{theme-floors-site → theme-grove}/package.json +14 -11
  208. package/packages/theme-grove/prebuild.json +23 -0
  209. package/packages/theme-grove/site/assets/generated/favicon.svg +7 -0
  210. package/packages/theme-grove/site/assets/generated/media-098b13d75a.webp +0 -0
  211. package/packages/theme-grove/site/assets/generated/media-0c064db1aa.webp +0 -0
  212. package/packages/theme-grove/site/assets/generated/media-0fbfef655e.webp +0 -0
  213. package/packages/theme-grove/site/assets/generated/media-14759c7460.webp +0 -0
  214. package/packages/theme-grove/site/assets/generated/media-19b23d2a8f.webp +0 -0
  215. package/packages/theme-grove/site/assets/generated/media-2012f04243.webp +0 -0
  216. package/packages/theme-grove/site/assets/generated/media-23b8c5e2bb.webp +0 -0
  217. package/packages/theme-grove/site/assets/generated/media-2bffb1a6ef.webp +0 -0
  218. package/packages/theme-grove/site/assets/generated/media-2e1523a5b0.webp +0 -0
  219. package/packages/theme-grove/site/assets/generated/media-31107c21f2.webp +0 -0
  220. package/packages/theme-grove/site/assets/generated/media-31373ec865.webp +0 -0
  221. package/packages/theme-grove/site/assets/generated/media-45e8e27542.webp +0 -0
  222. package/packages/theme-grove/site/assets/generated/media-4aa9846fe7.webp +0 -0
  223. package/packages/theme-grove/site/assets/generated/media-5476b24219.webp +0 -0
  224. package/packages/theme-grove/site/assets/generated/media-7a227d3e4b.webp +0 -0
  225. package/packages/theme-grove/site/assets/generated/media-b183eed550.webp +0 -0
  226. package/packages/theme-grove/site/assets/generated/media-b2c650f9ab.webp +0 -0
  227. package/packages/theme-grove/site/assets/generated/media-b5d7471694.webp +0 -0
  228. package/packages/theme-grove/site/assets/generated/media-c86498fdb4.webp +0 -0
  229. package/packages/theme-grove/site/assets/generated/media-ce2cfff9a1.webp +0 -0
  230. package/packages/theme-grove/site/assets/generated/media-cf41a5f324.webp +0 -0
  231. package/packages/theme-grove/site/assets/generated/media-ec6c01bf8d.webp +0 -0
  232. package/packages/theme-grove/site/assets/generated/media-manifest.json +267 -0
  233. package/packages/theme-grove/site/assets/generated/social-card.webp +0 -0
  234. package/packages/theme-grove/site/assets/generated/theme-mark-192.png +0 -0
  235. package/packages/theme-grove/site/assets/generated/theme-mark-512.png +0 -0
  236. package/packages/theme-grove/site/assets/generated/theme-mark.svg +7 -0
  237. package/packages/theme-grove/site/index.html +1429 -0
  238. package/packages/theme-grove/site/pages/contact.html +664 -0
  239. package/packages/theme-grove/site/pages/gallery.html +216 -0
  240. package/packages/theme-grove/site/pages/privacy.html +180 -0
  241. package/packages/theme-grove/site/pages/process.html +592 -0
  242. package/packages/theme-grove/site/pages/services.html +567 -0
  243. package/packages/theme-grove/site/pages/terms.html +189 -0
  244. package/packages/theme-grove/site/shared/footer.css +140 -0
  245. package/packages/theme-grove/site/shared/footer.html +41 -0
  246. package/packages/{theme-floors-site → theme-grove}/src/index.js +24 -35
  247. package/packages/theme-grove/src/node.js +69 -0
  248. package/packages/theme-grove/test/theme.test.mjs +47 -0
  249. package/packages/theme-harbor/README.md +11 -0
  250. package/packages/{theme-insurance-site → theme-harbor}/package.json +14 -11
  251. package/packages/theme-harbor/prebuild.json +23 -0
  252. package/packages/theme-harbor/site/assets/generated/favicon.svg +7 -0
  253. package/packages/theme-harbor/site/assets/generated/media-manifest.json +17 -0
  254. package/packages/theme-harbor/site/assets/generated/social-card.webp +0 -0
  255. package/packages/theme-harbor/site/assets/generated/theme-mark-192.png +0 -0
  256. package/packages/theme-harbor/site/assets/generated/theme-mark-512.png +0 -0
  257. package/packages/theme-harbor/site/assets/generated/theme-mark.svg +7 -0
  258. package/packages/theme-harbor/site/assets/index-D58RKkr-.js +239 -0
  259. package/packages/theme-harbor/site/assets/index-Dd3YN9Mf.css +1 -0
  260. package/packages/theme-harbor/site/index.html +15 -0
  261. package/packages/theme-harbor/src/index.js +76 -0
  262. package/packages/theme-harbor/src/node.js +69 -0
  263. package/packages/theme-harbor/test/theme.test.mjs +47 -0
  264. package/packages/theme-resolve/README.md +11 -0
  265. package/packages/theme-resolve/package.json +44 -0
  266. package/packages/theme-resolve/prebuild.json +23 -0
  267. package/packages/theme-resolve/site/assets/generated/favicon.svg +7 -0
  268. package/packages/theme-resolve/site/assets/generated/media-216610d365.webp +0 -0
  269. package/packages/theme-resolve/site/assets/generated/media-2a9e0f623f.webp +0 -0
  270. package/packages/theme-resolve/site/assets/generated/media-a70660bfa9.webp +0 -0
  271. package/packages/theme-resolve/site/assets/generated/media-bc1322e813.webp +0 -0
  272. package/packages/theme-resolve/site/assets/generated/media-ced60fcecc.webp +0 -0
  273. package/packages/theme-resolve/site/assets/generated/media-manifest.json +72 -0
  274. package/packages/theme-resolve/site/assets/generated/social-card.webp +0 -0
  275. package/packages/theme-resolve/site/assets/generated/theme-mark-192.png +0 -0
  276. package/packages/theme-resolve/site/assets/generated/theme-mark-512.png +0 -0
  277. package/packages/theme-resolve/site/assets/generated/theme-mark.svg +7 -0
  278. package/packages/theme-resolve/site/assets/index-BSaLpPG1.css +2 -0
  279. package/packages/theme-resolve/site/assets/index-D8au46Z5.js +17 -0
  280. package/packages/theme-resolve/site/index.html +22 -0
  281. package/packages/theme-resolve/src/index.js +69 -0
  282. package/packages/theme-resolve/src/node.js +69 -0
  283. package/packages/theme-resolve/test/theme.test.mjs +47 -0
  284. package/packages/theme-scenes/package.json +1 -1
  285. package/packages/theme-scenes/src/registry.js +32 -49
  286. package/packages/theme-summit/README.md +11 -0
  287. package/packages/{theme-shinshu-site → theme-summit}/package.json +14 -11
  288. package/packages/theme-summit/prebuild.json +23 -0
  289. package/packages/theme-summit/site/adventures.html +450 -0
  290. package/packages/theme-summit/site/assets/generated/favicon.svg +7 -0
  291. package/packages/theme-summit/site/assets/generated/media-1e958ea679.webp +0 -0
  292. package/packages/theme-summit/site/assets/generated/media-9d4521abba.webp +0 -0
  293. package/packages/theme-summit/site/assets/generated/media-manifest.json +39 -0
  294. package/packages/theme-summit/site/assets/generated/social-card.webp +0 -0
  295. package/packages/theme-summit/site/assets/generated/theme-mark-192.png +0 -0
  296. package/packages/theme-summit/site/assets/generated/theme-mark-512.png +0 -0
  297. package/packages/theme-summit/site/assets/generated/theme-mark.svg +7 -0
  298. package/packages/theme-summit/site/business-card.html +315 -0
  299. package/packages/theme-summit/site/chatbot.js +312 -0
  300. package/packages/theme-summit/site/gallery.html +524 -0
  301. package/packages/theme-summit/site/i18n.js +947 -0
  302. package/packages/theme-summit/site/icons.svg +87 -0
  303. package/packages/theme-summit/site/index.html +2415 -0
  304. package/packages/theme-summit/site/pages/about.html +100 -0
  305. package/packages/theme-summit/site/pages/contact.html +117 -0
  306. package/packages/theme-summit/site/pages/dashboard.html +111 -0
  307. package/packages/theme-summit/site/pages/index.html +129 -0
  308. package/packages/theme-summit/site/pages/services.html +125 -0
  309. package/packages/theme-summit/site/shared/footer.html +41 -0
  310. package/packages/theme-summit/site/shared/layout.js +315 -0
  311. package/packages/theme-summit/site/shared/nav.html +19 -0
  312. package/packages/theme-summit/site/shared/styles.css +696 -0
  313. package/packages/theme-summit/site/theme-styles.css +131 -0
  314. package/packages/theme-summit/site/themes.js +442 -0
  315. package/packages/{theme-shinshu-site → theme-summit}/src/index.js +23 -35
  316. package/packages/theme-summit/src/node.js +69 -0
  317. package/packages/theme-summit/test/theme.test.mjs +47 -0
  318. package/packages/theme-violet/README.md +11 -0
  319. package/packages/{theme-companions-site → theme-violet}/package.json +14 -11
  320. package/packages/theme-violet/prebuild.json +23 -0
  321. package/packages/theme-violet/site/assets/generated/favicon.svg +7 -0
  322. package/packages/theme-violet/site/assets/generated/media-07b46d6457.webp +0 -0
  323. package/packages/theme-violet/site/assets/generated/media-09d38ddffc.webp +0 -0
  324. package/packages/theme-violet/site/assets/generated/media-254b0e2ad3.webp +0 -0
  325. package/packages/theme-violet/site/assets/generated/media-3a1b5c0a8d.webp +0 -0
  326. package/packages/theme-violet/site/assets/generated/media-3a78eb7d9d.webp +0 -0
  327. package/packages/theme-violet/site/assets/generated/media-49076977d8.webp +0 -0
  328. package/packages/theme-violet/site/assets/generated/media-6342d50dbd.webp +0 -0
  329. package/packages/theme-violet/site/assets/generated/media-646c65381e.webp +0 -0
  330. package/packages/theme-violet/site/assets/generated/media-7a5fb7c91a.webp +0 -0
  331. package/packages/theme-violet/site/assets/generated/media-9bbd133220.webp +0 -0
  332. package/packages/theme-violet/site/assets/generated/media-9e73307c2a.webp +0 -0
  333. package/packages/theme-violet/site/assets/generated/media-af382146a0.webp +0 -0
  334. package/packages/theme-violet/site/assets/generated/media-b2ae348b43.webp +0 -0
  335. package/packages/theme-violet/site/assets/generated/media-b8f43a3887.webp +0 -0
  336. package/packages/theme-violet/site/assets/generated/media-c96a3e1979.webp +0 -0
  337. package/packages/theme-violet/site/assets/generated/media-cd07daa54a.webp +0 -0
  338. package/packages/theme-violet/site/assets/generated/media-e03ab6b5fe.webp +0 -0
  339. package/packages/theme-violet/site/assets/generated/media-eae4917d25.webp +0 -0
  340. package/packages/theme-violet/site/assets/generated/media-f227ec5690.webp +0 -0
  341. package/packages/theme-violet/site/assets/generated/media-fb57ffd474.webp +0 -0
  342. package/packages/theme-violet/site/assets/generated/media-manifest.json +245 -0
  343. package/packages/theme-violet/site/assets/generated/social-card.webp +0 -0
  344. package/packages/theme-violet/site/assets/generated/theme-mark-192.png +0 -0
  345. package/packages/theme-violet/site/assets/generated/theme-mark-512.png +0 -0
  346. package/packages/theme-violet/site/assets/generated/theme-mark.svg +7 -0
  347. package/packages/theme-violet/site/global/cpas-contact.css +405 -0
  348. package/packages/theme-violet/site/global/cpas-donate-v2.css +931 -0
  349. package/packages/theme-violet/site/global/cpas-drawer-override.css +1 -0
  350. package/packages/theme-violet/site/global/cpas-footer.html +38 -0
  351. package/packages/theme-violet/site/global/cpas-header.html +30 -0
  352. package/packages/theme-violet/site/global/cpas-hero-watercolor.css +275 -0
  353. package/packages/theme-violet/site/global/cpas-modals.js +802 -0
  354. package/packages/theme-violet/site/global/cpas-public-surface.css +982 -0
  355. package/packages/theme-violet/site/global/cpas-shell.css +3980 -0
  356. package/packages/theme-violet/site/global/cpas-shell.js +107 -0
  357. package/packages/theme-violet/site/global/cpas-shelter-hub.css +326 -0
  358. package/packages/theme-violet/site/index.html +141 -0
  359. package/packages/theme-violet/site/pages/about/campaigns.html +28 -0
  360. package/packages/theme-violet/site/pages/about/cta.html +25 -0
  361. package/packages/theme-violet/site/pages/about/hero.html +46 -0
  362. package/packages/theme-violet/site/pages/about/paths.html +24 -0
  363. package/packages/theme-violet/site/pages/about/why_we_exist.html +28 -0
  364. package/packages/theme-violet/site/pages/home/campaigns.html +67 -0
  365. package/packages/theme-violet/site/pages/home/hero.html +42 -0
  366. package/packages/theme-violet/site/pages/home/how-it-helps.html +32 -0
  367. package/packages/theme-violet/site/pages/home/impact-stats.html +31 -0
  368. package/packages/theme-violet/site/pages/home/mission.html +36 -0
  369. package/packages/theme-violet/site/pages/home/newsletter.html +29 -0
  370. package/packages/theme-violet/site/pages/home/transport-win.html +22 -0
  371. package/packages/theme-violet/site/pages/index.html +141 -0
  372. package/packages/theme-violet/src/index.js +76 -0
  373. package/packages/theme-violet/src/node.js +69 -0
  374. package/packages/theme-violet/test/theme.test.mjs +47 -0
  375. package/packages/work-graph/package.json +1 -1
  376. package/protocol/features/README.md +1 -1
  377. package/protocol/features/catalog.json +12 -12
  378. package/protocol/features/examples/provider-resend.feature.json +2 -2
  379. package/protocol/presets/catalog.json +1 -1
  380. package/protocol/theme-refinery/prebuild-registry.json +45 -0
  381. package/protocol/theme-refinery/product-metadata.schema.json +63 -26
  382. package/protocol/theme-refinery/receipts/prebuild-remaster-20261004.json +21 -0
  383. package/src/plugins/completeful.js +2 -2
  384. package/packages/theme-church-site/README.md +0 -10
  385. package/packages/theme-church-site/src/harvest.json +0 -16
  386. package/packages/theme-church-site/test/theme.test.mjs +0 -21
  387. package/packages/theme-companions-site/README.md +0 -10
  388. package/packages/theme-companions-site/src/harvest.json +0 -14
  389. package/packages/theme-companions-site/src/index.js +0 -87
  390. package/packages/theme-companions-site/test/theme.test.mjs +0 -21
  391. package/packages/theme-floors-site/README.md +0 -10
  392. package/packages/theme-floors-site/src/harvest.json +0 -16
  393. package/packages/theme-floors-site/test/theme.test.mjs +0 -21
  394. package/packages/theme-fuelnfree-site/README.md +0 -10
  395. package/packages/theme-fuelnfree-site/src/harvest.json +0 -15
  396. package/packages/theme-fuelnfree-site/test/theme.test.mjs +0 -21
  397. package/packages/theme-handyman-site/README.md +0 -10
  398. package/packages/theme-handyman-site/package.json +0 -41
  399. package/packages/theme-handyman-site/src/harvest.json +0 -12
  400. package/packages/theme-handyman-site/src/index.js +0 -88
  401. package/packages/theme-handyman-site/test/theme.test.mjs +0 -21
  402. package/packages/theme-insurance-site/README.md +0 -10
  403. package/packages/theme-insurance-site/src/harvest.json +0 -12
  404. package/packages/theme-insurance-site/src/index.js +0 -88
  405. package/packages/theme-insurance-site/test/theme.test.mjs +0 -21
  406. package/packages/theme-shinshu-site/README.md +0 -10
  407. package/packages/theme-shinshu-site/src/harvest.json +0 -14
  408. package/packages/theme-shinshu-site/test/theme.test.mjs +0 -21
  409. package/protocol/theme-refinery/lineage-registry.json +0 -105
  410. package/protocol/theme-refinery/receipts/products-registry-batch-20260924.json +0 -318
  411. package/protocol/theme-refinery/receipts/theme-harvest-20260924.json +0 -472
@@ -0,0 +1,982 @@
1
+ /* ── PUBLIC PAGE SURFACE (light-first) ─────────────────────────
2
+ Hero, sections, mobile nav, footer grid — required by fragment CMS.
3
+ Uses theme-light tokens (--bg, --text-1, etc.) from cpas-shell.css.
4
+ ───────────────────────────────────────────────────────────── */
5
+
6
+ .theme-light,
7
+ .theme-plum-glass {
8
+ --light-bg: var(--bg);
9
+ --light-card: #ffffff;
10
+ --light-border: var(--border);
11
+ --light-text: var(--text-1);
12
+ --light-muted: var(--text-2);
13
+ }
14
+
15
+ /* Mobile nav — hidden on desktop (fixes duplicate nav bleed-through) */
16
+ .mobile-menu-panel {
17
+ display: none;
18
+ }
19
+ @media (max-width: 760px) {
20
+ .mobile-menu-panel {
21
+ display: flex;
22
+ flex-direction: column;
23
+ position: fixed;
24
+ top: 0;
25
+ right: 0;
26
+ bottom: 0;
27
+ z-index: 510;
28
+ width: min(86vw, 360px);
29
+ padding: calc(var(--header-h) + 12px) 12px 24px;
30
+ gap: 4px;
31
+ background: rgba(250, 248, 244, 0.98);
32
+ border-left: 1px solid var(--border);
33
+ box-shadow: -24px 0 64px rgba(28, 20, 32, 0.12);
34
+ transform: translateX(100%);
35
+ transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
36
+ overflow-y: auto;
37
+ }
38
+ .mobile-menu-panel.is-open {
39
+ transform: translateX(0);
40
+ }
41
+ .mobile-menu-panel a {
42
+ display: flex;
43
+ align-items: center;
44
+ min-height: 48px;
45
+ padding: 0 16px;
46
+ border-radius: 12px;
47
+ font-size: 16px;
48
+ font-weight: 500;
49
+ color: var(--text-2);
50
+ transition: background 150ms, color 150ms;
51
+ }
52
+ .mobile-menu-panel a:hover,
53
+ .mobile-menu-panel a.active {
54
+ color: var(--text-1);
55
+ background: rgba(107, 33, 232, 0.08);
56
+ }
57
+ .mobile-menu-panel .mobile-donate {
58
+ margin-top: 8px;
59
+ justify-content: center;
60
+ background: var(--purple);
61
+ color: #fff !important;
62
+ font-weight: 600;
63
+ border-radius: 999px;
64
+ }
65
+ .theme-plum-glass .mobile-menu-panel {
66
+ background: linear-gradient(180deg, rgba(44, 10, 56, 0.98) 0%, rgba(58, 16, 72, 0.97) 100%);
67
+ border-left-color: rgba(255, 255, 255, 0.10);
68
+ box-shadow: -24px 0 64px rgba(20, 4, 28, 0.35);
69
+ }
70
+ .theme-plum-glass .mobile-menu-panel a {
71
+ color: rgba(255, 255, 255, 0.76);
72
+ }
73
+ .theme-plum-glass .mobile-menu-panel a:hover,
74
+ .theme-plum-glass .mobile-menu-panel a.active {
75
+ color: #fff;
76
+ background: rgba(255, 255, 255, 0.08);
77
+ }
78
+ .theme-plum-glass .mobile-menu-panel .mobile-donate {
79
+ background: linear-gradient(135deg, var(--tg-cta-donate-start), var(--tg-cta-donate-end));
80
+ box-shadow: 0 8px 22px var(--tg-cta-donate-shadow);
81
+ }
82
+ }
83
+
84
+ /* ── HERO MOCKUP — see cpas-hero-watercolor.css (merged into shell) ── */
85
+
86
+ /* ── HERO SPLIT (legacy / about) ────────────────────────────── */
87
+ .hero-split {
88
+ position: relative;
89
+ min-height: calc(100vh - var(--header-h));
90
+ display: flex;
91
+ align-items: center;
92
+ overflow: hidden;
93
+ background: var(--bg);
94
+ }
95
+ .hero-media-bg { position: absolute; inset: 0; z-index: 0; }
96
+ .hero-media-bg img {
97
+ position: absolute;
98
+ right: 0;
99
+ top: 0;
100
+ width: min(62%, 820px);
101
+ height: 100%;
102
+ object-fit: cover;
103
+ object-position: center 18%;
104
+ z-index: 0;
105
+ }
106
+ .hero-split--image-left .hero-media-bg img {
107
+ left: 0;
108
+ right: auto;
109
+ }
110
+ .hero-split--image-left .hero-scrim {
111
+ left: auto;
112
+ right: 0;
113
+ }
114
+ .hero-split--image-left .hero-content {
115
+ margin-left: auto;
116
+ }
117
+ .theme-light .hero-scrim,
118
+ .hero-scrim {
119
+ position: absolute;
120
+ top: 0;
121
+ bottom: 0;
122
+ left: 0;
123
+ width: min(46%, 560px);
124
+ z-index: 1;
125
+ pointer-events: none;
126
+ background: linear-gradient(
127
+ 90deg,
128
+ var(--bg) 0%,
129
+ var(--bg) 82%,
130
+ rgba(250, 248, 244, 0.55) 94%,
131
+ transparent 100%
132
+ );
133
+ }
134
+
135
+ /* Soft split = current full-bleed photo + scrim fade (default) */
136
+ .hero-split--soft .hero-media-bg img {
137
+ width: 100%;
138
+ left: 0;
139
+ right: 0;
140
+ }
141
+ .hero-split--soft .hero-scrim {
142
+ width: min(52%, 640px);
143
+ }
144
+
145
+ /* True split = photo only in its column; no half-cover fade */
146
+ .hero-split--true {
147
+ display: grid;
148
+ grid-template-columns: minmax(0, calc(100% - var(--hero-image-width, 55%))) minmax(240px, var(--hero-image-width, 55%));
149
+ align-items: stretch;
150
+ }
151
+ .hero-split--true.hero-split--image-left {
152
+ grid-template-columns: minmax(240px, var(--hero-image-width, 55%)) minmax(0, calc(100% - var(--hero-image-width, 55%)));
153
+ }
154
+ .hero-split--true .hero-media-bg {
155
+ position: relative;
156
+ inset: auto;
157
+ grid-column: 2;
158
+ grid-row: 1;
159
+ min-height: calc(100vh - var(--header-h));
160
+ }
161
+ .hero-split--true.hero-split--image-left .hero-media-bg {
162
+ grid-column: 1;
163
+ }
164
+ .hero-split--true .hero-media-bg img {
165
+ position: absolute;
166
+ inset: 0;
167
+ width: 100%;
168
+ height: 100%;
169
+ right: auto;
170
+ left: auto;
171
+ }
172
+ .hero-split--true .hero-scrim { display: none; }
173
+ .hero-split--true .hero-body {
174
+ grid-column: 1;
175
+ grid-row: 1;
176
+ display: flex;
177
+ align-items: center;
178
+ background: var(--bg);
179
+ z-index: 2;
180
+ }
181
+ .hero-split--true.hero-split--image-left .hero-body {
182
+ grid-column: 2;
183
+ }
184
+ .hero-split--true .hero-content { margin-left: 0; }
185
+
186
+ /* Contained split = donate/contact gutters; photo inset + rounded, not edge-bleed */
187
+ .hero-split--contained {
188
+ display: grid;
189
+ grid-template-columns: minmax(0, 1.05fr) minmax(260px, var(--hero-image-width, 48%));
190
+ gap: clamp(28px, 4vw, 64px);
191
+ align-items: center;
192
+ width: 100%;
193
+ max-width: none;
194
+ min-height: 0;
195
+ box-sizing: border-box;
196
+ padding: clamp(36px, 6vw, 80px) max(var(--page-gutter), calc((100% - var(--page-max)) / 2));
197
+ background: var(--bg);
198
+ }
199
+ .hero-split--contained.hero-split--image-left {
200
+ grid-template-columns: minmax(260px, var(--hero-image-width, 48%)) minmax(0, 1.05fr);
201
+ }
202
+ .hero-split--contained .hero-media-bg {
203
+ position: relative;
204
+ inset: auto;
205
+ grid-column: 2;
206
+ grid-row: 1;
207
+ min-height: 0;
208
+ aspect-ratio: 4 / 3;
209
+ max-height: min(520px, 58vh);
210
+ border-radius: var(--radius-lg);
211
+ overflow: hidden;
212
+ box-shadow: 0 18px 48px rgba(28, 20, 32, 0.10);
213
+ background: var(--bg2, #efeae3);
214
+ }
215
+ .hero-split--contained.hero-split--image-left .hero-media-bg {
216
+ grid-column: 1;
217
+ }
218
+ .hero-split--contained .hero-media-bg img {
219
+ position: absolute;
220
+ inset: 0;
221
+ width: 100%;
222
+ height: 100%;
223
+ left: auto;
224
+ right: auto;
225
+ }
226
+ .hero-split--contained .hero-scrim { display: none; }
227
+ .hero-split--contained .hero-body {
228
+ grid-column: 1;
229
+ grid-row: 1;
230
+ display: flex;
231
+ align-items: center;
232
+ background: transparent;
233
+ z-index: 2;
234
+ padding: 0;
235
+ }
236
+ .hero-split--contained.hero-split--image-left .hero-body {
237
+ grid-column: 2;
238
+ }
239
+ .hero-split--contained .hero-body > .container {
240
+ width: 100%;
241
+ margin: 0;
242
+ max-width: none;
243
+ }
244
+ .hero-split--contained .hero-content {
245
+ max-width: 560px;
246
+ margin-left: 0;
247
+ }
248
+
249
+ /* Overlay = photo full-bleed; dark veil under copy */
250
+ .hero-split--overlay .hero-media-bg img {
251
+ width: 100%;
252
+ left: 0;
253
+ right: 0;
254
+ }
255
+ .hero-split--overlay .hero-scrim {
256
+ width: min(58%, 720px);
257
+ }
258
+ .hero-split--overlay .hero-heading,
259
+ .hero-split--overlay .hero-sub,
260
+ .hero-split--overlay .hero-badge {
261
+ color: #fff;
262
+ }
263
+ .hero-split--overlay .hero-badge {
264
+ background: rgba(255,255,255,0.12);
265
+ border-color: rgba(255,255,255,0.28);
266
+ color: rgba(255,255,255,0.92);
267
+ }
268
+ .hero-split--overlay .hero-sub { color: rgba(255,255,255,0.84); }
269
+
270
+ .hero-body { position: relative; z-index: 2; width: 100%; padding: clamp(3rem, 6vw, 5rem) 0; }
271
+ .hero-content { max-width: 540px; }
272
+ .hero-badge {
273
+ display: inline-flex;
274
+ align-items: center;
275
+ gap: 6px;
276
+ padding: 5px 14px;
277
+ border: 1px solid var(--border-md);
278
+ border-radius: 100px;
279
+ font-size: 11px;
280
+ font-weight: 600;
281
+ letter-spacing: 0.06em;
282
+ text-transform: uppercase;
283
+ color: var(--text-2);
284
+ background: rgba(107, 33, 232, 0.06);
285
+ margin-bottom: 1.5rem;
286
+ }
287
+ .hero-mockup .hero-badge { margin-bottom: 1.1rem; }
288
+ .hero-heading {
289
+ font-family: var(--font-display);
290
+ font-size: clamp(2.4rem, 5.8vw, 4.6rem);
291
+ font-weight: 700;
292
+ line-height: 1.02;
293
+ letter-spacing: -0.04em;
294
+ color: var(--text-1);
295
+ margin-bottom: 1.25rem;
296
+ }
297
+ .hero-mockup .hero-heading { margin-bottom: 1rem; }
298
+ .hero-sub {
299
+ font-size: 1rem;
300
+ line-height: 1.65;
301
+ color: var(--text-2);
302
+ max-width: 480px;
303
+ margin-bottom: 2rem;
304
+ }
305
+ .hero-mockup .hero-sub { margin-bottom: 1.5rem; }
306
+ .hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
307
+ .hero-cta {
308
+ display: inline-flex;
309
+ align-items: center;
310
+ gap: 10px;
311
+ padding: 0.7rem 1.2rem;
312
+ border-radius: 10px;
313
+ text-decoration: none;
314
+ min-width: 155px;
315
+ transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
316
+ cursor: pointer;
317
+ font: inherit;
318
+ }
319
+ .hero-cta:hover { transform: translateY(-2px); }
320
+ .hero-cta-icon {
321
+ width: 32px;
322
+ height: 32px;
323
+ border-radius: 8px;
324
+ background: rgba(107, 33, 232, 0.12);
325
+ display: flex;
326
+ align-items: center;
327
+ justify-content: center;
328
+ flex-shrink: 0;
329
+ color: var(--purple);
330
+ }
331
+ .hero-cta-text { display: flex; flex-direction: column; gap: 2px; }
332
+ .hero-cta-label { font-size: 13px; font-weight: 600; line-height: 1; }
333
+ .hero-cta-sub { font-size: 11px; color: var(--text-3); line-height: 1; }
334
+ .hero-cta-primary {
335
+ background: linear-gradient(135deg, rgba(107, 33, 232, 0.92), rgba(124, 58, 237, 0.88));
336
+ border: 1px solid rgba(255, 255, 255, 0.18);
337
+ box-shadow: 0 4px 18px rgba(107, 33, 232, 0.28);
338
+ }
339
+ .hero-cta-primary .hero-cta-label,
340
+ .hero-cta-primary .hero-cta-icon { color: #fff; }
341
+ .hero-cta-primary .hero-cta-sub { color: rgba(255, 255, 255, 0.72); }
342
+ .hero-cta-primary .hero-cta-icon { background: rgba(255,255,255,0.18); }
343
+ .hero-cta-soft {
344
+ background: rgba(124, 58, 237, 0.14);
345
+ border: 1px solid rgba(124, 58, 237, 0.28);
346
+ box-shadow: none;
347
+ }
348
+ .hero-cta-soft .hero-cta-label { color: var(--purple); }
349
+ .hero-cta-soft .hero-cta-icon { color: var(--purple); background: rgba(124, 58, 237, 0.12); }
350
+ .hero-cta-outline {
351
+ background: transparent;
352
+ border: 1.5px solid rgba(107, 33, 232, 0.55);
353
+ box-shadow: none;
354
+ }
355
+ .hero-cta-outline .hero-cta-label { color: var(--purple); }
356
+ .hero-cta-outline .hero-cta-icon { color: var(--purple); background: rgba(107, 33, 232, 0.08); }
357
+ .hero-cta-ghost {
358
+ background: #fff;
359
+ border: 1px solid var(--border-md);
360
+ box-shadow: 0 2px 12px rgba(28, 20, 32, 0.06);
361
+ }
362
+ .hero-cta-ghost .hero-cta-label { color: var(--text-1); }
363
+ .hero-cta-dark {
364
+ background: #1c1420;
365
+ border: 1px solid rgba(255,255,255,0.12);
366
+ box-shadow: 0 4px 16px rgba(28, 20, 32, 0.28);
367
+ }
368
+ .hero-cta-dark .hero-cta-label,
369
+ .hero-cta-dark .hero-cta-icon { color: #fff; }
370
+ .hero-cta-dark .hero-cta-sub { color: rgba(255,255,255,0.7); }
371
+ .hero-cta-dark .hero-cta-icon { background: rgba(255,255,255,0.12); }
372
+
373
+ @media (max-width: 768px) {
374
+ .hero-split { min-height: auto; display: block; }
375
+ .hero-split--true,
376
+ .hero-split--true.hero-split--image-left,
377
+ .hero-split--contained,
378
+ .hero-split--contained.hero-split--image-left {
379
+ display: block;
380
+ grid-template-columns: none;
381
+ }
382
+ .hero-split--true .hero-media-bg,
383
+ .hero-split--true.hero-split--image-left .hero-media-bg,
384
+ .hero-split--contained .hero-media-bg,
385
+ .hero-split--contained.hero-split--image-left .hero-media-bg {
386
+ grid-column: auto;
387
+ min-height: clamp(280px, 58vw, 480px);
388
+ }
389
+ .hero-split--contained .hero-media-bg {
390
+ border-radius: var(--radius-md);
391
+ margin-bottom: 1.25rem;
392
+ }
393
+ .hero-split--true .hero-body,
394
+ .hero-split--true.hero-split--image-left .hero-body,
395
+ .hero-split--contained .hero-body,
396
+ .hero-split--contained.hero-split--image-left .hero-body {
397
+ grid-column: auto;
398
+ }
399
+ .hero-split--contained {
400
+ padding: clamp(28px, 5vw, 48px) var(--page-gutter);
401
+ }
402
+ .hero-media-bg { position: relative; height: clamp(280px, 58vw, 480px); }
403
+ .hero-media-bg img { position: relative; width: 100%; height: 100%; }
404
+ .hero-scrim { display: none; }
405
+ .hero-body {
406
+ padding: 2rem 0 3rem;
407
+ background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
408
+ }
409
+ .hero-split--contained .hero-body {
410
+ padding: 0;
411
+ background: transparent;
412
+ }
413
+ .hero-split--overlay .hero-heading,
414
+ .hero-split--overlay .hero-sub,
415
+ .hero-split--overlay .hero-badge { color: inherit; }
416
+ .hero-split--overlay .hero-sub { color: var(--text-2); }
417
+ .hero-split--overlay .hero-badge {
418
+ background: rgba(107, 33, 232, 0.06);
419
+ border-color: var(--border-md);
420
+ color: var(--text-2);
421
+ }
422
+ }
423
+
424
+ /* ── SECTION SURFACES (all light — no dark bands) ───────────── */
425
+ .s-dark,
426
+ .s-light { background: var(--bg); color: var(--text-1); }
427
+ .s-dark:nth-of-type(even),
428
+ .s-light:nth-of-type(even) { background: var(--bg-2); }
429
+ .s-purple,
430
+ .stats-band,
431
+ .cta-band {
432
+ background: linear-gradient(
433
+ 135deg,
434
+ rgba(107, 33, 232, 0.10) 0%,
435
+ rgba(250, 248, 244, 1) 45%,
436
+ rgba(214, 43, 43, 0.08) 100%
437
+ );
438
+ color: var(--text-1);
439
+ border-top: 1px solid var(--border);
440
+ border-bottom: 1px solid var(--border);
441
+ }
442
+ .section { padding: clamp(3rem, 6vw, 4.5rem) 0; }
443
+
444
+ .ey-purple {
445
+ font-size: 11px;
446
+ font-weight: 700;
447
+ letter-spacing: 0.1em;
448
+ text-transform: uppercase;
449
+ color: var(--purple);
450
+ margin-bottom: 0.75rem;
451
+ }
452
+ .ey-white {
453
+ font-size: 11px;
454
+ font-weight: 700;
455
+ letter-spacing: 0.1em;
456
+ text-transform: uppercase;
457
+ color: var(--purple);
458
+ margin-bottom: 0.75rem;
459
+ }
460
+
461
+ /* Mission, pillars, story */
462
+ .mission-wrap {
463
+ background: var(--bg-2);
464
+ padding-top: 0;
465
+ padding-bottom: 0;
466
+ margin-top: 0;
467
+ }
468
+ .mission-wrap + .section,
469
+ .mission-wrap + .s-light {
470
+ background: var(--bg);
471
+ }
472
+ .mission-card {
473
+ background: #fff;
474
+ border-radius: 20px;
475
+ border: 1px solid var(--border);
476
+ box-shadow: 0 4px 32px rgba(28, 20, 32, 0.06);
477
+ padding: 2.5rem 3rem;
478
+ display: grid;
479
+ grid-template-columns: 1fr 1fr;
480
+ gap: 3rem;
481
+ align-items: center;
482
+ }
483
+ .mission-heading {
484
+ font-family: var(--font-display);
485
+ font-size: clamp(1.3rem, 2vw, 1.7rem);
486
+ font-weight: 700;
487
+ color: var(--text-1);
488
+ line-height: 1.15;
489
+ margin: 0.5rem 0 0.75rem;
490
+ }
491
+ .mission-body { font-size: 14px; color: var(--text-2); line-height: 1.7; }
492
+ .mission-flow { display: flex; align-items: center; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
493
+ .mission-step { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; text-align: center; }
494
+ .mission-step-icon {
495
+ width: 50px;
496
+ height: 50px;
497
+ border-radius: 14px;
498
+ background: rgba(107, 33, 232, 0.08);
499
+ display: flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ }
503
+ .mission-step span { font-size: 11px; font-weight: 600; color: var(--text-2); line-height: 1.35; }
504
+ .mission-arrow { font-size: 1rem; color: var(--purple); opacity: 0.45; }
505
+
506
+ .pillars-row {
507
+ display: grid;
508
+ grid-template-columns: repeat(3, 1fr);
509
+ gap: 1.25rem;
510
+ margin-top: 2rem;
511
+ }
512
+ .pillar {
513
+ background: #fff;
514
+ border: 1px solid var(--border);
515
+ border-radius: 16px;
516
+ padding: 1.75rem;
517
+ transition: box-shadow 0.25s, transform 0.25s;
518
+ }
519
+ .pillar:hover { box-shadow: 0 6px 28px rgba(28, 20, 32, 0.08); transform: translateY(-2px); }
520
+ .pillar-icon-wrap {
521
+ width: 46px;
522
+ height: 46px;
523
+ border-radius: 12px;
524
+ background: rgba(107, 33, 232, 0.08);
525
+ display: flex;
526
+ align-items: center;
527
+ justify-content: center;
528
+ margin-bottom: 1rem;
529
+ }
530
+ .pillar h3 { font-size: 0.95rem; font-weight: 700; color: var(--text-1); margin-bottom: 0.4rem; font-family: var(--font-body); }
531
+ .pillar p { font-size: 13px; color: var(--text-2); line-height: 1.65; margin-bottom: 0.85rem; }
532
+ .pillar a { font-size: 13px; font-weight: 600; color: var(--purple); }
533
+ .paths-heading {
534
+ text-align: center;
535
+ font-family: var(--font-display);
536
+ font-size: clamp(1.5rem, 2.5vw, 2rem);
537
+ font-weight: 700;
538
+ color: var(--text-1);
539
+ margin-bottom: 0.25rem;
540
+ }
541
+
542
+ .story-block {
543
+ display: grid;
544
+ grid-template-columns: 1fr 1.2fr;
545
+ border-radius: 20px;
546
+ overflow: hidden;
547
+ border: 1px solid var(--border);
548
+ box-shadow: 0 4px 32px rgba(28, 20, 32, 0.06);
549
+ background: #fff;
550
+ }
551
+ .story-block-img:not(.story-block-img--contain) img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; display: block; }
552
+ .story-block-img--contain {
553
+ display: flex;
554
+ align-items: center;
555
+ justify-content: center;
556
+ background: var(--bg-2);
557
+ min-height: 300px;
558
+ }
559
+ .story-block-img--contain img {
560
+ width: 100%;
561
+ height: auto;
562
+ max-height: min(420px, 52vw);
563
+ min-height: 200px;
564
+ object-fit: contain;
565
+ object-position: center;
566
+ display: block;
567
+ padding: 0.75rem;
568
+ }
569
+ .story-block-img--map { position: relative; min-height: 320px; background: var(--bg-2); }
570
+ .story-block-img--map iframe { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 320px; border: 0; }
571
+ .story-block-map-cap {
572
+ position: absolute;
573
+ left: 0; right: 0; bottom: 0;
574
+ padding: 1rem 1.1rem;
575
+ background: linear-gradient(to top, rgba(28, 20, 32, 0.82) 0%, transparent 100%);
576
+ color: #fff;
577
+ pointer-events: none;
578
+ }
579
+ .story-block-body { padding: 2.5rem; display: flex; flex-direction: column; justify-content: center; }
580
+ .story-heading {
581
+ font-family: var(--font-display);
582
+ font-size: clamp(1.4rem, 2.2vw, 1.9rem);
583
+ font-weight: 700;
584
+ color: var(--text-1);
585
+ line-height: 1.15;
586
+ margin: 0.4rem 0 0.85rem;
587
+ }
588
+ .story-body { font-size: 14px; color: var(--text-2); line-height: 1.75; margin-bottom: 1.25rem; }
589
+ .story-cta {
590
+ display: inline-flex;
591
+ align-items: center;
592
+ gap: 8px;
593
+ background: var(--purple);
594
+ color: #fff;
595
+ font-size: 14px;
596
+ font-weight: 600;
597
+ padding: 0.65rem 1.25rem;
598
+ border-radius: 100px;
599
+ width: fit-content;
600
+ transition: background 0.2s, transform 0.2s;
601
+ }
602
+ .story-cta:hover { background: var(--purple-mid); transform: translateY(-1px); }
603
+
604
+ .ways-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1.25rem; }
605
+ .ways-card {
606
+ display: flex;
607
+ flex-direction: column;
608
+ border-radius: 18px;
609
+ overflow: hidden;
610
+ background: #fff;
611
+ border: 1px solid var(--border);
612
+ box-shadow: 0 4px 24px rgba(28, 20, 32, 0.05);
613
+ transition: transform 0.25s, box-shadow 0.25s;
614
+ }
615
+ .ways-card:hover { transform: translateY(-3px); box-shadow: 0 14px 40px rgba(28, 20, 32, 0.08); }
616
+ .ways-card img,
617
+ .ways-card video { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; display: block; }
618
+ .ways-card-body { padding: 1.35rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: 0.65rem; flex: 1; }
619
+ .ways-card-body h3 { font-size: 1rem; font-weight: 700; color: var(--text-1); line-height: 1.25; }
620
+ .ways-card-body p { font-size: 13px; color: var(--text-2); line-height: 1.65; flex: 1; }
621
+
622
+ /* CTA / stats bands */
623
+ .cta-band-inner,
624
+ .stats-band-inner {
625
+ display: flex;
626
+ align-items: center;
627
+ justify-content: space-between;
628
+ gap: 2rem;
629
+ flex-wrap: wrap;
630
+ padding: clamp(2.5rem, 5vw, 3.5rem) 0;
631
+ }
632
+ .cta-band-heading {
633
+ font-family: var(--font-display);
634
+ font-size: clamp(1.35rem, 2.5vw, 1.85rem);
635
+ font-weight: 700;
636
+ color: var(--text-1);
637
+ line-height: 1.15;
638
+ margin-bottom: 0.35rem;
639
+ }
640
+ .cta-band-sub { font-size: 14px; color: var(--text-2); line-height: 1.6; max-width: 520px; }
641
+ .cta-band-left { display: flex; gap: 1rem; align-items: flex-start; color: var(--purple); }
642
+ .cta-action-row { display: flex; gap: 0.75rem; flex-wrap: wrap; }
643
+ .cta-action-btn {
644
+ display: inline-flex;
645
+ align-items: center;
646
+ gap: 5px;
647
+ font-size: 13px;
648
+ font-weight: 600;
649
+ color: var(--text-1);
650
+ padding: 0.55rem 1rem;
651
+ border-radius: 100px;
652
+ border: 1px solid var(--border-md);
653
+ background: #fff;
654
+ transition: background 0.2s, transform 0.2s;
655
+ cursor: pointer;
656
+ font-family: inherit;
657
+ text-decoration: none;
658
+ appearance: none;
659
+ }
660
+ .cta-action-btn:hover { background: var(--bg-2); transform: translateY(-1px); }
661
+
662
+ .progress-bar { height: 8px; border-radius: 999px; background: rgba(107, 33, 232, 0.12); overflow: hidden; }
663
+ .progress-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--purple), var(--purple-light)); }
664
+ .progress-label { font-size: 12px; color: var(--text-2); margin-top: 0.35rem; }
665
+
666
+ /* Footer layout (render_site_nav.js) */
667
+ .site-footer .footer-grid {
668
+ display: grid;
669
+ grid-template-columns: 1.5fr 1fr 1.4fr 1fr 0.9fr;
670
+ gap: 2rem;
671
+ padding-bottom: 2rem;
672
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
673
+ margin-bottom: 1.5rem;
674
+ }
675
+ /* Match header mark weight (~90px = --header-h + 18) */
676
+ .site-footer .footer-brand-logo {
677
+ display: block;
678
+ height: 90px;
679
+ width: 90px;
680
+ object-fit: contain;
681
+ margin-bottom: 1rem;
682
+ }
683
+ .footer-tagline { font-size: 13px; color: rgba(255, 255, 255, 0.62); line-height: 1.65; max-width: 240px; }
684
+ .footer-iam-mark {
685
+ display: inline-flex;
686
+ align-items: center;
687
+ gap: 8px;
688
+ text-decoration: none;
689
+ color: inherit;
690
+ }
691
+ .footer-iam-label {
692
+ font-size: 11px;
693
+ font-weight: 600;
694
+ letter-spacing: 0.06em;
695
+ text-transform: uppercase;
696
+ color: rgba(255, 255, 255, 0.32);
697
+ }
698
+ .footer-iam-logo {
699
+ height: 52px;
700
+ width: auto;
701
+ max-width: 160px;
702
+ object-fit: contain;
703
+ opacity: 0.85;
704
+ transition: opacity 0.2s;
705
+ }
706
+ .footer-iam-mark:hover .footer-iam-logo { opacity: 1; }
707
+ .footer-col-label {
708
+ font-size: var(--footer-col-label-size, 15px);
709
+ font-weight: 700;
710
+ letter-spacing: 0.1em;
711
+ text-transform: uppercase;
712
+ color: rgba(255, 255, 255, 0.42);
713
+ margin-bottom: 0.875rem;
714
+ }
715
+ .footer-links { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
716
+ .footer-links a { font-size: 13px; color: rgba(255, 255, 255, 0.62); transition: color 0.2s; }
717
+ .footer-links a:hover { color: #fff; }
718
+ .footer-org-row { display: flex; flex-direction: column; gap: 0.4rem; font-size: 13px; color: rgba(255, 255, 255, 0.62); }
719
+ .footer-org-row a { color: var(--purple-light); }
720
+ .footer-dev-label { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.38); margin-bottom: 0.5rem; }
721
+ .footer-dev img { height: 28px; width: auto; opacity: 0.55; transition: opacity 0.2s; }
722
+ .footer-dev img:hover { opacity: 0.85; }
723
+ .footer-bottom {
724
+ display: flex;
725
+ align-items: center;
726
+ justify-content: space-between;
727
+ gap: 1rem;
728
+ flex-wrap: wrap;
729
+ font-size: 13px;
730
+ color: rgba(255, 255, 255, 0.42);
731
+ }
732
+ .footer-ein { margin: 0; }
733
+ .footer-trust-badges {
734
+ display: flex;
735
+ flex-direction: column;
736
+ align-items: flex-start;
737
+ gap: 14px;
738
+ margin-top: 1rem;
739
+ }
740
+ .footer-org-row + .footer-trust-badges { margin-top: 1.1rem; }
741
+ .footer-social-icons + .footer-trust-badges { margin-top: 1rem; }
742
+ .footer-bottom .footer-trust-badges {
743
+ flex-direction: row;
744
+ align-items: center;
745
+ margin-top: 0;
746
+ gap: 12px;
747
+ }
748
+ .footer-trust-item {
749
+ display: flex;
750
+ flex-direction: column;
751
+ align-items: flex-start;
752
+ gap: 8px;
753
+ }
754
+ .footer-trust-caption {
755
+ margin: 0;
756
+ font-size: 13px;
757
+ font-weight: 600;
758
+ color: rgba(255, 255, 255, 0.78);
759
+ line-height: 1.35;
760
+ }
761
+ .footer-trust-caption--empty {
762
+ color: rgba(255, 255, 255, 0.38);
763
+ font-style: italic;
764
+ font-weight: 500;
765
+ }
766
+ .footer-trust {
767
+ display: inline-flex;
768
+ align-items: center;
769
+ text-decoration: none;
770
+ line-height: 0;
771
+ }
772
+ .footer-trust img {
773
+ width: auto;
774
+ object-fit: contain;
775
+ opacity: 0.92;
776
+ transition: opacity 180ms;
777
+ }
778
+ .footer-trust:hover img { opacity: 1; }
779
+
780
+ @media (max-width: 900px) {
781
+ .mission-card { grid-template-columns: 1fr; padding: 2rem; }
782
+ .story-block { grid-template-columns: 1fr; }
783
+ .pillars-row { grid-template-columns: 1fr 1fr; }
784
+ .ways-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
785
+ .site-footer .footer-grid { grid-template-columns: 1fr 1fr; }
786
+ }
787
+ @media (max-width: 760px) {
788
+ .pillars-row,
789
+ .ways-grid { grid-template-columns: 1fr; }
790
+ .site-footer .footer-grid { grid-template-columns: 1fr; }
791
+ .cta-band-inner { flex-direction: column; align-items: flex-start; }
792
+ }
793
+
794
+ /* ── HOME: impact stats, campaigns, newsletter ─────────────── */
795
+ .stats-band { padding: 0; }
796
+ .stats-row {
797
+ display: grid;
798
+ grid-template-columns: repeat(4, 1fr);
799
+ border: 1px solid var(--border);
800
+ border-radius: 16px;
801
+ overflow: hidden;
802
+ background: #fff;
803
+ box-shadow: 0 4px 24px rgba(28, 20, 32, 0.05);
804
+ }
805
+ .stat-cell {
806
+ display: flex;
807
+ flex-direction: column;
808
+ align-items: center;
809
+ text-align: center;
810
+ padding: 2rem 1rem;
811
+ border-right: 1px solid var(--border);
812
+ gap: 0.2rem;
813
+ }
814
+ .stat-cell:last-child { border-right: none; }
815
+ .stat-cell svg { color: var(--purple); opacity: 0.7; margin-bottom: 0.5rem; flex-shrink: 0; }
816
+ .stat-num {
817
+ font-family: var(--font-display);
818
+ font-size: clamp(1.8rem, 3vw, 2.6rem);
819
+ font-weight: 700;
820
+ color: var(--purple);
821
+ line-height: 1;
822
+ }
823
+ .stat-lbl { font-size: 12px; font-weight: 600; color: var(--text-1); }
824
+ .stat-sub-lbl { font-size: 11px; color: var(--text-2); line-height: 1.45; max-width: 18ch; }
825
+
826
+ .cc-grid {
827
+ display: grid;
828
+ grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
829
+ gap: clamp(2rem, 4vw, 3rem);
830
+ align-items: start;
831
+ }
832
+ .cc-col { min-width: 0; }
833
+ .cc-community-label { margin-bottom: 0.25rem; }
834
+ .cc-header {
835
+ display: flex;
836
+ align-items: baseline;
837
+ justify-content: space-between;
838
+ gap: 1rem;
839
+ margin-bottom: 1.25rem;
840
+ }
841
+ .cc-view-all { font-size: 12px; font-weight: 600; color: var(--purple); white-space: nowrap; }
842
+
843
+ .home-campaigns { background: var(--bg-2); }
844
+ .camp-list { display: flex; flex-direction: column; gap: 0.85rem; }
845
+ .camp-item {
846
+ display: flex;
847
+ align-items: stretch;
848
+ border-radius: 14px;
849
+ overflow: hidden;
850
+ border: 1px solid var(--border);
851
+ background: #fff;
852
+ box-shadow: 0 2px 12px rgba(28, 20, 32, 0.04);
853
+ }
854
+ a.camp-item-link {
855
+ text-decoration: none;
856
+ color: inherit;
857
+ transition: transform 180ms var(--ease), box-shadow 180ms var(--ease), border-color 180ms var(--ease);
858
+ }
859
+ a.camp-item-link:hover {
860
+ transform: translateY(-1px);
861
+ border-color: rgba(107, 33, 168, 0.22);
862
+ box-shadow: 0 8px 24px rgba(78, 26, 82, 0.10);
863
+ }
864
+ .camp-item-thumb {
865
+ width: 92px;
866
+ min-width: 92px;
867
+ align-self: stretch;
868
+ background: rgba(107, 33, 168, 0.06);
869
+ flex-shrink: 0;
870
+ }
871
+ .camp-item-thumb img,
872
+ .camp-item > img {
873
+ width: 100%;
874
+ height: 100%;
875
+ min-height: 92px;
876
+ object-fit: cover;
877
+ display: block;
878
+ }
879
+ .camp-item > img {
880
+ width: 92px;
881
+ min-width: 92px;
882
+ min-height: 92px;
883
+ }
884
+ .camp-item-body {
885
+ padding: 0.85rem 1rem;
886
+ flex: 1;
887
+ min-width: 0;
888
+ display: flex;
889
+ flex-direction: column;
890
+ justify-content: center;
891
+ }
892
+ .camp-item-title { font-size: 13px; font-weight: 700; color: var(--text-1); margin-bottom: 0.2rem; line-height: 1.3; }
893
+ .camp-item-desc {
894
+ font-size: 12px;
895
+ color: var(--text-2);
896
+ margin-bottom: 0.45rem;
897
+ line-height: 1.5;
898
+ display: -webkit-box;
899
+ -webkit-line-clamp: 2;
900
+ -webkit-box-orient: vertical;
901
+ overflow: hidden;
902
+ }
903
+ .progress-label--open { color: var(--purple); font-weight: 600; }
904
+ .camp-empty {
905
+ padding: 1rem 1.1rem;
906
+ border-radius: 14px;
907
+ border: 1px dashed var(--border-md);
908
+ background: rgba(255, 255, 255, 0.65);
909
+ font-size: 13px;
910
+ color: var(--text-2);
911
+ line-height: 1.55;
912
+ }
913
+ .camp-empty a { color: var(--purple); font-weight: 600; }
914
+
915
+ .comm-list { display: flex; flex-direction: column; gap: 1rem; margin-top: 0.85rem; }
916
+ .comm-item { display: flex; gap: 0.75rem; align-items: flex-start; }
917
+ .comm-item img {
918
+ width: 48px;
919
+ height: 48px;
920
+ min-width: 48px;
921
+ border-radius: 10px;
922
+ object-fit: cover;
923
+ flex-shrink: 0;
924
+ display: block;
925
+ }
926
+ .comm-item-text { font-size: 13px; color: var(--text-1); font-weight: 500; line-height: 1.4; margin-bottom: 0.15rem; }
927
+ .comm-item-date { font-size: 11px; color: var(--text-3); }
928
+ .comm-see-all { display: inline-block; margin-top: 0.75rem; font-size: 13px; font-weight: 600; color: var(--purple); }
929
+
930
+ .cta-band-right { display: flex; flex-direction: column; gap: 0.75rem; align-items: flex-end; }
931
+ .cta-email-form {
932
+ display: flex;
933
+ flex-wrap: wrap;
934
+ border: 1px solid var(--border-md);
935
+ border-radius: 10px;
936
+ overflow: hidden;
937
+ background: #fff;
938
+ max-width: 100%;
939
+ }
940
+ .cta-email-input {
941
+ background: transparent;
942
+ border: none;
943
+ padding: 0.65rem 1rem;
944
+ font-size: 14px;
945
+ color: var(--text-1);
946
+ outline: none;
947
+ width: min(220px, 100%);
948
+ font-family: var(--font-body);
949
+ flex: 1;
950
+ min-width: 160px;
951
+ }
952
+ .cta-email-input::placeholder { color: var(--text-3); }
953
+ .cta-email-btn {
954
+ background: var(--purple);
955
+ color: #fff;
956
+ border: none;
957
+ padding: 0.65rem 1.1rem;
958
+ font-size: 13px;
959
+ font-weight: 700;
960
+ cursor: pointer;
961
+ font-family: var(--font-body);
962
+ white-space: nowrap;
963
+ }
964
+ .cta-email-btn:hover { filter: brightness(1.06); }
965
+ .cta-email-status { width: 100%; margin: 0.35rem 0 0; color: var(--text-2); font-size: 0.8rem; }
966
+
967
+ @media (max-width: 900px) {
968
+ .stats-row { grid-template-columns: repeat(2, 1fr); }
969
+ .stat-cell:nth-child(2) { border-right: none; }
970
+ .stat-cell:nth-child(1),
971
+ .stat-cell:nth-child(2) { border-bottom: 1px solid var(--border); }
972
+ .cc-grid { grid-template-columns: 1fr; gap: 2.5rem; }
973
+ }
974
+ @media (max-width: 560px) {
975
+ .stats-row { grid-template-columns: 1fr; }
976
+ .stat-cell { border-right: none; border-bottom: 1px solid var(--border); }
977
+ .stat-cell:last-child { border-bottom: none; }
978
+ .cta-band-right { align-items: stretch; width: 100%; }
979
+ .cta-email-form { flex-direction: column; }
980
+ .cta-email-input { width: 100%; }
981
+ .cta-email-btn { width: 100%; }
982
+ }