:root {
  --master-violet: #290b58;
  --light-violet: #9278bc;
  --master-white: #fffefb;
  --master-green: #007642;
  --master-red: #c7002a;
  --cta-blue: #b5e9ff;

  --bg-yellow: #fff4d4;
  --emphase-green: #beef9e;
  --accent-yellow: #f4e04d;
}

/* fustat-300 - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/fustat-v3-latin-300.woff2") format("woff2");
}

/* fustat-regular - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/fustat-v3-latin-regular.woff2") format("woff2");
}

/* fustat-500 - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/fustat-v3-latin-500.woff2") format("woff2");
}

/* fustat-600 - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/fustat-v3-latin-600.woff2") format("woff2");
}

/* fustat-700 - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/fustat-v3-latin-700.woff2") format("woff2");
}

/* fustat-800 - latin */
@font-face {
  font-display: swap;
  font-family: "Fustat";
  font-style: normal;
  font-weight: 800;
  src: url("../fonts/fustat-v3-latin-800.woff2") format("woff2");
}

:focus,
a:focus,
button:focus {
  outline: 2px solid var(--master-red);
  outline-offset: 0.3rem;
}
h1 {
  font-size: 4.6rem;
  font-family: "Fustat", sans-serif;
  line-height: normal;
  font-weight: 700;
  margin-bottom: 0;
  line-height: normal;
}

h2,
h3 {
  font-family: "Fustat", sans-serif;
  line-height: normal;
  font-weight: 700;
  margin-bottom: 0.65em;
}

a {
  color: currentColor;
  text-decoration: underline;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
a:hover,
a:visited {
  color: currentColor;
  text-decoration: none;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.site-content a {
  color: currentColor;
  text-decoration: underline;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.site-content a:hover {
  color: currentColor;
  text-decoration: none;
  background-color: #fff5ac;
  border-radius: 3px;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.cta-inscription a:hover {
  background-color: transparent !important;
  color: var(--cta-blue);
  text-decoration: underline;
}
/* Remove focus for mouse users fonction expérimentale*/
:focus:not(:focus-visible) {
  outline: none !important;
}

::-moz-selection {
  color: var(--master-violet);
  background-color: var(--accent-yellow);
}

::selection {
  color: var(--master-violet);
  background-color: var(--accent-yellow);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body {
  font-family: "Fustat", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.875;
  color: var(--master-violet);
  background: var(--master-white);
  background-image: url("../img/circle-blue-light.svg"),
    url("../img/circle-blue.svg"), url("../img/circle-blue-light.svg");
  background-position: -338px center, center -400px, 120% 40%;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-size: 538px auto, 538px auto, 538px auto;
}
body.home {
  background-image: none;
}
.wrapper {
  position: relative;
}

/*************Evitement**********/
#evitement {
  list-style: none;
  margin: 0px;
  padding: 0px;
}

#evitement a {
  position: absolute;
  z-index: 100000;
  left: -999999px;
}

#evitement a:focus {
  position: static;
  left: 0px;
  display: inline-block;
  padding: 10px;
  background-color: var(--master-violet);
  color: var(--master-white);
  border: 1px solid var(--accent-yellow);
  font-size: 1.6rem;
  font-weight: bold;
}
#backToTop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1000;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
#backToTop:hover {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

@media (max-width: 768px) {
  #backToTop {
    position: relative;
    margin: 64px auto 32px auto;
  }
}
.header {
  display: grid;
  grid-template-columns: 1fr auto; /* Les deux colonnes prennent une part égale */
  grid-template-rows: auto;
  grid-template-areas: "first second";
  gap: 1rem;
  position: relative;
  padding: 2%;
}
.header-nav {
  width: 100%;
  display: flex;
  align-items: center;

  grid-area: first;
  padding-right: 8rem;
}
.header-wrapper-tools {
  display: grid;

  grid-area: second;
  justify-self: stretch; /* S'étend sur toute la largeur de sa cellule */
}
@media (min-width: 1421px) and (max-width: 2012px) {
  .header {
    grid-template-columns: auto auto; /* Les deux colonnes prennent une part égale */
  }
}
@media (min-width: 1023px) and (max-width: 1462px) {
  .header {
    grid-template-columns: auto auto; /* Les deux colonnes prennent une part égale */
  }
  .header-nav-menu > li > button,
  .header-nav-menu > li > a {
    font-size: 1.8rem !important;
    line-height: normal;
  }
}
/* Mobile (par exemple, smartphones) */
@media only screen and (max-width: 1024px) {
  .header {
    grid-template-columns: 1fr; /* Une seule colonne en mobile */
    grid-template-rows: auto auto;
    grid-template-areas:
      "second"
      "first"; /* Inversion des rangées */
  }

  .header-nav-menu > li > button,
  .header-nav-menu > li > a {
    font-size: 1.8rem !important;
    line-height: normal;
  }
  .header-nav-menu {
    gap: 4px;
  }
  .header-wrapper-tools {
    grid-template-columns: 1fr auto;
    justify-content: end;
    gap: 2rem;
  }
  .header-cta-links {
    justify-self: end;
  }
}

.header-nav-logo {
  flex: 0 0 auto;
  padding: 8px 16px;
}
.header-nav-logo a {
  display: block;
}
.header-nav-logo a img {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.header-nav-logo a:hover img,
.header-nav-logo a:focus img {
  width: 102%;
  height: auto;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

/* Base du menu */
.header-nav-menu {
  list-style: none;
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: flex-end;
  margin-left: 64px !important;
}

/* Boutons principaux */
.header-nav-menu > li > button,
.header-nav-menu > li > a {
  display: block;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--master-violet);
  font-size: 2rem;
  font-weight: 500;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  z-index: 1;
}
.header-nav-menu > li > button {
  padding: 8px 24px 8px 16px;
}
.header-nav-menu > li > a {
  padding: 8px 16px;
}

/*
.header-nav-menu > li.le-cercle button {
  min-width: 200px;
}
.header-nav-menu > li.sports button {
  min-width: 200px;
}*/

.header-nav-menu > li:hover > button,
.header-nav-menu > li:hover > a,
.header-nav-menu > li > button:hover,
.header-nav-menu > li > a:hover,
.header-nav-menu > li > button:focus,
.header-nav-menu > li > a:focus,
.header-nav-menu > li.current-menu-parent > button,
.header-nav-menu > li.current-menu-parent > a,
.header-nav-menu > li.current-menu-item > button,
.header-nav-menu > li.current-menu-item > a,
.header-nav-menu > li.current-page-ancestor > button,
.header-nav-menu > li.current-page-ancestor > a {
  color: var(--cta-blue);
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

.header-nav-menu > li > button::before,
.header-nav-menu > li > a::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--master-violet);
  -webkit-transform: scaleY(0);
  transform: scaleY(0);
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition-property: transform;
  transition-property: transform;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  border-radius: 8px;
}
.header-nav-menu > li:hover > button::before,
.header-nav-menu > li:hover > a::before,
.header-nav-menu > li > button:hover::before,
.header-nav-menu > li > button:focus::before,
.header-nav-menu > li > button:active::before,
.header-nav-menu > li > a:hover::before,
.header-nav-menu > li > a:focus::before,
.header-nav-menu > li > a:active:before,
.header-nav-menu > li.current-menu-parent > button::before,
.header-nav-menu > li.current-menu-parent > a::before,
.header-nav-menu > li.current-menu-item > button::before,
.header-nav-menu > li.current-menu-item > a::before,
.header-nav-menu > li.current-page-ancestor > button::before,
.header-nav-menu > li.current-page-ancestor > a::before {
  -webkit-transform: scaleY(1);
  transform: scaleY(1);
}

/* Sous-menus */
.main-submenu {
  position: absolute;
  min-width: 220px;
  display: none; /* Affichage par hover/focus en desktop */
}
@media (min-width: 1024px) {
  /* Mega-menu 1 colonne pour li.mon-item */
  .header-nav-menu li.mon-item > ul.main-submenu {
    left: 50%;
    transform: translateX(-50%);
    width: clamp(340px, 30vw, 520px);
    padding: 12px 16px;
    border-radius: 10px;
    background-color: var(--master-violet);
    max-height: none;
    overflow: visible;
  }

  /* Ouverture en une colonne */
  .header-nav-menu li.mon-item:hover > ul.main-submenu,
  .header-nav-menu li.mon-item:focus-within > ul.main-submenu,
  .header-nav-menu
    li.mon-item
    > button[aria-expanded="true"]
    + ul.main-submenu {
    display: block; /* ou flex si tu veux */
  }

  .header-nav-menu li.mon-item > ul.main-submenu > li {
    margin: 0;
    list-style: none;
  }
  .header-nav-menu li.mon-item > ul.main-submenu > li > a {
    display: block;
    padding: 0.5em 0.75em;
    color: var(--master-white);
    text-align: left;
    text-decoration: none;
    border-radius: 6px;
    transition: background-color 0.15s ease, color 0.15s ease,
      padding-left 0.15s ease;
    -webkit-transition: background-color 0.15s ease, color 0.15s ease,
      padding-left 0.15s ease;
  }
  .header-nav-menu li.mon-item > ul.main-submenu > li > a:hover,
  .header-nav-menu li.mon-item > ul.main-submenu > li > a:focus {
    color: var(--cta-blue);
    padding-left: 1.25em;
    background-color: rgba(255, 255, 255, 0.06);
    outline: none;
  }
}

.main-submenu a {
  display: block;
  padding: 0.5em 1em;
  text-decoration: none;
}

/* Affichage au survol/focus (optionnel) */
.header-nav-menu li:hover .main-submenu,
.header-nav-menu li:focus-within .main-submenu {
  display: block;
}

.main-submenu li a {
  display: block;
  padding: 0.5em 1em;
  text-decoration: none;
  font-weight: 700;
  color: var(--master-violet);
}
/* Bouton "Retour" masqué en desktop */
.main-submenu li.action {
  display: none;
}
.header-nav-menu li {
  position: relative;
}
.header-nav-menu li button[aria-haspopup="menu"]::after {
  position: absolute;
  top: 44%;
  right: 3px;
  content: "";
  display: inline-block;
  margin-left: 0.5em;
  width: 14px;
  height: 11px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M0.376451 0.357472C0.135409 0.586431 0 0.896923 0 1.22067C0 1.54442 0.135409 1.85491 0.376451 2.08387L4.49986 6L8.62327 2.08387C8.87464 1.84579 9 1.53323 9 1.22067C9 0.908112 8.87464 0.595553 8.62327 0.357472C8.38216 0.128583 8.05518 0 7.71425 0C7.37331 0 7.04633 0.128583 6.80522 0.357472L4.49986 2.54599L2.19451 0.357472C1.95339 0.128583 1.62641 0 1.28548 0C0.944543 0 0.617565 0.128583 0.376451 0.357472Z' fill='%23290B58'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease;
  transform-origin: center center;
  -webkit-transition: transform 0.3s ease;
  -webkit-transform-origin: center center;
}

/* Au hover, la flèche pivote vers le haut */
.header-nav-menu li button[aria-haspopup="menu"]:hover::after,
.header-nav-menu li button[aria-haspopup="menu"]:focus::after,
.header-nav-menu li button[aria-haspopup="menu"][aria-expanded="true"]::after,
.header-nav-menu li.current-menu-parent button[aria-haspopup="menu"]::after,
.header-nav-menu li.current-menu-item button[aria-haspopup="menu"]::after,
.header-nav-menu li.current-page-ancestor button[aria-haspopup="menu"]::after {
  transform: translateY(-25%) rotate(-90deg);
  -webkit-transform: translateY(-25%) rotate(-90deg);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M0.376451 0.357472C0.135409 0.586431 0 0.896923 0 1.22067C0 1.54442 0.135409 1.85491 0.376451 2.08387L4.49986 6L8.62327 2.08387C8.87464 1.84579 9 1.53323 9 1.22067C9 0.908112 8.87464 0.595553 8.62327 0.357472C8.38216 0.128583 8.05518 0 7.71425 0C7.37331 0 7.04633 0.128583 6.80522 0.357472L4.49986 2.54599L2.19451 0.357472C1.95339 0.128583 1.62641 0 1.28548 0C0.944543 0 0.617565 0.128583 0.376451 0.357472Z' fill='%23B5E9FF'/%3E%3C/svg%3E");
}
/* Sous-menus en desktop apparaissent au survol */
.header-nav-menu li ul {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  color: var(--master-white);
  padding: 0.5rem 0.1rem;
  display: none;
  border-radius: 8px;
  z-index: 20;
  list-style: none;
  background-color: var(--master-violet);
}
/* Pont qui occupe le vide entre le bouton et le sous-menu */
.header-nav-menu li::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 16px; /* la même valeur que l’écart souhaité */
  display: none; /* visible seulement quand ouvert */
  pointer-events: auto; /* reçoit le survol pour garder :hover */
}

