body.page-index .carousel-visual {
  overflow: hidden;
}

body.page-index .carousel-visual[data-bg-image] {
  background-image: var(--carousel-bg-image) !important;
  background-color: #eaf0fb;
}

body.page-index .carousel-picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

body.page-index .carousel-image {
  position: absolute;
  inset: 0;
  display: block !important;
  visibility: visible !important;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 1;
  z-index: 0;
}

body.page-index .carousel,
body.page-index .carousel-stage,
body.page-index .carousel-slides,
body.page-index .carousel-slide,
body.page-index .carousel-visual,
body.page-index .carousel-picture,
body.page-index .carousel-image,
body.page-index .carousel-overlay,
body.page-index .carousel-content {
  content-visibility: visible !important;
  contain: none !important;
  contain-intrinsic-size: auto !important;
}

body.page-index .carousel-stage {
  overflow: hidden !important;
  background-color: #eaf0fb !important;
}

body.page-index .carousel-slides,
body.page-index .carousel-slide,
body.page-index .carousel-visual {
  min-height: 100% !important;
  height: 100% !important;
}

body.page-index .carousel-slide.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  transform: scale(1) !important;
}

body.page-index .carousel-visual {
  z-index: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

body.page-index .carousel-visual[data-bg-image] {
  background-image: var(--carousel-bg-image), var(--carousel-fallback-image, var(--carousel-bg-image)) !important;
}

body.page-index .carousel-overlay {
  z-index: 1 !important;
}

body.page-index .carousel-content {
  position: relative !important;
  z-index: 2 !important;
}

body.page-index .feature-bloki .bloki-happy-animation {
  animation-name: bloki-happy-bounce;
}

@keyframes bloki-happy-bounce {
  0%,
  100%,
  40%,
  72% {
    transform: translate3d(0, 0, 0) scale(1);
  }

  8% {
    transform: translate3d(0, 0, 0) scale(.97, 1.04);
  }

  16% {
    transform: translate3d(12px, -14px, 0) scale(1.02);
  }

  24% {
    transform: translate3d(24px, 0, 0) scale(1);
  }

  32% {
    transform: translate3d(14px, -11px, 0) scale(1.015);
  }

  48% {
    transform: translate3d(-12px, -14px, 0) scale(1.02);
  }

  56% {
    transform: translate3d(-24px, 0, 0) scale(1);
  }

  64% {
    transform: translate3d(-14px, -11px, 0) scale(1.015);
  }

  80% {
    transform: translate3d(9px, -9px, 0) scale(1.012);
  }

  88% {
    transform: translate3d(-9px, -9px, 0) scale(1.012);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-index .feature-bloki .bloki-happy-animation {
    animation: none !important;
    transform: none !important;
  }
}

@media (max-width: 720px) {
  body.page-index .carousel {
    display: block !important;
    margin-top: 0;
  }

  body.page-index .carousel-stage {
    display: block !important;
    width: 100%;
    min-height: min(72vh, 420px);
    max-height: none;
    aspect-ratio: 4 / 5;
  }

  body.page-index .carousel-slides,
  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture {
    display: block !important;
    min-height: 100%;
    height: 100%;
  }

  body.page-index .carousel-slide.is-active {
    opacity: 1 !important;
    transform: none;
  }

  body.page-index .carousel-content {
    min-height: 100%;
    height: 100%;
    padding: 20px;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.35rem, 6vw, 1.8rem);
  }

  body.page-index .carousel-caption p {
    font-size: .95rem;
    line-height: 1.55;
  }

  body.page-index .carousel-nav {
    inset: auto 12px 12px auto;
  }
}

/* Correctif v172 : images compactes aussi sur petits écrans desktop. */
@media (max-width: 860px) {
  body.page-index .carousel-stage {
    background-color: #eaf0fb !important;
    isolation: isolate !important;
  }

  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture,
  body.page-index .carousel-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
  }

  body.page-index .carousel-visual[data-bg-image] {
    background-image: var(--carousel-mobile-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image))) !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  body.page-index .carousel-image {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    object-fit: cover !important;
    object-position: center center !important;
    max-width: none !important;
    max-height: none !important;
  }
}

@media (min-width: 721px) and (max-width: 1180px) {
  body.page-index .carousel {
    display: block !important;
  }

  body.page-index .carousel-stage {
    display: block !important;
    width: 100% !important;
    min-height: clamp(420px, 62vw, 620px) !important;
    max-height: none !important;
    aspect-ratio: 16 / 10 !important;
  }

  body.page-index .carousel-slides,
  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture {
    display: block !important;
    min-height: 100% !important;
    height: 100% !important;
  }

  body.page-index .carousel-content {
    min-height: 100% !important;
    height: 100% !important;
    padding: clamp(22px, 4vw, 34px) !important;
  }
}

/* Correctif v171 : affichage fiable des images du carousel sur mobile. */
body.page-index .carousel-slide {
  z-index: 0 !important;
}

body.page-index .carousel-slide.is-active {
  z-index: 1 !important;
}

body.page-index .carousel-slide.is-active .carousel-visual,
body.page-index .carousel-slide.is-active .carousel-picture,
body.page-index .carousel-slide.is-active .carousel-image {
  opacity: 1 !important;
  visibility: visible !important;
}

body.page-index .carousel-picture,
body.page-index .carousel-image {
  pointer-events: none !important;
  transform: translateZ(0) !important;
}

body.page-index .carousel-image {
  background-color: transparent !important;
}

