@riverbankcms/sdk 0.79.0 → 0.81.0

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 (327) hide show
  1. package/dist/PreviewEditorSidebar-RDCMEXIJ.mjs +3163 -0
  2. package/dist/{PreviewEditorUI-27KJVEET.mjs → PreviewEditorUI-NYGQ6K7B.mjs} +194 -30
  3. package/dist/SdkPreviewModeRuntime-AKCSCZEC.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +20 -0
  5. package/dist/_dts/api/src/contentRuntime.d.ts +12 -0
  6. package/dist/_dts/api/src/contentTypes.d.ts +6 -0
  7. package/dist/_dts/api/src/endpoints.d.ts +24 -0
  8. package/dist/_dts/api/src/index.d.ts +3 -3
  9. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +53 -0
  10. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  11. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  12. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +10 -1
  13. package/dist/_dts/block-form/src/backend/store-backend.d.ts +3 -1
  14. package/dist/_dts/block-form/src/backend/types.d.ts +3 -3
  15. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  16. package/dist/_dts/block-form/src/index.d.ts +2 -0
  17. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  18. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  20. package/dist/_dts/blocks/src/client.d.ts +12 -12
  21. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +20 -28
  22. package/dist/_dts/blocks/src/index.d.ts +7 -5
  23. package/dist/_dts/blocks/src/primitives/content/components/Text.d.ts +1 -1
  24. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  25. package/dist/_dts/blocks/src/server.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -2
  27. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +135 -0
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -1
  31. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/blocks/form.d.ts +20 -1
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -0
  34. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +19 -0
  35. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +134 -0
  36. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  37. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +34 -15
  41. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  42. package/dist/_dts/blocks/src/system/data/linkedContentEntries.d.ts +64 -0
  43. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +10 -3
  46. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
  47. package/dist/_dts/blocks/src/system/media/slotContracts.d.ts +2 -0
  48. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  49. package/dist/_dts/blocks/src/system/node/types.d.ts +8 -1
  50. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -57
  53. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -27
  54. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  55. package/dist/_dts/blocks/src/system/runtime/headingDecoration.d.ts +21 -0
  56. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +45 -14
  57. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -9
  58. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -10
  59. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +21 -16
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +3 -2
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +21 -16
  63. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +22 -33
  64. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  65. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +2 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +50 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +2 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  74. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +29 -14
  75. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +21 -0
  76. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +7 -0
  77. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +2 -0
  78. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +7 -2
  79. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  80. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  81. package/dist/_dts/calendar/src/grid.d.ts +27 -0
  82. package/dist/_dts/calendar/src/index.d.ts +2 -2
  83. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +3 -1
  84. package/dist/_dts/content-editor/src/editorTransactionState.d.ts +1 -0
  85. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +26 -0
  86. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +1 -0
  87. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +23 -0
  88. package/dist/_dts/content-editor/src/hooks/useReactiveToolbar.d.ts +1 -1
  89. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +2 -2
  90. package/dist/_dts/content-editor/src/index.d.ts +3 -1
  91. package/dist/_dts/content-editor/src/lib/json.d.ts +2 -0
  92. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +8 -0
  93. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +58 -0
  94. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +93 -0
  95. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +60 -3
  96. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +2 -0
  97. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  98. package/dist/_dts/content-model/src/content-types/builtins.d.ts +43 -0
  99. package/dist/_dts/content-model/src/metadataConfig.d.ts +87 -47
  100. package/dist/_dts/core/src/branded.d.ts +5 -0
  101. package/dist/_dts/core/src/index.d.ts +1 -0
  102. package/dist/_dts/core/src/stable-json.d.ts +1 -0
  103. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
  104. package/dist/_dts/editor/src/EditorProvider.d.ts +26 -0
  105. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +26 -0
  106. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +45 -0
  107. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +25 -0
  108. package/dist/_dts/editor/src/components/EditingToggle.d.ts +9 -0
  109. package/dist/_dts/editor/src/hooks/useEditableElement.d.ts +18 -0
  110. package/dist/_dts/editor/src/index.d.ts +29 -0
  111. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +1 -0
  112. package/dist/_dts/editor/src/lib/utils.d.ts +1 -0
  113. package/dist/_dts/editor/src/primitives/EditorPrimitivesProvider.d.ts +20 -0
  114. package/dist/_dts/editor/src/primitives/InlineFieldContext.d.ts +11 -0
  115. package/dist/_dts/editor/src/primitives/SaveContext.d.ts +12 -0
  116. package/dist/_dts/editor/src/primitives/helpers.d.ts +1 -0
  117. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +26 -0
  118. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +16 -0
  119. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +23 -0
  120. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextImage.d.ts +2 -0
  121. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  122. package/dist/_dts/editor/src/primitives/rich-text/imageActions.d.ts +22 -0
  123. package/dist/_dts/editor/src/primitives/rich-text/sanitize.d.ts +23 -0
  124. package/dist/_dts/editor/src/primitives/rich-text/toolbar/BlockTypeDropdown.d.ts +6 -0
  125. package/dist/_dts/editor/src/primitives/rich-text/toolbar/LinkPopover.d.ts +10 -0
  126. package/dist/_dts/editor/src/primitives/rich-text/toolbar/ToolbarIconButton.d.ts +11 -0
  127. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +58 -0
  128. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +19 -0
  129. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +20 -0
  130. package/dist/_dts/editor/src/utils/optimisticTokens.d.ts +27 -0
  131. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -2
  132. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +5 -9
  133. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -6
  134. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +6 -10
  135. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +2 -6
  136. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +6 -4
  137. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +4 -8
  138. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +15 -0
  139. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +49 -0
  140. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  141. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  142. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  143. package/dist/_dts/editor-blocks/src/widgets/rich-text/useImagePicker.d.ts +1 -1
  144. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +3 -0
  145. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionWidgetProvider.d.ts +14 -0
  146. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/index.d.ts +6 -0
  147. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +51 -0
  148. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +20 -0
  149. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +5 -0
  150. package/dist/_dts/media-core/src/index.d.ts +1 -0
  151. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +18 -0
  152. package/dist/_dts/media-editor/src/MediaEditor.d.ts +4 -1
  153. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +2 -1
  154. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  155. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +7 -2
  156. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +5 -1
  157. package/dist/_dts/preview-next/src/client/blocks/blockCustomizePopoverRows.d.ts +25 -0
  158. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  159. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -30
  160. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +11 -0
  161. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +3 -9
  162. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  163. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +35 -0
  164. package/dist/_dts/preview-next/src/client/index.d.ts +0 -1
  165. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  166. package/dist/_dts/preview-next/src/client/preview/LinkedEntryEditEventBridge.d.ts +1 -0
  167. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -6
  168. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -1
  169. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  170. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +20 -0
  171. package/dist/_dts/preview-next/src/client/preview/PreviewDesignHistoryOrderContext.d.ts +13 -0
  172. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  173. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +19 -19
  174. package/dist/_dts/preview-next/src/client/preview/PreviewSidebarSection.d.ts +13 -0
  175. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  176. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +47 -4
  177. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -1
  178. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +5 -0
  179. package/dist/_dts/preview-next/src/client/preview/previewChromePlacement.d.ts +46 -0
  180. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +68 -0
  181. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  182. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +8 -1
  183. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  184. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +11 -9
  185. package/dist/_dts/preview-next/src/client/preview/previewDesignHistoryOrder.d.ts +18 -0
  186. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +1 -1
  187. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +41 -0
  188. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +101 -0
  189. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +29 -0
  190. package/dist/_dts/preview-next/src/client/preview/siteStyleHistoryState.d.ts +55 -0
  191. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  192. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -0
  193. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +2 -1
  194. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -3
  195. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  196. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  197. package/dist/_dts/sdk/src/cli/config-loader.d.ts +3 -1
  198. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -3
  199. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +1 -0
  200. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +3 -1
  201. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +1 -0
  202. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  203. package/dist/_dts/sdk/src/client/management/types.d.ts +56 -0
  204. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  205. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  206. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  207. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +34 -5
  208. package/dist/_dts/sdk/src/public-api/contracts.d.ts +10 -0
  209. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +42 -0
  210. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +4 -0
  211. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  212. package/dist/_dts/sdk/src/version.d.ts +1 -1
  213. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  214. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  215. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  216. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  217. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  218. package/dist/_dts/theme-core/src/buttons/constants.d.ts +26 -1
  219. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  220. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +22 -0
  221. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -1
  222. package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -0
  223. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  224. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  225. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +149 -0
  226. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  227. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  228. package/dist/_dts/theme-core/src/interactive/types.d.ts +10 -0
  229. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +180 -21
  230. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +30 -0
  231. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  232. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  233. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +27 -0
  234. package/dist/_dts/theme-core/src/schema.d.ts +486 -55
  235. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +4 -1
  236. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +172 -47
  237. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +6 -2
  238. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  239. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +172 -47
  240. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +140 -2
  241. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +18 -2
  242. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  243. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -2
  244. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +291 -6
  245. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  246. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  247. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -23
  248. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +276 -4
  249. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -8
  250. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  251. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +43 -10
  252. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +508 -0
  253. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  254. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +10 -10
  255. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  256. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  257. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  258. package/dist/_dts/theme-core/src/site-styles/types.d.ts +28 -32
  259. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  260. package/dist/{chunk-4HCW7FHJ.mjs → chunk-3PTVPAT4.mjs} +1984 -1142
  261. package/dist/{PreviewEditorSidebar-56NMJMIK.mjs → chunk-3QWQ2MUQ.mjs} +1050 -2609
  262. package/dist/{chunk-GP555I66.mjs → chunk-3VT7LZY2.mjs} +413 -157
  263. package/dist/{chunk-A3HHFKVT.mjs → chunk-4T5JIPWY.mjs} +1 -1
  264. package/dist/{chunk-K2IIF34C.mjs → chunk-E3NZYEKF.mjs} +25 -7
  265. package/dist/{chunk-V47ZU33I.mjs → chunk-WUHKQBB6.mjs} +12062 -3211
  266. package/dist/cli/index.mjs +3395 -817
  267. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +16 -4
  268. package/dist/client/{accordion-QLA7KBYO.mjs → accordion-SFIIZWNH.mjs} +2 -2
  269. package/dist/client/{bookingForm-PYZIPA5G.mjs → bookingForm-CFKZVWGA.mjs} +5 -5
  270. package/dist/client/bookings.mjs +1422 -345
  271. package/dist/client/{carousel-5EIULWBI.mjs → carousel-ELXWSBLA.mjs} +3 -3
  272. package/dist/client/{cart-DOP3FNI4.mjs → cart-6SSCPYY5.mjs} +6 -6
  273. package/dist/client/{checkout-BVMF6FBV.mjs → checkout-UFQ34HPV.mjs} +6 -6
  274. package/dist/client/{chunk-44K2U3QI.mjs → chunk-76JUETXQ.mjs} +139 -186
  275. package/dist/client/{chunk-AUJ5DBZJ.mjs → chunk-7BXX7WXH.mjs} +112 -28
  276. package/dist/client/{chunk-UDS3NTWA.mjs → chunk-G56BSZAM.mjs} +2 -2
  277. package/dist/client/{chunk-V6M5FCR5.mjs → chunk-IUEDYLFJ.mjs} +1 -1
  278. package/dist/client/{chunk-YLDYVRZL.mjs → chunk-NP47RHIX.mjs} +5 -5
  279. package/dist/client/{chunk-R5ESWNKX.mjs → chunk-NX6X3GRF.mjs} +419 -85
  280. package/dist/client/{chunk-CCNTDRCF.mjs → chunk-PA2LJH2M.mjs} +2 -2
  281. package/dist/client/{chunk-CE7IBGVW.mjs → chunk-RMWMT3ZD.mjs} +1 -1
  282. package/dist/client/{chunk-TYONZMST.mjs → chunk-TCJS3NY5.mjs} +1 -1
  283. package/dist/client/{chunk-GG4M2NP6.mjs → chunk-V6XI4M2Q.mjs} +1 -1
  284. package/dist/client/client.mjs +9077 -4410
  285. package/dist/client/{courseRegistration-E6EAA6NL.mjs → courseRegistration-HJIISAAG.mjs} +5 -5
  286. package/dist/client/{eventCalendar-HBG3HAK6.mjs → eventCalendar-F6YVUCZR.mjs} +7 -7
  287. package/dist/client/{eventCombined-6K5ZZWAK.mjs → eventCombined-B5DSTIOK.mjs} +7 -7
  288. package/dist/client/{eventDetails-Q75ICXLT.mjs → eventDetails-SEJDDHQC.mjs} +7 -7
  289. package/dist/client/{eventListing-27P5F7DZ.mjs → eventListing-TPMWIIBO.mjs} +7 -7
  290. package/dist/client/{eventRegistration-IQ7AMASR.mjs → eventRegistration-QU6W2PV6.mjs} +7 -7
  291. package/dist/client/{form-JRTD65FN.mjs → form-LVTYNTDE.mjs} +2 -2
  292. package/dist/client/{headerSection-7FPSSZHS.mjs → headerSection-SO3MFC4U.mjs} +110 -28
  293. package/dist/client/hooks.mjs +4695 -2260
  294. package/dist/client/{locationMap-7NGFNYBH.mjs → locationMap-5E5FLAKO.mjs} +2 -2
  295. package/dist/client/{newsletterForm-F3BADCI2.mjs → newsletterForm-GN32JEBQ.mjs} +2 -2
  296. package/dist/client/{productDetail-V3HP7ITJ.mjs → productDetail-Q346KSVR.mjs} +6 -6
  297. package/dist/client/{productList-L3EGJUF2.mjs → productList-DTDMQYGZ.mjs} +6 -6
  298. package/dist/client/rendering/client.mjs +5795 -3582
  299. package/dist/client/rendering/islands.mjs +32 -20
  300. package/dist/client/rendering.mjs +7988 -3317
  301. package/dist/client/{shop-DQUB5E2C.mjs → shop-OFUW7KPN.mjs} +6 -6
  302. package/dist/preview-next/before-render.mjs +24 -0
  303. package/dist/preview-next/client/runtime.mjs +5 -5
  304. package/dist/preview-next/constants.mjs +0 -2
  305. package/dist/preview-next/index.mjs +0 -2
  306. package/dist/preview-next/middleware.mjs +24 -0
  307. package/dist/{sdk-runtime-AF6KXJU4.mjs → sdk-runtime-2GIX6I7X.mjs} +6 -6
  308. package/dist/server/components.mjs +7384 -3089
  309. package/dist/server/config-validation.mjs +4747 -2418
  310. package/dist/server/config.mjs +4747 -2418
  311. package/dist/server/data.mjs +4695 -2260
  312. package/dist/server/index.mjs +26 -1
  313. package/dist/server/next.mjs +7430 -3039
  314. package/dist/server/page-converter.mjs +3985 -2070
  315. package/dist/server/prebuild.mjs +1 -1
  316. package/dist/server/rendering/server.mjs +7489 -3094
  317. package/dist/server/rendering.mjs +7491 -3096
  318. package/dist/server/routing.mjs +4965 -2386
  319. package/dist/server/server.mjs +4713 -2278
  320. package/dist/server/theme-bridge.mjs +2181 -383
  321. package/dist/server/theme.mjs +477 -222
  322. package/dist/styles/index.css +747 -71
  323. package/package.json +1 -1
  324. package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +0 -8
  325. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +0 -2
  326. package/dist/_dts/preview-next/src/client/preview/previewSurface.d.ts +0 -3
  327. package/dist/chunk-LCY32PXF.mjs +0 -1175
