@maboussoleaidant/design-system 0.1.17 → 0.1.19

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.
@@ -104,6 +104,7 @@
104
104
  =========================================== */
105
105
  --mba-color-brick-light: #FCF4F0;
106
106
  --mba-color-brick: #AC5118;
107
+ --mba-color-infobox: #fef7e6;
107
108
 
108
109
  /* ===========================================
109
110
  CUSTOM PALETTE - Forest
@@ -188,6 +189,7 @@
188
189
  FONT WEIGHTS
189
190
  =========================================== */
190
191
  --mba-font-weight-regular: 400;
192
+ --mba-font-weight-medium: 500;
191
193
  --mba-font-weight-semibold: 600;
192
194
  --mba-font-weight-bold: 700;
193
195
  --mba-font-weight-extrabold: 800;
@@ -348,6 +350,7 @@
348
350
  =========================================== */
349
351
  --mba-space-0: 0;
350
352
  --mba-space-px: 1px;
353
+ --mba-space-gap-10: 10px;
351
354
 
352
355
  /* ===========================================
353
356
  CONTAINER
@@ -541,7 +544,7 @@
541
544
  font-style: normal;
542
545
  font-weight: 400;
543
546
  font-display: swap;
544
- src: url("../assets/fonts/OpenSans-Regular.woff2") format("woff2");
547
+ src: url("/assets/fonts/OpenSans-Regular.woff2") format("woff2");
545
548
  }
546
549
 
547
550
  @font-face {
@@ -549,7 +552,7 @@
549
552
  font-style: normal;
550
553
  font-weight: 600;
551
554
  font-display: swap;
552
- src: url("../assets/fonts/OpenSans-SemiBold.woff2") format("woff2");
555
+ src: url("/assets/fonts/OpenSans-SemiBold.woff2") format("woff2");
553
556
  }
554
557
 
555
558
  @font-face {
@@ -557,7 +560,7 @@
557
560
  font-style: normal;
558
561
  font-weight: 700;
559
562
  font-display: swap;
560
- src: url("../assets/fonts/OpenSans-Bold.woff2") format("woff2");
563
+ src: url("/assets/fonts/OpenSans-Bold.woff2") format("woff2");
561
564
  }
562
565
 
563
566
  @font-face {
@@ -565,7 +568,7 @@
565
568
  font-style: normal;
566
569
  font-weight: 800;
567
570
  font-display: swap;
568
- src: url("../assets/fonts/OpenSans-ExtraBold.woff2") format("woff2");
571
+ src: url("/assets/fonts/OpenSans-ExtraBold.woff2") format("woff2");
569
572
  }
570
573
 
571
574
  /* ===========================================
@@ -578,7 +581,7 @@
578
581
  font-style: normal;
579
582
  font-weight: 400;
580
583
  font-display: swap;
581
- src: url("../assets/fonts/Congenial.woff2") format("woff2");
584
+ src: url("/assets/fonts/Congenial.woff2") format("woff2");
582
585
  }
583
586
 
584
587
  @font-face {
@@ -586,7 +589,7 @@
586
589
  font-style: normal;
587
590
  font-weight: 500;
588
591
  font-display: swap;
589
- src: url("../assets/fonts/Congenial-Medium.woff2") format("woff2");
592
+ src: url("/assets/fonts/Congenial-Medium.woff2") format("woff2");
590
593
  }
591
594
 
592
595
  @font-face {
@@ -594,7 +597,7 @@
594
597
  font-style: normal;
595
598
  font-weight: 700;
596
599
  font-display: swap;
597
- src: url("../assets/fonts/Congenial-Bold.woff2") format("woff2");
600
+ src: url("/assets/fonts/Congenial-Bold.woff2") format("woff2");
598
601
  }
599
602
 
600
603
  /**
@@ -618,13 +621,16 @@
618
621
  font-style: normal;
619
622
  font-weight: 100 700;
620
623
  font-display: block;
621
- src: url('../assets/fonts/MaterialSymbolsRounded.woff2') format('woff2');
624
+ src: url('/assets/fonts/MaterialSymbolsRounded.woff2') format('woff2');
622
625
  }
623
626
 
624
627
  /* ===========================================
625
628
  BASE ICON CLASS
629
+ Wrappé dans @layer base pour permettre aux @layer components de l'overrider
626
630
  =========================================== */
627
631
 