@media (max-width: 720px) {
  body.page-index .carousel-stage {
    min-height: clamp(340px, 72vh, 460px) !important;
    isolation: isolate !important;
  }

  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture,
  body.page-index .carousel-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
  }

  body.page-index .carousel-visual[data-bg-image] {
    background-image: var(--carousel-bg-image, var(--carousel-fallback-image)) !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  body.page-index .carousel-visual[data-mobile-bg-image] {
    background-image: var(--carousel-mobile-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image))) !important;
  }

  body.page-index .carousel-image {
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
    max-width: none !important;
    max-height: none !important;
  }
}

/* Correctif v173 : priorite finale, jamais de carousel sans image. */
@media (max-width: 1180px) {
  body.page-index .carousel,
  body.page-index .carousel-stage,
  body.page-index .carousel-slides,
  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture,
  body.page-index .carousel-image,
  body.page-index .carousel-overlay,
  body.page-index .carousel-content {
    content-visibility: visible !important;
    contain: none !important;
    contain-intrinsic-size: auto !important;
  }

  body.page-index .carousel,
  body.page-index .carousel-stage {
    display: block !important;
  }

  body.page-index .carousel-stage {
    position: relative !important;
    width: 100% !important;
    min-height: clamp(380px, 62vw, 620px) !important;
    max-height: none !important;
    overflow: hidden !important;
    isolation: isolate !important;
    background-color: #eaf0fb !important;
  }

  body.page-index .carousel-slides,
  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture,
  body.page-index .carousel-image {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: none !important;
    max-height: none !important;
  }

  body.page-index .carousel-slide {
    opacity: 0 !important;
    visibility: hidden !important;
    z-index: 0 !important;
  }

  body.page-index .carousel-slide.is-active {
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 1 !important;
    transform: scale(1) !important;
  }

  body.page-index .carousel-visual {
    z-index: 0 !important;
    overflow: hidden !important;
    background-color: #eaf0fb !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  body.page-index .carousel-visual[data-bg-image] {
    background-image: var(--carousel-bg-image, var(--carousel-fallback-image, none)) !important;
  }

  body.page-index .carousel-image {
    visibility: visible !important;
    opacity: 1 !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: translateZ(0) !important;
    pointer-events: none !important;
  }

  body.page-index .carousel-overlay {
    z-index: 1 !important;
  }

  body.page-index .carousel-content {
    position: relative !important;
    z-index: 2 !important;
    min-height: 100% !important;
    height: 100% !important;
  }
}

@media (max-width: 860px) {
  body.page-index .carousel-visual[data-mobile-bg-image] {
    background-image: var(--carousel-mobile-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image, none))) !important;
  }
}

/* Correctif v176 : flèches hors zone texte et titre mobile reduit. */
@media (max-width: 1180px) {
  body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(20px, 3.5vw, 30px) !important;
  }

  body.page-index .carousel-caption {
    max-width: 100% !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.45rem, 3.2vw, 2.15rem) !important;
    line-height: 1.06 !important;
    letter-spacing: 0 !important;
    hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.page-index .carousel-caption p {
    font-size: clamp(.86rem, 1.65vw, .98rem) !important;
    line-height: 1.36 !important;
  }

  body.page-index .carousel-nav {
    inset: clamp(12px, 2.6vw, 20px) clamp(12px, 2.6vw, 20px) auto auto !important;
    gap: 7px !important;
    z-index: 5 !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(34px, 4.8vw, 42px) !important;
    height: clamp(34px, 4.8vw, 42px) !important;
    min-width: 34px !important;
    min-height: 34px !important;
    border-radius: 12px !important;
    font-size: clamp(.95rem, 2vw, 1.15rem) !important;
    line-height: 1 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-caption {
    padding-right: 0 !important;
  }

  body.page-index .carousel-caption .tag {
    padding: 6px 10px !important;
    font-size: clamp(.68rem, 2.7vw, .78rem) !important;
    line-height: 1.1 !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.18rem, 4.6vw, 1.55rem) !important;
    line-height: 1.05 !important;
  }

  body.page-index .carousel-caption p {
    font-size: clamp(.78rem, 2.8vw, .88rem) !important;
    line-height: 1.32 !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-caption h3 {
    font-size: clamp(1.08rem, 5.4vw, 1.28rem) !important;
  }

  body.page-index .carousel-caption p {
    font-size: .76rem !important;
  }
}

/* Correctif v178 : fleches en bas a droite, sous le texte. */
@media (max-width: 1180px) {
  body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(20px, 3.5vw, 30px) clamp(20px, 3.5vw, 30px) clamp(82px, 12vw, 104px) !important;
  }

  body.page-index .carousel-caption {
    max-width: 100% !important;
    padding-right: 0 !important;
  }

  body.page-index .carousel-nav {
    inset: auto clamp(14px, 3vw, 24px) clamp(14px, 3vw, 24px) auto !important;
    gap: 7px !important;
    z-index: 5 !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(34px, 4.8vw, 42px) !important;
    height: clamp(34px, 4.8vw, 42px) !important;
    min-width: 34px !important;
    min-height: 34px !important;
    border-radius: 12px !important;
    font-size: clamp(.95rem, 2vw, 1.15rem) !important;
    line-height: 1 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-content {
    padding: clamp(18px, 5vw, 26px) clamp(18px, 5vw, 28px) clamp(78px, 18vw, 96px) !important;
  }

  body.page-index .carousel-nav {
    inset: auto clamp(14px, 4vw, 22px) clamp(14px, 4vw, 22px) auto !important;
    gap: 7px !important;
  }
}