/* Ouverture */
.header-nav-menu li:hover > ul,
.header-nav-menu li:focus-within > ul {
  display: block;
}
.header-nav-menu li:hover::after,
.header-nav-menu li:focus-within::after {
  display: block;
}

/* Sous-menu réellement détaché (vrai gap) */
.header-nav-menu li > ul {
  top: calc(100% + 16px);
  margin-top: 0;
}

/* Afficher le sous-menu au survol du li */
.header-nav-menu li:hover ul {
  display: block;
}

/* Le bouton "Retour" n'est pas visible en desktop */
.header-nav-menu li ul li.action {
  display: none;
}

.header-nav-menu li ul li a {
  position: relative;
  display: block;
  line-height: normal;
  color: var(--master-white);
  -webkit-transition: all 0.1 s ease-out;
  transition: all 0.1s ease-out;
}
.header-nav-menu li ul li a:hover,
.header-nav-menu li ul li a:focus {
  color: var(--cta-blue);
  padding-left: 24px;
  -webkit-transition: all 0.1s ease-out;
  transition: all 0.1s ease-out;
  background-color: rgba(255, 255, 255, 0.06);
}
.header-nav-menu li ul li a:hover::before,
.header-nav-menu li ul li a:focus::before,
.header-nav-menu li ul li.current-menu-item a::before,
.header-nav-menu li ul li.current-page-ancestor a::before {
  content: "";
  position: absolute;
  width: 10px;
  height: 9px;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
}
.header-nav-menu-toggle {
  display: none;
  flex: 0 0 auto;
}
/* ---------- Styles spécifiques pour Mobile ---------- */
@media (max-width: 768px) {
  .header-nav-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    background: var(--master-violet);
    overflow: hidden;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    -webkit-transform: translateX(-100%);
    -webkit-transition: transform 0.3s ease;
    z-index: 2000;
    margin-left: 0px !important;
  }
  .header-nav-menu.mobile-open {
    transform: translateX(0);
    -webkit-transform: translateX(0);
    padding-top: 44px;
  }
  .header-nav-menu > li {
    width: 100%;
    border-bottom: 1px solid var(--master-white);
    position: static;
  }
  .header-nav-menu > li > button,
  .header-nav-menu > li > a {
    font-size: 1.8rem;
    width: 100%;
    text-align: left;
    padding: 1rem;
    color: var(--master-white);
  }
  .header-nav-menu > li > button::before,
  .header-nav-menu > li > a::before {
    display: none;
  }
  .header-nav-menu li button[aria-haspopup="menu"]::after {
    top: 28%;
    right: 10%;
    transform: rotate(-90deg);
    width: 20px;
    height: 20px;
    background-size: 100% auto;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3l3 3 3-3' stroke='%23FFF2E3' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  /* Les sous-menus en mobile */
  .header-nav-menu .main-submenu {
    display: block;
    position: fixed;
    padding-top: 44px;
    top: 0;
    left: 100%;
    width: 100%;
    height: 100vh !important; /* Prend toute la hauteur du viewport */
    background: var(--master-violet);
    color: var(--master-white);
    transition: transform 0.3s ease;
    -webkit-transition: transform 0.3s ease;
    z-index: 4000;
  }
  .main-submenu {
    list-style: none;
  }
  .main-submenu li a {
    font-weight: 700;
    color: var(--master-white);
  }
  /* Par défaut, le sous-menu reste à sa position (hors écran) */
  .header-nav-menu .main-submenu:not(.active) {
    transform: translateX(100%);
    -webkit-transform: translateX(100%);
  }
  /* Quand un sous-menu est actif, il glisse pour occuper l'écran */
  .header-nav-menu .main-submenu.active {
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
  }
  /* Lorsqu'un sous-menu est ouvert, on glisse le menu principal vers la gauche */
  .header-nav-menu.slide-out > li.main-level {
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    -webkit-transform: translateX(-100%);
    -webkit-transition: transform 0.3s ease;
  }
  /* Affichage du bouton "Retour" dans les sous-menus */
  .main-submenu li.action {
    display: block !important;
    padding: 1rem;
    font-size: 1.8rem;
    color: var(--master-white);
  }
  .main-submenu li.action button {
    position: relative;
    width: 100%;
    background: none;
    border: none;
    font-size: inherit;
    color: inherit;
    padding-left: 42px;
    font-weight: 700;
    text-align: left;
  }
  .main-submenu li.action button::before {
    position: absolute;
    top: 30%;
    left: 0;
    content: "";
    display: inline-block;
    margin-left: 0.5em;
    width: 1.1em;
    height: 1.1em;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 3l3 3 3-3' stroke='%23FFF2E3' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: rotate(90deg);
    transition: transform 0.3s ease;
    transform-origin: center center;
    -webkit-transform: rotate(90deg);
    -webkit-transition: transform 0.3s ease;
    -webkit-transform-origin: center center;
  }

  /* -------- Bouton burger accessible -------- */
  /* Affiché uniquement en mobile */
  .header-nav-menu-toggle {
    display: block;
    /* Par défaut en position relative */
    position: absolute;
    top: 20px;
    left: 20px;
    width: 3rem;
    height: 3rem;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 3000;
    transition: all 0.3s ease;
    -webkit-transition: all 0.3s ease;
  }
  /* Lorsque le menu est ouvert, on passe en position absolue en haut à gauche */
  .header-nav-menu-toggle[aria-expanded="true"] {
    position: absolute;
    top: 1rem;
    left: 1rem;
  }
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger,
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger::before,
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger::after {
    content: "";
    display: block;
    background-color: var(--master-white);
    height: 3px;
    width: 100%;
    border-radius: 1px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    -webkit-transition: transform 0.3s ease, opacity 0.3s ease;
  }
  /* Stylisation du burger (les 3 lignes) */
  .header-nav-menu-toggle .hamburger,
  .header-nav-menu-toggle .hamburger::before,
  .header-nav-menu-toggle .hamburger::after {
    content: "";
    display: block;
    background-color: var(--master-violet);
    height: 3px;
    width: 100%;
    border-radius: 1px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    -webkit-transition: transform 0.3s ease, opacity 0.3s ease;
  }
  /* Ligne centrale */
  .header-nav-menu-toggle .hamburger {
    position: relative;
    top: 20%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
  }
  /* Lignes supérieure et inférieure */
  .header-nav-menu-toggle .hamburger::before,
  .header-nav-menu-toggle .hamburger::after {
    position: absolute;
    left: 0;
  }
  .header-nav-menu-toggle .hamburger::before {
    top: -8px;
  }
  .header-nav-menu-toggle .hamburger::after {
    top: 8px;
  }
  /* Transformation en croix quand le menu est ouvert */
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger {
    background-color: transparent;
  }
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger::before {
    transform: translateY(8px) rotate(45deg);
    -webkit-transform: translateY(8px) rotate(45deg);
  }
  .header-nav-menu-toggle[aria-expanded="true"] .hamburger::after {
    transform: translateY(-8px) rotate(-45deg);
    -webkit-transform: translateY(-8px) rotate(-45deg);
  }
  .header-nav-logo {
    width: 100%;
    text-align: center;
  }
}
/* --- Mega-menu 2 colonnes uniquement pour li.sports (desktop) --- */
@media (min-width: 1024px) {
  .header-nav-menu li.sports > ul.main-submenu {
    left: 50%;
    transform: translateX(-50%);
    width: clamp(420px, 38vw, 680px);
    padding: 12px 16px;
    border-radius: 10px;
    background-color: var(--master-violet);
    max-height: none;
    overflow: visible;
  }

  .header-nav-menu li.sports:hover > ul.main-submenu,
  .header-nav-menu li.sports:focus-within > ul.main-submenu,
  .header-nav-menu li.sports > button[aria-expanded="true"] + ul.main-submenu {
    display: grid;
    grid-template-columns: repeat(2, minmax(200px, 1fr));
    gap: 6px 18px;
  }

  .header-nav-menu li.sports > ul.main-submenu > li {
    margin: 0;
    list-style: none;
  }
  .header-nav-menu li.sports > ul.main-submenu > li > a {
    display: block;
    padding: 0.5em 0.75em;
    color: var(--master-white);
    text-align: left;
    text-decoration: none;
    border-radius: 6px;
    transition: background-color 0.15s ease, color 0.15s ease,
      padding-left 0.15s ease;
    -webkit-transition: background-color 0.15s ease, color 0.15s ease,
      padding-left 0.15s ease;
  }
  .header-nav-menu li.sports > ul.main-submenu > li > a:hover,
  .header-nav-menu li.sports > ul.main-submenu > li > a:focus,
  .header-nav-menu li.sports > ul.main-submenu > li.current-menu-item > a {
    color: var(--cta-blue);
    padding-left: 1.25em;
    background-color: rgba(255, 255, 255, 0.06);
  }
}

