@churchapps/apphelper 1.7.2 → 1.7.4

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 (97) hide show
  1. package/dist/components/notes/Notes.js +27 -27
  2. package/dist/login/LoginPage.d.ts.map +1 -1
  3. package/dist/login/LoginPage.js +3 -2
  4. package/dist/login/LoginPage.js.map +1 -1
  5. package/dist/markdown/components/htmlEditor/editor.css +879 -879
  6. package/dist/markdown/components/htmlEditor/images/icons/arrow-clockwise.svg +3 -3
  7. package/dist/markdown/components/htmlEditor/images/icons/arrow-counterclockwise.svg +3 -3
  8. package/dist/markdown/components/htmlEditor/images/icons/chat-square-quote.svg +3 -3
  9. package/dist/markdown/components/htmlEditor/images/icons/chevron-down.svg +2 -2
  10. package/dist/markdown/components/htmlEditor/images/icons/code.svg +2 -2
  11. package/dist/markdown/components/htmlEditor/images/icons/journal-code.svg +4 -4
  12. package/dist/markdown/components/htmlEditor/images/icons/journal-text.svg +4 -4
  13. package/dist/markdown/components/htmlEditor/images/icons/justify.svg +2 -2
  14. package/dist/markdown/components/htmlEditor/images/icons/link.svg +3 -3
  15. package/dist/markdown/components/htmlEditor/images/icons/list-ol.svg +3 -3
  16. package/dist/markdown/components/htmlEditor/images/icons/list-ul.svg +2 -2
  17. package/dist/markdown/components/htmlEditor/images/icons/pencil-fill.svg +2 -2
  18. package/dist/markdown/components/htmlEditor/images/icons/text-center.svg +2 -2
  19. package/dist/markdown/components/htmlEditor/images/icons/text-left.svg +2 -2
  20. package/dist/markdown/components/htmlEditor/images/icons/text-paragraph.svg +2 -2
  21. package/dist/markdown/components/htmlEditor/images/icons/text-right.svg +2 -2
  22. package/dist/markdown/components/htmlEditor/images/icons/type-bold.svg +2 -2
  23. package/dist/markdown/components/htmlEditor/images/icons/type-h1.svg +2 -2
  24. package/dist/markdown/components/htmlEditor/images/icons/type-h2.svg +2 -2
  25. package/dist/markdown/components/htmlEditor/images/icons/type-h3.svg +2 -2
  26. package/dist/markdown/components/htmlEditor/images/icons/type-h4.svg +12 -12
  27. package/dist/markdown/components/htmlEditor/images/icons/type-italic.svg +2 -2
  28. package/dist/markdown/components/htmlEditor/images/icons/type-strikethrough.svg +2 -2
  29. package/dist/markdown/components/htmlEditor/images/icons/type-underline.svg +2 -2
  30. package/dist/markdown/components/markdownEditor/editor.css +787 -787
  31. package/dist/markdown/components/markdownEditor/images/icons/arrow-clockwise.svg +3 -3
  32. package/dist/markdown/components/markdownEditor/images/icons/arrow-counterclockwise.svg +3 -3
  33. package/dist/markdown/components/markdownEditor/images/icons/chat-square-quote.svg +3 -3
  34. package/dist/markdown/components/markdownEditor/images/icons/chevron-down.svg +2 -2
  35. package/dist/markdown/components/markdownEditor/images/icons/code.svg +2 -2
  36. package/dist/markdown/components/markdownEditor/images/icons/journal-code.svg +4 -4
  37. package/dist/markdown/components/markdownEditor/images/icons/journal-text.svg +4 -4
  38. package/dist/markdown/components/markdownEditor/images/icons/justify.svg +2 -2
  39. package/dist/markdown/components/markdownEditor/images/icons/link.svg +3 -3
  40. package/dist/markdown/components/markdownEditor/images/icons/list-ol.svg +3 -3
  41. package/dist/markdown/components/markdownEditor/images/icons/list-ul.svg +2 -2
  42. package/dist/markdown/components/markdownEditor/images/icons/pencil-fill.svg +2 -2
  43. package/dist/markdown/components/markdownEditor/images/icons/text-center.svg +2 -2
  44. package/dist/markdown/components/markdownEditor/images/icons/text-left.svg +2 -2
  45. package/dist/markdown/components/markdownEditor/images/icons/text-paragraph.svg +2 -2
  46. package/dist/markdown/components/markdownEditor/images/icons/text-right.svg +2 -2
  47. package/dist/markdown/components/markdownEditor/images/icons/type-bold.svg +2 -2
  48. package/dist/markdown/components/markdownEditor/images/icons/type-h1.svg +2 -2
  49. package/dist/markdown/components/markdownEditor/images/icons/type-h2.svg +2 -2
  50. package/dist/markdown/components/markdownEditor/images/icons/type-h3.svg +2 -2
  51. package/dist/markdown/components/markdownEditor/images/icons/type-h4.svg +12 -12
  52. package/dist/markdown/components/markdownEditor/images/icons/type-italic.svg +2 -2
  53. package/dist/markdown/components/markdownEditor/images/icons/type-strikethrough.svg +2 -2
  54. package/dist/markdown/components/markdownEditor/images/icons/type-underline.svg +2 -2
  55. package/dist/public/css/cropper.css +309 -309
  56. package/dist/public/css/styles.css +111 -111
  57. package/dist/public/locales/ar.json +420 -389
  58. package/dist/public/locales/cs.json +420 -389
  59. package/dist/public/locales/da.json +420 -389
  60. package/dist/public/locales/de.json +420 -389
  61. package/dist/public/locales/en.json +420 -389
  62. package/dist/public/locales/es.json +420 -389
  63. package/dist/public/locales/fi.json +420 -389
  64. package/dist/public/locales/fr.json +420 -389
  65. package/dist/public/locales/hi.json +420 -389
  66. package/dist/public/locales/hu.json +420 -389
  67. package/dist/public/locales/id.json +420 -389
  68. package/dist/public/locales/it.json +420 -389
  69. package/dist/public/locales/ja.json +420 -389
  70. package/dist/public/locales/ko.json +420 -389
  71. package/dist/public/locales/lt.json +420 -389
  72. package/dist/public/locales/nl.json +420 -389
  73. package/dist/public/locales/no.json +420 -389
  74. package/dist/public/locales/pl.json +420 -389
  75. package/dist/public/locales/pt.json +420 -389
  76. package/dist/public/locales/ro.json +420 -389
  77. package/dist/public/locales/ru.json +420 -389
  78. package/dist/public/locales/sk.json +420 -389
  79. package/dist/public/locales/sl.json +420 -389
  80. package/dist/public/locales/sr.json +420 -389
  81. package/dist/public/locales/sv.json +420 -389
  82. package/dist/public/locales/tl.json +420 -389
  83. package/dist/public/locales/tr.json +420 -389
  84. package/dist/public/locales/uk.json +420 -389
  85. package/dist/public/locales/vi.json +420 -389
  86. package/dist/public/locales/zh.json +420 -389
  87. package/dist/website/components/elementTypes/PodcastElement.js +2 -2
  88. package/dist/website/components/elementTypes/PodcastElement.js.map +1 -1
  89. package/dist/website/components/elementTypes/SermonElement.js +2 -2
  90. package/dist/website/components/elementTypes/SermonElement.js.map +1 -1
  91. package/dist/website/components/video/VideoContainer.d.ts.map +1 -1
  92. package/dist/website/components/video/VideoContainer.js +2 -1
  93. package/dist/website/components/video/VideoContainer.js.map +1 -1
  94. package/dist/website/helpers/StyleHelper.js +9 -9
  95. package/dist/website/styles/animations.css +76 -76
  96. package/dist/website/styles/pages.css +963 -963
  97. package/package.json +2 -2