/* Correctif v175 : typographie compacte et navigation non superposee du carousel. */
@media (max-width: 1180px) {
  body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(22px, 4vw, 34px) clamp(22px, 4vw, 34px) clamp(92px, 11vw, 118px) !important;
  }

  body.page-index .carousel-caption {
    width: 100% !important;
    max-width: min(100%, 660px) !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  body.page-index .carousel-caption .tag {
    max-width: 100% !important;
    margin-bottom: clamp(8px, 1.4vw, 14px) !important;
    padding: 7px 13px !important;
    font-size: clamp(.76rem, 1.35vw, .9rem) !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  body.page-index .carousel-caption h3 {
    max-width: 100% !important;
    margin: 0 0 clamp(10px, 1.7vw, 16px) !important;
    font-size: clamp(1.65rem, 4.2vw, 2.5rem) !important;
    line-height: 1.08 !important;
    letter-spacing: 0 !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
  }

  body.page-index .carousel-caption p {
    max-width: min(100%, 36rem) !important;
    margin: 0 !important;
    font-size: clamp(.92rem, 1.8vw, 1.06rem) !important;
    line-height: 1.42 !important;
    overflow-wrap: anywhere !important;
  }

  body.page-index .carousel-nav {
    inset: auto clamp(16px, 3vw, 26px) clamp(16px, 3vw, 26px) auto !important;
    z-index: 4 !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(42px, 6vw, 56px) !important;
    height: clamp(42px, 6vw, 56px) !important;
    font-size: clamp(1.2rem, 2.8vw, 1.55rem) !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  body.page-index .carousel-caption {
    max-width: min(660px, calc(100% - clamp(128px, 16vw, 168px))) !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-content {
    padding: clamp(18px, 5vw, 26px) clamp(18px, 5vw, 28px) clamp(92px, 22vw, 112px) !important;
  }

  body.page-index .carousel-caption .tag {
    padding: 6px 11px !important;
    font-size: clamp(.72rem, 3vw, .82rem) !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.45rem, 6vw, 2rem) !important;
    line-height: 1.07 !important;
  }

  body.page-index .carousel-caption p {
    font-size: clamp(.84rem, 3.2vw, .95rem) !important;
    line-height: 1.38 !important;
  }

  body.page-index .carousel-nav {
    inset: auto auto clamp(14px, 4vw, 22px) clamp(18px, 5vw, 28px) !important;
    gap: 9px !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(42px, 12vw, 54px) !important;
    height: clamp(42px, 12vw, 54px) !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-content {
    padding-bottom: 98px !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.28rem, 6.2vw, 1.55rem) !important;
  }

  body.page-index .carousel-caption p {
    font-size: .82rem !important;
    line-height: 1.34 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-stage {
    min-height: clamp(340px, 72vh, 460px) !important;
    aspect-ratio: 4 / 5 !important;
  }
}

/* Correctif v174 : images du carousel forcees aussi sur petits desktops. */
@media (max-width: 1360px) {
  body.page-index .carousel-stage,
  body.page-index .carousel-slides,
  body.page-index .carousel-slide,
  body.page-index .carousel-visual,
  body.page-index .carousel-picture,
  body.page-index .carousel-image {
    content-visibility: visible !important;
    contain: none !important;
    contain-intrinsic-size: auto !important;
  }

  body.page-index .carousel-visual[data-bg-image] {
    background-image: var(--carousel-bg-image, var(--carousel-fallback-image, none)) !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  body.page-index .carousel-picture,
  body.page-index .carousel-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
  }

  body.page-index .carousel-image {
    visibility: visible !important;
    opacity: 1 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

@media (max-width: 860px) {
  body.page-index .carousel-visual[data-mobile-bg-image] {
    background-image: var(--carousel-mobile-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image, none))) !important;
  }
}

/* Correctif v177 : priorite finale, fleches hors texte et titre reduit. */
@media (max-width: 1180px) {
  body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(20px, 3.5vw, 30px) !important;
  }

  body.page-index .carousel-caption {
    max-width: 100% !important;
    padding-right: 0 !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.45rem, 3.2vw, 2.15rem) !important;
    line-height: 1.06 !important;
    letter-spacing: 0 !important;
    hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.page-index .carousel-caption p {
    font-size: clamp(.86rem, 1.65vw, .98rem) !important;
    line-height: 1.36 !important;
  }

  body.page-index .carousel-nav {
    inset: clamp(12px, 2.6vw, 20px) clamp(12px, 2.6vw, 20px) auto auto !important;
    gap: 7px !important;
    z-index: 5 !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(34px, 4.8vw, 42px) !important;
    height: clamp(34px, 4.8vw, 42px) !important;
    min-width: 34px !important;
    min-height: 34px !important;
    border-radius: 12px !important;
    font-size: clamp(.95rem, 2vw, 1.15rem) !important;
    line-height: 1 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-caption .tag {
    padding: 6px 10px !important;
    font-size: clamp(.68rem, 2.7vw, .78rem) !important;
    line-height: 1.1 !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: clamp(1.18rem, 4.6vw, 1.55rem) !important;
    line-height: 1.05 !important;
  }

  body.page-index .carousel-caption p {
    font-size: clamp(.78rem, 2.8vw, .88rem) !important;
    line-height: 1.32 !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-caption h3 {
    font-size: clamp(1.08rem, 5.4vw, 1.28rem) !important;
  }

  body.page-index .carousel-caption p {
    font-size: .76rem !important;
  }
}

/* Correctif v179 : priorite definitive, fleches en bas a droite sous le texte. */
@media (max-width: 1180px) {
  body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: clamp(20px, 3.5vw, 30px) clamp(20px, 3.5vw, 30px) clamp(82px, 12vw, 104px) !important;
  }

  body.page-index .carousel-caption {
    max-width: 100% !important;
    padding-right: 0 !important;
  }

  body.page-index .carousel-nav {
    inset: auto clamp(14px, 3vw, 24px) clamp(14px, 3vw, 24px) auto !important;
    gap: 7px !important;
    z-index: 5 !important;
  }

  body.page-index .carousel-nav button {
    width: clamp(34px, 4.8vw, 42px) !important;
    height: clamp(34px, 4.8vw, 42px) !important;
    min-width: 34px !important;
    min-height: 34px !important;
    border-radius: 12px !important;
    font-size: clamp(.95rem, 2vw, 1.15rem) !important;
    line-height: 1 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-content {
    padding: clamp(18px, 5vw, 26px) clamp(18px, 5vw, 28px) clamp(78px, 18vw, 96px) !important;
  }

  body.page-index .carousel-nav {
    inset: auto clamp(14px, 4vw, 22px) clamp(14px, 4vw, 22px) auto !important;
    gap: 7px !important;
  }
}

/* Correctif v182 : titres du carousel mobile reduits de 2pt supplementaires. */
@media (max-width: 760px) {
  body.page-index .carousel-caption h3 {
    font-size: calc(clamp(1.18rem, 4.6vw, 1.55rem) - 5pt) !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-caption h3 {
    font-size: calc(clamp(1.08rem, 5.4vw, 1.28rem) - 5pt) !important;
  }
}

/* Correctif v181 : autoplay desktop visible et Bloki anime sur desktop. */
@media (min-width: 861px) {
  html:not(.reduce-motion) body.page-index:not(.reduce-motion) .carousel-slide {
    transition: opacity .65s ease, transform .65s ease !important;
  }

  html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-happy-animation {
    animation: bloki-happy-bounce 3.8s cubic-bezier(.32, 1, .36, 1) infinite !important;
    animation-play-state: running !important;
    transform-origin: center 82% !important;
    will-change: transform !important;
  }

  html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-happy-animation:hover {
    animation-play-state: running !important;
  }
}

/* Correctif v186 : titre carousel harmonise en normal et Texte +. */
body.page-index .carousel-stage,
body.page-index.access-large-text .carousel-stage,
html.access-large-text body.page-index .carousel-stage {
  overflow: hidden !important;
}

body.page-index .carousel-caption,
body.page-index.access-large-text .carousel-caption,
html.access-large-text body.page-index .carousel-caption {
  width: min(100%, 42rem) !important;
  max-width: min(100%, 42rem) !important;
  min-width: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.page-index .carousel-caption .tag,
body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag {
  max-width: 100% !important;
  line-height: 1.12 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

body.page-index .carousel-caption h3,
body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3 {
  max-width: 100% !important;
  margin: 0 0 .75rem !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

body.page-index .carousel-caption h3 {
  font-size: 2.22rem !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3 {
  font-size: 1.94rem !important;
}

body.page-index .carousel-caption p,
body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  max-width: min(100%, 36rem) !important;
  margin: 0 !important;
  line-height: 1.38 !important;
  overflow-wrap: break-word !important;
}

body.page-index.access-large-text .carousel-content,
html.access-large-text body.page-index .carousel-content {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  min-height: 100% !important;
  padding: 2.25rem 2.5rem 7.25rem !important;
}

body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag {
  margin-bottom: .72rem !important;
  padding: .38rem .68rem !important;
  font-size: .76rem !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p {
  font-size: .9rem !important;
}

body.page-index.access-large-text .carousel-nav,
html.access-large-text body.page-index .carousel-nav {
  inset: auto 1.5rem 1.5rem auto !important;
  gap: .5rem !important;
  z-index: 6 !important;
}

body.page-index.access-large-text .carousel-nav button,
html.access-large-text body.page-index .carousel-nav button {
  width: 2.7rem !important;
  height: 2.7rem !important;
  min-width: 2.7rem !important;
  min-height: 2.7rem !important;
  font-size: 1.16rem !important;
  line-height: 1 !important;
}

@media (max-width: 1180px) {
  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 1.8rem 1.9rem 6.75rem !important;
  }

  body.page-index .carousel-caption,
  body.page-index.access-large-text .carousel-caption,
  html.access-large-text body.page-index .carousel-caption {
    max-width: min(100%, 40rem) !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: 1.85rem !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1.58rem !important;
  }

  body.page-index .carousel-caption p {
    font-size: .92rem !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .84rem !important;
  }

  body.page-index .carousel-nav,
  body.page-index.access-large-text .carousel-nav,
  html.access-large-text body.page-index .carousel-nav {
    inset: auto 1.35rem 1.35rem auto !important;
    gap: .45rem !important;
    z-index: 6 !important;
  }

  body.page-index .carousel-nav button,
  body.page-index.access-large-text .carousel-nav button,
  html.access-large-text body.page-index .carousel-nav button {
    width: 2.55rem !important;
    height: 2.55rem !important;
    min-width: 2.55rem !important;
    min-height: 2.55rem !important;
    border-radius: 12px !important;
    font-size: 1.05rem !important;
  }
}

@media (max-width: 860px) {
  body.page-index .carousel-stage {
    min-height: 25rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26rem !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding: 1.35rem 1.35rem 6.25rem !important;
  }

  body.page-index .carousel-caption .tag {
    margin-bottom: .6rem !important;
    padding: .36rem .62rem !important;
    font-size: .76rem !important;
  }

  body.page-index.access-large-text .carousel-caption .tag,
  html.access-large-text body.page-index .carousel-caption .tag {
    font-size: .68rem !important;
  }

  body.page-index .carousel-caption h3 {
    margin-bottom: .66rem !important;
    font-size: 1.32rem !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1.14rem !important;
    line-height: 1.08 !important;
  }

  body.page-index .carousel-caption p {
    font-size: .82rem !important;
    line-height: 1.32 !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .75rem !important;
    line-height: 1.3 !important;
  }

  body.page-index .carousel-nav,
  body.page-index.access-large-text .carousel-nav,
  html.access-large-text body.page-index .carousel-nav {
    inset: auto 1rem 1rem auto !important;
  }

  body.page-index .carousel-nav button,
  body.page-index.access-large-text .carousel-nav button,
  html.access-large-text body.page-index .carousel-nav button {
    width: 2.35rem !important;
    height: 2.35rem !important;
    min-width: 2.35rem !important;
    min-height: 2.35rem !important;
    font-size: .98rem !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-stage {
    min-height: 25.5rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26.5rem !important;
  }

  body.page-index .carousel-content,
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    padding: 1.15rem 1.1rem 5.85rem !important;
  }

  body.page-index .carousel-caption h3 {
    font-size: 1.14rem !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3 {
    font-size: 1rem !important;
    line-height: 1.08 !important;
  }

  body.page-index .carousel-caption p {
    font-size: .76rem !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: .7rem !important;
  }
}

/* Correctif v187 : priorite sur les titres carousel hors contraste renforce. */
body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: 2.22rem !important;
  line-height: 1.08 !important;
  letter-spacing: 0 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance !important;
}

body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: 1.94rem !important;
}

@media (max-width: 1180px) {
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1.85rem !important;
  }

  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1.58rem !important;
  }
}

@media (max-width: 860px) {
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1.32rem !important;
    line-height: 1.08 !important;
  }

  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1.14rem !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 420px) {
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1.14rem !important;
  }

  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: 1rem !important;
  }
}

/* Correctif v188 : logo mobile a gauche et Texte + du carousel en bas a gauche sur tablette/desktop. */
@media (max-width: 760px) {
  body.page-index .site-nav {
    justify-items: stretch !important;
  }

  body.page-index .site-brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    width: auto !important;
    max-width: min(58vw, 210px) !important;
    margin: 0 auto 0 0 !important;
    text-align: left !important;
  }

  body.page-index .site-brand-logo {
    display: block !important;
    width: min(58vw, 190px) !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto 0 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
  }
}

@media (min-width: 761px) {
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    align-items: flex-end !important;
    justify-content: flex-start !important;
    padding: 2.5rem 2.5rem 2.5rem !important;
  }

  body.page-index.access-large-text .carousel-caption,
  html.access-large-text body.page-index .carousel-caption {
    align-self: flex-end !important;
  }

  body.page-index.access-large-text .carousel-caption .tag,
  html.access-large-text body.page-index .carousel-caption .tag {
    font-size: calc(13px + 2pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(2.22rem + 2pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: calc(17px + 2pt) !important;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  body.page-index.access-large-text .carousel-content,
  html.access-large-text body.page-index .carousel-content {
    align-items: flex-end !important;
    justify-content: flex-start !important;
    padding: 2rem 1.9rem 2rem !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.85rem + 2pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: calc(.92rem + 2pt) !important;
  }
}

/* Correctif v189 : accueil plus rapide et animation Bloki plus robuste entre navigateurs. */
body.page-index .carousel-slide:not(.is-active):not([data-bg-loaded="true"]) .carousel-visual[data-bg-image] {
  background-image: none !important;
}

body.page-index .carousel-slide:not(.is-active):not([data-bg-loaded="true"]) .carousel-image:not([src]) {
  visibility: hidden !important;
}

@-webkit-keyframes bloki-happy-bounce {
  0%,
  100%,
  40%,
  72% {
    -webkit-transform: translate3d(0, 0, 0) scale(1);
    transform: translate3d(0, 0, 0) scale(1);
  }

  8% {
    -webkit-transform: translate3d(0, 0, 0) scale(.97, 1.04);
    transform: translate3d(0, 0, 0) scale(.97, 1.04);
  }

  16% {
    -webkit-transform: translate3d(12px, -14px, 0) scale(1.02);
    transform: translate3d(12px, -14px, 0) scale(1.02);
  }

  24% {
    -webkit-transform: translate3d(24px, 0, 0) scale(1);
    transform: translate3d(24px, 0, 0) scale(1);
  }

  32% {
    -webkit-transform: translate3d(14px, -11px, 0) scale(1.015);
    transform: translate3d(14px, -11px, 0) scale(1.015);
  }

  48% {
    -webkit-transform: translate3d(-12px, -14px, 0) scale(1.02);
    transform: translate3d(-12px, -14px, 0) scale(1.02);
  }

  56% {
    -webkit-transform: translate3d(-24px, 0, 0) scale(1);
    transform: translate3d(-24px, 0, 0) scale(1);
  }

  64% {
    -webkit-transform: translate3d(-14px, -11px, 0) scale(1.015);
    transform: translate3d(-14px, -11px, 0) scale(1.015);
  }

  80% {
    -webkit-transform: translate3d(9px, -9px, 0) scale(1.012);
    transform: translate3d(9px, -9px, 0) scale(1.012);
  }

  88% {
    -webkit-transform: translate3d(-9px, -9px, 0) scale(1.012);
    transform: translate3d(-9px, -9px, 0) scale(1.012);
  }
}

html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-happy-animation,
html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-happy-animation.is-bloki-animated {
  -webkit-animation: bloki-happy-bounce 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
  animation: bloki-happy-bounce 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
  -webkit-animation-play-state: running !important;
  animation-play-state: running !important;
  -webkit-transform-origin: center 82% !important;
  transform-origin: center 82% !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  display: block !important;
  will-change: transform !important;
}

html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-happy-animation:hover {
  -webkit-animation-play-state: running !important;
  animation-play-state: running !important;
}

body.page-index.reduce-motion .feature-bloki .bloki-happy-animation,
html.reduce-motion body.page-index .feature-bloki .bloki-happy-animation {
  -webkit-animation: none !important;
  animation: none !important;
  transform: none !important;
}

/* Correctif v191 : Bloki visible immediatement, avec animation relancee meme si le navigateur bloque les animations CSS par defaut. */
body.page-index .feature-bloki .bloki-picture {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: clamp(104px, 11vw, 142px) !important;
  max-width: 100% !important;
  margin: 10px auto 6px !important;
  line-height: 0 !important;
}

body.page-index .feature-bloki .bloki-picture .bloki-illustration,
body.page-index .feature-bloki .bloki-illustration,
body.page-index .feature-bloki .bloki-happy-animation {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  max-width: 142px !important;
  min-width: 104px !important;
  height: auto !important;
  aspect-ratio: 520 / 538 !important;
  object-fit: contain !important;
  object-position: center center !important;
}

html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-picture .bloki-happy-animation,
html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-picture .bloki-happy-animation.is-bloki-animated {
  -webkit-animation: bloki-happy-bounce 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
  animation: bloki-happy-bounce 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
  -webkit-animation-play-state: running !important;
  animation-play-state: running !important;
  -webkit-transform-origin: center 82% !important;
  transform-origin: center 82% !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  position: relative !important;
  will-change: transform !important;
}

@-webkit-keyframes bloki-happy-bounce-position {
  0%,
  100%,
  40%,
  72% {
    left: 0;
    top: 0;
  }

  16% {
    left: 12px;
    top: -14px;
  }

  24% {
    left: 24px;
    top: 0;
  }

  32% {
    left: 14px;
    top: -11px;
  }

  48% {
    left: -12px;
    top: -14px;
  }

  56% {
    left: -24px;
    top: 0;
  }

  64% {
    left: -14px;
    top: -11px;
  }

  80% {
    left: 9px;
    top: -9px;
  }

  88% {
    left: -9px;
    top: -9px;
  }
}

@keyframes bloki-happy-bounce-position {
  0%,
  100%,
  40%,
  72% {
    left: 0;
    top: 0;
  }

  16% {
    left: 12px;
    top: -14px;
  }

  24% {
    left: 24px;
    top: 0;
  }

  32% {
    left: 14px;
    top: -11px;
  }

  48% {
    left: -12px;
    top: -14px;
  }

  56% {
    left: -24px;
    top: 0;
  }

  64% {
    left: -14px;
    top: -11px;
  }

  80% {
    left: 9px;
    top: -9px;
  }

  88% {
    left: -9px;
    top: -9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-picture .bloki-happy-animation,
  html:not(.reduce-motion) body.page-index:not(.reduce-motion) .feature-bloki .bloki-picture .bloki-happy-animation.is-bloki-animated {
    -webkit-animation: bloki-happy-bounce-position 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
    animation: bloki-happy-bounce-position 3.8s cubic-bezier(.32, 1, .36, 1) infinite both !important;
    -webkit-animation-play-state: running !important;
    animation-play-state: running !important;
    -webkit-transform-origin: center 82% !important;
    transform-origin: center 82% !important;
    position: relative !important;
    will-change: top, left !important;
  }
}

/* Correctif v192 : texte d'introduction mobile plus compact et Texte + du carousel ajuste. */
@media (max-width: 760px) {
  body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: calc(2.575rem - 2pt) !important;
    line-height: 1.04 !important;
  }

  body.page-index .home-hero-subtitle,
  body:not(.access-high-contrast).page-index .home-hero-subtitle {
    font-size: calc(1rem - 2pt) !important;
    line-height: 1.54 !important;
  }

  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: calc(2.06rem - 2pt) !important;
    line-height: 1.06 !important;
  }

  body.page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body.page-index .home-hero-subtitle,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
    font-size: calc(.92rem - 2pt) !important;
    line-height: 1.45 !important;
  }

  body.page-index.access-large-text .carousel-caption .tag,
  html.access-large-text body.page-index .carousel-caption .tag {
    font-size: calc(.76rem + 1pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.14rem + 1pt) !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: calc(.75rem + 1pt) !important;
  }
}

@media (max-width: 420px) {
  body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: calc(2rem - 2pt) !important;
    line-height: 1.08 !important;
  }

  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: calc(1.76rem - 2pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1rem + 1pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p {
    font-size: calc(.7rem + 1pt) !important;
  }
}

/* Correctif v193 : Texte + augmente vraiment le titre d'accueil et le carousel. */
body.page-index {
  --bm-home-title-size: clamp(1.74rem, 4.02vw, 3.54rem);
  --bm-home-subtitle-size: clamp(.66rem, .86vw, .82rem);
  --bm-carousel-tag-size: .8rem;
  --bm-carousel-title-size: 2.05rem;
  --bm-carousel-text-size: .94rem;
}

body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: var(--bm-home-title-size) !important;
  line-height: 1.04 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: auto !important;
  text-wrap: balance !important;
}