@@ -1576,40 +1576,51 @@
1576
1576
  }
1577
1577
 
1578
1578
  .rb-container-pad-none {
1579
- padding: 0;
1579
+ --rb-card-pad: 0rem;
1580
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1580
1581
  }
1581
1582
  .rb-container-pad-compact {
1582
- padding: 1rem;
1583
+ --rb-card-pad: 1rem;
1584
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1583
1585
  }
1584
1586
  .rb-container-pad-cozy {
1585
- padding: 1.5rem;
1587
+ --rb-card-pad: 1.5rem;
1588
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1586
1589
  }
1587
1590
  .rb-container-pad-medium {
1588
- padding: 1.5rem;
1591
+ --rb-card-pad: 1.5rem;
1592
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1589
1593
  }
1590
1594
  .rb-container-pad-comfortable {
1591
- padding: 2rem;
1595
+ --rb-card-pad: 2rem;
1596
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1592
1597
  }
1593
1598
  .rb-container-pad-spacious {
1594
- padding: 2.5rem;
1599
+ --rb-card-pad: 2.5rem;
1600
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1595
1601
  }
1596
1602
 
1597
1603
  @media (min-width: 640px) {
1598
1604
  @scope ([data-rb-responsive-mode="viewport"]) to (:scope [data-rb-responsive-mode]) {
1599
1605
  .rb-container-pad-compact {
1600
- padding: 1.5rem;
1606
+ --rb-card-pad: 1.5rem;
1607
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1601
1608
  }
1602
1609
  .rb-container-pad-cozy {
1603
- padding: 2rem;
1610
+ --rb-card-pad: 2rem;
1611
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1604
1612
  }
1605
1613
  .rb-container-pad-medium {
1606
- padding: 2rem;
1614
+ --rb-card-pad: 2rem;
1615
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1607
1616
  }
1608
1617
  .rb-container-pad-comfortable {
1609
- padding: 2.5rem;
1618
+ --rb-card-pad: 2.5rem;
1619
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1610
1620
  }
1611
1621
  .rb-container-pad-spacious {
1612
- padding: 3.5rem;
1622
+ --rb-card-pad: 3.5rem;
1623
+ padding: calc(var(--rb-card-pad) + var(--rb-opening-content-clearance, 0px)) var(--rb-card-pad) var(--rb-card-pad);
1613
1624
  }
1614
1625
  }
1615
1626
  }