.header-tools {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: right;
}
.header-tools li {
  margin-right: 32px;
}
.header-tools li.bt-inscription a {
  position: relative;
  display: inline-block;
  padding: 4px 32px 4px 16px;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--master-white);
  text-decoration: none;
  border-radius: 8px;
  isolation: isolate;
  background: transparent;
  transition: color 0.3s ease-out;
  -webkit-transition: color 0.3s ease-out;
}

.header-tools li.bt-inscription a::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--master-violet);
  border-radius: inherit;
  transform-origin: left center;
  transform: scaleX(1);
  z-index: -1;
  transition: transform 0.3s ease-out, border-radius 0.3s ease-out;
  -webkit-transition: transform 0.3s ease-out, border-radius 0.3s ease-out;
}

.header-tools li.bt-inscription a:hover,
.header-tools li.bt-inscription a:focus {
  color: var(--cta-blue);
}

.header-tools li.bt-inscription a:hover::before,
.header-tools li.bt-inscription a:focus::before {
  transform: scaleX(1.1);
  border-radius: 24px;
  border-top-right-radius: 62px;
  border-bottom-right-radius: 62px;
}

/* Flèche */
.header-tools li.bt-inscription a::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 14px;
  height: 10px;
  right: 4px;
  top: 50%;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23FEFDF8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateY(-50%);
  transition: transform 0.3s ease-out;
  -webkit-transform: translateY(-50%);
  -webkit-transition: transform 0.3s ease-out;
}

.header-tools li.bt-inscription a:hover::after,
.header-tools li.bt-inscription a:focus::after {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23B5E9FF'/%3E%3C/svg%3E");
  transform: translateY(-50%) translateX(16px);
  -webkit-transform: translateY(-50%) translateX(16px);
}