body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: var(--bm-home-subtitle-size) !important;
  line-height: 1.56 !important;
  overflow-wrap: break-word !important;
}

body.page-index .carousel-caption .tag,
body:not(.access-high-contrast).page-index .carousel-caption .tag {
  font-size: var(--bm-carousel-tag-size) !important;
}

body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: var(--bm-carousel-title-size) !important;
  line-height: 1.08 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: auto !important;
  text-wrap: balance !important;
}

body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: var(--bm-carousel-text-size) !important;
  line-height: 1.38 !important;
  overflow-wrap: break-word !important;
}

body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: calc(var(--bm-home-title-size) + 2pt) !important;
}

body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 2pt) !important;
}

body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption .tag,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption .tag {
  font-size: calc(var(--bm-carousel-tag-size) + 2pt) !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: calc(var(--bm-carousel-title-size) + 2pt) !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: calc(var(--bm-carousel-text-size) + 2pt) !important;
}

@media (max-width: 1180px) {
  body.page-index {
    --bm-home-title-size: clamp(1.72rem, 4.2vw, 3.24rem);
    --bm-home-subtitle-size: clamp(.68rem, 1vw, .84rem);
    --bm-carousel-tag-size: .76rem;
    --bm-carousel-title-size: 1.7rem;
    --bm-carousel-text-size: .86rem;
  }
}