@@ -1782,8 +1793,32 @@
1782
1793
  /* Shared: Site document overlay header clearance */
1783
1794
  /* -------------------------------------------------------------------------- */
1784
1795
 
1785
- :where(.theme-scope) :where([data-site-document-overlay-content='true']) :where([data-block]):first-of-type > :where([data-slot='section']) > :where(.rb-container) {
1786
- padding-top: calc(var(--site-overlay-header-clearance, 0px) + var(--site-overlay-opening-content-extra-pad, 0px));
1796
+ :where(.theme-scope)
1797
+ :where([data-site-document-overlay-content='true'])
1798
+ :where([data-page-block-position='first'], [data-page-block-position='only'])
1799
+ > :where([data-slot='section'])
1800
+ > .rb-container {
1801
+ --rb-opening-content-clearance: calc(
1802
+ var(--site-overlay-header-clearance, 0px) +
1803
+ var(--site-overlay-opening-content-extra-pad, clamp(1rem, 2vw, 1.75rem))
1804
+ );
1805
+ }
1806
+
1807
+ :where(.theme-scope)
1808
+ :where([data-site-document-overlay-content='true'])
1809
+ :where([data-page-block-position='first'], [data-page-block-position='only'])
1810
+ > :where([data-slot='section'])
1811
+ > .rb-container:not([class*='rb-container-pad-']) {
1812
+ padding-top: var(--rb-opening-content-clearance, 0px);
1813
+ }
1814
+
1815
+ :where(.theme-scope)
1816
+ :where([data-site-document-overlay-content='true'])
1817
+ :where([data-page-block-position='first'], [data-page-block-position='only'])
1818
+ > :where([data-slot='section'])
1819
+ > .rb-container
1820
+ :where([class*='rb-container-pad-']) {
1821
+ --rb-opening-content-clearance: 0px;
1787
1822
  }
1788
1823
 
1789
1824
  /* -------------------------------------------------------------------------- */
@@ -1869,6 +1904,22 @@
1869
1904
  }
1870
1905
  }
1871
1906
 
1907
+ /* -------------------------------------------------------------------------- */
1908
+ /* Header: Mobile floating/glass backing */
1909
+ /* -------------------------------------------------------------------------- */
1910
+
1911
+ :where(.theme-scope) .header-variant-floating .header-mobile-bar {
1912
+ align-items: flex-start;
1913
+ margin-top: 0.75rem;
1914
+ }
1915
+
1916
+ :where(.theme-scope) .header-variant-floating .nav-mobile-toggle {
1917
+ border: 1px solid rgb(var(--tb-border) / 0.82);
1918
+ background: rgb(var(--tb-surface) / 0.96);
1919
+ color: rgb(var(--tb-text));
1920
+ box-shadow: none;
1921
+ }
1922
+
1872
1923
  /*
1873
1924
  * Theme Scope Styles
1874
1925
  *
@@ -2039,7 +2090,7 @@
2039
2090
 
2040
2091
  /* Neutral prose uses theme text color by default */
2041
2092
  :where(.theme-scope) .rb-prose-neutral {
2042
- color: rgb(var(--tb-text));
2093
+ color: var(--section-text-color, rgb(var(--tb-text)));
2043
2094
  }
2044
2095
 
2045
2096
  :where(.theme-scope) .rb-prose p,
@@ -2072,8 +2123,11 @@
2072
2123
  }
2073
2124
 
2074
2125
  :where(.theme-scope) .rb-prose a {
2075
- /* Global prose link style with theme-level overrides */
2076
- color: var(--rb-prose-link-color, rgb(var(--tb-primary)));
2126
+ --rb-prose-effective-link-color: var(
2127
+ --section-link-color,
2128
+ var(--rb-prose-link-color, rgb(var(--tb-primary)))
2129
+ );
2130
+ color: var(--rb-prose-effective-link-color);
2077
2131
  text-decoration-line: var(--rb-prose-link-decoration-line, underline);
2078
2132
  text-decoration-style: var(--rb-prose-link-underline-style, solid);
2079
2133
  text-decoration-thickness: var(
@@ -2082,8 +2136,15 @@
2082
2136
  );
2083
2137
  text-underline-offset: var(--rb-prose-link-underline-offset, 0.14em);
2084
2138
  text-decoration-color: var(
2085
- --rb-prose-link-decoration-color,
2086
- rgba(var(--tb-primary), 0.3)
2139
+ --section-link-decoration-color,
2140
+ var(
2141
+ --rb-prose-link-decoration-color,
2142
+ color-mix(
2143
+ in srgb,
2144
+ var(--rb-prose-effective-link-color) 35%,
2145
+ transparent
2146
+ )
2147
+ )
2087
2148
  );
2088
2149
  transition:
2089
2150
  color 150ms ease,
@@ -2093,20 +2154,20 @@
2093
2154
  :where(.theme-scope) .rb-prose a:hover {
2094
2155
  color: var(
2095
2156
  --rb-prose-link-hover-color,
2096
- var(--rb-prose-link-color, rgb(var(--tb-primary)))
2157
+ var(--rb-prose-effective-link-color)
2097
2158
  );
2098
2159
  text-decoration-color: var(
2099
2160
  --rb-prose-link-hover-decoration-color,
2100
2161
  var(
2101
2162
  --rb-prose-link-hover-color,
2102
- var(--rb-prose-link-color, rgb(var(--tb-primary)))
2163
+ var(--rb-prose-effective-link-color)
2103
2164
  )
2104
2165
  );
2105
2166
  }
2106
2167
 
2107
2168
  :where(.theme-scope) .rb-prose blockquote {
2108
2169
  /* Blockquotes use muted text color */
2109
- color: rgb(var(--tb-mutedText));
2170
+ color: var(--section-supporting-color, rgb(var(--tb-mutedText)));
2110
2171
  border-left-color: rgb(var(--tb-border));
2111
2172
  }
2112
2173
 
@@ -2737,6 +2798,13 @@
2737
2798
  transition: padding 300ms var(--motion-ease, ease);
2738
2799
  }
2739
2800
 
2801
+ :where(.theme-scope)
2802
+ .header-variant-classic
2803
+ .rb-header-layout:has(.header-logo-accommodation-popout-badge) {
2804
+ padding-top: 0.5rem;
2805
+ padding-bottom: 0.5rem;
2806
+ }
2807
+
2740
2808
  /* Vertical variants need more breathing room
2741
2809
  Note: header-variant-* is on Section (ancestor), rb-header-layout on inner div */