632
+ @layer base {
633
+
628
634
  .material-symbols-rounded {
629
635
  font-family: 'Material Symbols Rounded';
630
636
  font-weight: normal;
@@ -656,7 +662,6 @@
656
662
  =========================================== */
657
663
 
658
664
  /* Base icon (24px) */
659
-
660
665
  .mba-icon {
661
666
  font-size: 24px;
662
667
  width: 24px;
@@ -669,7 +674,6 @@
669
674
  }
670
675
 
671
676
  /* Small icon (16px) */
672
-
673
677
  .mba-icon--sm {
674
678
  font-size: 16px;
675
679
  width: 16px;
@@ -681,8 +685,26 @@
681
685
  'opsz' 20;
682
686
  }
683
687
 
684
- /* Fill variant */
688
+ /* Extra-small icon (12px) */
689
+ .mba-icon--xs {
690
+ font-size: 12px;
691
+ width: 12px;
692
+ height: 12px;
693
+ font-variation-settings:
694
+ 'FILL' 0,
695
+ 'wght' 400,
696
+ 'GRAD' 0,
697
+ 'opsz' 20;
698
+ }
699
+
700
+ /* Accordion item icons: force inline-flex to override base inline-block */
701
+ .mba-accordion__item-icon.material-symbols-rounded {
702
+ display: inline-flex;
703
+ align-items: center;
704
+ justify-content: center;
705
+ }
685
706
 
707
+ /* Fill variant */
686
708
  .mba-icon--fill,
687
709
  .material-symbols-rounded.mba-icon--fill {
688
710
  font-variation-settings:
@@ -693,7 +715,6 @@
693
715
  }
694
716
 
695
717
  /* Fill + Small */
696
-
697
718
  .mba-icon--sm.mba-icon--fill {
698
719
  font-variation-settings:
699
720
  'FILL' 1,
@@ -705,7 +726,6 @@
705
726
  /* ===========================================
706
727
  COLOR UTILITIES
707
728
  =========================================== */
708
-
709
729
  .mba-icon--primary {
710
730
  color: var(--mba-color-primary-500);
711
731
  }
@@ -730,6 +750,10 @@
730
750
  color: var(--mba-color-text-muted);
731
751
  }
732
752
 
753
+ }
754
+
755
+ /* end @layer base */
756
+
733
757
  /**
734
758
  * MBA Design System - Preflight
735
759
  *
@@ -1001,6 +1025,14 @@ a {
1001
1025
  transition: color var(--mba-transition-fast);
1002
1026
  }
1003
1027
 
1028
+ .mba-header--partenaire a {
1029
+ color: var(--mba-color-primary-pro-500);
1030
+ }
1031
+
1032
+ .mba-header--partenaire a:hover {
1033
+ color: var(--mba-color-primary-pro-500);
1034
+ }
1035
+
1004
1036
  a:hover {
1005
1037
  color: var(--mba-color-link-hover);
1006
1038
  }
@@ -1360,9 +1392,10 @@ a:hover {
1360
1392
 
1361
1393
  /* Deja-vu state */
1362
1394
  .mba-btn-pin.is-deja-vu {
1363
- border-color: var(--mba-color-grey-300);
1364
- background-color: var(--mba-color-grey-50);
1365
- color: var(--mba-color-grey-300);
1395
+ box-shadow: var(--mba-shadow-xs);
1396
+ border-color: var(--mba-color-white);
1397
+ background-color: var(--mba-color-white);
1398
+ color: var(--mba-color-grey-400);
1366
1399
  }
1367
1400
 
1368
1401
  /* Activated state */
@@ -1638,8 +1671,11 @@ a:hover {
1638
1671
 
1639
1672
  .mba-card__icon {
1640
1673
  flex-shrink: 0;
1674
+ display: flex;
1675
+ align-items: center;
1676
+ justify-content: center;
1641
1677
  color: var(--mba-color-primary-500);
1642
- font-size: 24px;
1678
+ font-size: var(--mba-font-size-md);
1643
1679
  transition: transform var(--mba-transition-base);
1644
1680
  }
1645
1681
 
@@ -1708,20 +1744,6 @@ a:hover {
1708
1744
  box-sizing: border-box;
1709
1745
  }
1710
1746
 
1711
- .mba-carousel-card::before {
1712
- content: "";
1713
- position: absolute;
1714
- inset: 0;
1715
- padding: 1px;
1716
- background: var(--mba-gradient-sunset);
1717
- border-radius: 24px 24px 8px 24px;
1718
- mask:
1719
- linear-gradient(#fff 0 0) content-box,
1720
- linear-gradient(#fff 0 0);
1721
- mask-composite: exclude;
1722
- -webkit-mask-composite: xor;
1723
- pointer-events: none;
1724
- }
1725
1747
 
1726
1748
  .mba-carousel-card__title {
1727
1749
  font-family: var(--mba-font-family-text);
@@ -1768,20 +1790,6 @@ a:hover {
1768
1790
  transition: transform var(--mba-transition-slow), box-shadow var(--mba-transition-slow);
1769
1791
  }
1770
1792
 
1771
- .mba-stats-card::before {
1772
- content: "";
1773
- position: absolute;
1774
- inset: 0;
1775
- padding: 1px;
1776
- background: var(--mba-gradient-sunset);
1777
- border-radius: var(--mba-radius-md);
1778
- mask:
1779
- linear-gradient(#fff 0 0) content-box,
1780
- linear-gradient(#fff 0 0);
1781
- mask-composite: exclude;
1782
- -webkit-mask-composite: xor;
1783
- pointer-events: none;
1784
- }
1785
1793
 
1786
1794
  .mba-stats-card:hover {
1787
1795
  transform: translateY(-4px);
@@ -1936,7 +1944,7 @@ a:hover {
1936
1944
  }
1937
1945
 
1938
1946
  .mba-article-card__link .material-symbols-rounded {
1939
- font-size: 20px;
1947
+ font-size: var(--mba-font-size-xs);
1940
1948
  }
1941
1949
 
1942
1950
  /* Grid pour article cards */
@@ -2443,7 +2451,7 @@ a:hover {
2443
2451
 
2444
2452
  /* Icone info */
2445
2453
  .mba-label__icon {
2446
- font-size: 16px;
2454
+ font-size: var(--mba-font-size-xs);
2447
2455
  color: var(--mba-color-grey-400);
2448
2456
  }
2449
2457
 
@@ -2700,7 +2708,7 @@ a:hover {
2700
2708
  right: 0;
2701
2709
  display: none;
2702
2710
  flex-direction: column;
2703
- gap: 10px;
2711
+ gap: var(--mba-space-gap-10);
2704
2712
  padding: var(--mba-space-xs);
2705
2713
  border-radius: var(--mba-radius-2xs);
2706
2714
  background-color: var(--mba-color-white);
@@ -2763,6 +2771,8 @@ a:hover {
2763
2771
  display: inline-block;
2764
2772
  width: 42px;
2765
2773
  height: 24px;
2774
+ box-shadow: var(--mba-shadow-xxs);
2775
+ border-radius: 32px;
2766
2776
  }
2767
2777
 
2768
2778
  .mba-toggle input {
@@ -2791,6 +2801,7 @@ a:hover {
2791
2801
  left: 2px;
2792
2802
  top: 2px;
2793
2803
  background-color: var(--mba-color-white);
2804
+ box-shadow: var(--mba-shadow-xxs);
2794
2805
  transition: all var(--mba-transition-slow);
2795
2806
  border-radius: 50%;
2796
2807
  }
@@ -2842,7 +2853,7 @@ a:hover {
2842
2853
  }
2843
2854
 
2844
2855
  .mba-input-icon__icon {
2845
- font-size: 16px;
2856
+ font-size: var(--mba-font-size-xs);
2846
2857
  color: var(--mba-color-grey-400);
2847
2858
  margin-left: var(--mba-space-xs);
2848
2859
  }
@@ -2925,154 +2936,812 @@ button.mba-input-icon__icon:hover {
2925
2936
 
2926
2937
  /* end @layer components */
2927
2938
 
2939
+ /* @import "./_tags.css"; */
2940
+
2928
2941
  /**
2929
- * MBA Design System - Wave
2930
- *
2931
- * Élément décoratif ondulé réutilisable pour les transitions de sections.
2932
- *
2933
- * Classes:
2934
- * - .mba-wave - Wave de base (43px)
2935
- * - .mba-wave--sm - Petite wave (24px)
2936
- * - .mba-wave--top - Inversée (pour haut de section)
2937
- * - .mba-wave--bottom - Normale (défaut)
2938
- * - .mba-wave--lavender - Couleur lavender
2939
- * - .mba-wave--white - Couleur blanche
2940
- * - .mba-wave--beige - Couleur beige
2942
+ * MBA Design System - Header
2941
2943
  *
2942
- * Usage:
2943
- * <div class="mba-wave mba-wave--lavender"></div>
2944
- * <div class="mba-wave mba-wave--sm mba-wave--lavender mba-wave--top"></div>
2944
+ * Navigation principale avec dropdown et version mobile
2945
+ * Source: Design System Figma
2945
2946
  */
2946
2947
 
2947
2948
  @layer components {
2948
2949
 
2949
- .mba-wave {
2950
- display: block;
2950
+ /* ===========================================
2951
+ HEADER BASE
2952
+ =========================================== */
2953
+ .mba-header {
2954
+ background-color: var(--mba-color-white);
2955
+ border-radius: 0 0 var(--mba-radius-md) var(--mba-radius-md);
2956
+ box-shadow: var(--mba-shadow-xs);
2957
+ position: relative;
2951
2958
  width: 100%;
2952
- height: var(--mba-wave-height);
2953
- background-color: var(--mba-color-pastel-lavender);
2954
- -webkit-mask-image: var(--mba-wave-dip-up-mask);
2955
- -webkit-mask-size: 100% 100%;
2956
- -webkit-mask-repeat: no-repeat;
2957
- mask-image: var(--mba-wave-dip-up-mask);
2958
- mask-size: 100% 100%;
2959
- mask-repeat: no-repeat;
2959
+ box-sizing: border-box;
2960
2960
  }
2961
2961
 
2962
- /* Position variants */
2963
- .mba-wave--top {
2964
- -webkit-mask-image: var(--mba-wave-dip-down-mask);
2965
- mask-image: var(--mba-wave-dip-down-mask);
2962
+ .mba-header__container {
2963
+ display: flex;
2964
+ align-items: center;
2965
+ justify-content: space-between;
2966
+ padding: var(--mba-space-md) var(--mba-space-xl); /* 16px 32px */
2967
+ max-width: var(--mba-container-width);
2968
+ margin: 0 auto;
2966
2969
  }
2967
2970
 
2968
- .mba-wave--bottom {
2969
- -webkit-mask-image: var(--mba-wave-dip-up-mask);
2970
- mask-image: var(--mba-wave-dip-up-mask);
2971
+ /* ===========================================
2972
+ LOGO
2973
+ =========================================== */
2974
+ .mba-header__logo {
2975
+ display: flex;
2976
+ align-items: center;
2977
+ gap: var(--mba-space-xs); /* 8px */
2978
+ text-decoration: none;
2971
2979
  }
2972
2980
 
2973
- /* Size variants */
2974
- .mba-wave--sm {
2975
- height: var(--mba-wave-sm-height);
2976
- -webkit-mask-image: var(--mba-wave-sm-dip-up-mask);
2977
- mask-image: var(--mba-wave-sm-dip-up-mask);
2981
+ .mba-header__logo-img {
2982
+ max-width: 227.92px;
2983
+ height: 32px;
2984
+ display: block;
2978
2985
  }
2979
2986
 
2980
- .mba-wave--sm.mba-wave--top {
2981
- -webkit-mask-image: var(--mba-wave-sm-dip-down-mask);
2982
- mask-image: var(--mba-wave-sm-dip-down-mask);
2987
+ /* ===========================================
2988
+ NAVIGATION DESKTOP
2989
+ =========================================== */
2990
+ .mba-header__nav {
2991
+ display: flex;
2992
+ align-items: center;
2993
+ gap: var(--mba-space-md);
2994
+ list-style: none;
2995
+ margin: 0;
2996
+ padding: 0;
2997
+ margin-left: var(
2998
+ --mba-space-lg
2999
+ ); /* Espace cohérent entre logo et nav, nav alignée à gauche */
2983
3000
  }
2984
3001
 
2985
- /* Color variants */
2986
- .mba-wave--lavender {
2987
- background-color: var(--mba-color-pastel-lavender);
3002
+ .mba-header__nav-item {
3003
+ position: relative;
2988
3004
  }
2989
3005
 
2990
- .mba-wave--white {
2991
- background-color: var(--mba-color-white);
3006
+ .mba-header__nav-link {
3007
+ display: flex;
3008
+ align-items: center;
3009
+ gap: var(--mba-space-xxs); /* 4px (gap texte/icone) */
3010
+ padding: var(--mba-space-xxs) var(--mba-space-xs); /* 2XS (haut/bas), XS (gauche/droite) */
3011
+ font-family: var(--mba-font-family-text);
3012
+ font-size: var(--mba-font-size-xs);
3013
+ font-weight: var(--mba-font-weight-regular);
3014
+ color: var(--mba-color-primary-900);
3015
+ text-decoration: none;
3016
+ border-radius: var(--mba-radius-sm);
3017
+ transition: background-color var(--mba-transition-base),
3018
+ color var(--mba-transition-base);
3019
+ cursor: pointer;
3020
+ background: none;
3021
+ border: none;
3022
+ white-space: nowrap;
2992
3023
  }
2993
3024
 
2994
- .mba-wave--beige {
2995
- background-color: var(--mba-color-beige);
3025
+ .mba-header__nav-link:hover {
3026
+ background-color: var(--mba-color-pastel-lavender);
3027
+ color: var(--mba-color-primary-900);
2996
3028
  }
2997
3029
 
2998
- .mba-wave--primary-50 {
2999
- background-color: var(--mba-color-primary-50);
3030
+ /* Header partenaire : ne pas passer le texte en violet au hover */
3031
+ .mba-header--partenaire .mba-header__nav-link:hover {
3032
+ color: var(--mba-color-primary-pro-500);
3033
+ background-color: var(--mba-color-pastel-bleuet);
3000
3034
  }
3001
3035
 
3036
+ /* Header partenaire : liens en Primary Pro par défaut */
3037
+ .mba-header--partenaire .mba-header__nav-link {
3038
+ color: var(--mba-color-primary-pro-500);
3002
3039
  }
3003
3040
 
3004
- /* end @layer components */
3041
+ .mba-header__nav-link--active {
3042
+ background-color: var(--mba-color-pastel-lavender);
3043
+ border-radius: var(--mba-radius-sm);
3044
+ color: var(--mba-color-primary-900);
3045
+ }
3005
3046
 
3006
- /**
3007
- * MBA Design System - Section
3008
- *
3009
- * Section avec fond coloré et waves optionnelles en haut/bas.
3010
- * Les waves sont générées via pseudo-éléments, pas besoin de HTML supplémentaire.
3011
- *
3012
- * Classes:
3013
- * - .mba-section - Container de base
3014
- * - .mba-section--lavender - Fond lavender
3015
- * - .mba-section--beige - Fond beige
3016
- * - .mba-section--primary-50 - Fond primary-50
3017
- * - .mba-section--wave-top - Wave en haut
3018
- * - .mba-section--wave-bottom - Wave en bas
3019
- * - .mba-section--wave-both - Waves en haut ET en bas
3020
- * - .mba-section--wave-sm - Petite wave (24px au lieu de 43px)
3021
- * - .mba-section--wave-inset - Padding ajusté pour que le contenu commence après la wave
3022
- *
3023
- * Usage:
3024
- * <section class="mba-section mba-section--lavender mba-section--wave-both">
3025
- * <div class="mba-section__content">...</div>
3026
- * </section>
3027
- *
3028
- * Petite wave:
3029
- * <section class="mba-section mba-section--lavender mba-section--wave-both mba-section--wave-sm">
3030
- * ...
3031
- * </section>
3032
- */
3047
+ /* Icône dropdown (Material Symbols: arrow_drop_down / arrow_drop_up) */
3048
+ .mba-header__nav-link .mba-icon,
3049
+ .mba-header__mobile-nav-link .mba-icon {
3050
+ display: inline-flex;
3051
+ align-items: center;
3052
+ justify-content: center;
3053
+ margin-left: var(--mba-space-xxs);
3054
+ color: var(--mba-color-primary-900);
3055
+ }
3033
3056
 
3034
- @layer components {
3057
+ /* Variante partenaire : couleur de l'icône */
3058
+ .mba-header--partenaire .mba-header__nav-link .mba-icon,
3059
+ .mba-header--partenaire .mba-header__mobile-nav-link .mba-icon {
3060
+ color: var(--mba-color-primary-pro-500);
3061
+ }
3035
3062
 
3036
- .mba-section {
3037
- position: relative;
3038
- width: 100%;
3063
+ /* Lien avec dropdown ouvert : conserve le fond lavender comme l'état actif */
3064
+ .mba-header__nav-link--open {
3065
+ background-color: var(--mba-color-pastel-lavender);
3066
+ border-radius: var(--mba-radius-sm);
3067
+ color: var(--mba-color-primary-900);
3039
3068
  }
3040
3069
 
3041
- .mba-section__content {
3042
- position: relative;
3043
- z-index: 1;
3044
- max-width: var(--mba-container-width);
3045
- margin: 0 auto;
3046
- padding: var(--mba-space-xxl) 0;
3070
+ /* Variante partenaire : fond et couleur spécifiques quand le dropdown est ouvert */
3071
+ .mba-header--partenaire .mba-header__nav-link--open {
3072
+ background-color: var(--mba-color-pastel-bleuet);
3073
+ color: var(--mba-color-primary-pro-500);
3047
3074
  }
3048
3075
 
3049
3076
  /* ===========================================
3050
- WAVE INSET (opt-in)
3051
- Ajoute du padding pour que le contenu commence après la wave
3077
+ DROPDOWN MENU
3052
3078
  =========================================== */
3053
- .mba-section--wave-inset.mba-section--wave-top .mba-section__content,
3054
- .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3055
- padding-top: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3079
+ .mba-header__dropdown {
3080
+ position: absolute;
3081
+ top: calc(100% + var(--mba-space-lg)); /* 32px sous le lien */
3082
+ left: 0;
3083
+ width: 739px; /* Largeur Spécifique Figma dans le design system */
3084
+ background-color: var(--mba-color-white);
3085
+ color: var(--mba-color-primary-500);
3086
+ border-radius: var(--mba-radius-sm);
3087
+ box-shadow: var(--mba-shadow-sm);
3088
+ padding: var(--mba-space-sm);
3089
+ display: none;
3090
+ z-index: 1000;
3091
+ animation: dropdownFadeIn var(--mba-transition-base);
3056
3092
  }
3057
3093
 
3058
- .mba-section--wave-inset.mba-section--wave-bottom .mba-section__content,
3059
- .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3060
- padding-bottom: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3094
+ .mba-header__dropdown--open {
3095
+ display: block;
3096
+ box-shadow: var(--mba-shadow-xs);
3061
3097
  }
3062
3098
 
3063
- /* Wave inset pour petites waves */
3064
- .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-top .mba-section__content,
3065
- .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3066
- padding-top: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
3099
+ @keyframes dropdownFadeIn {
3100
+ from {
3101
+ opacity: 0;
3102
+ transform: translateY(calc(-1 * var(--mba-space-xs)));
3103
+ }
3104
+ to {
3105
+ opacity: 1;
3106
+ transform: translateY(0);
3107
+ }
3067
3108
  }
3068
3109
 
3069
- .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-bottom .mba-section__content,
3070
- .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3071
- padding-bottom: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
3110
+ .mba-header__dropdown-title {
3111
+ font-family: var(--mba-font-family-text);
3112
+ font-size: var(--mba-font-size-xs);
3113
+ font-weight: var(--mba-font-weight-semibold);
3114
+ color: var(--mba-color-text);
3115
+ margin: 0 0 var(--mba-space-xs) 0;
3116
+ padding-bottom: var(--mba-space-sm);
3117
+ border-bottom: 1px solid var(--mba-color-grey-50);
3072
3118
  }
3073
3119
 
3074
- /* ===========================================
3075
- BACKGROUND COLORS
3120
+ /* Header partenaire : titre du dropdown (PrimaryPro-800), inchangé au hover */
3121
+ .mba-header--partenaire .mba-header__dropdown-title,
3122
+ .mba-header--partenaire .mba-header__dropdown-title:hover {
3123
+ color: var(--mba-color-primary-pro-800);
3124
+ }
3125
+
3126
+ .mba-header__dropdown-list {
3127
+ list-style: none;
3128
+ margin: 0;
3129
+ padding: 0;
3130
+ display: flex;
3131
+ flex-direction: column;
3132
+ gap: var(--mba-space-xxs);
3133
+ }
3134
+
3135
+ .mba-header__dropdown-item {
3136
+ display: flex;
3137
+ align-items: flex-start;
3138
+ text-decoration: none;
3139
+ cursor: pointer;
3140
+ position: relative;
3141
+ border-radius: var(--mba-radius-sm);
3142
+ border: 1px solid transparent;
3143
+ gap: var(--mba-space-sm);
3144
+ padding: var(--mba-space-xs);
3145
+ transition: background-color var(--mba-transition-base);
3146
+ }
3147
+
3148
+
3149
+
3150
+ .mba-header__dropdown-icon {
3151
+ margin-top: var(--mba-space-xs);
3152
+ padding: var(--mba-space-sm);
3153
+ gap: var(--mba-space-gap-10);
3154
+ flex-shrink: 0;
3155
+ width: 56px;
3156
+ height: 56px;
3157
+ display: flex;
3158
+ align-items: center;
3159
+ justify-content: center;
3160
+ background-color: var(--mba-color-pastel-lavender);
3161
+ border-radius: var(--mba-radius-sm);
3162
+ color: var(--mba-color-primary-500);
3163
+ }
3164
+
3165
+ .mba-header__dropdown-icon .mba-icon {
3166
+ font-size: var(--mba-font-size-md);
3167
+ width: 1.25rem;
3168
+ height: 1.25rem;
3169
+ margin-bottom: var(--mba-space-xxs);
3170
+ }
3171
+
3172
+ /* Header partenaire : couleurs spécifiques des icônes du dropdown */
3173
+ .mba-header--partenaire .mba-header__dropdown-icon {
3174
+ background-color: var(--mba-color-pastel-bleuet);
3175
+ color: var(--mba-color-primary-pro-500);
3176
+ }
3177
+
3178
+ .mba-header__dropdown-content {
3179
+ flex: 1;
3180
+ gap: var(--mba-space-xxs);
3181
+ }
3182
+
3183
+ .mba-header__dropdown-label {
3184
+ font-family: var(--mba-font-family-text);
3185
+ font-size: var(--mba-font-size-xs);
3186
+ font-weight: var(--mba-font-weight-bold);
3187
+ color: var(--mba-color-primary-900);
3188
+ margin: 0 0 var(--mba-space-xxs) 0;
3189
+ display: block;
3190
+ }
3191
+
3192
+ /* Header partenaire : labels du dropdown en PrimaryPro-800 */
3193
+ .mba-header--partenaire .mba-header__dropdown-label {
3194
+ color: var(--mba-color-primary-pro-800);
3195
+ }
3196
+
3197
+ /* Header partenaire : labels du dropdown en PrimaryPro-800 */
3198
+ .mba-header--partenaire .mba-header__dropdown-description {
3199
+ color: var(--mba-color-primary-pro-800);
3200
+ }
3201
+
3202
+ .mba-header__dropdown-description {
3203
+ font-family: var(--mba-font-family-text);
3204
+ font-size: var(--mba-font-size-xs);
3205
+ font-weight: var(--mba-font-weight-regular);
3206
+ color: var(--mba-color-primary-900);
3207
+ margin: 0;
3208
+ line-height: var(--mba-leading-normal);
3209
+ }
3210
+
3211
+ /* Wrapper pour layout côte à côte (gauche: titre + liste, droite: infobox) */
3212
+ .mba-header__dropdown-content-wrapper {
3213
+ display: flex;
3214
+ gap: var(--mba-space-md);
3215
+ align-items: stretch; /* infobox s'étire sur toute la hauteur */
3216
+ margin-top: var(--mba-space-xs);
3217
+ }
3218
+
3219
+ .mba-header__dropdown-main {
3220
+ flex: 1;
3221
+ width: 437px;
3222
+ gap: var(--mba-space-sm); /* 16px */
3223
+ }
3224
+
3225
+ /* Infobox "S'informer pour mieux aider" */
3226
+ .mba-header__dropdown-infobox {
3227
+ flex: 0 0 246px;
3228
+ background-color: var(--mba-color-pastel-narcisse);
3229
+ border-radius: var(--mba-radius-sm);
3230
+ padding: var(--mba-space-sm);
3231
+ display: flex;
3232
+ flex-direction: column;
3233
+ gap: var(--mba-space-gap-10);
3234
+ }
3235
+
3236
+ .mba-header__dropdown-infobox-title {
3237
+ font-family: var(--mba-font-family-text);
3238
+ font-size: var(--mba-font-size-xxs);
3239
+ font-weight: var(--mba-font-weight-semibold);
3240
+ color: var(--mba-color-primary-900);
3241
+ margin: 0 0 var(--mba-space-xxs) 0; /* 4px */
3242
+ }
3243
+
3244
+ .mba-header__dropdown-infobox-description {
3245
+ font-family: var(--mba-font-family-text);
3246
+ font-size: var(--mba-font-size-xs);
3247
+ font-weight: var(--mba-font-weight-regular);
3248
+ color: var(--mba-color-primary-900);
3249
+ margin: 0;
3250
+ line-height: var(--mba-leading-normal);
3251
+ }
3252
+
3253
+ /* Header partenaire : infobox en PrimaryPro-800 */
3254
+ .mba-header--partenaire .mba-header__dropdown-infobox-title,
3255
+ .mba-header--partenaire .mba-header__dropdown-infobox-description {
3256
+ color: var(--mba-color-primary-pro-800);
3257
+ }
3258
+
3259
+ /* ===========================================
3260
+ BURGER MENU (MOBILE)
3261
+ =========================================== */
3262
+ .mba-header__burger {
3263
+ display: none;
3264
+ color: var(--mba-color-primary-500);
3265
+ flex-direction: column;
3266
+ gap: var(--mba-space-xxs);
3267
+ background: none;
3268
+ border: none;
3269
+ padding: var(--mba-space-xs);
3270
+ cursor: pointer;
3271
+ border-radius: var(--mba-radius-2xs);
3272
+ transition: background-color var(--mba-transition-base);
3273
+ position: relative;
3274
+ width: 40px; /* Largeur Spécifique Figma dans le design system 24px + 16px dus au padding*/
3275
+ height: 40px; /* Hauteur Spécifique Figma dans le design system 24px + 16px dus au padding*/
3276
+ align-items: center;
3277
+ justify-content: center;
3278
+ }
3279
+
3280
+ .mba-header__burger:hover {
3281
+ background-color: var(--mba-color-grey-50);
3282
+ }
3283
+
3284
+ .mba-header__burger-line {
3285
+ width: 24px;
3286
+ height: 2px;
3287
+ background-color: var(--mba-color-primary-500);
3288
+ border-radius: var(--mba-radius-2xs);
3289
+ transition: opacity var(--mba-transition-base);
3290
+ }
3291
+
3292
+ /* Animation burger ouvert - Masquer les barres */
3293
+ .mba-header__burger--open .mba-header__burger-line {
3294
+ opacity: 0;
3295
+ }
3296
+
3297
+ /* Croix (X) quand le menu est ouvert */
3298
+ .mba-header__burger--open::before,
3299
+ .mba-header__burger--open::after {
3300
+ content: "";
3301
+ position: absolute;
3302
+ width: 24px;
3303
+ height: 2px;
3304
+ background-color: var(--mba-color-primary-500);
3305
+ top: 50%;
3306
+ left: 50%;
3307
+ }
3308
+
3309
+ .mba-header__burger--open::before {
3310
+ transform: translate(-50%, -50%) rotate(45deg);
3311
+ }
3312
+
3313
+ .mba-header__burger--open::after {
3314
+ transform: translate(-50%, -50%) rotate(-45deg);
3315
+ }
3316
+
3317
+ /* Header partenaire : lignes du burger en PrimaryPro-500 */
3318
+ .mba-header--partenaire .mba-header__burger-line {
3319
+ background-color: var(--mba-color-primary-pro-500);
3320
+ }
3321
+
3322
+ .mba-header--partenaire .mba-header__burger--open::before,
3323
+ .mba-header--partenaire .mba-header__burger--open::after {
3324
+ background-color: var(--mba-color-primary-pro-500);
3325
+ }
3326
+
3327
+ /* ===========================================
3328
+ MOBILE MENU
3329
+ =========================================== */
3330
+ .mba-header__mobile-menu {
3331
+ position: absolute;
3332
+ top: calc(100% + var(--mba-space-xs));
3333
+ left: 0;
3334
+ right: 0;
3335
+ background-color: var(--mba-color-white);
3336
+ border-radius: var(--mba-radius-xs);
3337
+ padding: var(--mba-space-md);
3338
+ display: none;
3339
+ z-index: 999;
3340
+ animation: mobileMenuSlideIn var(--mba-transition-slow);
3341
+ }
3342
+
3343
+ .mba-header__mobile-menu--open {
3344
+ display: block;
3345
+ }
3346
+
3347
+ @keyframes mobileMenuSlideIn {
3348
+ from {
3349
+ opacity: 0;
3350
+ transform: translateY(calc(-1 * var(--mba-space-sm)));
3351
+ }
3352
+ to {
3353
+ opacity: 1;
3354
+ transform: translateY(0);
3355
+ }
3356
+ }
3357
+
3358
+ .mba-header__mobile-nav {
3359
+ list-style: none;
3360
+ margin: 0;
3361
+ padding: 0;
3362
+ display: flex;
3363
+ flex-direction: column;
3364
+ gap: var(--mba-space-xxs); /* 4px */
3365
+ }
3366
+
3367
+ .mba-header__mobile-nav-item {
3368
+ width: 100%;
3369
+ padding-bottom: var(--mba-space-sm);
3370
+ }
3371
+
3372
+ .mba-header__mobile-nav-link {
3373
+ display: flex;
3374
+ align-items: center;
3375
+ justify-content: space-between;
3376
+ padding: var(--mba-space-xxs) var(--mba-space-xs);
3377
+ gap: var(--mba-space-sm);
3378
+ font-family: var(--mba-font-family-text);
3379
+ font-size: var(--mba-font-size-xs);
3380
+ font-weight: var(--mba-font-weight-semibold);
3381
+ color: var(--mba-color-primary-900);
3382
+ text-decoration: none;
3383
+ border-radius: var(--mba-radius-2xs);
3384
+ transition: background-color var(--mba-transition-base);
3385
+ cursor: pointer;
3386
+ background: none;
3387
+ border: none;
3388
+ width: 100%;
3389
+ text-align: left;
3390
+ position: relative;
3391
+ }
3392
+
3393
+ /* Ligne sous le lien mobile (visible même quand le dropdown est ouvert) */
3394
+ .mba-header__mobile-nav-link::after {
3395
+ content: "";
3396
+ position: absolute;
3397
+ left: var(--mba-space-xs);
3398
+ right: var(--mba-space-xs);
3399
+ bottom: 0;
3400
+ height: 2px;
3401
+ border-radius: var(--mba-radius-2xs);
3402
+ background-color: var(--mba-color-primary-100);
3403
+ }
3404
+
3405
+ /* Variante partenaire : ligne en PrimaryPro-100 */
3406
+ .mba-header--partenaire .mba-header__mobile-nav-link::after {
3407
+ background-color: var(--mba-color-primary-pro-100);
3408
+ }
3409
+
3410
+
3411
+
3412
+ /* Variante partenaire : liens du menu mobile en PrimaryPro-800 */
3413
+ .mba-header--partenaire .mba-header__mobile-nav-link {
3414
+ color: var(--mba-color-primary-pro-800);
3415
+ }
3416
+
3417
+ .mba-header__mobile-nav-link .mba-icon {
3418
+ color: var(--mba-color-primary-500);
3419
+ }
3420
+
3421
+ /* Header partenaire : icônes des liens du menu mobile en PrimaryPro-500 */
3422
+ .mba-header--partenaire .mba-header__mobile-nav-link .mba-icon {
3423
+ color: var(--mba-color-primary-pro-500);
3424
+ }
3425
+
3426
+ .mba-header__mobile-nav-link--active {
3427
+ color: var(--mba-color-primary-500);
3428
+ background-color: var(--mba-color-primary-50);
3429
+ }
3430
+
3431
+ /* Sous-menu mobile */
3432
+ .mba-header__mobile-submenu {
3433
+ display: none;
3434
+ margin-top: var(--mba-space-xs);
3435
+ padding: 0;
3436
+ background-color: transparent; /* Liste simple, sans fond de carte */
3437
+ border-radius: 0;
3438
+ }
3439
+
3440
+ .mba-header__mobile-submenu--open {
3441
+ display: block;
3442
+ }
3443
+
3444
+ /* Réutiliser les styles du dropdown desktop pour le mobile */
3445
+ .mba-header__mobile-submenu .mba-header__dropdown-list {
3446
+ list-style: none;
3447
+ margin: 0;
3448
+ padding: 0;
3449
+ display: flex;
3450
+ flex-direction: column;
3451
+ gap: var(--mba-space-xs);
3452
+ margin-bottom: var(--mba-space-xs); /* 8px supplémentaires sous la liste des liens */
3453
+ }
3454
+
3455
+ .mba-header__mobile-submenu .mba-header__dropdown-item {
3456
+ gap: var(--mba-space-xs);
3457
+ border-radius: 0;
3458
+ transition: color var(--mba-transition-base);
3459
+ background-color: transparent; /* pas de carte blanche */
3460
+ }
3461
+
3462
+ .mba-header__mobile-submenu .mba-header__dropdown-item::before {
3463
+ opacity: 0; /* caché par défaut en mobile */
3464
+ }
3465
+
3466
+ .mba-header__mobile-submenu .mba-header__dropdown-item:active::before {
3467
+ opacity: 1; /* au pressed mobile : uniquement la bordure gradient */
3468
+ }
3469
+
3470
+ .mba-header__mobile-submenu .mba-header__dropdown-item:hover {
3471
+ background-color: transparent; /* pas de fond gris au hover (mobile) */
3472
+ }
3473
+
3474
+ .mba-header__mobile-submenu .mba-header__dropdown-icon {
3475
+ flex-shrink: 0;
3476
+ width: 40px;
3477
+ height: 40px;
3478
+ display: flex;
3479
+ align-items: center;
3480
+ justify-content: center;
3481
+ background-color: var(--mba-color-pastel-lavender);
3482
+ border-radius: var(--mba-radius-xs);
3483
+ color: var(--mba-color-primary-500);
3484
+ }
3485
+
3486
+ .mba-header__mobile-submenu .mba-header__dropdown-icon .mba-icon {
3487
+ font-size: var(--mba-font-size-md);
3488
+ }
3489
+
3490
+ .mba-header--partenaire .mba-header__mobile-submenu .mba-header__dropdown-icon {
3491
+ background-color: var(--mba-color-pastel-bleuet);
3492
+ color: var(--mba-color-primary-pro-500);
3493
+ }
3494
+
3495
+ .mba-header__mobile-submenu .mba-header__dropdown-content {
3496
+ flex: 1;
3497
+ gap: var(--mba-space-2xs);
3498
+ }
3499
+
3500
+ .mba-header__mobile-submenu .mba-header__dropdown-label {
3501
+ font-family: var(--mba-font-family-text);
3502
+ font-size: var(--mba-font-size-xxs);
3503
+ font-weight: var(--mba-font-weight-semibold);
3504
+ color: var(--mba-color-primary-900);
3505
+ margin: 0 0 var(--mba-space-xxs) 0;
3506
+ display: block;
3507
+ }
3508
+
3509
+ .mba-header__mobile-submenu .mba-header__dropdown-description {
3510
+ font-family: var(--mba-font-family-text);
3511
+ font-size: var(--mba-font-size-xxs);
3512
+ font-weight: var(--mba-font-weight-regular);
3513
+ color: var(--mba-color-primary-900);
3514
+ margin: 0;
3515
+ line-height: var(--mba-leading-normal);
3516
+ }
3517
+
3518
+ /* Infobox dans le menu mobile */
3519
+ .mba-header__mobile-submenu .mba-header__dropdown-infobox {
3520
+ margin-top: var(--mba-space-sm); /* 12px */
3521
+ flex: 1; /* Prend toute la largeur en mobile */
3522
+ background-color: var(--mba-color-pastel-narcisse);
3523
+ border-radius: var(--mba-radius-2xs);
3524
+ padding: var(--mba-space-sm);
3525
+ }
3526
+
3527
+ .mba-header__mobile-submenu .mba-header__dropdown-infobox-title {
3528
+ font-family: var(--mba-font-family-text);
3529
+ font-size: var(--mba-font-size-sm);
3530
+ font-weight: var(--mba-font-weight-semibold);
3531
+ color: var(--mba-color-text);
3532
+ margin: 0 0 var(--mba-space-xxs) 0;
3533
+ }
3534
+
3535
+ .mba-header__mobile-submenu .mba-header__dropdown-infobox-description {
3536
+ font-family: var(--mba-font-family-text);
3537
+ font-size: var(--mba-font-size-xs);
3538
+ font-weight: var(--mba-font-weight-regular);
3539
+ color: var(--mba-color-text);
3540
+ margin: 0;
3541
+ line-height: var(--mba-leading-normal);
3542
+ }
3543
+
3544
+ /* ===========================================
3545
+ RESPONSIVE
3546
+ =========================================== */
3547
+ @media (max-width: 768px) {
3548
+ .mba-header {
3549
+ box-shadow: none; /* pas de shadow en mobile */
3550
+ }
3551
+
3552
+ .mba-header__container {
3553
+ padding: var(--mba-space-sm) var(--mba-space-md); /* 12px 16px */
3554
+ justify-content: space-between;
3555
+ }
3556
+
3557
+ .mba-header__mobile-menu {
3558
+ padding: var(--mba-space-sm) var(--mba-space-xs); /* top/bottom SM, left/right XS */
3559
+ }
3560
+
3561
+ .mba-header__nav {
3562
+ display: none;
3563
+ }
3564
+
3565
+ .mba-header__burger {
3566
+ display: flex;
3567
+ }
3568
+
3569
+ .mba-header__logo-img {
3570
+ height: 24px;
3571
+ }
3572
+
3573
+ .mba-icon {
3574
+ margin-top: var(--mba-space-xxs);
3575
+ }
3576
+ }
3577
+
3578
+ @media (min-width: 769px) {
3579
+ .mba-header__mobile-menu {
3580
+ display: none !important;
3581
+ }
3582
+
3583
+ /* Header Partenaire - Dropdown \"Diffuser\" (index 1) avec hauteur fixe en desktop */
3584
+ .mba-header--partenaire .mba-header__dropdown--open[data-dropdown="1"] {
3585
+ min-height: 271px; /* Hauteur minimale Spécifique Figma dans le design system */
3586
+ box-sizing: border-box;
3587
+ }
3588
+
3589
+ .mba-header--partenaire
3590
+ .mba-header__dropdown--open[data-dropdown="1"]
3591
+ .mba-header__dropdown-infobox {
3592
+ height: calc(271px - 2 * var(--mba-space-sm));
3593
+ }
3594
+ }
3595
+
3596
+ }
3597
+
3598
+ /* end @layer components */
3599
+
3600
+ /**
3601
+ * MBA Design System - Wave
3602
+ *
3603
+ * Élément décoratif ondulé réutilisable pour les transitions de sections.
3604
+ *
3605
+ * Classes:
3606
+ * - .mba-wave - Wave de base (43px)
3607
+ * - .mba-wave--sm - Petite wave (24px)
3608
+ * - .mba-wave--top - Inversée (pour haut de section)
3609
+ * - .mba-wave--bottom - Normale (défaut)
3610
+ * - .mba-wave--lavender - Couleur lavender
3611
+ * - .mba-wave--white - Couleur blanche
3612
+ * - .mba-wave--beige - Couleur beige
3613
+ *
3614
+ * Usage:
3615
+ * <div class="mba-wave mba-wave--lavender"></div>
3616
+ * <div class="mba-wave mba-wave--sm mba-wave--lavender mba-wave--top"></div>
3617
+ */
3618
+
3619
+ @layer components {
3620
+
3621
+ .mba-wave {
3622
+ display: block;
3623
+ width: 100%;
3624
+ height: var(--mba-wave-height);
3625
+ background-color: var(--mba-color-pastel-lavender);
3626
+ -webkit-mask-image: var(--mba-wave-dip-up-mask);
3627
+ -webkit-mask-size: 100% 100%;
3628
+ -webkit-mask-repeat: no-repeat;
3629
+ mask-image: var(--mba-wave-dip-up-mask);
3630
+ mask-size: 100% 100%;
3631
+ mask-repeat: no-repeat;
3632
+ }
3633
+
3634
+ /* Position variants */
3635
+ .mba-wave--top {
3636
+ -webkit-mask-image: var(--mba-wave-dip-down-mask);
3637
+ mask-image: var(--mba-wave-dip-down-mask);
3638
+ }
3639
+
3640
+ .mba-wave--bottom {
3641
+ -webkit-mask-image: var(--mba-wave-dip-up-mask);
3642
+ mask-image: var(--mba-wave-dip-up-mask);
3643
+ }
3644
+
3645
+ /* Size variants */
3646
+ .mba-wave--sm {
3647
+ height: var(--mba-wave-sm-height);
3648
+ -webkit-mask-image: var(--mba-wave-sm-dip-up-mask);
3649
+ mask-image: var(--mba-wave-sm-dip-up-mask);
3650
+ }
3651
+
3652
+ .mba-wave--sm.mba-wave--top {
3653
+ -webkit-mask-image: var(--mba-wave-sm-dip-down-mask);
3654
+ mask-image: var(--mba-wave-sm-dip-down-mask);
3655
+ }
3656
+
3657
+ /* Color variants */
3658
+ .mba-wave--lavender {
3659
+ background-color: var(--mba-color-pastel-lavender);
3660
+ }
3661
+
3662
+ .mba-wave--white {
3663
+ background-color: var(--mba-color-white);
3664
+ }
3665
+
3666
+ .mba-wave--beige {
3667
+ background-color: var(--mba-color-beige);
3668
+ }
3669
+
3670
+
3671
+ }
3672
+
3673
+ /* end @layer components */
3674
+
3675
+ /**
3676
+ * MBA Design System - Section
3677
+ *
3678
+ * Section avec fond coloré et waves optionnelles en haut/bas.
3679
+ * Les waves sont générées via pseudo-éléments, pas besoin de HTML supplémentaire.
3680
+ *
3681
+ * Classes:
3682
+ * - .mba-section - Container de base
3683
+ * - .mba-section--lavender - Fond lavender
3684
+ * - .mba-section--beige - Fond beige
3685
+ * - .mba-section--primary-50 - Fond primary-50
3686
+ * - .mba-section--wave-top - Wave en haut
3687
+ * - .mba-section--wave-bottom - Wave en bas
3688
+ * - .mba-section--wave-both - Waves en haut ET en bas
3689
+ * - .mba-section--wave-sm - Petite wave (24px au lieu de 43px)
3690
+ * - .mba-section--wave-inset - Padding ajusté pour que le contenu commence après la wave
3691
+ *
3692
+ * Usage:
3693
+ * <section class="mba-section mba-section--lavender mba-section--wave-both">
3694
+ * <div class="mba-section__content">...</div>
3695
+ * </section>
3696
+ *
3697
+ * Petite wave:
3698
+ * <section class="mba-section mba-section--lavender mba-section--wave-both mba-section--wave-sm">
3699
+ * ...
3700
+ * </section>
3701
+ */
3702
+
3703
+ @layer components {
3704
+
3705
+ .mba-section {
3706
+ position: relative;
3707
+ width: 100%;
3708
+ }
3709
+
3710
+ .mba-section__content {
3711
+ position: relative;
3712
+ z-index: 1;
3713
+ max-width: var(--mba-container-width);
3714
+ margin: 0 auto;
3715
+ padding: var(--mba-space-xxl) 0;
3716
+ }
3717
+
3718
+ /* ===========================================
3719
+ WAVE INSET (opt-in)
3720
+ Ajoute du padding pour que le contenu commence après la wave
3721
+ =========================================== */
3722
+ .mba-section--wave-inset.mba-section--wave-top .mba-section__content,
3723
+ .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3724
+ padding-top: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3725
+ }
3726
+
3727
+ .mba-section--wave-inset.mba-section--wave-bottom .mba-section__content,
3728
+ .mba-section--wave-inset.mba-section--wave-both .mba-section__content {
3729
+ padding-bottom: calc(var(--mba-wave-height) + var(--mba-space-xxl));
3730
+ }
3731
+
3732
+ /* Wave inset pour petites waves */
3733
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-top .mba-section__content,
3734
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3735
+ padding-top: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
3736
+ }
3737
+
3738
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-bottom .mba-section__content,
3739
+ .mba-section--wave-inset.mba-section--wave-sm.mba-section--wave-both .mba-section__content {
3740
+ padding-bottom: calc(var(--mba-wave-sm-height) + var(--mba-space-xxl));
3741
+ }
3742
+
3743
+ /* ===========================================
3744
+ BACKGROUND COLORS
3076
3745
  =========================================== */
3077
3746
 
3078
3747
  .mba-section--lavender {
@@ -3562,7 +4231,265 @@ button.mba-input-icon__icon:hover {
3562
4231
 
3563
4232
  /* @import "./_alerts.css"; */
3564
4233
 
3565
- /* @import "./_accordion.css"; */
4234
+ /**
4235
+ * MBA Design System - Accordion
4236
+ *
4237
+ * Accordions empilables avec panneau déroulant.
4238
+ * - Les accordions peuvent se superposer verticalement.
4239
+ * - À partir de 5 items (ou si le contenu est trop long),
4240
+ * utiliser la variante scrollable pour afficher une scrollbar.
4241
+ */
4242
+
4243
+ @layer components {
4244
+
4245
+ /* ===========================================
4246
+ CONTAINER & GROUP
4247
+ =========================================== */
4248
+ .mba-accordion-group {
4249
+ display: flex;
4250
+ flex-direction: column;
4251
+ gap: var(--mba-space-xs); /* Espacement vertical entre accordions empilés */
4252
+ }
4253
+
4254
+ .mba-accordion {
4255
+ width: 100%;
4256
+ max-width: 220px;
4257
+ border-radius: var(--mba-radius-xs);
4258
+ background-color: var(--mba-color-white);
4259
+ border: 1px solid var(--mba-color-grey-100);
4260
+ overflow: hidden;
4261
+ }
4262
+
4263
+ .mba-accordion--full-width {
4264
+ max-width: 100%;
4265
+ }
4266
+
4267
+ /* Variante line-only (header sans carte, seulement une ligne bottom) */
4268
+ .mba-accordion--line {
4269
+ border: none;
4270
+ border-radius: 0;
4271
+ background: transparent;
4272
+ }
4273
+
4274
+ /* ===========================================
4275
+ HEADER (TRIGGER)
4276
+ =========================================== */
4277
+ .mba-accordion__header {
4278
+ display: flex;
4279
+ align-items: center;
4280
+ justify-content: space-between;
4281
+ gap: var(--mba-space-sm);
4282
+ padding: var(--mba-space-xs) var(--mba-space-sm);
4283
+ cursor: pointer;
4284
+ background-color: var(--mba-color-white);
4285
+ border: none;
4286
+ width: 100%;
4287
+ box-sizing: border-box;
4288
+ min-height: 43px;
4289
+ font-family: var(--mba-font-family-text);
4290
+ font-size: var(--mba-font-size-xs);
4291
+ font-weight: var(--mba-font-weight-regular);
4292
+ color: var(--mba-color-primary-900);
4293
+ text-align: left;
4294
+ }
4295
+
4296
+ /* Header pour la variante line : pas de fond, juste une ligne en bottom */
4297
+ .mba-accordion--line .mba-accordion__header {
4298
+ padding-left: var(--mba-space-xs); /* 8px */
4299
+ padding-right: var(--mba-space-xs); /* 8px */
4300
+ background-color: transparent;
4301
+ border-bottom: 1.8px solid var(--mba-color-primary-400);
4302
+ }
4303
+
4304
+ /* Pile d'accordions line : les suivants utilisent un trait en pointillés
4305
+ (couleur gérée par la variante Aidants / Partenaires) */
4306
+ .mba-accordion-group
4307
+ .mba-accordion--line
4308
+ + .mba-accordion--line
4309
+ .mba-accordion__header {
4310
+ border-bottom-style: dashed;
4311
+ }
4312
+
4313
+ /* Hover pour Aidants uniquement : fond grey-50 */
4314
+ .mba-accordion--line:not(.mba-accordion--partenaire) .mba-accordion__header:hover {
4315
+ background-color: var(--mba-color-grey-50);
4316
+ border-radius: var(--mba-radius-xs) var(--mba-radius-xs) 0 0;
4317
+ }
4318
+
4319
+ /* Variante Partenaire : couleur de ligne spécifique */
4320
+ .mba-accordion--line.mba-accordion--partenaire .mba-accordion__header {
4321
+ border-bottom-color: var(--mba-color-primary-pro-400);
4322
+ background-color: transparent;
4323
+ }
4324
+
4325
+ .mba-accordion--line.mba-accordion--partenaire .mba-accordion__header:hover {
4326
+ background-color: transparent;
4327
+ }
4328
+
4329
+ .mba-accordion__title-wrapper {
4330
+ display: flex;
4331
+ align-items: center;
4332
+ gap: var(--mba-space-xs);
4333
+ min-width: 0;
4334
+ }
4335
+
4336
+ .mba-accordion__title {
4337
+ white-space: nowrap;
4338
+ text-overflow: ellipsis;
4339
+ overflow: hidden;
4340
+ font-size: var(--mba-font-size-xs);
4341
+ color: var(--mba-color-primary-900);
4342
+ font-weight: var(--mba-font-weight-semibold);
4343
+ }
4344
+
4345
+ /* Variante Partenaire : titre en PrimaryPro-900 */
4346
+ .mba-accordion--partenaire .mba-accordion__title {
4347
+ color: var(--mba-color-primary-pro-900);
4348
+ }
4349
+
4350
+ /* Compteur d’éléments (pastille à droite du titre) */
4351
+ .mba-accordion__badge {
4352
+ display: inline-flex;
4353
+ align-items: center;
4354
+ justify-content: center;
4355
+ min-width: var(--mba-space-md);
4356
+ height: var(--mba-space-md);
4357
+ padding: var(--mba-space-xxs);
4358
+ border-radius: var(--mba-radius-full);
4359
+ background-color: var(--mba-color-pastel-oranger);
4360
+ color: var(--mba-color-primary-900);
4361
+ font-family: var(--mba-font-family-text);
4362
+ font-size: var(--mba-font-size-xxs);
4363
+ font-weight: var(--mba-font-weight-semibold);
4364
+ flex-shrink: 0;
4365
+ }
4366
+
4367
+ /* Variante Line Aidants : badge en secondary-500 */
4368
+ .mba-accordion--line .mba-accordion__badge {
4369
+ background-color: var(--mba-color-secondary-500);
4370
+ }
4371
+
4372
+ /* Variante Partenaire : badge en narcisse */
4373
+ .mba-accordion--partenaire .mba-accordion__badge {
4374
+ background-color: var(--mba-color-pastel-narcisse);
4375
+ }
4376
+
4377
+ .mba-accordion__icon {
4378
+ display: inline-flex;
4379
+ align-items: center;
4380
+ justify-content: center;
4381
+ margin-left: var(--mba-space-xs);
4382
+ color: var(--mba-color-primary-900);
4383
+ transition: transform var(--mba-transition-base);
4384
+ }
4385
+
4386
+ .mba-accordion--open .mba-accordion__icon {
4387
+ transform: rotate(180deg);
4388
+ }
4389
+
4390
+ /* ===========================================
4391
+ PANEL
4392
+ =========================================== */
4393
+ .mba-accordion__panel {
4394
+ display: none;
4395
+ background-color: var(--mba-color-white);
4396
+ }
4397
+
4398
+ .mba-accordion--open .mba-accordion__panel {
4399
+ display: block;
4400
+ }
4401
+
4402
+ .mba-accordion__panel-inner {
4403
+ padding: var(--mba-space-xs) var(--mba-space-sm);
4404
+ }
4405
+
4406
+ /* Panel pour la variante line : aligné à gauche avec le header */
4407
+ .mba-accordion--line .mba-accordion__panel-inner {
4408
+ padding-left: var(--mba-space-xs);
4409
+ padding-right: var(--mba-space-xs);
4410
+ }
4411
+
4412
+ /* Variante scrollable : à utiliser à partir de 5 items */
4413
+ .mba-accordion__panel-inner--scrollable {
4414
+ max-height: 9.5rem; /* hauteur raisonnable avant scroll */
4415
+ overflow-y: auto;
4416
+ scrollbar-width: thin;
4417
+ scrollbar-color: var(--mba-color-primary-400) transparent;
4418
+ }
4419
+
4420
+ .mba-accordion__panel-inner--scrollable::-webkit-scrollbar {
4421
+ width: var(--mba-space-xxs);
4422
+ }
4423
+
4424
+ .mba-accordion__panel-inner--scrollable::-webkit-scrollbar-thumb {
4425
+ background-color: var(--mba-color-primary-400);
4426
+ border-radius: var(--mba-radius-2xs);
4427
+ }
4428
+
4429
+ .mba-accordion__panel-inner--scrollable::-webkit-scrollbar-track {
4430
+ background-color: transparent;
4431
+ }
4432
+
4433
+ /* Scrollbar variante Partenaire (PrimaryPro-400) */
4434
+ .mba-accordion--partenaire .mba-accordion__panel-inner--scrollable {
4435
+ scrollbar-color: var(--mba-color-primary-pro-400) transparent;
4436
+ }
4437
+
4438
+ .mba-accordion--partenaire
4439
+ .mba-accordion__panel-inner--scrollable::-webkit-scrollbar-thumb {
4440
+ background-color: var(--mba-color-primary-pro-400);
4441
+ }
4442
+
4443
+ /* ===========================================
4444
+ LISTE D’ITEMS
4445
+ =========================================== */
4446
+ .mba-accordion__list {
4447
+ list-style: none;
4448
+ margin: 0;
4449
+ padding: 0;
4450
+ display: flex;
4451
+ flex-direction: column;
4452
+ gap: var(--mba-space-xxs);
4453
+ }
4454
+
4455
+ .mba-accordion__item {
4456
+ display: flex;
4457
+ align-items: center;
4458
+ gap: var(--mba-space-xs);
4459
+ padding: var(--mba-space-xs);
4460
+ font-family: var(--mba-font-family-text);
4461
+ font-size: var(--mba-font-size-xs);
4462
+ color: var(--mba-color-primary-900);
4463
+ }
4464
+
4465
+ .mba-accordion__item-icon {
4466
+ display: inline-flex;
4467
+ align-items: center;
4468
+ justify-content: center;
4469
+ flex-shrink: 0;
4470
+ padding: 2px;
4471
+ line-height: 1;
4472
+ vertical-align: middle;
4473
+ color: inherit;
4474
+ }
4475
+
4476
+ .mba-accordion__item-label {
4477
+ white-space: nowrap;
4478
+ overflow: hidden;
4479
+ text-overflow: ellipsis;
4480
+ }
4481
+
4482
+ /* États optionnels (hover / sélection) */
4483
+ .mba-accordion__item:hover {
4484
+ background-color: var(--mba-color-grey-50);
4485
+ border-radius: var(--mba-radius-xs);
4486
+ }
4487
+
4488
+ .mba-accordion__item--selected {
4489
+ font-weight: var(--mba-font-weight-semibold);
4490
+ }
4491
+
4492
+ }
3566
4493
 
3567
4494
  /* @import "./_carousel.css"; */
3568
4495
 
@@ -3676,4 +4603,32 @@ button.mba-input-icon__icon:hover {
3676
4603
  background: var(--mba-gradient-sunset);
3677
4604
  }
3678
4605
 
4606
+ /* Border gradient (hover reveal) — applique un contour gradient sunset via ::before */
4607
+
4608
+ .mba-border-gradient {
4609
+ position: relative;
4610
+ }
4611
+
4612
+ .mba-border-gradient::before {
4613
+ content: "";
4614
+ position: absolute;
4615
+ inset: 0;
4616
+ padding: 1px;
4617
+ background: var(--mba-gradient-sunset);
4618
+ border-radius: inherit;
4619
+ mask:
4620
+ linear-gradient(#fff 0 0) content-box,
4621
+ linear-gradient(#fff 0 0);
4622
+ mask-composite: exclude;
4623
+ -webkit-mask-composite: xor;
4624
+ pointer-events: none;
4625
+ opacity: 0;
4626
+ transition: opacity var(--mba-transition-base);
4627
+ }
4628
+
4629
+ .mba-border-gradient:hover::before,
4630
+ .mba-border-gradient--visible::before {
4631
+ opacity: 1;
4632
+ }
4633
+
3679
4634
  /*# sourceMappingURL=mba-design-system.css.map */