@media (max-width: 760px) {
  body.page-index {
    --bm-home-title-size: 1.84rem;
    --bm-home-subtitle-size: .84rem;
    --bm-carousel-tag-size: .72rem;
    --bm-carousel-title-size: 1.24rem;
    --bm-carousel-text-size: .76rem;
  }

  body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index .home-hero-title h1,
  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    line-height: 1.07 !important;
  }

  body.page-index .home-hero-subtitle,
  body:not(.access-high-contrast).page-index .home-hero-subtitle,
  body.page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body.page-index .home-hero-subtitle,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
    line-height: 1.48 !important;
  }
}

@media (max-width: 420px) {
  body.page-index {
    --bm-home-title-size: 1.6rem;
    --bm-home-subtitle-size: .78rem;
    --bm-carousel-tag-size: .68rem;
    --bm-carousel-title-size: 1.02rem;
    --bm-carousel-text-size: .68rem;
  }
}

/* Correctif v194 : titre desktop restaure, Texte + a +1pt et logo mobile aligne sur l'admin. */
@media (min-width: 1181px) {
  body.page-index {
    --bm-home-title-size: clamp(1.82rem, 4.32vw, 3.96rem);
  }

  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: calc(var(--bm-home-title-size) + 1pt) !important;
    line-height: 1.02 !important;
  }
}

