@riverbankcms/sdk 0.151.0 → 0.153.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 (316) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +10 -9
  3. package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -3
  4. package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-ORkVZhfu.mjs} +5 -4
  5. package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +341 -164
  6. package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +27124 -39230
  7. package/dist/ThemedButton-X2UxhW6F.mjs +16525 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
  12. package/dist/_dts/api/src/communications.d.ts +19 -5
  13. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  14. package/dist/_dts/api/src/index.d.ts +1 -1
  15. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/navigation/types.d.ts +7 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -1
  18. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
  19. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  20. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  21. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  23. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  27. package/dist/_dts/blocks/src/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  29. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  30. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
  31. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  32. package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +212 -804
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  39. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  44. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  47. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  48. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  49. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  50. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  51. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
  53. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
  54. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
  55. package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
  56. package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
  57. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
  58. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
  59. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  60. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  61. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +5 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  68. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +51 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
  97. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
  98. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +290 -882
  120. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  122. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  123. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
  124. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
  125. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
  126. package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
  127. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
  128. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
  129. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  130. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
  131. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
  132. package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
  133. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -0
  134. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +2 -0
  135. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
  136. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
  137. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
  138. package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
  139. package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
  140. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  141. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
  142. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  143. package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
  144. package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
  145. package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
  146. package/dist/_dts/core/src/branded.d.ts +0 -2
  147. package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
  148. package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
  149. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
  150. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
  151. package/dist/_dts/core/src/index.d.ts +4 -0
  152. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  153. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  154. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  155. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  156. package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
  157. package/dist/_dts/core/src/mailing-list-targeting.d.ts +11 -1
  158. package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
  159. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +106 -36
  160. package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
  161. package/dist/_dts/editor/src/index.d.ts +1 -0
  162. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  163. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  164. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  165. package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
  166. package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
  167. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
  168. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
  169. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
  170. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
  171. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  172. package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
  173. package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
  174. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
  175. package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
  176. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
  179. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  180. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  181. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
  182. package/dist/_dts/media-core/src/index.d.ts +5 -0
  183. package/dist/_dts/media-core/src/media.d.ts +406 -0
  184. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  185. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  186. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  187. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  188. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  189. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  190. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  191. package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
  192. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  193. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  194. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  195. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  196. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  197. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  198. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  199. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  200. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  201. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  202. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  203. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  204. package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
  205. package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
  206. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  207. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  208. package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
  209. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  210. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  211. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  212. package/dist/_dts/sdk/src/index.d.ts +1 -0
  213. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
  214. package/dist/_dts/sdk/src/rendering/image.d.ts +14 -4
  215. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -2
  216. package/dist/_dts/sdk/src/rendering/link.d.ts +5 -0
  217. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  218. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  219. package/dist/_dts/sdk/src/version.d.ts +1 -1
  220. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  221. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
  222. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  223. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  224. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  225. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  226. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  227. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  228. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  229. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  230. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  231. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  232. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  233. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  234. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  235. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  236. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  237. package/dist/client/BookingMailingListNote-DrchYW1m.mjs +386 -0
  238. package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-CC_GVmF6.mjs} +5 -5
  239. package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
  240. package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  241. package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +85 -85
  242. package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-DyN0v0Xk.mjs} +7 -9
  243. package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +11 -10
  244. package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  245. package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  246. package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
  247. package/dist/client/{RichText-LjPCUGGi.mjs → RichText-C1fIXBzA.mjs} +50 -34
  248. package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  249. package/dist/client/{accordion-Qe--SILD.mjs → accordion-DCDVWSye.mjs} +1 -1
  250. package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-BJ3C4GlM.mjs} +321 -154
  251. package/dist/client/bookings.mjs +118607 -22429
  252. package/dist/client/{carousel-h2YjKOS2.mjs → carousel-BSCBhfHY.mjs} +2 -2
  253. package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-GEtOGsxo.mjs} +46 -41
  254. package/dist/client/{cart-5NeiigVd.mjs → cart-Yv-aAtck.mjs} +3 -3
  255. package/dist/client/{checkout-G4UWjOEw.mjs → checkout-B9xDkl30.mjs} +3 -3
  256. package/dist/client/client.mjs +37511 -33793
  257. package/dist/client/{context-GK4-AVAh.mjs → context-BOGe3rIA.mjs} +275 -10
  258. package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-D6M0T9hs.mjs} +18 -17
  259. package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  260. package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-f_FhV4O8.mjs} +3 -4
  261. package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-WLkfAROh.mjs} +4 -4
  262. package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-D3ejfLvW.mjs} +2209 -2144
  263. package/dist/client/{form-Cf0WMtfG.mjs → form-D5Or2Jyu.mjs} +5 -6
  264. package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-hWgnv27V.mjs} +9 -9
  265. package/dist/client/hooks.mjs +17278 -16106
  266. package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  267. package/dist/client/{media-47fcnhzD.mjs → media-D29-F1u_.mjs} +183 -362
  268. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  269. package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-CwxcwTNO.mjs} +5 -5
  270. package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  271. package/dist/client/{productList-BKQlWEKE.mjs → productList-oGytONOX.mjs} +3 -3
  272. package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-lf_dTeZS.mjs} +18659 -14473
  273. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  274. package/dist/client/rendering/client.mjs +58971 -55722
  275. package/dist/client/rendering/islands.mjs +20 -23
  276. package/dist/client/rendering.mjs +41610 -37917
  277. package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  278. package/dist/client/{shop-D7ytcFBC.mjs → shop-BQ3bR7fA.mjs} +16 -14
  279. package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-DDPll6ZC.mjs} +9 -9
  280. package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  281. package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BylM9jh1.mjs} +5 -5
  282. package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
  283. package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-B1Puub2v.mjs} +60 -77
  284. package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-BBhkmQaT.mjs} +6 -8
  285. package/dist/preview-next/before-render.mjs +96 -4
  286. package/dist/preview-next/client/runtime.mjs +3 -3
  287. package/dist/preview-next/keepAlive.mjs +7 -0
  288. package/dist/preview-next/middleware.mjs +7 -0
  289. package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  290. package/dist/server/components.mjs +21820 -19902
  291. package/dist/server/config-validation.mjs +1786 -642
  292. package/dist/server/config.mjs +1786 -642
  293. package/dist/server/data.mjs +17220 -16076
  294. package/dist/server/index.mjs +234 -2
  295. package/dist/server/next.mjs +22505 -20528
  296. package/dist/server/page-converter.mjs +7587 -6572
  297. package/dist/server/prebuild.mjs +1 -1
  298. package/dist/server/rendering/server.mjs +20487 -19044
  299. package/dist/server/rendering.mjs +21844 -19901
  300. package/dist/server/routing.mjs +19186 -17961
  301. package/dist/server/server.mjs +1874 -695
  302. package/dist/server/theme-bridge.mjs +1371 -914
  303. package/dist/server/theme.mjs +154 -37
  304. package/dist/{spinner-tSdG9YvG.mjs → spinner-BYM-Y81w.mjs} +1 -1
  305. package/dist/styles/index.css +1088 -721
  306. package/package.json +1 -1
  307. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
  308. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
  309. package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
  310. package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
  311. package/dist/client/colorStyles-DTunOThj.mjs +0 -1316
  312. package/dist/client/pricing-CMD0kADd.mjs +0 -314
  313. package/dist/client/result-DRW7JWXz.mjs +0 -30
  314. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
  315. package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
  316. package/dist/spinner-BL3kW9Uh.mjs +0 -803
@@ -809,6 +809,13 @@
809
809
  var(--site-overlay-opening-content-extra-pad, clamp(1rem, 2vw, 1.75rem))
810
810
  );
811
811
  }
812
+ /* Floating site overlays (a booking bar, a cookie banner, a sticky promo)
813
+ mark themselves [data-rb-site-overlay]. While a preview is in edit mode
814
+ (the preview shell sets the root attribute) they step aside, out of the
815
+ focus order too; switching back to viewing restores them as they were. */
816
+ :root[data-rb-preview-mode="edit"] [data-rb-site-overlay] {
817
+ display: none;
818
+ }
812
819
  .rb-preview-editor-offset {
813
820
  padding-bottom: calc(
814
821
  var(--builder-editor-chrome-offset, 0px) +
@@ -1388,7 +1395,7 @@
1388
1395
  .rb-spinner {
1389
1396
  --rb-spinner-size: 2rem;
1390
1397
  --rb-spinner-duration: 0.9s;
1391
- --rb-spinner-track-color: rgba(var(--tb-foreground), 0.15);
1398
+ --rb-spinner-track-color: rgb(var(--tb-foreground) / 0.15);
1392
1399
 
1393
1400
  display: inline-flex;
1394
1401
  align-items: center;
@@ -1882,12 +1889,12 @@
1882
1889
 
1883
1890
  :where(.theme-scope) .rb-modal__close:hover {
1884
1891
  color: var(--rb-surface-text-color, rgb(var(--tb-text, 17 24 39)));
1885
- background: rgba(var(--tb-border), 0.2);
1892
+ background: rgb(var(--tb-border) / 0.2);
1886
1893
  }
1887
1894
 
1888
1895
  :where(.theme-scope) .rb-modal__close:focus-visible {
1889
1896
  outline: none;
1890
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.15);
1897
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.15);
1891
1898
  }
1892
1899
 
1893
1900
  :where(.theme-scope) .rb-modal__body {
@@ -2364,7 +2371,7 @@
2364
2371
  :where(.theme-scope) .rb-prose code {
2365
2372
  /* Inline code uses text color with surface background */
2366
2373
  color: inherit;
2367
- background-color: rgba(var(--tb-surface), 0.5);
2374
+ background-color: rgb(var(--tb-surface) / 0.5);
2368
2375
  padding: 0.125rem 0.25rem;
2369
2376
  border-radius: 0.25rem;
2370
2377
  font-size: 0.875em;
@@ -3352,17 +3359,17 @@
3352
3359
 
3353
3360
  /* All badges use a subtle theme-aware style by default */
3354
3361
  :where(.theme-scope) .badge-status-available {
3355
- background-color: rgba(var(--tb-secondary), 0.15);
3362
+ background-color: rgb(var(--tb-secondary) / 0.15);
3356
3363
  color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
3357
3364
  }
3358
3365
 
3359
3366
  :where(.theme-scope) .badge-status-low {
3360
- background-color: rgba(var(--tb-accent), 0.15);
3367
+ background-color: rgb(var(--tb-accent) / 0.15);
3361
3368
  color: rgb(var(--tb-accent-700, var(--tb-accent)));
3362
3369
  }
3363
3370
 
3364
3371
  :where(.theme-scope) .badge-status-sold-out {
3365
- background-color: rgba(var(--tb-text), 0.1);
3372
+ background-color: rgb(var(--tb-text) / 0.1);
3366
3373
  color: rgb(var(--tb-mutedText));
3367
3374
  }
3368
3375
 
@@ -3425,7 +3432,7 @@
3425
3432
  * here too; block CSS provides the `.rb-state-icon--{variant}` colors.
3426
3433
  *
3427
3434
  * Naming: component-like primitives follow the existing bare `rb-` shared
3428
- * precedent (`.rb-state-icon`, `.rb-tile`): `.rb-option-card`, `.rb-step-*`,
3435
+ * precedent (`.rb-state-icon`, `.rb-tile`): `.rb-option-card`, `.rb-progress*`,
3429
3436
  * `.rb-wizard-actions`, `.rb-on-surface`, `.rb-shell-*`. Container/layout
3430
3437
  * pieces that would otherwise collide with the global `.rb-*` utility layer
3431
3438
  * are namespaced `rb-reg-*` (`.rb-reg-surface`, `.rb-reg-stack`, ...). All of
@@ -3448,6 +3455,13 @@
3448
3455
  height: 2rem;
3449
3456
  }
3450
3457
 
3458
+ /* The success tick reads as a mark inside its disc, not a line drawing */
3459
+ :where(.theme-scope) .rb-state-icon--success svg {
3460
+ width: 1.75rem;
3461
+ height: 1.75rem;
3462
+ stroke-width: 3;
3463
+ }
3464
+
3451
3465
  /* Surface container */
3452
3466
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-reg-surface {
3453
3467
  border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
@@ -3484,18 +3498,18 @@
3484
3498
  }
3485
3499
 
3486
3500
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:hover:not(:disabled):not([aria-disabled="true"]) {
3487
- border-color: var(--rb-reg-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
3488
- box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08));
3501
+ border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary, 17 24 39) / 0.5));
3502
+ box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08));
3489
3503
  }
3490
3504
 
3491
3505
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:focus-visible {
3492
- outline: 2px solid var(--rb-reg-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
3506
+ outline: 2px solid var(--rb-reg-focus-ring, rgb(var(--tb-primary, 17 24 39) / 0.3));
3493
3507
  outline-offset: 2px;
3494
3508
  }
3495
3509
 
3496
3510
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card--selected {
3497
3511
  border-color: var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
3498
- background-color: var(--rb-reg-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.08));
3512
+ background-color: var(--rb-reg-bg-selected, rgb(var(--tb-primary, 17 24 39) / 0.08));
3499
3513
  box-shadow: 0 0 0 1px var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
3500
3514
  }
3501
3515
 
@@ -3527,76 +3541,45 @@
3527
3541
  color: var(--rb-reg-check-text, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
3528
3542
  }
3529
3543
 