.header-tools li.bt-search a svg {
  margin-top: 8px;
  fill: var(--master-violet);
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.header-tools li.bt-search a:hover svg,
.header-tools li.bt-search a:focus svg {
  transform: rotate(90deg);
  transform-origin: center center;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.header-tools li.bt-search a svg {
  stroke: var(--master-violet);
}
.bt-search {
  position: relative;
}

.header-search {
  display: none;
  position: absolute;
  top: 100%; /* Juste en dessous du bouton */
  right: 0;
  padding: 10px;
  z-index: 100;
  max-width: calc(100vw - 20px);
}

/* Classe pour afficher le formulaire au clic */
.header-search.visible {
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Styles internes du formulaire */
.header-search .search-field {
  flex: 1;
  padding: 5px;
  border: 1px solid var(--master-violet);
  border-radius: 3px;
}

.header-search .search-submit {
  padding: 5px 10px;
  border: none;
  background: var(--cta-blue);
  color: var(--master-beige);
  border-radius: 3px;
  cursor: pointer;
  font-weight: 700;
}

.header-search .close-search {
  background-color: var(--cta-blue);
  color: var(--master-violet);
  border: none;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  margin-left: auto;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.hero-home {
  position: relative;
  min-height: 600px;
  background-image: url("../img/circle.svg"), url("../img/circle.svg"),
    url("../img/circle.svg"),
    linear-gradient(
      180deg,
      rgba(206, 199, 245, 1) 0%,
      rgba(217, 223, 245, 1) 100%
    );
  background-position: -12% center, center -85%, 110% 30%, center;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-size: 586px auto, 586px auto, 586px auto, cover;
  border-bottom-right-radius: 148px;
  border-bottom-left-radius: 148px;
}
@media (max-width: 768px) {
  .hero-home {
    background-image: url("../img/circle.svg"), url("../img/circle.svg"), none,
      linear-gradient(
        180deg,
        rgba(206, 199, 245, 1) 0%,
        rgba(217, 223, 245, 1) 100%
      );
    background-position: -12% center, center -85%, 110% 30%, center;
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
    background-size: 586px auto, 586px auto, 586px auto, cover;
  }
}
@media (max-width: 420px) {
  .hero-home {
    background-image: url("../img/circle.svg"), url("../img/circle.svg"), none,
      linear-gradient(
        180deg,
        rgba(206, 199, 245, 1) 0%,
        rgba(217, 223, 245, 1) 100%
      );
    background-position: -12% center, center -85%, 110% 30%, center;
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
    background-size: 586px auto, 586px auto, 586px auto, cover;
    border-bottom-right-radius: 96px;
    border-bottom-left-radius: 96px;
  }
}
.wrap-section-hero {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: 1fr;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  padding: 0px 4% 168px 4%;
  min-height: 900px;
}
.wrap-section-hero .left-column {
  align-self: center;
}
.wrap-section-hero .left-column .new {
  font-size: 2rem;
  padding: 3px 8px;
  background-color: var(--emphase-green);
  display: inline-block;
  border-radius: 8px;
  margin-bottom: 32px;
}
.wrap-section-hero .left-column .slogan h1 {
  position: relative;
  font-size: 6rem;
  font-weight: 500;
  color: var(--master-violet);
  line-height: normal !important;
  margin: 16px 0px 0px 0px;
}
.wrap-section-hero .left-column .slogan h1::after {
  content: "";
  position: absolute;
  width: 117px;
  height: 61px;
  bottom: -16px;
  right: -10px;
  background: url("../img/perso-slogan.svg") 0 0 no-repeat;
  background-size: 100% auto;
}
.wrap-section-hero .left-column .dates {
  font-size: 2.2rem;
  margin-left: 8px;
}

.cta-violet-home {
  margin: 32px 0px;
}
.cta-violet-home a {
  position: relative;
  display: inline-block;
  padding: 4px 48px 4px 16px;
  font-size: 2.2rem;
  font-weight: 600;
  color: var(--master-white);
  text-decoration: none;
  border-radius: 8px;
  isolation: isolate;
  background: transparent;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
}

/* Calque de fond animé */
.cta-violet-home a::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--master-violet);
  border-radius: inherit;
  transform-origin: left center;
  transform: scaleX(1);
  z-index: -1;
  transition: transform 0.3s ease-out, border-radius 0.3s ease-out;
  -webkit-transition: transform 0.3s ease-out, border-radius 0.3s ease-out;
}

.cta-violet-home a:hover,
.cta-violet-home a:focus {
  color: var(--cta-blue);
}

.cta-violet-home a:hover::before,
.cta-violet-home a:focus::before {
  transform: scaleX(1.1);
  border-radius: 24px;
  border-top-right-radius: 62px;
  border-bottom-right-radius: 62px;
}

/* Flèche */
.cta-violet-home a::after {
  content: "";
  position: absolute;
  width: 20px;
  height: 15px;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: 1;
  transition: transform 0.3s ease-out, background-image 0.3s ease-out;
  -webkit-transition: transform 0.3s ease-out, background-image 0.3s ease-out;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23FEFDF8'/%3E%3C/svg%3E");
}

.cta-violet-home a:hover::after,
.cta-violet-home a:focus::after {
  transform: translateY(-50%) translateX(42px);
  -webkit-transform: translateY(-50%) translateX(42px);
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23B5E9FF'/%3E%3C/svg%3E");
}

.hero-home::before {
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  top: 64px;
  z-index: -1;
  position: absolute;
  background: var(--bg-yellow);
  -webkit-border-bottom-right-radius: 218px;
  -webkit-border-bottom-left-radius: 218px;

  border-bottom-right-radius: 218px;
  border-bottom-left-radius: 218px;
}
@media (max-width: 420px) {
  .hero-home::before {
    -webkit-border-bottom-right-radius: 166px;
    -webkit-border-bottom-left-radius: 166px;

    border-bottom-right-radius: 166px;
    border-bottom-left-radius: 166px;
  }
}
.cest-txt {
  position: absolute;
  bottom: -56px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  font-size: 2.4rem;
}
.dynamic-zone {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
  min-height: 500px;
  background: url(../img/cest-dynamic-zone.svg) center center no-repeat;
  padding: 64px;
}
@media (max-width: 768px) {
  .wrap-section-hero .right-column {
    display: none;
  }
  .cest-txt {
    position: relative;
  }
}

.image-pool,
.label-pool {
  display: none;
}

.floating-image,
.floating-label {
  position: absolute;
  opacity: 0;
  transform: scale(0.6);
  will-change: transform, opacity;
  transition: none;
}

.floating-image.show,
.floating-label.show {
  opacity: 1;
  transform: scale(1);
  -webkit-transform: scale(1);
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
  -webkit-transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.floating-image.hide,
.floating-label.hide {
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.6s ease-in, transform 0.6s ease-in;
}
.floating-image img {
  height: auto;
  width: auto;
  max-width: 180px;
  border-radius: 20px;
  display: block;
}

.floating-label {
  background-color: var(--accent-yellow);
  color: var(--master-violet);
  padding: 4px 8px;
  border-radius: 28px;

  font-size: 1.6rem;
  white-space: nowrap;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.toggle-button {
  position: absolute;
  bottom: 8rem;
  right: 20%;
  background: transparent;
  color: var(--master-violet);
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-size: 1.4rem;
  cursor: pointer;
  z-index: 10;
}
.toggle-button:hover {
  text-decoration: underline;
}
.toggle-button:focus {
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  .floating-image,
  .floating-label {
    transition: none !important;
    animation: none !important;
  }
}

@media screen and (min-width: 1400px) {
  .dynamic-zone {
    max-width: 1280px;
  }
}

.footer {
  background-color: var(--master-violet);
  color: var(--master-white);
  -webkit-border-top-left-radius: 148px;
  -webkit-border-top-right-radius: 148px;
  border-top-left-radius: 148px;
  border-top-right-radius: 148px;
  margin-top: 200px;
}
.wrapper-footer {
  padding: 64px 32px 32px 32px;
}
.top-footer {
  position: relative;
}

.top-footer a.logo-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -174px;
  width: 220px;
  height: 220px;
  background-color: var(--master-white);
  border-radius: 100%;
  text-align: center;
  padding: 16px;
}
.top-footer a.logo-footer img {
  width: 100%;
  height: auto;
}
.middle-footer {
  text-align: center;
}
.slogan-footer {
  position: relative;
  display: inline-block;
  text-align: center;
  font-size: 4rem;
  line-height: normal;
  font-weight: 800;
  margin: 96px auto 32px auto;
}
.slogan-footer::after {
  content: "";
  position: absolute;
  width: 96px;
  height: 50px;
  background: url("../img/perso-footer.svg") center center no-repeat;
  bottom: -20px;
  right: -58px;
}
@media (max-width: 768px) {
  .slogan-footer::after {
    right: auto;
  }
}
@media (max-width: 420px) {
  .slogan-footer::after {
    right: 0;
  }
}
.bottom-footer {
  text-align: center;
}

.regular-legal-footer {
  list-style: none;
}
.regular-legal-footer li {
  display: inline-block;
  margin: 0px 16px;
}
.regular-legal-footer li a {
  font-size: 1.8rem;
  text-decoration: none;
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  position: relative;
  overflow: hidden;
}
.regular-legal-footer li a::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 100%;
  bottom: 0;
  background: var(--master-white);
  height: 2px;
  -webkit-transition-property: right;
  transition-property: right;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.regular-legal-footer li a:hover::before,
.regular-legal-footer li a:focus::before,
.regular-legal-footer li a:active::before {
  right: 0;
}

.regular-legal-footer li.sf a {
  font-size: 0;
  color: transparent;
  width: 22px;
  height: 22px;
  background: url(../img/logo-sf.svg) center center no-repeat;
  background-size: 100% auto;
  margin-top: -4px;
}
.regular-legal-footer li.sf a::before {
  display: none;
}

.footer-contact {
  font-size: 1.6rem;
  margin-bottom: 64px;
  color: var(--master-white);
  text-align: center;
}

.footer-title {
  font-weight: 600;
  margin-bottom: 8px;
}

.footer-contact-grid {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  gap: 0 24px;
}

.footer-contact a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-contact a:hover,
.footer-contact a:focus {
  color: var(--cta-blue);
  text-decoration: underline;
}

@media (max-width: 600px) {
  .footer-contact-grid {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 8px;
  }
}

.partenaires {
  margin: 224px;
}
@media (max-width: 768px) {
  .partenaires {
    margin: 124px 32px;
  }
}
.partenaires h2 {
  font-size: 3.6rem;
  line-height: 4.2rem;
  font-weight: 700;
  text-align: center;
  margin: 16px auto 124px auto;
}
/* Carrousel logos — éco-minimal */
.logo-carousel {
  --gap: clamp(12px, 2vw, 24px);
  --visible: 4;
  overflow: hidden;
}
@media (max-width: 1024px) {
  .logo-carousel {
    --visible: 3;
  }
}
@media (max-width: 768px) {
  .logo-carousel {
    --visible: 2;
  }
}
@media (max-width: 480px) {
  .logo-carousel {
    --visible: 1;
  }
}

.lc {
  display: block;
}

.bloc-button {
  display: flex;
  justify-content: center;
  gap: 4rem;
  margin: 64px auto;
}
/* Boutons adoucis (pas disabled natif) */
.lc-btn {
  background: transparent;
  border: 0;
  display: grid;
  place-items: center;
}
.lc-btn svg {
  fill: var(--master-violet);
}
.lc-btn.is-inactive {
  opacity: 0.4;
  pointer-events: none;
} /* focusable via clavier, mais pas cliquable souris */
.lc-btn:focus {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* Masquer la barre de scroll mais garder le swipe */
.lc-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch; /* inertie iOS */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge legacy */
}
.lc-viewport::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.lc-viewport:focus {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.lc-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc(
    (100% - (var(--gap) * (var(--visible) - 1))) / var(--visible)
  );
  gap: var(--gap);
  margin: 0;
  padding: 0;
  list-style: none;
}

.lc-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.lc-slide img {
  max-height: 72px; /* ou la hauteur que tu veux */
  height: auto;
  object-fit: contain;
  display: block;
}

/* A11y */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Motion */
@media (prefers-reduced-motion: reduce) {
  .lc-viewport {
    scroll-behavior: auto;
  }
}

.container {
  max-width: 1280px;
  margin: 0 auto;
}
.container-content {
  max-width: 80%;
  margin: 0px auto;
}
@media (max-width: 768px) {
  .container-content {
    max-width: 100%;
    margin: 0px auto;
    padding: 0 16px;
  }
}
.cta-partenaires {
  text-align: center;
}
.cta-partenaires ul {
  list-style: none;
}
.cta-partenaires li {
  display: inline-block;
  margin: 32px 16px;
}

.cta {
  margin: 32px 0;
}

.cta a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 2vw, 16px);
  padding: clamp(8px, 1.2vw, 12px) clamp(14px, 2.4vw, 20px);
  font-size: 2.2rem;
  line-height: 1.2;
  text-decoration: none;
  min-height: 44px;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  border-radius: 8px;
  isolation: isolate;
  transition: transform 0.2s ease, background-color 0.2s ease;
  -webkit-transition: transform 0.2s ease, background-color 0.2s ease;
}
/* Si tu as une icône à gauche */
.cta a .icon {
  flex: 0 0 auto;
}
/* Le texte prend la place restante et wrap */
.cta a .label {
  flex: 1 1 auto;
}

/* Option : en très petit écran, bouton pleine largeur */
@media (max-width: 420px) {
  .cta a {
    display: flex;
    width: 100%;
  }
}
/* Couleurs spécifiques */
.cta-violet a {
  color: var(--master-white);
  background-color: var(--master-violet);
}
.cta-violet a:hover,
.cta-violet a:focus {
  color: var(--cta-blue);
  background-color: var(--master-violet);
}
.cta-blue a {
  color: var(--master-violet);
  background-color: var(--cta-blue);
}
.cta-blue a:hover,
.cta-blue a:focus {
  color: var(--cta-blue);
  background-color: var(--master-violet);
}
.cta-blue.border-blue a {
  border: 2px solid transparent;
}
.cta-blue.border-blue a:hover,
.cta-blue.border-blue a:focus {
  border: 2px solid var(--cta-blue);
}
.cta-white a {
  color: var(--master-violet);
  background-color: var(--master-white);
  border: 2px solid var(--cta-blue);
}
.cta-white a:hover,
.cta-white a:focus {
  color: var(--cta-blue);
  background-color: var(--master-violet);
  border: 2px solid transparent;
}
.cta-yellow a {
  color: var(--accent-yellow);
  background-color: var(--master-violet);
  border: 2px solid var(--accent-yellow);
}
.cta-yellow a:hover,
.cta-yellow a:focus {
  color: var(--cta-blue);
  background-color: var(--master-violet);
  border: 2px solid var(--cta-blue);
}
/* Effet au hover commun */
.cta a:hover,
.cta a:focus {
  border-radius: 24px;
  border-top-right-radius: 62px;
  border-bottom-right-radius: 62px;
}
.cta.cta-back a:hover,
.cta.cta-back a:focus {
  border-radius: 24px;
  border-top-left-radius: 62px;
  border-bottom-left-radius: 62px;
}
/* Icône flèche */
.cta-icon {
  display: inline-block;
  width: 20px;
  height: 14px;
  flex-shrink: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease, background-image 0.3s ease;
  -webkit-transition: -webkit-transform 0.3s ease, background-image 0.3s ease;
  transform: translateX(0);
  -webkit-transform: translateX(0);
}
.cta-ext .cta-icon {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}
.cta-icon-back {
  display: inline-block;
  width: 20px;
  height: 14px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: transform 0.3s ease, background-image 0.3s ease;
  -webkit-transition: -webkit-transform 0.3s ease, background-image 0.3s ease;
  transform: translateX(16px);
  -webkit-transform: translateX(16px);
}
/* Flèche par thème */
.cta-violet a .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23fffefb'/%3E%3C/svg%3E");
}