@media (max-width: 760px) {
  body.page-index .site-brand-logo {
    width: clamp(108px, 30vw, 138px) !important;
    max-width: none !important;
    max-height: 50px !important;
  }
}

@media (max-width: 379.98px) {
  body.page-index .site-brand-logo {
    width: clamp(98px, 29vw, 118px) !important;
    max-height: 44px !important;
  }
}

/* Correctif v195 : carousel augmente de 1pt sur desktop, tablette et mobile. */
body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: calc(2.05rem + 1pt) !important;
}

body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: calc(.94rem + 1pt) !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: calc(2.05rem + 3pt) !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: calc(.94rem + 3pt) !important;
}

@media (max-width: 1180px) {
  body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.7rem + 1pt) !important;
  }

  body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.86rem + 1pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.7rem + 3pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.86rem + 3pt) !important;
  }
}

@media (max-width: 760px) {
  body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.24rem + 1pt) !important;
  }

  body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.76rem + 1pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.24rem + 3pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.76rem + 3pt) !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.02rem + 1pt) !important;
  }

  body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.68rem + 1pt) !important;
  }

  body.page-index.access-large-text .carousel-caption h3,
  html.access-large-text body.page-index .carousel-caption h3,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
    font-size: calc(1.02rem + 3pt) !important;
  }

  body.page-index.access-large-text .carousel-caption p,
  html.access-large-text body.page-index .carousel-caption p,
  body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
  html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
    font-size: calc(.68rem + 3pt) !important;
  }
}