2742
2810
  :where(.theme-scope) .header-variant-centered .rb-header-layout {
@@ -2797,6 +2865,85 @@
2797
2865
  transition: height 300ms var(--motion-ease, ease);
2798
2866
  }
2799
2867
 
2868
+ :where(.theme-scope) .header-logo-size-compact.rb-header-logo-sm {
2869
+ height: 2rem;
2870
+ }
2871
+ :where(.theme-scope) .header-logo-size-compact.rb-header-logo-lg {
2872
+ height: 2.5rem;
2873
+ }
2874
+ :where(.theme-scope) .header-logo-size-standard.rb-header-logo-sm {
2875
+ height: 2.5rem;
2876
+ }
2877
+ :where(.theme-scope) .header-logo-size-standard.rb-header-logo-lg {
2878
+ height: 3rem;
2879
+ }
2880
+ :where(.theme-scope) .header-logo-size-generous.rb-header-logo-sm {
2881
+ height: 3.5rem;
2882
+ }
2883
+ :where(.theme-scope) .header-logo-size-generous.rb-header-logo-lg {
2884
+ height: 4.5rem;
2885
+ }
2886
+ :where(.theme-scope) .header-logo-size-display.rb-header-logo-sm {
2887
+ height: 7.5rem;
2888
+ }
2889
+ :where(.theme-scope) .header-logo-size-display.rb-header-logo-lg {
2890
+ height: 8rem;
2891
+ }
2892
+
2893
+ :where(.theme-scope) .header-logo-accommodation-plate,
2894
+ :where(.theme-scope) .header-logo-accommodation-centered-badge,
2895
+ :where(.theme-scope) .header-logo-accommodation-popout-badge,
2896
+ :where(.theme-scope) .header-logo-accommodation-centered-masthead {
2897
+ border-radius: var(--radius-md, 0.5rem);
2898
+ background: var(--color-surface, #fff);
2899
+ box-shadow: var(--shadow-sm, 0 1px 2px rgb(0 0 0 / 0.08));
2900
+ padding: 0.5rem;
2901
+ transition:
2902
+ margin 300ms var(--motion-ease, ease),
2903
+ padding 300ms var(--motion-ease, ease);
2904
+ }
2905
+
2906
+ :where(.theme-scope) .header-logo-accommodation-popout-badge {
2907
+ position: relative;
2908
+ z-index: 1;
2909
+ margin-block: 0 -1.25rem;
2910
+ }
2911
+
2912
+ :where(.theme-scope)
2913
+ .header-logo-size-display.header-logo-accommodation-popout-badge {
2914
+ margin-block: 0 -4rem;
2915
+ }
2916
+
2917
+ :where(.theme-scope)
2918
+ .rb-header-shrink.header-scrolled.header-variant-classic
2919
+ .header-logo-size-display.header-logo-accommodation-plate,
2920
+ :where(.theme-scope)
2921
+ .rb-header-shrink.header-scrolled.header-variant-classic
2922
+ .header-logo-size-display.header-logo-accommodation-popout-badge,
2923
+ :where(.theme-scope)
2924
+ .rb-header-shrink.header-scrolled.header-variant-classic
2925
+ .header-logo-size-display.header-logo-accommodation-centered-masthead,
2926
+ :where(.theme-scope)
2927
+ .rb-header-shrink.header-scrolled.header-variant-centered
2928
+ .header-logo-size-display.header-logo-accommodation-centered-badge,
2929
+ :where(.theme-scope)
2930
+ .rb-header-shrink.header-scrolled.header-variant-centered
2931
+ .header-logo-size-display.header-logo-accommodation-centered-masthead {
2932
+ position: relative;
2933
+ z-index: 1;
2934
+ margin-block: 0 -2.75rem;
2935
+ }
2936
+
2937
+ :where(.theme-scope)
2938
+ .rb-header-shrink.header-scrolled.header-variant-centered
2939
+ .rb-header-layout {
2940
+ gap: 0.75rem;
2941
+ }
2942
+
2943
+ :where(.theme-scope) .header-logo-accommodation-centered-masthead {
2944
+ padding: 0.75rem 1rem;
2945
+ }
2946
+
2800
2947
  /* Site title base font size (replaces rb-text-lg / rb-text-xl utilities) */
2801
2948
  :where(.theme-scope) .header-logo-text {
2802
2949
  font-size: 1.125rem; /* matches rb-text-lg */
@@ -2833,11 +2980,72 @@
2833
2980
  :where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-lg {
2834
2981
  height: 2.5rem;
2835
2982
  }
2983
+ :where(.theme-scope)
2984
+ .rb-header-shrink.header-scrolled
2985
+ .header-logo-size-generous.rb-header-logo-sm {
2986
+ height: 2.75rem;
2987
+ }
2988
+ :where(.theme-scope)
2989
+ .rb-header-shrink.header-scrolled
2990
+ .header-logo-size-generous.rb-header-logo-lg {
2991
+ height: 3.25rem;
2992
+ }
2993
+ :where(.theme-scope)
2994
+ .rb-header-shrink.header-scrolled
2995
+ .header-logo-size-display.rb-header-logo-sm,
2996
+ :where(.theme-scope)
2997
+ .rb-header-shrink.header-scrolled
2998
+ .header-logo-size-display.rb-header-logo-lg {
2999
+ height: 3.75rem;
3000
+ }
2836
3001
  :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
2837
3002
  font-size: 0.875rem;
2838
3003
  }
2839
3004
 
2840
3005
  @media (max-width: 767px) {
3006
+ :where(.theme-scope) .header-logo-size-generous.rb-header-logo-sm,
3007
+ :where(.theme-scope) .header-logo-size-generous.rb-header-logo-lg {
3008
+ height: 3rem;
3009
+ }
3010
+
3011
+ :where(.theme-scope) .header-logo-size-display.rb-header-logo-sm,
3012
+ :where(.theme-scope) .header-logo-size-display.rb-header-logo-lg {
3013
+ height: 5.5rem;
3014
+ }
3015
+
3016
+ :where(.theme-scope)
3017
+ .rb-header-shrink.header-scrolled
3018
+ .header-logo-size-display.rb-header-logo-sm,
3019
+ :where(.theme-scope)
3020
+ .rb-header-shrink.header-scrolled
3021
+ .header-logo-size-display.rb-header-logo-lg {
3022
+ height: 3.5rem;
3023
+ }
3024
+
3025
+ :where(.theme-scope) .header-logo-accommodation-popout-badge {
3026
+ margin-block: 0;
3027
+ }
3028
+
3029
+ :where(.theme-scope)
3030
+ .rb-header-shrink.header-scrolled
3031
+ .header-logo-size-display.header-logo-accommodation-plate,
3032
+ :where(.theme-scope)
3033
+ .rb-header-shrink.header-scrolled
3034
+ .header-logo-size-display.header-logo-accommodation-popout-badge,
3035
+ :where(.theme-scope)
3036
+ .rb-header-shrink.header-scrolled
3037
+ .header-logo-size-display.header-logo-accommodation-centered-masthead,
3038
+ :where(.theme-scope)
3039
+ .rb-header-shrink.header-scrolled
3040
+ .header-logo-size-display.header-logo-accommodation-centered-badge,
3041
+ :where(.theme-scope)
3042
+ .rb-header-shrink.header-scrolled
3043
+ .header-logo-size-display.header-logo-accommodation-centered-masthead {
3044
+ position: relative;
3045
+ z-index: 1;
3046
+ margin-block: 0 -2.75rem;
3047
+ }
3048
+
2841
3049
  :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
2842
3050
  font-size: 0.75rem;
2843
3051
  }
@@ -6095,7 +6303,7 @@
6095
6303
  /* Subheadline - supporting text below headline */
6096
6304
  :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
6097
6305
  font-size: 1.125rem;
6098
- color: var(--section-text-color, rgb(var(--tb-text)));
6306
+ color: var(--section-supporting-color, var(--section-text-color, rgb(var(--tb-text))));
6099
6307
  }
6100
6308
 
