@orion-studios/payload-studio 0.5.0-beta.98 → 0.6.0-beta.1

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 (63) hide show
  1. package/README.md +58 -68
  2. package/dist/admin/client.d.mts +5 -0
  3. package/dist/admin/client.d.ts +5 -0
  4. package/dist/admin/client.js +4491 -736
  5. package/dist/admin/client.mjs +3367 -752
  6. package/dist/admin/index.d.mts +2 -1
  7. package/dist/admin/index.d.ts +2 -1
  8. package/dist/admin/index.js +498 -53
  9. package/dist/admin/index.mjs +2 -1
  10. package/dist/admin-app/client.d.mts +1 -0
  11. package/dist/admin-app/client.d.ts +1 -0
  12. package/dist/admin-app/client.js +285 -109
  13. package/dist/admin-app/client.mjs +59 -871
  14. package/dist/admin-app/index.d.mts +2 -1
  15. package/dist/admin-app/index.d.ts +2 -1
  16. package/dist/admin-app/index.mjs +5 -3
  17. package/dist/admin-app/styles.css +1708 -56
  18. package/dist/admin.css +158 -35
  19. package/dist/blocks/index.js +415 -200
  20. package/dist/blocks/index.mjs +2 -2
  21. package/dist/{chunk-XK3K5GRP.mjs → chunk-JQAHXYAM.mjs} +271 -67
  22. package/dist/chunk-KPIX7OSV.mjs +1051 -0
  23. package/dist/chunk-OQSEJXC4.mjs +166 -0
  24. package/dist/{chunk-XHWQJUX5.mjs → chunk-OTHERBGX.mjs} +3 -3
  25. package/dist/chunk-PF3EBZXF.mjs +326 -0
  26. package/dist/chunk-Q2HGC67S.mjs +904 -0
  27. package/dist/{chunk-XVH5SCBD.mjs → chunk-RKTIFEUY.mjs} +4 -19
  28. package/dist/chunk-W2UOCJDX.mjs +32 -0
  29. package/dist/{chunk-C4J35SPJ.mjs → chunk-XKUTZ7IU.mjs} +257 -452
  30. package/dist/{index-ZbOx4OCF.d.ts → index-52HdVLQq.d.ts} +12 -22
  31. package/dist/index-BMitiKK8.d.ts +435 -0
  32. package/dist/index-Crx_MtPw.d.ts +223 -0
  33. package/dist/index-Cv-6qnrw.d.mts +223 -0
  34. package/dist/{index-ZbOx4OCF.d.mts → index-DEQC3Dwj.d.mts} +12 -22
  35. package/dist/{index-BIwu3qIH.d.mts → index-DWmudwDm.d.mts} +2 -1
  36. package/dist/{index-BIwu3qIH.d.ts → index-DWmudwDm.d.ts} +2 -1
  37. package/dist/index-D_b24Gef.d.mts +435 -0
  38. package/dist/index.d.mts +5 -4
  39. package/dist/index.d.ts +5 -4
  40. package/dist/index.js +1968 -1198
  41. package/dist/index.mjs +10 -8
  42. package/dist/nextjs/index.js +5 -684
  43. package/dist/nextjs/index.mjs +2 -3
  44. package/dist/sitePreviewTypes-BkHCWxNW.d.mts +58 -0
  45. package/dist/sitePreviewTypes-BkHCWxNW.d.ts +58 -0
  46. package/dist/studio/index.d.mts +1 -1
  47. package/dist/studio/index.d.ts +1 -1
  48. package/dist/studio-pages/builder.css +125 -83
  49. package/dist/studio-pages/client.d.mts +58 -1
  50. package/dist/studio-pages/client.d.ts +58 -1
  51. package/dist/studio-pages/client.js +450 -241
  52. package/dist/studio-pages/client.mjs +455 -247
  53. package/dist/studio-pages/index.d.mts +3 -2
  54. package/dist/studio-pages/index.d.ts +3 -2
  55. package/dist/studio-pages/index.js +418 -183
  56. package/dist/studio-pages/index.mjs +15 -6
  57. package/package.json +19 -5
  58. package/dist/chunk-2FO2ROW4.mjs +0 -468
  59. package/dist/chunk-SIL2J5MF.mjs +0 -155
  60. package/dist/index-BFXZue5i.d.ts +0 -178
  61. package/dist/index-CoYRBbf6.d.mts +0 -178
  62. package/dist/index-R7hA134j.d.mts +0 -140
  63. package/dist/index-vjrjy0P4.d.ts +0 -140