/* Correctif v196 : Texte + ajoute 1pt au titre d'accueil et au carousel. */
body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: calc(var(--bm-home-title-size) + 1pt) !important;
}

body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption .tag,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption .tag {
  font-size: calc(var(--bm-carousel-tag-size) + 1pt) !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: calc(var(--bm-carousel-title-size) + 2pt) !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: calc(var(--bm-carousel-text-size) + 2pt) !important;
}

/* Correctif v197 : logo mobile accueil aligne exactement sur la taille admin. */
@media (max-width: 760px) {
  body.page-index .site-brand-logo {
    width: clamp(124px, 34.5vw, 159px) !important;
    max-width: none !important;
    max-height: 58px !important;
  }
}

@media (max-width: 379.98px) {
  body.page-index .site-brand-logo {
    width: clamp(113px, 33.35vw, 136px) !important;
    max-height: 51px !important;
  }
}

/* Correctif v198 : texte d'introduction augmente de 2pt sans coupure. */
body.page-index .home-hero-title,
body:not(.access-high-contrast).page-index .home-hero-title,
body.page-index.access-large-text .home-hero-title,
html.access-large-text body.page-index .home-hero-title,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-title,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title {
  height: auto !important;
  overflow: visible !important;
}

body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: calc(var(--bm-home-title-size) + 2pt) !important;
  line-height: 1.08 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}

body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 2pt) !important;
  line-height: 1.6 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  hyphens: none !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
}

body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: calc(var(--bm-home-title-size) + 3pt) !important;
  line-height: 1.08 !important;
}

body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 3pt) !important;
  line-height: 1.6 !important;
}

/* Correctif v199 : sous-titre d'accueil augmente encore de 1pt. */
body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 3pt) !important;
  line-height: 1.6 !important;
}

body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 4pt) !important;
  line-height: 1.6 !important;
}