6101
6309
  @media (min-width: 640px) {
@@ -6184,7 +6392,7 @@
6184
6392
 
6185
6393
  /* CTA content/body text */
6186
6394
  :where(.theme-scope) :where([data-block="cta-full"]) .cta-content {
6187
- color: rgb(var(--tb-mutedText));
6395
+ color: var(--section-supporting-color, rgb(var(--tb-mutedText)));
6188
6396
  }
6189
6397
 
6190
6398
  /* CTA button row container */
@@ -6286,7 +6494,7 @@
6286
6494
  /* Form intro text */
6287
6495
  :where(.theme-scope) :where([data-block="form"]) .form-copy-intro {
6288
6496
  font-size: 1rem;
6289
- color: rgb(var(--tb-text));
6497
+ color: var(--section-text-color, rgb(var(--tb-text)));
6290
6498
  }
6291
6499
 
6292
6500
  /* =============================================================================
@@ -7611,11 +7819,13 @@
7611
7819
  }
7612
7820
 
7613
7821
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-quote {
7822
+ display: var(--rb-testimonial-quote-display, block);
7823
+ font-family: var(--rb-testimonial-quote-font, inherit);
7614
7824
  font-size: var(--rb-testimonial-quote-size);
7615
7825
  line-height: 1;
7616
- font-weight: 700;
7826
+ font-weight: var(--rb-testimonial-quote-weight, 700);
7617
7827
  opacity: var(--rb-testimonial-quote-opacity);
7618
- color: rgb(var(--tb-primary));
7828
+ color: var(--rb-testimonial-quote-color, rgb(var(--tb-primary)));
7619
7829
  }
7620
7830
 
7621
7831
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-accent-quote .rb-testimonial-quote {
@@ -7624,6 +7834,59 @@
7624
7834
  opacity: 1;
7625
7835
  }
7626
7836
 
7837
+ /* Open editorial testimonial card: boxless, with a hairline rule before the
7838
+ * attribution, an accent ring on the avatar, and comfortable prose. The quote
7839
+ * mark itself is owned by the site-style quote treatment (see the
7840
+ * --rb-testimonial-quote-* vars), not by these rules.
7841
+ *
7842
+ * `editorial-open` is the current non-carded look; `editorial-serif-quote` is
7843
+ * retained for content saved before the decomposition. */
7844
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-open,
7845
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-serif-quote {
7846
+ background: transparent;
7847
+ border: 0;
7848
+ border-radius: 0;
7849
+ padding: 0.25rem clamp(0.5rem, 1.5vw, 1.5rem);
7850
+ }
7851
+
7852
+ /* styledCard always renders an inner white rb-bg-surface fill layer; a boxless
7853
+ * card must clear it so the section band shows through (otherwise: white box). */
7854
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open > .rb-bg-surface,
7855
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote > .rb-bg-surface {
7856
+ background: transparent;
7857
+ }
7858
+
7859
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-prose,
7860
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-prose {
7861
+ font-size: 1.0625rem;
7862
+ line-height: 1.7;
7863
+ }
7864
+
7865
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-attribution,
7866
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-attribution {
7867
+ margin-top: 1.25rem;
7868
+ padding-top: 1.25rem;
7869
+ border-top: 1px solid rgba(var(--tb-border), 0.75);
7870
+ }
7871
+
7872
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-avatar,
7873
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-avatar {
7874
+ box-shadow:
7875
+ 0 0 0 2px rgb(var(--tb-surface)),
7876
+ 0 0 0 4px rgba(var(--tb-primary), 0.3);
7877
+ }
7878
+
7879
+
7880
+ /* Split grid: title column + cards. On desktop the title takes one quarter and
7881
+ * the cards fill the remaining three quarters (so title + 3 cards each read as
7882
+ * a quarter). Stacks on mobile. */
7883
+ @media (min-width: 1024px) {
7884
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-split-grid {
7885
+ grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
7886
+ align-items: start;
7887
+ }
7888
+ }
7889
+
7627
7890
 
7628
7891
  /* Testimonials carousel tweaks: arrow styling + gutters + equal-height cards */
7629
7892
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn {
@@ -8771,7 +9034,7 @@
8771
9034
 
8772
9035
  :where(.theme-scope) :where([data-block="newsletter-signup"]) .newsletter-copy-subtitle {
8773
9036
  font-size: 1rem;
8774
- color: rgb(var(--tb-text));
9037
+ color: var(--section-text-color, rgb(var(--tb-text)));
8775
9038
  opacity: 0.85;
8776
9039
  }
8777
9040
 
@@ -8819,7 +9082,7 @@
8819
9082
  :where(.theme-scope) .newsletter-privacy-note {
8820
9083
  margin-top: 0.75rem;
8821
9084
  font-size: 0.75rem;
8822
- color: rgb(var(--tb-muted-text));
9085
+ color: var(--section-supporting-color, rgb(var(--tb-mutedText)));
8823
9086
  text-align: center;
8824
9087
  }
8825
9088
 
@@ -9083,10 +9346,16 @@
9083
9346
  rgb(var(--tb-border, 229 231 235)),
9084
9347
  rgb(var(--tb-text, 17 24 39)) 4%
9085
9348
  );
9349
+ --event-compact-secondary-text: color-mix(
9350
+ in oklab,
9351
+ rgb(var(--tb-text, 17 24 39)),
9352
+ rgb(var(--tb-background, 255 255 255)) 28%
9353
+ );
9086
9354
 
9087
9355
  width: min(100%, 92rem);
9088
9356
  margin-inline: auto;
9089
9357
  overflow: hidden;
9358
+ container: event-compact-list / inline-size;
9090
9359
  border: 1px solid var(--event-compact-divider-color);
9091
9360
  border-radius: 1rem;
9092
9361
  background: rgb(var(--tb-background, 255 255 255));
@@ -9103,10 +9372,10 @@
9103
9372
 
9104
9373
  :where(.theme-scope) .event-compact-row {
9105
9374
  display: grid;
9106
- grid-template-columns: clamp(5.5rem, 8vw, 8rem) minmax(0, 1fr) clamp(15rem, 24vw, 21rem);
9375
+ grid-template-columns: clamp(4.5rem, 6vw, 6.25rem) minmax(0, 1fr);
9107
9376
  align-items: center;
9108
- min-height: 8.75rem;
9109
- padding: 1.55rem clamp(1.5rem, 3vw, 2.6rem);
9377
+ min-height: 6rem;
9378
+ padding: 1rem clamp(1.25rem, 2.6vw, 2.25rem);
9110
9379
  border-bottom: 1px solid var(--event-compact-divider-color);
9111
9380
  transition: background-color 150ms ease;
9112
9381
  }
@@ -9123,13 +9392,21 @@
9123
9392
  display: grid;
9124
9393
  grid-template-rows: 1rem minmax(2.7rem, auto) 1rem;
9125
9394
  place-items: center;
9126
- gap: 0.35rem;
9395
+ gap: 0;
9127
9396
  min-width: 0;
9128
- padding-right: clamp(1rem, 2vw, 1.75rem);
9397
+ padding-right: clamp(0.8rem, 1.6vw, 1.35rem);
9129
9398
  text-align: center;
9130
9399
  text-decoration: none;
9131
9400
  }
9132
9401
 
9402
+ :where(.theme-scope) .event-compact-row-body {
9403
+ min-width: 0;
9404
+ display: flex;
9405
+ align-items: center;
9406
+ height: 100%;
9407
+ border-left: 1px solid var(--event-compact-divider-color);
9408
+ }
9409
+
9133
9410
  :where(.theme-scope) .event-compact-row-date-weekday,
9134
9411
  :where(.theme-scope) .event-compact-row-date-month {
9135
9412
  display: grid;
@@ -9145,10 +9422,10 @@
9145
9422
  :where(.theme-scope) .event-compact-row-date-day {
9146
9423
  display: grid;
9147
9424
  place-items: center;
9148
- min-block-size: clamp(2.7rem, 4.5vw, 3.7rem);
9425
+ min-block-size: clamp(2rem, 3vw, 2.6rem);
9149
9426
  color: rgb(var(--tb-text, 17 24 39));
9150
9427
  font-family: var(--font-heading, var(--font-body, inherit));
9151
- font-size: clamp(2.3rem, 4.2vw, 3.35rem);
9428
+ font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.35rem);
9152
9429
  font-weight: 400;
9153
9430
  line-height: 1;
9154
9431
  }