3530
- /* Step indicator */
3531
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-steps-nav {
3532
- margin-bottom: 1.5rem;
3533
- }
3534
-
3535
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-steps {
3536
- display: flex;
3537
- align-items: center;
3538
- justify-content: center;
3539
- gap: 0.5rem;
3540
- list-style: none;
3541
- padding: 0;
3542
- margin: 0;
3543
- }
3544
-
3545
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step {
3544
+ /* Progress: the current step's label, "Step N of M" and a thin bar (issue 1581) */
3545
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress {
3546
3546
  display: flex;
3547
- align-items: center;
3547
+ flex-direction: column;
3548
3548
  gap: 0.5rem;
3549
+ margin-bottom: 1.5rem;
3549
3550
  }
3550
3551
 
3551
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle {
3552
- width: 1.75rem;
3553
- height: 1.75rem;
3554
- border-radius: 50%;
3552
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__head {
3555
3553
  display: flex;
3556
- align-items: center;
3557
- justify-content: center;
3558
- font-size: 0.75rem;
3559
- font-weight: 600;
3560
- background: var(--rb-reg-step-inactive, rgb(var(--tb-mutedText, 100 116 139)));
3561
- color: var(--rb-reg-step-text, rgb(var(--tb-primaryForeground, 255 255 255)));
3562
- transition: background-color var(--rb-block-transition, 150ms) ease;
3563
- }
3564
-
3565
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--active {
3566
- background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
3567
- color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
3568
- }
3569
-
3570
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--completed {
3571
- background: var(--rb-reg-step-completed, rgb(var(--tb-success, 22 163 74)));
3572
- color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
3573
- }
3574
-
3575
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-check {
3576
- width: 0.75rem;
3577
- height: 0.75rem;
3554
+ align-items: baseline;
3555
+ justify-content: space-between;
3556
+ gap: 1rem;
3557
+ font-size: 0.8125rem;
3558
+ line-height: 1.3;
3578
3559
  }
3579
3560
 
3580
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-connector {
3581
- width: 2rem;
3582
- height: 2px;
3583
- background: var(--rb-reg-step-connector, rgba(var(--tb-border, 226 232 240), 0.5));
3561
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__label {
3562
+ font-weight: 700;
3563
+ color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
3584
3564
  }
3585
3565
 
3586
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label {
3587
- font-size: 0.75rem;
3588
- color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
3589
- display: none;
3566
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__count {
3567
+ margin-inline-start: auto;
3568
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
3590
3569
  }
3591
3570
 
3592
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label--active {
3593
- font-weight: 500;
3571
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__track {
3572
+ height: 4px;
3573
+ border-radius: 4px;
3574
+ background: rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.12);
3575
+ overflow: hidden;
3594
3576
  }
3595
3577
 
3596
- @media (min-width: 640px) {
3597
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label {
3598
- display: inline;
3599
- }
3578
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__fill {
3579
+ height: 100%;
3580
+ border-radius: 4px;
3581
+ background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
3582
+ transition: width var(--rb-block-transition, 150ms) ease;
3600
3583
  }
3601
3584
 
3602
3585
  /* Wizard actions row */
@@ -3613,21 +3596,26 @@
3613
3596
  margin-inline-start: auto;
3614
3597
  }
3615
3598
 
3599
+ /* A footer with only Back keeps it bottom-left, like every other step */
3600
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-wizard-actions--back-only > :only-child {
3601
+ margin-inline-start: 0;
3602
+ }
3603
+
3616
3604
  /* On-surface text ramp */
3617
3605
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface {
3618
3606
  color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
3619
3607
  }
3620
3608
 
3621
3609
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--muted {
3622
- color: var(--rb-reg-on-surface-muted, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.7));
3610
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
3623
3611
  }
3624
3612
 
3625
3613
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--subtle {
3626
- color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
3614
+ color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
3627
3615
  }
3628
3616
 
3629
3617
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--faint {
3630
- color: var(--rb-reg-on-surface-faint, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.5));
3618
+ color: var(--rb-reg-on-surface-faint, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.5));
3631
3619
  }
3632
3620
 
3633
3621
  /* Layout stacks */
@@ -3662,7 +3650,7 @@
3662
3650
  padding: 1rem;
3663
3651
  border-radius: calc(var(--rb-reg-radius, var(--rb-block-radius, 1rem)) * 0.75);
3664
3652
  border: 1px solid var(--rb-reg-summary-border, rgb(var(--tb-border, 226 232 240)));
3665
- background: var(--rb-reg-summary-bg, rgba(var(--tb-muted, 241 245 249), 0.42));
3653
+ background: var(--rb-reg-summary-bg, rgb(var(--tb-muted, 241 245 249) / 0.42));
3666
3654
  }
3667
3655
 
3668
3656
  /* Skeleton shell lines */
@@ -3671,9 +3659,9 @@
3671
3659
  border-radius: 9999px;
3672
3660
  background: linear-gradient(
3673
3661
  90deg,
3674
- var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22)),
3675
- rgba(var(--tb-primary, 17 24 39), 0.12),
3676
- var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22))
3662
+ var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22)),
3663
+ rgb(var(--tb-primary, 17 24 39) / 0.12),
3664
+ var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22))
3677
3665
  );
3678
3666
  }
3679
3667
 
@@ -3698,7 +3686,7 @@
3698
3686
  height: 2.5rem;
3699
3687
  width: 100%;
3700
3688
  border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
3701
- background: var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22));
3689
+ background: var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22));
3702
3690
  animation: rb-reg-pulse 1.5s ease-in-out infinite;
3703
3691
  }
3704
3692
 
@@ -3717,6 +3705,101 @@
3717
3705
  }
3718
3706
  }
3719
3707
 
3708
+ /* Payment choices (issue 1581): one full-width radio row per way to pay, the
3709
+ * label and detail on the left, the price on the right. Shared by event and
3710
+ * appointment booking (PaymentChoiceRows). */
3711
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choices {
3712
+ display: flex;
3713
+ flex-direction: column;
3714
+ gap: 0.625rem;
3715
+ }
3716
+
3717
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice {
3718
+ display: flex;
3719
+ align-items: flex-start;
3720
+ gap: 0.875rem;
3721
+ padding: 1rem 1.125rem;
3722
+ border: 1px solid var(--rb-reg-border, rgb(var(--tb-border)));
3723
+ border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
3724
+ background: var(--rb-reg-option-bg, transparent);
3725
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
3726
+ cursor: pointer;
3727
+ transition:
3728
+ border-color var(--rb-block-transition, 150ms) ease,
3729
+ background-color var(--rb-block-transition, 150ms) ease;
3730
+ }
3731
+
3732
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:hover:not(.rb-pay-choice--disabled) {
3733
+ border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary) / 0.5));
3734
+ }
3735
+
3736
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:focus-within {
3737
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
3738
+ }
3739
+
3740
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected {
3741
+ border-color: rgb(var(--tb-primary));
3742
+ box-shadow: inset 0 0 0 1px rgb(var(--tb-primary));
3743
+ background: rgb(var(--tb-primary) / 0.06);
3744
+ }
3745
+
3746
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected:focus-within {
3747
+ box-shadow:
3748
+ inset 0 0 0 1px rgb(var(--tb-primary)),
3749
+ 0 0 0 3px rgb(var(--tb-primary) / 0.25);
3750
+ }
3751
+
3752
+ /* Disabled stays readable: a dashed edge and quieter text, with its reason */
3753
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--disabled {
3754
+ border-style: dashed;
3755
+ cursor: not-allowed;
3756
+ }
3757
+
3758
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--disabled :is(.rb-pay-choice__label, .rb-pay-choice__detail, .rb-pay-choice__price) {
3759
+ opacity: 0.65;
3760
+ }
3761
+
3762
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__radio {
3763
+ flex: 0 0 auto;
3764
+ width: 1.25rem;
3765
+ height: 1.25rem;
3766
+ margin: 0.125rem 0 0;
3767
+ accent-color: rgb(var(--tb-primary));
3768
+ cursor: inherit;
3769
+ }
3770
+
3771
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__body {
3772
+ flex: 1 1 auto;
3773
+ min-width: 0;
3774
+ display: flex;
3775
+ flex-direction: column;
3776
+ gap: 0.125rem;
3777
+ }
3778
+
3779
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__label {
3780
+ font-weight: 700;
3781
+ line-height: 1.35;
3782
+ }
3783
+
3784
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__detail {
3785
+ font-size: 0.875rem;
3786
+ line-height: 1.4;
3787
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
3788
+ }
3789
+
3790
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__reason {
3791
+ font-size: 0.8125rem;
3792
+ line-height: 1.4;
3793
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
3794
+ }
3795
+
3796
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__price {
3797
+ flex: 0 0 auto;
3798
+ font-weight: 700;
3799
+ text-align: end;
3800
+ white-space: nowrap;
3801
+ }
3802
+
3720
3803
 
3721
3804
  /* =============================================================================
3722
3805
  * Block: Event Registration (pilot #76)
@@ -3732,17 +3815,14 @@
3732
3815
  --rb-event-tile-border-hover: var(--er-border-hover);
3733
3816
  --rb-event-tile-border-selected: var(--er-border-selected);
3734
3817
  --rb-event-tile-hover-opacity: var(--er-event-card-hover-opacity);
3735
- --rb-event-tile-bg-selected: rgba(var(--tb-primary), 0.1);
3818
+ --rb-event-tile-bg-selected: rgb(var(--tb-primary) / 0.1);
3736
3819
  --er-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
3737
- --er-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
3738
- --er-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
3739
- --er-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
3740
- --er-on-surface-hover-bg: rgba(var(--tb-onSurface, var(--tb-text)), 0.05);
3741
- --er-on-surface-disabled: rgba(var(--tb-onSurface, var(--tb-text)), 0.78);
3742
- --er-on-surface-disabled-detail: rgba(
3743
- var(--tb-onSurface, var(--tb-text)),
3744
- 0.68
3745
- );
3820
+ --er-on-surface-muted: rgb(var(--tb-onSurface, var(--tb-text)) / 0.7);
3821
+ --er-on-surface-subtle: rgb(var(--tb-onSurface, var(--tb-text)) / 0.6);
3822
+ --er-on-surface-faint: rgb(var(--tb-onSurface, var(--tb-text)) / 0.5);
3823
+ --er-on-surface-hover-bg: rgb(var(--tb-onSurface, var(--tb-text)) / 0.05);
3824
+ --er-on-surface-disabled: rgb(var(--tb-onSurface, var(--tb-text)) / 0.78);
3825
+ --er-on-surface-disabled-detail: rgb(var(--tb-onSurface, var(--tb-text)) / 0.68);
3746
3826
  }
3747
3827
 
3748
3828
  /* Container: styled by the shared .rb-reg-surface (registration-surface.css);
@@ -3870,6 +3950,109 @@
3870
3950
  opacity: 0.6;
3871
3951
  }
3872
3952
 
3953
+ /* Date step (issue 1581): one radio row per date, on the shared event tile */
3954
+ :where(.theme-scope)
3955
+ :where([data-block='event-registration'])
3956
+ .er-date-list {
3957
+ display: flex;
3958
+ flex-direction: column;
3959
+ gap: 0.625rem;
3960
+ }
3961
+
3962
+ :where(.theme-scope)
3963
+ :where([data-block='event-registration'])
3964
+ .er-date-list__month {
3965
+ margin: 0.5rem 0 0;
3966
+ font-size: 0.75rem;
3967
+ font-weight: 700;
3968
+ letter-spacing: 0.08em;
3969
+ text-transform: uppercase;
3970
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
3971
+ }
3972
+
3973
+ :where(.theme-scope)
3974
+ :where([data-block='event-registration'])
3975
+ .er-date-list__month:first-child {
3976
+ margin-top: 0;
3977
+ }
3978
+
3979
+ :where(.theme-scope)
3980
+ :where([data-block='event-registration'])
3981
+ .er-event-card.er-date-option {
3982
+ display: flex;
3983
+ align-items: center;
3984
+ gap: 0.875rem;
3985
+ padding: 0.875rem 1rem;
3986
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
3987
+ }
3988
+
3989
+ :where(.theme-scope)
3990
+ :where([data-block='event-registration'])
3991
+ .er-date-option:focus-within {
3992
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
3993
+ }
3994
+
3995
+ :where(.theme-scope)
3996
+ :where([data-block='event-registration'])
3997
+ .er-date-option__radio {
3998
+ flex: 0 0 auto;
3999
+ width: 1.25rem;
4000
+ height: 1.25rem;
4001
+ margin: 0;
4002
+ accent-color: rgb(var(--tb-primary));
4003
+ cursor: pointer;
4004
+ }
4005
+
4006
+ :where(.theme-scope)
4007
+ :where([data-block='event-registration'])
4008
+ .er-date-option__main {
4009
+ flex: 1 1 auto;
4010
+ min-width: 0;
4011
+ display: flex;
4012
+ flex-direction: column;
4013
+ gap: 0.125rem;
4014
+ }
4015
+
4016
+ :where(.theme-scope)
4017
+ :where([data-block='event-registration'])
4018
+ .er-date-option__date {
4019
+ font-weight: 700;
4020
+ line-height: 1.3;
4021
+ }
4022
+
4023
+ :where(.theme-scope)
4024
+ :where([data-block='event-registration'])
4025
+ .er-date-option__time {
4026
+ font-size: 0.875rem;
4027
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
4028
+ }
4029
+
4030
+ :where(.theme-scope)
4031
+ :where([data-block='event-registration'])
4032
+ .er-date-option__places {
4033
+ flex: 0 0 auto;
4034
+ padding: 0.125rem 0.5rem;
4035
+ border: 1px solid var(--er-border);
4036
+ border-radius: 999px;
4037
+ font-size: 0.75rem;
4038
+ font-weight: 700;
4039
+ white-space: nowrap;
4040
+ }
4041
+
4042
+ /* Full dates stay selectable (a guest can still reach recovery) but read as quiet */
4043
+ :where(.theme-scope)
4044
+ :where([data-block='event-registration'])
4045
+ .er-date-option--full {
4046
+ border-style: dashed;
4047
+ }
4048
+
4049
+ :where(.theme-scope)
4050
+ :where([data-block='event-registration'])
4051
+ .er-date-option--full
4052
+ :is(.er-date-option__main, .er-date-option__places) {
4053
+ opacity: 0.6;
4054
+ }
4055
+
3873
4056
  /* Capacity badges */
3874
4057
  :where(.theme-scope)
3875
4058
  :where([data-block='event-registration'])
@@ -4073,63 +4256,31 @@
4073
4256
  }
4074
4257
  }
4075
4258
 
4076
- /* Form inputs */
4077
- :where(.theme-scope) :where([data-block='event-registration']) .er-input {
4078
- width: 100%;
4079
- min-height: 2.75rem;
4080
- padding: 0.625rem 0.75rem;
4081
- border-radius: calc(var(--rb-block-radius) * 0.5);
4082
- border: 1px solid var(--er-border);
4083
- background: var(--er-control-bg);
4084
- color: var(--er-control-text);
4085
- font: inherit;
4086
- line-height: 1.4;
4087
- transition:
4088
- border-color var(--rb-block-transition) ease,
4089
- background-color var(--rb-block-transition) ease,
4090
- box-shadow var(--rb-block-transition) ease;
4091
- }
4092
-
4093
- :where(.theme-scope)
4094
- :where([data-block='event-registration'])
4095
- .er-input::placeholder {
4096
- color: var(--er-on-surface-faint);
4097
- }
4098
-
4099
- :where(.theme-scope) :where([data-block='event-registration']) .er-input:focus {
4100
- outline: none;
4101
- border-color: var(--er-border-selected);
4102
- box-shadow: 0 0 0 3px var(--er-focus-ring);
4103
- }
4259
+ /* Fields use the theme's own form-label / form-input / form-textarea
4260
+ (theme-core/src/inputs/generateInputCss.ts), like the site's form block. */
4104
4261
 
