@charset "UTF-8";
/* Box sizing rules */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* Remove default padding */
ul,
ol {
  padding: 0;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

/* Set core body defaults */
body {
  pointer-events: all;
  text-rendering: optimizeSpeed;
  background-color: white;
}

/* Set Sections to take all width available */
section {
  width: 100%;
}

/* Make HR easier to work with */
hr {
  display: block;
  margin: rem(16) 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #ccc;
}

/* Remove list styles on ul, ol elements with a class attribute */
ul,
ol,
li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
  margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
  cursor: pointer;
}

a {
  text-decoration: none;
  opacity: 1;
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}
a:hover {
  opacity: 0.7;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  * {
    -webkit-animation-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
            transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.tag {
  position: relative;
  --tag-color: #fff;
  /* couleur par défaut */
  background-color: var(--tag-color);
  /* autres couleurs */
}
.tag-purple {
  --tag-color: #b3adff;
}
.tag-purple-200 {
  --tag-color: #d9d6fb;
}
.tag-blue {
  --tag-color: linear-gradient(to left, #0c00ff 50%, #7166ff);
}
.tag-white {
  --tag-color: white;
}
.tag-black {
  --tag-color: rgba(236, 235, 255, 0.25);
}
.tag::after {
  content: "";
  position: absolute;
  left: 20%;
  bottom: calc(50% * -1);
  width: 20%;
  height: 50%;
  /* ✅ utilise la même couleur que le tag */
  background: var(--tag-color);
  z-index: 0;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 100% 100%;
  -webkit-transform: scaleX(-1);
          transform: scaleX(-1);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20276.56%20172.56%27%3E%3Cpath%20d%3D%27M0%2C0v114.93c0%2C49.52%2C58.82%2C75.89%2C96.2%2C43.13L276.56%2C0H0Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20276.56%20172.56%27%3E%3Cpath%20d%3D%27M0%2C0v114.93c0%2C49.52%2C58.82%2C75.89%2C96.2%2C43.13L276.56%2C0H0Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
}

.tag-right:after {
  left: inherit;
  right: 20%;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

.bg-tag-opacity {
  --tag-color: #fff;
  /* couleur par défaut */
  background-color: var(--tag-color);
}
.bg-tag-opacity-purple {
  --tag-color: rgba(236, 235, 255, 0.1);
}
.bg-tag-opacity-purple::after {
  background-color: var(--tag-color);
}

.checkmark li {
  position: relative;
  font-weight: normal;
  margin-bottom: 0.3rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.checkmark li:before {
  content: "";
  left: 0;
  top: 0;
  width: 1em;
  height: 1em;
  background-image: url("../../src/svg/icones/check-list.svg");
  background-repeat: no-repeat;
  background-size: contain;
  padding-right: 1.3rem;
  margin-top: 0.2rem;
}

.mask-bubble {
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 100% 100%;
  /* ✅ nouveau mask (ta SVG) */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20742%20811%27%3E%3Cpath%20d%3D%27M741.459%20320.309C741.7%20404.061%20705.498%20484.062%20642.116%20539.593L349.98%20795.605C312.597%20828.368%20253.781%20801.998%20253.781%20752.475V633.306C107.281%20601.633%20-2.35364%20470.737%200.0383988%20315.322C2.74918%20139.132%20152.575%200%20329.947%200L419.013%200C596.808%200%20741.459%20143.69%20741.459%20320.309Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20742%20811%27%3E%3Cpath%20d%3D%27M741.459%20320.309C741.7%20404.061%20705.498%20484.062%20642.116%20539.593L349.98%20795.605C312.597%20828.368%20253.781%20801.998%20253.781%20752.475V633.306C107.281%20601.633%20-2.35364%20470.737%200.0383988%20315.322C2.74918%20139.132%20152.575%200%20329.947%200L419.013%200C596.808%200%20741.459%20143.69%20741.459%20320.309Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
}

/* Zone WYSIWYG */
.wysi ul,
#tinymce ul {
  list-style: none;
  padding-left: 0;
  margin: 1.2rem 0;
}

.wysi li,
#tinymce li {
  position: relative;
  padding-left: 26px;
  /* place pour l’icône */
  margin: 10px 0;
  line-height: 1.55;
}

.wysi p strong,
#tinymce p strong {
  font-weight: 500 !important;
  /* 		font-size: 24px; */
}

/* la "flèche" */
.wysi li::before,
#tinymce li::before {
  content: url("../../src/svg/icones/arrow-list.svg") !important;
  position: absolute;
  left: 0;
  top: 0.3em;
  color: #7166ff;
  /* violet */
  font-weight: 600;
  line-height: 1;
}

.blocs_modulables a {
  text-decoration: underline;
}

.bottom-form-bulle:after {
  content: url("../../src/svg/bas-de-bulle.svg");
  height: 0;
  width: 100%;
  display: block;
  bottom: 0;
  position: absolute;
}

.titre-white h1,
.titre-white h2,
.titre-white h3,
.titre-white h4,
.titre-white h5,
.titre-white h6 {
  color: white;
  font-weight: normal;
}
.titre-white h1 span,
.titre-white h2 span,
.titre-white h3 span,
.titre-white h4 span,
.titre-white h5 span,
.titre-white h6 span {
  font-size: inherit !important;
}
.titre-white h1 span[style*=underline],
.titre-white h2 span[style*=underline],
.titre-white h3 span[style*=underline],
.titre-white h4 span[style*=underline],
.titre-white h5 span[style*=underline],
.titre-white h6 span[style*=underline] {
  color: #7166ff;
  text-decoration-thickness: 4px;
  text-underline-offset: 0.15em;
}

.filter-el {
  position: relative;
}
.filter-el:after {
  content: url("../../src/svg/icones/arrow-list.svg");
  display: block;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(90deg);
          transform: translateY(-50%) rotate(90deg);
}

html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch] {
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  -webkit-transition-property: overflow;
  transition-property: overflow;
  -webkit-transition-duration: 1ms;
          transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

.disabled-arrow {
  opacity: 0.2;
}

/* Icône + (croix) faite en CSS */
.toggle-icon {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
}

.toggle-icon::before,
.toggle-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 2.5px;
  background: black;
  /* trait noir */
  border-radius: 999px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: opacity 0.25s ease, -webkit-transform 0.8 ease;
  transition: opacity 0.25s ease, -webkit-transform 0.8 ease;
  transition: transform 0.8 ease, opacity 0.25s ease;
  transition: transform 0.8 ease, opacity 0.25s ease, -webkit-transform 0.8 ease;
}

.is-open .toggle-icon::before,
.is-open .toggle-icon::after {
  background: white;
  /* trait blanc */
}

/* barre verticale (forme le +) */
.toggle-icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

.js-dropdown-toggle,
.btn-hover-purple {
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}
.js-dropdown-toggle:hover,
.btn-hover-purple:hover {
  background-color: #7166ff !important;
}

/* État ouvert : fond noir + on "efface" la barre verticale => devient un - */
.js-dropdown-toggle.is-open {
  background: #000 !important;
  /* override ton bg-gradient-purple */
}

.js-dropdown-toggle.is-open .toggle-icon::after {
  opacity: 0;
  -webkit-transform: translate(-50%, -50%) rotate(90deg) scaleY(0);
          transform: translate(-50%, -50%) rotate(90deg) scaleY(0);
}

.bg-state-select {
  background: rgba(178, 173, 255, 0.3);
  border-radius: 16px;
}