@@ -9156,21 +9433,21 @@
9156
9433
  :where(.theme-scope) .event-compact-row-content {
9157
9434
  min-width: 0;
9158
9435
  display: flex;
9436
+ flex: 1 1 18rem;
9159
9437
  flex-direction: column;
9160
- gap: 1rem;
9438
+ gap: 0.625rem;
9161
9439
  height: 100%;
9162
9440
  justify-content: center;
9163
- padding-inline: clamp(1.4rem, 3vw, 3.2rem);
9164
- border-left: 1px solid var(--event-compact-divider-color);
9441
+ padding-inline: clamp(1rem, 2.4vw, 2.4rem);
9165
9442
  }
9166
9443
 
9167
9444
  :where(.theme-scope) .event-compact-row-title {
9168
9445
  margin: 0;
9169
9446
  color: rgb(var(--tb-text, 17 24 39));
9170
9447
  font-family: var(--font-heading, var(--font-body, inherit));
9171
- font-size: clamp(1.55rem, 2.6vw, 2.4rem);
9448
+ font-size: clamp(1.05rem, 1rem + 0.35vw, 1.3rem);
9172
9449
  font-weight: 400;
9173
- line-height: 1.05;
9450
+ line-height: 1.2;
9174
9451
  overflow: hidden;
9175
9452
  text-overflow: ellipsis;
9176
9453
  white-space: nowrap;
@@ -9181,8 +9458,8 @@
9181
9458
  align-items: center;
9182
9459
  gap: 0.9rem;
9183
9460
  min-width: 0;
9184
- color: rgb(var(--tb-text, 17 24 39));
9185
- font-size: clamp(0.9375rem, 1.4vw, 1.0625rem);
9461
+ color: var(--event-compact-secondary-text);
9462
+ font-size: 0.875rem;
9186
9463
  line-height: 1.35;
9187
9464
  }
9188
9465
 
@@ -9215,16 +9492,17 @@
9215
9492
  }
9216
9493
 
9217
9494
  :where(.theme-scope) .event-compact-row-price {
9218
- color: rgb(var(--tb-secondary, var(--tb-primary, 0 0 0)));
9219
- font-weight: 600;
9495
+ color: inherit;
9496
+ font-weight: inherit;
9220
9497
  }
9221
9498
 
9222
9499
  :where(.theme-scope) .event-compact-row-action {
9223
9500
  display: grid;
9501
+ flex: 0 1 clamp(14rem, 22vw, 19rem);
9224
9502
  align-content: center;
9225
- gap: 1rem;
9503
+ gap: 0.75rem;
9226
9504
  height: 100%;
9227
- padding-left: clamp(1.5rem, 3vw, 3.2rem);
9505
+ padding-left: clamp(1.1rem, 2.4vw, 2.4rem);
9228
9506
  border-left: 1px solid var(--event-compact-divider-color);
9229
9507
  }
9230
9508
 
@@ -9232,8 +9510,8 @@
9232
9510
  display: inline-flex;
9233
9511
  align-items: center;
9234
9512
  gap: 0.65rem;
9235
- color: rgb(var(--tb-text, 17 24 39));
9236
- font-size: clamp(0.9375rem, 1.45vw, 1.0625rem);
9513
+ color: var(--event-compact-secondary-text);
9514
+ font-size: 0.875rem;
9237
9515
  line-height: 1.3;
9238
9516
  white-space: nowrap;
9239
9517
  }
@@ -9244,6 +9522,10 @@
9244
9522
  flex-shrink: 0;
9245
9523
  }
9246
9524
 
9525
+ :where(.theme-scope) .event-compact-row-action-price {
9526
+ display: none;
9527
+ }
9528
+
9247
9529
  :where(.theme-scope) .event-compact-row-status {
9248
9530
  color: rgb(var(--tb-muted, var(--tb-text, 17 24 39)));
9249
9531
  font-weight: 500;
@@ -9271,52 +9553,213 @@
9271
9553
  }
9272
9554
 
9273
9555
  :where(.theme-scope) .event-compact-row {
9274
- grid-template-columns: 4.75rem minmax(0, 1fr);
9556
+ grid-template-columns: 4.25rem minmax(0, 1fr);
9275
9557
  min-height: 0;
9276
- padding: 1.25rem;
9277
- row-gap: 1.1rem;
9558
+ padding: 1rem;
9559
+ row-gap: 0.85rem;
9278
9560
  }
9279
9561
 
9280
9562
  :where(.theme-scope) .event-compact-row-date {
9281
- padding-right: 0.9rem;
9563
+ align-self: start;
9564
+ grid-row: 1;
9565
+ padding-right: 0.75rem;
9566
+ }
9567
+
9568
+ :where(.theme-scope) .event-compact-row-body {
9569
+ flex-direction: column;
9570
+ align-items: stretch;
9571
+ gap: 0.85rem;
9572
+ height: auto;
9573
+ padding-left: 0.9rem;
9282
9574
  }
9283
9575
 
9284
9576
  :where(.theme-scope) .event-compact-row-date-day {
9285
- font-size: 2.35rem;
9577
+ font-size: 1.65rem;
9286
9578
  }
9287
9579
 
9288
9580
  :where(.theme-scope) .event-compact-row-content {
9289
- gap: 0.75rem;
9290
- padding-left: 1.1rem;
9291
- padding-right: 0;
9581
+ flex: none;
9582
+ gap: 0.625rem;
9583
+ height: auto;
9584
+ padding-inline: 0;
9292
9585
  }
9293
9586
 
9294
9587
  :where(.theme-scope) .event-compact-row-title {
9295
- font-size: clamp(1.35rem, 8vw, 1.9rem);
9588
+ font-size: 1.15rem;
9589
+ overflow: visible;
9590
+ text-overflow: clip;
9296
9591
  white-space: normal;
9592
+ overflow-wrap: break-word;
9593
+ }
9594
+
9595
+ :where(.theme-scope) .event-compact-row-venue {
9596
+ max-width: 100%;
9597
+ }
9598
+
9599
+ :where(.theme-scope) .event-compact-row-venue svg {
9600
+ flex-shrink: 0;
9297
9601
  }
9298
9602
 
9299
9603
  :where(.theme-scope) .event-compact-row-meta {
9604
+ flex-direction: column;
9605
+ align-items: flex-start;
9300
9606
  flex-wrap: wrap;
9301
- gap: 0.5rem 0.8rem;
9607
+ gap: 0.35rem;
9608
+ }
9609
+
9610
+ :where(.theme-scope) .event-compact-row-meta .event-compact-row-price {
9611
+ display: none;
9612
+ }
9613
+
9614
+ :where(.theme-scope) .event-compact-row-teacher::before,
9615
+ :where(.theme-scope) .event-compact-row-price::before {
9616
+ content: none;
9302
9617
  }
9303
9618
 
9304
9619
  :where(.theme-scope) .event-compact-row-action {
9305
- grid-column: 1 / -1;
9620
+ flex: none;
9306
9621
  grid-template-columns: minmax(0, 1fr);
9307
- gap: 0.85rem;
9622
+ gap: 0.7rem;
9623
+ height: auto;
9624
+ width: 100%;
9308
9625
  padding-left: 0;
9309
- padding-top: 1rem;
9310
- border-left: none;
9311
- border-top: 1px solid var(--event-compact-divider-color);
9626
+ padding-top: 0;
9627
+ border-left: 0;
9628
+ border-top: 0;
9312
9629
  }
9313
9630
 
9314
9631
  :where(.theme-scope) .event-compact-row-datetime {
9632
+ display: flex;
9633
+ flex-wrap: wrap;
9315
9634
  white-space: normal;
9316
9635
  }
9317
9636
 