4105
4262
  :where(.theme-scope)
4106
4263
  :where([data-block='event-registration'])
4107
- .er-input--error {
4108
- border-color: var(--er-border-error);
4264
+ .er-label-optional {
4265
+ font-weight: 400;
4266
+ text-transform: none;
4267
+ letter-spacing: normal;
4268
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
4109
4269
  }
4110
4270
 
4111
4271
  :where(.theme-scope)
4112
4272
  :where([data-block='event-registration'])
4113
- .er-input--error:focus {
4114
- box-shadow: 0 0 0 3px rgba(var(--tb-destructive), 0.2);
4115
- }
4116
-
4117
- /* Form labels and errors */
4118
- :where(.theme-scope) :where([data-block='event-registration']) .er-label {
4119
- display: block;
4120
- font-size: 0.875rem;
4121
- font-weight: 500;
4122
- margin-bottom: 0.25rem;
4273
+ .er-field-hint {
4274
+ margin: 0.375rem 0 0;
4275
+ font-size: 0.8125rem;
4276
+ line-height: 1.4;
4277
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
4123
4278
  }
4124
4279
 
4125
4280
  :where(.theme-scope) :where([data-block='event-registration']) .er-consent-check {
4126
4281
  margin-top: 0.75rem;
4127
4282
  }
4128
4283
 
4129
- :where(.theme-scope) :where([data-block='event-registration']) .er-required {
4130
- color: var(--er-required);
4131
- }
4132
-
4133
4284
  :where(.theme-scope) :where([data-block='event-registration']) .er-error {
4134
4285
  font-size: 0.875rem;
4135
4286
  color: var(--er-error-text);
@@ -4138,12 +4289,14 @@
4138
4289
 
4139
4290
  /* Back button */
4140
4291
  :where(.theme-scope) :where([data-block='event-registration']) .er-back-btn {
4141
- font-size: 0.875rem;
4142
- opacity: 0.7;
4292
+ font-size: 0.9375rem;
4293
+ font-weight: 700;
4294
+ opacity: 0.8;
4143
4295
  background: none;
4144
4296
  border: none;
4145
4297
  cursor: pointer;
4146
- padding: 0;
4298
+ padding: 0 0.25rem;
4299
+ min-height: 2.75rem;
4147
4300
  transition: opacity var(--rb-block-transition) ease;
4148
4301
  }
4149
4302
 
@@ -4154,11 +4307,12 @@
4154
4307
  }
4155
4308
 
4156
4309
  /* State icon color variants (layout from registration-surface.css) */
4310
+ /* Success: a solid primary disc with an on-primary tick (issue 1581) */
4157
4311
  :where(.theme-scope)
4158
4312
  :where([data-block='event-registration'])
4159
4313
  .rb-state-icon--success {
4160
- background: var(--er-success-bg);
4161
- color: var(--er-success-text);
4314
+ background: rgb(var(--tb-primary));
4315
+ color: rgb(var(--tb-onPrimary));
4162
4316
  }
4163
4317
 
4164
4318
  :where(.theme-scope)
@@ -4207,14 +4361,15 @@
4207
4361
 
4208
4362
  /* Typography */
4209
4363
  :where(.theme-scope) :where([data-block='event-registration']) .er-title {
4210
- font-size: var(--er-step-title-size, 1.5rem);
4211
- font-weight: 600;
4212
- line-height: 1.3;
4364
+ font-family: var(--font-heading, inherit);
4365
+ font-size: var(--er-step-title-size, 1.75rem);
4366
+ line-height: 1.15;
4213
4367
  }
4214
4368
 
4369
+ /* Confirmation and error titles: never smaller than a step's heading */
4215
4370
  :where(.theme-scope) :where([data-block='event-registration']) .er-title--lg {
4216
- font-size: 1.25rem;
4217
- line-height: 1.75rem;
4371
+ font-size: calc(var(--er-step-title-size, 1.75rem) * 1.15);
4372
+ line-height: 1.1;
4218
4373
  }
4219
4374
 
4220
4375
  :where(.theme-scope) :where([data-block='event-registration']) .er-text {
@@ -4440,7 +4595,7 @@
4440
4595
  padding: 1.25rem;
4441
4596
  border: 1px solid var(--er-border);
4442
4597
  border-radius: var(--rb-block-radius);
4443
- background: rgba(var(--tb-surface), 0.5);
4598
+ background: rgb(var(--tb-surface) / 0.5);
4444
4599
  text-align: center;
4445
4600
  }
4446
4601
 
@@ -4545,7 +4700,7 @@
4545
4700
  :where([data-block='event-registration'])
4546
4701
  .er-payment-option:hover {
4547
4702
  border-color: var(--er-payment-border-hover);
4548
- box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
4703
+ box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
4549
4704
  }
4550
4705
 
4551
4706
  :where(.theme-scope)
@@ -4745,99 +4900,6 @@
4745
4900
  color: var(--er-on-surface);
4746
4901
  }
4747
4902
 
4748
- /* Two-column layout (Desktop: sidebar, Mobile: stacked) */
4749
- :where(.theme-scope) :where([data-block='event-registration']) .er-layout {
4750
- display: grid;
4751
- gap: 1.5rem;
4752
- /* Mobile: single column, summary at top */
4753
- grid-template-columns: 1fr;
4754
- grid-template-areas:
4755
- 'summary'
4756
- 'main';
4757
- }
4758
-
4759
- @media (min-width: 768px) {
4760
- :where(.theme-scope) :where([data-block='event-registration']) .er-layout {
4761
- /* Desktop: main + sidebar */
4762
- grid-template-columns: 1fr 300px;
4763
- grid-template-areas: 'main summary';
4764
- }
4765
- }
4766
-
4767
- :where(.theme-scope) :where([data-block='event-registration']) .er-layout-main {
4768
- grid-area: main;
4769
- }
4770
-
4771
- /* OrderSummary positions via grid area */
4772
- :where(.theme-scope)
4773
- :where([data-block='event-registration'])
4774
- .er-layout
4775
- > .er-summary {
4776
- grid-area: summary;
4777
- }
4778
-
4779
- /* Step indicator */
4780
- :where(.theme-scope) :where([data-block='event-registration']) .er-steps-nav {
4781
- margin-bottom: 1.5rem;
4782
- }
4783
-
4784
- /* Step indicator internals: styled by the shared .rb-steps / .rb-step-*
4785
- family (registration-surface.css) via the --rb-reg-step-* mappings in the
4786
- event-registration var generator; er-* classes remain in markup as hooks.
4787
- Note: .er-steps-nav above is intentionally retained — its source position
4788
- keeps the wizard's 1.5rem step margin winning over the SSR shell's
4789
- 1.25rem .er-registration-shell__steps override. */
4790
-
4791
- /* Sticky order summary */
4792
- :where(.theme-scope) :where([data-block='event-registration']) .er-summary {
4793
- padding: 1.25rem;
4794
- background: var(--er-summary-bg);
4795
- border: 1px solid var(--er-summary-border);
4796
- border-radius: var(--rb-block-radius);
4797
- display: flex;
4798
- flex-direction: column;
4799
- justify-content: center;
4800
- align-items: center;
4801
- text-align: center;
4802
- min-height: 140px;
4803
- }
4804
-
4805
- @media (min-width: 768px) {
4806
- :where(.theme-scope) :where([data-block='event-registration']) .er-summary {
4807
- position: sticky;
4808
- top: 1rem;
4809
- }
4810
- }
4811
-
4812
- :where(.theme-scope)
4813
- :where([data-block='event-registration'])
4814
- .er-summary-event {
4815
- font-weight: 600;
4816
- margin-bottom: 0.25rem;
4817
- }
4818
-
4819
- :where(.theme-scope)
4820
- :where([data-block='event-registration'])
4821
- .er-summary-date {
4822
- font-size: 0.875rem;
4823
- color: rgba(var(--tb-text), 0.7);
4824
- }
4825
-
4826
- :where(.theme-scope)
4827
- :where([data-block='event-registration'])
4828
- .er-summary-tickets {
4829
- font-size: 0.875rem;
4830
- margin-top: 0.75rem;
4831
- }
4832
-
4833
- :where(.theme-scope)
4834
- :where([data-block='event-registration'])
4835
- .er-summary-price {
4836
- font-size: 1.25rem;
4837
- font-weight: 700;
4838
- margin-top: 0.5rem;
4839
- }
4840
-
4841
4903
  /* Guest details section */
4842
4904
  :where(.theme-scope)
4843
4905
  :where([data-block='event-registration'])
@@ -4898,15 +4960,6 @@
4898
4960
  border-top: 1px solid var(--er-border);
4899
4961
  }
4900
4962
 
4901
- @media (min-width: 768px) {
4902
- :where(.theme-scope)
4903
- :where([data-block='event-registration'])
4904
- .er-guest-card {
4905
- grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
4906
- column-gap: 1rem;
4907
- align-items: start;
4908
- }
4909
- }
4910
4963
 
4911
4964
  /* Shake animation for validation errors */
