@maboussoleaidant/design-system 0.1.11 → 0.1.14

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.
@@ -176,6 +176,7 @@
176
176
  /* ===========================================
177
177
  TAILLES DE POLICE (Figma Scale)
178
178
  =========================================== */
179
+ --mba-font-size-xxxs: 0.75rem; /* 12px - feedback, captions */
179
180
  --mba-font-size-xxs: 0.875rem; /* 14px */
180
181
  --mba-font-size-xs: 1rem; /* 16px */
181
182
  --mba-font-size-sm: 1.125rem; /* 18px */
@@ -214,10 +215,12 @@
214
215
 
215
216
  /* ===========================================
216
217
  HEADING PRESETS (Congenial)
218
+ Wrappé dans @layer components pour être overridable par utilities
217
219
  =========================================== */
218
220
 
219
- /* XXL - 48px Bold */
221
+ @layer components {
220
222
 
223
+ /* XXL - 48px Bold */
221
224
  .mba-heading-xxl {
222
225
  font-family: var(--mba-font-family-heading);
223
226
  font-size: var(--mba-font-size-xxl);
@@ -226,7 +229,6 @@
226
229
  }
227
230
 
228
231
  /* XL - 32px Bold */
229
-
230
232
  .mba-heading-xl {
231
233
  font-family: var(--mba-font-family-heading);
232
234
  font-size: var(--mba-font-size-xl);
@@ -235,7 +237,6 @@
235
237
  }
236
238
 
237
239
  /* MD - 24px Bold (Figma: extra-bold, mais Congenial ExtraBold non dispo) */
238
-
239
240
  .mba-heading-md {
240
241
  font-family: var(--mba-font-family-heading);
241
242
  font-size: var(--mba-font-size-md);
@@ -244,7 +245,6 @@
244
245
  }
245
246
 
246
247
  /* SM - 18px Bold */
247
-
248
248
  .mba-heading-sm {
249
249
  font-family: var(--mba-font-family-heading);
250
250
  font-size: var(--mba-font-size-sm);
@@ -253,7 +253,6 @@
253
253
  }
254
254
 
255
255
  /* XS - 16px Bold */
256
-
257
256
  .mba-heading-xs {
258
257
  font-family: var(--mba-font-family-heading);
259
258
  font-size: var(--mba-font-size-xs);
@@ -262,7 +261,6 @@
262
261
  }
263
262
 
264
263
  /* XXS - 14px Bold */
265
-
266
264
  .mba-heading-xxs {
267
265
  font-family: var(--mba-font-family-heading);
268
266
  font-size: var(--mba-font-size-xxs);
@@ -275,7 +273,6 @@
275
273
  =========================================== */
276
274
 
277
275
  /* XXL - 48px */
278
-
279
276
  .mba-text-xxl {
280
277
  font-family: var(--mba-font-family-text);
281
278
  font-size: var(--mba-font-size-xxl);
@@ -284,7 +281,6 @@
284
281
  }
285
282
 
286
283
  /* XL - 32px */
287
-
288
284
  .mba-text-xl {
289
285
  font-family: var(--mba-font-family-text);
290
286
  font-size: var(--mba-font-size-xl);
@@ -293,7 +289,6 @@
293
289
  }
294
290
 
295
291
  /* MD - 24px */
296
-
297
292
  .mba-text-md {
298
293
  font-family: var(--mba-font-family-text);
299
294
  font-size: var(--mba-font-size-md);
@@ -302,7 +297,6 @@
302
297
  }
303
298
 
304
299
  /* SM - 18px */
305
-
306
300
  .mba-text-sm {
307
301
  font-family: var(--mba-font-family-text);
308
302
  font-size: var(--mba-font-size-sm);
@@ -311,7 +305,6 @@
311
305
  }
312
306
 
313
307
  /* XS - 16px (Base) */
314
-
315
308
  .mba-text-xs {
316
309
  font-family: var(--mba-font-family-text);
317
310
  font-size: var(--mba-font-size-xs);
@@ -320,7 +313,6 @@
320
313
  }
321
314
 
322
315
  /* XXS - 14px */
323
-
324
316
  .mba-text-xxs {
325
317
  font-family: var(--mba-font-family-text);
326
318
  font-size: var(--mba-font-size-xxs);
@@ -328,6 +320,10 @@
328
320
  line-height: var(--mba-leading-normal);
329
321
  }
330
322
 
323
+ }
324
+
325
+ /* end @layer components */
326
+
331
327
  /**
332
328
  * MBA Design System - Espacements
333
329
  *
@@ -352,6 +348,11 @@
352
348
  =========================================== */
353
349
  --mba-space-0: 0;
354
350
  --mba-space-px: 1px;
351
+
352
+ /* ===========================================
353
+ CONTAINER
354
+ =========================================== */
355
+ --mba-container-width: 70rem; /* 1120px */
355
356
  }
356
357
 
357
358
  /**
@@ -723,8 +724,13 @@
723
724
  *
724
725
  * Reset CSS basé sur Tailwind Preflight / modern-normalize
725
726
  * https://tailwindcss.com/docs/preflight
727
+ *
728
+ * Wrappé dans @layer base pour permettre aux utilities Tailwind
729
+ * de l'overrider sans avoir besoin de !important
726
730
  */
727
731
 