.cta-violet a:hover .cta-icon,
.cta-violet a:focus .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
}

.cta-blue a .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23290b58'/%3E%3C/svg%3E");
}
.cta-blue a:hover .cta-icon,
.cta-blue a:focus .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
}

.cta-white a .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23290b58'/%3E%3C/svg%3E");
}
.cta-white a:hover .cta-icon,
.cta-white a:focus .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
}
.cta-white a .cta-icon-back {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23290b58'/%3E%3C/svg%3E");
  transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
}
.cta-white a:hover .cta-icon-back,
.cta-white a:focus .cta-icon-back {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
  transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
}
.cta-white a:hover .cta-icon,
.cta-white a:focus .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
}

.cta-yellow a .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23f4e04d'/%3E%3C/svg%3E");
}
.cta-yellow a:hover .cta-icon,
.cta-yellow a:focus .cta-icon {
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.707 0.305288C9.61475 0.209778 9.50441 0.133596 9.3824 0.0811869C9.2604 0.0287779 9.12918 0.00119157 8.9964 3.77571e-05C8.86362 -0.00111606 8.73194 0.0241854 8.60905 0.0744663C8.48615 0.124747 8.3745 0.199 8.28061 0.292893C8.18671 0.386786 8.11246 0.498438 8.06218 0.621334C8.0119 0.74423 7.9866 0.87591 7.98775 1.00869C7.9889 1.14147 8.01649 1.27269 8.0689 1.39469C8.12131 1.5167 8.19749 1.62704 8.293 1.71929L10.586 4.01229H1C0.734784 4.01229 0.48043 4.11765 0.292893 4.30518C0.105357 4.49272 0 4.74707 0 5.01229C0 5.2775 0.105357 5.53186 0.292893 5.71939C0.48043 5.90693 0.734784 6.01229 1 6.01229H10.586L8.293 8.30529C8.11084 8.49389 8.01005 8.74649 8.01233 9.00869C8.0146 9.27089 8.11977 9.5217 8.30518 9.70711C8.49059 9.89251 8.7414 9.99768 9.0036 9.99996C9.2658 10.0022 9.5184 9.90145 9.707 9.71929L13.707 5.71929C13.8945 5.53176 13.9998 5.27745 13.9998 5.01229C13.9998 4.74712 13.8945 4.49282 13.707 4.30529L9.707 0.305288Z' fill='%23b5e9ff'/%3E%3C/svg%3E");
}
/* Animation de la flèche au hover */
.cta a:hover .cta-icon,
.cta a:focus .cta-icon {
  transform: translateX(16px);
  -webkit-transform: translateX(16px);
}
/* Animation de la flèche au hover */
.cta a:hover .cta-icon-back,
.cta a:focus .cta-icon-back {
  transform: translateX(-16px) rotate(-180deg);
  -webkit-transform: translateX(-16px) rotate(-180deg);
}
.sections-sportives {
  background-color: var(--master-violet);
  -webkit-border-bottom-right-radius: 148px;
  -webkit-border-bottom-left-radius: 148px;
  border-bottom-right-radius: 148px;
  border-bottom-left-radius: 148px;
  padding: 96px 16px 64px 16px;
  color: var(--master-white);
}
@media (max-width: 420px) {
  .sections-sportives {
    -webkit-border-bottom-right-radius: 96px;
    -webkit-border-bottom-left-radius: 96px;
    border-bottom-right-radius: 96px;
    border-bottom-left-radius: 96px;
    padding: 96px 16px 118px 16px;
  }
}
.label-content {
  display: block;
  background-color: var(--emphase-green);
  color: var(--master-violet);
  border-radius: 28px;
  padding: 4px 16px;
  font-size: 1.6rem;
  font-weight: 500;
  margin: auto;
  width: fit-content;
}