4912
4965
  @keyframes er-shake {
@@ -5228,8 +5281,8 @@
5228
5281
  :where(.theme-scope)
5229
5282
  :where([data-block='event-registration'])
5230
5283
  .er-notice--info {
5231
- background-color: rgba(var(--tb-primary-100), 0.5);
5232
- border: 1px solid rgba(var(--tb-primary-300), 0.5);
5284
+ background-color: rgb(var(--tb-primary-100) / 0.5);
5285
+ border: 1px solid rgb(var(--tb-primary-300) / 0.5);
5233
5286
  color: rgb(var(--tb-primary-800));
5234
5287
  }
5235
5288
 
@@ -5313,12 +5366,40 @@
5313
5366
  :where([data-block='event-registration'])
5314
5367
  .er-payment-layout-main {
5315
5368
  grid-area: main;
5369
+ /* A column, so an optional sign-in line can settle at the foot of the step. */
5370
+ display: flex;
5371
+ flex-direction: column;
5372
+ }
5373
+
5374
+ :where(.theme-scope)
5375
+ :where([data-block='event-registration'])
5376
+ .er-payment-layout-main
5377
+ > * {
5378
+ flex-shrink: 0;
5379
+ }
5380
+
5381
+ :where(.theme-scope)
5382
+ :where([data-block='event-registration'])
5383
+ .er-payment-layout-main
5384
+ > .er-portal-auth[data-placement='before'] {
5385
+ margin-bottom: 1.5rem;
5386
+ }
5387
+
5388
+ /* The optional sign-in line: pinned to the foot of the step behind a hairline,
5389
+ and never closer than 1.5rem to the step's content. */
5390
+ :where(.theme-scope)
5391
+ :where([data-block='event-registration'])
5392
+ .er-payment-layout-main
5393
+ > .er-portal-auth[data-placement='after'] {
5394
+ margin-top: auto;
5395
+ padding-top: 1rem;
5396
+ border-top: 1px solid var(--er-border);
5316
5397
  }
5317
5398
 
5318
5399
  :where(.theme-scope)
5319
5400
  :where([data-block='event-registration'])
5320
5401
  .er-payment-layout-main
5321
- > .er-portal-auth {
5402
+ > :has(+ .er-portal-auth[data-placement='after']) {
5322
5403
  margin-bottom: 1.5rem;
5323
5404
  }
5324
5405
 
@@ -5338,7 +5419,7 @@
5338
5419
  }
5339
5420
 
5340
5421
  /* =============================================================================
5341
- * Payment Tiles Grid
5422
+ * Attendance mode tiles (in person / online)
5342
5423
  * =============================================================================
5343
5424
  */
5344
5425
 
@@ -5383,9 +5464,9 @@
5383
5464
 
5384
5465
  :where(.theme-scope)
5385
5466
  :where([data-block='event-registration'])
5386
- .er-payment-tile:hover:not([aria-disabled='true']) {
5467
+ .er-payment-tile:hover {
5387
5468
  border-color: var(--er-payment-border-hover);
5388
- box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
5469
+ box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
5389
5470
  }
5390
5471
 
5391
5472
  :where(.theme-scope)
@@ -5396,89 +5477,6 @@
5396
5477
  box-shadow: 0 0 0 1px var(--er-payment-border-selected);
5397
5478
  }
5398
5479
 
5399
- :where(.theme-scope)
5400
- :where([data-block='event-registration'])
5401
- .er-payment-tile--disabled {
5402
- cursor: not-allowed;
5403
- }
5404
-
5405
- :where(.theme-scope)
5406
- :where([data-block='event-registration'])
5407
- .er-payment-tile--disabled
5408
- > :not(.er-payment-tooltip) {
5409
- opacity: 0.5;
5410
- }
5411
-
5412
- :where(.theme-scope)
5413
- :where([data-block='event-registration'])
5414
- .er-payment-tile--disabled.er-payment-tile--selected {
5415
- border-color: var(--er-payment-border);
5416
- background-color: transparent;
5417
- }
5418
-
5419
- :where(.theme-scope)
5420
- :where([data-block='event-registration'])
5421
- .er-payment-tile--disabled:hover {
5422
- border-color: var(--er-payment-border);
5423
- }
5424
-
5425
- /* Tooltip styling for disabled payment tiles */
5426
- :where(.theme-scope)
5427
- :where([data-block='event-registration'])
5428
- .er-payment-tile[aria-disabled='true'] {
5429
- position: relative;
5430
- }
5431
-
5432
- :where(.theme-scope)
5433
- :where([data-block='event-registration'])
5434
- .er-payment-tooltip {
5435
- display: none;
5436
- position: absolute;
5437
- bottom: 100%;
5438
- left: 50%;
5439
- transform: translateX(-50%);
5440
- margin-bottom: 0.5rem;
5441
- padding: 0.5rem 0.75rem;
5442
- background: rgb(var(--tb-text));
5443
- color: rgb(var(--tb-background));
5444
- font-size: 0.8125rem;
5445
- font-weight: 500;
5446
- border-radius: calc(var(--rb-block-radius) * 0.5);
5447
- white-space: normal;
5448
- max-width: 16rem;
5449
- line-height: 1.35;
5450
- text-align: center;
5451
- box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
5452
- z-index: 10;
5453
- }
5454
-
5455
- :where(.theme-scope)
5456
- :where([data-block='event-registration'])
5457
- .er-payment-tile--disabled:hover
5458
- .er-payment-tooltip {
5459
- display: block;
5460
- }
5461
-
5462
- :where(.theme-scope)
5463
- :where([data-block='event-registration'])
5464
- .er-payment-tile-icon {
5465
- font-size: 1.5rem;
5466
- line-height: 1;
5467
- /* SVG icon sizing */
5468
- display: flex;
5469
- align-items: center;
5470
- justify-content: center;
5471
- }
5472
-
5473
- :where(.theme-scope)
5474
- :where([data-block='event-registration'])
5475
- .er-payment-tile-icon
5476
- svg {
5477
- width: 24px;
5478
- height: 24px;
5479
- color: currentColor;
5480
- }
5481
-
5482
5480
  :where(.theme-scope)
5483
5481
  :where([data-block='event-registration'])
5484
5482
  .er-payment-tile-label {
@@ -5495,27 +5493,6 @@
5495
5493
  line-height: 1.25;
5496
5494
  }
5497
5495
 
5498
- :where(.theme-scope)
5499
- :where([data-block='event-registration'])
5500
- .er-payment-tile-check {
5501
- position: absolute;
5502
- top: 0.5rem;
5503
- right: 0.5rem;
5504
- }
5505
-
5506
- /* Upsell tiles have a subtle indicator */
5507
- :where(.theme-scope)
5508
- :where([data-block='event-registration'])
5509
- .er-payment-tile--upsell {
5510
- border-style: dashed;
5511
- }
5512
-
5513
- :where(.theme-scope)
5514
- :where([data-block='event-registration'])
5515
- .er-payment-tile--upsell.er-payment-tile--selected {
5516
- border-style: solid;
5517
- }
5518
-
5519
5496
  /* =============================================================================
5520
5497
  * Order Summary Bar (horizontal, in footer)
5521
5498
  * Layout: [Title + meta on left] [Price on right]
@@ -5523,14 +5500,12 @@
5523
5500
  */
5524
5501
 
5525
5502
  :where(.theme-scope) :where([data-block='event-registration']) .er-summary-bar {
5503
+ /* One row under the footer's hairline: what's booked, then the total
5504
+ (issue 1581). */
5526
5505
  display: flex;
5527
5506
  justify-content: space-between;
5528
- align-items: flex-start;
5507
+ align-items: baseline;
5529
5508
  gap: 1rem;
5530
- padding: 0.875rem 1rem;
5531
- background: var(--er-surface-muted);
5532
- border: 1px solid var(--er-summary-border);
5533
- border-radius: calc(var(--rb-block-radius) * 0.75);
5534
5509
  }
5535
5510
 
5536
5511
  :where(.theme-scope)
@@ -5553,18 +5528,30 @@
5553
5528
  :where(.theme-scope)
5554
5529
  :where([data-block='event-registration'])
5555
5530
  .er-summary-bar-meta {
5556
- font-size: 0.8125rem;
5557
- color: rgba(var(--tb-text), 0.7);
5531
+ font-size: 0.9375rem;
5558
5532
  line-height: 1.35;
5559
5533
  }
5560
5534
 
5535
+ :where(.theme-scope)
5536
+ :where([data-block='event-registration'])
5537
+ .er-summary-bar-meta
5538
+ > span
5539
+ + span::before {
5540
+ content: ' · ';
5541
+ }
5542
+
5543
+ :where(.theme-scope)
5544
+ :where([data-block='event-registration'])
5545
+ .er-summary-bar-schedule {
5546
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
5547
+ }
5548
+
5561
5549
  :where(.theme-scope)
5562
5550
  :where([data-block='event-registration'])
5563
5551
  .er-summary-bar-price {
5564
- font-size: 1rem;
5552
+ font-size: 1.125rem;
5565
5553
  font-weight: 700;
5566
5554
  flex-shrink: 0;
5567
- display: block;
5568
5555
  text-align: right;
5569
5556
  }
5570
5557
 
@@ -5572,12 +5559,22 @@
5572
5559
  :where([data-block='event-registration'])
5573
5560
  .er-summary-bar-pricing {
5574
5561
  display: flex;
5575
- flex-direction: column;
5576
- align-items: flex-end;
5577
- gap: 0.125rem;
5562
+ flex-wrap: wrap;
5563
+ justify-content: flex-end;
5564
+ align-items: baseline;
5565
+ column-gap: 0.5rem;
5566
+ row-gap: 0.125rem;
5578
5567
  text-align: right;
5579
5568
  }
5580
5569
 
5570
+ /* Notes under the total take their own line */
5571
+ :where(.theme-scope)
5572
+ :where([data-block='event-registration'])
5573
+ .er-summary-bar-pricing
5574
+ > div {
5575
+ flex-basis: 100%;
5576
+ }
5577
+
5581
5578
  /* Product section in summary bar (for pass/membership selection) */
5582
5579
  :where(.theme-scope)
5583
5580
  :where([data-block='event-registration'])
@@ -5623,7 +5620,7 @@
5623
5620
  :where([data-block='event-registration'])
5624
5621
  .er-summary-bar-product-detail {
5625
5622
  font-size: 0.8125rem;
5626
- color: rgba(var(--tb-text), 0.6);
5623
+ color: rgb(var(--tb-text) / 0.6);
5627
5624
  margin-top: 0.125rem;
5628
5625
  }
5629
5626
 
@@ -5640,9 +5637,8 @@
5640
5637
  :where(.theme-scope)
5641
5638
  :where([data-block='event-registration'])
5642
5639
  .er-summary-bar-price--struck {
5643
- display: block;
5644
5640
  text-decoration: line-through;
5645
- color: rgba(var(--tb-text), 0.5);
5641
+ color: rgb(var(--tb-text) / 0.5);
5646
5642
  font-size: 0.9375rem;
5647
5643
  font-weight: 500;
5648
5644
  text-align: right;
@@ -5664,19 +5660,25 @@
5664
5660
  */
5665
5661
 
5666
5662
  :where(.theme-scope) :where([data-block='event-registration']) .er-portal-auth {
5667
- padding: 1.25rem;
5668
- background: rgba(var(--tb-surface), 0.5);
5669
- border: 1px solid var(--er-border);
5670
- border-radius: var(--rb-block-radius);
5671
- color: var(--er-on-surface);
5663
+ /* The surface the panel paints publishes its own foreground; --tb-onSurface
5664
+ can be a different (near-black) colour from the site's text. */
5665
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
5666
+ font-size: 0.9375rem;
5667
+ line-height: 1.5;
5672
5668
  }
5673
5669
 
5674
5670
  :where(.theme-scope)
5675
5671
  :where([data-block='event-registration'])
5676
5672
  .er-portal-auth-title {
5677
5673
  font-weight: 600;
5678
- font-size: 1rem;
5679
- margin: 0 0 0.5rem 0;
5674
+ margin: 0 0 0.25rem 0;
5675
+ }
5676
+
5677
+ :where(.theme-scope)
5678
+ :where([data-block='event-registration'])
5679
+ .er-portal-auth[data-placement='after']
5680
+ .er-portal-auth-title {
5681
+ margin: 0;
5680
5682
  }
5681
5683
 
5682
5684
  :where(.theme-scope)
@@ -5688,6 +5690,15 @@
5688
5690
  line-height: 1.4;
5689
5691
  }
5690
5692
 
5693
+ :where(.theme-scope)
5694
+ :where([data-block='event-registration'])
5695
+ .er-portal-auth
5696
+ .er-portal-auth-text {
5697
+ color: inherit;
5698
+ margin: 0;
5699
+ line-height: inherit;
5700
+ }
5701
+
5691
5702
  :where(.theme-scope)
5692
5703
  :where([data-block='event-registration'])
5693
5704
  .er-portal-auth-link {
@@ -5737,7 +5748,7 @@
5737
5748
  left: 0;
5738
5749
  right: 0;
5739
5750
  bottom: 0;
5740
- background: rgba(var(--tb-scrim), 0.5);
5751
+ background: var(--rb-modal-overlay-bg);
5741
5752
  display: flex;
5742
5753
  align-items: center;
5743
5754
  justify-content: center;
@@ -5752,7 +5763,7 @@
5752
5763
  max-width: 400px;
5753
5764
  width: 100%;
5754
5765
  position: relative;
5755
- box-shadow: 0 10px 25px rgba(var(--tb-shadow), 0.2);
5766
+ box-shadow: 0 10px 25px rgb(var(--tb-shadow) / 0.2);
5756
5767
  }
5757
5768
 
5758
5769
  :where(.theme-scope) :where([data-block='event-registration']) .er-modal-close {
@@ -5764,7 +5775,7 @@
5764
5775
  font-size: 1.5rem;
5765
5776
  line-height: 1;
5766
5777
  cursor: pointer;
5767
- color: rgba(var(--tb-text), 0.5);
5778
+ color: rgb(var(--tb-text) / 0.5);
5768
5779
  padding: 0.25rem;
5769
5780
  }
5770
5781
 
@@ -5830,97 +5841,246 @@
5830
5841
  :where(.theme-scope)
5831
5842
  :where([data-block='event-registration'])
5832
5843
  .er-modal-btn--secondary:hover {
5833
- background: rgba(var(--tb-text), 0.05);
5844
+ background: rgb(var(--tb-text) / 0.05);
5834
5845
  }
5835
5846
 
5836
- /* In-flow booking teaser (sits at the block's position in the page) */
5847
+ /* Booking card: in the page where the editor placed the block (issue 1581) */
5837
5848
  :where(.theme-scope)
5838
5849
  :where([data-block='event-registration'])
5839
- .er-booking-teaser {
5850
+ .er-booking-card {
5840
5851
  display: flex;
5841
- flex-wrap: wrap;
5842
- align-items: center;
5843
- justify-content: space-between;
5844
- gap: 1rem 1.5rem;
5845
- padding: 1.25rem 1.5rem;
5852
+ flex-direction: column;
5853
+ gap: 1.125rem;
5854
+ padding: 1.5rem 1.75rem;
5846
5855
  border: 1px solid var(--er-border);
5847
- border-radius: var(--rb-block-radius);
5848
- background: var(--er-event-card-bg);
5856
+ border-radius: calc(var(--rb-block-radius) * 1.25);
5857
+ background: rgb(var(--tb-surface));
5849
5858
  /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
5850
5859
  }
5851
5860
 
5852
5861
  :where(.theme-scope)
5853
5862
  :where([data-block='event-registration'])
5854
- .er-booking-teaser__info {
5863
+ .er-booking-card__row {
5855
5864
  display: flex;
5856
- flex-direction: column;
5857
- gap: 0.25rem;
5858
- min-width: 0;
5865
+ align-items: center;
5866
+ gap: 1.25rem 1.75rem;
5867
+ flex-wrap: wrap;
5859
5868
  }
5860
5869
 
5861
5870
  :where(.theme-scope)
5862
5871
  :where([data-block='event-registration'])
5863
- .er-booking-teaser__title {
5864
- font-size: 1.0625rem;
5865
- font-weight: 700;
5866
- line-height: 1.2;
5872
+ .er-booking-card__tile {
5873
+ flex: 0 0 auto;
5874
+ display: flex;
5875
+ flex-direction: column;
5876
+ align-items: center;
5877
+ justify-content: center;
5878
+ gap: 0.125rem;
5879
+ width: 4.25rem;
5880
+ height: 4.75rem;
5881
+ border-radius: var(--rb-block-radius);
5882
+ background: rgb(var(--tb-primary));
5883
+ color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
5867
5884
  }
5868
5885
 
5869
5886
  :where(.theme-scope)
5870
5887
  :where([data-block='event-registration'])
5871
- .er-booking-teaser__meta {
5872
- font-size: 0.9375rem;
5873
- line-height: 1.3;
5874
- opacity: 0.75;
5888
+ .er-booking-card__tile-month {
5889
+ font-size: 0.75rem;
5890
+ font-weight: 800;
5891
+ letter-spacing: 0.1em;
5875
5892
  }
5876
5893
 
5877
5894
  :where(.theme-scope)
5878
5895
  :where([data-block='event-registration'])
5879
- .er-booking-teaser__tickets {
5880
- display: flex;
5881
- flex-direction: column;
5882
- gap: 0.375rem;
5883
- margin-top: 0.5rem;
5884
- padding-top: 0.625rem;
5885
- border-top: 1px solid var(--er-border);
5896
+ .er-booking-card__tile-day {
5897
+ font-family: var(--font-heading, inherit);
5898
+ font-size: 2rem;
5899
+ line-height: 1;
5886
5900
  }
5887
5901
 
5888
5902
  :where(.theme-scope)
5889
5903
  :where([data-block='event-registration'])
5890
- .er-booking-teaser__ticket {
5891
- display: flex;
5892
- align-items: baseline;
5893
- justify-content: space-between;
5894
- gap: 1rem;
5895
- font-size: 0.9375rem;
5896
- line-height: 1.35;
5904
+ .er-booking-card__badge {
5905
+ flex: 0 0 auto;
5906
+ display: inline-flex;
5907
+ align-items: center;
5908
+ justify-content: center;
5909
+ width: 3rem;
5910
+ height: 3rem;
5911
+ border-radius: 999px;
5912
+ background: rgb(var(--tb-primary));
5913
+ color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
5897
5914
  }
5898
5915
 
5899
5916
  :where(.theme-scope)
5900
5917
  :where([data-block='event-registration'])
5901
- .er-booking-teaser__ticket-name {
5918
+ .er-booking-card__body {
5919
+ flex: 1 1 16rem;
5902
5920
  min-width: 0;
5921
+ display: flex;
5922
+ flex-direction: column;
5923
+ gap: 0.25rem;
5924
+ }
5925
+
5926
+ :where(.theme-scope)
5927
+ :where([data-block='event-registration'])
5928
+ .er-booking-card__when {
5929
+ margin: 0;
5930
+ font-size: 1.125rem;
5931
+ font-weight: 700;
5932
+ line-height: 1.3;
5903
5933
  }
5904
5934
 
5905
5935
  :where(.theme-scope)
5906
5936
  :where([data-block='event-registration'])
5907
- .er-booking-teaser__cta {
5937
+ .er-booking-card__venue,
5938
+ :where(.theme-scope)
5939
+ :where([data-block='event-registration'])
5940
+ .er-booking-card__facts {
5941
+ margin: 0;
5942
+ font-size: 0.9375rem;
5943
+ line-height: 1.45;
5944
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
5945
+ }
5946
+
5947
+ :where(.theme-scope)
5948
+ :where([data-block='event-registration'])
5949
+ .er-booking-card__facts {
5950
+ margin-top: 0.25rem;
5951
+ font-weight: 600;
5952
+ color: inherit;
5953
+ }
5954
+
5955
+ :where(.theme-scope)
5956
+ :where([data-block='event-registration'])
5957
+ .er-booking-card__cta {
5908
5958
  flex: 0 0 auto;
5909
5959
  }
5910
5960
 
5911
- /* Fixed, full-width sticky booking bar (content-agnostic; sits above page flow) */
5912
- :where(.theme-scope) :where([data-block='event-registration']) .er-booking-bar {
5961
+ :where(.theme-scope)
5962
+ :where([data-block='event-registration'])
5963
+ .er-booking-card__dates {
5964
+ display: flex;
5965
+ flex-wrap: wrap;
5966
+ align-items: center;
5967
+ gap: 0.625rem;
5968
+ padding-top: 1.125rem;
5969
+ border-top: 1px solid var(--er-border);
5970
+ }
5971
+
5972
+ :where(.theme-scope)
5973
+ :where([data-block='event-registration'])
5974
+ .er-booking-card__dates-label {
5975
+ margin-right: 0.375rem;
5976
+ font-size: 0.8125rem;
5977
+ font-weight: 800;
5978
+ letter-spacing: 0.08em;
5979
+ text-transform: uppercase;
5980
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
5981
+ }
5982
+
5983
+ :where(.theme-scope)
5984
+ :where([data-block='event-registration'])
5985
+ .er-booking-card__date {
5986
+ min-height: 2.75rem;
5987
+ padding: 0 1rem;
5988
+ border: 1px solid var(--er-border);
5989
+ border-radius: 999px;
5990
+ background: var(--er-control-bg);
5991
+ color: inherit;
5992
+ font: inherit;
5993
+ font-size: 0.875rem;
5994
+ font-weight: 700;
5995
+ cursor: pointer;
5996
+ transition: border-color var(--rb-block-transition) ease;
5997
+ }
5998
+
5999
+ :where(.theme-scope)
6000
+ :where([data-block='event-registration'])
6001
+ .er-booking-card__date:hover {
6002
+ border-color: rgb(var(--tb-primary));
6003
+ }
6004
+
6005
+ :where(.theme-scope)
6006
+ :where([data-block='event-registration'])
6007
+ .er-booking-card__date[data-full] {
6008
+ border-style: dashed;
6009
+ background: transparent;
6010
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
6011
+ }
6012
+
6013
+ :where(.theme-scope)
6014
+ :where([data-block='event-registration'])
6015
+ .er-booking-card__more {
6016
+ font-size: 0.875rem;
6017
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
6018
+ }
6019
+
6020
+ /* Booking bar: fixed to the bottom once the visitor is past the first screen.
6021
+ It stays mounted and slides: the card pushes it down in step as it rises
6022
+ from the bottom of the screen (--er-bar-push, set per frame), and it slides
6023
+ back up when the visitor scrolls past the card (issue 1581). */
6024
+ :where(.theme-scope)
6025
+ :where([data-block='event-registration'])
6026
+ .er-booking-bar {
5913
6027
  position: fixed;
5914
6028
  left: 0;
5915
6029
  right: 0;
5916
6030
  bottom: 0;
5917
6031
  z-index: 12000;
5918
- padding: 0.75rem max(1rem, env(safe-area-inset-right))
5919
- max(0.75rem, env(safe-area-inset-bottom))
6032
+ padding: 0.625rem max(1rem, env(safe-area-inset-right))
6033
+ max(0.625rem, env(safe-area-inset-bottom))
5920
6034
  max(1rem, env(safe-area-inset-left));
5921
- background: rgb(var(--tb-background));
6035
+ background: rgb(var(--tb-surface));
5922
6036
  border-top: 1px solid var(--er-border);
5923
- box-shadow: 0 -10px 30px rgba(var(--tb-shadow), 0.16);
6037
+ box-shadow: 0 -8px 28px rgb(var(--tb-shadow) / 0.14);
6038
+ /* Set per frame on the element while the card pushes the bar off. */
6039
+ --er-bar-push: 0px;
6040
+ transform: translateY(var(--er-bar-push));
6041
+ transition:
6042
+ transform 220ms ease,
6043
+ visibility 0s linear 0s;
6044
+ /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
6045
+ }
6046
+
6047
+ :where(.theme-scope)
6048
+ :where([data-block='event-registration'])
6049
+ .er-booking-bar[data-state='hidden'] {
6050
+ transform: translateY(calc(100% + 1.75rem));
6051
+ visibility: hidden;
6052
+ transition:
6053
+ transform 220ms ease,
6054
+ visibility 0s linear 220ms;
6055
+ }
6056
+
6057
+ :where(.theme-scope)
6058
+ :where([data-block='event-registration'])
6059
+ .er-booking-bar[data-pushing='true'] {
6060
+ /* Following the card frame by frame: no easing to lag behind. */
6061
+ transition: none;
6062
+ }
6063
+
6064
+ @media (prefers-reduced-motion: reduce) {
6065
+ :where(.theme-scope)
6066
+ :where([data-block='event-registration'])
6067
+ .er-booking-bar {
6068
+ transform: none;
6069
+ transition:
6070
+ opacity 150ms ease,
6071
+ visibility 0s linear 0s;
6072
+ }
6073
+
6074
+ :where(.theme-scope)
6075
+ :where([data-block='event-registration'])
6076
+ .er-booking-bar[data-state='hidden'] {
6077
+ transform: none;
6078
+ opacity: 0;
6079
+ transition:
6080
+ opacity 150ms ease,
6081
+ visibility 0s linear 150ms;
6082
+ }
6083
+
5924
6084
  }
5925
6085
 
5926
6086
  :where(.theme-scope)
@@ -5928,27 +6088,28 @@
5928
6088
  .er-booking-bar__inner {
5929
6089
  display: flex;
5930
6090
  align-items: center;
5931
- justify-content: space-between;
5932
- gap: 1rem;
6091
+ gap: 0.75rem 1.5rem;
5933
6092
  width: 100%;
5934
- max-width: 72rem;
6093
+ max-width: 77rem;
6094
+ min-height: 2.75rem;
5935
6095
  margin-inline: auto;
5936
6096
  }
5937
6097
 
5938
6098
  :where(.theme-scope)
5939
6099
  :where([data-block='event-registration'])
5940
6100
  .er-booking-bar__info {
6101
+ flex: 1 1 auto;
5941
6102
  display: flex;
5942
- flex-direction: column;
5943
- gap: 0.125rem;
6103
+ align-items: center;
6104
+ gap: 0.25rem 0.875rem;
5944
6105
  min-width: 0;
5945
6106
  }
5946
6107
 
5947
6108
  :where(.theme-scope)
5948
6109
  :where([data-block='event-registration'])
5949
6110
  .er-booking-bar__title {
5950
- font-size: 0.95rem;
5951
- font-weight: 700;
6111
+ font-family: var(--font-heading, inherit);
6112
+ font-size: 1.25rem;
5952
6113
  line-height: 1.2;
5953
6114
  white-space: nowrap;
5954
6115
  overflow: hidden;
@@ -5958,18 +6119,201 @@
5958
6119
  :where(.theme-scope)
5959
6120
  :where([data-block='event-registration'])
5960
6121
  .er-booking-bar__meta {
5961
- font-size: 0.8125rem;
5962
- line-height: 1.25;
5963
- opacity: 0.75;
6122
+ display: block;
6123
+ min-width: 0;
6124
+ font-size: 0.9375rem;
6125
+ line-height: 1.3;
6126
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.75));
5964
6127
  white-space: nowrap;
5965
6128
  overflow: hidden;
5966
6129
  text-overflow: ellipsis;
5967
6130
  }
5968
6131
 
6132
+ /* Facts are set apart by a thin muted rule rather than a dot (issue 1581) */
6133
+ :where(.theme-scope)
6134
+ :where([data-block='event-registration'])
6135
+ .er-booking-bar__divider {
6136
+ display: inline-block;
6137
+ width: 0;
6138
+ height: 0.875em;
6139
+ margin-inline: 0.75rem;
6140
+ border-left: 1px solid var(--er-border);
6141
+ vertical-align: -0.0625em;
6142
+ }
6143
+
6144
+ :where(.theme-scope)
6145
+ :where([data-block='event-registration'])
6146
+ .er-booking-bar__fact--price {
6147
+ font-weight: 600;
6148
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
6149
+ }
6150
+
6151
+ :where(.theme-scope)
6152
+ :where([data-block='event-registration'])
6153
+ .er-booking-bar[data-entry='inProgress'] .er-booking-bar__meta {
6154
+ font-weight: 600;
6155
+ color: rgb(var(--tb-primary));
6156
+ }
6157
+
6158
+ :where(.theme-scope)
6159
+ :where([data-block='event-registration'])
6160
+ .er-booking-bar__progress {
6161
+ flex: 0 0 7.5rem;
6162
+ height: 4px;
6163
+ border-radius: 4px;
6164
+ background: rgb(var(--tb-text) / 0.12);
6165
+ overflow: hidden;
6166
+ }
6167
+
6168
+ :where(.theme-scope)
6169
+ :where([data-block='event-registration'])
6170
+ .er-booking-bar__progress-fill {
6171
+ display: block;
6172
+ height: 100%;
6173
+ border-radius: 4px;
6174
+ background: rgb(var(--tb-primary));
6175
+ }
6176
+
5969
6177
  :where(.theme-scope)
5970
6178
  :where([data-block='event-registration'])
5971
6179
  .er-booking-bar__cta {
5972
6180
  flex: 0 0 auto;
6181
+ white-space: nowrap;
6182
+ }
6183
+
6184
+ /* Booked or waitlisted: one quiet status line; the whole bar leads back to the card */
6185
+ :where(.theme-scope)
6186
+ :where([data-block='event-registration'])
6187
+ .er-booking-bar__status {
6188
+ display: flex;
6189
+ align-items: center;
6190
+ gap: 0.625rem;
6191
+ width: 100%;
6192
+ min-width: 0;
6193
+ min-height: 2.75rem;
6194
+ padding: 0;
6195
+ border: 0;
6196
+ background: transparent;
6197
+ color: inherit;
6198
+ font: inherit;
6199
+ font-size: 0.9375rem;
6200
+ line-height: 1.3;
6201
+ text-align: start;
6202
+ cursor: pointer;
6203
+ }
6204
+
6205
+ :where(.theme-scope)
6206
+ :where([data-block='event-registration'])
6207
+ .er-booking-bar__status:focus-visible {
6208
+ outline: 2px solid rgb(var(--tb-primary));
6209
+ outline-offset: 4px;
6210
+ border-radius: 4px;
6211
+ }
6212
+
6213
+ :where(.theme-scope)
6214
+ :where([data-block='event-registration'])
6215
+ .er-booking-bar__check {
6216
+ flex: 0 0 auto;
6217
+ display: inline-flex;
6218
+ align-items: center;
6219
+ justify-content: center;
6220
+ width: 1.375rem;
6221
+ height: 1.375rem;
6222
+ border-radius: 999px;
6223
+ background: rgb(var(--tb-primary));
6224
+ color: rgb(var(--tb-onPrimary));
6225
+ }
6226
+
6227
+ :where(.theme-scope)
6228
+ :where([data-block='event-registration'])
6229
+ .er-booking-bar__status-text {
6230
+ display: flex;
6231
+ align-items: center;
6232
+ min-width: 0;
6233
+ white-space: nowrap;
6234
+ }
6235
+
6236
+ :where(.theme-scope)
6237
+ :where([data-block='event-registration'])
6238
+ .er-booking-bar__status-title {
6239
+ flex: 0 0 auto;
6240
+ font-weight: 700;
6241
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
6242
+ }
6243
+
6244
+ @media (max-width: 639px) {
6245
+ /* Phones: the title or status on the first line, the facts smaller and
6246
+ quieter below it, beside a compact button (issue 1581). */
6247
+ :where(.theme-scope)
6248
+ :where([data-block='event-registration'])
6249
+ .er-booking-bar__info {
6250
+ flex-direction: column;
6251
+ align-items: flex-start;
6252
+ gap: 0.125rem;
6253
+ }
6254
+
6255
+ :where(.theme-scope)
6256
+ :where([data-block='event-registration'])
6257
+ .er-booking-bar__title {
6258
+ max-width: 100%;
6259
+ font-family: inherit;
6260
+ font-size: 0.9375rem;
6261
+ font-weight: 700;
6262
+ line-height: 1.25;
6263
+ }
6264
+
6265
+ :where(.theme-scope)
6266
+ :where([data-block='event-registration'])
6267
+ .er-booking-bar__meta {
6268
+ max-width: 100%;
6269
+ font-size: 0.8125rem;
6270
+ }
6271
+
6272
+ :where(.theme-scope)
6273
+ :where([data-block='event-registration'])
6274
+ .er-booking-bar__divider {
6275
+ margin-inline: 0.5rem;
6276
+ }
6277
+
6278
+ :where(.theme-scope)
6279
+ :where([data-block='event-registration'])
6280
+ .er-booking-bar__progress {
6281
+ flex-basis: auto;
6282
+ width: 6rem;
6283
+ }
6284
+
6285
+ :where(.theme-scope)
6286
+ :where([data-block='event-registration'])
6287
+ .er-booking-bar__status-text {
6288
+ flex-direction: column;
6289
+ align-items: flex-start;
6290
+ gap: 0.125rem;
6291
+ }
6292
+
6293
+ :where(.theme-scope)
6294
+ :where([data-block='event-registration'])
6295
+ .er-booking-overlay__header {
6296
+ row-gap: 0.625rem;
6297
+ padding: 0.875rem 1rem 0.75rem;
6298
+ }
6299
+
6300
+ /* The status and its facts are on separate lines: no rule between them */
6301
+ :where(.theme-scope)
6302
+ :where([data-block='event-registration'])
6303
+ .er-booking-bar__status-text > .er-booking-bar__divider {
6304
+ display: none;
6305
+ }
6306
+
6307
+ :where(.theme-scope)
6308
+ :where([data-block='event-registration'])
6309
+ .er-booking-bar
6310
+ .er-booking-bar__inner
6311
+ > .er-booking-bar__cta {
6312
+ min-height: 2.5rem;
6313
+ padding: 0.5rem 1rem;
6314
+ font-size: 0.875rem;
6315
+ }
6316
+
5973
6317
  }
5974
6318
 
5975
6319
  :where(.theme-scope)
@@ -5996,7 +6340,9 @@
5996
6340
  height: 100dvh;
5997
6341
  min-height: 0;
5998
6342
  overflow: hidden;
5999
- background: rgb(var(--tb-background));
6343
+ /* Surface, like the card, the bar and the system page's column, and what
6344
+ the embedded Stripe checkout is branded with (checkoutBranding.ts). */
6345
+ background: rgb(var(--tb-surface));
6000
6346
  /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
6001
6347
  }
6002
6348
 
@@ -6006,36 +6352,70 @@
6006
6352
  flex: 0 0 auto;
6007
6353
  z-index: 2;
6008
6354
  display: flex;
6009
- align-items: center;
6355
+ flex-wrap: wrap;
6356
+ align-items: flex-start;
6010
6357
  justify-content: space-between;
6011
- gap: 1rem;
6012
- padding: 1rem;
6013
- background: rgb(var(--tb-background));
6358
+ gap: 0.875rem 1rem;
6359
+ padding: 1.125rem 1.25rem 1rem;
6360
+ background: rgb(var(--tb-surface));
6014
6361
  border-bottom: 1px solid var(--er-border);
6015
6362
  }
6016
6363
 
6364
+ :where(.theme-scope)
6365
+ :where([data-block='event-registration'])
6366
+ .er-booking-overlay__progress {
6367
+ /* Pinned under the title, so the step stays in view while the step scrolls
6368
+ (issue 1581). It takes the header's full width, on its own row. */
6369
+ flex: 1 0 100%;
6370
+ }
6371
+
6372
+ :where(.theme-scope)
6373
+ :where([data-block='event-registration'])
6374
+ .er-booking-overlay__progress
6375
+ .rb-progress {
6376
+ margin-bottom: 0;
6377
+ }
6378
+
6379
+ :where(.theme-scope)
6380
+ :where([data-block='event-registration'])
6381
+ .er-booking-overlay__heading {
6382
+ display: flex;
6383
+ flex-direction: column;
6384
+ gap: 0.25rem;
6385
+ min-width: 0;
6386
+ }
6387
+
6017
6388
  :where(.theme-scope)
6018
6389
  :where([data-block='event-registration'])
6019
6390
  .er-booking-overlay__title {
6020
6391
  margin: 0;
6021
- font-size: 1rem;
6022
- line-height: 1.25;
6023
- font-weight: 700;
6392
+ font-family: var(--font-heading, inherit);
6393
+ font-size: 1.5rem;
6394
+ line-height: 1.15;
6395
+ }
6396
+
6397
+ :where(.theme-scope)
6398
+ :where([data-block='event-registration'])
6399
+ .er-booking-overlay__subtitle {
6400
+ margin: 0;
6401
+ font-size: 0.875rem;
6402
+ line-height: 1.4;
6403
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
6024
6404
  }
6025
6405
 
6026
6406
  :where(.theme-scope)
6027
6407
  :where([data-block='event-registration'])
6028
6408
  .er-booking-overlay__close {
6029
- width: 2rem;
6030
- height: 2rem;
6409
+ flex: 0 0 auto;
6410
+ width: 2.75rem;
6411
+ height: 2.75rem;
6031
6412
  display: inline-flex;
6032
6413
  align-items: center;
6033
6414
  justify-content: center;
6034
6415
  border: 1px solid var(--er-border);
6035
6416
  border-radius: 999px;
6036
6417
  background: transparent;
6037
- color: rgb(var(--tb-text));
6038
- font-size: 1.25rem;
6418
+ color: inherit;
6039
6419
  line-height: 1;
6040
6420
  cursor: pointer;
6041
6421
  }
@@ -6057,24 +6437,88 @@
6057
6437
  :where(.theme-scope)
6058
6438
  :where([data-block='event-registration'])
6059
6439
  .er-container--overlay
6060
- .er-payment-layout {
6061
- flex: 1 1 auto;
6062
- min-height: 0;
6063
- height: 100%;
6064
- gap: 0;
6065
- grid-template-rows: minmax(0, 1fr) auto;
6066
- grid-template-areas:
6067
- 'main'
6068
- 'footer';
6440
+ .er-payment-layout {
6441
+ flex: 1 1 auto;
6442
+ min-height: 0;
6443
+ height: 100%;
6444
+ gap: 0;
6445
+ grid-template-rows: minmax(0, 1fr) auto;
6446
+ grid-template-areas:
6447
+ 'main'
6448
+ 'footer';
6449
+ }
6450
+
6451
+ :where(.theme-scope)
6452
+ :where([data-block='event-registration'])
6453
+ .er-container--overlay
6454
+ .er-payment-layout-main {
6455
+ min-height: 0;
6456
+ overflow: auto;
6457
+ padding: 1.25rem;
6458
+ }
6459
+
6460
+ /* Processing, confirmation and error take the whole panel (issue 1581) */
6461
+ :where(.theme-scope)
6462
+ :where([data-block='event-registration'])
6463
+ .er-container--overlay
6464
+ .er-whole-screen {
6465
+ flex: 1 1 auto;
6466
+ display: flex;
6467
+ flex-direction: column;
6468
+ min-height: 0;
6469
+ }
6470
+
6471
+ :where(.theme-scope)
6472
+ :where([data-block='event-registration'])
6473
+ .er-container--overlay
6474
+ .er-whole-screen__body {
6475
+ flex: 1 1 auto;
6476
+ min-height: 0;
6477
+ overflow: auto;
6478
+ padding: 1.5rem 1.25rem;
6479
+ }
6480
+
6481
+ /* The confirmation's one action sits where the steps' Continue does: pinned
6482
+ and full width in the panel, flowing under the content in the aside. */
6483
+ :where(.theme-scope)
6484
+ :where([data-block='event-registration'])
6485
+ .er-whole-screen__footer {
6486
+ margin-top: 1.5rem;
6487
+ }
6488
+
6489
+ :where(.theme-scope)
6490
+ :where([data-block='event-registration'])
6491
+ .er-container--overlay
6492
+ .er-whole-screen__footer {
6493
+ margin-top: 0;
6494
+ }
6495
+
6496
+ :where(.theme-scope)
6497
+ :where([data-block='event-registration'])
6498
+ .er-container--overlay
6499
+ .er-whole-screen__footer
6500
+ .er-whole-screen__action {
6501
+ width: 100%;
6502
+ justify-content: center;
6503
+ }
6504
+
6505
+ /* The header already names the event and its date, so the footer summary
6506
+ drops its title and schedule; the discount keeps just its name. */
6507
+ :where(.theme-scope)
6508
+ :where([data-block='event-registration'])
6509
+ .er-container--overlay
6510
+ :is(.er-summary-bar-event, .er-summary-bar-schedule, .er-summary-bar-discount-detail) {
6511
+ display: none;
6069
6512
  }
6070
6513
 
6514
+ /* On the date step the chosen date is the news, so it stays. */
6071
6515
  :where(.theme-scope)
6072
6516
  :where([data-block='event-registration'])
6073
6517
  .er-container--overlay
6074
- .er-payment-layout-main {
6075
- min-height: 0;
6076
- overflow: auto;
6077
- padding: 1rem;
6518
+ .er-summary-bar[data-step='select-event']
6519
+ .er-summary-bar-schedule {
6520
+ display: inline;
6521
+ color: inherit;
6078
6522
  }
6079
6523
 
6080
6524
  :where(.theme-scope)
@@ -6084,9 +6528,9 @@
6084
6528
  position: relative;
6085
6529
  z-index: 3;
6086
6530
  padding: 0.875rem 1rem max(0.875rem, env(safe-area-inset-bottom));
6087
- background: rgb(var(--tb-background));
6531
+ background: rgb(var(--tb-surface));
6088
6532
  border-top: 1px solid var(--er-border);
6089
- box-shadow: 0 -12px 26px rgba(var(--tb-shadow), 0.12);
6533
+ box-shadow: 0 -12px 26px rgb(var(--tb-shadow) / 0.12);
6090
6534
  }
6091
6535
 
6092
6536
  :where(.theme-scope)
@@ -6108,14 +6552,14 @@
6108
6552
  .er-booking-overlay__panel {
6109
6553
  width: min(32rem, 100vw);
6110
6554
  min-height: 100%;
6111
- box-shadow: -16px 0 40px rgba(var(--tb-shadow), 0.22);
6555
+ box-shadow: -16px 0 40px rgb(var(--tb-shadow) / 0.22);
6112
6556
  }
6113
6557
 
6114
6558
  :where(.theme-scope)
6115
6559
  :where([data-block='event-registration'])
6116
6560
  .er-container--overlay
6117
6561
  .er-payment-layout-main {
6118
- padding: 1.25rem;
6562
+ padding: 1.5rem;
6119
6563
  }
6120
6564
 
6121
6565
  :where(.theme-scope)
@@ -6126,6 +6570,123 @@
6126
6570
  }
6127
6571
  }
6128
6572
 
6573
+ /* The system event page hosts the same panel in its sticky column (issue 1581):
6574
+ from 1024px the steps scroll inside it and the footer stays pinned. */
6575
+ @media (min-width: 1024px) {
6576
+ :where(.theme-scope)
6577
+ :where([data-block='event-registration'].event-registration--embedded)
6578
+ .er-container {
6579
+ display: flex;
6580
+ max-height: calc(100dvh - 9rem);
6581
+ min-height: 0;
6582
+ }
6583
+
6584
+ :where(.theme-scope)
6585
+ :where([data-block='event-registration'].event-registration--embedded)
6586
+ .er-payment-layout {
6587
+ flex: 1 1 auto;
6588
+ min-height: 0;
6589
+ gap: 0;
6590
+ grid-template-rows: minmax(0, 1fr) auto;
6591
+ grid-template-areas:
6592
+ 'main'
6593
+ 'footer';
6594
+ }
6595
+
6596
+ :where(.theme-scope)
6597
+ :where([data-block='event-registration'].event-registration--embedded)
6598
+ .er-payment-layout-main {
6599
+ min-height: 0;
6600
+ overflow: auto;
6601
+ padding-bottom: 1rem;
6602
+ }
6603
+
6604
+ :where(.theme-scope)
6605
+ :where([data-block='event-registration'].event-registration--embedded)
6606
+ .er-payment-layout-footer {
6607
+ padding-top: 0.875rem;
6608
+ border-top: 1px solid var(--er-border);
6609
+ }
6610
+
6611
+ :where(.theme-scope)
6612
+ :where([data-block='event-registration'].event-registration--embedded)
6613
+ .er-whole-screen {
6614
+ flex: 1 1 auto;
6615
+ display: flex;
6616
+ flex-direction: column;
6617
+ min-height: 0;
6618
+ }
6619
+
6620
+ :where(.theme-scope)
6621
+ :where([data-block='event-registration'].event-registration--embedded)
6622
+ .er-whole-screen__body {
6623
+ flex: 1 1 auto;
6624
+ min-height: 0;
6625
+ overflow: auto;
6626
+ }
6627
+ }
6628
+
6629
+ /* Confirmation summary: only the facts known for certain */
6630
+ :where(.theme-scope)
6631
+ :where([data-block='event-registration'])
6632
+ .er-confirmation-summary {
6633
+ display: flex;
6634
+ flex-direction: column;
6635
+ gap: 0.75rem;
6636
+ margin: 1.5rem 0 0;
6637
+ padding: 1.125rem 1.25rem;
6638
+ border: 1px solid var(--er-border);
6639
+ border-radius: var(--rb-block-radius);
6640
+ font-size: 0.9375rem;
6641
+ }
6642
+
6643
+ :where(.theme-scope)
6644
+ :where([data-block='event-registration'])
6645
+ .er-confirmation-summary__row {
6646
+ display: flex;
6647
+ justify-content: space-between;
6648
+ gap: 1rem;
6649
+ }
6650
+
6651
+ :where(.theme-scope)
6652
+ :where([data-block='event-registration'])
6653
+ .er-confirmation-summary__row dt {
6654
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
6655
+ }
6656
+
6657
+ :where(.theme-scope)
6658
+ :where([data-block='event-registration'])
6659
+ .er-confirmation-summary__row dd {
6660
+ margin: 0;
6661
+ font-weight: 700;
6662
+ text-align: end;
6663
+ }
6664
+
6665
+ /* Why passes and memberships are greyed out for more than one place */
6666
+ :where(.theme-scope)
6667
+ :where([data-block='event-registration'])
6668
+ .er-entitlement-note {
6669
+ margin: 0;
6670
+ padding-top: 0.75rem;
6671
+ border-top: 1px solid var(--er-border);
6672
+ font-size: 0.875rem;
6673
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
6674
+ }
6675
+
6676
+ :where(.theme-scope)
6677
+ :where([data-block='event-registration'])
6678
+ .er-entitlement-note__action {
6679
+ padding: 0;
6680
+ border: 0;
6681
+ background: none;
6682
+ color: rgb(var(--tb-primary));
6683
+ font: inherit;
6684
+ font-weight: 700;
6685
+ text-decoration: underline;
6686
+ text-underline-offset: 3px;
6687
+ cursor: pointer;
6688
+ }
6689
+
6129
6690
  /* Magic Link Form */
6130
6691
  :where(.theme-scope)
6131
6692
  :where([data-block='event-registration'])
@@ -6201,8 +6762,8 @@
6201
6762
  align-items: flex-start;
6202
6763
  gap: 0.75rem;
6203
6764
  padding: 1rem 1.25rem;
6204
- background: rgba(var(--tb-primary-100), 0.4);
6205
- border: 1px solid rgba(var(--tb-primary-300), 0.4);
6765
+ background: rgb(var(--tb-primary-100) / 0.4);
6766
+ border: 1px solid rgb(var(--tb-primary-300) / 0.4);
6206
6767
  border-radius: var(--rb-block-radius);
6207
6768
  }
6208
6769
 
@@ -6250,201 +6811,6 @@
6250
6811
  }
6251
6812
 
6252
6813
  /* Selection cards for pass holders */
6253
- :where(.theme-scope)
6254
- :where([data-block='event-registration'])
6255
- .er-booking-mode-cards {
6256
- display: grid;
6257
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
6258
- gap: 1rem;
6259
- }
6260
-
6261
- :where(.theme-scope)
6262
- :where([data-block='event-registration'])
6263
- .er-booking-mode-card {
6264
- display: flex;
6265
- flex-direction: column;
6266
- align-items: center;
6267
- gap: 0.5rem;
6268
- padding: 1.25rem 1rem;
6269
- border: 2px solid var(--er-payment-border);
6270
- border-radius: var(--rb-block-radius);
6271
- background: transparent;
6272
- cursor: pointer;
6273
- text-align: center;
6274
- position: relative;
6275
- transition:
6276
- border-color var(--rb-block-transition) ease,
6277
- background-color var(--rb-block-transition) ease;
6278
- }
6279
-
6280
- :where(.theme-scope)
6281
- :where([data-block='event-registration'])
6282
- .er-booking-mode-card:hover:not([aria-disabled='true']) {
6283
- border-color: var(--er-payment-border-hover);
6284
- }
6285
-
6286
- :where(.theme-scope)
6287
- :where([data-block='event-registration'])
6288
- .er-booking-mode-card--selected {
6289
- border-color: var(--er-payment-border-selected);
6290
- background-color: var(--er-payment-bg-selected);
6291
- }
6292
-
6293
- :where(.theme-scope)
6294
- :where([data-block='event-registration'])
6295
- .er-booking-mode-card--disabled {
6296
- opacity: 1;
6297
- cursor: not-allowed;
6298
- border-color: var(--er-payment-border);
6299
- background: transparent;
6300
- }
6301
-
6302
- :where(.theme-scope)
6303
- :where([data-block='event-registration'])
6304
- .er-booking-mode-card--disabled.er-booking-mode-card--selected {
6305
- border-color: var(--er-payment-border);
6306
- background: transparent;
6307
- }
6308
-
6309
- :where(.theme-scope)
6310
- :where([data-block='event-registration'])
6311
- .er-booking-mode-card--disabled
6312
- > :not(.er-booking-mode-tooltip) {
6313
- opacity: 0.55;
6314
- }
6315
-
6316
- :where(.theme-scope)
6317
- :where([data-block='event-registration'])
6318
- .er-booking-mode-card--disabled:hover {
6319
- border-color: var(--er-payment-border);
6320
- }
6321
-
6322
- :where(.theme-scope)
6323
- :where([data-block='event-registration'])
6324
- .er-booking-mode-card--disabled
6325
- .er-booking-mode-card-icon,
6326
- :where(.theme-scope)
6327
- :where([data-block='event-registration'])
6328
- .er-booking-mode-card--disabled
6329
- .er-booking-mode-card-label {
6330
- color: var(--er-on-surface-disabled);
6331
- }
6332
-
6333
- :where(.theme-scope)
6334
- :where([data-block='event-registration'])
6335
- .er-booking-mode-card--disabled
6336
- .er-booking-mode-card-detail {
6337
- color: var(--er-on-surface-disabled-detail);
6338
- }
6339
-
6340
- :where(.theme-scope)
6341
- :where([data-block='event-registration'])
6342
- .er-booking-mode-card-icon {
6343
- font-size: 1.75rem;
6344
- line-height: 1;
6345
- /* SVG icon sizing */
6346
- display: flex;
6347
- align-items: center;
6348
- justify-content: center;
6349
- }
6350
-
6351
- :where(.theme-scope)
6352
- :where([data-block='event-registration'])
6353
- .er-booking-mode-card-icon
6354
- svg {
6355
- width: 24px;
6356
- height: 24px;
6357
- color: currentColor;
6358
- }
6359
-
6360
- :where(.theme-scope)
6361
- :where([data-block='event-registration'])
6362
- .er-booking-mode-card-label {
6363
- font-weight: 600;
6364
- font-size: 1rem;
6365
- line-height: 1.3;
6366
- }
6367
-
6368
- :where(.theme-scope)
6369
- :where([data-block='event-registration'])
6370
- .er-booking-mode-card-detail {
6371
- font-size: 0.875rem;
6372
- color: var(--er-on-surface-subtle);
6373
- line-height: 1.3;
6374
- }
6375
-
6376
- :where(.theme-scope)
6377
- :where([data-block='event-registration'])
6378
- .er-booking-mode-card-check {
6379
- position: absolute;
6380
- top: 0.5rem;
6381
- right: 0.5rem;
6382
- }
6383
-
6384
- /* Alternative link in booking mode */
6385
- :where(.theme-scope)
6386
- :where([data-block='event-registration'])
6387
- .er-booking-mode-alt {
6388
- margin-top: 1rem;
6389
- text-align: center;
6390
- }
6391
-
6392
- :where(.theme-scope)
6393
- :where([data-block='event-registration'])
6394
- .er-booking-mode-alt-link {
6395
- background: none;
6396
- border: none;
6397
- padding: 0;
6398
- font-size: 0.9375rem;
6399
- color: rgb(var(--tb-primary));
6400
- cursor: pointer;
6401
- text-decoration: underline;
6402
- text-underline-offset: 2px;
6403
- }
6404
-
6405
- :where(.theme-scope)
6406
- :where([data-block='event-registration'])
6407
- .er-booking-mode-alt-link:hover {
6408
- text-decoration: none;
6409
- }
6410
-
6411
- /* Tooltip styling for disabled options */
6412
- :where(.theme-scope)
6413
- :where([data-block='event-registration'])
6414
- .er-booking-mode-card[aria-disabled='true'] {
6415
- position: relative;
6416
- }
6417
-
6418
- /* Tooltip appears on hover for disabled cards */
6419
- :where(.theme-scope)
6420
- :where([data-block='event-registration'])
6421
- .er-booking-mode-tooltip {
6422
- display: none;
6423
- position: absolute;
6424
- bottom: 100%;
6425
- left: 50%;
6426
- transform: translateX(-50%);
6427
- margin-bottom: 0.5rem;
6428
- padding: 0.5rem 0.75rem;
6429
- background: rgb(var(--tb-text));
6430
- color: rgb(var(--tb-background));
6431
- font-size: 0.8125rem;
6432
- font-weight: 500;
6433
- border-radius: calc(var(--rb-block-radius) * 0.5);
6434
- white-space: normal;
6435
- max-width: 16rem;
6436
- line-height: 1.35;
6437
- text-align: center;
6438
- box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
6439
- z-index: 10;
6440
- }
6441
-
6442
- :where(.theme-scope)
6443
- :where([data-block='event-registration'])
6444
- .er-booking-mode-card--disabled:hover
6445
- .er-booking-mode-tooltip {
6446
- display: block;
6447
- }
6448
6814
 
6449
6815
 
6450
6816
  /* =============================================================================
@@ -6674,7 +7040,7 @@
6674
7040
  :where(.theme-scope)
6675
7041
  :where([data-block='event-calendar'])
6676
7042
  .event-calendar-more:hover {
6677
- background-color: rgba(var(--tb-primary), 0.1);
7043
+ background-color: rgb(var(--tb-primary) / 0.1);
6678
7044
  }
6679
7045
 
6680
7046
  :where(.theme-scope)
@@ -6748,7 +7114,7 @@
6748
7114
  :where(.theme-scope)
6749
7115
  :where([data-block='event-calendar'])
6750
7116
  .event-category-btn:hover:not(:disabled) {
6751
- border-color: rgba(var(--tb-primary), 0.5);
7117
+ border-color: rgb(var(--tb-primary) / 0.5);
6752
7118
  }
6753
7119
 
6754
7120
  :where(.theme-scope)
@@ -6821,7 +7187,7 @@
6821
7187
  :where([data-block='event-calendar'])
6822
7188
  .event-calendar-view-btn:hover {
6823
7189
  opacity: 1;
6824
- border-color: rgba(var(--tb-primary), 0.5);
7190
+ border-color: rgb(var(--tb-primary) / 0.5);
6825
7191
  }
6826
7192
 
6827
7193
  :where(.theme-scope)
@@ -6938,7 +7304,7 @@
6938
7304
  :where(.theme-scope)
6939
7305
  :where([data-block='event-calendar'])
6940
7306
  .event-agenda-card:hover {
6941
- border-color: rgba(var(--tb-primary), 0.5);
7307
+ border-color: rgb(var(--tb-primary) / 0.5);
6942
7308
  background-color: var(--ec-event-bg);
6943
7309
  }
6944
7310
 
@@ -7385,7 +7751,7 @@
7385
7751
  border-left-width: 4px;
7386
7752
  border-radius: calc(var(--rb-block-radius) / 1.5);
7387
7753
  background-color: var(--ec-surface);
7388
- box-shadow: 0 1px 2px rgba(var(--tb-text), 0.08);
7754
+ box-shadow: 0 1px 2px rgb(var(--tb-text) / 0.08);
7389
7755
  cursor: pointer;
7390
7756
  font: inherit;
7391
7757
  text-align: left;
@@ -7399,7 +7765,7 @@
7399
7765
  :where(.theme-scope)
7400
7766
  :where([data-block='event-calendar'])
7401
7767
  .event-timetable-event:hover {
7402
- box-shadow: 0 4px 12px rgba(var(--tb-text), 0.12);
7768
+ box-shadow: 0 4px 12px rgb(var(--tb-text) / 0.12);
7403
7769
  transform: translateY(-1px);
7404
7770
  }
7405
7771
 
@@ -7549,7 +7915,7 @@
7549
7915
  * available -> secondary, filling -> accent, waitlist -> muted text. */
7550
7916
  --ec-status-available: rgb(var(--tb-secondary));
7551
7917
  --ec-status-filling: rgb(var(--tb-accent));
7552
- --ec-status-waitlist: rgba(var(--tb-text), 0.4);
7918
+ --ec-status-waitlist: rgb(var(--tb-text) / 0.4);
7553
7919
  --event-week-board-cols: 7;
7554
7920
 
7555
7921
  border: 1px solid var(--ec-border);
@@ -7563,7 +7929,7 @@
7563
7929
  :where(.theme-scope)
7564
7930
  :where([data-block='event-calendar'])
7565
7931
  .event-week-board[data-elevated] {
7566
- box-shadow: 0 14px 34px -24px rgba(var(--tb-text), 0.35);
7932
+ box-shadow: 0 14px 34px -24px rgb(var(--tb-text) / 0.35);
7567
7933
  }
7568
7934
 
7569
7935
  /* Top bar: authored title + week navigation + legend */
@@ -7836,8 +8202,8 @@
7836
8202
  :where([data-block='event-calendar'])
7837
8203
  .event-week-board-card:hover {
7838
8204
  transform: translateY(-2px);
7839
- box-shadow: 0 6px 16px -8px rgba(var(--tb-text), 0.28);
7840
- border-color: rgba(var(--tb-primary), 0.4);
8205
+ box-shadow: 0 6px 16px -8px rgb(var(--tb-text) / 0.28);
8206
+ border-color: rgb(var(--tb-primary) / 0.4);
7841
8207
  }
7842
8208
 
7843
8209
  :where(.theme-scope)
@@ -7880,24 +8246,24 @@
7880
8246
  * Filling -> amber and waitlist -> muted outline are handled by the
7881
8247
  * data-status overrides below. */
7882
8248
  border: 1px solid var(--ec-border);
7883
- background-color: rgba(var(--tb-text), 0.06);
7884
- color: rgba(var(--tb-text), 0.62);
8249
+ background-color: rgb(var(--tb-text) / 0.06);
8250
+ color: rgb(var(--tb-text) / 0.62);
7885
8251
  border-color: var(--ec-border);
7886
8252
  }
7887
8253
 
7888
8254
  :where(.theme-scope)
7889
8255
  :where([data-block='event-calendar'])
7890
8256
  .event-week-board-card-pill[data-status='filling'] {
7891
- background-color: rgba(var(--tb-accent), 0.14);
8257
+ background-color: rgb(var(--tb-accent) / 0.14);
7892
8258
  color: var(--ec-status-filling);
7893
- border-color: rgba(var(--tb-accent), 0.32);
8259
+ border-color: rgb(var(--tb-accent) / 0.32);
7894
8260
  }
7895
8261
 
7896
8262
  :where(.theme-scope)
7897
8263
  :where([data-block='event-calendar'])
7898
8264
  .event-week-board-card-pill[data-status='waitlist'] {
7899
8265
  background-color: transparent;
7900
- color: rgba(var(--tb-text), 0.6);
8266
+ color: rgb(var(--tb-text) / 0.6);
7901
8267
  border-color: var(--ec-border);
7902
8268
  }
7903
8269
 
@@ -8176,7 +8542,7 @@
8176
8542
  :where([data-block='event-calendar'])
8177
8543
  .ec-modal-close:hover {
8178
8544
  opacity: 1;
8179
- background-color: rgba(var(--tb-text), 0.1);
8545
+ background-color: rgb(var(--tb-text) / 0.1);
8180
8546
  }
8181
8547
 
8182
8548
  :where(.theme-scope)
@@ -8420,23 +8786,24 @@
8420
8786
  }
8421
8787
 
8422
8788
  /* State icon color variants (layout from registration-surface.css) */
8789
+ /* Success: a solid primary disc with an on-primary tick (issue 1581) */
8423
8790
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--success {
8424
- background: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
8425
- color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
8791
+ background: rgb(var(--tb-primary, 37 99 235));
8792
+ color: rgb(var(--tb-onPrimary, 255 255 255));
8426
8793
  }
8427
8794
 
8428
8795
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--error {
8429
- background: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
8796
+ background: var(--ab-error-bg, rgb(var(--tb-destructive, 220 38 38) / 0.1));
8430
8797
  color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
8431
8798
  }
8432
8799
 
8433
8800
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--info {
8434
- background: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
8801
+ background: var(--ab-info-bg, rgb(var(--tb-info, 14 165 233) / 0.1));
8435
8802
  color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
8436
8803
  }
8437
8804
 
8438
8805
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--warning {
8439
- background: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
8806
+ background: var(--ab-warning-bg, rgb(var(--tb-warning, 245 158 11) / 0.1));
8440
8807
  color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
8441
8808
  }
8442
8809
 
@@ -8478,7 +8845,7 @@
8478
8845
  letter-spacing: 0;
8479
8846
  line-height: 1.2;
8480
8847
  text-transform: uppercase;
8481
- color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
8848
+ color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
8482
8849
  }
8483
8850
 
8484
8851
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-value {
@@ -9097,11 +9464,11 @@
9097
9464
  height: 2.5rem;
9098
9465
  width: 2.5rem;
9099
9466
  border-radius: 9999px;
9100
- border: 1px solid rgba(var(--tb-border, 229 231 235), 0.35);
9101
- background-color: rgba(var(--tb-surface, 248 250 252), 0.9);
9467
+ border: 1px solid rgb(var(--tb-border, 229 231 235) / 0.35);
9468
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.9);
9102
9469
  color: rgb(var(--tb-text, 17 24 39));
9103
- box-shadow: 0 4px 6px -1px rgba(var(--tb-shadow), 0.1),
9104
- 0 2px 4px -2px rgba(var(--tb-shadow), 0.1);
9470
+ box-shadow: 0 4px 6px -1px rgb(var(--tb-shadow) / 0.1),
9471
+ 0 2px 4px -2px rgb(var(--tb-shadow) / 0.1);
9105
9472
  cursor: pointer;
9106
9473
  transform: translateY(-50%);
9107
9474
  transition: background-color 0.2s ease, box-shadow 0.2s ease,
@@ -9118,8 +9485,8 @@
9118
9485
 
9119
9486
  :where(.theme-scope) .carousel-root .carousel-nav-btn:hover {
9120
9487
  background-color: rgb(var(--tb-surface, 248 250 252));
9121
- box-shadow: 0 10px 15px -3px rgba(var(--tb-shadow), 0.1),
9122
- 0 4px 6px -4px rgba(var(--tb-shadow), 0.1);
9488
+ box-shadow: 0 10px 15px -3px rgb(var(--tb-shadow) / 0.1),
9489
+ 0 4px 6px -4px rgb(var(--tb-shadow) / 0.1);
9123
9490
  }
9124
9491
 
9125
9492
  :where(.theme-scope) .carousel-root .carousel-nav-btn:disabled {
@@ -9168,10 +9535,10 @@
9168
9535
  }
9169
9536
 
9170
9537
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot {
9171
- background-color: rgba(var(--tb-surface, 248 250 252), 0.55);
9538
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.55);
9172
9539
  }