@@ -1,963 +1,963 @@
1
- :root {
2
- scroll-behavior: auto;
3
- --light-bg-text-color: #333;
4
- --light-bg-link-color: #0b4a7f;
5
- --dark-bg-text-color: #EEEEEE;
6
- --dark-bg-link-color: #FFFFFF;
7
- --nav-bg-color: #FFFFFF;
8
- }
9
-
10
- body {
11
- font-family: "Roboto", sans-serif;
12
- color: var(--light-bg-text-color);
13
- }
14
-
15
- .sectionAnchor {
16
- display: block;
17
- position: relative;
18
- top: -80px;
19
- visibility: hidden;
20
-
21
- }
22
-
23
- /*
24
- :target {
25
- scroll-margin-top: 80px;
26
- }*/
27
-
28
- .table {
29
- width: 100%;
30
- }
31
-
32
- .table thead tr th {
33
- text-align: left;
34
- }
35
-
36
- .d-block {
37
- display: block;
38
- }
39
-
40
- a {
41
- color: var(--light-bg-link-color);
42
- text-decoration: none;
43
- }
44
-
45
- img {
46
- width: 100%;
47
- }
48
-
49
- body {
50
- background-color: #f3f3f6;
51
- margin: 0px;
52
- }
53
-
54
- #headerLogo {
55
- max-width: 260px;
56
- max-height: 65px;
57
- }
58
-
59
- .page .editor-input {
60
- font-size: inherit;
61
- }
62
-
63
- .page {
64
- font-family: var(--bodyFont), "Roboto", sans-serif;
65
- }
66
-
67
- .page h1,
68
- .page h2,
69
- .page h3,
70
- .page h4,
71
- .page h5,
72
- .page h6 {
73
- font-family: var(--headingFont), "Roboto", sans-serif;
74
- }
75
-
76
- .page h1 {
77
- font-size: 3em;
78
- line-height: 1.2em;
79
- border-bottom: none;
80
- /*margin-bottom: 40px;*/
81
- }
82
-
83
- .page h2 {
84
- /*
85
- padding-bottom: 10px;
86
- margin-bottom: 25px;
87
- font-size: 35px;
88
- line-height: 40px;*/
89
- font-size: 2.2em;
90
- line-height: 1.2em;
91
- text-transform: none;
92
- }
93
-
94
- .page h3 {
95
- /*font-size: 22px;
96
- line-height: 26px;*/
97
- font-size: 1.6em;
98
- line-height: 1.2em;
99
- }
100
-
101
- .page h4 {
102
- /*font-size: 22px;
103
- line-height: 26px;*/
104
- font-size: 1.3em;
105
- line-height: 1.2em;
106
- }
107
-
108
- .page .section {
109
- min-height: 100px;
110
- padding-top: 40px;
111
- padding-bottom: 40px;
112
- position: relative;
113
- }
114
-
115
- .page .sectionVideo {
116
- min-height: 100px;
117
- padding-top: 40px;
118
- padding-bottom: 40px;
119
- }
120
-
121
- .page .sectionFirst {
122
- padding-top: 160px;
123
- }
124
-
125
- .page .videoDark {
126
- color: var(--dark-bg-text-color);
127
- }
128
-
129
- .page .sectionDark {
130
- color: var(--dark-bg-text-color);
131
- }
132
-
133
-
134
- .page .sectionDark .editor-link {
135
- color: var(--dark-bg-link-color);
136
- font-weight: bold;
137
- }
138
-
139
- .page .sectionBG {
140
- /*background-attachment: fixed;*/
141
- background-position-x: 50%;
142
- background-position-y: 50%;
143
- background-size: cover;
144
- position: relative;
145
- }
146
-
147
- .page .sectionBG:before {
148
- content: '';
149
- position: absolute;
150
- left: 0;
151
- top: 0;
152
- right: 0;
153
- bottom: 0;
154
- width: 100%;
155
- height: 100%;
156
- background: #000;
157
- opacity: .55;
158
- box-sizing: inherit;
159
- }
160
-
161
- /* Box background overlay/tint — opt-in via inline --overlay-opacity (defaults off) */
162
- .page .boxBG {
163
- background-size: cover;
164
- background-position: 50% 50%;
165
- position: relative;
166
- }
167
-
168
- .page .boxBG:before {
169
- content: '';
170
- position: absolute;
171
- inset: 0;
172
- background: var(--overlay-color, #000);
173
- opacity: var(--overlay-opacity, 0);
174
- pointer-events: none;
175
- box-sizing: inherit;
176
- }
177
-
178
- .page .boxBG > * {
179
- position: relative;
180
- z-index: 1;
181
- }
182
-
183
- /*
184
- .section {
185
- color: #333;
186
- }
187
- */
188
-
189
- #navbar.transparent {
190
- background-color: rgba(0, 0, 0, 0) !important;
191
- box-shadow: none;
192
- }
193
-
194
- /*
195
- #navbar.transparent:not(.light) a {
196
- color: var(--dark-bg-link-color);
197
- }
198
- */
199
-
200
- #navbar:not(.transparent) button,
201
- #navbar.transparent.light button {
202
- color: #333;
203
- }
204
-
205
- #navbar.transparent:not(.light) button {
206
- color: #FFF;
207
- }
208
-
209
- .capitalize {
210
- text-transform: capitalize;
211
- }
212
-
213
- .btn-warning,
214
- .btn-warning:hover {
215
- color: #fff;
216
- }
217
-
218
- .logo {
219
- display: flex;
220
- width: 200px;
221
- margin-right: 15px;
222
- }
223
-
224
- #navbar {
225
- background-color: var(--nav-bg-color) !important;
226
- padding: 11px 0;
227
- margin-bottom: 20px;
228
- box-shadow: 0px 3px 3px 0px #999;
229
- }
230
-
231
- #navbar .nav-item {
232
- font-size: 14px;
233
- }
234
-
235
- #navbar .nav-link {
236
- color: #555;
237
- height: 55px;
238
- vertical-align: middle;
239
- line-height: 45px;
240
- max-width: 150px;
241
- margin-left: auto;
242
- margin-right: auto;
243
- }
244
-
245
- #navbar svg {
246
- height: 15px;
247
- width: 15px;
248
- }
249
-
250
- #navbar .active {
251
- border-bottom: 2px solid #03a9f4;
252
- }
253
-
254
- #navRight {
255
- white-space: nowrap;
256
- }
257
-
258
- #navRight img {
259
- width: 32px;
260
- height: 24px;
261
- margin-top: -3px;
262
- margin-right: 8px;
263
- }
264
-
265
-
266
- #navSpacer {
267
- height: 57px;
268
- margin-bottom: 25px;
269
- }
270
-
271
- .blue {
272
- color: #03a9f4;
273
- }
274
-
275
- .btn-info {
276
- background-color: var(--light-bg-link-color);
277
- border-color: var(--light-bg-link-color);
278
- }
279
-
280
- .btn-primary:hover {
281
- filter: brightness(90%);
282
- }
283
-
284
- .btn-success {
285
- background-color: #77cc00;
286
- border-color: #70db86;
287
- }
288
-
289
- .btn-success:hover {
290
- background-color: #55aa00;
291
- border-color: #55aa00;
292
- }
293
-
294
- .btn-danger {
295
- background-color: #cc0011;
296
- border-color: #cc0011;
297
- }
298
-
299
- .btn-danger:hover {
300
- background-color: #bb0000;
301
- border-color: #bb0000;
302
- }
303
-
304
- #footer {
305
- background-color: #333;
306
- padding-top: 40px;
307
- padding-bottom: 40px;
308
- color: #eee;
309
- }
310
-
311
- #footer img {
312
- max-width: 450px;
313
- margin-bottom: 20px;
314
- }
315
-
316
- .form-control::placeholder {
317
- color: #ccc;
318
- }
319
-
320
- label .description {
321
- font-size: 12px;
322
- padding-left: 10px;
323
- }
324
-
325
- .alert p {
326
- margin-bottom: 0;
327
- }
328
-
329
- .no-default-style {
330
- border: none;
331
- background: none;
332
- }
333
-
334
- .lead {
335
- font-size: 20px;
336
- font-weight: 300;
337
- }
338
-
339
- .videoWrapper {
340
- position: relative;
341
- padding-bottom: 56.25%;
342
- height: 0;
343
- }
344
-
345
- .videoWrapper iframe {
346
- position: absolute;
347
- top: 0;
348
- left: 0;
349
- width: 100%;
350
- height: 100%;
351
- }
352
-
353
- dropdown-menu a {
354
- color: #03a9f4;
355
- }
356
-
357
- .btn-light {
358
- border: 1px solid #333;
359
- }
360
-
361
- .smallCenterBlock {
362
- max-width: 350px;
363
- margin-left: auto;
364
- margin-right: auto;
365
- }
366
-
367
- #loginBox {
368
- background-color: #fff;
369
- border: 1px solid #ccc;
370
- border-radius: 5px;
371
- padding: 20px;
372
- }
373
-
374
- #loginBox .form-group {
375
- margin-bottom: 1rem;
376
- }
377
-
378
- .text-right {
379
- text-align: right;
380
- }
381
-
382
- .form-control.is-invalid {
383
- background-image: none;
384
- }
385
-
386
- a.dropdown-toggle::after {
387
- display: none;
388
- }
389
-
390
- .modalMarkdown textarea {
391
- height: 75vh !important;
392
- overflow-y: scroll !important;
393
- }
394
-
395
- #markdownPreview table {
396
- border-spacing: 0px;
397
- }
398
-
399
- #markdownPreview table td,
400
- #markdownPreview table th {
401
- border: 1px solid #DDD;
402
- margin: 0px;
403
- padding: 2px
404
- }
405
-
406
- .sectionEditButton,
407
- .elementEditButton {
408
- float: right;
409
- background-color: "#FFF";
410
- border-radius: 5px;
411
- background-color: #FFF;
412
- }
413
-
414
- .columnWrapper:hover {
415
- background-color: #FF9999;
416
- }
417
-
418
- .elementWrapper:not(:has(.elementWrapper:hover)):hover {
419
- /*background-color: #28a745;*/
420
- border: 3px solid #28a745;
421
- }
422
-
423
- .elementWrapper:not(:has(.elementWrapper:hover)):hover:before {
424
- content: "ELEMENT";
425
- font-size: 14px;
426
- background-color: #28a745;
427
- color: #FFF;
428
- display: block;
429
- width: 100px;
430
- position: relative;
431
- text-align: center;
432
- margin-top: -18px;
433
- margin-left: -3px;
434
- height: 18px;
435
- margin-bottom: -2px;
436
- }
437
-
438
- .elementWrapper.box:not(:has(.elementWrapper:hover)):hover:before {
439
- content: "BOX" !important;
440
- }
441
-
442
- .elementWrapper.card:not(:has(.elementWrapper:hover)):hover:before {
443
- content: "CARD" !important;
444
- }
445
-
446
- .elementWrapper.carousel:not(:has(.elementWrapper:hover)):hover:before {
447
- content: "CAROUSEL" !important;
448
- }
449
-
450
- .elementWrapper.embed:not(:has(.elementWrapper:hover)):hover:before {
451
- content: "EMBED" !important;
452
- }
453
-
454
- .elementWrapper.expandable:not(:has(.elementWrapper:hover)):hover:before {
455
- content: "EXPANDABLE" !important;
456
- }
457
-
458
- .elementWrapper.html:not(:has(.elementWrapper:hover)):hover:before {
459
- content: "HTML" !important;
460
- }
461
-
462
- .elementWrapper.image:not(:has(.elementWrapper:hover)):hover:before {
463
- content: "IMAGE" !important;
464
- }
465
-
466
- .elementWrapper.location:not(:has(.elementWrapper:hover)):hover:before {
467
- content: "LOCATION" !important;
468
- }
469
-
470
- .elementWrapper.row:not(:has(.elementWrapper:hover)):hover:before {
471
- content: "ROW" !important;
472
- }
473
-
474
- .elementWrapper.table:not(:has(.elementWrapper:hover)):hover:before {
475
- content: "TABLE" !important;
476
- }
477
-
478
- .elementWrapper.text:not(:has(.elementWrapper:hover)):hover:before {
479
- content: "TEXT" !important;
480
- }
481
-
482
- .elementWrapper.textWithPhoto:not(:has(.elementWrapper:hover)):hover:before {
483
- content: "TEXT WITH PHOTO" !important;
484
- }
485
-
486
- .elementWrapper.video:not(:has(.elementWrapper:hover)):hover:before {
487
- content: "VIDEO" !important;
488
- }
489
-
490
- .elementWrapper.whiteSpace:not(:has(.elementWrapper:hover)):hover:before {
491
- content: "WHITE SPACE" !important;
492
- }
493
-
494
- .draggable-container {
495
- position: relative;
496
- display: flex;
497
- align-items: center;
498
- cursor: text; /* Keeps text selection */
499
- }
500
-
501
- /* Drag handle - Always present but only visible on hover */
502
- .drag-handle {
503
- position: absolute;
504
- width: 20px;
505
- height: 20px;
506
- background-color: green;
507
- color: white;
508
- display: flex;
509
- align-items: center;
510
- justify-content: center;
511
- border-radius: 3px;
512
- cursor: grab;
513
- user-select: none;
514
- pointer-events: all;
515
- opacity: 0;
516
- transition: opacity 0.2s;
517
- z-index: 1500;
518
- }
519
-
520
- /* Section drag handle - INSIDE top-left corner */
521
- .section-handle {
522
- background-color: #3333FF;
523
- left: 1px;
524
- top: 30px;
525
- z-index: 100;
526
- }
527
-
528
- /* Element drag handle - Middle-left */
529
- .drag-handle:not(.section-handle) {
530
- left: 5px;
531
- top: 50%;
532
- transform: translateY(-50%);
533
- }
534
-
535
- /* Content area - text remains selectable */
536
- .draggable-content {
537
- flex: 1;
538
- user-select: text;
539
- }
540
-
541
-
542
- .sectionWrapper:not(:has(.elementWrapper:hover)):hover {
543
- /*background-color: #9999FF !important;*/
544
- border: 3px solid #3333FF;
545
- padding-bottom: 38px;
546
- }
547
-
548
- .sectionWrapper:not(:has(.elementWrapper:hover)):hover:before {
549
- content: "SECTION";
550
- background-color: #3333FF;
551
- color: #FFF;
552
- display: block;
553
- width: 100px;
554
- position: relative;
555
- text-align: center;
556
- font-size: 14px;
557
- height: 18px;
558
- /*margin-bottom: -29px;*/
559
- margin-top: -40px !important;
560
- margin-bottom: 20px;
561
- }
562
-
563
- .sectionWrapper.sectionBlock:not(:has(.elementWrapper:hover)):hover:before {
564
- content: "BLOCK" !important;
565
- }
566
-
567
- /*
568
- .sectionWrapper {
569
- padding-top: 0 !important;
570
- }*/
571
-
572
- .sectionDark {
573
- color: var(--dark-bg-text-color);
574
- }
575
-
576
- /*
577
- .sectionDark.sectionWrapper:not(:has(.elementWrapper:hover)):hover {
578
- background-color: #007bff !important;
579
- }*/
580
-
581
- .sectionDark .columnWrapper:hover {
582
- background-color: #990000;
583
- }
584
-
585
- /*
586
- .sectionDark .elementWrapper:hover {
587
- background-color: #009900;
588
- }
589
- */
590
- .sectionActions {
591
- display: none;
592
- position: absolute;
593
- top: 1;
594
- right: 0;
595
- margin-top: -70px;
596
- z-index: 999;
597
- }
598
-
599
- .sectionActions.alwaysVisible {
600
- display: block;
601
- z-index: 9999;
602
- }
603
-
604
- .sectionBlock .sectionActions {
605
- margin-top: 30px;
606
- }
607
-
608
- .sectionWrapper:not(:has(.elementWrapper:hover)):hover .sectionActions {
609
- display: block;
610
- }
611
-
612
- .elementActions {
613
- display: none;
614
- position: absolute;
615
- top: 10;
616
- right: 0;
617
- }
618
-
619
- .elementWrapper:hover .elementActions {
620
- display: block;
621
- z-index: 2;
622
- }
623
-
624
- #embeddedLayout {
625
- height: 100vh;
626
- background-color: #FFFFFF;
627
- }
628
-
629
- #embeddedLayout .page .sectionFirst {
630
- padding-top: 0px;
631
- }
632
-
633
- .no-resize {
634
- width: auto;
635
- max-width: 100%;
636
- }
637
-
638
- .elBox {
639
- margin-bottom: 20px;
640
- }
641
-
642
- .elTextWithPhoto {
643
- margin-bottom: 20px;
644
- }
645
-
646
- .elText {
647
- margin-bottom: 20px;
648
- }
649
-
650
- /* Style inline code */
651
- code {
652
- background-color: #f5f5f5;
653
- padding: 2px 4px;
654
- border-radius: 3px;
655
- font-family: "Source Code Pro", monospace !important;
656
- }
657
-
658
- pre {
659
- background-color: #f8f9fa;
660
- padding: 12px;
661
- border-radius: 6px;
662
- border-left: 4px solid #6c757d;
663
- white-space: pre-wrap;
664
- word-wrap: break-word;
665
- overflow-x: auto;
666
- }
667
-
668
- /* Ensure code inside block follows styling */
669
- pre.code-block code {
670
- font-size: 14px;
671
- color: #222;
672
- background: none;
673
- padding: 0;
674
- }
675
- .editor-list-ul,
676
- .editor-list-ol {
677
- padding-left: 0px;
678
- margin-left: 40px;
679
- }
680
-
681
- .editor-list-ol li {
682
- list-style-type: decimal !important;
683
- margin-bottom: 0px;
684
- }
685
-
686
-
687
- .editor-list-ul li {
688
- list-style-type: disc !important;
689
- }
690
-
691
- .page th {
692
- font-weight: bold;
693
- }
694
-
695
- .pageTable {
696
- width: 100%;
697
- }
698
-
699
- .pageTable th {
700
- text-align: left;
701
- }
702
-
703
- .pageTable td,
704
- .pageTable th {
705
- border-bottom: 1px solid;
706
- color: inherit;
707
- }
708
-
709
- .calbox,
710
- #conbtn {
711
- color: #FFFFFF;
712
- background: linear-gradient(rgb(0, 0, 0), var(--darkAccent));
713
- }
714
-
715
- code {
716
- color: #000;
717
- }
718
-
719
-
720
-
721
- #groupHero {
722
- min-height: 200px;
723
- background-color: var(--darkAccent);
724
- color: #FFFFFF;
725
- }
726
-
727
- #groupHero .content {
728
- background: linear-gradient(rgba(0, 0, 0, .8), rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.0));
729
- width: 100%;
730
- height: 100%;
731
- padding-top: 110px;
732
- min-height: 260px;
733
- }
734
-
735
- #groupHero H1 {
736
- margin-top: 0px;
737
- padding-bottom: 0px;
738
- margin-bottom: 0px;
739
- font-size: 40px;
740
- }
741
-
742
- #groupHero .badge {
743
- border-radius: 10px;
744
- float: right;
745
- margin-top: -150px;
746
- margin-bottom: -120px;
747
- position: relative;
748
- z-index: 1000;
749
-
750
- }
751
-
752
-
753
- @media (max-width: 768px) {
754
- #calEntity {
755
- order: -1;
756
- }
757
-
758
- #groupHero .badge {
759
- float: left;
760
- margin-top: 15px;
761
- width:100%;
762
- height:auto;
763
- margin-bottom: 15px;
764
- }
765
- }
766
-
767
- .headingsLight h1, .headingsLight h2, .headingsLight h3, .headingsLight h4 { color: var(--light); }
768
- .headingsLightAccent h1, .headingsLightAccent h2, .headingsLightAccent h3, .headingsLightAccent h4 { color: var(--lightAccent); }
769
- .headingsAccent h1, .headingsAccent h2, .headingsAccent h3, .headingsAccent h4 { color: var(--accent); }
770
- .headingsDarkAccent h1, .headingsDarkAccent h2, .headingsDarkAccent h3, .headingsDarkAccent h4 { color: var(--darkAccent); }
771
- .headingsDark h1, .headingsDark h2, .headingsDark h3, .headingsDark h4 { color: var(--dark); }
772
-
773
- .linksLight a { color: var(--light); }
774
- .linksLightAccent a { color: var(--lightAccent); }
775
- .linksAccent a { color: var(--accent); }
776
- .linksDarkAccent a { color: var(--darkAccent); }
777
- .linksDark a { color: var(--dark); }
778
-
779
- /* Lightbox overlay */
780
- .b1-lightbox {
781
- position: fixed;
782
- inset: 0;
783
- z-index: 9999;
784
- background: rgba(0, 0, 0, 0.85);
785
- display: flex;
786
- align-items: center;
787
- justify-content: center;
788
- cursor: pointer;
789
- }
790
-
791
- .b1-lightbox img {
792
- width: 98vw;
793
- height: 98vh;
794
- object-fit: contain;
795
- cursor: default;
796
- }
797
-
798
- .b1-lightbox__close {
799
- position: absolute;
800
- top: 16px;
801
- right: 16px;
802
- background: none;
803
- border: none;
804
- color: #fff;
805
- font-size: 36px;
806
- line-height: 1;
807
- cursor: pointer;
808
- padding: 4px 12px;
809
- opacity: 0.8;
810
- transition: opacity 0.2s;
811
- }
812
-
813
- .b1-lightbox__close:hover {
814
- opacity: 1;
815
- }
816
-
817
- /* DraggableWrapper - show drag indicator on hover (CSS-only, no React state) */
818
- .draggable-wrapper:hover .drag-indicator {
819
- opacity: 1 !important;
820
- }
821
-
822
-
823
- /* Per-device visibility (hide flags stored in stylesJSON desktop/mobile display:none) */
824
- @media (min-width: 768px) {
825
- .hiddenOnDesktop { display: none !important; }
826
- }
827
- @media (max-width: 767px) {
828
- .hiddenOnMobile { display: none !important; }
829
- }
830
-
831
- /* iconFeature */
832
- .iconFeature h3 { margin-top: 8px; }
833
-
834
- /* gallery */
835
- .gallery-caption { font-size: 0.85rem; padding: 4px 2px; opacity: 0.85; }
836
- .gallery-empty,
837
- .testimonial-empty,
838
- .social-icons-empty,
839
- .stats-empty,
840
- .campaign-empty,
841
- .staff-empty,
842
- .service-times-empty {
843
- padding: 24px;
844
- border: 1px dashed #bbb;
845
- border-radius: 4px;
846
- text-align: center;
847
- color: #888;
848
- }
849
- .gallery-lightbox { position: relative; display: flex; flex-direction: column; align-items: center; }
850
- .gallery-lightbox__img { max-width: 92vw; max-height: 88vh; object-fit: contain; }
851
- .gallery-lightbox__caption { color: #fff; margin-top: 12px; text-align: center; }
852
- .gallery-lightbox__close { position: absolute !important; top: -48px; right: 0; }
853
- .gallery-lightbox__prev { position: absolute !important; left: -56px; top: 50%; transform: translateY(-50%); }
854
- .gallery-lightbox__next { position: absolute !important; right: -56px; top: 50%; transform: translateY(-50%); }
855
- @media (max-width: 767px) {
856
- .gallery-lightbox__prev { left: 0; }
857
- .gallery-lightbox__next { right: 0; }
858
- }
859
-
860
- /* testimonial */
861
- .testimonial-quote { padding: 16px 24px; }
862
- .testimonial-text { font-size: 1.25rem; font-style: italic; line-height: 1.5; }
863
- .testimonial-author { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 12px; }
864
- .testimonial-photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
865
- .testimonial-name { font-weight: 600; font-style: normal; }
866
- .testimonial-role { font-size: 0.85rem; opacity: 0.75; }
867
-
868
- /* countdown */
869
- .countdown { text-align: center; }
870
- .countdown-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 12px; }
871
- .countdown-tiles { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
872
- .countdown-tile { display: flex; flex-direction: column; align-items: center; min-width: 64px; padding: 12px 8px; border-radius: 6px; background: rgba(0, 0, 0, 0.06); }
873
- .countdown-value { font-size: 2rem; font-weight: 700; line-height: 1; }
874
- .countdown-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; margin-top: 4px; }
875
- .countdown-complete { font-size: 1.5rem; font-weight: 700; }
876
-
877
- /* stats */
878
- .stats { text-align: center; }
879
- .stat-value { font-size: 2.5rem; font-weight: 700; line-height: 1.1; }
880
- .stat-label { font-size: 0.9rem; opacity: 0.75; margin-top: 4px; }
881
-
882
- /* section dividers */
883
- .sectionWithDivider { position: relative; overflow: hidden; }
884
- .sectionDivider { position: absolute; left: 0; width: 100%; line-height: 0; pointer-events: none; overflow: hidden; z-index: 1; }
885
- .sectionDivider svg { display: block; width: 100%; height: 100%; }
886
-
887
- /* sermons layouts (grid / list / featuredLatest) */
888
- .sermonGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; padding: 20px 0; }
889
- .sermonList { display: flex; flex-direction: column; gap: 16px; padding: 20px 0; }
890
- .sermonListItem { display: flex; gap: 16px; align-items: center; cursor: pointer; }
891
- .sermonCard { cursor: pointer; }
892
- .sermonFeatured { cursor: pointer; max-width: 960px; margin: 20px auto; }
893
- .sermonThumb { position: relative; overflow: hidden; }
894
- .sermonThumb img { display: block; width: 100%; height: 190px; object-fit: cover; object-position: center; }
895
- .sermonThumbList { width: 220px; flex-shrink: 0; }
896
- .sermonThumbList img { height: 124px; }
897
- .sermonThumbFeatured img { height: 420px; }
898
- .sermonPlayIcon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; opacity: 0.9; filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5)); }
899
- .sermonListBody { flex: 1; min-width: 0; }
900
- .sermonCardTitle { font-size: 20px; font-weight: 500; margin: 8px 0 2px; color: #333; }
901
- .sermonFeaturedTitle { font-size: 32px; font-weight: 600; margin: 12px 0 4px; color: #333; }
902
- .sermonCardDate { font-size: 0.85rem; opacity: 0.7; }
903
- .sermonListDesc { font-size: 0.9rem; opacity: 0.8; margin: 6px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
904
-
905
- /* podcast (external RSS feed) */
906
- .podcast { max-width: 960px; margin: 0 auto; }
907
- .podcastHeader { display: flex; gap: 20px; align-items: center; margin-bottom: 8px; }
908
- .podcastArtwork { width: 120px; height: 120px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
909
- .podcastTitle { font-size: 28px; font-weight: 600; margin: 0 0 4px; }
910
- .podcastDesc { margin: 0; opacity: 0.8; }
911
- .podcastList .sermonListItem { cursor: default; align-items: flex-start; scroll-margin-top: 80px; }
912
- .podcastEpisodeMeta { font-size: 0.85rem; opacity: 0.7; }
913
- .podcastMetaSep { padding: 0 2px; }
914
- .podcastEpisodeDesc { font-size: 0.9rem; opacity: 0.85; margin: 6px 0 0; white-space: pre-line; }
915
- .podcastAudio { display: block; width: 100%; max-width: 640px; margin-top: 10px; }
916
- .podcastEmpty { padding: 12px; border: 1px dashed #bbb; border-radius: 4px; opacity: 0.8; }
917
-
918
- /* campaignProgress */
919
- .campaignProgress { max-width: 720px; }
920
- .campaign-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 8px; }
921
- .campaign-bar { height: 20px; border-radius: 10px; background: rgba(0, 0, 0, 0.1); overflow: hidden; }
922
- .campaign-bar-fill { height: 100%; border-radius: 10px; background: var(--accent, #1565c0); transition: width 1.2s ease; }
923
- .campaign-percent { font-size: 1.5rem; font-weight: 700; margin-top: 8px; }
924
- .campaign-amounts { opacity: 0.85; }
925
- .campaign-count { font-size: 0.85rem; opacity: 0.7; margin-top: 2px; }
926
- .campaign-give { display: inline-block; margin-top: 12px; padding: 8px 20px; border-radius: 4px; background: var(--accent, #1565c0); color: #fff; text-decoration: none; }
927
-
928
- /* staffGrid */
929
- .staff-card { text-align: center; }
930
- .staff-photo { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; margin: 0 auto; display: block; }
931
- .staff-photo--placeholder { background: rgba(0, 0, 0, 0.08); }
932
- .staff-name { font-weight: 600; margin-top: 10px; }
933
- .staff-role { display: inline-block; margin-top: 4px; padding: 2px 10px; border-radius: 12px; font-size: 0.75rem; background: rgba(0, 0, 0, 0.08); }
934
-
935
- /* serviceTimes */
936
- .service-times-title { margin: 0 0 12px; }
937
- .service-group { margin-bottom: 16px; }
938
- .service-name { font-weight: 600; font-size: 1.1rem; }
939
- .service-campus { font-size: 0.85rem; opacity: 0.7; }
940
- .service-time-list { list-style: none; padding: 0; margin: 6px 0 0; }
941
- .service-time { padding: 2px 0; opacity: 0.9; }
942
-
943
- /* announcement banner */
944
- .announcement-banner { position: sticky; top: 0; z-index: 1250; width: 100%; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 10px 48px; text-align: center; box-sizing: border-box; }
945
- .announcement-banner__text { font-weight: 500; }
946
- .announcement-banner__link { text-decoration: underline; font-weight: 600; white-space: nowrap; }
947
- .announcement-banner__close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; font-size: 24px; line-height: 1; cursor: pointer; padding: 4px 8px; opacity: 0.85; }
948
- .announcement-banner__close:hover { opacity: 1; }
949
-
950
- /* launcher (floating action hub) */
951
- .launcher { position: fixed; bottom: 24px; z-index: 1300; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
952
- .launcher--bottomRight { right: 24px; align-items: flex-end; }
953
- .launcher--bottomLeft { left: 24px; align-items: flex-start; }
954
- .launcher-actions { display: flex; flex-direction: column; gap: 10px; }
955
- .launcher--bottomLeft .launcher-actions { align-items: flex-start; }
956
- .launcher--bottomRight .launcher-actions { align-items: flex-end; }
957
- .launcher-action { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border-radius: 22px; background: #fff; color: #333; text-decoration: none; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); opacity: 0; transform: translateY(12px) scale(0.9); pointer-events: none; transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); }
958
- .launcher[data-open="true"] .launcher-action { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
959
- .launcher-action-label { font-weight: 500; white-space: nowrap; }
960
- .launcher-fab { width: 56px; height: 56px; border-radius: 50%; border: none; color: #fff; cursor: pointer; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); display: flex; align-items: center; justify-content: center; align-self: flex-end; }
961
- .launcher--bottomLeft .launcher-fab { align-self: flex-start; }
962
- .launcher-fab-icon { transition: transform 0.25s ease; }
963
- .launcher[data-open="true"] .launcher-fab-icon { transform: rotate(135deg); }
1
+ :root {
2
+ scroll-behavior: auto;
3
+ --light-bg-text-color: #333;
4
+ --light-bg-link-color: #0b4a7f;
5
+ --dark-bg-text-color: #EEEEEE;
6
+ --dark-bg-link-color: #FFFFFF;
7
+ --nav-bg-color: #FFFFFF;
8
+ }
9
+
10
+ body {
11
+ font-family: "Roboto", sans-serif;
12
+ color: var(--light-bg-text-color);
13
+ }
14
+
15
+ .sectionAnchor {
16
+ display: block;
17
+ position: relative;
18
+ top: -80px;
19
+ visibility: hidden;
20
+
21
+ }
22
+
23
+ /*
24
+ :target {
25
+ scroll-margin-top: 80px;
26
+ }*/
27
+
28
+ .table {
29
+ width: 100%;
30
+ }
31
+
32
+ .table thead tr th {
33
+ text-align: left;
34
+ }
35
+
36
+ .d-block {
37
+ display: block;
38
+ }
39
+
40
+ a {
41
+ color: var(--light-bg-link-color);
42
+ text-decoration: none;
43
+ }
44
+
45
+ img {
46
+ width: 100%;
47
+ }
48
+
49
+ body {
50
+ background-color: #f3f3f6;
51
+ margin: 0px;
52
+ }
53
+
54
+ #headerLogo {
55
+ max-width: 260px;
56
+ max-height: 65px;
57
+ }
58
+
59
+ .page .editor-input {
60
+ font-size: inherit;
61
+ }
62
+
63
+ .page {
64
+ font-family: var(--bodyFont), "Roboto", sans-serif;
65
+ }
66
+
67
+ .page h1,
68
+ .page h2,
69
+ .page h3,
70
+ .page h4,
71
+ .page h5,
72
+ .page h6 {
73
+ font-family: var(--headingFont), "Roboto", sans-serif;
74
+ }
75
+
76
+ .page h1 {
77
+ font-size: 3em;
78
+ line-height: 1.2em;
79
+ border-bottom: none;
80
+ /*margin-bottom: 40px;*/
81
+ }
82
+
83
+ .page h2 {
84
+ /*
85
+ padding-bottom: 10px;
86
+ margin-bottom: 25px;
87
+ font-size: 35px;
88
+ line-height: 40px;*/
89
+ font-size: 2.2em;
90
+ line-height: 1.2em;
91
+ text-transform: none;
92
+ }
93
+
94
+ .page h3 {
95
+ /*font-size: 22px;
96
+ line-height: 26px;*/
97
+ font-size: 1.6em;
98
+ line-height: 1.2em;
99
+ }
100
+
101
+ .page h4 {
102
+ /*font-size: 22px;
103
+ line-height: 26px;*/
104
+ font-size: 1.3em;
105
+ line-height: 1.2em;
106
+ }
107
+
108
+ .page .section {
109
+ min-height: 100px;
110
+ padding-top: 40px;
111
+ padding-bottom: 40px;
112
+ position: relative;
113
+ }
114
+
115
+ .page .sectionVideo {
116
+ min-height: 100px;
117
+ padding-top: 40px;
118
+ padding-bottom: 40px;
119
+ }
120
+
121
+ .page .sectionFirst {
122
+ padding-top: 160px;
123
+ }
124
+
125
+ .page .videoDark {
126
+ color: var(--dark-bg-text-color);
127
+ }
128
+
129
+ .page .sectionDark {
130
+ color: var(--dark-bg-text-color);
131
+ }
132
+
133
+
134
+ .page .sectionDark .editor-link {
135
+ color: var(--dark-bg-link-color);
136
+ font-weight: bold;
137
+ }
138
+
139
+ .page .sectionBG {
140
+ /*background-attachment: fixed;*/
141
+ background-position-x: 50%;
142
+ background-position-y: 50%;
143
+ background-size: cover;
144
+ position: relative;
145
+ }
146
+
147
+ .page .sectionBG:before {
148
+ content: '';
149
+ position: absolute;
150
+ left: 0;
151
+ top: 0;
152
+ right: 0;
153
+ bottom: 0;
154
+ width: 100%;
155
+ height: 100%;
156
+ background: #000;
157
+ opacity: .55;
158
+ box-sizing: inherit;
159
+ }
160
+
161
+ /* Box background overlay/tint — opt-in via inline --overlay-opacity (defaults off) */
162
+ .page .boxBG {
163
+ background-size: cover;
164
+ background-position: 50% 50%;
165
+ position: relative;
166
+ }
167
+
168
+ .page .boxBG:before {
169
+ content: '';
170
+ position: absolute;
171
+ inset: 0;
172
+ background: var(--overlay-color, #000);
173
+ opacity: var(--overlay-opacity, 0);
174
+ pointer-events: none;
175
+ box-sizing: inherit;
176
+ }
177
+
178
+ .page .boxBG > * {
179
+ position: relative;
180
+ z-index: 1;
181
+ }
182
+
183
+ /*
184
+ .section {
185
+ color: #333;
186
+ }
187
+ */
188
+
189
+ #navbar.transparent {
190
+ background-color: rgba(0, 0, 0, 0) !important;
191
+ box-shadow: none;
192
+ }
193
+
194
+ /*
195
+ #navbar.transparent:not(.light) a {
196
+ color: var(--dark-bg-link-color);
197
+ }
198
+ */
199
+
200
+ #navbar:not(.transparent) button,
201
+ #navbar.transparent.light button {
202
+ color: #333;
203
+ }
204
+
205
+ #navbar.transparent:not(.light) button {
206
+ color: #FFF;
207
+ }
208
+
209
+ .capitalize {
210
+ text-transform: capitalize;
211
+ }
212
+
213
+ .btn-warning,
214
+ .btn-warning:hover {
215
+ color: #fff;
216
+ }
217
+
218
+ .logo {
219
+ display: flex;
220
+ width: 200px;
221
+ margin-right: 15px;
222
+ }
223
+
224
+ #navbar {
225
+ background-color: var(--nav-bg-color) !important;
226
+ padding: 11px 0;
227
+ margin-bottom: 20px;
228
+ box-shadow: 0px 3px 3px 0px #999;
229
+ }
230
+
231
+ #navbar .nav-item {
232
+ font-size: 14px;
233
+ }
234
+
235
+ #navbar .nav-link {
236
+ color: #555;
237
+ height: 55px;
238
+ vertical-align: middle;
239
+ line-height: 45px;
240
+ max-width: 150px;
241
+ margin-left: auto;
242
+ margin-right: auto;
243
+ }
244
+
245
+ #navbar svg {
246
+ height: 15px;
247
+ width: 15px;
248
+ }
249
+
250
+ #navbar .active {
251
+ border-bottom: 2px solid #03a9f4;
252
+ }
253
+
254
+ #navRight {
255
+ white-space: nowrap;
256
+ }
257
+
258
+ #navRight img {
259
+ width: 32px;
260
+ height: 24px;
261
+ margin-top: -3px;
262
+ margin-right: 8px;
263
+ }
264
+
265
+
266
+ #navSpacer {
267
+ height: 57px;
268
+ margin-bottom: 25px;
269
+ }
270
+
271
+ .blue {
272
+ color: #03a9f4;
273
+ }
274
+
275
+ .btn-info {
276
+ background-color: var(--light-bg-link-color);
277
+ border-color: var(--light-bg-link-color);
278
+ }
279
+
280
+ .btn-primary:hover {
281
+ filter: brightness(90%);
282
+ }
283
+
284
+ .btn-success {
285
+ background-color: #77cc00;
286
+ border-color: #70db86;
287
+ }
288
+
289
+ .btn-success:hover {
290
+ background-color: #55aa00;
291
+ border-color: #55aa00;
292
+ }
293
+
294
+ .btn-danger {
295
+ background-color: #cc0011;
296
+ border-color: #cc0011;
297
+ }
298
+
299
+ .btn-danger:hover {
300
+ background-color: #bb0000;
301
+ border-color: #bb0000;
302
+ }
303
+
304
+ #footer {
305
+ background-color: #333;
306
+ padding-top: 40px;
307
+ padding-bottom: 40px;
308
+ color: #eee;
309
+ }
310
+
311
+ #footer img {
312
+ max-width: 450px;
313
+ margin-bottom: 20px;
314
+ }
315
+
316
+ .form-control::placeholder {
317
+ color: #ccc;
318
+ }
319
+
320
+ label .description {
321
+ font-size: 12px;
322
+ padding-left: 10px;
323
+ }
324
+
325
+ .alert p {
326
+ margin-bottom: 0;
327
+ }
328
+
329
+ .no-default-style {
330
+ border: none;
331
+ background: none;
332
+ }
333
+
334
+ .lead {
335
+ font-size: 20px;
336
+ font-weight: 300;
337
+ }
338
+
339
+ .videoWrapper {
340
+ position: relative;
341
+ padding-bottom: 56.25%;
342
+ height: 0;
343
+ }
344
+
345
+ .videoWrapper iframe {
346
+ position: absolute;
347
+ top: 0;
348
+ left: 0;
349
+ width: 100%;
350
+ height: 100%;
351
+ }
352
+
353
+ dropdown-menu a {
354
+ color: #03a9f4;
355
+ }
356
+
357
+ .btn-light {
358
+ border: 1px solid #333;
359
+ }
360
+
361
+ .smallCenterBlock {
362
+ max-width: 350px;
363
+ margin-left: auto;
364
+ margin-right: auto;
365
+ }
366
+
367
+ #loginBox {
368
+ background-color: #fff;
369
+ border: 1px solid #ccc;
370
+ border-radius: 5px;
371
+ padding: 20px;
372
+ }
373
+
374
+ #loginBox .form-group {
375
+ margin-bottom: 1rem;
376
+ }
377
+
378
+ .text-right {
379
+ text-align: right;
380
+ }
381
+
382
+ .form-control.is-invalid {
383
+ background-image: none;
384
+ }
385
+
386
+ a.dropdown-toggle::after {
387
+ display: none;
388
+ }
389
+
390
+ .modalMarkdown textarea {
391
+ height: 75vh !important;
392
+ overflow-y: scroll !important;
393
+ }
394
+
395
+ #markdownPreview table {
396
+ border-spacing: 0px;
397
+ }
398
+
399
+ #markdownPreview table td,
400
+ #markdownPreview table th {
401
+ border: 1px solid #DDD;
402
+ margin: 0px;
403
+ padding: 2px
404
+ }
405
+
406
+ .sectionEditButton,
407
+ .elementEditButton {
408
+ float: right;
409
+ background-color: "#FFF";
410
+ border-radius: 5px;
411
+ background-color: #FFF;
412
+ }
413
+
414
+ .columnWrapper:hover {
415
+ background-color: #FF9999;
416
+ }
417
+
418
+ .elementWrapper:not(:has(.elementWrapper:hover)):hover {
419
+ /*background-color: #28a745;*/
420
+ border: 3px solid #28a745;
421
+ }
422
+
423
+ .elementWrapper:not(:has(.elementWrapper:hover)):hover:before {
424
+ content: "ELEMENT";
425
+ font-size: 14px;
426
+ background-color: #28a745;
427
+ color: #FFF;
428
+ display: block;
429
+ width: 100px;
430
+ position: relative;
431
+ text-align: center;
432
+ margin-top: -18px;
433
+ margin-left: -3px;
434
+ height: 18px;
435
+ margin-bottom: -2px;
436
+ }
437
+
438
+ .elementWrapper.box:not(:has(.elementWrapper:hover)):hover:before {
439
+ content: "BOX" !important;
440
+ }
441
+
442
+ .elementWrapper.card:not(:has(.elementWrapper:hover)):hover:before {
443
+ content: "CARD" !important;
444
+ }
445
+
446
+ .elementWrapper.carousel:not(:has(.elementWrapper:hover)):hover:before {
447
+ content: "CAROUSEL" !important;
448
+ }
449
+
450
+ .elementWrapper.embed:not(:has(.elementWrapper:hover)):hover:before {
451
+ content: "EMBED" !important;
452
+ }
453
+
454
+ .elementWrapper.expandable:not(:has(.elementWrapper:hover)):hover:before {
455
+ content: "EXPANDABLE" !important;
456
+ }
457
+
458
+ .elementWrapper.html:not(:has(.elementWrapper:hover)):hover:before {
459
+ content: "HTML" !important;
460
+ }
461
+
462
+ .elementWrapper.image:not(:has(.elementWrapper:hover)):hover:before {
463
+ content: "IMAGE" !important;
464
+ }
465
+
466
+ .elementWrapper.location:not(:has(.elementWrapper:hover)):hover:before {
467
+ content: "LOCATION" !important;
468
+ }
469
+
470
+ .elementWrapper.row:not(:has(.elementWrapper:hover)):hover:before {
471
+ content: "ROW" !important;
472
+ }
473
+
474
+ .elementWrapper.table:not(:has(.elementWrapper:hover)):hover:before {
475
+ content: "TABLE" !important;
476
+ }
477
+
478
+ .elementWrapper.text:not(:has(.elementWrapper:hover)):hover:before {
479
+ content: "TEXT" !important;
480
+ }
481
+
482
+ .elementWrapper.textWithPhoto:not(:has(.elementWrapper:hover)):hover:before {
483
+ content: "TEXT WITH PHOTO" !important;
484
+ }
485
+
486
+ .elementWrapper.video:not(:has(.elementWrapper:hover)):hover:before {
487
+ content: "VIDEO" !important;
488
+ }
489
+
490
+ .elementWrapper.whiteSpace:not(:has(.elementWrapper:hover)):hover:before {
491
+ content: "WHITE SPACE" !important;
492
+ }
493
+
494
+ .draggable-container {
495
+ position: relative;
496
+ display: flex;
497
+ align-items: center;
498
+ cursor: text; /* Keeps text selection */
499
+ }
500
+
501
+ /* Drag handle - Always present but only visible on hover */
502
+ .drag-handle {
503
+ position: absolute;
504
+ width: 20px;
505
+ height: 20px;
506
+ background-color: green;
507
+ color: white;
508
+ display: flex;
509
+ align-items: center;
510
+ justify-content: center;
511
+ border-radius: 3px;
512
+ cursor: grab;
513
+ user-select: none;
514
+ pointer-events: all;
515
+ opacity: 0;
516
+ transition: opacity 0.2s;
517
+ z-index: 1500;
518
+ }
519
+
520
+ /* Section drag handle - INSIDE top-left corner */
521
+ .section-handle {
522
+ background-color: #3333FF;
523
+ left: 1px;
524
+ top: 30px;
525
+ z-index: 100;
526
+ }
527
+
528
+ /* Element drag handle - Middle-left */
529
+ .drag-handle:not(.section-handle) {
530
+ left: 5px;
531
+ top: 50%;
532
+ transform: translateY(-50%);
533
+ }
534
+
535
+ /* Content area - text remains selectable */
536
+ .draggable-content {
537
+ flex: 1;
538
+ user-select: text;
539
+ }
540
+
541
+
542
+ .sectionWrapper:not(:has(.elementWrapper:hover)):hover {
543
+ /*background-color: #9999FF !important;*/
544
+ border: 3px solid #3333FF;
545
+ padding-bottom: 38px;
546
+ }
547
+
548
+ .sectionWrapper:not(:has(.elementWrapper:hover)):hover:before {
549
+ content: "SECTION";
550
+ background-color: #3333FF;
551
+ color: #FFF;
552
+ display: block;
553
+ width: 100px;
554
+ position: relative;
555
+ text-align: center;
556
+ font-size: 14px;
557
+ height: 18px;
558
+ /*margin-bottom: -29px;*/
559
+ margin-top: -40px !important;
560
+ margin-bottom: 20px;
561
+ }
562
+
563
+ .sectionWrapper.sectionBlock:not(:has(.elementWrapper:hover)):hover:before {
564
+ content: "BLOCK" !important;
565
+ }
566
+
567
+ /*
568
+ .sectionWrapper {
569
+ padding-top: 0 !important;
570
+ }*/
571
+
572
+ .sectionDark {
573
+ color: var(--dark-bg-text-color);
574
+ }
575
+
576
+ /*
577
+ .sectionDark.sectionWrapper:not(:has(.elementWrapper:hover)):hover {
578
+ background-color: #007bff !important;
579
+ }*/
580
+
581
+ .sectionDark .columnWrapper:hover {
582
+ background-color: #990000;
583
+ }
584
+
585
+ /*
586
+ .sectionDark .elementWrapper:hover {
587
+ background-color: #009900;
588
+ }
589
+ */
590
+ .sectionActions {
591
+ display: none;
592
+ position: absolute;
593
+ top: 1;
594
+ right: 0;
595
+ margin-top: -70px;
596
+ z-index: 999;
597
+ }
598
+
599
+ .sectionActions.alwaysVisible {
600
+ display: block;
601
+ z-index: 9999;
602
+ }
603
+
604
+ .sectionBlock .sectionActions {
605
+ margin-top: 30px;
606
+ }
607
+
608
+ .sectionWrapper:not(:has(.elementWrapper:hover)):hover .sectionActions {
609
+ display: block;
610
+ }
611
+
612
+ .elementActions {
613
+ display: none;
614
+ position: absolute;
615
+ top: 10;
616
+ right: 0;
617
+ }
618
+
619
+ .elementWrapper:hover .elementActions {
620
+ display: block;
621
+ z-index: 2;
622
+ }
623
+
624
+ #embeddedLayout {
625
+ height: 100vh;
626
+ background-color: #FFFFFF;
627
+ }
628
+
629
+ #embeddedLayout .page .sectionFirst {
630
+ padding-top: 0px;
631
+ }
632
+
633
+ .no-resize {
634
+ width: auto;
635
+ max-width: 100%;
636
+ }
637
+
638
+ .elBox {
639
+ margin-bottom: 20px;
640
+ }
641
+
642
+ .elTextWithPhoto {
643
+ margin-bottom: 20px;
644
+ }
645
+
646
+ .elText {
647
+ margin-bottom: 20px;
648
+ }
649
+
650
+ /* Style inline code */
651
+ code {
652
+ background-color: #f5f5f5;
653
+ padding: 2px 4px;
654
+ border-radius: 3px;
655
+ font-family: "Source Code Pro", monospace !important;
656
+ }
657
+
658
+ pre {
659
+ background-color: #f8f9fa;
660
+ padding: 12px;
661
+ border-radius: 6px;
662
+ border-left: 4px solid #6c757d;
663
+ white-space: pre-wrap;
664
+ word-wrap: break-word;
665
+ overflow-x: auto;
666
+ }
667
+
668
+ /* Ensure code inside block follows styling */
669
+ pre.code-block code {
670
+ font-size: 14px;
671
+ color: #222;
672
+ background: none;
673
+ padding: 0;
674
+ }
675
+ .editor-list-ul,
676
+ .editor-list-ol {
677
+ padding-left: 0px;
678
+ margin-left: 40px;
679
+ }
680
+
681
+ .editor-list-ol li {
682
+ list-style-type: decimal !important;
683
+ margin-bottom: 0px;
684
+ }
685
+
686
+
687
+ .editor-list-ul li {
688
+ list-style-type: disc !important;
689
+ }
690
+
691
+ .page th {
692
+ font-weight: bold;
693
+ }
694
+
695
+ .pageTable {
696
+ width: 100%;
697
+ }
698
+
699
+ .pageTable th {
700
+ text-align: left;
701
+ }
702
+
703
+ .pageTable td,
704
+ .pageTable th {
705
+ border-bottom: 1px solid;
706
+ color: inherit;
707
+ }
708
+
709
+ .calbox,
710
+ #conbtn {
711
+ color: #FFFFFF;
712
+ background: linear-gradient(rgb(0, 0, 0), var(--darkAccent));
713
+ }
714
+
715
+ code {
716
+ color: #000;
717
+ }
718
+
719
+
720
+
721
+ #groupHero {
722
+ min-height: 200px;
723
+ background-color: var(--darkAccent);
724
+ color: #FFFFFF;
725
+ }
726
+
727
+ #groupHero .content {
728
+ background: linear-gradient(rgba(0, 0, 0, .8), rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.0));
729
+ width: 100%;
730
+ height: 100%;
731
+ padding-top: 110px;
732
+ min-height: 260px;
733
+ }
734
+
735
+ #groupHero H1 {
736
+ margin-top: 0px;
737
+ padding-bottom: 0px;
738
+ margin-bottom: 0px;
739
+ font-size: 40px;
740
+ }
741
+
742
+ #groupHero .badge {
743
+ border-radius: 10px;
744
+ float: right;
745
+ margin-top: -150px;
746
+ margin-bottom: -120px;
747
+ position: relative;
748
+ z-index: 1000;
749
+
750
+ }
751
+
752
+
753
+ @media (max-width: 768px) {
754
+ #calEntity {
755
+ order: -1;
756
+ }
757
+
758
+ #groupHero .badge {
759
+ float: left;
760
+ margin-top: 15px;
761
+ width:100%;
762
+ height:auto;
763
+ margin-bottom: 15px;
764
+ }
765
+ }
766
+
767
+ .headingsLight h1, .headingsLight h2, .headingsLight h3, .headingsLight h4 { color: var(--light); }
768
+ .headingsLightAccent h1, .headingsLightAccent h2, .headingsLightAccent h3, .headingsLightAccent h4 { color: var(--lightAccent); }
769
+ .headingsAccent h1, .headingsAccent h2, .headingsAccent h3, .headingsAccent h4 { color: var(--accent); }
770
+ .headingsDarkAccent h1, .headingsDarkAccent h2, .headingsDarkAccent h3, .headingsDarkAccent h4 { color: var(--darkAccent); }
771
+ .headingsDark h1, .headingsDark h2, .headingsDark h3, .headingsDark h4 { color: var(--dark); }
772
+
773
+ .linksLight a { color: var(--light); }
774
+ .linksLightAccent a { color: var(--lightAccent); }
775
+ .linksAccent a { color: var(--accent); }
776
+ .linksDarkAccent a { color: var(--darkAccent); }
777
+ .linksDark a { color: var(--dark); }
778
+
779
+ /* Lightbox overlay */
780
+ .b1-lightbox {
781
+ position: fixed;
782
+ inset: 0;
783
+ z-index: 9999;
784
+ background: rgba(0, 0, 0, 0.85);
785
+ display: flex;
786
+ align-items: center;
787
+ justify-content: center;
788
+ cursor: pointer;
789
+ }
790
+
791
+ .b1-lightbox img {
792
+ width: 98vw;
793
+ height: 98vh;
794
+ object-fit: contain;
795
+ cursor: default;
796
+ }
797
+
798
+ .b1-lightbox__close {
799
+ position: absolute;
800
+ top: 16px;
801
+ right: 16px;
802
+ background: none;
803
+ border: none;
804
+ color: #fff;
805
+ font-size: 36px;
806
+ line-height: 1;
807
+ cursor: pointer;
808
+ padding: 4px 12px;
809
+ opacity: 0.8;
810
+ transition: opacity 0.2s;
811
+ }
812
+
813
+ .b1-lightbox__close:hover {
814
+ opacity: 1;
815
+ }
816
+
817
+ /* DraggableWrapper - show drag indicator on hover (CSS-only, no React state) */
818
+ .draggable-wrapper:hover .drag-indicator {
819
+ opacity: 1 !important;
820
+ }
821
+
822
+
823
+ /* Per-device visibility (hide flags stored in stylesJSON desktop/mobile display:none) */
824
+ @media (min-width: 768px) {
825
+ .hiddenOnDesktop { display: none !important; }
826
+ }
827
+ @media (max-width: 767px) {
828
+ .hiddenOnMobile { display: none !important; }
829
+ }
830
+
831
+ /* iconFeature */
832
+ .iconFeature h3 { margin-top: 8px; }
833
+
834
+ /* gallery */
835
+ .gallery-caption { font-size: 0.85rem; padding: 4px 2px; opacity: 0.85; }
836
+ .gallery-empty,
837
+ .testimonial-empty,
838
+ .social-icons-empty,
839
+ .stats-empty,
840
+ .campaign-empty,
841
+ .staff-empty,
842
+ .service-times-empty {
843
+ padding: 24px;
844
+ border: 1px dashed #bbb;
845
+ border-radius: 4px;
846
+ text-align: center;
847
+ color: #888;
848
+ }
849
+ .gallery-lightbox { position: relative; display: flex; flex-direction: column; align-items: center; }
850
+ .gallery-lightbox__img { max-width: 92vw; max-height: 88vh; object-fit: contain; }
851
+ .gallery-lightbox__caption { color: #fff; margin-top: 12px; text-align: center; }
852
+ .gallery-lightbox__close { position: absolute !important; top: -48px; right: 0; }
853
+ .gallery-lightbox__prev { position: absolute !important; left: -56px; top: 50%; transform: translateY(-50%); }
854
+ .gallery-lightbox__next { position: absolute !important; right: -56px; top: 50%; transform: translateY(-50%); }
855
+ @media (max-width: 767px) {
856
+ .gallery-lightbox__prev { left: 0; }
857
+ .gallery-lightbox__next { right: 0; }
858
+ }
859
+
860
+ /* testimonial */
861
+ .testimonial-quote { padding: 16px 24px; }
862
+ .testimonial-text { font-size: 1.25rem; font-style: italic; line-height: 1.5; }
863
+ .testimonial-author { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 12px; }
864
+ .testimonial-photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
865
+ .testimonial-name { font-weight: 600; font-style: normal; }
866
+ .testimonial-role { font-size: 0.85rem; opacity: 0.75; }
867
+
868
+ /* countdown */
869
+ .countdown { text-align: center; }
870
+ .countdown-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 12px; }
871
+ .countdown-tiles { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
872
+ .countdown-tile { display: flex; flex-direction: column; align-items: center; min-width: 64px; padding: 12px 8px; border-radius: 6px; background: rgba(0, 0, 0, 0.06); }
873
+ .countdown-value { font-size: 2rem; font-weight: 700; line-height: 1; }
874
+ .countdown-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; margin-top: 4px; }
875
+ .countdown-complete { font-size: 1.5rem; font-weight: 700; }
876
+
877
+ /* stats */
878
+ .stats { text-align: center; }
879
+ .stat-value { font-size: 2.5rem; font-weight: 700; line-height: 1.1; }
880
+ .stat-label { font-size: 0.9rem; opacity: 0.75; margin-top: 4px; }
881
+
882
+ /* section dividers */
883
+ .sectionWithDivider { position: relative; overflow: hidden; }
884
+ .sectionDivider { position: absolute; left: 0; width: 100%; line-height: 0; pointer-events: none; overflow: hidden; z-index: 1; }
885
+ .sectionDivider svg { display: block; width: 100%; height: 100%; }
886
+
887
+ /* sermons layouts (grid / list / featuredLatest) */
888
+ .sermonGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; padding: 20px 0; }
889
+ .sermonList { display: flex; flex-direction: column; gap: 16px; padding: 20px 0; }
890
+ .sermonListItem { display: flex; gap: 16px; align-items: center; cursor: pointer; }
891
+ .sermonCard { cursor: pointer; }
892
+ .sermonFeatured { cursor: pointer; max-width: 960px; margin: 20px auto; }
893
+ .sermonThumb { position: relative; overflow: hidden; }
894
+ .sermonThumb img { display: block; width: 100%; height: 190px; object-fit: cover; object-position: center; }
895
+ .sermonThumbList { width: 220px; flex-shrink: 0; }
896
+ .sermonThumbList img { height: 124px; }
897
+ .sermonThumbFeatured img { height: 420px; }
898
+ .sermonPlayIcon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; opacity: 0.9; filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5)); }
899
+ .sermonListBody { flex: 1; min-width: 0; }
900
+ .sermonCardTitle { font-size: 20px; font-weight: 500; margin: 8px 0 2px; color: #333; }
901
+ .sermonFeaturedTitle { font-size: 32px; font-weight: 600; margin: 12px 0 4px; color: #333; }
902
+ .sermonCardDate { font-size: 0.85rem; opacity: 0.7; }
903
+ .sermonListDesc { font-size: 0.9rem; opacity: 0.8; margin: 6px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
904
+
905
+ /* podcast (external RSS feed) */
906
+ .podcast { max-width: 960px; margin: 0 auto; }
907
+ .podcastHeader { display: flex; gap: 20px; align-items: center; margin-bottom: 8px; }
908
+ .podcastArtwork { width: 120px; height: 120px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
909
+ .podcastTitle { font-size: 28px; font-weight: 600; margin: 0 0 4px; }
910
+ .podcastDesc { margin: 0; opacity: 0.8; }
911
+ .podcastList .sermonListItem { cursor: default; align-items: flex-start; scroll-margin-top: 80px; }
912
+ .podcastEpisodeMeta { font-size: 0.85rem; opacity: 0.7; }
913
+ .podcastMetaSep { padding: 0 2px; }
914
+ .podcastEpisodeDesc { font-size: 0.9rem; opacity: 0.85; margin: 6px 0 0; white-space: pre-line; }
915
+ .podcastAudio { display: block; width: 100%; max-width: 640px; margin-top: 10px; }
916
+ .podcastEmpty { padding: 12px; border: 1px dashed #bbb; border-radius: 4px; opacity: 0.8; }
917
+
918
+ /* campaignProgress */
919
+ .campaignProgress { max-width: 720px; }
920
+ .campaign-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 8px; }
921
+ .campaign-bar { height: 20px; border-radius: 10px; background: rgba(0, 0, 0, 0.1); overflow: hidden; }
922
+ .campaign-bar-fill { height: 100%; border-radius: 10px; background: var(--accent, #1565c0); transition: width 1.2s ease; }
923
+ .campaign-percent { font-size: 1.5rem; font-weight: 700; margin-top: 8px; }
924
+ .campaign-amounts { opacity: 0.85; }
925
+ .campaign-count { font-size: 0.85rem; opacity: 0.7; margin-top: 2px; }
926
+ .campaign-give { display: inline-block; margin-top: 12px; padding: 8px 20px; border-radius: 4px; background: var(--accent, #1565c0); color: #fff; text-decoration: none; }
927
+
928
+ /* staffGrid */
929
+ .staff-card { text-align: center; }
930
+ .staff-photo { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; margin: 0 auto; display: block; }
931
+ .staff-photo--placeholder { background: rgba(0, 0, 0, 0.08); }
932
+ .staff-name { font-weight: 600; margin-top: 10px; }
933
+ .staff-role { display: inline-block; margin-top: 4px; padding: 2px 10px; border-radius: 12px; font-size: 0.75rem; background: rgba(0, 0, 0, 0.08); }
934
+
935
+ /* serviceTimes */
936
+ .service-times-title { margin: 0 0 12px; }
937
+ .service-group { margin-bottom: 16px; }
938
+ .service-name { font-weight: 600; font-size: 1.1rem; }
939
+ .service-campus { font-size: 0.85rem; opacity: 0.7; }
940
+ .service-time-list { list-style: none; padding: 0; margin: 6px 0 0; }
941
+ .service-time { padding: 2px 0; opacity: 0.9; }
942
+
943
+ /* announcement banner */
944
+ .announcement-banner { position: sticky; top: 0; z-index: 1250; width: 100%; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 10px 48px; text-align: center; box-sizing: border-box; }
945
+ .announcement-banner__text { font-weight: 500; }
946
+ .announcement-banner__link { text-decoration: underline; font-weight: 600; white-space: nowrap; }
947
+ .announcement-banner__close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; font-size: 24px; line-height: 1; cursor: pointer; padding: 4px 8px; opacity: 0.85; }
948
+ .announcement-banner__close:hover { opacity: 1; }
949
+
950
+ /* launcher (floating action hub) */
951
+ .launcher { position: fixed; bottom: 24px; z-index: 1300; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
952
+ .launcher--bottomRight { right: 24px; align-items: flex-end; }
953
+ .launcher--bottomLeft { left: 24px; align-items: flex-start; }
954
+ .launcher-actions { display: flex; flex-direction: column; gap: 10px; }
955
+ .launcher--bottomLeft .launcher-actions { align-items: flex-start; }
956
+ .launcher--bottomRight .launcher-actions { align-items: flex-end; }
957
+ .launcher-action { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border-radius: 22px; background: #fff; color: #333; text-decoration: none; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); opacity: 0; transform: translateY(12px) scale(0.9); pointer-events: none; transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); }
958
+ .launcher[data-open="true"] .launcher-action { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
959
+ .launcher-action-label { font-weight: 500; white-space: nowrap; }
960
+ .launcher-fab { width: 56px; height: 56px; border-radius: 50%; border: none; color: #fff; cursor: pointer; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); display: flex; align-items: center; justify-content: center; align-self: flex-end; }
961
+ .launcher--bottomLeft .launcher-fab { align-self: flex-start; }
962
+ .launcher-fab-icon { transition: transform 0.25s ease; }
963
+ .launcher[data-open="true"] .launcher-fab-icon { transform: rotate(135deg); }