.sections-sportives h2 {
  display: block;
  margin: 16px auto 0px auto;
  width: fit-content;
  font-size: 3.6rem;
  font-weight: 600;
  text-align: center;
}
.sections-sportives .legend-title {
  font-size: 2.8rem;
  line-height: normal;
  font-weight: 300;
  margin: 0px auto;
  width: fit-content;
  text-align: center;
}
.cta-sports {
  text-align: center;
  margin: 32px auto;
}
.actus {
  padding: 96px 16px 64px 16px;
}
.actus h2 {
  display: block;
  margin: 16px auto 0px auto;
  width: fit-content;
  font-size: 3.6rem;
  font-weight: 600;
  text-align: center;
}
.actus .legend-title {
  font-size: 2.8rem;
  line-height: normal;
  font-weight: 300;
  margin: 0px auto;
  width: fit-content;
  text-align: center;
}
.columns-actus {
  display: grid;
  grid-template-columns: minmax(60%, 1fr) minmax(0, 40%);
  grid-template-rows: 1fr;
  gap: 128px;
  margin: 65px auto;
}
@media (max-width: 768px) {
  .columns-actus {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, auto);
    grid-column-gap: 32px;
    grid-row-gap: 32px;
  }
}

.actus h3 {
  font-size: 3.2rem;
  line-height: 3.8rem;
  padding-right: 20%;
  margin: 32px 0px;
  font-weight: 600;
}

.actus-list {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2 colonnes */
  gap: clamp(16px, 3vw, 32px);
  list-style: none;
  margin: 0;
  padding: 32px 0;
}

/* Chaque actu reste auto-hauteur */
.actus-list .actu {
  margin: 0;
}

.actus-list .actu img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Mobile */
@media (max-width: 720px) {
  .actus-list {
    grid-template-columns: 1fr;
  }
}

/* Le lien prend tout l'item */
.actu > a {
  position: relative;
  display: block;
  text-decoration: none;
  padding-right: 5%;
  color: inherit;
}

.actu a::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 10px;
  right: 4px;
  bottom: 8px;
  transform: translate(0, -50%); /* Y centré, X neutre */
  background: center/contain no-repeat;
  will-change: transform;
  background-image: url("data:image/svg+xml,%3Csvg%20width='14'%20height='10'%20viewBox='0%200%2014%2010'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M9.707%200.305288C9.61475%200.209778%209.50441%200.133596%209.3824%200.0811869C9.2604%200.0287779%209.12918%200.00119157%208.9964%203.77571e-05C8.86362%20-0.00111606%208.73194%200.0241854%208.60905%200.0744663C8.48615%200.124747%208.3745%200.199%208.28061%200.292893C8.18671%200.386786%208.11246%200.498438%208.06218%200.621334C8.0119%200.744231%207.9866%200.87591%207.98775%201.00869C7.9889%201.14147%208.01649%201.27269%208.0689%201.39469C8.12131%201.5167%208.19749%201.62704%208.293%201.71929L10.586%204.01229H1C0.734784%204.01229%200.48043%204.11765%200.292893%204.30518C0.105357%204.49272%200%204.74707%200%205.01229C0%205.2775%200.105357%205.53186%200.292893%205.71939C0.48043%205.90693%200.734784%206.01229%201%206.01229H10.586L8.293%208.30529C8.11084%208.49389%208.01005%208.74649%208.01233%209.00869C8.0146%209.27089%208.11977%209.5217%208.30518%209.70711C8.49059%209.89252%208.7414%209.99768%209.0036%209.99996C9.2658%2010.0022%209.5184%209.90145%209.707%209.71929L13.707%205.71929C13.8945%205.53176%2013.9998%205.27745%2013.9998%205.01229C13.9998%204.74712%2013.8945%204.49282%2013.707%204.30529L9.707%200.305288Z'%20fill='%23290B58'/%3E%3C/svg%3E");
}
.actu a:hover::after,
.actu a:focus::after,
.actu a:focus-visible::after {
  animation: arrow-nudge 550ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes arrow-nudge {
  0% {
    transform: translate(0, -50%);
  }
  30% {
    transform: translate(-6px, -50%);
  } /* petit recul */
  65% {
    transform: translate(12px, -50%);
  } /* pointe vers la droite */
  100% {
    transform: translate(4px, -50%);
  } /* légère position finale */
}

/* Respecte les préférences d’accessibilité */
@media (prefers-reduced-motion: reduce) {
  .actu a:hover::after,
  .actu a:focus-visible::after {
    animation: none;
  }
}

/* Image optionnelle */
.actu a img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 320px;
  object-fit: cover; /* visuels homogènes */
  -webkit-border-top-left-radius: 32px;
  -webkit-border-top-right-radius: 32px;

  border-top-left-radius: 32px;
  border-top-right-radius: 32px;
  margin-bottom: 0.5rem;
}

/* Titre + soulignement décoratif (option) */
.actu a h4 {
  font-size: 1.8rem;
  line-height: normal;
  margin: 16px 0px 16px 0px;
  padding-bottom: 16px;
  font-weight: 400;
  position: relative;
}
.actu a h4::after {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  display: block;
  height: 2px;
  width: 150px;
  margin-top: 0.8rem;
  background: var(--master-violet);
  transition: all 0.2s ease-out;
}
.actu a:hover h4::after,
.actu a:focus h4::after {
  height: 4px;
  width: 100%;
  background: var(--accent-yellow);
  transition: all 0.2s ease-out;
}
/* Mobile : une seule colonne */
@media (max-width: 768px) {
  .actus-list {
    -webkit-columns: 1;
    columns: 1;
  }
}
.cta-actus {
  margin: 64px 0px;
}

.shortcut-cest {
  list-style: none;
}

/* --- Single --- */
.single-post .entry-meta {
  color: #867b98;

  margin: 0 0 0.5rem;
}
.single-post .entry-cats {
  font-weight: 600;
}
.single-post .entry-title {
  font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.4rem);
  line-height: 1.2;
  margin: 0.25rem 0 1rem;
}
.single-post .entry-figure {
  margin: 1rem 0 1.5rem;
}
.single-post .entry-figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}
.single-post .entry-content > * + * {
  margin-top: 1rem;
}
.single-post .entry-tags {
  margin-top: 1.5rem;
  color: #666;
}
.single-post .back-archive {
  margin-top: 1rem;
}

.post-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 2rem 0;
}
.post-nav a {
  text-decoration: none;
}
.post-nav a:focus,
.post-nav a:hover {
  text-decoration: underline;
}

/* --- Archive grid --- */
.archive-header {
  margin: 1rem 0 1.5rem;
}
.archive-title {
  font-size: clamp(1.6rem, 1.1rem + 1.2vw, 2.2rem);
  margin: 0 0 0.25rem;
}
.archive-description {
  color: #666;
  margin: 0;
}

.posts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 3vw, 32px);
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
}
@media (max-width: 1024px) {
  .posts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .posts-grid {
    grid-template-columns: 1fr;
  }
}

.posts-grid .actu a {
  display: block;
  color: inherit;
  text-decoration: none;
}
.posts-grid .actu img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  margin-bottom: 0.5rem;
  object-fit: cover;
}
.posts-grid .post-title {
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
  line-height: 1.25;
  margin: 0.25rem 0 0.25rem;
}
.posts-grid .post-meta {
  color: #666;
  font-size: 0.95rem;
  margin: 0;
}

/* --- Pagination --- */
.navigation.pagination {
  display: flex;
  justify-content: center;
  margin: 1rem 0 2rem;
}
.page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  margin: 0 0.125rem;
  padding: 0 0.5rem;
  border-radius: 8px;
  text-decoration: none;
  color: inherit;
}
.page-numbers.current {
  background: rgba(0, 0, 0, 0.08);
  font-weight: 600;
}
.page-numbers:hover,
.page-numbers:focus {
  background: rgba(0, 0, 0, 0.12);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Motion respect */
@media (prefers-reduced-motion: reduce) {
  .page-numbers,
  .post-nav a {
    scroll-behavior: auto;
    transition: none;
  }
}
.site-content ul.wp-block-list {
  padding: 16px;
}

/* Grille 4 colonnes (responsive) */
.partenaires-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 900px;
}