9173
9540
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot:hover {
9174
- background-color: rgba(var(--tb-surface, 248 250 252), 0.75);
9541
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.75);
9175
9542
  }
9176
9543
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot[data-active="true"] {
9177
9544
  background-color: rgb(var(--tb-text, 17 24 39));
@@ -9187,7 +9554,7 @@
9187
9554
  }
9188
9555
 
9189
9556
  :where(.theme-scope) .carousel-root .carousel-dot:hover {
9190
- background-color: rgba(var(--tb-text, 17 24 39), 0.3);
9557
+ background-color: rgb(var(--tb-text, 17 24 39) / 0.3);
9191
9558
  }
9192
9559
 
9193
9560
  :where(.theme-scope) .carousel-root .carousel-dot[data-active="true"] {
@@ -9196,7 +9563,7 @@
9196
9563
 
9197
9564
  :where(.theme-scope) .carousel-root .carousel-dot:focus-visible {
9198
9565
  outline: none;
9199
- box-shadow: 0 0 0 3px rgba(var(--tb-primary, 59 130 246), 0.35);
9566
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary, 59 130 246) / 0.35);
9200
9567
  }
9201
9568
 
9202
9569
 
@@ -9235,7 +9602,7 @@
9235
9602
 
9236
9603
  /* Error display */