@media screen and (min-width: 1920px) {
  h1 {
    font-size: 6rem !important;
  }

  .single-evenements h1,
.single-post h1 {
    font-size: 5rem !important;
  }

  h2 {
    font-size: 5rem !important;
  }
}
@font-face {
  font-family: poppins;
  src: url("../fonts/poppins/Poppins-Thin.otf");
  src: url("../fonts/poppins/Poppins-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/poppins/Poppins-Thin.woff2") format("woff2"), url("../fonts/poppins/Poppins-Thin.woff") format("woff"), url("../fonts/poppins/Poppins-Thin.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
}
@font-face {
  font-family: poppins;
  src: url("../fonts/poppins/Poppins-Regular.otf");
  src: url("../fonts/poppins/Poppins-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/poppins/Poppins-Regular.woff2") format("woff2"), url("../fonts/poppins/Poppins-Regular.woff") format("woff"), url("../fonts/poppins/Poppins-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: poppins;
  src: url("../fonts/poppins/Poppins-Medium.otf");
  src: url("../fonts/poppins/Poppins-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/poppins/Poppins-Medium.woff2") format("woff2"), url("../fonts/poppins/Poppins-Medium.woff") format("woff"), url("../fonts/poppins/Poppins-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
}
@font-face {
  font-family: poppins;
  src: url("../fonts/poppins/Poppins-SemiBold.otf");
  src: url("../fonts/poppins/Poppins-SemiBold.eot?#iefix") format("embedded-opentype"), url("../fonts/poppins/Poppins-SemiBold.woff2") format("woff2"), url("../fonts/poppins/Poppins-SemiBold.woff") format("woff"), url("../fonts/poppins/Poppins-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
}
@font-face {
  font-family: poppins;
  src: url("../fonts/poppins/Poppins-Bold.otf");
  src: url("../fonts/poppins/Poppins-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/poppins/Poppins-Bold.woff2") format("woff2"), url("../fonts/poppins/Poppins-Bold.woff") format("woff"), url("../fonts/poppins/Poppins-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}
.bg-purple-300 {
  background-color: #b3adff;
}

.text-purple-300 {
  color: #b3adff;
}

.bg-purple-500 {
  background-color: #7166ff;
}

.text-purple-500 {
  color: #7166ff;
}

.bg-purple-100 {
  background-color: #ecebff;
}

.text-purple-100 {
  color: #ecebff;
}

.bg-gradient-blue-to-purple {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #0c00ff), to(#7166ff));
  background: linear-gradient(to bottom, #0c00ff 50%, #7166ff);
}

.bg-gradient-purple-to-blue {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #7166ff), to(#0c00ff));
  background: linear-gradient(to bottom, #7166ff 50%, #0c00ff);
}

.bg-gradient-blue-to-purple-left {
  background: -webkit-gradient(linear, right top, left top, color-stop(50%, #0c00ff), to(#7166ff));
  background: linear-gradient(to left, #0c00ff 50%, #7166ff);
}

.bg-gradient-blue-to-purple-top {
  background: -webkit-gradient(linear, left bottom, left top, color-stop(50%, #0c00ff), to(#7166ff));
  background: linear-gradient(to top, #0c00ff 50%, #7166ff);
}

.bg-gradient-pruple-500-to-purple-100 {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #7166ff), to(#ecebff));
  background: linear-gradient(to bottom, #7166ff 50%, #ecebff);
}

.bg-gradient-pruple-500-to-purple-300 {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #7166ff), to(#b3adff));
  background: linear-gradient(to bottom, #7166ff 50%, #b3adff);
}

.bg-gradient-purple {
  background: -webkit-gradient(linear, left top, right top, from(rgba(179, 173, 255, 0.3)), color-stop(rgba(179, 173, 255, 0.5)), to(#b3adff));
  background: linear-gradient(to right, rgba(179, 173, 255, 0.3), rgba(179, 173, 255, 0.5), #b3adff);
  padding: 1em 1.5em;
  font-weight: 400;
  color: black;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  text-align: center;
}

.box-shadow-purple {
  -webkit-box-shadow: 0 22px 55px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(113, 102, 255, 0.08), 0 18px 70px rgba(113, 102, 255, 0.28), 0 6px 20px rgba(113, 102, 255, 0.18);
          box-shadow: 0 22px 55px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(113, 102, 255, 0.08), 0 18px 70px rgba(113, 102, 255, 0.28), 0 6px 20px rgba(113, 102, 255, 0.18);
  /* glow violet proche */
}

hr {
  background-color: #b3adff;
}

.border-purple-300 {
  border-color: #b3adff;
}

.bg-arrow-purple-500:after {
  background-color: #7166ff !important;
}

.about .titre-white h2,
.avantages .titre-white h2 {
  font: 400 1.9375rem "poppins", Helvetica, Arial, sans-serif;
  color: #1f1f1f;
  line-height: 1;
  color: #f1ebe5;
  font-weight: 400;
  line-height: normal;
  font-size: 2.1875rem;
}
@media only screen and (min-width: 600px) {
  .about .titre-white h2,
.avantages .titre-white h2 {
    font-size: 2.8125rem;
  }
}
@media only screen and (min-width: 1025px) {
  .about .titre-white h2,
.avantages .titre-white h2 {
    font-size: 2.8125rem;
  }
}
@media only screen and (min-width: 600px) {
  .about .titre-white h2,
.avantages .titre-white h2 {
    font-size: 3.125rem;
  }
}
@media only screen and (min-width: 1024px) {
  .about .titre-white h2,
.avantages .titre-white h2 {
    font-size: 3.125rem;
  }
}
@media only screen and (min-width: 1536px) {
  .about .titre-white h2,
.avantages .titre-white h2 {
    font-size: 4.375rem;
  }
}

.button-gradient {
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.2)), color-stop(rgba(255, 255, 255, 0.2)), to(#ffffff));
  background: linear-gradient(to right, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2), #ffffff);
  padding: 1em 1.5em;
  font-size: 16px;
  font-weight: 500;
  color: white;
  border-radius: 8px;
  padding-right: calc(25px + 2.5rem);
  cursor: pointer;
  position: relative;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  text-align: center;
}

.button-gradient-purple {
  background: -webkit-gradient(linear, left top, right top, from(rgba(179, 173, 255, 0.3)), color-stop(rgba(179, 173, 255, 0.5)), to(#b3adff));
  background: linear-gradient(to right, rgba(179, 173, 255, 0.3), rgba(179, 173, 255, 0.5), #b3adff);
  padding: 1em 1.5em;
  font-size: 16px;
  font-weight: 500;
  color: #1f1f1f;
  border-radius: 8px;
  padding-right: calc(25px + 2.5rem);
  cursor: pointer;
  position: relative;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  text-align: center;
}
.button-gradient-purple:after {
  background-color: #7166ff !important;
}

.button-cta {
  padding: 1em 1.5em;
  font-size: 16px;
  font-weight: 500;
  border-radius: 8px;
  padding-right: calc(25px + 2.5rem);
  cursor: pointer;
  position: relative;
  -webkit-transition: color ease-in-out 0.5s;
  transition: color ease-in-out 0.5s;
  /* réglages anim faciles */
  --btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --arrow-rot: 0deg;
  /* par défaut */
  --arrow-rot-hover: -45deg;
  /* override si tu veux */
  --arrow-x: 0px;
  --arrow-x-hover: 0px;
  /* le carré à droite */
  /* l’icône (dessin) -> dans ::before pour être animée indépendamment */
  /* hover: tu peux animer séparément */
}
.button-cta.rotate-arrow {
  --arrow-rot: -45deg;
  --arrow-rot-hover: -45deg;
}
.button-cta.rotate-arrow:hover:before {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}
.button-cta.arrow-white:before {
  background-color: white;
}
.button-cta.arrow-purple:before {
  background-color: #7166ff;
}
.button-cta::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 52px;
  /* carré */
  height: 100%;
  aspect-ratio: 1/1;
  border-radius: 8px;
  background: white;
  z-index: 2;
  display: grid;
  place-items: center;
  /* animation du container */
  -webkit-transform: translateX(var(--arrow-x));
          transform: translateX(var(--arrow-x));
  -webkit-transition: background-color 220ms ease, width ease-in-out 0.5s, -webkit-transform 320ms var(--btn-ease);
  transition: background-color 220ms ease, width ease-in-out 0.5s, -webkit-transform 320ms var(--btn-ease);
  transition: transform 320ms var(--btn-ease), background-color 220ms ease, width ease-in-out 0.5s;
  transition: transform 320ms var(--btn-ease), background-color 220ms ease, width ease-in-out 0.5s, -webkit-transform 320ms var(--btn-ease);
}
.button-cta::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 52px;
  z-index: 3;
  aspect-ratio: 1/1;
  /* centre l'icône */
  display: grid;
  place-items: center;
  /* le dessin de la flèche */
  background-color: #000;
  /* couleur de la flèche */
  -webkit-mask: url(../../src/svg/icones/arrow-black.svg) no-repeat center/18px 18px;
  mask: url(../../src/svg/icones/arrow-black.svg) no-repeat center/18px 18px;
  /* animation de la flèche */
  -webkit-transform: rotate(var(--arrow-rot));
          transform: rotate(var(--arrow-rot));
  -webkit-transition: -webkit-transform 380ms var(--btn-ease);
  transition: -webkit-transform 380ms var(--btn-ease);
  transition: transform 380ms var(--btn-ease);
  transition: transform 380ms var(--btn-ease), -webkit-transform 380ms var(--btn-ease);
  pointer-events: none;
}
.button-cta:hover {
  opacity: 1 !important;
  color: #000 !important;
}
.button-cta:hover::after {
  -webkit-transform: translateX(var(--arrow-x-hover));
          transform: translateX(var(--arrow-x-hover));
  width: 100%;
}
.button-cta:hover::before {
  -webkit-transform: rotate(var(--arrow-rot-hover));
          transform: rotate(var(--arrow-rot-hover));
}

.btn-chevron {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.65rem;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  position: relative;
  /* réglages anim faciles */
  --btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --chev-x: 0px;
  --chev-x-hover: 6px;
  --chev-size: 1.05em;
  /* taille relative au texte */
  /* l’icône chevron */
}
.btn-chevron::after {
  content: "";
  width: var(--chev-size);
  height: var(--chev-size);
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: url(../../src/svg/icones/btn-chevron.svg) no-repeat center/contain;
  mask: url(../../src/svg/icones/btn-chevron.svg) no-repeat center/contain;
  -webkit-transform: translateX(var(--chev-x));
          transform: translateX(var(--chev-x));
  -webkit-transition: opacity 220ms ease, -webkit-transform 320ms var(--btn-ease);
  transition: opacity 220ms ease, -webkit-transform 320ms var(--btn-ease);
  transition: transform 320ms var(--btn-ease), opacity 220ms ease;
  transition: transform 320ms var(--btn-ease), opacity 220ms ease, -webkit-transform 320ms var(--btn-ease);
  opacity: 0.95;
}
.btn-chevron:hover::after {
  -webkit-transform: translateX(var(--chev-x-hover));
          transform: translateX(var(--chev-x-hover));
  opacity: 1;
}

.btn-arrow-simple {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3rem;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  position: relative;
  /* réglages anim faciles */
  --btn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  /* arrow control */
  --arrow-color: currentColor;
  /* ✅ override facile */
  --arrow-size: 1em;
  --arrow-x: 0px;
  --arrow-x-hover: 6px;
  --arrow-rot: -45deg;
  --arrow-rot-hover: 0deg;
  /* icône */
}
.btn-arrow-simple.rotate-arrow {
  --arrow-rot: -45deg;
  --arrow-rot-hover: -45deg;
}
.btn-arrow-simple.rotate-arrow-hover {
  --arrow-rot: 0deg;
  --arrow-rot-hover: -45deg;
}
.btn-arrow-simple.arrow-purple:after {
  background-color: #7166ff !important;
}
.btn-arrow-simple::after {
  content: "";
  width: var(--arrow-size);
  height: var(--arrow-size);
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  background-color: var(--arrow-color);
  -webkit-mask: url(../../src/svg/icones/arrow-black.svg) no-repeat center/contain;
  mask: url(../../src/svg/icones/arrow-black.svg) no-repeat center/contain;
  -webkit-transform: translateX(var(--arrow-x)) rotate(var(--arrow-rot));
          transform: translateX(var(--arrow-x)) rotate(var(--arrow-rot));
  -webkit-transition: opacity 220ms ease, -webkit-transform 340ms var(--btn-ease);
  transition: opacity 220ms ease, -webkit-transform 340ms var(--btn-ease);
  transition: transform 340ms var(--btn-ease), opacity 220ms ease;
  transition: transform 340ms var(--btn-ease), opacity 220ms ease, -webkit-transform 340ms var(--btn-ease);
  opacity: 0.95;
}
.btn-arrow-simple:hover::after {
  -webkit-transform: translateX(var(--arrow-x-hover)) rotate(var(--arrow-rot-hover));
          transform: translateX(var(--arrow-x-hover)) rotate(var(--arrow-rot-hover));
  opacity: 1;
}

/* ----------------------------------------------------------------------------------------------------
Super Form Reset
A couple of things to watch out for:
- IE8: If a text input doesn't have padding on all sides or none the text won't be centered.
- The default border sizes on text inputs in all UAs seem to be slightly different. You're better off using custom borders.
- You NEED to set the font-size and family on all form elements
- Search inputs need to have their appearance reset and the box-sizing set to content-box to match other UAs
- You can style the upload button in webkit using ::-webkit-file-upload-button
- ::-webkit-file-upload-button selectors can't be used in the same selector as normal ones. FF and IE freak out.
- IE: You don't need to fake inline-block with labels and form controls in IE. They function as inline-block.
- By turning off ::-webkit-search-decoration, it removes the extra whitespace on the left on search inputs
----------------------------------------------------------------------------------------------------*/
input,
label,
select,
button,
textarea {
  margin: 0;
  border: 0;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
  white-space: normal;
  background: none;
  line-height: 1;
  border-radius: 0px;
  /* Browsers have different default form fonts */
  font-size: 13px;
  font-family: "poppins", Helvetica, Arial, sans-serif;
}

/* Remove the stupid outer glow in Webkit */
input:focus {
  outline: 0;
}

/* Box Sizing Reset
-----------------------------------------------*/
/* All of our custom controls should be what we expect them to be */
input,
textarea {
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}

/* These elements are usually rendered a certain way by the browser */
button,
input[type=reset],
input[type=button],
input[type=submit],
input[type=checkbox],
input[type=radio],
select {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/* Text Inputs
-----------------------------------------------*/
input[type=date],
input[type=datetime],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=password],
input[type=range],
input[type=search],
input[type=tel],
input[type=text],
input[type=time],
input[type=url],
input[type=week] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  height: auto;
  border: 0;
  border-radius: 0px;
  margin: 0;
  outline: none;
  outline-color: transparent;
  background-color: transparent;
  -webkit-font-smoothing: inherit !important;
}

/* Button Controls
-----------------------------------------------*/
input[type=checkbox] {
  -webkit-appearance: none;
  border: 1px solid gray;
  width: 0.9375rem;
  height: 0.9375rem;
  margin: 0;
  margin-right: 0.6em;
  border-radius: 0px;
}
input[type=checkbox]:checked {
  background-image: url("../svg/check-solid.svg");
  background-size: 69%;
  background-position: center;
  background-repeat: no-repeat;
}

input[type=radio] {
  width: 0.9375rem;
  height: 1.625rem;
  margin: 0;
  border-radius: 0px;
}

/* File Uploads
-----------------------------------------------*/
input[type=file] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  height: auto;
  border: 0;
  outline: none;
  outline-color: transparent;
  background-color: transparent;
  -webkit-font-smoothing: inherit !important;
}

/* Search Input
-----------------------------------------------*/
/* Make webkit render the search input like a normal text field */
input[type=search] {
  -webkit-appearance: textfield;
  -webkit-box-sizing: content-box;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type=number] {
  -moz-appearance: textfield;
}

/* Turn off the recent search for webkit. It adds about 15px padding on the left */
::-webkit-search-decoration {
  display: none;
}

/* Buttons
-----------------------------------------------*/
button,
input[type=reset],
input[type=button],
input[type=submit] {
  /* Fix IE7 display bug */
  overflow: visible;
  width: auto;
}

/* IE8 and FF freak out if this rule is within another selector */
::-webkit-file-upload-button {
  padding: 0;
  border: 0;
  background: none;
}

/* Textarea
-----------------------------------------------*/
textarea {
  /* Move the label to the top */
  vertical-align: top;
  /* Turn off scroll bars in IE unless needed */
  overflow: auto;
}

/* Selects
-----------------------------------------------*/
select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  height: auto;
  border: 0;
  outline: none;
  outline-color: transparent;
  background-color: transparent;
  -webkit-font-smoothing: inherit !important;
}

select[multiple] {
  /* Move the label to the top */
  vertical-align: top;
}

h1,
.title-1 {
  font: 400 2.1875rem "poppins", Helvetica, Arial, sans-serif;
  line-height: 1;
  color: #1f1f1f;
}
@media only screen and (min-width: 600px) {
  h1,
.title-1 {
    font-size: 3.125rem;
  }
}
@media only screen and (min-width: 1024px) {
  h1,
.title-1 {
    font-size: 3.125rem;
  }
}

h2,
.title-2 {
  font: 400 1.9375rem "poppins", Helvetica, Arial, sans-serif;
  color: #1f1f1f;
  line-height: 1;
}
@media only screen and (min-width: 600px) {
  h2,
.title-2 {
    font-size: 2.8125rem;
  }
}
@media only screen and (min-width: 1025px) {
  h2,
.title-2 {
    font-size: 2.8125rem;
  }
}

h3,
.title-3 {
  font: 400 1.625rem "poppins", Helvetica, Arial, sans-serif;
  color: #1f1f1f;
  line-height: 1;
}
@media only screen and (min-width: 600px) {
  h3,
.title-3 {
    font-size: 2.5rem;
  }
}
@media only screen and (min-width: 1024px) {
  h3,
.title-3 {
    font-size: 2.5rem;
  }
}

h4,
.title-4 {
  font: 400 1.375rem "poppins", Helvetica, Arial, sans-serif;
  line-height: 1;
}
@media only screen and (min-width: 600px) {
  h4,
.title-4 {
    font-size: 2.1875rem;
  }
}
@media only screen and (min-width: 1024px) {
  h4,
.title-4 {
    font-size: 2.1875rem;
  }
}

h5,
.tabs-title,
.title-5 {
  font: 400 1.125rem "poppins", Helvetica, Arial, sans-serif;
  line-height: 1;
}
@media only screen and (min-width: 600px) {
  h5,
.tabs-title,
.title-5 {
    font-size: 1.5625rem;
  }
}
@media only screen and (min-width: 1024px) {
  h5,
.tabs-title,
.title-5 {
    font-size: 1.5625rem;
  }
}

h6,
.drawer-title,
.title-6 {
  font: 400 1rem "poppins", Helvetica, Arial, sans-serif;
  line-height: 1;
}
@media only screen and (min-width: 600px) {
  h6,
.drawer-title,
.title-6 {
    font-size: 1.125rem;
  }
}
@media only screen and (min-width: 1024px) {
  h6,
.drawer-title,
.title-6 {
    font-size: 1.125rem;
  }
}

body {
  font: 500 1rem/1.25 "poppins", Helvetica, Arial, sans-serif;
  color: #1f1f1f;
}

p,
.paragraph {
  font-family: "poppins", Helvetica, Arial, sans-serif;
  font-weight: 400;
  margin-bottom: 1em;
  color: #1f1f1f;
}

.list li {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font: 500 1.0625rem "poppins", Helvetica, Arial, sans-serif;
  color: #1f1f1f;
}

::-moz-selection {
  border: 0;
  text-shadow: none;
  outline: none;
  background-color: #dadada;
}

::selection {
  border: 0;
  text-shadow: none;
  outline: none;
  background-color: #dadada;
}

.container {
  padding: 1em 15px;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (min-width: 600px) {
  .container {
    padding: 1em 30px;
  }
}
@media only screen and (min-width: 1024px) {
  .container {
    margin-left: auto;
    margin-right: auto;
    padding: 1em 50px;
    max-width: none;
  }
}

.page-wrapper {
  position: relative;
  min-height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

[data-splitting] .word {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: baseline;
  -webkit-align-items: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  overflow: hidden;
}

h1 .word,
h2 .word,
h3 .word,
h4 .word,
h5 .word,
h6 .word {
  padding-bottom: 10px;
}

.word-content {
  display: inline-block;
  will-change: transform;
}

.splitting .word-content {
  -webkit-transform: translateY(120%);
          transform: translateY(120%);
  -webkit-transform-origin: left bottom;
          transform-origin: left bottom;
}

.card-abonnement {
  -webkit-transition: -webkit-transform ease-in-out 0.5s;
  transition: -webkit-transform ease-in-out 0.5s;
  transition: transform ease-in-out 0.5s;
  transition: transform ease-in-out 0.5s, -webkit-transform ease-in-out 0.5s;
}
.card-abonnement:hover {
  -webkit-transform: translateY(-20px);
          transform: translateY(-20px);
}

/* Motion base states */
.fade,
.fade-up {
  opacity: 0;
}

.image-zoom {
  -webkit-transform: scale(1.4);
          transform: scale(1.4);
  -webkit-filter: blur(4px);
          filter: blur(4px);
}

.rotate-effect {
  width: 100%;
  height: 100%;
  -webkit-animation: rotate-effect 0.8s ease-in-out;
          animation: rotate-effect 0.8s ease-in-out;
}

@-webkit-keyframes rotate-effect {
  0% {
    -webkit-transform: scale(1.05) rotate(-3deg);
            transform: scale(1.05) rotate(-3deg);
  }
  100% {
    -webkit-transform: scale(1) rotate(0deg);
            transform: scale(1) rotate(0deg);
  }
}

@keyframes rotate-effect {
  0% {
    -webkit-transform: scale(1.05) rotate(-3deg);
            transform: scale(1.05) rotate(-3deg);
  }
  100% {
    -webkit-transform: scale(1) rotate(0deg);
            transform: scale(1) rotate(0deg);
  }
}
.rotate-effect-in-view {
  -webkit-transform: rotate(-5deg);
          transform: rotate(-5deg);
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}

@-webkit-keyframes rotate-effect-in-view {
  0% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
  100% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
}

@keyframes rotate-effect-in-view {
  0% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
  }
  100% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
}
.transition-page--load {
  -webkit-animation-duration: 1.2s;
          animation-duration: 1.2s;
  -webkit-animation-name: load-transition;
          animation-name: load-transition;
}

.transition-page {
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-timing-function: cubic-bezier(0.3, 0.86, 0.36, 0.95);
          animation-timing-function: cubic-bezier(0.3, 0.86, 0.36, 0.95);
  background-color: black;
  height: 100dvh;
  left: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1111111;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.loader {
  height: 10px;
  width: 10px;
  aspect-ratio: 1/1;
  background-color: #7166ff;
  margin: 6px;
  border-radius: 999999px;
  display: inline-block;
}

.loader:nth-child(1) {
  -webkit-animation: loader 0.8s ease-in-out alternate infinite;
          animation: loader 0.8s ease-in-out alternate infinite;
}

.loader:nth-child(2) {
  -webkit-animation: loader 0.8s ease-in-out 0.3s alternate infinite;
          animation: loader 0.8s ease-in-out 0.3s alternate infinite;
}

.loader:nth-child(3) {
  -webkit-animation: loader 0.8s ease-in-out 0.6s alternate infinite;
          animation: loader 0.8s ease-in-out 0.6s alternate infinite;
}

@-webkit-keyframes loader {
  to {
    -webkit-transform: scale(1.8);
            transform: scale(1.8);
  }
}

@keyframes loader {
  to {
    -webkit-transform: scale(1.8);
            transform: scale(1.8);
  }
}
@-webkit-keyframes load-transition {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes load-transition {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.fade-tag-anim {
  opacity: 0;
  -webkit-animation: fade-in 0.8s ease-in-out forwards;
          animation: fade-in 0.8s ease-in-out forwards;
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* Le conteneur du panneau (celui qui a .menu-open) */
.menu-open {
  /* tu as déjà absolute/top-20/etc via tailwind */
  overflow: hidden;
  /* important pour "croper" */
  height: 0;
  -webkit-transform: translateY(-6px);
          transform: translateY(-6px);
  -webkit-transition: all 520ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: all 520ms cubic-bezier(0.22, 1, 0.36, 1);
  /* état fermé */
  pointer-events: none;
  /* tu as déjà pointer-events-none */
}

/* État ouvert */
.menu-open.is-open {
  height: calc(50vh + 2rem);
  /* valeur assez grande pour contenir ton menu (max-h réel) */
  -webkit-transform: translateY(0);
          transform: translateY(0);
  pointer-events: auto;
}

@media screen and (min-width: 1536px) {
  .menu-open.is-open {
    height: 50vh;
  }
}
/* (optionnel) petite anim sur le bloc interne */
.menu-open .menu-main {
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
  opacity: 0;
  -webkit-transition: opacity 220ms ease, -webkit-transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 220ms ease, -webkit-transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, -webkit-transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.menu-open.is-open .menu-main {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}

@media screen and (max-width: 735px) {
  .menu-open {
    top: 0;
    left: 0;
    position: fixed;
  }
  .menu-open .menu-black {
    max-width: 100% !important;
  }

  /* État ouvert */
  .menu-open.is-open {
    height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
  }
  .menu-open.is-open .menu-black {
    max-width: 100% !important;
  }

  .menu-is-open nav {
    -webkit-transition: margin ease-out 0.3s;
    transition: margin ease-out 0.3s;
    -webkit-transition-delay: -0.1s;
            transition-delay: -0.1s;
    margin-top: -65px;
  }
}
/* (optionnel) accessibilité */
@media (prefers-reduced-motion: reduce) {
  .menu-open,
.menu-open .menu-main {
    -webkit-transition: none !important;
    transition: none !important;
  }
}
/* Position du panel : flottant en haut à droite sous la nav */
.menu-items {
  position: relative;
  max-width: 335px;
}

/* Panel global */
.menu-panel {
  position: absolute;
  right: 0;
  top: 64px;
  /* ≈ top-20, ajuste si besoin */
  width: 420px;
  /* largeur globale du panel */
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 18px;
  z-index: 999;
  /* animation ouverture/fermeture */
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
  pointer-events: none;
  -webkit-transition: max-height 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, -webkit-transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: max-height 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, -webkit-transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: max-height 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: max-height 650ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, transform 650ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Ouvert */
.menu-panel.is-open {
  max-height: 900px;
  /* assez grand pour contenir top + card */
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  pointer-events: auto;
}

/* Ligne top : X + CTA */
.menu-panel__top {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 16px;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

/* Bouton X carré arrondi */
.menu-close {
  height: 78px;
  width: 90px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 42px;
  line-height: 1;
  display: grid;
  place-items: center;
  border: 0;
  cursor: pointer;
}

/* CTA */
.menu-cta {
  height: 78px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 18px;
  text-decoration: none;
  font-size: 28px;
  padding: 0 22px;
  position: relative;
  overflow: hidden;
}

/* Theme vars sur le conteneur du menu */
.menu--dark {
  --menu-arrow: url("../../src/svg/icones/arrow-white.svg");
}

.menu--light {
  --menu-arrow: url("../../src/svg/icones/arrow-black.svg");
}

.menu-link {
  position: relative;
  display: inline-block;
  -webkit-transition: opacity 0.25s ease-in-out;
  transition: opacity 0.25s ease-in-out;
}
.menu-link::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 18px;
  height: 18px;
  -webkit-transform: translate(100%, -50%);
          transform: translate(100%, -50%);
  opacity: 0;
  background: var(--menu-arrow) no-repeat center/contain;
  -webkit-transition: opacity 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
  transition: opacity 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out, opacity 0.25s ease-in-out;
  transition: transform 0.25s ease-in-out, opacity 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
  pointer-events: none;
}
.menu-link:hover::after {
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  opacity: 1;
}

/* bouton normal */
.menu-btn {
  position: relative;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 75px;
  max-width: 80px;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
}
.menu-btn.bg-black:hover {
  background-color: rgba(18, 16, 16, 0.4);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
}
.menu-btn.bg-white:hover {
  background-color: rgba(255, 255, 255, 0.4);
  color: white;
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
}

/* état OPEN : devient le bouton croix (comme la capture) */
.menu-btn.is-open {
  background: rgba(18, 16, 16, 0.4) !important;
  /* violet translucide */
  color: transparent;
  /* cache le texte tailwind */
  min-width: 75px;
  max-width: 80px;
  padding: 0;
  /* important */
  border-radius: 12px;
}

/* on cache le "Menu" quand open */
.menu-btn.is-open .menu-btn__label {
  opacity: 0;
}

/* on dessine la croix avec pseudo-éléments */
.menu-btn.is-open::before,
.menu-btn.is-open::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 3px;
  background: #fff;
  border-radius: 999px;
  -webkit-transform-origin: center;
          transform-origin: center;
}

/* 2 barres croisées */
.menu-btn.is-open::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}

.menu-btn.is-open::after {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

/* transitions smooth */
.menu-btn,
.menu-btn .menu-btn__label {
  -webkit-transition: all 280ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: all 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.menu-btn.is-open::before,
.menu-btn.is-open::after {
  -webkit-transition: all 280ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: all 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.header--visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition: opacity 0.5s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.5s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.5s ease, transform 0.8s ease;
  transition: opacity 0.5s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
  pointer-events: auto;
}

.header--hide {
  opacity: 0;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition: opacity 0.5s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.5s ease, -webkit-transform 0.8s ease;
  transition: opacity 0.5s ease, transform 0.8s ease;
  transition: opacity 0.5s ease, transform 0.8s ease, -webkit-transform 0.8s ease;
  pointer-events: auto;
}

.footer_banner {
  background-color: rgba(236, 235, 255, 0.1);
}

.cursors {
  padding: 150px 0;
}
.cursors__container {
  padding: 1em 15px;
  margin-left: auto;
  margin-right: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media only screen and (min-width: 600px) {
  .cursors__container {
    padding: 1em 30px;
  }
}
@media only screen and (min-width: 1024px) {
  .cursors__container {
    margin-left: auto;
    margin-right: auto;
    padding: 1em 50px;
    max-width: none;
  }
}
.cursors__introduction {
  width: 75%;
  margin-right: 25%;
  margin-bottom: 75px;
}
.cursors__subtitle {
  margin-bottom: 20px;
}
.cursors__text {
  font-size: 1.5rem;
  margin-bottom: 40px;
}
.cursors__button {
  border-radius: 0 !important;
}
.cursors__content {
  position: relative;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}
.cursors__block {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: calc(50% - 20px);
  margin: 10px;
  height: 200px;
  background-color: black;
  color: #f1ebe5;
}

.cursor__ball {
  -webkit-transform: translate(0px, 0px);
          transform: translate(0px, 0px);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  mix-blend-mode: difference;
  height: 100px;
  width: 100px;
}
.cursor__ball svg {
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}
.cursor__ball circle {
  shape-rendering: geometricPrecision;
  fill: #ccc;
  fill-opacity: 0;
  stroke: #ccc;
  stroke-width: 2;
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}
.cursor__ball--big svg {
  width: 100px;
  height: 100px;
}
.cursor__ball--small circle {
  fill-opacity: 1;
  stroke-width: 0;
}
.cursor__text {
  height: 100px;
  width: 100px;
}
.cursor__text p {
  color: #f1ebe5;
  opacity: 0;
  mix-blend-mode: difference;
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}
.cursor__image {
  width: 200px;
  height: 200px;
}
.cursor__image div {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 200px;
  height: 200px;
  opacity: 0;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}
.cursor__image div img {
  width: 100%;
}
.cursor--animate .cursor__ball--big svg {
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
}
.cursor--expand .cursor__ball--big svg {
  -webkit-transform: scale(1.5);
          transform: scale(1.5);
}
.cursor--text .cursor__ball--small svg {
  opacity: 0;
}
.cursor--text .cursor__text p {
  opacity: 1;
}
.cursor--image .cursor__ball--small svg,
.cursor--image .cursor__ball--big svg {
  opacity: 0;
}
.cursor--image .cursor__image div {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.cursor--other .cursor__ball--big svg circle {
  fill-opacity: 1;
  fill: #dafba1;
  stroke: #dafba1;
}

@media only screen and (min-width: 1024px) {
  .cursors__introduction {
    width: 33.33333%;
    margin-right: 16.66666%;
  }
  .cursors__content {
    width: 50%;
  }
}
.preloader {
  position: absolute;
  top: 0px;
  left: 0px;
  height: 100vh;
  width: 100%;
  z-index: 11111;
}
.preloader__container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  position: relative;
  height: 100%;
  width: 100%;
  padding: 0 15%;
  background-color: #1f1f1f;
}

.balados .slider-container .flickity-viewport {
  overflow: visible !important;
}

.overlay-slider {
  position: absolute;
  width: 300px;
  height: 100%;
  right: -50px;
  z-index: 10;
  pointer-events: none;
  background: -webkit-gradient(linear, left top, right top, color-stop(20%, transparent), to(#7166ff));
  background: linear-gradient(to right, transparent 20%, #7166ff);
}

/* ✅ le viewport Flickity doit suivre la hauteur du parent (ton h-[55px] / lg:h-[90px]) */
.banner_pub.flickity-enabled .flickity-viewport {
  height: 100% !important;
}

.banner_pub.flickity-enabled .flickity-slider {
  height: 100%;
}

.banner_pub.flickity-enabled .flickity-slider > * {
  height: 100%;
}

/* ========================================================================== */
/* TEMPLATES - Home */
/* ========================================================================== */
/* HERO BANNER */
/* ✅ Responsive + marquee loop gauche/droite OK (sans casser var(--dur)) */
/* ✅ BASE = ton rendu actuel (identique) */
.hero {
  --h: clamp(72px, 8.5vw, 125px);
  --circle: var(--h);
  --gap: clamp(18px, 4.5vw, 60px);
  --overlap: var(--circle);
  --glass-w: clamp(260px, 38vw, 560px);
  --right-w: clamp(280px, 44vw, 640px);
  --pre-w: clamp(170px, 26vw, 360px);
  --bubble-font: clamp(34px, 5.2vw, 70px);
  --bubble-pad-x: clamp(22px, 4.2vw, 56px);
  --tail-w: calc(var(--h) * 1.76);
  --tail-h: calc(var(--h) * 0.64);
  --tail-x: calc(var(--h) * 0.72);
  --bg: #5f5cff;
}

/* ✅ SCALE “short screens” (Firefox OK) */
@media (min-width: 1024px) {
  .hero {
    /* cap height par la hauteur du viewport (ajuste 12vh si tu veux) */
    --h: min(clamp(72px, 8.5vw, 125px), 12vh);
    --circle: var(--h);
    /* on cap le reste par des ratios liés à --h (garde le même rendu) */
    --gap: min(clamp(18px, 4.5vw, 60px), calc(var(--h) * 0.48));
    --pre-w: min(clamp(170px, 26vw, 360px), calc(var(--h) * 2.88));
    --glass-w: min(clamp(260px, 38vw, 560px), calc(var(--h) * 4.48));
    --right-w: min(clamp(280px, 44vw, 640px), calc(var(--h) * 5.12));
    --bubble-font: min(clamp(34px, 5.2vw, 70px), calc(var(--h) * 0.56));
    --bubble-pad-x: min(clamp(22px, 4.2vw, 56px), calc(var(--h) * 0.45));
  }
}
/* ✅ Décalage de vitesse entre les 3 lignes (plus organique) */
.hero .marquee:nth-of-type(1) {
  --dur: 22s;
}

/* top */
.hero .marquee:nth-of-type(2) {
  --dur: 25s;
}

/* middle */
.hero .marquee:nth-of-type(3) {
  --dur: 30s;
}

/* bottom */
@media (max-width: 1024px) {
  .hero .marquee:nth-of-type(1) {
    --dur: 30s;
  }

  .hero .marquee:nth-of-type(2) {
    --dur: 22s;
  }

  .hero .marquee:nth-of-type(3) {
    --dur: 25s;
  }
}
@media (max-width: 640px) {
  .hero .marquee:nth-of-type(1) {
    --dur: 30s;
  }

  .hero .marquee:nth-of-type(2) {
    --dur: 20s;
  }

  .hero .marquee:nth-of-type(3) {
    --dur: 25s;
  }
}
.bg-hero-banner {
  background-image: url("../../src/img/Texture.png");
  background-size: contain;
  mix-blend-mode: soft-light;
  pointer-events: none;
  opacity: 0.4;
}

.hero-banner {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(70%, #6759f9), to(#0c00ff));
  background: linear-gradient(to bottom, #6759f9 70%, #0c00ff);
}

.mock-wrap {
  padding: clamp(14px, 2.2vw, 30px) clamp(12px, 1.8vw, 24px);
}

.mock-row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: var(--gap);
}

/* Chaque ligne devient une "couche" */
.hero .marquee {
  position: relative;
  overflow: visible;
  /* important si tu veux que les queues dépassent */
}

/* Ordre des lignes */
.hero .marquee:nth-of-type(1) {
  z-index: 30;
}

.hero .marquee:nth-of-type(2) {
  z-index: 20;
}

.hero .marquee:nth-of-type(3) {
  z-index: 10;
}

/* ------------------ ✅ NOUVEL ELEMENT (PILL VERRE) ------------------ */
.pre {
  height: var(--h);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.pre__glass {
  height: var(--h);
  width: var(--pre-w);
  border-radius: 9999px;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(62%, rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.1))), -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.25)), color-stop(45%, rgba(255, 255, 255, 0.45)), color-stop(75%, rgba(255, 255, 255, 0.5)), to(rgba(255, 255, 255, 0.6))), radial-gradient(220px 220px at 92% 45%, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0) 100%);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 62%, rgba(255, 255, 255, 0.1) 100%), linear-gradient(90deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.45) 45%, rgba(255, 255, 255, 0.5) 75%, rgba(255, 255, 255, 0.6) 100%), radial-gradient(220px 220px at 92% 45%, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0) 100%);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.pre__glass,
.mid__glass {
  -webkit-backface-visibility: hidden;
  isolation: isolate;
}

/* ------------------ BULLE ------------------ */
.bubble {
  height: var(--h);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 var(--bubble-pad-x);
  border-radius: 9999px;
  position: relative;
  background: transparent;
  z-index: 10;
  isolation: isolate;
}

/* Fond bulle */
.bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  background: #fff;
  z-index: 1;
}

/* Texte */
.bubble > span {
  position: relative;
  z-index: 2;
  font-weight: 400;
  font-size: var(--bubble-font);
  letter-spacing: -0.03em;
  line-height: 1;
  color: #000;
  white-space: nowrap;
}

/* Queue SVG (responsive) */
.bubble::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: calc(var(--h) * -0.5);
  width: var(--tail-w);
  height: var(--tail-h);
  -webkit-transform: translateX(var(--tail-x));
          transform: translateX(var(--tail-x));
  background: #fff;
  z-index: 0;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 100% 100%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20276.56%20172.56%27%3E%3Cpath%20d%3D%27M0%2C0v114.93c0%2C49.52%2C58.82%2C75.89%2C96.2%2C43.13L276.56%2C0H0Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20276.56%20172.56%27%3E%3Cpath%20d%3D%27M0%2C0v114.93c0%2C49.52%2C58.82%2C75.89%2C96.2%2C43.13L276.56%2C0H0Z%27%20fill%3D%27%23000%27/%3E%3C/svg%3E");
}

/* ------------------ MILIEU ------------------ */
.mid {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  height: var(--h);
  position: relative;
}

.mid__circle {
  width: var(--circle);
  height: var(--circle);
  border-radius: 50%;
  background: #fff;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  position: relative;
  z-index: 2;
  -webkit-animation: toggleCircle 10s cubic-bezier(0.22, 1, 0.36, 1) infinite;
          animation: toggleCircle 10s cubic-bezier(0.22, 1, 0.36, 1) infinite;
  will-change: transform;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

/* Décalage “random” (3s entre eux) */
.hero .marquee:nth-of-type(1) .mock-wrap .mid__circle {
  -webkit-animation-delay: -2s;
          animation-delay: -2s;
}

.hero .marquee:nth-of-type(2) .mock-wrap .mid__circle {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}

.hero .marquee:nth-of-type(3) .mock-wrap .mid__circle {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}

@-webkit-keyframes toggleCircle {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-animation-timing-function: steps(1, end);
            animation-timing-function: steps(1, end);
  }
  45% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
            animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }
  50% {
    -webkit-transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
            transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
    -webkit-animation-timing-function: steps(1, end);
            animation-timing-function: steps(1, end);
  }
  95% {
    -webkit-transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
            transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
            animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}

@keyframes toggleCircle {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-animation-timing-function: steps(1, end);
            animation-timing-function: steps(1, end);
  }
  45% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
            animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }
  50% {
    -webkit-transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
            transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
    -webkit-animation-timing-function: steps(1, end);
            animation-timing-function: steps(1, end);
  }
  95% {
    -webkit-transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
            transform: translate3d(calc(var(--glass-w) - var(--circle)), 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
            animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
.mid__glass {
  height: var(--circle);
  width: var(--glass-w);
  border-radius: 9999px;
  margin-left: calc(var(--overlap) * -1);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(62%, rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.1))), -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0.7)), color-stop(42%, rgba(255, 255, 255, 0.5)), color-stop(72%, rgba(255, 255, 255, 0.3)), to(rgba(255, 255, 255, 0)));
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 62%, rgba(255, 255, 255, 0.1) 100%), linear-gradient(90deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.5) 42%, rgba(255, 255, 255, 0.3) 72%, rgba(255, 255, 255, 0) 100%);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  -webkit-mask-image: -webkit-gradient(linear, left top, right top, from(#000), color-stop(30%, #000), color-stop(50%, rgba(0, 0, 0, 0.65)), to(transparent));
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 30%, rgba(0, 0, 0, 0.65) 50%, transparent 100%);
  mask-image: -webkit-gradient(linear, left top, right top, from(#000), color-stop(30%, #000), color-stop(50%, rgba(0, 0, 0, 0.65)), to(transparent));
  mask-image: linear-gradient(90deg, #000 0%, #000 30%, rgba(0, 0, 0, 0.65) 50%, transparent 100%);
  position: relative;
}

.mid__glass::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(70%, transparent), to(var(--bg)));
  background: linear-gradient(90deg, transparent 0%, transparent 70%, var(--bg) 100%);
  opacity: 0.25;
}

/* ------------------ PILULE DROITE ------------------ */
.right-pill {
  height: var(--h);
  width: var(--right-w);
  border-radius: 9999px;
  background: #fff;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

/* --- Marquee container --- */
.marquee {
  width: 100%;
  --dur: 22s;
  /* ✅ valeur valide => animation OK */
  --offset: 0px;
}

/* Track = 2x le contenu (dupliqué) */
.marquee__track {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  gap: 0;
  will-change: transform;
  -webkit-transform: translate3d(var(--offset), 0, 0);
          transform: translate3d(var(--offset), 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-perspective: 1000px;
          perspective: 1000px;
}

/* Important: chaque "bloc" doit garder sa largeur */
.marquee__track > * {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

/* Animation gauche */
.marquee--left .marquee__track {
  -webkit-animation: marquee-left var(--dur) linear infinite;
          animation: marquee-left var(--dur) linear infinite;
}

/* Animation droite */
.marquee--right .marquee__track {
  -webkit-animation: marquee-right var(--dur) linear infinite;
          animation: marquee-right var(--dur) linear infinite;
}

/* JS prend le contrôle (smooth, sans glitch) */
.marquee.is-js .marquee__track {
  -webkit-animation: none !important;
          animation: none !important;
  will-change: transform;
  -webkit-transform: translate3d(var(--x, 0px), 0, 0);
          transform: translate3d(var(--x, 0px), 0, 0);
}

/* Responsive vitesse (safe) */
@media (max-width: 1024px) {
  .marquee {
    --dur: 18s;
  }
}
@media (max-width: 640px) {
  .marquee {
    --dur: 14s;
  }
}
/* Défilement */
@-webkit-keyframes marquee-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@keyframes marquee-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@-webkit-keyframes marquee-right {
  from {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes marquee-right {
  from {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  to {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* Accessibilité */
@media (prefers-reduced-motion: reduce) {
  .marquee__track {
    -webkit-animation: none !important;
            animation: none !important;
    -webkit-transform: translateX(0) !important;
            transform: translateX(0) !important;
  }
}
/* le parent qui porte l'image bulle en background */
.cta-bubble {
  position: relative;
  /* ✅ garde les proportions de ta bulle */
  aspect-ratio: 742/811;
  /* ✅ background image (bulle) */
  background-image: url("../../src/img/bulle-cta.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  /* ton overlap comme avant */
  margin-top: -11rem;
  /* ~ -mt-44 */
}

@media (min-width: 1024px) {
  .cta-bubble {
    margin-top: 5rem;
    /* ~ lg:mt-20 */
    margin-left: -2.5rem;
    /* ~ lg:-ml-10 */
  }
}
@media (min-width: 1280px) {
  .cta-bubble {
    margin-left: -5rem;
    /* ~ xl:-ml-20 */
  }
}
/* ✅ conteneur contenu centré DANS la bulle */
.cta-bubble__content {
  height: 100%;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  /* ✅ centre vertical */
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  /* ✅ centre horizontal */
}

/* ✅ bloc interne: limite largeur + padding "safe" pour ne pas toucher les bords */
.cta-bubble__row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 2rem;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  /* si ça déborde en petit */
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}

/* texte */
.cta-bubble__text {
  margin: 0;
  color: #fff;
  line-height: 1;
}

/* bouton */
.cta-bubble__btn {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  white-space: nowrap;
  /* ✅ pas de retour Devenir / membre */
  margin-top: 0.15em;
  /* petit align visuel */
}

/* si tu veux qu'en mobile il passe dessous proprement */
@media (max-width: 640px) {
  .cta-bubble__row {
    width: 82%;
    gap: 1.2rem;
  }
}
/* =========================================================
   HERO INTRO SEQUENCE (FIX)
   ========================================================= */
/* blur TOUJOURS présent (0px par défaut) => pas de switch "none" => moins de glitch */
.hero {
  --spin-blur: 0px;
}

.marquee__track {
  -webkit-filter: blur(var(--spin-blur));
          filter: blur(var(--spin-blur));
  will-change: transform, filter;
  -webkit-transform: translate3d(var(--x, 0px), 0, 0);
          transform: translate3d(var(--x, 0px), 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/* stabilité GPU pour les éléments "glass" */
.pre__glass,
.mid__glass {
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform, filter;
}

@-webkit-keyframes word-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.55em);
            transform: translateY(0.55em);
    -webkit-filter: blur(8px);
            filter: blur(8px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}

@keyframes word-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(0.55em);
            transform: translateY(0.55em);
    -webkit-filter: blur(8px);
            filter: blur(8px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    -webkit-filter: blur(0);
            filter: blur(0);
  }
}
/* Stage = wrapper qui va “rétrécir/agrandir” via padding */
.sticky-grow-stage {
  position: relative;
}

/* On anime le padding uniquement en desktop (xl) */
.sticky-grow-stage {
  padding-left: var(--grow-pad);
  padding-right: var(--grow-pad);
  will-change: padding;
}

/* Carte sticky (ton bloc blanc/noir) */
.sticky-grow-stage [data-grow-card] {
  will-change: border-radius;
}

/* carte grow */
[data-grow-card] {
  will-change: border-radius, transform, filter;
  -webkit-transform-origin: top center;
          transform-origin: top center;
}

/* 👉 l'élément que tu veux flouter (cible stable) */
[data-grow-card] .grow-blur {
  will-change: filter;
  -webkit-transition: -webkit-filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 800ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-filter: blur(0px);
          filter: blur(0px);
}

/* effet "derrière" pour la blanche */
[data-grow-card].is-behind {
  -webkit-transition: -webkit-transform 500ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 500ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 500ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 500ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), filter 500ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), filter 500ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 500ms cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 500ms cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-transform: scale(var(--behind-scale, 1));
          transform: scale(var(--behind-scale, 1));
  -webkit-filter: brightness(var(--behind-brightness, 1));
          filter: brightness(var(--behind-brightness, 1));
  /* 	& .grow-blur {
  	filter: blur(3px);
  } */
}

/* overlay sombre (plus beau que juste brightness) */
[data-grow-card].is-behind::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: rgba(0, 0, 0, var(--behind-overlay, 0));
}

@supports (-moz-appearance: none) {
  .hero .marquee__track {
    -webkit-filter: none !important;
            filter: none !important;
  }
}
.page-template-tp-privacy-policy h2,
.page-template-tp-privacy-policy h3,
.page-template-tp-privacy-policy h4,
.page-template-tp-privacy-policy h5,
.page-template-tp-privacy-policy h6 {
  margin: 2rem 0 1rem 0;
}

/* =========================
   DIRECTORY DROPDOWN BUTTON
   ========================= */
/* Icône + / - (utilise <span class="toggle-icon"></span>) */
.js-dropdown-toggle .toggle-icon {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
}

.js-dropdown-toggle .toggle-icon::before,
.js-dropdown-toggle .toggle-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 2px;
  background: #000;
  /* noir par défaut */
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  border-radius: 999px;
  -webkit-transition: opacity 220ms ease, background-color 220ms ease, -webkit-transform 220ms ease;
  transition: opacity 220ms ease, background-color 220ms ease, -webkit-transform 220ms ease;
  transition: opacity 220ms ease, background-color 220ms ease, transform 220ms ease;
  transition: opacity 220ms ease, background-color 220ms ease, transform 220ms ease, -webkit-transform 220ms ease;
}

/* barre verticale du + */
.js-dropdown-toggle .toggle-icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(90deg);
          transform: translate(-50%, -50%) rotate(90deg);
}

/* état ouvert : bouton noir + icône "-" blanc (donc on cache la barre verticale) */
.js-dropdown-toggle[aria-expanded=true] {
  background: #000 !important;
}

.js-dropdown-toggle[aria-expanded=true] .toggle-icon::before,
.js-dropdown-toggle[aria-expanded=true] .toggle-icon::after {
  background: #fff;
}

.js-dropdown-toggle[aria-expanded=true] .toggle-icon::after {
  opacity: 0;
  /* devient un "-" */
}

/* =========================
   DIRECTORY DROPDOWN CONTENT
   ========================= */
/* animation smooth de hauteur */
.module-dropdown__content {
  height: 0;
  overflow: hidden;
  -webkit-transition: height 520ms cubic-bezier(0.22, 1, 0.36, 1);
  transition: height 520ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: height;
}

.styleguide {
  background-color: #f1ebe5;
}
.styleguide__container, .styleguide__title-container, .styleguide__list-container, .styleguide__text-container {
  padding: 1em 15px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 2em;
  padding-bottom: 2em;
}
@media only screen and (min-width: 600px) {
  .styleguide__container, .styleguide__title-container, .styleguide__list-container, .styleguide__text-container {
    padding: 1em 30px;
  }
}
@media only screen and (min-width: 1024px) {
  .styleguide__container, .styleguide__title-container, .styleguide__list-container, .styleguide__text-container {
    margin-left: auto;
    margin-right: auto;
    padding: 1em 50px;
    max-width: none;
  }
}
.styleguide__container--black, .styleguide__title-container--black, .styleguide__list-container--black, .styleguide__text-container--black {
  background-color: #1f1f1f;
}
.styleguide__container--green, .styleguide__title-container--green, .styleguide__list-container--green, .styleguide__text-container--green {
  background-color: #707070;
}
.styleguide__name {
  color: #1f1f1f;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #f1ebe5;
}
.styleguide__intro {
  color: #f1ebe5;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #f1ebe5;
}
.styleguide__wysiwyg-title {
  color: #1f1f1f;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #f1ebe5;
}

@media print {
  @page {
    size: portrait;
  }
  *,
*::before,
*::after {
    color: #000 !important;
  }

  body {
    max-width: 670px;
  }

  html {
    font-size: 10px !important;
  }
}
.wolfpack-container {
  position: relative;
  z-index: 2;
}

[data-wolfpack] {
  pointer-events: all;
}

[data-wolfpack-section] {
  opacity: 0;
  pointer-events: none;
  position: relative;
  z-index: 1;
}

body {
  -webkit-transition: background-color 0.7s ease;
  transition: background-color 0.7s ease;
}
body.dragging {
  cursor: -webkit-grabbing;
  cursor: grabbing;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
body.dragging [data-wolfpack] {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.scroll-content {
  overflow: hidden !important;
}

[data-scrollbar] {
  pointer-events: all;
  width: 10px;
  height: 100%;
  position: absolute;
  z-index: 111;
  top: 0px;
  right: 0px;
  background-color: transparent;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
[data-scrollbar]:hover {
  opacity: 1;
}
[data-scrollbar].scrollbar--show {
  opacity: 1;
}
[data-scrollbar].scrollbar--show :hover {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

[data-scrollbar-thumb] {
  width: 8px;
  height: 100px;
  margin-right: 0 2px;
  position: absolute;
  top: 0px;
  left: 0px;
  cursor: -webkit-grab;
  cursor: grab;
  opacity: 0.5;
  background-color: #000;
  border-radius: 150px;
}

[data-marquee-container] {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  overflow: hidden;
}

[data-marquee-content] {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  white-space: nowrap;
  -webkit-animation: marquee linear infinite running;
          animation: marquee linear infinite running;
}

@-webkit-keyframes marquee {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translate(-100%);
            transform: translate(-100%);
  }
}

@keyframes marquee {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translate(-100%);
            transform: translate(-100%);
  }
}
[data-stay] {
  position: absolute;
}

[data-cursor-container] {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  opacity: 1;
  pointer-events: none;
}

[data-cursor-pointer] {
  -webkit-transform: translate(0px, 0px);
          transform: translate(0px, 0px);
  position: fixed;
  z-index: 111;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
[data-cursor-pointer] svg {
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}

[data-cursor] {
  cursor: none;
}

@media only screen and (max-width: 1024px) {
  html,
body {
    cursor: auto;
  }

  [data-cursor-container] {
    display: none;
  }

  [data-scrollbar] {
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
[data-separate-characters] {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
[data-separate-characters] .separate-character__letter {
  display: inline-block;
}

[data-separate-words] {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
}
[data-separate-words] .separate-words__word {
  display: inline-block;
}

[data-form] input,
[data-form] textarea,
[data-form] select,
[data-form] label {
  cursor: none;
}

/*! Flickity v2.2.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled {
  position: relative;
}

.flickity-enabled:focus {
  outline: none;
}

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%;
}

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
}

/* draggable */
.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab;
}

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}

/* ---- flickity-button ---- */
.flickity-button {
  position: absolute;
  background: rgba(255, 255, 255, 0.75);
  border: none;
  color: #333;
}

.flickity-button:hover {
  background: white;
  cursor: pointer;
}

.flickity-button:focus {
  outline: none;
  -webkit-box-shadow: 0 0 0 5px #19F;
          box-shadow: 0 0 0 5px #19F;
}

.flickity-button:active {
  opacity: 0.6;
}

.flickity-button:disabled {
  opacity: 0.3;
  cursor: auto;
  /* prevent disabled button from capturing pointer up event. #716 */
  pointer-events: none;
}

.flickity-button-icon {
  fill: currentColor;
}

/* ---- previous/next buttons ---- */
.flickity-prev-next-button {
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  /* vertically center */
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.flickity-prev-next-button.previous {
  left: 10px;
}

.flickity-prev-next-button.next {
  right: 10px;
}

/* right to left */
.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px;
}

.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px;
}

.flickity-prev-next-button .flickity-button-icon {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%;
}

/* ---- page dots ---- */
.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1;
}

.flickity-rtl .flickity-page-dots {
  direction: rtl;
}

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  opacity: 0.25;
  cursor: pointer;
}

.flickity-page-dots .dot.is-selected {
  opacity: 1;
}

.height-calc {
  height: 100vh;
}

body {
  overflow-x: hidden;
}

[data-hover-reveal] {
  position: relative;
  overflow: hidden;
}

[data-hover-reveal] img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.lightbox-slider {
  display: none;
}

.lightbox-slider--active {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
}
.lightbox-slider--active [data-lightbox-wrapper] {
  pointer-events: auto;
}
/*# sourceMappingURL=main.css.map */