/* Cellule carrée qui centre le contenu */
.partenaires-list li {
  display: grid;
  place-items: center; /* centre H & V */
  aspect-ratio: 1 / 0.6; /* cellule carrée */
  border-radius: 8px; /* optionnel */
}

/* Le lien occupe toute la cellule et centre le logo */
.partenaires-list li a {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

/* Le logo s’adapte, reste contenu et centré */
.partenaires-list img {
  max-height: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform 0.2s ease;
}

.partenaires-list a:hover img,
.partenaires-list a:focus img {
  transform: scale(1.03);
  background-color: transparent;
}
.partenaires-list a:hover,
.partenaires-list a:focus {
  background-color: transparent;
}
@media (max-width: 1024px) {
  .partenaires-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .partenaires-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 420px) {
  .partenaires-list {
    grid-template-columns: 1fr;
  }
}

/* Respect du préférences de mouvement */
@media (prefers-reduced-motion: reduce) {
  .partenaires-list img {
    transition: none;
  }
}

.bloc-pictos-contact {
  max-width: 900px;
  align-items: center;
  justify-content: center;
}
.alignfull {
  width: 100%;
  max-width: none;
}

.cta-inscription {
  background-color: var(--master-violet);
  border-radius: 148px;
  padding: 96px 16px 64px 16px;
  color: var(--master-white);
  /* width: 100vw;
  margin-left: calc(-50vw + 50%);*/
  font-size: 2rem;
}
@media (max-width: 768px) {
  .cta-inscription {
    border-radius: 96px;
  }
}
.bloc-cta-inscription {
  max-width: 1280px;
  margin: 0px auto;
  text-align: center;
}

.bloc-cta-inscription h2 {
  font-size: 4rem;
  margin-bottom: 64px;
}

.page-inscription h1 {
  text-align: center;
}
.breadcrumb {
  font-size: 1.6rem;
  margin: 0.5rem 0 1rem 0.2rem;
}
.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.breadcrumb-item + .breadcrumb-item::before {
  content: "\2192";
}
.breadcrumb a {
  color: var(--master-violet);
  text-decoration: none;
}
.breadcrumb a:hover,
.breadcrumb a:focus {
  text-decoration: underline;
  background-color: transparent;
}
.breadcrumb [aria-current="page"] {
  font-weight: 600;
}

/* Container */
.sport-slider {
  max-width: 720px;
  margin-right: 0px;
  margin-left: auto;
}

/* Barre de navigation au-dessus */
.sport-slider-bar {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1rem;
}
.ss-btn {
  appearance: none;
  border: none;
  background: none;
  color: var(--master-violet);
  padding: 0.35rem 0.6rem;
  cursor: pointer;
  transition: transform 0.15s ease;
  -webkit-transition: transform 0.15s ease;
}
.ss-btn:hover,
.ss-btn:focus {
  transform: translateY(-1px);
  outline: none;
}
.ss-btn[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Zone visible */
.ss-viewport {
  overflow: hidden;
  border-radius: 8px;
  outline: none;
  background-color: var(--master-violet);
}
.ss-viewport:focus {
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}

/* Piste + slides */
.ss-track {
  display: flex;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
  transform: translateX(0);
  transition: transform 0.35s ease;
}
.ss-slide {
  flex: 0 0 100%;
}

/* CARRÉ : on force le ratio, image en cover centrée */
.ss-slide {
  aspect-ratio: 1 / 1;
  position: relative;
}
.ss-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .ss-track {
    transition: none;
  }
  .ss-btn {
    transition: none;
  }
}
/* Feeling natif de drag */
.ss-viewport {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y; /* on garde le scroll vertical */
  will-change: transform;
}
.sport-slider.is-dragging .ss-viewport {
  cursor: grabbing;
}

/* évite de “saisir” l’image elle-même */
.ss-img {
  pointer-events: none;
}

.liste-fede {
  margin: 124px auto 64px auto;
}
.frise-federations {
  display: flex;
  flex-wrap: wrap; /* pour passer à la ligne si besoin */
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: end; /* centrer la frise */
  align-items: center;
}
@media (max-width: 768px) {
  .frise-federations {
    justify-content: center; /* centrer la frise */
  }
}
.frise-federations li {
  text-align: center;
  max-width: 160px;
  margin: 0px 16px;
}

.frise-federations img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.frise-federations li a p {
  font-size: 1.4rem;
  line-height: normal;
  margin-top: 0.5rem;
  color: var(--master-violet);
  width: 80%;
  text-align: center;
  margin: 8px auto;
}
.frise-federations li a {
  display: block;
  text-decoration: none;
  text-align: center;
}
.frise-federations li a:hover,
.frise-federations li a:focus {
  background-color: transparent;
  text-decoration: underline;
}
details {
  max-width: 820px;
}
summary {
  list-style: none;
  cursor: pointer;

  padding: 8px 24px;
  margin: 16px 0px 0px 0px;
  color: var(--master-white);
  background-color: var(--master-violet);
  font-size: 2rem;
  font-weight: 600;
  border-radius: 8px;
}

/* Focus visible (utile sur Safari/Firefox) */
summary:focus {
  outline: 2px solid var(--master-red);
  outline-offset: 2px;
}

/* Un petit indicateur avec rotation */
summary .chevron {
  display: inline-block;
  transition: transform 0.2s ease;
}
details[open] summary .chevron {
  transform: rotate(90deg);
}
/* On masque le marqueur natif */
summary {
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
summary::marker {
  content: none;
}

/* Position relative pour placer notre pseudo-élément */
summary {
  position: relative;
  padding-right: 1.5em; /* espace pour le + / - à droite */
  cursor: pointer;
}

/* Le "+" par défaut */
summary::after {
  content: "+";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2.8rem;
  font-weight: bold;
}

/* Le "-" quand <details> est ouvert */
details[open] summary::after {
  content: "–"; /* tiret demi-cadratin */
}
details > *:not(summary) {
  padding: 0.5em;
}

details[open] > *:not(summary) {
  background-color: var(--cta-blue);
  border-radius: 0 0 8px 8px;
}

.entry-figure-sport {
  width: 153px;
  height: 153px;
  background-color: var(--master-violet);
  border-radius: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 16px;
}
.entry-figure-sport img {
  max-height: 90px;
  width: auto;
}

.header-fiche-sport {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-column-gap: 16px;
  align-items: center;
  margin-bottom: 64px;
}

.header-fiche-sport .left-column {
  display: flex;
  gap: 16px;
  align-items: center;
}

@media (max-width: 968px) {
  .header-fiche-sport {
    grid-template-columns: 1fr; /* une seule colonne */
    grid-row-gap: 16px; /* espace vertical entre les rangées */
  }
  .cta-header-single-sports {
    padding-top: 32px !important;
    text-align: left !important;
  }
}
.cta-header-single-sports {
  text-align: right;
}
.cta-header-single-sports ul {
  list-style: none;
}
.cta-header-single-sports ul li {
  display: inline-block;
  margin: 8px 16px;
}
.wrapper-fiche-sport {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

@media (max-width: 768px) {
  .wrapper-fiche-sport {
    grid-template-columns: 1fr;
  }
}

.wrapper-fiche-sport h2 {
  position: relative;
  font-size: 2.8rem;
  font-weight: 600;
  padding-left: 40px;
  margin: 16px 0px;
}
.wrapper-fiche-sport h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  width: 27px;
  height: 19px;
  background: url(../img/fle-h2-blue.svg) 0 0 no-repeat;
}

.wrapper-fiche-sport .right-column {
  text-align: right;
}
/* Grille centrée */
.sport-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(207px, 1fr));
  gap: 32px;
  justify-content: center; /* centre la grille dans la page */
  list-style: none;
  margin: 0 auto;
  padding: 0;
}

/* Carte 207×207, contenu centré, 2 lignes : img (fixe) + titre */
.sport-item a {
  display: grid;
  grid-template-rows: 120px auto; /* réserve une zone fixe pour l’image */
  justify-items: center;
  align-items: center;
  width: 207px;
  height: 207px;
  margin: 0 auto; /* centre chaque carte dans sa cellule */
  background: var(--master-violet);
  border-radius: 32px;
  text-decoration: none;
  color: var(--master-white);
  transition: border-radius 0.25s ease, color 0.25s ease, outline 0.25s ease;
}

/* Image : contenue dans la 1ère ligne fixe */
.sport-item img {
  max-width: 120px;
  max-height: 90px;
  object-fit: contain;
  align-self: end; /* pose le visuel en bas de la zone image */
  display: block;
}

/* Titre : 2e ligne, tous alignés au même niveau */
.sport-item h3 {
  margin: 8px 0 0 0;
  font-size: 1.8rem;
  line-height: 1.2;
  color: var(--master-white);
  text-align: center;
}