@@ -5,11 +5,10 @@ import {
5
5
  createSiteQueries,
6
6
  resolveMedia,
7
7
  resolveSocialMediaLinks
8
- } from "../chunk-XHWQJUX5.mjs";
8
+ } from "../chunk-OTHERBGX.mjs";
9
9
  import "../chunk-ZTXJG4K5.mjs";
10
+ import "../chunk-PF3EBZXF.mjs";
10
11
  import "../chunk-ADIIWIYL.mjs";
11
- import "../chunk-C4J35SPJ.mjs";
12
- import "../chunk-SIL2J5MF.mjs";
13
12
  import "../chunk-6BWS3CLP.mjs";
14
13
  export {
15
14
  WEBSITE_CONTENT_TAG,
@@ -0,0 +1,58 @@
1
+ type AdminRole = 'admin' | 'editor' | 'client';
2
+ declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
3
+ type AdminNavIcon = (typeof adminNavIcons)[number];
4
+ type AdminNavItem = {
5
+ href: string;
6
+ icon?: AdminNavIcon;
7
+ label: string;
8
+ matchPrefixes: string[];
9
+ roles?: AdminRole[];
10
+ };
11
+ type AdminBreadcrumbItem = {
12
+ label: string;
13
+ href?: string;
14
+ };
15
+ declare const roleCanAccessNav: (role: string | undefined, item: AdminNavItem) => boolean;
16
+ declare const navItemIsActive: (pathname: string, item: AdminNavItem) => boolean;
17
+
18
+ type SitePreviewLink = {
19
+ href: string;
20
+ label: string;
21
+ };
22
+ type SitePreviewLocationSummary = {
23
+ address?: string;
24
+ hours?: string;
25
+ phone?: string;
26
+ };
27
+ type SitePreviewSocialLink = {
28
+ label: string;
29
+ platform: string;
30
+ url: string;
31
+ };
32
+ type SiteHeaderPreviewData = {
33
+ activePath?: string;
34
+ actionHref?: string;
35
+ actionLabel?: string;
36
+ locationSummary?: Pick<SitePreviewLocationSummary, 'address' | 'hours'>;
37
+ logoUrl?: string;
38
+ navItems: SitePreviewLink[];
39
+ siteName: string;
40
+ socialLinks?: SitePreviewSocialLink[];
41
+ tagline?: string;
42
+ };
43
+ type SiteFooterPreviewData = {
44
+ builtByHref?: string;
45
+ builtByLabel?: string;
46
+ contactEmail: string;
47
+ copyright: string;
48
+ description?: string;
49
+ footerCategories: string[];
50
+ footerLinks: SitePreviewLink[];
51
+ locationSummary: SitePreviewLocationSummary;
52
+ logoUrl?: string;
53
+ siteName: string;
54
+ socialLinks?: SitePreviewSocialLink[];
55
+ tagline?: string;
56
+ };
57
+
58
+ export { type AdminBreadcrumbItem as A, type SiteFooterPreviewData as S, type AdminNavIcon as a, type AdminNavItem as b, type AdminRole as c, type SiteHeaderPreviewData as d, type SitePreviewLink as e, type SitePreviewLocationSummary as f, type SitePreviewSocialLink as g, navItemIsActive as n, roleCanAccessNav as r };
@@ -0,0 +1,58 @@
1
+ type AdminRole = 'admin' | 'editor' | 'client';
2
+ declare const adminNavIcons: readonly ["dashboard", "pages", "forms", "globals", "media", "tools", "account", "analytics"];
3
+ type AdminNavIcon = (typeof adminNavIcons)[number];
4
+ type AdminNavItem = {
5
+ href: string;
6
+ icon?: AdminNavIcon;
7
+ label: string;
8
+ matchPrefixes: string[];
9
+ roles?: AdminRole[];
10
+ };
11
+ type AdminBreadcrumbItem = {
12
+ label: string;
13
+ href?: string;
14
+ };
15
+ declare const roleCanAccessNav: (role: string | undefined, item: AdminNavItem) => boolean;
16
+ declare const navItemIsActive: (pathname: string, item: AdminNavItem) => boolean;
17
+
18
+ type SitePreviewLink = {
19
+ href: string;
20
+ label: string;
21
+ };
22
+ type SitePreviewLocationSummary = {
23
+ address?: string;
24
+ hours?: string;
25
+ phone?: string;
26
+ };
27
+ type SitePreviewSocialLink = {
28
+ label: string;
29
+ platform: string;
30
+ url: string;
31
+ };
32
+ type SiteHeaderPreviewData = {
33
+ activePath?: string;
34
+ actionHref?: string;
35
+ actionLabel?: string;
36
+ locationSummary?: Pick<SitePreviewLocationSummary, 'address' | 'hours'>;
37
+ logoUrl?: string;
38
+ navItems: SitePreviewLink[];
39
+ siteName: string;
40
+ socialLinks?: SitePreviewSocialLink[];
41
+ tagline?: string;
42
+ };
43
+ type SiteFooterPreviewData = {
44
+ builtByHref?: string;
45
+ builtByLabel?: string;
46
+ contactEmail: string;
47
+ copyright: string;
48
+ description?: string;
49
+ footerCategories: string[];
50
+ footerLinks: SitePreviewLink[];
51
+ locationSummary: SitePreviewLocationSummary;
52
+ logoUrl?: string;
53
+ siteName: string;
54
+ socialLinks?: SitePreviewSocialLink[];
55
+ tagline?: string;
56
+ };
57
+
58
+ export { type AdminBreadcrumbItem as A, type SiteFooterPreviewData as S, type AdminNavIcon as a, type AdminNavItem as b, type AdminRole as c, type SiteHeaderPreviewData as d, type SitePreviewLink as e, type SitePreviewLocationSummary as f, type SitePreviewSocialLink as g, navItemIsActive as n, roleCanAccessNav as r };
@@ -1,2 +1,2 @@
1
- export { I as ImageUploadOptimizationOptions, c as StudioCompileResult, S as StudioDocumentV1, d as StudioInspectorField, e as StudioInspectorPanel, f as StudioMigration, b as StudioModuleManifest, g as StudioNode, h as StudioNodeData, a as StudioNodeTypeDefinition, j as StudioPageService, k as StudioPaletteGroup, l as StudioPaletteItem, m as StudioPermission, n as StudioRegistry, o as StudioValidationIssue, p as SupportedImageMimeType, q as assertStudioDocumentV1, r as compileStudioDocument, s as createEmptyStudioDocument, t as createImageUploadOptimizationHook, u as createStudioRegistry, v as migrateStudioDocument, w as validateStudioDocument, x as withImageUploadOptimization } from '../index-BIwu3qIH.mjs';
1
+ export { I as ImageUploadOptimizationOptions, d as StudioCompileResult, S as StudioDocumentV1, e as StudioInspectorField, f as StudioInspectorPanel, g as StudioMigration, a as StudioModuleManifest, h as StudioNode, j as StudioNodeData, c as StudioNodeTypeDefinition, b as StudioPageService, k as StudioPaletteGroup, l as StudioPaletteItem, m as StudioPermission, n as StudioRegistry, o as StudioValidationIssue, p as SupportedImageMimeType, q as assertStudioDocumentV1, r as compileStudioDocument, s as createEmptyStudioDocument, t as createImageUploadOptimizationHook, u as createStudioRegistry, v as migrateStudioDocument, w as validateStudioDocument, x as withImageUploadOptimization } from '../index-DWmudwDm.mjs';
2
2
  import 'payload';
@@ -1,2 +1,2 @@
1
- export { I as ImageUploadOptimizationOptions, c as StudioCompileResult, S as StudioDocumentV1, d as StudioInspectorField, e as StudioInspectorPanel, f as StudioMigration, b as StudioModuleManifest, g as StudioNode, h as StudioNodeData, a as StudioNodeTypeDefinition, j as StudioPageService, k as StudioPaletteGroup, l as StudioPaletteItem, m as StudioPermission, n as StudioRegistry, o as StudioValidationIssue, p as SupportedImageMimeType, q as assertStudioDocumentV1, r as compileStudioDocument, s as createEmptyStudioDocument, t as createImageUploadOptimizationHook, u as createStudioRegistry, v as migrateStudioDocument, w as validateStudioDocument, x as withImageUploadOptimization } from '../index-BIwu3qIH.js';
1
+ export { I as ImageUploadOptimizationOptions, d as StudioCompileResult, S as StudioDocumentV1, e as StudioInspectorField, f as StudioInspectorPanel, g as StudioMigration, a as StudioModuleManifest, h as StudioNode, j as StudioNodeData, c as StudioNodeTypeDefinition, b as StudioPageService, k as StudioPaletteGroup, l as StudioPaletteItem, m as StudioPermission, n as StudioRegistry, o as StudioValidationIssue, p as SupportedImageMimeType, q as assertStudioDocumentV1, r as compileStudioDocument, s as createEmptyStudioDocument, t as createImageUploadOptimizationHook, u as createStudioRegistry, v as migrateStudioDocument, w as validateStudioDocument, x as withImageUploadOptimization } from '../index-DWmudwDm.js';
2
2
  import 'payload';
@@ -1,19 +1,57 @@
1
1
  :root {
2
- --orion-studio-bg: #f5f7f6;
3
- --orion-studio-ink: #13211c;
4
- --orion-studio-muted: #54655f;
5
- --orion-studio-card: #ffffff;
6
- --orion-studio-border: rgba(19, 33, 28, 0.14);
7
- --orion-studio-shadow: 0 12px 26px rgba(16, 24, 20, 0.12);
8
- --orion-studio-radius-lg: 22px;
9
- --orion-studio-radius-md: 16px;
10
- --orion-studio-accent: #0d4a37;
2
+ --orion-studio-bg: var(--orion-cms-page-bg, var(--orion-cms-page-bg-resolved, #f6f7f9));
3
+ --orion-studio-ink: var(--orion-cms-text, var(--orion-cms-text-resolved, #182332));
4
+ --orion-studio-body-text: color-mix(in srgb, var(--orion-studio-ink) 80%, white);
5
+ --orion-studio-muted: var(--orion-cms-muted, var(--orion-cms-muted-resolved, #5d6a79));
6
+ --orion-studio-card: var(--orion-cms-surface, var(--orion-cms-surface-resolved, #ffffff));
7
+ --orion-studio-border: var(--orion-cms-border, var(--orion-cms-border-resolved, rgba(24, 35, 50, 0.14)));
8
+ --orion-studio-shadow: var(
9
+ --orion-cms-shadow-elevated,
10
+ var(--orion-cms-shadow-elevated-resolved, 0 12px 26px rgba(18, 26, 38, 0.12))
11
+ );
12
+ --orion-studio-radius-lg: var(--orion-cms-radius-lg, var(--orion-cms-radius-lg-resolved, 22px));
13
+ --orion-studio-radius-md: var(--orion-cms-radius-md, var(--orion-cms-radius-md-resolved, 16px));
14
+ --orion-studio-radius-sm: var(--orion-cms-radius-sm, var(--orion-cms-radius-sm-resolved, 12px));
15
+ --orion-studio-radius-pill: var(--orion-cms-radius-pill, var(--orion-cms-radius-pill-resolved, 999px));
16
+ --orion-studio-accent: var(--orion-cms-accent, var(--orion-cms-accent-resolved, #334b63));
17
+ --orion-studio-accent-contrast: var(
18
+ --orion-cms-accent-contrast,
19
+ var(--orion-cms-accent-contrast-resolved, #ffffff)
20
+ );
21
+ --orion-studio-accent-border-hairline: color-mix(in srgb, var(--orion-studio-accent) 8%, transparent);
22
+ --orion-studio-accent-border-subtle: color-mix(in srgb, var(--orion-studio-accent) 12%, transparent);
23
+ --orion-studio-accent-border: color-mix(in srgb, var(--orion-studio-accent) 18%, transparent);
24
+ --orion-studio-accent-border-strong: color-mix(in srgb, var(--orion-studio-accent) 24%, transparent);
25
+ --orion-studio-accent-soft: var(
26
+ --orion-cms-accent-soft,
27
+ var(--orion-cms-accent-soft-resolved, rgba(51, 75, 99, 0.08))
28
+ );
29
+ --orion-studio-accent-soft-strong: color-mix(in srgb, var(--orion-studio-accent) 14%, transparent);
30
+ --orion-studio-accent-ghost: color-mix(in srgb, var(--orion-studio-accent) 82%, transparent);
31
+ --orion-studio-selection-outline: color-mix(in srgb, var(--orion-studio-accent) 55%, transparent);
32
+ --orion-studio-accent-gradient-start: var(--orion-cms-button-bg, var(--orion-studio-accent));
33
+ --orion-studio-accent-gradient-end: var(--orion-cms-button-hover-bg, var(--orion-studio-accent));
34
+ --orion-studio-surface-subtle: var(
35
+ --orion-cms-surface-subtle,
36
+ var(--orion-cms-surface-subtle-resolved, #eef2f5)
37
+ );
38
+ --orion-studio-body-font: var(
39
+ --orion-cms-font-body,
40
+ var(--orion-cms-font-body-resolved, 'Trebuchet MS', 'Gill Sans', 'Segoe UI', sans-serif)
41
+ );
42
+ --orion-studio-heading-font: var(
43
+ --orion-cms-font-heading,
44
+ var(--orion-cms-font-heading-resolved, 'Avenir Next', 'Gill Sans', 'Trebuchet MS', sans-serif)
45
+ );
46
+ --forest-900: var(--orion-studio-ink);
47
+ --ink-700: var(--orion-studio-body-text);
48
+ --ink-500: var(--orion-studio-muted);
11
49
  }
12
50
 
13
51
  body {
14
52
  background: var(--orion-studio-bg);
15
53
  color: var(--orion-studio-ink);
16
- font-family: 'Trebuchet MS', 'Gill Sans', 'Segoe UI', sans-serif;
54
+ font-family: var(--orion-studio-body-font);
17
55
  line-height: 1.5;
18
56
  }
19
57
 
@@ -21,7 +59,7 @@ h1,
21
59
  h2,
22
60
  h3,
23
61
  h4 {
24
- font-family: 'Avenir Next', 'Gill Sans', 'Trebuchet MS', sans-serif;
62
+ font-family: var(--orion-studio-heading-font);
25
63
  letter-spacing: 0.01em;
26
64
  line-height: 1.1;
27
65
  }
@@ -121,7 +159,7 @@ h4 {
121
159
  background: var(--orion-studio-card);
122
160
  border: 1px solid var(--orion-studio-border);
123
161
  border-radius: var(--orion-studio-radius-md);
124
- box-shadow: 0 8px 20px rgba(16, 24, 20, 0.08);
162
+ box-shadow: var(--orion-cms-shadow-card, var(--orion-cms-shadow-card-resolved, 0 8px 20px rgba(16, 24, 20, 0.08)));
125
163
  padding: 1rem;
126
164
  }
127
165
 
@@ -131,7 +169,7 @@ h4 {
131
169
  align-items: center;
132
170
  justify-content: center;
133
171
  gap: 0.45rem;
134
- border-radius: 999px;
172
+ border-radius: var(--orion-studio-radius-pill);
135
173
  font-weight: 800;
136
174
  padding: 0.72rem 1.05rem;
137
175
  border: 0;
@@ -147,14 +185,14 @@ h4 {
147
185
  }
148
186
 
149
187
  .btn-primary {
150
- background: var(--orion-studio-accent);
151
- color: #fff;
188
+ background: var(--orion-studio-accent-gradient-start);
189
+ color: var(--orion-studio-accent-contrast);
152
190
  }
153
191
 
154
192
  .btn-secondary {
155
- background: #fff;
193
+ background: var(--orion-studio-card);
156
194
  color: var(--orion-studio-accent);
157
- border: 1px solid rgba(13, 74, 55, 0.25);
195
+ border: 1px solid var(--orion-studio-accent-border-strong);
158
196
  }
159
197
 
160
198
  .hero {
@@ -165,7 +203,7 @@ h4 {
165
203
  overflow: hidden;
166
204
  box-shadow: var(--orion-studio-shadow);
167
205
  background: transparent;
168
- color: #fff;
206
+ color: var(--orion-studio-accent-contrast);
169
207
  }
170
208
 
171
209
  .hero-grid {
@@ -186,9 +224,9 @@ h4 {
186
224
 
187
225
  .orion-builder-upload-overlay {
188
226
  align-items: center;
189
- background: rgba(9, 28, 21, 0.58);
227
+ background: color-mix(in srgb, var(--orion-studio-accent) 54%, black);
190
228
  border-radius: inherit;
191
- color: #ffffff;
229
+ color: var(--orion-studio-accent-contrast);
192
230
  display: inline-flex;
193
231
  font-size: 0.8rem;
194
232
  font-weight: 700;
@@ -203,9 +241,9 @@ h4 {
203
241
 
204
242
  .orion-builder-upload-spinner {
205
243
  animation: orion-builder-upload-spin 0.9s linear infinite;
206
- border: 2px solid rgba(255, 255, 255, 0.35);
207
- border-radius: 999px;
208
- border-top-color: #ffffff;
244
+ border: 2px solid color-mix(in srgb, var(--orion-studio-accent-contrast) 35%, transparent);
245
+ border-radius: var(--orion-studio-radius-pill);
246
+ border-top-color: var(--orion-studio-accent-contrast);
209
247
  display: inline-block;
210
248
  height: 18px;
211
249
  width: 18px;
@@ -236,7 +274,7 @@ h4 {
236
274
  .hero p {
237
275
  margin-top: 0.75rem;
238
276
  max-width: 48ch;
239
- color: rgba(255, 255, 255, 0.9);
277
+ color: color-mix(in srgb, var(--orion-studio-accent-contrast) 90%, transparent);
240
278
  }
241
279
 
242
280
  .hero-actions {
@@ -253,9 +291,13 @@ h4 {
253
291
  .features {
254
292
  border-radius: var(--orion-studio-radius-lg);
255
293
  padding: 0;
256
- background: linear-gradient(135deg, #124a37 0%, #1f684f 100%);
294
+ background: linear-gradient(
295
+ 135deg,
296
+ var(--orion-studio-accent-gradient-start) 0%,
297
+ var(--orion-studio-accent-gradient-end) 100%
298
+ );
257
299
  border: 1px solid var(--orion-studio-border);
258
- color: #fff;
300
+ color: var(--orion-studio-accent-contrast);
259
301
  }
260
302
 
261
303
  .features .inner {
@@ -272,22 +314,22 @@ h4 {
272
314
  }
273
315
 
274
316
  .feature-item {
275
- background: rgba(255, 255, 255, 0.1);
276
- border: 1px solid rgba(255, 255, 255, 0.2);
277
- border-radius: 14px;
317
+ background: color-mix(in srgb, var(--orion-studio-accent-contrast) 10%, transparent);
318
+ border: 1px solid color-mix(in srgb, var(--orion-studio-accent-contrast) 20%, transparent);
319
+ border-radius: var(--orion-studio-radius-sm);
278
320
  padding: 0.9rem;
279
321
  }
280
322
 
281
323
  .feature-item h3 {
282
- color: #fff;
324
+ color: var(--orion-studio-accent-contrast);
283
325
  }
284
326
 
285
327
  .feature-item p {
286
- color: rgba(255, 255, 255, 0.88);
328
+ color: color-mix(in srgb, var(--orion-studio-accent-contrast) 88%, transparent);
287
329
  }
288
330
 
289
331
  .feature-item-media {
290
- border-radius: 12px;
332
+ border-radius: var(--orion-studio-radius-sm);
291
333
  height: 120px;
292
334
  margin-bottom: 0.65rem;
293
335
  object-fit: cover;
@@ -295,14 +337,14 @@ h4 {
295
337
  }
296
338
 
297
339
  .feature-item-media-card {
298
- border: 1px solid rgba(13, 74, 55, 0.12);
340
+ border: 1px solid var(--orion-studio-accent-border-subtle);
299
341
  }
300
342
 
301
343
  .feature-icon {
302
344
  width: 44px;
303
345
  height: 44px;
304
- border-radius: 12px;
305
- background: rgba(13, 74, 55, 0.1);
346
+ border-radius: var(--orion-studio-radius-sm);
347
+ background: var(--orion-studio-accent-soft);
306
348
  display: grid;
307
349
  place-items: center;
308
350
  font-weight: 900;
@@ -341,9 +383,9 @@ h4 {
341
383
  }
342
384
 
343
385
  .service-card {
344
- border: 1px solid rgba(19, 33, 28, 0.1);
345
- border-radius: 16px;
346
- background: #fff;
386
+ border: 1px solid var(--orion-studio-border);
387
+ border-radius: var(--orion-studio-radius-md);
388
+ background: var(--orion-studio-card);
347
389
  padding: 1rem;
348
390
  }
349
391
 
@@ -355,8 +397,8 @@ h4 {
355
397
 
356
398
  .service-tag-icon {
357
399
  align-items: center;
358
- background: rgba(13, 74, 55, 0.1);
359
- border-radius: 12px;
400
+ background: var(--orion-studio-accent-soft);
401
+ border-radius: var(--orion-studio-radius-sm);
360
402
  color: var(--orion-studio-accent);
361
403
  display: inline-grid;
362
404
  height: 44px;
@@ -391,10 +433,10 @@ h4 {
391
433
  transform: translateY(-50%);
392
434
  width: 42px;
393
435
  height: 42px;
394
- border-radius: 999px;
395
- border: 1px solid rgba(19, 33, 28, 0.14);
396
- background: rgba(255, 255, 255, 0.92);
397
- box-shadow: 0 18px 34px rgba(15, 125, 82, 0.12);
436
+ border-radius: var(--orion-studio-radius-pill);
437
+ border: 1px solid var(--orion-studio-border);
438
+ background: color-mix(in srgb, var(--orion-studio-card) 92%, transparent);
439
+ box-shadow: 0 18px 34px var(--orion-studio-accent-soft-strong);
398
440
  display: grid;
399
441
  place-items: center;
400
442
  cursor: pointer;
@@ -425,7 +467,7 @@ h4 {
425
467
  display: block;
426
468
  font-size: 2.2rem;
427
469
  line-height: 0.8;
428
- color: #e7b55a;
470
+ color: var(--brand-secondary);
429
471
  margin-bottom: 0;
430
472
  opacity: 0.8;
431
473
  }
@@ -446,7 +488,7 @@ h4 {
446
488
  }
447
489
 
448
490
  .testimonial-stars {
449
- color: #e7b55a;
491
+ color: var(--brand-secondary);
450
492
  display: inline-flex;
451
493
  font-size: 0.92rem;
452
494
  gap: 0.04rem;
@@ -457,7 +499,7 @@ h4 {
457
499
  }
458
500
 
459
501
  .testimonial-stars-muted {
460
- color: rgba(13, 74, 55, 0.25);
502
+ color: var(--orion-studio-accent-border-strong);
461
503
  }
462
504
 
463
505
  .quote-author {
@@ -471,8 +513,8 @@ h4 {
471
513
  .quote-avatar {
472
514
  width: 34px;
473
515
  height: 34px;
474
- border-radius: 12px;
475
- background: rgba(13, 74, 55, 0.12);
516
+ border-radius: var(--orion-studio-radius-sm);
517
+ background: var(--orion-studio-accent-soft-strong);
476
518
  }
477
519
 
478
520
  .faq-list {
@@ -482,28 +524,28 @@ h4 {
482
524
  }
483
525
 
484
526
  .faq-item {
485
- border: 1px solid rgba(19, 33, 28, 0.1);
486
- border-radius: 14px;
487
- background: #fff;
527
+ border: 1px solid var(--orion-studio-border);
528
+ border-radius: var(--orion-studio-radius-sm);
529
+ background: var(--orion-studio-card);
488
530
  padding: 0.75rem 0.85rem;
489
531
  }
490
532
 
491
533
  .contact-strip {
492
- background: #fff;
493
- border: 1px solid rgba(19, 33, 28, 0.12);
494
- border-radius: 18px;
534
+ background: var(--orion-studio-card);
535
+ border: 1px solid var(--orion-studio-border);
536
+ border-radius: var(--orion-studio-radius-md);
495
537
  padding: 1.1rem;
496
538
  }
497
539
 
498
540
  .contact-strip-dark {
499
541
  background: var(--orion-studio-accent);
500
- color: #fff;
542
+ color: var(--orion-studio-accent-contrast);
501
543
  }
502
544
 
503
545
  .richtext-wrap {
504
- background: #fff;
505
- border: 1px solid rgba(19, 33, 28, 0.12);
506
- border-radius: 18px;
546
+ background: var(--orion-studio-card);
547
+ border: 1px solid var(--orion-studio-border);
548
+ border-radius: var(--orion-studio-radius-md);
507
549
  padding: 1.1rem;
508
550
  }
509
551
 
@@ -549,8 +591,8 @@ h4 {
549
591
  }
550
592
 
551
593
  .orion-stat-card {
552
- background: #edf3e8;
553
- border: 1px solid rgba(13, 74, 55, 0.1);
594
+ background: var(--orion-studio-surface-subtle);
595
+ border: 1px solid var(--orion-studio-accent-border-subtle);
554
596
  border-radius: 14px;
555
597
  padding: 0.9rem;
556
598
  }
@@ -587,7 +629,7 @@ h4 {
587
629
  .orion-logo-wall-item {
588
630
  align-items: center;
589
631
  background: #fff;
590
- border: 1px solid rgba(13, 74, 55, 0.12);
632
+ border: 1px solid var(--orion-studio-accent-border-subtle);
591
633
  border-radius: 14px;
592
634
  display: flex;
593
635
  justify-content: center;
@@ -643,7 +685,7 @@ h4 {
643
685
 
644
686
  .orion-before-after-card {
645
687
  background: #fff;
646
- border: 1px solid rgba(13, 74, 55, 0.12);
688
+ border: 1px solid var(--orion-studio-accent-border-subtle);
647
689
  border-radius: 16px;
648
690
  overflow: hidden;
649
691
  }
@@ -670,9 +712,9 @@ h4 {
670
712
  }
671
713
 
672
714
  .orion-before-after-media figcaption {
673
- background: rgba(13, 74, 55, 0.82);
715
+ background: var(--orion-studio-accent-ghost);
674
716
  border-radius: 999px;
675
- color: #fff;
717
+ color: var(--orion-studio-accent-contrast);
676
718
  font-size: 0.7rem;
677
719
  left: 0.55rem;
678
720
  padding: 0.2rem 0.44rem;
@@ -683,7 +725,7 @@ h4 {
683
725
 
684
726
  .orion-before-after-placeholder {
685
727
  align-items: center;
686
- background: #e9efea;
728
+ background: var(--orion-studio-surface-subtle);
687
729
  color: var(--orion-studio-muted);
688
730
  display: flex;
689
731
  font-size: 0.85rem;
@@ -705,8 +747,8 @@ h4 {
705
747
 
706
748
  .orion-builder-settings-summary-row {
707
749
  align-items: center;
708
- background: rgba(18, 74, 55, 0.04);
709
- border: 1px solid rgba(13, 74, 55, 0.12);
750
+ background: var(--orion-studio-accent-soft);
751
+ border: 1px solid var(--orion-studio-accent-border-subtle);
710
752
  border-radius: 12px;
711
753
  display: flex;
712
754
  gap: 0.5rem;
@@ -731,7 +773,7 @@ h4 {
731
773
 
732
774
  .orion-builder-settings-mode-btn {
733
775
  background: #fff;
734
- border: 1px solid rgba(13, 74, 55, 0.2);
776
+ border: 1px solid var(--orion-studio-accent-border);
735
777
  border-radius: 999px;
736
778
  color: var(--orion-studio-muted);
737
779
  cursor: pointer;
@@ -741,21 +783,21 @@ h4 {
741
783
  }
742
784
 
743
785
  .orion-builder-settings-mode-btn.is-active {
744
- background: #124a37;
745
- border-color: #124a37;
746
- color: #fff;
786
+ background: var(--orion-studio-accent);
787
+ border-color: var(--orion-studio-accent);
788
+ color: var(--orion-studio-accent-contrast);
747
789
  }
748
790
 
749
791
  .orion-builder-settings-group {
750
792
  background: #fff;
751
- border: 1px solid rgba(13, 74, 55, 0.14);
793
+ border: 1px solid var(--orion-studio-accent-border-subtle);
752
794
  border-radius: 12px;
753
795
  overflow: hidden;
754
796
  }
755
797
 
756
798
  .orion-builder-settings-group-header {
757
799
  align-items: center;
758
- background: linear-gradient(180deg, rgba(18, 74, 55, 0.06), rgba(18, 74, 55, 0));
800
+ background: linear-gradient(180deg, var(--orion-studio-accent-soft), transparent);
759
801
  border: none;
760
802
  color: var(--orion-studio-ink);
761
803
  cursor: pointer;
@@ -789,7 +831,7 @@ h4 {
789
831
  }
790
832
 
791
833
  .orion-builder-settings-group-body {
792
- border-top: 1px solid rgba(13, 74, 55, 0.08);
834
+ border-top: 1px solid var(--orion-studio-accent-border-hairline);
793
835
  display: grid;
794
836
  gap: 0.6rem;
795
837
  padding: 0.65rem;
@@ -817,7 +859,7 @@ h4 {
817
859
 
818
860
  .orion-builder-settings-input {
819
861
  background: #fff;
820
- border: 1px solid rgba(13, 74, 55, 0.2);
862
+ border: 1px solid var(--orion-studio-accent-border);
821
863
  border-radius: 10px;
822
864
  color: var(--orion-studio-ink);
823
865
  font-size: 0.79rem;
@@ -843,7 +885,7 @@ h4 {
843
885
  }
844
886
 
845
887
  .orion-builder-settings-empty {
846
- border: 1px dashed rgba(13, 74, 55, 0.2);
888
+ border: 1px dashed var(--orion-studio-accent-border);
847
889
  border-radius: 12px;
848
890
  color: var(--orion-studio-muted);
849
891
  font-size: 0.75rem;
@@ -864,8 +906,8 @@ h4 {
864
906
  }
865
907
 
866
908
  .orion-builder-settings-add-btn {
867
- background: rgba(18, 74, 55, 0.06);
868
- border: 1px solid rgba(13, 74, 55, 0.2);
909
+ background: var(--orion-studio-accent-soft);
910
+ border: 1px solid var(--orion-studio-accent-border);
869
911
  border-radius: 999px;
870
912
  color: var(--orion-studio-ink);
871
913
  cursor: pointer;
@@ -875,7 +917,7 @@ h4 {
875
917
  }
876
918
 
877
919
  .orion-builder-settings-inline-btn {
878
- border: 1px solid rgba(13, 74, 55, 0.22);
920
+ border: 1px solid var(--orion-studio-accent-border-strong);
879
921
  border-radius: 999px;
880
922
  color: var(--orion-studio-ink);
881
923
  cursor: pointer;
@@ -895,14 +937,14 @@ h4 {
895
937
  }
896
938
 
897
939
  .orion-builder-settings-item-card {
898
- border: 1px solid rgba(13, 74, 55, 0.15);
940
+ border: 1px solid var(--orion-studio-accent-border-subtle);
899
941
  border-radius: 11px;
900
942
  overflow: hidden;
901
943
  }
902
944
 
903
945
  .orion-builder-settings-item-toggle {
904
946
  align-items: center;
905
- background: linear-gradient(180deg, rgba(18, 74, 55, 0.06), rgba(18, 74, 55, 0));
947
+ background: linear-gradient(180deg, var(--orion-studio-accent-soft), transparent);
906
948
  border: none;
907
949
  cursor: pointer;
908
950
  display: flex;
@@ -928,7 +970,7 @@ h4 {
928
970
  }
929
971
 
930
972
  .orion-builder-settings-item-body {
931
- border-top: 1px solid rgba(13, 74, 55, 0.1);
973
+ border-top: 1px solid var(--orion-studio-accent-border-subtle);
932
974
  display: grid;
933
975
  gap: 0.52rem;
934
976
  padding: 0.56rem;