9237
9604
  :where(.theme-scope) .shop__error {
9238
- background-color: rgba(var(--tb-destructive), 0.1);
9605
+ background-color: rgb(var(--tb-destructive) / 0.1);
9239
9606
  color: rgb(var(--tb-destructive));
9240
9607
  padding: 0.75rem 1rem;
9241
9608
  border-radius: var(--shop-control-radius);
@@ -9503,7 +9870,7 @@
9503
9870
 
9504
9871
  /* Modal error */
9505
9872
  :where(.theme-scope) .shop__modal-error {
9506
- background-color: rgba(var(--tb-destructive), 0.1);
9873
+ background-color: rgb(var(--tb-destructive) / 0.1);
9507
9874
  color: rgb(var(--tb-destructive));
9508
9875
  padding: 0.625rem 0.75rem;
9509
9876
  border-radius: var(--shop-control-radius);
@@ -9555,12 +9922,12 @@
9555
9922
  }
9556
9923
 
9557
9924
  :where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--success {
9558
- background: rgba(var(--tb-success), 0.12);
9925
+ background: rgb(var(--tb-success) / 0.12);
9559
9926
  color: rgb(var(--tb-success));
9560
9927
  }
9561
9928
 
9562
9929
  :where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--warning {
9563
- background: rgba(var(--tb-warning), 0.12);
9930
+ background: rgb(var(--tb-warning) / 0.12);
9564
9931
  color: rgb(var(--tb-warning));
9565
9932
  }
9566
9933
 
@@ -10059,7 +10426,7 @@
10059
10426
 
10060
10427
  :where(.theme-scope) :where([data-block="customer-portal"]) .cp-table thead th {
10061
10428
  text-align: left;
10062
- background: rgba(var(--tb-border), 0.2);
10429
+ background: rgb(var(--tb-border) / 0.2);
10063
10430
  }
10064
10431
 
10065
10432
  :where(.theme-scope)
@@ -10900,17 +11267,17 @@
10900
11267
 
10901
11268
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):focus-visible {
10902
11269
  outline: none;
10903
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.25);
11270
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
10904
11271
  }