9637
+ :where(.theme-scope) .event-compact-row-action-price {
9638
+ display: inline-flex;
9639
+ align-items: center;
9640
+ gap: 0.55rem;
9641
+ }
9642
+
9643
+ :where(.theme-scope) .event-compact-row-action-price::before {
9644
+ content: "\00b7";
9645
+ }
9646
+
9318
9647
  :where(.theme-scope) .event-compact-row-cta {
9648
+ width: min(100%, 12rem);
9649
+ min-height: 2.65rem;
9650
+ justify-content: space-between;
9651
+ gap: 0.65rem;
9652
+ padding-inline: 1rem;
9653
+ }
9654
+
9655
+ :where(.theme-scope) .event-compact-row-cta span {
9656
+ min-width: 0;
9657
+ }
9658
+ }
9659
+
9660
+ @container event-compact-list (max-width: 48rem) {
9661
+ :where(.theme-scope) .event-compact-row {
9662
+ grid-template-columns: 4.25rem minmax(0, 1fr);
9663
+ min-height: 0;
9664
+ padding: 1rem;
9665
+ row-gap: 0.85rem;
9666
+ }
9667
+
9668
+ :where(.theme-scope) .event-compact-row-date {
9669
+ align-self: start;
9670
+ grid-row: 1;
9671
+ padding-right: 0.75rem;
9672
+ }
9673
+
9674
+ :where(.theme-scope) .event-compact-row-body {
9675
+ flex-direction: column;
9676
+ align-items: stretch;
9677
+ gap: 0.85rem;
9678
+ height: auto;
9679
+ padding-left: 0.9rem;
9680
+ }
9681
+
9682
+ :where(.theme-scope) .event-compact-row-date-day {
9683
+ font-size: 1.65rem;
9684
+ }
9685
+
9686
+ :where(.theme-scope) .event-compact-row-content {
9687
+ flex: none;
9688
+ gap: 0.625rem;
9689
+ height: auto;
9690
+ padding-inline: 0;
9691
+ }
9692
+
9693
+ :where(.theme-scope) .event-compact-row-title {
9694
+ font-size: 1.15rem;
9695
+ overflow: visible;
9696
+ text-overflow: clip;
9697
+ white-space: normal;
9698
+ overflow-wrap: break-word;
9699
+ }
9700
+
9701
+ :where(.theme-scope) .event-compact-row-venue {
9702
+ max-width: 100%;
9703
+ }
9704
+
9705
+ :where(.theme-scope) .event-compact-row-venue svg {
9706
+ flex-shrink: 0;
9707
+ }
9708
+
9709
+ :where(.theme-scope) .event-compact-row-meta {
9710
+ flex-direction: column;
9711
+ align-items: flex-start;
9712
+ flex-wrap: wrap;
9713
+ gap: 0.35rem;
9714
+ }
9715
+
9716
+ :where(.theme-scope) .event-compact-row-meta .event-compact-row-price {
9717
+ display: none;
9718
+ }
9719
+
9720
+ :where(.theme-scope) .event-compact-row-teacher::before,
9721
+ :where(.theme-scope) .event-compact-row-price::before {
9722
+ content: none;
9723
+ }
9724
+
9725
+ :where(.theme-scope) .event-compact-row-action {
9726
+ flex: none;
9727
+ grid-template-columns: minmax(0, 1fr);
9728
+ gap: 0.7rem;
9729
+ height: auto;
9319
9730
  width: 100%;
9731
+ padding-left: 0;
9732
+ padding-top: 0;
9733
+ border-left: 0;
9734
+ border-top: 0;
9735
+ }
9736
+
9737
+ :where(.theme-scope) .event-compact-row-datetime {
9738
+ display: flex;
9739
+ flex-wrap: wrap;
9740
+ white-space: normal;
9741
+ }
9742
+
9743
+ :where(.theme-scope) .event-compact-row-action-price {
9744
+ display: inline-flex;
9745
+ align-items: center;
9746
+ gap: 0.55rem;
9747
+ }
9748
+
9749
+ :where(.theme-scope) .event-compact-row-action-price::before {
9750
+ content: "\00b7";
9751
+ }
9752
+
9753
+ :where(.theme-scope) .event-compact-row-cta {
9754
+ width: min(100%, 12rem);
9755
+ min-height: 2.65rem;
9756
+ justify-content: space-between;
9757
+ gap: 0.65rem;
9758
+ padding-inline: 1rem;
9759
+ }
9760
+
9761
+ :where(.theme-scope) .event-compact-row-cta span {
9762
+ min-width: 0;
9320
9763
  }
9321
9764
  }
9322
9765
 
@@ -9375,19 +9818,31 @@
9375
9818
  * =============================================================================
9376
9819
  */
9377
9820
 
