domma-js 0.7.5-alpha → 0.7.8-alpha

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.
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Elements CSS v0.7.5-alpha
2
+ * Domma Elements CSS v0.7.6-alpha
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-08T18:40:13.850Z
6
- * Commit: 61aa8b6
5
+ * Built: 2026-01-09T14:00:45.596Z
6
+ * Commit: 5527c59
7
7
  */
8
8
 
9
9
  /**
@@ -1815,6 +1815,13 @@ code {
1815
1815
  background: var(--dm-hover-bg, rgba(0, 0, 0, 0.05));
1816
1816
  }
1817
1817
 
1818
+ .navbar-dropdown-divider {
1819
+ height: 1px;
1820
+ margin: 0.5rem 0;
1821
+ background: var(--dm-border-color, rgba(0, 0, 0, 0.1));
1822
+ list-style: none;
1823
+ }
1824
+
1818
1825
  /* Dark navbar dropdown styles */
1819
1826
  .navbar-dark .navbar-dropdown-menu {
1820
1827
  background: var(--dm-gray-800);
@@ -1830,6 +1837,10 @@ code {
1830
1837
  color: var(--dm-white);
1831
1838
  }
1832
1839
 
1840
+ .navbar-dark .navbar-dropdown-divider {
1841
+ background: var(--dm-gray-700);
1842
+ }
1843
+
1833
1844
  /* Pill button styles (for Download button) */
1834
1845
  .pill {
1835
1846
  display: inline-block;
@@ -3076,47 +3087,120 @@ code {
3076
3087
  SIDEBAR
3077
3088
  ============================================ */
3078
3089
 
3090
+ /* Base Sidebar */
3079
3091
  .sidebar {
3080
- position: fixed;
3081
- bottom: 4px;
3082
- left: 2px;
3083
- width: 220px;
3084
- max-height: 50vh;
3085
- overflow-y: auto;
3092
+ position: relative;
3093
+ width: 250px;
3086
3094
  background: var(--dm-surface, #fff);
3087
- border: 1px solid var(--dm-border, #dee2e6);
3088
- border-radius: var(--dm-radius-lg);
3089
- box-shadow: var(--dm-shadow-lg);
3095
+ border-right: 1px solid var(--dm-border, #dee2e6);
3096
+ overflow-y: auto;
3097
+ overflow-x: hidden;
3098
+ transition: transform 0.3s ease;
3090
3099
  z-index: 100;
3091
3100
  }
3092
3101
 
3102
+ /* Fixed positioning */
3103
+ .sidebar-fixed {
3104
+ position: fixed;
3105
+ top: 0;
3106
+ left: 0;
3107
+ height: 100vh;
3108
+ }
3109
+
3110
+ .sidebar-fixed.sidebar-right {
3111
+ left: auto;
3112
+ right: 0;
3113
+ border-right: none;
3114
+ border-left: 1px solid var(--dm-border, #dee2e6);
3115
+ }
3116
+
3117
+ /* Position variants */
3118
+ .sidebar-left {
3119
+ left: 0;
3120
+ }
3121
+
3122
+ .sidebar-right {
3123
+ right: 0;
3124
+ left: auto;
3125
+ border-right: none;
3126
+ border-left: 1px solid var(--dm-border, #dee2e6);
3127
+ }
3128
+
3129
+ /* Header */
3093
3130
  .sidebar-header {
3094
- padding: var(--dm-space-3) var(--dm-space-3) var(--dm-space-2);
3095
- font-size: var(--dm-font-size-xs);
3096
- font-weight: 600;
3097
- text-transform: uppercase;
3098
- letter-spacing: 0.05em;
3099
- color: var(--dm-gray-500);
3131
+ display: flex;
3132
+ align-items: center;
3133
+ gap: var(--dm-space-3, 0.75rem);
3134
+ padding: var(--dm-space-4, 1rem) var(--dm-space-3, 0.75rem);
3100
3135
  border-bottom: 1px solid var(--dm-border, #dee2e6);
3136
+ background: var(--dm-surface-raised, #f8f9fa);
3101
3137
  }
3102
3138
 
3139
+ .sidebar-header-icon {
3140
+ flex-shrink: 0;
3141
+ display: inline-flex;
3142
+ align-items: center;
3143
+ justify-content: center;
3144
+ }
3145
+
3146
+ .sidebar-header-title {
3147
+ flex: 1;
3148
+ margin: 0;
3149
+ font-size: var(--dm-font-size-lg, 1.125rem);
3150
+ font-weight: 600;
3151
+ color: var(--dm-text, #212529);
3152
+ }
3153
+
3154
+ .sidebar-toggle-btn {
3155
+ display: none; /* Shown on mobile */
3156
+ flex-shrink: 0;
3157
+ width: 32px;
3158
+ height: 32px;
3159
+ padding: 0;
3160
+ border: none;
3161
+ background: transparent;
3162
+ color: var(--dm-text-muted, #6c757d);
3163
+ border-radius: var(--dm-radius-md, 0.375rem);
3164
+ cursor: pointer;
3165
+ transition: all 0.2s ease;
3166
+ }
3167
+
3168
+ .sidebar-toggle-btn:hover {
3169
+ background: var(--dm-gray-200, #e9ecef);
3170
+ color: var(--dm-text, #212529);
3171
+ }
3172
+
3173
+ /* Navigation */
3103
3174
  .sidebar-nav {
3175
+ padding: var(--dm-space-2, 0.5rem) 0;
3176
+ }
3177
+
3178
+ .sidebar-menu {
3104
3179
  list-style: none;
3105
3180
  margin: 0;
3106
- padding: var(--dm-space-2);
3181
+ padding: 0;
3107
3182
  }
3108
3183
 
3184
+ .sidebar-item {
3185
+ position: relative;
3186
+ }
3187
+
3188
+ /* Navigation Links */
3109
3189
  .sidebar-link {
3110
- display: block;
3111
- padding: var(--dm-space-2) var(--dm-space-3);
3190
+ display: flex;
3191
+ align-items: center;
3192
+ gap: var(--dm-space-3, 0.75rem);
3193
+ padding: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
3112
3194
  color: var(--dm-text-muted, #6c757d);
3113
3195
  text-decoration: none;
3114
- font-size: var(--dm-font-size-sm);
3115
- border-radius: var(--dm-radius-md);
3116
- transition: all 0.15s ease;
3117
- white-space: nowrap;
3118
- overflow: hidden;
3119
- text-overflow: ellipsis;
3196
+ font-size: var(--dm-font-size-sm, 0.875rem);
3197
+ transition: all 0.2s ease;
3198
+ cursor: pointer;
3199
+ border: none;
3200
+ background: transparent;
3201
+ width: 100%;
3202
+ text-align: left;
3203
+ border-left: 3px solid transparent;
3120
3204
  }
3121
3205
 
3122
3206
  .sidebar-link:hover {
@@ -3126,83 +3210,237 @@ code {
3126
3210
  }
3127
3211
 
3128
3212
  .sidebar-link.active {
3129
- color: var(--dm-primary);
3130
- background: var(--dm-primary-bg, rgba(100, 149, 237, 0.1));
3213
+ color: var(--dm-primary, #007bff);
3214
+ background: var(--dm-primary-bg, rgba(0, 123, 255, 0.1));
3131
3215
  font-weight: 500;
3216
+ border-left-color: var(--dm-primary, #007bff);
3132
3217
  }
3133
3218
 
3134
- .showcase-content {
3135
- width: 100%;
3219
+ /* Link elements */
3220
+ .sidebar-icon {
3221
+ flex-shrink: 0;
3222
+ display: inline-flex;
3223
+ align-items: center;
3224
+ justify-content: center;
3136
3225
  }
3137
3226
 
3138
- /* Add left margin on desktop to account for fixed sidebar */
3139
- @media (min-width: 1025px) {
3140
- .showcase-content {
3141
- margin-left: 240px;
3142
- width: calc(100% - 240px);
3143
- }
3227
+ .sidebar-text {
3228
+ flex: 1;
3229
+ white-space: nowrap;
3230
+ overflow: hidden;
3231
+ text-overflow: ellipsis;
3144
3232
  }
3145
3233
 
3146
- /* Sidebar toggle button (mobile) */
3147
-
3148
- .sidebar-toggle {
3149
- display: none;
3150
- position: fixed;
3151
- bottom: var(--dm-space-4);
3152
- left: var(--dm-space-4);
3153
- width: 48px;
3154
- height: 48px;
3155
- border-radius: 50%;
3156
- background: var(--dm-primary);
3157
- color: white;
3158
- border: none;
3159
- cursor: pointer;
3160
- z-index: 1001;
3161
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
3162
- transition: transform 0.2s ease, box-shadow 0.2s ease;
3234
+ .sidebar-badge {
3235
+ flex-shrink: 0;
3236
+ display: inline-flex;
3163
3237
  align-items: center;
3164
3238
  justify-content: center;
3239
+ min-width: 20px;
3240
+ height: 20px;
3241
+ padding: 0 var(--dm-space-2, 0.5rem);
3242
+ font-size: var(--dm-font-size-xs, 0.75rem);
3243
+ font-weight: 600;
3244
+ line-height: 1;
3245
+ color: var(--dm-white, #fff);
3246
+ background: var(--dm-primary, #007bff);
3247
+ border-radius: 10px;
3165
3248
  }
3166
3249
 
3167
- .sidebar-toggle:hover {
3168
- transform: scale(1.05);
3169
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
3250
+ /* Submenu toggle (has children) */
3251
+ .sidebar-link-toggle {
3252
+ position: relative;
3170
3253
  }
3171
3254
 
3172
- .sidebar-toggle svg {
3173
- width: 24px;
3174
- height: 24px;
3255
+ .sidebar-chevron {
3256
+ flex-shrink: 0;
3257
+ margin-left: auto;
3258
+ transition: transform 0.2s ease;
3175
3259
  }
3176
3260
 
3177
- /* Sidebar overlay (mobile) */
3261
+ .sidebar-item.open > .sidebar-link-toggle .sidebar-chevron {
3262
+ transform: rotate(90deg);
3263
+ }
3178
3264
 
3179
- .sidebar-overlay {
3265
+ /* Submenu container */
3266
+ .sidebar-submenu {
3180
3267
  display: none;
3268
+ overflow: hidden;
3269
+ }
3270
+
3271
+ .sidebar-item.open > .sidebar-submenu {
3272
+ display: block;
3273
+ }
3274
+
3275
+ .sidebar-submenu .sidebar-menu {
3276
+ padding-left: var(--dm-space-4, 1rem);
3277
+ }
3278
+
3279
+ .sidebar-submenu .sidebar-link {
3280
+ padding-left: calc(var(--dm-space-4, 1rem) + var(--dm-space-2, 0.5rem));
3281
+ font-size: var(--dm-font-size-xs, 0.75rem);
3282
+ }
3283
+
3284
+ /* Nested depth indentation */
3285
+ .sidebar-menu[data-depth="1"] .sidebar-link {
3286
+ padding-left: calc(var(--dm-space-4, 1rem) * 2);
3287
+ }
3288
+
3289
+ .sidebar-menu[data-depth="2"] .sidebar-link {
3290
+ padding-left: calc(var(--dm-space-4, 1rem) * 3);
3291
+ }
3292
+
3293
+ .sidebar-menu[data-depth="3"] .sidebar-link {
3294
+ padding-left: calc(var(--dm-space-4, 1rem) * 4);
3295
+ }
3296
+
3297
+ .sidebar-menu[data-depth="4"] .sidebar-link {
3298
+ padding-left: calc(var(--dm-space-4, 1rem) * 5);
3299
+ }
3300
+
3301
+ /* Divider */
3302
+ .sidebar-divider {
3303
+ height: 1px;
3304
+ margin: var(--dm-space-2, 0.5rem) var(--dm-space-4, 1rem);
3305
+ background: var(--dm-border, #dee2e6);
3306
+ list-style: none;
3307
+ }
3308
+
3309
+ /* Section Heading */
3310
+ .sidebar-heading {
3311
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem) var(--dm-space-2, 0.5rem);
3312
+ font-size: var(--dm-font-size-xs, 0.75rem);
3313
+ font-weight: 600;
3314
+ text-transform: uppercase;
3315
+ letter-spacing: 0.05em;
3316
+ color: var(--dm-gray-500, #6c757d);
3317
+ list-style: none;
3318
+ }
3319
+
3320
+ /* Footer */
3321
+ .sidebar-footer {
3322
+ padding: var(--dm-space-3, 0.75rem) var(--dm-space-4, 1rem);
3323
+ border-top: 1px solid var(--dm-border, #dee2e6);
3324
+ background: var(--dm-surface-raised, #f8f9fa);
3325
+ }
3326
+
3327
+ .sidebar-footer-text {
3328
+ margin: 0;
3329
+ font-size: var(--dm-font-size-xs, 0.75rem);
3330
+ color: var(--dm-text-muted, #6c757d);
3331
+ }
3332
+
3333
+ /* Overlay (mobile) */
3334
+ .sidebar-overlay {
3181
3335
  position: fixed;
3182
3336
  top: 0;
3183
3337
  left: 0;
3184
3338
  right: 0;
3185
3339
  bottom: 0;
3186
3340
  background: rgba(0, 0, 0, 0.5);
3187
- z-index: 999;
3341
+ z-index: 99;
3188
3342
  opacity: 0;
3189
- transition: opacity 0.3s ease;
3343
+ visibility: hidden;
3344
+ transition: opacity 0.3s ease, visibility 0.3s ease;
3190
3345
  }
3191
3346
 
3192
3347
  .sidebar-overlay.active {
3193
3348
  opacity: 1;
3349
+ visibility: visible;
3350
+ }
3351
+
3352
+ /* Theme Variants */
3353
+
3354
+ /* Dark variant */
3355
+ .sidebar-dark {
3356
+ background: var(--dm-gray-900, #212529);
3357
+ border-color: var(--dm-gray-700, #495057);
3358
+ }
3359
+
3360
+ .sidebar-dark .sidebar-header {
3361
+ background: var(--dm-gray-800, #343a40);
3362
+ border-color: var(--dm-gray-700, #495057);
3363
+ }
3364
+
3365
+ .sidebar-dark .sidebar-header-title {
3366
+ color: var(--dm-white, #fff);
3367
+ }
3368
+
3369
+ .sidebar-dark .sidebar-link {
3370
+ color: var(--dm-gray-400, #adb5bd);
3371
+ border-left-color: transparent;
3372
+ }
3373
+
3374
+ .sidebar-dark .sidebar-link:hover {
3375
+ color: var(--dm-white, #fff);
3376
+ background: var(--dm-gray-800, #343a40);
3377
+ }
3378
+
3379
+ .sidebar-dark .sidebar-link.active {
3380
+ color: var(--dm-primary-light, #66b2ff);
3381
+ background: rgba(102, 178, 255, 0.15);
3382
+ border-left-color: var(--dm-primary-light, #66b2ff);
3383
+ }
3384
+
3385
+ .sidebar-dark .sidebar-heading {
3386
+ color: var(--dm-gray-500, #6c757d);
3387
+ }
3388
+
3389
+ .sidebar-dark .sidebar-divider {
3390
+ background: var(--dm-gray-700, #495057);
3391
+ }
3392
+
3393
+ .sidebar-dark .sidebar-footer {
3394
+ background: var(--dm-gray-800, #343a40);
3395
+ border-color: var(--dm-gray-700, #495057);
3396
+ }
3397
+
3398
+ .sidebar-dark .sidebar-footer-text {
3399
+ color: var(--dm-gray-500, #6c757d);
3400
+ }
3401
+
3402
+ /* Light variant (default, explicit) */
3403
+ .sidebar-light {
3404
+ background: var(--dm-white, #fff);
3405
+ border-color: var(--dm-border, #dee2e6);
3194
3406
  }
3195
3407
 
3196
3408
  /* Mobile/Tablet: Slide-out drawer */
3197
3409
  @media (max-width: 768px) {
3198
- .sidebar {
3199
- display: none;
3200
- position: fixed;
3201
- top: 0;
3202
- left: 0;
3203
- bottom: 0;
3204
- width: 260px;
3205
- max-height: 100vh;
3410
+ .sidebar-fixed {
3411
+ transform: translateX(-100%);
3412
+ box-shadow: none;
3413
+ }
3414
+
3415
+ .sidebar-fixed.sidebar-right {
3416
+ transform: translateX(100%);
3417
+ }
3418
+
3419
+ .sidebar-fixed.open {
3420
+ transform: translateX(0);
3421
+ box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
3422
+ }
3423
+
3424
+ .sidebar-toggle-btn {
3425
+ display: flex;
3426
+ align-items: center;
3427
+ justify-content: center;
3428
+ }
3429
+
3430
+ .sidebar-overlay {
3431
+ display: block;
3432
+ }
3433
+ }
3434
+
3435
+ /* Showcase-specific overrides (for backward compatibility) */
3436
+ .showcase-content {
3437
+ width: 100%;
3438
+ }
3439
+
3440
+ @media (min-width: 1025px) {
3441
+ .showcase-content {
3442
+ margin-left: 240px;
3443
+ width: calc(100% - 240px);
3206
3444
  }
3207
3445
  }
3208
3446
 
@@ -3384,6 +3622,330 @@ code {
3384
3622
  }
3385
3623
 
3386
3624
 
3625
+
3626
+ /* ============================================
3627
+ FOOTER
3628
+ ============================================ */
3629
+
3630
+ /* Base Footer */
3631
+ .footer {
3632
+ position: relative;
3633
+ width: 100%;
3634
+ background: var(--dm-surface, #fff);
3635
+ border-top: 1px solid var(--dm-border, #dee2e6);
3636
+ font-size: var(--dm-font-size-sm, 0.875rem);
3637
+ }
3638
+
3639
+ /* Position variants */
3640
+ .footer-static {
3641
+ position: static;
3642
+ }
3643
+
3644
+ .footer-fixed {
3645
+ position: fixed;
3646
+ bottom: 0;
3647
+ left: 0;
3648
+ right: 0;
3649
+ z-index: 100;
3650
+ }
3651
+
3652
+ .footer-sticky {
3653
+ position: sticky;
3654
+ bottom: 0;
3655
+ z-index: 100;
3656
+ }
3657
+
3658
+ /* Container */
3659
+ .footer-container {
3660
+ max-width: var(--dm-container-lg, 1200px);
3661
+ margin: 0 auto;
3662
+ padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
3663
+ }
3664
+
3665
+ /* ========== Simple Layout ========== */
3666
+
3667
+ .footer-simple .footer-simple-content {
3668
+ display: flex;
3669
+ flex-wrap: wrap;
3670
+ align-items: center;
3671
+ justify-content: space-between;
3672
+ gap: var(--dm-space-4, 1rem);
3673
+ }
3674
+
3675
+ .footer-brand {
3676
+ display: flex;
3677
+ align-items: center;
3678
+ gap: var(--dm-space-3, 0.75rem);
3679
+ }
3680
+
3681
+ .footer-brand-link {
3682
+ display: flex;
3683
+ align-items: center;
3684
+ gap: var(--dm-space-3, 0.75rem);
3685
+ text-decoration: none;
3686
+ color: inherit;
3687
+ }
3688
+
3689
+ .footer-logo {
3690
+ height: 32px;
3691
+ width: auto;
3692
+ }
3693
+
3694
+ .footer-brand-text {
3695
+ font-weight: 600;
3696
+ color: var(--dm-text, #212529);
3697
+ }
3698
+
3699
+ .footer-nav {
3700
+ display: flex;
3701
+ flex-wrap: wrap;
3702
+ gap: var(--dm-space-4, 1rem);
3703
+ align-items: center;
3704
+ }
3705
+
3706
+ .footer-link {
3707
+ color: var(--dm-text-muted, #6c757d);
3708
+ text-decoration: none;
3709
+ transition: color 0.2s ease;
3710
+ }
3711
+
3712
+ .footer-link:hover {
3713
+ color: var(--dm-primary, #007bff);
3714
+ text-decoration: none;
3715
+ }
3716
+
3717
+ .footer-social {
3718
+ display: flex;
3719
+ gap: var(--dm-space-3, 0.75rem);
3720
+ align-items: center;
3721
+ }
3722
+
3723
+ .footer-social-link {
3724
+ display: inline-flex;
3725
+ align-items: center;
3726
+ justify-content: center;
3727
+ width: 36px;
3728
+ height: 36px;
3729
+ border-radius: 50%;
3730
+ color: var(--dm-text-muted, #6c757d);
3731
+ background: transparent;
3732
+ text-decoration: none;
3733
+ transition: all 0.2s ease;
3734
+ }
3735
+
3736
+ .footer-social-link:hover {
3737
+ color: var(--dm-primary, #007bff);
3738
+ background: var(--dm-gray-100, #f8f9fa);
3739
+ }
3740
+
3741
+ .footer-copyright {
3742
+ width: 100%;
3743
+ padding-top: var(--dm-space-4, 1rem);
3744
+ margin-top: var(--dm-space-4, 1rem);
3745
+ border-top: 1px solid var(--dm-border, #dee2e6);
3746
+ text-align: center;
3747
+ color: var(--dm-text-muted, #6c757d);
3748
+ }
3749
+
3750
+ /* ========== Columns Layout ========== */
3751
+
3752
+ .footer-columns .footer-columns-content {
3753
+ display: grid;
3754
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3755
+ gap: var(--dm-space-6, 1.5rem);
3756
+ padding-bottom: var(--dm-space-4, 1rem);
3757
+ margin-bottom: var(--dm-space-4, 1rem);
3758
+ border-bottom: 1px solid var(--dm-border, #dee2e6);
3759
+ }
3760
+
3761
+ .footer-column {
3762
+ min-width: 0;
3763
+ }
3764
+
3765
+ .footer-column-brand {
3766
+ grid-column: span 1;
3767
+ }
3768
+
3769
+ .footer-column-brand .footer-logo {
3770
+ margin-bottom: var(--dm-space-3, 0.75rem);
3771
+ }
3772
+
3773
+ .footer-column-brand .footer-brand-text {
3774
+ display: block;
3775
+ margin: 0;
3776
+ color: var(--dm-text-muted, #6c757d);
3777
+ font-weight: 400;
3778
+ line-height: 1.6;
3779
+ }
3780
+
3781
+ .footer-column-title {
3782
+ margin: 0 0 var(--dm-space-3, 0.75rem);
3783
+ font-size: var(--dm-font-size-base, 1rem);
3784
+ font-weight: 600;
3785
+ color: var(--dm-text, #212529);
3786
+ }
3787
+
3788
+ .footer-column-links {
3789
+ list-style: none;
3790
+ margin: 0;
3791
+ padding: 0;
3792
+ }
3793
+
3794
+ .footer-column-links li {
3795
+ margin-bottom: var(--dm-space-2, 0.5rem);
3796
+ }
3797
+
3798
+ .footer-column-link {
3799
+ color: var(--dm-text-muted, #6c757d);
3800
+ text-decoration: none;
3801
+ transition: color 0.2s ease;
3802
+ display: inline-block;
3803
+ }
3804
+
3805
+ .footer-column-link:hover {
3806
+ color: var(--dm-primary, #007bff);
3807
+ text-decoration: none;
3808
+ }
3809
+
3810
+ .footer-columns .footer-bottom {
3811
+ display: flex;
3812
+ flex-wrap: wrap;
3813
+ align-items: center;
3814
+ justify-content: space-between;
3815
+ gap: var(--dm-space-4, 1rem);
3816
+ }
3817
+
3818
+ .footer-columns .footer-copyright {
3819
+ width: auto;
3820
+ padding: 0;
3821
+ margin: 0;
3822
+ border: none;
3823
+ text-align: left;
3824
+ }
3825
+
3826
+ /* ========== Minimal Layout ========== */
3827
+
3828
+ .footer-minimal .footer-minimal-content {
3829
+ display: flex;
3830
+ flex-wrap: wrap;
3831
+ align-items: center;
3832
+ justify-content: center;
3833
+ gap: var(--dm-space-4, 1rem);
3834
+ text-align: center;
3835
+ }
3836
+
3837
+ .footer-minimal .footer-copyright {
3838
+ width: 100%;
3839
+ padding: 0;
3840
+ margin: 0;
3841
+ border: none;
3842
+ }
3843
+
3844
+ .footer-minimal .footer-social {
3845
+ width: 100%;
3846
+ justify-content: center;
3847
+ margin-top: var(--dm-space-3, 0.75rem);
3848
+ }
3849
+
3850
+ /* ========== Theme Variants ========== */
3851
+
3852
+ /* Dark variant */
3853
+ .footer-dark {
3854
+ background: var(--dm-gray-900, #212529);
3855
+ border-color: var(--dm-gray-700, #495057);
3856
+ }
3857
+
3858
+ .footer-dark .footer-brand-text {
3859
+ color: var(--dm-white, #fff);
3860
+ }
3861
+
3862
+ .footer-dark .footer-link {
3863
+ color: var(--dm-gray-400, #adb5bd);
3864
+ }
3865
+
3866
+ .footer-dark .footer-link:hover {
3867
+ color: var(--dm-primary-light, #66b2ff);
3868
+ }
3869
+
3870
+ .footer-dark .footer-column-title {
3871
+ color: var(--dm-white, #fff);
3872
+ }
3873
+
3874
+ .footer-dark .footer-column-link {
3875
+ color: var(--dm-gray-400, #adb5bd);
3876
+ }
3877
+
3878
+ .footer-dark .footer-column-link:hover {
3879
+ color: var(--dm-primary-light, #66b2ff);
3880
+ }
3881
+
3882
+ .footer-dark .footer-copyright {
3883
+ color: var(--dm-gray-500, #6c757d);
3884
+ border-color: var(--dm-gray-700, #495057);
3885
+ }
3886
+
3887
+ .footer-dark .footer-social-link {
3888
+ color: var(--dm-gray-400, #adb5bd);
3889
+ }
3890
+
3891
+ .footer-dark .footer-social-link:hover {
3892
+ color: var(--dm-primary-light, #66b2ff);
3893
+ background: var(--dm-gray-800, #343a40);
3894
+ }
3895
+
3896
+ .footer-dark .footer-columns-content {
3897
+ border-color: var(--dm-gray-700, #495057);
3898
+ }
3899
+
3900
+ /* Light variant (default) */
3901
+ .footer-light {
3902
+ background: var(--dm-white, #fff);
3903
+ border-color: var(--dm-border, #dee2e6);
3904
+ }
3905
+
3906
+ /* Transparent variant */
3907
+ .footer-transparent {
3908
+ background: transparent;
3909
+ border-color: transparent;
3910
+ }
3911
+
3912
+ /* ========== Responsive ========== */
3913
+
3914
+ @media (max-width: 768px) {
3915
+ .footer-container {
3916
+ padding: var(--dm-space-4, 1rem);
3917
+ }
3918
+
3919
+ .footer-simple .footer-simple-content {
3920
+ flex-direction: column;
3921
+ align-items: flex-start;
3922
+ }
3923
+
3924
+ .footer-nav {
3925
+ flex-direction: column;
3926
+ align-items: flex-start;
3927
+ gap: var(--dm-space-2, 0.5rem);
3928
+ }
3929
+
3930
+ .footer-columns .footer-columns-content {
3931
+ grid-template-columns: 1fr;
3932
+ gap: var(--dm-space-4, 1rem);
3933
+ }
3934
+
3935
+ .footer-columns .footer-bottom {
3936
+ flex-direction: column;
3937
+ align-items: flex-start;
3938
+ }
3939
+
3940
+ .footer-columns .footer-copyright {
3941
+ width: 100%;
3942
+ text-align: left;
3943
+ }
3944
+
3945
+ .footer-social {
3946
+ width: 100%;
3947
+ }
3948
+ }
3387
3949
  /* ============================================
3388
3950
  BACKGROUND UTILITIES
3389
3951
  ============================================ */