/* Hover/focus: pas de changement de fond, juste rayon + couleur + focus visible */
.sport-item a:hover,
.sport-item a:focus-visible,
.sport-item a:focus {
  border-radius: 48px;
  color: var(--cta-blue);
  background-color: var(--master-violet);
}
.sport-item a:hover h3,
.sport-item a:focus-visible h3,
.sport-item a:focus h3 {
  color: var(--cta-blue);
}
/* Motion-safe */
@media (prefers-reduced-motion: reduce) {
  .sport-item a {
    transition: none;
  }
}

/* Grille centrée */
.sport-list-home {
  display: block;
  list-style: none;
  margin: 64px auto 128px auto !important;
  padding: 0;
  text-align: center;
  max-width: 1024px; /* ajuste si besoin */
}
.sport-item-home {
  display: inline-block;
}
.sport-item-home a {
  display: grid;
  grid-template-rows: 120px auto; /* réserve une zone fixe pour l’image */
  justify-items: center;
  align-items: center;
  width: 207px;
  height: 207px;
  margin: 16px; /* centre chaque carte dans sa cellule */
  background: var(--master-white);
  border-radius: 32px;
  text-decoration: none;
  color: var(--master-violet);
  transition: border-radius 0.25s ease, color 0.25s ease, outline 0.25s ease;
}

/* Image : contenue dans la 1ère ligne fixe */
.sport-item-home img {
  max-width: 120px;
  max-height: 90px;
  object-fit: contain;
  align-self: end; /* pose le visuel en bas de la zone image */
  display: block;
}

/* Titre : 2e ligne, tous alignés au même niveau */
.sport-item-home h3 {
  margin: 8px 0 0 0;
  font-size: 1.8rem;
  line-height: 1.2;
  color: var(--master-violet);
  text-align: center;
}

/* Hover/focus: pas de changement de fond, juste rayon + couleur + focus visible */
.sport-item-home a:hover,
.sport-item-home a:focus-visible,
.sport-item-home a:focus {
  border-radius: 48px;
  color: var(--cta-blue);
  background-color: var(--master-white);
}
.sport-item-home a:hover h3,
.sport-item-home a:focus-visible h3,
.sport-item-home a:focus h3 {
  color: var(--master-green);
}
/* Motion-safe */
@media (prefers-reduced-motion: reduce) {
  .sport-item-home a {
    transition: none;
  }
}

.archive-actus-list {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2 colonnes */
  gap: clamp(16px, 3vw, 32px);
  list-style: none;
  margin: 0;
  padding: 32px 0;
}

/* Chaque actu reste auto-hauteur */
.archive-actu {
  margin: 0;
}

.archive-actu img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 320px;
  object-fit: cover; /* visuels homogènes */
  border-top-left-radius: 32px;
  border-top-right-radius: 32px;
  margin-bottom: 0.5rem;
}

/* Le lien prend tout l'item */
.archive-actu > a {
  position: relative;
  display: block;
  text-decoration: none;
  padding-right: 5%;
  color: inherit;
}

.archive-actu a::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 10px;
  right: 4px;
  bottom: 8px;
  transform: translate(0, -50%);
  background: center/contain no-repeat;
  will-change: transform;
  background-image: url("data:image/svg+xml,%3Csvg%20width='14'%20height='10'%20viewBox='0%200%2014%2010'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3E%3Cpath%20d='M9.707%200.305288C9.61475%200.209778%209.50441%200.133596%209.3824%200.0811869C9.2604%200.0287779%209.12918%200.00119157%208.9964%203.77571e-05C8.86362%20-0.00111606%208.73194%200.0241854%208.60905%200.0744663C8.48615%200.124747%208.3745%200.199%208.28061%200.292893C8.18671%200.386786%208.11246%200.498438%208.06218%200.621334C8.0119%200.744231%207.9866%200.87591%207.98775%201.00869C7.9889%201.14147%208.01649%201.27269%208.0689%201.39469C8.12131%201.5167%208.19749%201.62704%208.293%201.71929L10.586%204.01229H1C0.734784%204.01229%200.48043%204.11765%200.292893%204.30518C0.105357%204.49272%200%204.74707%200%205.01229C0%205.2775%200.105357%205.53186%200.292893%205.71939C0.48043%205.90693%200.734784%206.01229%201%206.01229H10.586L8.293%208.30529C8.11084%208.49389%208.01005%208.74649%208.01233%209.00869C8.0146%209.27089%208.11977%209.5217%208.30518%209.70711C8.49059%209.89252%208.7414%209.99768%209.0036%209.99996C9.2658%2010.0022%209.5184%209.90145%209.707%209.71929L13.707%205.71929C13.8945%205.53176%2013.9998%205.27745%2013.9998%205.01229C13.9998%204.74712%2013.8945%204.49282%2013.707%204.30529L9.707%200.305288Z'%20fill='%23290B58'/%3E%3C/svg%3E");
}

.archive-actu a:hover::after,
.archive-actu a:focus::after,
.archive-actu a:focus-visible::after {
  animation: arrow-nudge 550ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes arrow-nudge {
  0% {
    transform: translate(0, -50%);
  }
  30% {
    transform: translate(-6px, -50%);
  } /* petit recul */
  65% {
    transform: translate(12px, -50%);
  } /* pointe vers la droite */
  100% {
    transform: translate(4px, -50%);
  } /* position finale */
}

/* Respecte les préférences d’accessibilité */
@media (prefers-reduced-motion: reduce) {
  .archive-actu a:hover::after,
  .archive-actu a:focus-visible::after {
    animation: none;
  }
}
.archive-actu a:hover,
.archive-actu a:focus {
  background-color: transparent;
}
/* Titre + soulignement décoratif */
.archive-actu a h4 {
  font-size: 1.8rem;
  line-height: normal;
  margin: 16px 0 16px 0;
  padding-bottom: 16px;
  font-weight: 400;
  position: relative;
}
.archive-actu a h4::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  height: 2px;
  width: 150px;
  background: var(--master-violet);
  transition: all 0.2s ease-out;
}
.archive-actu a:hover h4::after,
.archive-actu a:focus h4::after {
  height: 4px;
  width: 100%;
  background: var(--accent-yellow);
  transition: all 0.2s ease-out;
}

/* Mobile : une seule colonne */
@media (max-width: 768px) {
  .archive-actus-list {
    grid-template-columns: 1fr;
  }
}

/* Pagination */
.pagination ul {
  display: flex;
  gap: 8px;
  list-style: none;
  padding: 0;
  justify-content: center;
  margin: 32px 0;
}

.pagination li a,
.pagination li span {
  padding: 16px;
  border: 1px solid var(--master-violet);
  border-radius: 6px;
  text-decoration: none;
  color: var(--master-violet);
}

.pagination li[aria-current="page"] span {
  background: var(--master-violet);
  color: var(--master-white);
}

.error-404 {
  text-align: center;
  padding: 5rem 2rem;
}

.error-title {
  font-size: 10rem;
  margin: 0;
  color: var(--master-violet);
  animation: wiggle 1s infinite alternate;
}

@keyframes wiggle {
  from {
    transform: rotate(-2deg);
  }
  to {
    transform: rotate(2deg);
  }
}

.error-message {
  font-size: 1.6rem;
  margin: 1.5rem 0;
  color: #444;
}

.error-illustration img {
  max-width: 240px;
  margin: 2rem auto;
  display: block;
}

.error-nav ul {
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
  display: grid;
  gap: 1rem;
  justify-content: center;
}

.error-nav a {
  display: inline-block;
  padding: 0.8rem 1.6rem;
  border-radius: 32px;
  background: var(--master-violet);
  color: white;
  text-decoration: none;
  font-weight: 600;
  transition: transform 0.2s ease, background 0.3s ease;
}

.error-nav a:hover,
.error-nav a:focus {
  background: var(--accent-yellow);
  color: #000;
  transform: scale(1.05);
}
.cmplz-cookiebanner
  .cmplz-categories
  .cmplz-category
  .cmplz-category-header
  .cmplz-category-title {
  font-weight: 500;
  grid-column-start: 1;
  justify-self: start;
  color: var(--master-white) !important;
  margin: 0;
}
*,
::before,
::after {
  box-sizing: border-box;
}

.search-page {
  padding-bottom: 128px;
}

.actu-header {
  margin-bottom: 32px;
}
.home-cta-partenaires {
  text-align: center;
}
.home-cta-partenaires ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.home-cta-partenaires ul li {
  display: inline-block;
  margin: 32px 16px;
}