9378
- :where(.theme-scope) .rb-heading-decoration {
9379
- display: block;
9380
- flex: 0 0 auto;
9381
- pointer-events: none;
9821
+ /*
9822
+ * The mark sits inside a full-width block row so it inherits the heading group's
9823
+ * `text-align`: a centred heading centres the mark, a left-aligned heading keeps
9824
+ * it at the start. The heading stacks are flexbox, where `text-align` positions
9825
+ * inline content but not flex items — so the row (a stretched block flex item)
9826
+ * is what carries the alignment, and the inline-block mark follows it. Alignment
9827
+ * is never configured directly; it follows the heading.
9828
+ */
9829
+ :where(.theme-scope) .rb-heading-decoration-group {
9830
+ display: flex;
9831
+ flex-direction: column;
9832
+ gap: 0;
9382
9833
  }
9383
9834
 
9384
- :where(.theme-scope) .rb-heading-decoration-placement-after-heading {
9835
+ :where(.theme-scope) .rb-heading-decoration-row {
9836
+ display: block;
9837
+ width: 100%;
9385
9838
  margin-top: 0.35rem;
9839
+ line-height: 0;
9840
+ pointer-events: none;
9386
9841
  }
9387
9842
 
9388
- :where(.theme-scope) .rb-heading-decoration-placement-under-centered-heading {
9389
- margin-left: auto;
9390
- margin-right: auto;
9843
+ :where(.theme-scope) .rb-heading-decoration {
9844
+ display: inline-block;
9845
+ vertical-align: top;
9391
9846
  }
9392
9847
 
9393
9848
  :where(.theme-scope) .rb-heading-decoration-organic-squiggle {
@@ -9486,4 +9941,225 @@
9486
9941
  height: 1.5rem;
9487
9942
  }
9488
9943
 
9944
+ /* --- Card marker mode (icons / numbers / none) -----------------------------
9945
+ *
9946
+ * The icon zone and the number zone both sit in the DOM; the grid's
9947
+ * `data-card-marker` attribute decides which shows. The default (legacy
9948
+ * content with no attribute) shows icons and hides the number zone.
9949
+ */
9950
+ :where(.theme-scope) .rb-feature-card-number-zone {
9951
+ display: none; /* shown only in numbers mode */
9952
+ align-items: center;
9953
+ justify-content: center;
9954
+ flex: 0 0 auto;
9955
+ width: 2.5rem;
9956
+ height: 2.5rem;
9957
+ margin-bottom: 0.125rem;
9958
+ border-radius: var(--rb-block-radius, 0.75rem);
9959
+ background-color: rgb(var(--tb-primary) / 10%);
9960
+ color: rgb(var(--tb-primary));
9961
+ counter-increment: rb-feature-card-number;
9962
+ }
9963
+ :where(.theme-scope) .rb-feature-card-number-zone::before {
9964
+ content: counter(rb-feature-card-number, decimal-leading-zero);
9965
+ font-weight: 700;
9966
+ font-size: 0.95rem;
9967
+ line-height: 1;
9968
+ }
9969
+
9970
+ :where(.theme-scope) .rb-feature-cards-grid {
9971
+ counter-reset: rb-feature-card-number;
9972
+ }
9973
+
9974
+ :where(.theme-scope) [data-card-marker="numbers"] .rb-feature-card-number-zone {
9975
+ display: inline-flex;
9976
+ }
9977
+ :where(.theme-scope) [data-card-marker="numbers"] .rb-feature-card-icon-zone {
9978
+ display: none;
9979
+ }
9980
+ :where(.theme-scope) [data-card-marker="none"] .rb-feature-card-icon-zone,
9981
+ :where(.theme-scope) [data-card-marker="none"] .rb-feature-card-number-zone {
9982
+ display: none;
9983
+ }
9984
+
9985
+
9986
+ /* =============================================================================
9987
+ * Shared: Card treatments
9988
+ *
9989
+ * Visual treatments referenced from `_cardStyles.treatment` (see
9990
+ * cardStylesOverrideSchema). Class names are emitted by the boxStyles
9991
+ * transform in @riverbankcms/blocks.
9992
+ *
9993
+ * Also contains feature-card media/padding behaviour shared by all looks:
9994
+ * - card images bleed to the card edges (flush photo tops)
9995
+ * - card-level padding replaces the content stack's fallback padding so the
9996
+ * two never stack up
9997
+ * ============================================================================= */
9998
+
9999
+ /* --- Feature card media + padding behaviour (all looks) -------------------- */
10000
+
10001
+ /*
10002
+ * When a look gives the card real padding (rb-container-pad-*), the image
10003
+ * bleeds to the card edges and the inner content stack drops its fallback
10004
+ * padding so insets don't double up.
10005
+ */
10006
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media {
10007
+ width: calc(100% + 2 * var(--rb-card-pad, 0rem));
10008
+ max-width: none;
10009
+ margin: calc(-1 * var(--rb-card-pad, 0rem)) calc(-1 * var(--rb-card-pad, 0rem)) 0;
10010
+ }
10011
+
10012
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media + .rb-feature-card-content {
10013
+ margin-top: 1.4rem;
10014
+ }
10015
+
10016
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-content {
10017
+ padding: 0;
10018
+ }
10019
+
10020
+ /* --- Soft panel ------------------------------------------------------------ */
10021
+
10022
+ :where(.theme-scope) .rb-card-treatment-soft-panel {
10023
+ transition: transform 250ms ease, box-shadow 250ms ease;
10024
+ }
10025
+
10026
+ @media (prefers-reduced-motion: no-preference) {
10027
+ :where(.theme-scope) .rb-card-treatment-soft-panel:hover {
10028
+ transform: translateY(-3px);
10029
+ box-shadow: 0 0.875rem 1.875rem rgba(var(--tb-shadow, 0 0 0), 0.1);
10030
+ }
10031
+ }
10032
+
10033
+ :where(.theme-scope) .rb-card-treatment-soft-panel .cta-row .button-ghost {
10034
+ padding-inline: 0;
10035
+ }
10036
+
10037
+ /* --- Editorial rule --------------------------------------------------------- */
10038
+
10039
+ /*
10040
+ * Boxless open column: no background, no border box, a short brand rule
10041
+ * sitting on a full-width hairline at the top of the column.
10042
+ */
10043
+ :where(.theme-scope) .rb-card-treatment-editorial-rule {
10044
+ margin-top: 1rem;
10045
+ border-top: 1px solid
10046
+ color-mix(in oklab, rgb(var(--tb-border, 229 231 235)), transparent 25%);
10047
+ }
10048
+
10049
+ :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-bg-surface {
10050
+ background: transparent;
10051
+ }
10052
+
10053
+ :where(.theme-scope) .rb-card-treatment-editorial-rule::before {
10054
+ content: "";
10055
+ position: absolute;
10056
+ top: 0;
10057
+ left: 0;
10058
+ width: 2.75rem;
10059
+ height: 2px;
10060
+ background: rgb(var(--tb-primary, 0 0 0));
10061
+ }
10062
+
10063
+ :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-media {
10064
+ margin-top: 1.6rem;
10065
+ border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.5);
10066
+ }
10067
+
10068
+ :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-content {
10069
+ padding: 1.6rem 0 0.25rem;
10070
+ }
10071
+
10072
+ :where(.theme-scope) .rb-card-treatment-editorial-rule .cta-row .button-ghost {
10073
+ padding-inline: 0;
10074
+ }
10075
+
10076
+ /* --- Colour-blocked --------------------------------------------------------- */
10077
+
10078
+ /*
10079
+ * Bold, flat cards that each take a different palette colour by position,
10080
+ * cycled across the grid, with a staggered vertical offset on wider screens.
10081
+ * The background layer (`.rb-bg-surface`) is recoloured per card; the card's
10082
+ * text colour is set to the matching on-colour so content stays readable.
10083
+ */
10084
+ :where(.theme-scope) .rb-card-treatment-color-blocked {
10085
+ box-shadow: none;
10086
+ }
10087
+
10088
+ /* Per-card colour cycle. The `on*` colours are always derived by the palette
10089
+ * (expandPalette emits onSurface/onSecondary/onPrimary), so no fallback. */
10090
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) > .rb-bg-surface {
10091
+ background: rgb(var(--tb-surface));
10092
+ }
10093
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) {
10094
+ color: rgb(var(--tb-onSurface));
10095
+ }
10096
+
10097
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) > .rb-bg-surface {
10098
+ background: rgb(var(--tb-secondary));
10099
+ }
10100
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) {
10101
+ color: rgb(var(--tb-onSecondary));
10102
+ }
10103
+
10104
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) > .rb-bg-surface {
10105
+ background: rgb(var(--tb-primary));
10106
+ }
10107
+ :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) {
10108
+ color: rgb(var(--tb-onPrimary));
10109
+ }
10110
+
10111
+ /* Body copy carries an inline muted colour from the block; force it to the
10112
+ * card's on-colour so it reads on every block (inline style needs !important). */
10113
+ :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-body {
10114
+ color: inherit !important;
10115
+ opacity: 0.9;
10116
+ }
10117
+
10118
+ /* The number marker defaults to the brand accent, which collides with the
10119
+ * primary-coloured card in the cycle. On colour-blocked cards use the card's
10120
+ * own on-colour (the palette guarantees it's legible on that background) and a
10121
+ * faint tint of it for the badge, so the number always contrasts. */
10122
+ :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-number-zone {
10123
+ color: inherit;
10124
+ background-color: color-mix(in oklab, currentColor, transparent 88%);
10125
+ }
10126
+
10127
+ /* Staggered offset: drop the middle column on wider screens. Scoped to a 3-up
10128
+ * grid (`.rb-grid-cols-3`) so 2-/4-column grids don't get a misaligned stagger;
10129
+ * the colour cycle still reads as a diagonal at any column count. */
10130
+ @media (min-width: 768px) {
10131
+ :where(.theme-scope) .rb-grid-cols-3 .rb-card-treatment-color-blocked:nth-child(3n + 2) {
10132
+ margin-top: 2.75rem;
10133
+ /* Override the card's `h-full` so the grid's stretch shrinks the card by the
10134
+ * margin (a genuinely shorter card) instead of keeping full height and
10135
+ * overflowing the section, which clips the rounded bottom corners. */
10136
+ height: auto;
10137
+ }
10138
+ }
10139
+
10140
+
10141
+ :where(.theme-scope) [data-block="intro"][data-block-look="intro-portrait-bio"][data-block-variant="media-copy"] .rb-intro-media-wrap {
10142
+ max-width: min(100%, 24rem);
10143
+ margin-inline: auto;
10144
+ }
10145
+
10146
+ :where(.theme-scope) [data-block="intro"][data-block-look="intro-portrait-bio"][data-block-variant="media-copy"] .rb-intro-media {
10147
+ aspect-ratio: 1 / 1 !important;
10148
+ border-radius: 9999px;
10149
+ }
10150
+
10151
+ :where(.theme-scope) [data-block="intro"][data-block-look="intro-editorial-statement"] .rb-intro-title {
10152
+ font-size: clamp(2rem, 1.56rem + 1.4vw, 3rem);
10153
+ line-height: 1.14;
10154
+ }
10155
+
10156
+ :where(.theme-scope) [data-block="intro"][data-block-look="intro-editorial-statement"] .rb-intro-copy {
10157
+ gap: var(--rb-space-5, 1.25rem);
10158
+ }
10159
+
10160
+ :where(.theme-scope) [data-block="intro"][data-block-look="intro-editorial-statement"] .rb-intro-copy .rb-prose {
10161
+ font-size: clamp(1.125rem, 1.02rem + 0.35vw, 1.375rem);
10162
+ line-height: 1.65;
10163
+ }
10164
+
9489
10165