@import url(https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css);
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap);
@charset "UTF-8";
:root {
  --color-primary: #5343e0;
  --color-primary-foreground: #fff;
  --color-secondary: #111727;
  --color-secondary-foreground: #fff;
  --color-success: green;
  --color-warning: #e69a28;
  --color-danger: #e03232;
  --color-danger-foreground: #fff;
  --color-gold: #e8a322;
  --color-purple: #6d28e6;
  --color-border: #dcdde7;
  --color-border-dark: #ececec;
  --color-text: #111727;
  --color-text-muted: #646a77;
  --color-text-muted-dark: #444;
  --color-bg: #f6f8fa;
  --color-bg-muted: #f6f8fa;
  --color-bg-block: #fff;
  --color-bg-input: #edf1f8;
  --color-bg-input-light: #f3f3f3;
  --color-muted: #2f364a;
  --sidebar-width: 230px;
  --radius-xx-small: 4px;
  --radius-x-small: 5px;
  --radius-extra-small: 6px;
  --radius-small: 8px;
  --radius-medium: 10px;
  --radius-large: 14px;
  --radius-extra-large: 20px;
  --shadow-small: 0 2px 2px rgba(0,0,0,.05);
  --shadow-medium: 0 0 #0000,
                   0 0 #0000,
                   0px 0px 5px 0px rgba(0,0,0,.02),
                   0px 2px 10px 0px rgba(0,0,0,.06),
                   0px 0px 1px 0px rgba(0,0,0,.3);
  --button-shadow: inset 0 1px 0 0 rgba(255,255,255,.2);
  --btn-shadow: 0 0 #000, 0 0 #000,0 0 #000,0 0 #000,0 1px 2px 0 #0000000d;
  --button-gradient: linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.1) 100%);
  --button-gradient-reverse: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.01) 100%);
}