10905
11272
 
10906
11273
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):hover:not(:disabled) {
10907
- border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgba(var(--tb-primary), 0.5)));
11274
+ border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgb(var(--tb-primary) / 0.5)));
10908
11275
  opacity: var(--rb-tile-hover-opacity, var(--rb-event-tile-hover-opacity, var(--rb-tile-opacity, var(--rb-event-tile-opacity, 1))));
10909
11276
  }
10910
11277
 
10911
11278
  :where(.theme-scope) :where(.rb-tile--selected, .er-event-card--selected) {
10912
11279
  border-color: var(--rb-tile-border-selected, var(--rb-event-tile-border-selected, rgb(var(--tb-primary))));
10913
- background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgba(var(--tb-primary), 0.1)));
11280
+ background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgb(var(--tb-primary) / 0.1)));
10914
11281
  }
10915
11282
 
10916
11283
  :where(.theme-scope) :where(.rb-tile--disabled, .er-event-card--disabled) {
@@ -11223,7 +11590,7 @@
11223
11590
 
11224
11591
  :where(.theme-scope) .newsletter-success .fb-success {
11225
11592
  padding: 1rem 1.5rem;
11226
- background-color: rgba(var(--tb-success, 34 197 94), 0.1);
11593
+ background-color: rgb(var(--tb-success, 34 197 94) / 0.1);
11227
11594
  border-radius: var(--radius-md, 0.5rem);
11228
11595
  color: rgb(var(--tb-text));
11229
11596
  }
@@ -11494,7 +11861,7 @@
11494
11861
  * context (theme-core/src/blocks/opaquePanels.ts) hold on any section. */
11495
11862
  :where(.theme-scope) .feedback-callout {
11496
11863
  background: rgb(var(--tb-surface, 248 250 252));
11497
- border-color: rgba(var(--tb-border, 226 232 240), 0.72);
11864
+ border-color: rgb(var(--tb-border, 226 232 240) / 0.72);
11498
11865
  --rb-feedback-callout-bg-opacity: 0.1;
11499
11866
  --rb-feedback-callout-border-opacity: 0.24;
11500
11867
  }
@@ -11502,33 +11869,33 @@
11502
11869
  :where(.theme-scope) .feedback-callout[data-feedback-tone="info"] {
11503
11870
  --rb-feedback-callout-bg-opacity: 0.08;
11504
11871
  background:
11505
- linear-gradient(rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-bg-opacity))),
11872
+ linear-gradient(rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-bg-opacity))),
11506
11873
  rgb(var(--tb-surface, 248 250 252));