/* Correctif v200 : carousel visible et dimensions restaurees. */
body.page-index .hero,
body.page-index .hero-main,
body.page-index .hero .carousel,
body.page-index .carousel-head,
body.page-index .carousel-stage,
body.page-index .carousel-slides,
body.page-index .carousel-slide,
body.page-index .carousel-visual,
body.page-index .carousel-picture,
body.page-index .carousel-image,
body.page-index .carousel-overlay,
body.page-index .carousel-content,
body.page-index .carousel-caption,
body.page-index .carousel-nav,
body.page-index .carousel-dots {
  content-visibility: visible !important;
  contain: none !important;
  contain-intrinsic-size: auto !important;
}

body.page-index .hero,
body.page-index .hero-main,
body.page-index .hero .carousel,
body.page-index .carousel-head,
body.page-index .carousel-stage,
body.page-index .carousel-dots {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.page-index .carousel-stage {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: clamp(420px, 48vw, 700px) !important;
  max-height: none !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background-color: #eaf0fb !important;
}

body.page-index .carousel-slides,
body.page-index .carousel-slide,
body.page-index .carousel-visual,
body.page-index .carousel-picture,
body.page-index .carousel-image,
body.page-index .carousel-overlay {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

body.page-index .carousel-slide {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

body.page-index .carousel-slide.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: scale(1) !important;
  z-index: 1 !important;
}

body.page-index .carousel-visual {
  z-index: 0 !important;
  overflow: hidden !important;
  background-color: #eaf0fb !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

body.page-index .carousel-visual[data-bg-image] {
  background-image: var(--carousel-bg-image, var(--carousel-fallback-image, none)) !important;
}

body.page-index .carousel-image {
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateZ(0) !important;
  pointer-events: none !important;
}

body.page-index .carousel-overlay {
  z-index: 1 !important;
  pointer-events: none !important;
}

body.page-index .carousel-content {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  min-height: 100% !important;
  height: 100% !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
}

body.page-index .carousel-nav {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 6 !important;
}

@media (min-width: 861px) and (max-width: 1180px) {
  body.page-index .carousel-stage {
    min-height: clamp(420px, 62vw, 620px) !important;
    aspect-ratio: 16 / 10 !important;
  }

  body.page-index .carousel-visual[data-tablet-bg-image] {
    background-image: var(--carousel-tablet-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image, none))) !important;
  }
}

@media (max-width: 860px) {
  body.page-index .carousel-stage {
    min-height: 25rem !important;
    aspect-ratio: 4 / 5 !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26rem !important;
  }

  body.page-index .carousel-visual[data-mobile-bg-image] {
    background-image: var(--carousel-mobile-bg-image, var(--carousel-bg-image, var(--carousel-fallback-image, none))) !important;
  }
}

@media (max-width: 420px) {
  body.page-index .carousel-stage {
    min-height: 25.5rem !important;
  }

  body.page-index.access-large-text .carousel-stage,
  html.access-large-text body.page-index .carousel-stage {
    min-height: 26.5rem !important;
  }
}

/* Correctif v201 : titre d'accueil +texte moins massif sur mobile. */
@media (max-width: 760px) {
  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: clamp(28px, 5.2vw, 32px) !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 420px) {
  body.page-index.access-large-text .home-hero-title h1,
  html.access-large-text body.page-index .home-hero-title h1,
  body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
  html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
    font-size: clamp(27px, 7vw, 30px) !important;
  }
}

/* Correctif v202 : +texte augmente les textes d'accueil de 1pt par rapport a l'etat initial. */
body.page-index.access-large-text .home-hero-title h1,
html.access-large-text body.page-index .home-hero-title h1,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-title h1,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-title h1 {
  font-size: calc(var(--bm-home-title-size) + 3pt) !important;
  line-height: 1.08 !important;
}

body.page-index.access-large-text .home-hero-subtitle,
html.access-large-text body.page-index .home-hero-subtitle,
body:not(.access-high-contrast).page-index.access-large-text .home-hero-subtitle,
html.access-large-text body:not(.access-high-contrast).page-index .home-hero-subtitle {
  font-size: calc(var(--bm-home-subtitle-size) + 4pt) !important;
  line-height: 1.6 !important;
}

body.page-index.access-large-text .carousel-caption .tag,
html.access-large-text body.page-index .carousel-caption .tag,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption .tag,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption .tag {
  font-size: calc(var(--bm-carousel-tag-size) + 1pt) !important;
}

body.page-index.access-large-text .carousel-caption h3,
html.access-large-text body.page-index .carousel-caption h3,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption h3,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption h3 {
  font-size: calc(var(--bm-carousel-title-size) + 1pt) !important;
}

body.page-index.access-large-text .carousel-caption p,
html.access-large-text body.page-index .carousel-caption p,
body:not(.access-high-contrast).page-index.access-large-text .carousel-caption p,
html.access-large-text body:not(.access-high-contrast).page-index .carousel-caption p {
  font-size: calc(var(--bm-carousel-text-size) + 1pt) !important;
}

/* Correctif v203 : logo accueil mobile toujours a gauche avec une marge courte. */
@media (max-width: 760px) {
  body.page-index .site-topbar .site-container.site-nav {
    padding-left: calc(10px + env(safe-area-inset-left, 0px)) !important;
  }

  body.page-index .site-topbar .site-brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    width: auto !important;
    max-width: min(58vw, 210px) !important;
    margin: 0 auto 0 0 !important;
    text-align: left !important;
  }

  body.page-index .site-topbar .site-brand-logo {
    display: block !important;
    margin: 0 auto 0 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
  }
}