/* ------------------------------------------------------ */
/*  🔥 Sass variables désormais mappées aux variables CSS */
/* ------------------------------------------------------ */
body[data-theme=dark],
body.bodyDark {
  --color-primary: #5343e0;
  --color-primary-foreground: #fff;
  /* 🎯 Vraies couleurs dark */
  --color-secondary: #fff;
  --color-secondary-foreground: #111727;
  --color-border: #444;
  --color-border-dark: #555;
  --color-text: #ffffff;
  --color-text-muted: #bfbfbf;
  --color-text-muted-dark: #b7b7b7;
  --color-bg: #151515;
  --color-bg-muted: #161616;
  --color-bg-block: #070707;
  --color-bg-input: #262626;
  --color-bg-input-light: #1e1e1e;
  --color-muted: #afafaf;
  /* Le reste est inchangé */
  --sidebar-width: 230px;
  --radius-xx-small: 4px;
  --radius-x-small: 5px;
  --radius-extra-small: 6px;
  --radius-small: 8px;
  --radius-medium: 10px;
  --radius-large: 14px;
  --radius-extra-large: 20px;
  --shadow-small: 0 2px 2px rgba(0,0,0,.5);
  --shadow-medium: 0 0 #0000,
                   0 0 #0000,
                   0px 0px 5px 0px rgba(0,0,0,.4),
                   0px 2px 10px 0px rgba(0,0,0,.6),
                   0px 0px 1px 0px rgba(0,0,0,.7);
  --button-shadow: inset 0 1px 0 0 rgba(255,255,255,0.05);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

button,
input {
  border: none;
  -webkit-appearance: none;
  appearance: none;
}

h1,
h2,
h3,
h4,
h5,
p {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

body {
  font-family: "Inter", sans-serif;
  margin: 0;
  color: var(--color-text);
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
}

.pageLoader-wrapper {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pageLoader {
  width: 50px;
  height: 28px;
  --loaderV: no-repeat radial-gradient(farthest-side,#000 94%,#0000);
  background: var(--loaderV) 50% 0, var(--loaderV) 100% 0;
  background-size: 12px 12px;
  position: relative;
  animation: l23-0 1.5s linear infinite;
}

.pageLoader:before {
  content: "";
  position: absolute;
  height: 12px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #000;
  left: 0;
  top: 0;
  animation: l23-1 1.5s linear infinite, l23-2 0.5s cubic-bezier(0, 200, 0.8, 200) infinite;
}

@keyframes l23-0 {
  0%, 31% {
    background-position: 50% 0, 100% 0;
  }
  33% {
    background-position: 50% 100%, 100% 0;
  }
  43%, 64% {
    background-position: 50% 0, 100% 0;
  }
  66% {
    background-position: 50% 0, 100% 100%;
  }
  79% {
    background-position: 50% 0, 100% 0;
  }
  100% {
    transform: translateX(-33.3333333333%);
  }
}
@keyframes l23-1 {
  100% {
    left: calc(100% + 7px);
  }
}
@keyframes l23-2 {
  100% {
    top: -0.1px;
  }
}
.animate-on-scroll {
  transform: translateY(30px);
  transition: opacity 0.2s cubic-bezier(0, 0.2, 0.2, 1), transform 0.6s cubic-bezier(0, 0.2, 0.2, 1);
}

.animation-faded {
  opacity: 0;
}

.animate-effect-fade-up {
  transform: translateY(50px);
}

.animate-effect-fade-right {
  transform: translateX(50px);
}

.animate-effect-fade-left {
  transform: translateX(-50px);
}

.animate-effect-fade-down {
  transform: scale(-50px);
}

.animate-effect-fade-up-right {
  transform: translate(50px, 50px);
}

.animate-effect-fade-up-left {
  transform: translate(50px, -50px);
}

.animate-effect-fade-down-right {
  transform: translate(-50px, 50px);
}

.animate-effect-fade-down-left {
  transform: translate(0px, -50px);
}

.animate-effect-zoom-in {
  transform: scale(0.8);
}

.animate-effect-zoom-out {
  transform: scale(1.2);
}

.animate-effect-rotate-left {
  transform: rotate3d(0, 0, 1, 10deg);
}

.animate-effect-rotate-right {
  transform: rotate3d(0, 0, 1, -10deg);
}

.animate-effect-flip-front {
  transform: perspective(1200px) rotate3d(1, 0, 0, 80deg);
}

.animate-effect-flip-back {
  transform: perspective(1200px) rotate3d(1, 0, 0, 80deg);
}

.animate-effect-flip-left {
  transform: perspective(1200px) rotate3d(0, 1, 0, 80deg);
}

.animate-effect-flip-right {
  transform: perspective(1200px) rotate3d(0, 1, 0, 80deg);
}

.animate-duration-200 {
  transition-duration: 200ms !important;
}

.animate-duration-500 {
  transition-duration: 500ms !important;
}

.animate-duration-1000 {
  transition-duration: 1000ms !important;
}

.animate-duration-1500 {
  transition-duration: 1500ms !important;
}

.animate-duration-2000 {
  transition-duration: 2000ms !important;
}

.animate-duration-3000 {
  transition-duration: 3000ms !important;
}

/* État final de l'élément (après l'animation) */
.animate {
  opacity: 1;
  transform: translate(0) scale(1) rotate3d(0, 0, 0, 0deg);
}

.elementContainer {
  margin-left: auto;
  margin-right: auto;
}

.section {
  width: 100%;
}

.elementContainerContained {
  margin-left: auto;
  margin-right: auto;
}

.blockWrapper,
.blockImage,
.blockVideo,
.blockAudio,
.blockVideoYouTube,
.formWrapper {
  position: relative;
  max-width: 100%;
}

.blockImage {
  font-size: 0px;
  max-width: 100%;
}
.blockImage img {
  width: 100%;
  height: 100%;
}

.blockVideo {
  font-size: 0px;
  max-width: 100%;
}
.blockVideo video {
  width: 100%;
  height: 100%;
}

.blockAudio {
  font-size: 0px;
  max-width: 100%;
}
.blockAudio audio {
  width: 100%;
  height: 100%;
}

.blockVideoYouTube {
  aspect-ratio: 16/9;
  min-width: 10px;
}
.blockVideoYouTube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.elementBtn {
  -webkit-appearance: none;
  appearance: none;
  transition: all 0.2s ease;
  display: inline-block;
}
.elementBtn span {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.elementBtn:hover {
  filter: brightness(0.8);
}

.elementLabel {
  font-size: 14px;
  font-weight: 400;
  margin-bottom: 4px;
}

.elementInput {
  width: 100% !important;
  height: 100% !important;
}

.elementIcone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.inputWrapper {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.inputWrapper .form-error-msg {
  display: none;
  width: 100%;
  color: #e44242;
  font-size: 13px;
  margin-top: 3px;
}
.inputWrapper.inputWrapperError {
  color: #e44242;
}
.inputWrapper.inputWrapperError input.elementInput {
  border-color: #e44242 !important;
  color: #e44242;
}
.inputWrapper.inputWrapperError .form-error-msg {
  display: block;
}

/* CHECKOUT */
.checkout-form .payment-method,
.checkout-form .payment-options {
  display: flex;
  gap: 15px;
  margin-bottom: 16px;
}
.checkout-form .payment-method label,
.checkout-form .payment-options label {
  flex: 1;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-medium);
  display: flex;
  gap: 6px;
  padding: 12px 15px 10px 38px;
  position: relative;
  transition: all 0.2s ease-in-out;
}
.checkout-form .payment-method label b,
.checkout-form .payment-options label b {
  display: block;
  width: 100%;
  font-weight: 500;
  font-size: 14px;
}
.checkout-form .payment-method label input,
.checkout-form .payment-options label input {
  position: absolute;
  top: 50%;
  left: 13px;
  transform: translateY(-50%);
}
.checkout-form .payment-method label input:checked,
.checkout-form .payment-options label input:checked {
  background-color: var(--color-secondary);
}
.checkout-form .payment-method label img,
.checkout-form .payment-options label img {
  width: 48px;
  height: 20px;
  object-fit: contain;
  object-position: center left;
}
.checkout-form .payment-method label:hover,
.checkout-form .payment-options label:hover {
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
  border-color: color-mix(in srgb, var(--color-border), black 8%);
}
.checkout-form .payment-method label:has(input:checked),
.checkout-form .payment-options label:has(input:checked) {
  border-color: var(--color-secondary);
}

.row {
  margin-left: -5px;
  margin-right: -5px;
  display: flex;
}

.col-8,
.col-7,
.col-5,
.col-4 {
  max-width: 100%;
  padding-right: 5px;
  padding-left: 5px;
  flex: 0 0 auto;
}

.col-8 {
  width: 66.66666667%;
}

.col-7 {
  width: 58.33333333%;
}

.col-5 {
  width: 41.66666667%;
}

.col-4 {
  width: 33.33333333%;
}

hr {
  border: none;
  width: 100%;
  border-top: 1px solid var(--color-border);
  margin-top: 3px;
}

@media (max-width: 575px) {
  .elementContainer {
    width: 100%;
  }
}
@media (min-width: 576px) {
  .elementContainerContained {
    max-width: 540px;
  }
}
@media (max-width: 767px) {
  .elementContainerContained:has(> .blockWrapper:nth-child(2)) {
    flex-direction: column !important;
  }
  .blockWrapper {
    width: 100% !important;
  }
}
@media (min-width: 768px) {
  .elementContainerContained {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .elementContainerContained {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .elementContainerContained {
    max-width: 1140px;
  }
}
@media (min-width: 1400px) {
  .elementContainerContained {
    max-width: 1320px;
  }
}