11507
- border-color: rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-border-opacity));
11874
+ border-color: rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-border-opacity));
11508
11875
  }
11509
11876
 
11510
11877
  :where(.theme-scope) .feedback-callout[data-feedback-tone="success"] {
11511
11878
  background:
11512
- linear-gradient(rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-bg-opacity))),
11879
+ linear-gradient(rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-bg-opacity))),
11513
11880
  rgb(var(--tb-surface, 248 250 252));
11514
- border-color: rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-border-opacity));
11881
+ border-color: rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-border-opacity));
11515
11882
  }
11516
11883
 
11517
11884
  :where(.theme-scope) .feedback-callout[data-feedback-tone="warning"] {
11518
11885
  --rb-feedback-callout-bg-opacity: 0.12;
11519
11886
  --rb-feedback-callout-border-opacity: 0.28;
11520
11887
  background:
11521
- linear-gradient(rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-bg-opacity))),
11888
+ linear-gradient(rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-bg-opacity))),
11522
11889
  rgb(var(--tb-surface, 248 250 252));
11523
- border-color: rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-border-opacity));
11890
+ border-color: rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-border-opacity));
11524
11891
  }
11525
11892
 
11526
11893
  :where(.theme-scope) .feedback-callout[data-feedback-tone="error"] {
11527
11894
  --rb-feedback-callout-border-opacity: 0.26;
11528
11895
  background:
11529
- linear-gradient(rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-bg-opacity))),
11896
+ linear-gradient(rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-bg-opacity))),
11530
11897
  rgb(var(--tb-surface, 248 250 252));
11531
- border-color: rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-border-opacity));
11898
+ border-color: rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-border-opacity));
11532
11899
  }
11533
11900
 
11534
11901
  :where(.theme-scope) .feedback-callout__title {
@@ -11600,7 +11967,7 @@
11600
11967
  }
11601
11968
 
11602
11969
  :where(.theme-scope) .event-compact-row:hover {
11603
- background-color: rgba(var(--tb-primary, 0 0 0), 0.035);
11970
+ background-color: rgb(var(--tb-primary, 0 0 0) / 0.035);
11604
11971
  }
11605
11972
 
11606
11973
  :where(.theme-scope) .event-compact-row-date {
@@ -12009,23 +12376,23 @@
12009
12376
  }
12010
12377
 
12011
12378
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="success"] {
12012
- border-color: rgba(var(--tb-success, 34 197 94), 0.3);
12379
+ border-color: rgb(var(--tb-success, 34 197 94) / 0.3);
12013
12380
  background:
12014
- linear-gradient(rgba(var(--tb-success, 34 197 94), 0.1), rgba(var(--tb-success, 34 197 94), 0.1)),
12381
+ linear-gradient(rgb(var(--tb-success, 34 197 94) / 0.1), rgb(var(--tb-success, 34 197 94) / 0.1)),
12015
12382
  rgb(var(--tb-surface, 255 255 255));
12016
12383
  }
12017
12384
 
12018
12385
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="warning"] {
12019
- border-color: rgba(var(--tb-warning, 245 158 11), 0.35);
12386
+ border-color: rgb(var(--tb-warning, 245 158 11) / 0.35);
12020
12387
  background:
12021
- linear-gradient(rgba(var(--tb-warning, 245 158 11), 0.12), rgba(var(--tb-warning, 245 158 11), 0.12)),
12388
+ linear-gradient(rgb(var(--tb-warning, 245 158 11) / 0.12), rgb(var(--tb-warning, 245 158 11) / 0.12)),
12022
12389
  rgb(var(--tb-surface, 255 255 255));
12023
12390
  }
12024
12391
 
12025
12392
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="error"] {
12026
- border-color: rgba(var(--tb-destructive, 239 68 68), 0.3);
12393
+ border-color: rgb(var(--tb-destructive, 239 68 68) / 0.3);
12027
12394
  background:
12028
- linear-gradient(rgba(var(--tb-destructive, 239 68 68), 0.1), rgba(var(--tb-destructive, 239 68 68), 0.1)),
12395
+ linear-gradient(rgb(var(--tb-destructive, 239 68 68) / 0.1), rgb(var(--tb-destructive, 239 68 68) / 0.1)),
12029
12396
  rgb(var(--tb-surface, 255 255 255));
12030
12397
  }
12031
12398
 
@@ -12141,7 +12508,7 @@
12141
12508
  :where(.theme-scope) .rb-feature-card-icon-zone--utility-badge {
12142
12509
  background-color: rgb(var(--tb-surface));
12143
12510
  border: 1px solid rgb(var(--tb-border));
12144
- box-shadow: 0 1px 2px rgba(var(--tb-shadow), 0.08);
12511
+ box-shadow: 0 1px 2px rgb(var(--tb-shadow) / 0.08);
12145
12512
  }
12146
12513
 
12147
12514
  :where(.theme-scope) .rb-feature-card-icon {
@@ -12921,7 +13288,7 @@
12921
13288
  grid-template-columns: minmax(5.5rem, 0.65fr) minmax(0, 1.35fr);
12922
13289
  gap: 1rem;
12923
13290
  padding-block: 0.6rem;
12924
- border-top: 1px solid rgba(var(--tb-border), 0.72);
13291
+ border-top: 1px solid rgb(var(--tb-border) / 0.72);
12925
13292
  }
12926
13293
 
12927
13294
  :where(.theme-scope)
@@ -13162,13 +13529,13 @@
13162
13529
  :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-attribution {
13163
13530
  margin-top: 1.25rem;
13164
13531
  padding-top: 1.25rem;
13165
- border-top: 1px solid rgba(var(--tb-border), 0.75);
13532
+ border-top: 1px solid rgb(var(--tb-border) / 0.75);
13166
13533
  }
13167
13534
 
13168
13535
  :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-avatar {
13169
13536
  box-shadow:
13170
13537
  0 0 0 2px rgb(var(--tb-surface)),
13171
- 0 0 0 4px rgba(var(--tb-primary), 0.3);
13538
+ 0 0 0 4px rgb(var(--tb-primary) / 0.3);
13172
13539
  }
13173
13540
 
13174
13541