732
+ @layer base {
733
+
728
734
  *,
729
735
  ::before,
730
736
  ::after {
@@ -956,6 +962,10 @@ video {
956
962
  display: none;
957
963
  }
958
964
 
965
+ }
966
+
967
+ /* end @layer base */
968
+
959
969
  /**
960
970
  * MBA Design System - Base Typography
961
971
  *
@@ -1011,11 +1021,12 @@ a:hover {
1011
1021
  * Source: Design System Figma
1012
1022
  */
1013
1023
 
1024
+ @layer components {
1025
+
1014
1026
  /* ===========================================
1015
1027
  BASE BUTTON (Primary - Large/Default)
1016
1028
  height: 38px, padding: 8px 16px, gap: 8px
1017
1029
  =========================================== */
1018
-
1019
1030
  .mba-btn {
1020
1031
  display: inline-flex;
1021
1032
  height: 38px;
@@ -1031,7 +1042,7 @@ a:hover {
1031
1042
  border: 1px solid transparent;
1032
1043
  border-radius: var(--mba-radius-xs);
1033
1044
  cursor: pointer;
1034
- transition: all 0.25s ease-in-out;
1045
+ transition: all var(--mba-transition-base);
1035
1046
  user-select: none;
1036
1047
  white-space: nowrap;
1037
1048
 
@@ -1064,7 +1075,6 @@ a:hover {
1064
1075
  SECONDARY BUTTON (Large/Default)
1065
1076
  height: 38px, padding: 8px 16px, gap: 8px
1066
1077
  =========================================== */
1067
-
1068
1078
  .mba-btn-secondary {
1069
1079
  display: inline-flex;
1070
1080
  height: 38px;
@@ -1079,7 +1089,7 @@ a:hover {
1079
1089
  text-decoration: none;
1080
1090
  border-radius: var(--mba-radius-xs);
1081
1091
  cursor: pointer;
1082
- transition: all 0.25s ease-in-out;
1092
+ transition: all var(--mba-transition-base);
1083
1093
  user-select: none;
1084
1094
  white-space: nowrap;
1085
1095
 
@@ -1112,7 +1122,6 @@ a:hover {
1112
1122
  TERTIARY BUTTON (Large/Default)
1113
1123
  height: 38px, padding: 8px 16px, gap: 8px
1114
1124
  =========================================== */
1115
-
1116
1125
  .mba-btn-tertiary {
1117
1126
  display: inline-flex;
1118
1127
  height: 38px;
@@ -1128,7 +1137,7 @@ a:hover {
1128
1137
  border: none;
1129
1138
  border-radius: var(--mba-radius-xs);
1130
1139
  cursor: pointer;
1131
- transition: all 0.25s ease-in-out;
1140
+ transition: all var(--mba-transition-base);
1132
1141
  user-select: none;
1133
1142
  white-space: nowrap;
1134
1143
 
@@ -1158,7 +1167,6 @@ a:hover {
1158
1167
  INLINE BUTTON
1159
1168
  height: 24px, padding: 8px 16px, gap: 4px
1160
1169
  =========================================== */
1161
-
1162
1170
  .mba-btn-inline {
1163
1171
  display: inline-flex;
1164
1172
  height: 24px;
@@ -1174,7 +1182,7 @@ a:hover {
1174
1182
  border: none;
1175
1183
  border-radius: var(--mba-radius-xs);
1176
1184
  cursor: pointer;
1177
- transition: all 0.25s ease-in-out;
1185
+ transition: all var(--mba-transition-base);
1178
1186
  user-select: none;
1179
1187
  white-space: nowrap;
1180
1188
 
@@ -1203,7 +1211,6 @@ a:hover {
1203
1211
  }
1204
1212
 
1205
1213
  /* Alert-Error state */
1206
-
1207
1214
  .mba-btn-inline.is-error {
1208
1215
  background-color: var(--mba-color-white);
1209
1216
  color: var(--mba-color-error-500);
@@ -1214,7 +1221,6 @@ a:hover {
1214
1221
  LIGHT BUTTON (Large/Default)
1215
1222
  height: 30px, padding: 4px 12px, gap: 4px
1216
1223
  =========================================== */
1217
-
1218
1224
  .mba-btn-light {
1219
1225
  display: inline-flex;
1220
1226
  height: 30px;
@@ -1230,7 +1236,7 @@ a:hover {
1230
1236
  border: 1.5px solid var(--mba-color-primary-400);
1231
1237
  border-radius: var(--mba-radius-sm);
1232
1238
  cursor: pointer;
1233
- transition: all 0.25s ease-in-out;
1239
+ transition: all var(--mba-transition-base);
1234
1240
  user-select: none;
1235
1241
  white-space: nowrap;
1236
1242
 
@@ -1263,7 +1269,6 @@ a:hover {
1263
1269
  ANNUAIRE BUTTON (Large/Default)
1264
1270
  height: 38px, padding: 8px 16px, gap: 8px
1265
1271
  =========================================== */
1266
-
1267
1272
  .mba-btn-annuaire {
1268
1273
  display: inline-flex;
1269
1274
  height: 38px;
@@ -1279,7 +1284,7 @@ a:hover {
1279
1284
  border: 1px solid var(--mba-color-grey-100);
1280
1285
  border-radius: var(--mba-radius-xs);
1281
1286
  cursor: pointer;
1282
- transition: all 0.25s ease-in-out;
1287
+ transition: all var(--mba-transition-base);
1283
1288
  user-select: none;
1284
1289
  white-space: nowrap;
1285
1290
 
@@ -1311,7 +1316,6 @@ a:hover {
1311
1316
  PIN BUTTON
1312
1317
  width: 40px, height: 40px, icon: 20px
1313
1318
  =========================================== */
1314
-
1315
1319
  .mba-btn-pin {
1316
1320
  display: inline-flex;
1317
1321
  width: 40px;
@@ -1322,7 +1326,7 @@ a:hover {
1322
1326
  border: 1px solid var(--mba-color-primary-500);
1323
1327
  border-radius: 50%;
1324
1328
  cursor: pointer;
1325
- transition: all 0.25s ease-in-out;
1329
+ transition: all var(--mba-transition-base);
1326
1330
  user-select: none;
1327
1331
 
1328
1332
  background-color: var(--mba-color-white);
@@ -1341,7 +1345,6 @@ a:hover {
1341
1345
  }
1342
1346
 
1343
1347
  /* Deja-vu state */
1344
-
1345
1348
  .mba-btn-pin.is-deja-vu {
1346
1349
  border-color: var(--mba-color-grey-300);
1347
1350
  background-color: var(--mba-color-grey-50);
@@ -1349,7 +1352,6 @@ a:hover {
1349
1352
  }
1350
1353
 
1351
1354
  /* Activated state */
1352
-
1353
1355
  .mba-btn-pin.is-activated {
1354
1356
  border-color: var(--mba-color-primary-500);
1355
1357
  background-color: var(--mba-color-primary-500);
@@ -1371,7 +1373,6 @@ a:hover {
1371
1373
  ICON BUTTON
1372
1374
  width: 24px, height: 24px, icon: 16px
1373
1375
  =========================================== */
1374
-
1375
1376
  .mba-btn-icon-only {
1376
1377
  display: inline-flex;
1377
1378
  width: 24px;
@@ -1381,7 +1382,7 @@ a:hover {
1381
1382
  align-items: center;
1382
1383
  border-radius: var(--mba-radius-xs);
1383
1384
  cursor: pointer;
1384
- transition: all 0.25s ease-in-out;
1385
+ transition: all var(--mba-transition-base);
1385
1386
  user-select: none;
1386
1387
  border: 1px solid var(--mba-color-black);
1387
1388
  background-color: var(--mba-color-white);
@@ -1405,7 +1406,6 @@ a:hover {
1405
1406
  }
1406
1407
 
1407
1408
  /* Activated state */
1408
-
1409
1409
  .mba-btn-icon-only.is-activated {
1410
1410
  border-color: var(--mba-color-primary-500);
1411
1411
  background-color: var(--mba-color-white);
@@ -1418,7 +1418,6 @@ a:hover {
1418
1418
  }
1419
1419
 
1420
1420
  /* Disabled state */
1421
-
1422
1421
  .mba-btn-icon-only:disabled,
1423
1422
  .mba-btn-icon-only.is-disabled {
1424
1423
  border-color: var(--mba-color-grey-300);
@@ -1429,7 +1428,6 @@ a:hover {
1429
1428
  }
1430
1429
 
1431
1430
  /* Alert state */
1432
-
1433
1431
  .mba-btn-icon-only.is-alert {
1434
1432
  border-color: var(--mba-color-error-500);
1435
1433
  background-color: var(--mba-color-white);
@@ -1445,7 +1443,6 @@ a:hover {
1445
1443
  SMALL BUTTON
1446
1444
  padding: 4px 8px, gap: 8px
1447
1445
  =========================================== */
1448
-
1449
1446
  .mba-btn-sm {
1450
1447
  height: auto;
1451
1448
  padding: var(--mba-space-xxs) var(--mba-space-xs);
@@ -1456,7 +1453,6 @@ a:hover {
1456
1453
  /* ===========================================
1457
1454
  ICON ALIGNMENT
1458
1455
  =========================================== */
1459
-
1460
1456
  .mba-btn-icon-only i,
1461
1457
  .mba-btn-icon-only svg,
1462
1458
  .mba-btn i,
@@ -1467,7 +1463,6 @@ a:hover {
1467
1463
  }
1468
1464
 
1469
1465
  /* Arrow forward icon alignment */
1470
-
1471
1466
  .mba-btn .arrow-forward,
1472
1467
  .mba-btn-secondary .arrow-forward {
1473
1468
  vertical-align: middle;
@@ -1478,7 +1473,6 @@ a:hover {
1478
1473
  =========================================== */
1479
1474
 
1480
1475
  /* Full width */
1481
-
1482
1476
  .mba-btn-block {
1483
1477
  display: block;
1484
1478
  width: 100%;
@@ -1488,7 +1482,6 @@ a:hover {
1488
1482
  /* ===========================================
1489
1483
  RESPONSIVE (full width on mobile)
1490
1484
  =========================================== */
1491
-
1492
1485
  @media (max-width: 767px) {
1493
1486
  .mba-btn,
1494
1487
  .mba-btn-secondary {
@@ -1498,6 +1491,71 @@ a:hover {
1498
1491
  }
1499
1492
  }
1500
1493
 
1494
+ }
1495
+
1496
+ /* end @layer components */
1497
+
1498
+ /**
1499
+ * MBA Design System - Links
1500
+ *
1501
+ * Composant de lien avec icône
1502
+ * L'underline au hover s'applique uniquement au texte, pas à l'icône
1503
+ *
1504
+ * Classes:
1505
+ * - .mba-link - Lien de base avec icône
1506
+ *
1507
+ * Structure HTML:
1508
+ * <a href="#" class="mba-link">
1509
+ * <span class="mba-link__text">En lire plus</span>
1510
+ * <span class="material-symbols-rounded">arrow_forward</span>
1511
+ * </a>
1512
+ */
1513
+
1514
+ @layer components {
1515
+
1516
+ .mba-link {
1517
+ display: inline-flex;
1518
+ align-items: center;
1519
+ gap: var(--mba-space-xs);
1520
+ font-family: var(--mba-font-family-text);
1521
+ font-size: var(--mba-font-size-xs);
1522
+ font-weight: var(--mba-font-weight-semibold);
1523
+ color: var(--mba-color-primary-500);
1524
+ text-decoration: none;
1525
+ transition: color var(--mba-transition-base);
1526
+ }
1527
+
1528
+ .mba-link:hover {
1529
+ color: var(--mba-color-primary-800);
1530
+ }
1531
+
1532
+ /* Underline uniquement sur le texte, pas l'icône */
1533
+ .mba-link__text {
1534
+ text-decoration: none;
1535
+ transition: text-decoration var(--mba-transition-base);
1536
+ }
1537
+
1538
+ .mba-link:hover .mba-link__text {
1539
+ text-decoration: underline;
1540
+ }
1541
+
1542
+ /* Icône */
1543
+ .mba-link .material-symbols-rounded {
1544
+ font-size: 20px;
1545
+ text-decoration: none;
1546
+ }
1547
+
1548
+ /* Focus state */
1549
+ .mba-link:focus-visible {
1550
+ outline: none;
1551
+ box-shadow: var(--mba-focus-ring);
1552
+ border-radius: var(--mba-radius-2xs);
1553
+ }
1554
+
1555
+ }
1556
+
1557
+ /* end @layer components */
1558
+
1501
1559
  /**
1502
1560
  * MBA Design System - Cards
1503
1561
  *
@@ -1505,11 +1563,12 @@ a:hover {
1505
1563
  * Source: Design System Figma
1506
1564
  */
1507
1565
 
1566
+ @layer components {
1567
+
1508
1568
  /* ===========================================
1509
1569
  BASE CARD (Large / Default)
1510
1570
  padding: 24px (MD), border-radius: 16px (SM)
1511
1571
  =========================================== */
1512
-
1513
1572
  .mba-card {
1514
1573
  display: flex;
1515
1574
  flex-direction: column;
@@ -1517,7 +1576,7 @@ a:hover {
1517
1576
  border-radius: var(--mba-radius-sm);
1518
1577
  background-color: var(--mba-color-beige);
1519
1578
  border: 2px solid transparent;
1520
- transition: border-color 0.25s ease-in-out;
1579
+ transition: border-color var(--mba-transition-base);
1521
1580
  cursor: pointer;
1522
1581
  }
1523
1582
 
@@ -1528,7 +1587,6 @@ a:hover {
1528
1587
  /* ===========================================
1529
1588
  SMALL CARD
1530
1589
  =========================================== */
1531
-
1532
1590
  .mba-card--sm {
1533
1591
  padding: var(--mba-space-sm);
1534
1592
  }
@@ -1536,7 +1594,6 @@ a:hover {
1536
1594
  /* ===========================================
1537
1595
  CARD PARTS
1538
1596
  =========================================== */
1539
-
1540
1597
  .mba-card__header {
1541
1598
  display: flex;
1542
1599
  justify-content: space-between;
@@ -1569,7 +1626,7 @@ a:hover {
1569
1626
  flex-shrink: 0;
1570
1627
  color: var(--mba-color-primary-500);
1571
1628
  font-size: 24px;
1572
- transition: transform 0.2s ease;
1629
+ transition: transform var(--mba-transition-base);
1573
1630
  }
1574
1631
 
1575
1632
  .mba-card__icon svg {
@@ -1584,7 +1641,6 @@ a:hover {
1584
1641
  /* ===========================================
1585
1642
  CARD GRID
1586
1643
  =========================================== */
1587
-
1588
1644
  .mba-card-grid {
1589
1645
  display: grid;
1590
1646
  gap: var(--mba-space-md);
@@ -1609,13 +1665,11 @@ a:hover {
1609
1665
  =========================================== */
1610
1666
 
1611
1667
  /* White background */
1612
-
1613
1668
  .mba-card--white {
1614
1669
  background-color: var(--mba-color-white);
1615
1670
  }
1616
1671
 
1617
1672
  /* Non-interactive (no hover) */
1618
-
1619
1673
  .mba-card--static {
1620
1674
  cursor: default;
1621
1675
  }
@@ -1628,7 +1682,6 @@ a:hover {
1628
1682
  CAROUSEL CARD (Testimonial)
1629
1683
  Bordure gradient sunset
1630
1684
  =========================================== */
1631
-
1632
1685
  .mba-carousel-card {
1633
1686
  position: relative;
1634
1687
  display: flex;
@@ -1692,14 +1745,13 @@ a:hover {
1692
1745
  STATS CARD
1693
1746
  Bordure gradient sunset
1694
1747
  =========================================== */
1695
-
1696
1748
  .mba-stats-card {
1697
1749
  position: relative;
1698
1750
  padding: var(--mba-space-md);
1699
1751
  background-color: var(--mba-color-white);
1700
1752
  border-radius: var(--mba-radius-md);
1701
1753
  box-shadow: var(--mba-shadow-xs);
1702
- transition: transform 0.3s ease, box-shadow 0.3s ease;
1754
+ transition: transform var(--mba-transition-slow), box-shadow var(--mba-transition-slow);
1703
1755
  }
1704
1756
 
1705
1757
  .mba-stats-card::before {
@@ -1751,7 +1803,6 @@ a:hover {
1751
1803
  /* ===========================================
1752
1804
  STATS GRID
1753
1805
  =========================================== */
1754
-
1755
1806
  .mba-stats-grid {
1756
1807
  display: grid;
1757
1808
  grid-template-columns: repeat(3, 1fr);
@@ -1771,6 +1822,133 @@ a:hover {
1771
1822
  }
1772
1823
  }
1773
1824
 
1825
+ /* ===========================================
1826
+ ARTICLE CARD (avec image)
1827
+ Image en haut, tag, titre, texte, lien
1828
+ =========================================== */
1829
+ .mba-article-card {
1830
+ display: flex;
1831
+ flex-direction: column;
1832
+ background-color: var(--mba-color-white);
1833
+ border-radius: var(--mba-radius-sm);
1834
+ overflow: hidden;
1835
+ box-shadow: var(--mba-shadow-xs);
1836
+ transition: box-shadow var(--mba-transition-base), transform var(--mba-transition-base);
1837
+ }
1838
+
1839
+ .mba-article-card:hover {
1840
+ box-shadow: var(--mba-shadow-sm);
1841
+ transform: translateY(-2px);
1842
+ }
1843
+
1844
+ /* Image container (pour positionner le tag) */
1845
+ .mba-article-card__image-wrapper {
1846
+ position: relative;
1847
+ }
1848
+
1849
+ .mba-article-card__image {
1850
+ display: block;
1851
+ width: 100%;
1852
+ height: 152px;
1853
+ object-fit: cover;
1854
+ border-radius: var(--mba-radius-sm) var(--mba-radius-sm) 0 0;
1855
+ }
1856
+
1857
+ /* Tag/badge sur l'image */
1858
+ .mba-article-card__tag {
1859
+ position: absolute;
1860
+ bottom: 0;
1861
+ left: 0;
1862
+ padding: var(--mba-space-xxs) var(--mba-space-xs);
1863
+ background-color: var(--mba-color-brick);
1864
+ color: var(--mba-color-white);
1865
+ font-family: var(--mba-font-family-text);
1866
+ font-size: var(--mba-font-size-xs);
1867
+ font-weight: var(--mba-font-weight-semibold);
1868
+ border-radius: 0 var(--mba-radius-xs) 0 0;
1869
+ }
1870
+
1871
+ .mba-article-card__content {
1872
+ display: flex;
1873
+ flex-direction: column;
1874
+ flex: 1;
1875
+ padding: var(--mba-space-sm) var(--mba-space-sm) 0;
1876
+ gap: var(--mba-space-xs);
1877
+ }
1878
+
1879
+ .mba-article-card__title {
1880
+ font-family: var(--mba-font-family-text);
1881
+ font-size: var(--mba-font-size-sm);
1882
+ font-weight: var(--mba-font-weight-bold);
1883
+ color: var(--mba-color-primary-800);
1884
+ margin: 0;
1885
+ }
1886
+
1887
+ .mba-article-card__text {
1888
+ font-family: var(--mba-font-family-text);
1889
+ font-size: var(--mba-font-size-xs);
1890
+ font-weight: var(--mba-font-weight-regular);
1891
+ color: var(--mba-color-text);
1892
+ line-height: var(--mba-leading-normal);
1893
+ margin: 0;
1894
+ }
1895
+
1896
+ /* Footer avec lien */
1897
+ .mba-article-card__footer {
1898
+ display: flex;
1899
+ justify-content: flex-end;
1900
+ padding: 0 var(--mba-space-sm) var(--mba-space-sm);
1901
+ margin-top: var(--mba-space-md);
1902
+ }
1903
+
1904
+ .mba-article-card__link {
1905
+ display: inline-flex;
1906
+ align-items: center;
1907
+ gap: var(--mba-space-xs);
1908
+ font-family: var(--mba-font-family-text);
1909
+ font-size: var(--mba-font-size-xs);
1910
+ font-weight: var(--mba-font-weight-semibold);
1911
+ color: var(--mba-color-primary-500);
1912
+ text-decoration: none;
1913
+ transition: color var(--mba-transition-base);
1914
+ }
1915
+
1916
+ .mba-article-card__link:hover {
1917
+ color: var(--mba-color-primary-800);
1918
+ }
1919
+
1920
+ .mba-article-card__link:hover .mba-article-card__link-text {
1921
+ text-decoration: underline;
1922
+ }
1923
+
1924
+ .mba-article-card__link .material-symbols-rounded {
1925
+ font-size: 20px;
1926
+ }
1927
+
1928
+ /* Grid pour article cards */
1929
+ .mba-article-card-grid {
1930
+ display: grid;
1931
+ gap: var(--mba-space-md);
1932
+ grid-template-columns: 1fr;
1933
+ width: 100%;
1934
+ }
1935
+
1936
+ @media (min-width: 600px) {
1937
+ .mba-article-card-grid {
1938
+ grid-template-columns: repeat(2, 1fr);
1939
+ }
1940
+ }
1941
+
1942
+ @media (min-width: 900px) {
1943
+ .mba-article-card-grid {
1944
+ grid-template-columns: repeat(3, 1fr);
1945
+ }
1946
+ }
1947
+
1948
+ }
1949
+
1950
+ /* end @layer components */
1951
+
1774
1952
  /**
1775
1953
  * MBA Design System - Arrow Buttons
1776
1954
  *
@@ -1783,6 +1961,8 @@ a:hover {
1783
1961
  * - disabled: Grey-300
1784
1962
  */
1785
1963
 
1964
+ @layer components {
1965
+
1786
1966
  .mba-arrow {
1787
1967
  display: inline-flex;
1788
1968
  align-items: center;
@@ -1793,7 +1973,7 @@ a:hover {
1793
1973
  color: var(--mba-color-white);
1794
1974
  border: none;
1795
1975
  cursor: pointer;
1796
- transition: background-color 0.2s ease;
1976
+ transition: background-color var(--mba-transition-base);
1797
1977
  }
1798
1978
 
1799
1979
  .mba-arrow:hover {
@@ -1806,7 +1986,6 @@ a:hover {
1806
1986
  }
1807
1987
 
1808
1988
  /* Disabled state */
1809
-
1810
1989
  .mba-arrow:disabled,
1811
1990
  .mba-arrow.is-disabled {
1812
1991
  background-color: var(--mba-color-grey-300);
@@ -1819,11 +1998,14 @@ a:hover {
1819
1998
  }
1820
1999
 
1821
2000
  /* Icon sizing */
1822
-
1823
2001
  .mba-arrow .material-symbols-rounded {
1824
2002
  font-size: 24px;
1825
2003
  }
1826
2004
 
2005
+ }
2006
+
2007
+ /* end @layer components */
2008
+
1827
2009
  /**
1828
2010
  * MBA Design System - Radio & Checkbox
1829
2011
  *
@@ -1831,10 +2013,11 @@ a:hover {
1831
2013
  * Source: Design System Figma
1832
2014
  */
1833
2015
 
2016
+ @layer components {
2017
+
1834
2018
  /* ===========================================
1835
2019
  RADIO BUTTON - Aidants (Primary)
1836
2020
  =========================================== */
1837
-
1838
2021
  .mba-radio {
1839
2022
  position: relative;
1840
2023
  display: inline-flex;
@@ -1861,7 +2044,7 @@ a:hover {
1861
2044
  border-radius: 8px;
1862
2045
  border: 1px solid var(--mba-color-primary-900);
1863
2046
  background-color: var(--mba-color-white);
1864
- transition: all 0.2s ease;
2047
+ transition: all var(--mba-transition-base);
1865
2048
  }
1866
2049
 
1867
2050
  .mba-radio .mba-radio__control::after {
@@ -1874,11 +2057,10 @@ a:hover {
1874
2057
  height: 12px;
1875
2058
  border-radius: 50%;
1876
2059
  background-color: var(--mba-color-primary-400);
1877
- transition: transform 0.2s ease;
2060
+ transition: transform var(--mba-transition-base);
1878
2061
  }
1879
2062
 
1880
2063
  /* Hover state (pas sur disabled) */
1881
-
1882
2064
  .mba-radio:hover:not(:has(input:disabled)) .mba-radio__control::after {
1883
2065
  transform: translate(-50%, -50%) scale(1);
1884
2066
  width: 10px;
@@ -1886,7 +2068,6 @@ a:hover {
1886
2068
  }
1887
2069
 
1888
2070
  /* Selected state */
1889
-
1890
2071
  .mba-radio input:checked + .mba-radio__control::after {
1891
2072
  transform: translate(-50%, -50%) scale(1);
1892
2073
  width: 12px;
@@ -1894,13 +2075,11 @@ a:hover {
1894
2075
  }
1895
2076
 
1896
2077
  /* Focus state */
1897
-
1898
2078
  .mba-radio input:focus + .mba-radio__control {
1899
2079
  box-shadow: var(--mba-focus-ring);
1900
2080
  }
1901
2081
 
1902
2082
  /* Disabled state */
1903
-
1904
2083
  .mba-radio input:disabled + .mba-radio__control {
1905
2084
  border-color: var(--mba-color-grey-300);
1906
2085
  background-color: var(--mba-color-grey-50);
@@ -1918,7 +2097,6 @@ a:hover {
1918
2097
  /* ===========================================
1919
2098
  RADIO BUTTON - Partenaire (PrimaryPro)
1920
2099
  =========================================== */
1921
-
1922
2100
  .mba-radio--pro .mba-radio__control {
1923
2101
  border-color: var(--mba-color-primary-pro-800);
1924
2102
  }
@@ -1930,7 +2108,6 @@ a:hover {
1930
2108
  /* ===========================================
1931
2109
  CHECKBOX - Aidants (Primary)
1932
2110
  =========================================== */
1933
-
1934
2111
  .mba-checkbox {
1935
2112
  position: relative;
1936
2113
  display: inline-flex;
@@ -1957,7 +2134,7 @@ a:hover {
1957
2134
  border-radius: var(--mba-radius-2xs);
1958
2135
  border: 1px solid var(--mba-color-primary-900);
1959
2136
  background-color: var(--mba-color-white);
1960
- transition: all 0.2s ease;
2137
+ transition: all var(--mba-transition-base);
1961
2138
  }
1962
2139
 
1963
2140
  .mba-checkbox .mba-checkbox__control::after {
@@ -1970,11 +2147,10 @@ a:hover {
1970
2147
  height: 12px;
1971
2148
  border-radius: 2px;
1972
2149
  background-color: var(--mba-color-primary-400);
1973
- transition: transform 0.2s ease;
2150
+ transition: transform var(--mba-transition-base);
1974
2151
  }
1975
2152
 
1976
2153
  /* Hover state (pas sur disabled) */
1977
-
1978
2154
  .mba-checkbox:hover:not(:has(input:disabled)) .mba-checkbox__control::after {
1979
2155
  transform: translate(-50%, -50%) scale(1);
1980
2156
  width: 10px;
@@ -1982,7 +2158,6 @@ a:hover {
1982
2158
  }
1983
2159
 
1984
2160
  /* Selected state */
1985
-
1986
2161
  .mba-checkbox input:checked + .mba-checkbox__control::after {
1987
2162
  transform: translate(-50%, -50%) scale(1);
1988
2163
  width: 12px;
@@ -1990,13 +2165,11 @@ a:hover {
1990
2165
  }
1991
2166
 
1992
2167
  /* Focus state */
1993
-
1994
2168
  .mba-checkbox input:focus + .mba-checkbox__control {
1995
2169
  box-shadow: var(--mba-focus-ring);
1996
2170
  }
1997
2171
 
1998
2172
  /* Disabled state */
1999
-
2000
2173
  .mba-checkbox input:disabled + .mba-checkbox__control {
2001
2174
  border-color: var(--mba-color-grey-300);
2002
2175
  background-color: var(--mba-color-grey-50);
@@ -2014,7 +2187,6 @@ a:hover {
2014
2187
  /* ===========================================
2015
2188
  CHECKBOX - Partenaire (PrimaryPro)
2016
2189
  =========================================== */
2017
-
2018
2190
  .mba-checkbox--pro .mba-checkbox__control {
2019
2191
  border-color: var(--mba-color-primary-pro-800);
2020
2192
  }
@@ -2026,7 +2198,6 @@ a:hover {
2026
2198
  /* ===========================================
2027
2199
  WITH LABEL
2028
2200
  =========================================== */
2029
-
2030
2201
  .mba-radio-label,
2031
2202
  .mba-checkbox-label {
2032
2203
  display: inline-flex;
@@ -2044,6 +2215,10 @@ a:hover {
2044
2215
  color: var(--mba-color-grey-400);
2045
2216
  }
2046
2217
 
2218
+ }
2219
+
2220
+ /* end @layer components */
2221
+
2047
2222
  /**
2048
2223
  * MBA Design System - Pagination
2049
2224
  *
@@ -2051,11 +2226,12 @@ a:hover {
2051
2226
  * Source: Design System Figma
2052
2227
  */
2053
2228
 
2229
+ @layer components {
2230
+
2054
2231
  /* ===========================================
2055
2232
  PAGINATION CONTAINER
2056
2233
  height: hug (32px), gap: 16px (SM)
2057
2234
  =========================================== */
2058
-
2059
2235
  .mba-pagination {
2060
2236
  display: inline-flex;
2061
2237
  align-items: center;
@@ -2069,7 +2245,6 @@ a:hover {
2069
2245
  PAGINATION ITEM
2070
2246
  width: 32px, height: 32px
2071
2247
  =========================================== */
2072
-
2073
2248
  .mba-pagination-item {
2074
2249
  display: inline-flex;
2075
2250
  width: 32px;
@@ -2078,15 +2253,14 @@ a:hover {
2078
2253
  justify-content: center;
2079
2254
  align-items: center;
2080
2255
  font-family: var(--mba-font-family-text);
2081
- font-size: var(--mba-font-size-xs);
2256
+ font-size: var(--mba-font-size-sm);
2082
2257
  font-weight: var(--mba-font-weight-semibold);
2083
- font-size: 18px;
2084
2258
  line-height: var(--mba-leading-snug);
2085
2259
  text-decoration: none;
2086
2260
  border: none;
2087
2261
  border-radius: var(--mba-radius-xs);
2088
2262
  cursor: pointer;
2089
- transition: all 0.25s ease-in-out;
2263
+ transition: all var(--mba-transition-base);
2090
2264
  user-select: none;
2091
2265
  background-color: var(--mba-color-white);
2092
2266
  color: var(--mba-color-black);
@@ -2103,7 +2277,6 @@ a:hover {
2103
2277
  }
2104
2278
 
2105
2279
  /* Active state */
2106
-
2107
2280
  .mba-pagination-item.is-active {
2108
2281
  background-color: var(--mba-color-secondary-500);
2109
2282
  border-radius: 50%;
@@ -2112,7 +2285,6 @@ a:hover {
2112
2285
  }
2113
2286
 
2114
2287
  /* Disabled state */
2115
-
2116
2288
  .mba-pagination-item:disabled,
2117
2289
  .mba-pagination-item.is-disabled {
2118
2290
  background-color: var(--mba-color-white);
@@ -2124,7 +2296,6 @@ a:hover {
2124
2296
  /* ===========================================
2125
2297
  PAGINATION ELLIPSIS
2126
2298
  =========================================== */
2127
-
2128
2299
  .mba-pagination-ellipsis {
2129
2300
  display: inline-flex;
2130
2301
  width: 32px;
@@ -2145,7 +2316,6 @@ a:hover {
2145
2316
  PAGINATION ARROW BUTTON
2146
2317
  width: 32px, height: 32px
2147
2318
  =========================================== */
2148
-
2149
2319
  .mba-pagination-arrow {
2150
2320
  display: inline-flex;
2151
2321
  width: 32px;
@@ -2156,7 +2326,7 @@ a:hover {
2156
2326
  border: none;
2157
2327
  border-radius: var(--mba-radius-xs);
2158
2328
  cursor: pointer;
2159
- transition: all 0.25s ease-in-out;
2329
+ transition: all var(--mba-transition-base);
2160
2330
  user-select: none;
2161
2331
  background-color: var(--mba-color-white);
2162
2332
  color: var(--mba-color-black);
@@ -2186,6 +2356,48 @@ a:hover {
2186
2356
  pointer-events: none;
2187
2357
  }
2188
2358
 
2359
+ /* ===========================================
2360
+ DOTS PAGINATION (Carrousel)
2361
+ Indicateurs de slide sous forme de points
2362
+ =========================================== */
2363
+ .mba-dots {
2364
+ display: inline-flex;
2365
+ align-items: center;
2366
+ gap: var(--mba-space-xs);
2367
+ padding: 0;
2368
+ margin: 0;
2369
+ list-style: none;
2370
+ }
2371
+
2372
+ .mba-dot {
2373
+ width: 40px;
2374
+ height: 8px;
2375
+ border-radius: var(--mba-radius-full);
2376
+ background-color: var(--mba-color-grey-300);
2377
+ border: none;
2378
+ padding: 0;
2379
+ cursor: pointer;
2380
+ transition: background-color var(--mba-transition-base);
2381
+ }
2382
+
2383
+ .mba-dot:hover:not(.is-active) {
2384
+ background-color: var(--mba-color-grey-400);
2385
+ }
2386
+
2387
+ .mba-dot:focus-visible {
2388
+ outline: none;
2389
+ box-shadow: var(--mba-focus-ring);
2390
+ }
2391
+
2392
+ .mba-dot.is-active {
2393
+ background-color: var(--mba-color-primary-500);
2394
+ cursor: default;
2395
+ }
2396
+
2397
+ }
2398
+
2399
+ /* end @layer components */
2400
+
2189
2401
  /**
2190
2402
  * MBA Design System - Inputs
2191
2403
  *
@@ -2193,10 +2405,11 @@ a:hover {
2193
2405
  * Source: Design System Figma
2194
2406
  */
2195
2407
 
2408
+ @layer components {
2409
+
2196
2410
  /* ===========================================
2197
2411
  LABEL
2198
2412
  =========================================== */
2199
-
2200
2413
  .mba-label {
2201
2414
  display: flex;
2202
2415
  align-items: center;
@@ -2209,14 +2422,12 @@ a:hover {
2209
2422
  }
2210
2423
 
2211
2424
  /* Asterisque required */
2212
-
2213
2425
  .mba-label__required {
2214
2426
  color: var(--mba-color-error-500);
2215
2427
  font-size: var(--mba-font-size-xxs);
2216
2428
  }
2217
2429
 
2218
2430
  /* Icone info */
2219
-
2220
2431
  .mba-label__icon {
2221
2432
  font-size: 16px;
2222
2433
  color: var(--mba-color-grey-400);
@@ -2225,7 +2436,6 @@ a:hover {
2225
2436
  /* ===========================================
2226
2437
  TEXTAREA - Base
2227
2438
  =========================================== */
2228
-
2229
2439
  .mba-textarea {
2230
2440
  display: block;
2231
2441
  width: 100%;
@@ -2238,17 +2448,15 @@ a:hover {
2238
2448
  font-weight: var(--mba-font-weight-regular);
2239
2449
  color: var(--mba-color-black);
2240
2450
  resize: vertical;
2241
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
2451
+ transition: border-color var(--mba-transition-base), box-shadow var(--mba-transition-base);
2242
2452
  }
2243
2453
 
2244
2454
  /* Placeholder */
2245
-
2246
2455
  .mba-textarea::placeholder {
2247
2456
  color: var(--mba-color-grey-400);
2248
2457
  }
2249
2458
 
2250
2459
  /* Focus state */
2251
-
2252
2460
  .mba-textarea:focus {
2253
2461
  outline: none;
2254
2462
  border-color: var(--mba-color-info-400);
@@ -2256,13 +2464,11 @@ a:hover {
2256
2464
  }
2257
2465
 
2258
2466
  /* Active state (typing) - placeholder devient noir si visible */
2259
-
2260
2467
  .mba-textarea:focus::placeholder {
2261
2468
  color: var(--mba-color-black);
2262
2469
  }
2263
2470
 
2264
2471
  /* Disabled state */
2265
-
2266
2472
  .mba-textarea:disabled {
2267
2473
  background-color: var(--mba-color-grey-50);
2268
2474
  border-color: var(--mba-color-grey-100);
@@ -2274,14 +2480,12 @@ a:hover {
2274
2480
  }
2275
2481
 
2276
2482
  /* Hover state */
2277
-
2278
2483
  .mba-textarea:hover:not(:focus):not(:disabled):not(.mba-textarea--error):not(.mba-textarea--valid) {
2279
2484
  border-color: var(--mba-color-info-400);
2280
2485
  box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2281
2486
  }
2282
2487
 
2283
2488
  /* Error state */
2284
-
2285
2489
  .mba-textarea--error {
2286
2490
  border-color: var(--mba-color-error-500);
2287
2491
  box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
@@ -2293,7 +2497,6 @@ a:hover {
2293
2497
  }
2294
2498
 
2295
2499
  /* Valid state */
2296
-
2297
2500
  .mba-textarea--valid {
2298
2501
  border-color: var(--mba-color-success-500);
2299
2502
  box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
@@ -2307,7 +2510,6 @@ a:hover {
2307
2510
  /* ===========================================
2308
2511
  INPUT - Base
2309
2512
  =========================================== */
2310
-
2311
2513
  .mba-input {
2312
2514
  display: block;
2313
2515
  width: 100%;
@@ -2319,24 +2521,21 @@ a:hover {
2319
2521
  font-size: var(--mba-font-size-xxs);
2320
2522
  font-weight: var(--mba-font-weight-regular);
2321
2523
  color: var(--mba-color-black);
2322
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
2524
+ transition: border-color var(--mba-transition-base), box-shadow var(--mba-transition-base);
2323
2525
  }
2324
2526
 
2325
2527
  /* Placeholder */
2326
-
2327
2528
  .mba-input::placeholder {
2328
2529
  color: var(--mba-color-grey-400);
2329
2530
  }
2330
2531
 
2331
2532
  /* Hover state */
2332
-
2333
2533
  .mba-input:hover:not(:focus):not(:disabled):not(.mba-input--error):not(.mba-input--valid) {
2334
2534
  border-color: var(--mba-color-info-400);
2335
2535
  box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2336
2536
  }
2337
2537
 
2338
2538
  /* Focus state */
2339
-
2340
2539
  .mba-input:focus {
2341
2540
  outline: none;
2342
2541
  border-color: var(--mba-color-info-400);
@@ -2344,7 +2543,6 @@ a:hover {
2344
2543
  }
2345
2544
 
2346
2545
  /* Disabled state */
2347
-
2348
2546
  .mba-input:disabled {
2349
2547
  background-color: var(--mba-color-grey-50);
2350
2548
  border-color: var(--mba-color-grey-100);
@@ -2358,7 +2556,6 @@ a:hover {
2358
2556
  /* ===========================================
2359
2557
  INPUT - Error state
2360
2558
  =========================================== */
2361
-
2362
2559
  .mba-input--error {
2363
2560
  border-color: var(--mba-color-error-500);
2364
2561
  box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
@@ -2372,7 +2569,6 @@ a:hover {
2372
2569
  /* ===========================================
2373
2570
  INPUT - Validate state
2374
2571
  =========================================== */
2375
-
2376
2572
  .mba-input--valid {
2377
2573
  border-color: var(--mba-color-success-500);
2378
2574
  box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
@@ -2386,10 +2582,9 @@ a:hover {
2386
2582
  /* ===========================================
2387
2583
  FEEDBACK MESSAGE (error / success)
2388
2584
  =========================================== */
2389
-
2390
2585
  .mba-feedback {
2391
2586
  font-family: var(--mba-font-family-text);
2392
- font-size: 12px;
2587
+ font-size: var(--mba-font-size-xxxs);
2393
2588
  font-weight: var(--mba-font-weight-regular);
2394
2589
  }
2395
2590
 
@@ -2404,7 +2599,6 @@ a:hover {
2404
2599
  /* ===========================================
2405
2600
  DROPDOWN
2406
2601
  =========================================== */
2407
-
2408
2602
  .mba-dropdown {
2409
2603
  position: relative;
2410
2604
  display: inline-block;
@@ -2412,7 +2606,6 @@ a:hover {
2412
2606
  }
2413
2607
 
2414
2608
  /* Trigger (select-like button) */
2415
-
2416
2609
  .mba-dropdown__trigger {
2417
2610
  display: flex;
2418
2611
  align-items: center;
@@ -2427,7 +2620,7 @@ a:hover {
2427
2620
  font-weight: var(--mba-font-weight-regular);
2428
2621
  color: var(--mba-color-black);
2429
2622
  cursor: pointer;
2430
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
2623
+ transition: border-color var(--mba-transition-base), box-shadow var(--mba-transition-base);
2431
2624
  }
2432
2625
 
2433
2626
  .mba-dropdown__trigger--placeholder {
@@ -2453,11 +2646,10 @@ a:hover {
2453
2646
  }
2454
2647
 
2455
2648
  /* Chevron icon */
2456
-
2457
2649
  .mba-dropdown__chevron {
2458
2650
  font-size: 20px;
2459
2651
  color: var(--mba-color-grey-400);
2460
- transition: transform 0.2s ease;
2652
+ transition: transform var(--mba-transition-base);
2461
2653
  }
2462
2654
 
2463
2655
  .mba-dropdown--open .mba-dropdown__chevron {
@@ -2465,7 +2657,6 @@ a:hover {
2465
2657
  }
2466
2658
 
2467
2659
  /* Error state */
2468
-
2469
2660
  .mba-dropdown--error .mba-dropdown__trigger {
2470
2661
  border-color: var(--mba-color-error-500);
2471
2662
  box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
@@ -2477,7 +2668,6 @@ a:hover {
2477
2668
  }
2478
2669
 
2479
2670
  /* Valid state */
2480
-
2481
2671
  .mba-dropdown--valid .mba-dropdown__trigger {
2482
2672
  border-color: var(--mba-color-success-500);
2483
2673
  box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
@@ -2489,7 +2679,6 @@ a:hover {
2489
2679
  }
2490
2680
 
2491
2681
  /* Panel */
2492
-
2493
2682
  .mba-dropdown__panel {
2494
2683
  position: absolute;
2495
2684
  top: calc(100% + 4px);
@@ -2512,7 +2701,6 @@ a:hover {
2512
2701
  }
2513
2702
 
2514
2703
  /* Custom scrollbar */
2515
-
2516
2704
  .mba-dropdown__panel::-webkit-scrollbar {
2517
2705
  width: 6px;
2518
2706
  }
@@ -2527,7 +2715,6 @@ a:hover {
2527
2715
  }
2528
2716
 
2529
2717
  /* Option */
2530
-
2531
2718
  .mba-dropdown__option {
2532
2719
  padding: var(--mba-space-xs);
2533
2720
  border-radius: var(--mba-radius-xs);
@@ -2536,7 +2723,7 @@ a:hover {
2536
2723
  font-weight: var(--mba-font-weight-regular);
2537
2724
  color: var(--mba-color-black);
2538
2725
  cursor: pointer;
2539
- transition: background-color 0.15s ease;
2726
+ transition: background-color var(--mba-transition-fast);
2540
2727
  }
2541
2728
 
2542
2729
  .mba-dropdown__option:hover {
@@ -2549,7 +2736,6 @@ a:hover {
2549
2736
  }
2550
2737
 
2551
2738
  /* Option selected - Pro variant */
2552
-
2553
2739
  .mba-dropdown--pro .mba-dropdown__option--selected {
2554
2740
  border-color: var(--mba-color-primary-pro-400);
2555
2741
  }
@@ -2558,7 +2744,6 @@ a:hover {
2558
2744
  TOGGLE SWITCH
2559
2745
  width: 42px, height: 24px, cercle: 20px
2560
2746
  =========================================== */
2561
-
2562
2747
  .mba-toggle {
2563
2748
  position: relative;
2564
2749
  display: inline-block;
@@ -2580,7 +2765,7 @@ a:hover {
2580
2765
  right: 0;
2581
2766
  bottom: 0;
2582
2767
  background-color: var(--mba-color-grey-300);
2583
- transition: all 0.3s ease;
2768
+ transition: all var(--mba-transition-slow);
2584
2769
  border-radius: 32px;
2585
2770
  }
2586
2771
 
@@ -2592,7 +2777,7 @@ a:hover {
2592
2777
  left: 2px;
2593
2778
  top: 2px;
2594
2779
  background-color: var(--mba-color-white);
2595
- transition: all 0.3s ease;
2780
+ transition: all var(--mba-transition-slow);
2596
2781
  border-radius: 50%;
2597
2782
  }
2598
2783
 
@@ -2616,7 +2801,6 @@ a:hover {
2616
2801
  /* ===========================================
2617
2802
  INPUT WITH ICON
2618
2803
  =========================================== */
2619
-
2620
2804
  .mba-input-icon {
2621
2805
  display: flex;
2622
2806
  align-items: center;
@@ -2625,7 +2809,7 @@ a:hover {
2625
2809
  border-radius: var(--mba-radius-xs);
2626
2810
  border: 1px solid var(--mba-color-grey-100);
2627
2811
  background-color: var(--mba-color-white);
2628
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
2812
+ transition: border-color var(--mba-transition-base), box-shadow var(--mba-transition-base);
2629
2813
  }
2630
2814
 
2631
2815
  .mba-input-icon input {
@@ -2650,13 +2834,12 @@ a:hover {
2650
2834
  }
2651
2835
 
2652
2836
  /* Icon clickable (button) */
2653
-
2654
2837
  button.mba-input-icon__icon {
2655
2838
  background: none;
2656
2839
  border: none;
2657
2840
  padding: 0;
2658
2841
  cursor: pointer;
2659
- transition: color 0.2s ease;
2842
+ transition: color var(--mba-transition-base);
2660
2843
  }
2661
2844
 
2662
2845
  button.mba-input-icon__icon:hover {
@@ -2664,21 +2847,18 @@ button.mba-input-icon__icon:hover {
2664
2847
  }
2665
2848
 
2666
2849
  /* Hover state */
2667
-
2668
2850
  .mba-input-icon:hover:not(:focus-within):not(.mba-input-icon--disabled):not(.mba-input-icon--error) {
2669
2851
  border-color: var(--mba-color-info-400);
2670
2852
  box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2671
2853
  }
2672
2854
 
2673
2855
  /* Focus state */
2674
-
2675
2856
  .mba-input-icon:focus-within {
2676
2857
  border-color: var(--mba-color-info-400);
2677
2858
  box-shadow: 0 0 0 1.5px var(--mba-color-info-300);
2678
2859
  }
2679
2860
 
2680
2861
  /* Disabled state */
2681
-
2682
2862
  .mba-input-icon--disabled {
2683
2863
  background-color: var(--mba-color-grey-50);
2684
2864
  cursor: not-allowed;
@@ -2690,7 +2870,6 @@ button.mba-input-icon__icon:hover {
2690
2870
  }
2691
2871
 
2692
2872
  /* Error state */
2693
-
2694
2873
  .mba-input-icon--error {
2695
2874
  border-color: var(--mba-color-error-500);
2696
2875
  box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
@@ -2708,7 +2887,6 @@ button.mba-input-icon__icon:hover {
2708
2887
  /* ===========================================
2709
2888
  INPUT GROUP (input + button)
2710
2889
  =========================================== */
2711
-
2712
2890
  .mba-input-group {
2713
2891
  display: flex;
2714
2892
  align-items: stretch;
@@ -2723,13 +2901,16 @@ button.mba-input-icon__icon:hover {
2723
2901
  /* ===========================================
2724
2902
  FORM GROUP (label + input)
2725
2903
  =========================================== */
2726
-
2727
2904
  .mba-form-group {
2728
2905
  display: flex;
2729
2906
  flex-direction: column;
2730
2907
  gap: var(--mba-space-xxs);
2731
2908
  }
2732
2909
 
2910
+ }
2911
+
2912
+ /* end @layer components */
2913
+
2733
2914
  /**
2734
2915
  * MBA Design System - Wave
2735
2916
  *
@@ -2749,6 +2930,8 @@ button.mba-input-icon__icon:hover {
2749
2930
  * <div class="mba-wave mba-wave--sm mba-wave--lavender mba-wave--top"></div>
2750
2931
  */
2751
2932
 
2933
+ @layer components {
2934
+
2752
2935
  .mba-wave {
2753
2936
  display: block;
2754
2937
  width: 100%;
@@ -2763,7 +2946,6 @@ button.mba-input-icon__icon:hover {
2763
2946
  }
2764
2947
 
2765
2948
  /* Position variants */
2766
-
2767
2949
  .mba-wave--top {
2768
2950
  -webkit-mask-image: var(--mba-wave-dip-down-mask);
2769
2951
  mask-image: var(--mba-wave-dip-down-mask);
@@ -2775,7 +2957,6 @@ button.mba-input-icon__icon:hover {
2775
2957
  }
2776
2958
 
2777
2959
  /* Size variants */
2778
-
2779
2960
  .mba-wave--sm {
2780
2961
  height: var(--mba-wave-sm-height);
2781
2962
  -webkit-mask-image: var(--mba-wave-sm-dip-up-mask);
@@ -2788,7 +2969,6 @@ button.mba-input-icon__icon:hover {
2788
2969
  }
2789
2970
 
2790
2971
  /* Color variants */
2791
-
2792
2972
  .mba-wave--lavender {
2793
2973
  background-color: var(--mba-color-pastel-lavender);
2794
2974
  }
@@ -2805,6 +2985,10 @@ button.mba-input-icon__icon:hover {
2805
2985
  background-color: var(--mba-color-primary-50);
2806
2986
  }
2807
2987
 
2988
+ }
2989
+
2990
+ /* end @layer components */
2991
+
2808
2992
  /**
2809
2993
  * MBA Design System - Section
2810
2994
  *
@@ -2820,6 +3004,7 @@ button.mba-input-icon__icon:hover {
2820
3004
  * - .mba-section--wave-bottom - Wave en bas
2821
3005
  * - .mba-section--wave-both - Waves en haut ET en bas
2822
3006
  * - .mba-section--wave-sm - Petite wave (24px au lieu de 43px)
3007
+ * - .mba-section--wave-inset - Padding ajusté pour que le contenu commence après la wave
2823
3008
  *
2824
3009
  * Usage:
2825
3010
  * <section class="mba-section mba-section--lavender mba-section--wave-both">
@@ -2832,6 +3017,8 @@ button.mba-input-icon__icon:hover {
2832
3017
  * </section>
2833
3018
  */
2834
3019
 
3020
+ @layer components {
3021
+
2835
3022
  .mba-section {
2836
3023
  position: relative;
2837
3024
  width: 100%;
@@ -2840,15 +3027,34 @@ button.mba-input-icon__icon:hover {
2840
3027
  .mba-section__content {
2841
3028
  position: relative;
2842
3029
  z-index: 1;
2843
- max-width: 1280px;
3030
+ max-width: var(--mba-container-width);
2844
3031
  margin: 0 auto;
2845
- padding: var(--mba-space-xl) var(--mba-space-md);
3032
+ padding: var(--mba-space-xxl) 0;
2846
3033
  }
2847
3034
 
2848
- @media (min-width: 768px) {
2849
- .mba-section__content {
2850
- padding: var(--mba-space-xxl) var(--mba-space-lg);
2851
- }
3035
+ /* ===========================================
3036
+ WAVE INSET (opt-in)
3037
+ Ajoute du padding pour que le contenu commence après la wave
3038
+ =========================================== */
3039
+ .mba-section--wave-inset.mba-section--wave-top .mba-section__content,
3040
+ .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3041
+ padding-top: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3042
+ }
3043
+
3044
+ .mba-section--wave-inset.mba-section--wave-bottom .mba-section__content,
3045
+ .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3046
+ padding-bottom: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3047
+ }
3048
+
3049
+ /* Wave inset pour petites waves */
3050
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-top .mba-section__content,
3051
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3052
+ padding-top: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
3053
+ }
3054
+
3055
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-bottom .mba-section__content,
3056
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3057
+ padding-bottom: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
2852
3058
  }
2853
3059
 
2854
3060
  /* ===========================================
@@ -2953,6 +3159,10 @@ button.mba-input-icon__icon:hover {
2953
3159
  background-color: var(--mba-color-primary-50);
2954
3160
  }
2955
3161
 
3162
+ }
3163
+
3164
+ /* end @layer components */
3165
+
2956
3166
  /**
2957
3167
  * MBA Design System - Footer
2958
3168
  *
@@ -2972,6 +3182,8 @@ button.mba-input-icon__icon:hover {
2972
3182
  * - .mba-footer--pro - Version partenaire (primary-pro)
2973
3183
  */
2974
3184
 
3185
+ @layer components {
3186
+
2975
3187
  /* ===========================================
2976
3188
  FOOTER CONTAINER
2977
3189
  =========================================== */
@@ -2986,7 +3198,7 @@ button.mba-input-icon__icon:hover {
2986
3198
  =========================================== */
2987
3199
 
2988
3200
  .mba-footer__main {
2989
- max-width: 1120px;
3201
+ max-width: var(--mba-container-width);
2990
3202
  margin: 0 auto;
2991
3203
  padding: var(--mba-space-xl) var(--mba-space-sm) var(--mba-space-sm);
2992
3204
  display: flex;
@@ -3043,7 +3255,7 @@ button.mba-input-icon__icon:hover {
3043
3255
  .mba-footer__mission {
3044
3256
  font-family: var(--mba-font-family-text);
3045
3257
  font-size: var(--mba-font-size-xxs);
3046
- line-height: var(--mba-line-height-relaxed);
3258
+ line-height: var(--mba-leading-relaxed);
3047
3259
  color: var(--mba-color-text);
3048
3260
  margin: 0;
3049
3261
  max-width: 300px;
@@ -3080,6 +3292,7 @@ button.mba-input-icon__icon:hover {
3080
3292
  }
3081
3293
  }
3082
3294
 
3295
+
3083
3296
  .mba-footer__nav-group {
3084
3297
  display: flex;
3085
3298
  flex-direction: column;
@@ -3188,6 +3401,7 @@ button.mba-input-icon__icon:hover {
3188
3401
  align-items: center;
3189
3402
  }
3190
3403
 
3404
+
3191
3405
  .mba-footer__social-link {
3192
3406
  display: flex;
3193
3407
  align-items: center;
@@ -3216,8 +3430,9 @@ button.mba-input-icon__icon:hover {
3216
3430
  background-color: var(--mba-color-pastel-lavender);
3217
3431
  }
3218
3432
 
3433
+
3219
3434
  .mba-footer__legal {
3220
- max-width: 1120px;
3435
+ max-width: var(--mba-container-width);
3221
3436
  margin: 0 auto;
3222
3437
  padding: var(--mba-space-md) var(--mba-space-sm);
3223
3438
  display: flex;
@@ -3325,6 +3540,10 @@ button.mba-input-icon__icon:hover {
3325
3540
  border-top-color: var(--mba-color-primary-pro-400);
3326
3541
  }
3327
3542
 
3543
+ }
3544
+
3545
+ /* end @layer components */
3546
+
3328
3547
  /* @import "./_forms.css"; */
3329
3548
 
3330
3549
  /* @import "./_alerts.css"; */