/* Public return-to-top control, ported from the original SDX site UI. */
.go-top {
  position: fixed;
  right: max(clamp(1rem, 2vw, 1.5rem), env(safe-area-inset-right, 0px));
  bottom: max(clamp(1rem, 2vw, 1.5rem), env(safe-area-inset-bottom, 0px));
  z-index: 1030;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 40%);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, var(--go-top-accent, #007782), var(--go-top-ink, #092c4c));
  box-shadow: 0 .7rem 1.75rem rgb(2 27 42 / 30%);
  opacity: 0;
  visibility: hidden;
  transform: translateY(1rem) scale(.94);
  pointer-events: none;
  cursor: pointer;
  transition: transform 180ms ease, opacity 180ms ease, visibility 0s linear 180ms;
}
.go-top.is-visible {
  pointer-events: auto;
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}
.go-top:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--go-top-hover-accent, #008d98), var(--go-top-ink, #092c4c));
  transform: translateY(-.2rem) scale(1.04);
}
.go-top:focus-visible { outline: 3px solid #7de0dd; outline-offset: 3px; }
.go-top .bi { font-size: 1.35rem; line-height: 1; }
@media (prefers-reduced-motion: reduce) {
  .go-top { transition: none; }
}

/* Page shell: the navigation and editorial chrome stay outside TinyMCE. */
.site-shell {
  --navigation-overlay-initial-color: #073843;
  --navigation-overlay-initial-opacity: 76%;
  --navigation-overlay-scrolled-color: #062c36;
  --navigation-overlay-scrolled-opacity: 98%;
  --navigation-overlay-transition: 280ms;
  position: relative;
  /* Les heroes pleine largeur utilisent 100vw : sur un écran avec barre de
     défilement verticale, cette unité inclut parfois sa largeur. Le shell
     contient alors uniquement ce dépassement décoratif, sans créer de scroll
     horizontal ni rogner le défilement vertical. */
  overflow-x: clip;
  background: var(--bs-body-bg, #fff);
}

/* Hero éditorial : composant libre, distinct de l’en-tête global. Son HTML
   et son CSS sont écrits dans le bloc (manuellement ou par l’IA). */
.page-block--hero {
  position: relative;
  margin-inline: calc(50% - 50vw);
}

.site-shell__navigation {
  position: relative;
  z-index: 30;
}

.site-shell__navigation--overlay {
  position: absolute;
  inset: 0 0 auto;
  /* La marge appartient au menu ; le hero reste visible derrière elle. */
  padding: clamp(.5rem, 1.25vw, 1.1rem) clamp(.5rem, 1.8vw, 1.5rem) 0;
  transition: padding var(--navigation-overlay-transition) ease;
}

.site-shell[data-navigation-behavior="sticky"] .site-shell__navigation {
  position: sticky;
  top: 0;
}

/* En mode « superposé + fixe », le menu ne réserve aucune hauteur : le hero
   commence à y=0, derrière la gouttière et la barre. */
.site-shell[data-navigation-position="overlay"][data-navigation-behavior="sticky"] .site-shell__navigation--overlay {
  position: absolute;
  top: 0;
  margin-bottom: 0;
}

/* Au défilement, le panneau devient une barre pleine largeur attachée en haut.
   Cela conserve l'élégance du menu posé sur le hero tout en améliorant la
   lisibilité sur le contenu. */
.site-shell[data-navigation-position="overlay"][data-navigation-behavior="sticky"].site-shell--navigation-scrolled .site-shell__navigation--overlay {
  position: fixed;
  inset: 0 0 auto;
  padding: 0;
  margin-bottom: 0;
}

.site-shell[data-navigation-position="overlay"] .main-nav-container {
  /* La couleur initiale est réglable page par page ; elle reste translucide
     pour que le hero soit visible sous la navigation. */
  border: 1px solid color-mix(in srgb, var(--menu-border, rgba(24, 52, 60, .13)) 88%, transparent);
  border-radius: clamp(.7rem, 1.1vw, 1rem);
  background-color: var(--navigation-overlay-initial-color);
  background-color: color-mix(in srgb, var(--navigation-overlay-initial-color) var(--navigation-overlay-initial-opacity), transparent);
  background-image: none;
  box-shadow: 0 1rem 2.5rem rgba(2, 17, 23, .22);
  backdrop-filter: blur(16px) saturate(135%);
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  transition: background-color var(--navigation-overlay-transition) ease, border-color var(--navigation-overlay-transition) ease, border-radius var(--navigation-overlay-transition) ease, box-shadow var(--navigation-overlay-transition) ease;
}

/* Le menu superposé conserve la grille publique de 1440 px. */
.site-shell[data-navigation-position="overlay"] .main-nav-container .navbar {
  width: min(calc(100% - 2rem), var(--sdx-site-content-max, 90rem));
  max-width: var(--sdx-site-content-max, 90rem);
  margin-inline: auto;
  padding-inline: clamp(.85rem, 1.25vw, 1.35rem);
}

.site-shell[data-navigation-position="overlay"][data-navigation-behavior="sticky"].site-shell--navigation-scrolled .main-nav-container {
  border-right-width: 0;
  border-left-width: 0;
  border-radius: 0;
  background-color: var(--navigation-overlay-scrolled-color);
  background-color: color-mix(in srgb, var(--navigation-overlay-scrolled-color) var(--navigation-overlay-scrolled-opacity), transparent);
  box-shadow: 0 .45rem 1.5rem rgba(2, 17, 23, .18);
}

/* Un en-tête simple doit laisser la même respiration que le hero : son titre
   ne passe jamais sous la barre superposée. */
.site-shell[data-navigation-position="overlay"] .page-header--simple {
  padding-top: calc(clamp(2.5rem, 7vw, 6rem) + 5.7rem);
}

@media (prefers-reduced-motion: reduce) {
  .site-shell__navigation--overlay,
  .site-shell[data-navigation-position="overlay"] .main-nav-container {
    transition: none;
  }
}

/* Navigation: prevent a custom logo from stretching the menu bar. */
.main-nav-container .navbar-brand {
  display: inline-flex;
  flex: 0 0 clamp(7.5rem, 13vw, 11.25rem);
  align-items: center;
  width: clamp(7.5rem, 13vw, 11.25rem);
  height: 3.5rem;
  min-width: 0;
  overflow: hidden;
}

.main-nav-container .navbar-brand img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: left center;
}

/* Navigation publique : valeurs par défaut sobres et lisibles, puis variantes
   administrables dans « Menu > Réglages ». */
.main-nav-container {
  --menu-bg: #fff;
  --menu-bg-solid: #fff;
  --menu-text: #18343c;
  --menu-muted: #60747a;
  --menu-accent: #087f95;
  --menu-on-accent: #fff;
  --menu-accent-soft: #e4f5f8;
  --menu-border: rgba(24, 52, 60, .13);
  --menu-shadow: 0 8px 24px rgba(10, 38, 46, .06);
  position: relative;
  background: var(--menu-bg);
  border-bottom: 1px solid var(--menu-border);
  box-shadow: var(--menu-shadow);
  color: var(--menu-text);
  overflow: visible;
}

.main-nav-container.menu-surface--dark {
  --menu-bg: #102b33;
  --menu-bg-solid: #102b33;
  --menu-text: #f5fbfc;
  --menu-muted: #bbd0d5;
  --menu-accent: #71d4e2;
  --menu-on-accent: #102b33;
  --menu-accent-soft: rgba(113, 212, 226, .17);
  --menu-border: rgba(230, 251, 252, .16);
}

.main-nav-container.menu-surface--brand {
  --menu-bg: linear-gradient(115deg, #075d74, #0c99ad);
  --menu-bg-solid: #075d74;
  --menu-text: #fff;
  --menu-muted: #daf8fc;
  --menu-accent: #fff;
  --menu-on-accent: #075d74;
  --menu-accent-soft: rgba(255, 255, 255, .16);
  --menu-border: rgba(255, 255, 255, .22);
}

.main-nav-container .navbar {
  width: min(calc(100% - 2rem), var(--sdx-site-content-max, 90rem));
  min-height: 5.1rem;
  margin-inline: auto;
  padding: .75rem 0;
  gap: 1.25rem;
}

.main-nav-container .navbar-collapse {
  min-width: 0;
}

.main-nav-container .navbar-nav {
  align-items: center;
  gap: .15rem;
}

.main-nav-container .navbar-nav .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2.65rem;
  padding: .58rem .85rem;
  border-radius: .65rem;
  color: var(--menu-text);
  font-size: .94rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.main-nav-container .navbar-nav .nav-link:hover,
.main-nav-container .navbar-nav .nav-link:focus-visible,
.main-nav-container .navbar-nav .nav-link.active {
  background: var(--menu-accent-soft);
  color: var(--menu-accent);
}

/* Un parent avec enfants devient un bouton unique : son libellé et son chevron
   forment le déclencheur explicite du sous-menu. */
.main-nav-container .menu-submenu-toggle {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  width: auto;
  height: auto;
  margin: 0;
  font: inherit;
  border: 0;
  border-radius: .65rem;
  background: transparent;
  color: var(--menu-text);
  cursor: pointer;
}

.main-nav-container .menu-submenu-toggle:hover,
.main-nav-container .menu-submenu-toggle:focus-visible {
  background: var(--menu-accent-soft);
  color: var(--menu-accent);
}

.main-nav-container .dropdown.show .menu-submenu-toggle {
  background: transparent;
  color: var(--menu-accent);
}

/* Le sous-menu ouvert est déjà signalé par le chevron et sa couleur.
   On retire le cadre de focus persistant après un clic, sans modifier le
   focus visible des liens et boutons lorsque le menu est fermé. */
.main-nav-container .dropdown.show .menu-submenu-toggle:focus-visible {
  outline: 0;
  background: transparent;
  box-shadow: none;
}

.main-nav-container .menu-submenu-toggle i {
  font-size: .72rem;
  transition: transform .2s ease;
}

.main-nav-container .menu-submenu-toggle[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.main-nav-container .menu-submenu-toggle:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--menu-accent, #087f95) 52%, transparent);
  outline-offset: 2px;
}

.main-nav-container .navbar-nav .nav-link:focus-visible,
.offcanvas-trigger:focus-visible,
.off-canvas-close:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--menu-accent, #087f95) 52%, transparent);
  outline-offset: 2px;
}

.main-nav-container.menu-style--underline .navbar-nav .nav-link {
  border-radius: 0;
}

.main-nav-container.menu-style--underline .navbar-nav .nav-link::after {
  position: absolute;
  right: .85rem;
  bottom: .3rem;
  left: .85rem;
  height: 2px;
  border-radius: 99px;
  background: var(--menu-accent);
  content: "";
  opacity: 0;
  transform: scaleX(.45);
  transition: opacity .18s ease, transform .18s ease;
}

.main-nav-container.menu-style--underline .navbar-nav .nav-link:hover,
.main-nav-container.menu-style--underline .navbar-nav .nav-link:focus-visible,
.main-nav-container.menu-style--underline .navbar-nav .nav-link.active {
  background: transparent;
}

.main-nav-container.menu-style--underline .navbar-nav .nav-link:hover::after,
.main-nav-container.menu-style--underline .navbar-nav .nav-link:focus-visible::after,
.main-nav-container.menu-style--underline .navbar-nav .nav-link.active::after {
  opacity: 1;
  transform: scaleX(1);
}

.main-nav-container.menu-style--minimal .navbar-nav {
  gap: clamp(.75rem, 1vw, 1rem);
}

.main-nav-container.menu-style--minimal .navbar-nav .nav-link {
  min-height: auto;
  padding: .35rem .15rem;
  border-radius: 0;
}

.main-nav-container.menu-style--minimal .navbar-nav .nav-link:hover,
.main-nav-container.menu-style--minimal .navbar-nav .nav-link:focus-visible,
.main-nav-container.menu-style--minimal .navbar-nav .nav-link.active {
  background: transparent;
  color: var(--menu-accent);
}

.main-nav-container.menu-align--center .navbar-collapse {
  justify-content: center;
}

.main-nav-container.menu-align--center .navbar-nav {
  margin-inline: auto;
}

.main-nav-container.menu-align--center .navbar-nav.me-auto {
  margin-right: auto !important;
  margin-left: auto !important;
}

.main-nav-container.menu-align--end .navbar-collapse {
  justify-content: flex-end;
}

.main-nav-container.menu-align--end .navbar-nav {
  margin-left: auto;
}

.main-nav-container.menu-align--end .navbar-nav.me-auto {
  margin-right: 0 !important;
  margin-left: auto !important;
}

.main-nav-container .navbar-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .5rem;
}

.offcanvas-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  min-height: 2.55rem;
  padding: .55rem .82rem;
  border: 1px solid var(--menu-accent);
  border-radius: .65rem;
  background: var(--menu-accent);
  color: var(--menu-on-accent);
  font: inherit;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
}

.offcanvas-trigger:hover {
  transform: translateY(-1px);
  filter: brightness(.96);
}

.offcanvas-trigger--outline {
  background: transparent;
  color: var(--menu-accent);
}

.offcanvas-trigger--minimal {
  min-height: 2.35rem;
  padding: .45rem .35rem;
  border-color: transparent;
  background: transparent;
  color: var(--menu-accent);
}

.offcanvas-trigger--icon {
  width: 2.55rem;
  padding-inline: .45rem;
}

.offcanvas-trigger--icon .offcanvas-trigger__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-search-trigger {
  display: inline-grid;
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  padding: 0;
  place-items: center;
  border: 1px solid var(--menu-border);
  border-radius: .65rem;
  background: var(--menu-accent-soft);
  color: var(--menu-text);
  font: inherit;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}

.site-search-trigger:hover,
.site-search-trigger:focus-visible,
.site-search-trigger[aria-expanded="true"] {
  border-color: var(--menu-accent);
  background: var(--menu-accent-soft);
  color: var(--menu-accent);
}

.site-search-trigger:hover { transform: translateY(-1px); }
.site-search-trigger[hidden] { display: none !important; }
.site-nav-tree > .site-search-trigger { width: 44px; height: 44px; flex: 0 0 44px; align-self: center; }
.site-search-trigger__label { display: none; }
@media (max-width: 1100px) {
  .site-nav-tree > .site-search-trigger { display: inline-flex; justify-content: center; align-items: center; gap: .6rem; width: 100%; margin-top: 12px; }
  .site-nav-tree .site-search-trigger__label { display: inline; }
}

.site-language-switcher > .navbar-action {
  display: inline-flex;
  min-height: 2.55rem;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  padding: .45rem .68rem;
  border: 1px solid var(--menu-border);
  border-radius: .65rem;
  background: var(--menu-accent-soft);
  color: var(--menu-text);
  font: inherit;
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .05em;
  cursor: pointer;
}

.site-language-switcher > .navbar-action:hover,
.site-language-switcher > .navbar-action:focus-visible,
.site-language-switcher > .navbar-action[aria-expanded="true"] {
  border-color: var(--menu-accent);
  color: var(--menu-accent);
}

.site-language-switcher .dropdown-menu {
  min-width: 11rem;
  padding: .45rem;
  border-color: var(--menu-border);
  border-radius: .75rem;
}

.site-language-switcher .dropdown-item {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .58rem .65rem;
  border-radius: .48rem;
}

.site-language-switcher .dropdown-item strong {
  min-width: 1.8rem;
  color: var(--menu-accent);
  font-size: .72rem;
  letter-spacing: .05em;
}

.site-language-switcher .dropdown-item span { font-size: .86rem; }
.site-language-switcher .dropdown-item.active { background: var(--menu-accent); color: var(--menu-on-accent); }
.site-language-switcher .dropdown-item.active strong { color: inherit; }

.site-search-trigger:focus-visible,
.site-search-dialog__close:focus-visible,
.site-search-form input:focus-visible,
.site-search-form button:focus-visible,
.site-search-result:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--menu-accent, #087f95) 48%, transparent);
  outline-offset: 2px;
}

html.site-search-locked,
body.site-search-is-open,
body.site-search-transition-active {
  overflow: hidden;
  overscroll-behavior: none;
}

/* Comme l’off-canvas en perspective, la recherche avancée transforme un
   viewport stable plutôt que la page longue entière. */
body.site-search-transition-active.site-search-effect-perspective {
  background:
    radial-gradient(circle at 50% 4%, rgb(55 190 193 / 26%), transparent 28rem),
    linear-gradient(180deg, #062832, #031a22 72%);
}

body.site-search-transition-active.site-search-effect-perspective .off-canvas-stage {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  contain: layout paint;
  border: 1px solid rgb(174 236 239 / 18%);
  border-radius: 1.35rem;
  box-shadow: 0 2.8rem 7rem rgb(0 12 17 / 58%);
  transform: none;
  transform-style: preserve-3d;
  transform-origin: center top;
  transition: transform 680ms cubic-bezier(.16, .82, .22, 1), border-radius 680ms ease, box-shadow 680ms ease;
  will-change: transform;
}

body.site-search-transition-active.site-search-effect-perspective .off-canvas-stage__content {
  position: absolute;
  inset-inline: 0;
  top: calc(-1 * var(--site-search-scroll-y, 0px));
  width: 100%;
  min-height: 100dvh;
}

body.site-search-is-open.site-search-effect-perspective .off-canvas-stage {
  transform: perspective(1500px) translateY(clamp(7rem, 15vh, 11rem)) translateZ(-70px) rotateX(7deg) scale(.84);
}

.site-search-layer[hidden] { display: none !important; }

.site-search-layer {
  position: fixed;
  inset: 0;
  z-index: 1250;
  display: grid;
  align-items: start;
  justify-items: center;
  padding: clamp(5rem, 10vh, 8rem) 1rem 1rem;
  color: #15343d;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}

.site-search-layer.is-open {
  opacity: 1;
  pointer-events: auto;
}

.site-search-layer--perspective {
  padding-top: clamp(1.25rem, 4vh, 3.25rem);
}

.site-search-layer--perspective .site-search-layer__backdrop {
  background: rgb(1 17 23 / 48%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition-duration: 620ms;
}

.site-search-layer--perspective .site-search-dialog {
  max-height: min(42rem, calc(100dvh - clamp(7rem, 15vh, 11rem)));
  transform: perspective(1100px) translateY(-135%) translateZ(-40px) rotateX(-8deg) scale(.94);
  transform-origin: center top;
  transition-duration: 680ms;
  transition-timing-function: cubic-bezier(.16, .82, .22, 1);
}

.site-search-layer--perspective.is-open .site-search-dialog {
  transform: perspective(1100px) translateY(0) translateZ(0) rotateX(0) scale(1);
}

.site-search-layer__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(2 18 24 / 72%);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.site-search-dialog {
  position: relative;
  display: flex;
  width: min(100%, 54rem);
  max-height: min(46rem, calc(100dvh - clamp(6rem, 12vh, 9rem)));
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgb(98 195 193 / 42%);
  border-radius: 1.3rem;
  background: #f8fcfc;
  box-shadow: 0 2rem 6rem rgb(0 15 20 / 38%);
  transform: translateY(-.8rem) scale(.985);
  transition: transform .2s ease;
}

.site-search-layer.is-open .site-search-dialog { transform: translateY(0) scale(1); }

.site-search-dialog__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.15rem, 3vw, 1.7rem) clamp(1rem, 4vw, 2rem) .75rem;
}

.site-search-dialog__eyebrow {
  display: block;
  margin-bottom: .28rem;
  color: #168b8b;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.site-search-dialog__header h2 {
  margin: 0;
  color: #0b303a;
  font-size: clamp(1.35rem, 3vw, 2rem);
  letter-spacing: -.03em;
}

.site-search-dialog__close {
  display: inline-grid;
  width: 2.6rem;
  height: 2.6rem;
  flex: 0 0 2.6rem;
  padding: 0;
  place-items: center;
  border: 1px solid #bed5da;
  border-radius: .75rem;
  background: #fff;
  color: #315861;
  cursor: pointer;
}

.site-search-dialog__close:hover { border-color: #399; color: #17777a; }

.site-search-form {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: .35rem clamp(1rem, 4vw, 2rem) 0;
  border: 1px solid #8bbcc4;
  border-radius: .9rem;
  background: #fff;
  box-shadow: 0 .8rem 2rem rgb(14 73 83 / 8%);
}

.site-search-form:focus-within {
  border-color: #268f94;
  box-shadow: 0 0 0 4px rgb(51 153 153 / 12%), 0 .8rem 2rem rgb(14 73 83 / 10%);
}

.site-search-form__icon {
  position: absolute;
  top: 50%;
  left: 1rem;
  color: #268f94;
  font-size: 1.08rem;
  transform: translateY(-50%);
  pointer-events: none;
}

.site-search-form input {
  width: 100%;
  min-width: 0;
  min-height: 3.55rem;
  padding: .85rem 1rem .85rem 2.85rem;
  border: 0;
  border-radius: .9rem 0 0 .9rem;
  background: transparent;
  color: #15343d;
  font: inherit;
  font-size: 1rem;
}

.site-search-form input::-webkit-search-cancel-button { cursor: pointer; }
.site-search-form input:focus { outline: 0; }

.site-search-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-width: 8.8rem;
  margin: .35rem;
  padding: .65rem 1rem;
  border: 0;
  border-radius: .65rem;
  background: #167f86;
  color: #fff;
  font: inherit;
  font-size: .9rem;
  font-weight: 800;
  cursor: pointer;
}

.site-search-form button:hover { background: #0d6972; }

.site-search-dialog__status {
  min-height: 1.3rem;
  margin: .8rem clamp(1rem, 4vw, 2rem) .45rem;
  color: #56747b;
  font-size: .83rem;
}

.site-search-results {
  align-content: start;
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0 clamp(.55rem, 2vw, 1.25rem);
  padding: .2rem clamp(.45rem, 2vw, .75rem) 1rem;
  gap: .35rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #8fc7ca transparent;
  scrollbar-width: thin;
}

.site-search-results[hidden] { display: none; }

.site-search-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .85rem;
  padding: .85rem;
  border: 1px solid transparent;
  border-radius: .85rem;
  color: #15343d;
  text-decoration: none;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.site-search-result:hover,
.site-search-result:focus-visible {
  border-color: #b7dadd;
  background: #eaf7f7;
  color: #0b525d;
  transform: translateX(.18rem);
}

.site-search-result__icon {
  display: inline-grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  border-radius: .72rem;
  background: #d9f1f1;
  color: #13777d;
  font-size: 1.05rem;
}

.site-search-result__copy {
  display: grid;
  min-width: 0;
  gap: .15rem;
}

.site-search-result__copy strong {
  overflow: hidden;
  color: #0d3540;
  font-size: .98rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-search-result__meta {
  overflow: hidden;
  color: #168484;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-search-result__excerpt {
  display: -webkit-box;
  overflow: hidden;
  color: #60777d;
  font-size: .82rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.site-search-result__arrow { color: #4e888d; font-size: .9rem; }

.site-search-dialog__footer {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  padding: .7rem clamp(1rem, 4vw, 2rem);
  border-top: 1px solid #d5e4e6;
  background: #f2f8f8;
  color: #71868b;
  font-size: .7rem;
}

.site-search-dialog__footer span { display: inline-flex; align-items: center; gap: .2rem; }
.site-search-dialog__footer kbd {
  padding: .12rem .3rem;
  border: 1px solid #c3d5d8;
  border-radius: .25rem;
  background: #fff;
  box-shadow: none;
  color: #4b676d;
  font: inherit;
}

.main-nav-container .navbar-toggler {
  display: none;
  width: 2.7rem;
  height: 2.55rem;
  padding: .45rem;
  border: 1px solid var(--menu-border);
  border-radius: .65rem;
  background: var(--menu-accent-soft);
  color: var(--menu-text);
}

.main-nav-container .navbar-toggler .menubtn {
  position: relative;
  display: block;
  width: 1.25rem;
  height: 1rem;
}

.main-nav-container .navbar-toggler .menubtn span {
  position: absolute;
  right: 0;
  left: 0;
  width: 1.25rem;
  height: 2px;
  margin-inline: auto;
  border-radius: 99px;
  background: currentColor;
  transform-origin: center;
  transition: transform .24s cubic-bezier(.4, 0, .2, 1), opacity .18s ease, top .24s cubic-bezier(.4, 0, .2, 1);
}

.main-nav-container .navbar-toggler .menubtn span:nth-child(1) {
  top: 0;
}

.main-nav-container .navbar-toggler .menubtn span:nth-child(2) {
  top: calc(50% - 1px);
}

.main-nav-container .navbar-toggler .menubtn span:nth-child(3) {
  bottom: 0;
}

.main-nav-container .navbar-toggler[aria-expanded="true"] .menubtn span:nth-child(1) {
  top: calc(50% - 1px);
  transform: rotate(45deg);
}

.main-nav-container .navbar-toggler[aria-expanded="true"] .menubtn span:nth-child(2) {
  opacity: 0;
  transform: scaleX(.35);
}

.main-nav-container .navbar-toggler[aria-expanded="true"] .menubtn span:nth-child(3) {
  bottom: calc(50% - 1px);
  transform: rotate(-45deg);
}

@media (prefers-reduced-motion: reduce) {
  .main-nav-container .navbar-toggler .menubtn span {
    transition: none;
  }
}

.main-nav-container .dropdown-menu {
  min-width: 13rem;
  padding: .4rem;
  border: 1px solid var(--menu-border);
  border-radius: .75rem;
  box-shadow: 0 16px 36px rgba(8, 33, 41, .16);
}

.main-nav-container .dropdown-item {
  border-radius: .45rem;
  font-weight: 600;
}

/* Dropdown bureau : panneau flottant lisible, sans le rendu Bootstrap brut. */
@media (min-width: 1200px) {
  .main-nav-container .navbar-nav > .dropdown {
    position: relative;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu {
    display: block;
    top: calc(100% + .55rem) !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 1040;
    width: max-content;
    min-width: 10.5rem;
    max-width: calc(100vw - 1rem);
    margin-top: 0;
    padding: .45rem;
    border: 1px solid rgba(20, 48, 57, .12);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 18px 42px rgba(6, 30, 38, .18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-.35rem) scale(.98) !important;
    transform-origin: top left;
    transition: opacity .16s ease, transform .18s ease, visibility .18s ease;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1) !important;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu.dropdown-menu-end {
    right: 0 !important;
    left: auto !important;
    transform-origin: top right;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu.dropdown-menu-end::before {
    right: 1.35rem;
    left: auto;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu::before {
    position: absolute;
    top: -.38rem;
    left: 1.35rem;
    width: .7rem;
    height: .7rem;
    border-top: 1px solid rgba(20, 48, 57, .12);
    border-left: 1px solid rgba(20, 48, 57, .12);
    background: #fff;
    content: "";
    transform: rotate(45deg);
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    min-height: 2.55rem;
    padding: .62rem .75rem;
    border-radius: .58rem;
    color: #17343c;
    transition: transform .16s ease, background-color .16s ease, color .16s ease;
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu .dropdown-item:hover,
  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu .dropdown-item:focus-visible {
    background: color-mix(in srgb, var(--menu-accent) 14%, white);
    color: var(--menu-accent);
    transform: translateX(.16rem);
  }

  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu .dropdown-item.active,
  .main-nav-container .navbar-nav > .dropdown > .dropdown-menu .dropdown-item:active {
    background: var(--menu-accent);
    color: var(--menu-on-accent);
    box-shadow: 0 6px 14px color-mix(in srgb, var(--menu-accent) 32%, transparent);
  }
}

/* Panneau latéral commun : le contenu éditorial reste libre mais le contenant,
   l'animation et l'accessibilité ne dépendent plus d'un CSS TinyMCE. */
html.offcanvas-locked,
body.offcanvas-open,
body.offcanvas-transition-active {
  overflow: hidden;
  overscroll-behavior: none;
}

/* La scène regroupe la page et son pied de page. Elle reste neutre pour
   l’effet superposé, puis devient le plan déplacé par les effets avancés. */
.off-canvas-stage {
  position: relative;
  min-height: 100dvh;
  background: var(--bs-body-bg, #fff);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  isolation: isolate;
  transform: none;
  transform-style: flat;
  transform-origin: center center;
  transition: transform .46s cubic-bezier(.2, .72, .18, 1), border-radius .46s ease, box-shadow .46s ease;
}

.off-canvas-stage__content {
  min-height: inherit;
}

/* Les effets avancés transforment uniquement une fenêtre de la taille de
   l’écran. Le contenu long reste un calque normal décalé par sa position :
   Chromium n’a donc plus à rasteriser toute la page en une texture géante. */
body.offcanvas-transition-active:is(.offcanvas-effect-push, .offcanvas-effect-perspective) .off-canvas-stage {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  contain: layout paint;
}

body.offcanvas-transition-active:is(.offcanvas-effect-push, .offcanvas-effect-perspective) .off-canvas-stage__content {
  position: absolute;
  inset-inline: 0;
  top: calc(-1 * var(--offcanvas-scroll-y, 0px));
  width: 100%;
  min-height: 100dvh;
}

.off-canvas-wrap {
  --offcanvas-panel-width: min(30rem, calc(100vw - 1rem));
  position: fixed;
  z-index: 1100;
  inset: 0;
  overflow: clip;
  pointer-events: none;
}

.off-canvas-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(4, 22, 29, .62);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  cursor: default;
  opacity: 0;
  transition: opacity .24s ease;
}

.off-canvas-widget {
  position: absolute;
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  width: var(--offcanvas-panel-width);
  padding: 1.1rem 1.25rem;
  overflow: auto;
  isolation: isolate;
  background:
    radial-gradient(circle at 90% 3%, rgba(94, 205, 211, .16), transparent 17rem),
    linear-gradient(160deg, #ffffff, #f5fafb 62%, #edf5f6);
  border-inline: 1px solid rgba(23, 83, 94, .14);
  box-shadow: 0 1.5rem 4.5rem rgba(1, 20, 26, .35);
  color: #18343c;
  outline: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}

/* Poussée : le panneau occupe l’espace libéré au lieu de simplement recouvrir
   la page. Le fond reste cliquable grâce au backdrop accessible. */
.off-canvas-wrap--effect-push .off-canvas-widget {
  transition-duration: .4s;
}

body.offcanvas-open.offcanvas-effect-push.offcanvas-side-right .off-canvas-stage {
  will-change: transform;
  transform: translate3d(max(-30rem, calc(-100vw + 1rem)), 0, 0);
}

body.offcanvas-open.offcanvas-effect-push.offcanvas-side-left .off-canvas-stage {
  will-change: transform;
  transform: translate3d(min(30rem, calc(100vw - 1rem)), 0, 0);
}

body.offcanvas-open.offcanvas-effect-push .off-canvas-backdrop {
  background: rgba(4, 22, 29, .28);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Perspective : hommage à l’ancien panneau Cyclo. Le site devient un plan
   tridimensionnel qui s’écarte pour révéler le contenu latéral. */
.off-canvas-wrap--effect-perspective {
  --offcanvas-panel-width: min(32rem, calc(100vw - 1.25rem));
}

.off-canvas-wrap--effect-perspective .off-canvas-widget {
  transition-duration: var(--offcanvas-perspective-duration, 720ms);
  transition-timing-function: cubic-bezier(.16, .82, .22, 1);
}

.off-canvas-wrap--effect-perspective.off-canvas-wrap--right .off-canvas-widget {
  transform: translate3d(112%, 0, 0) scale(.94);
}

.off-canvas-wrap--effect-perspective.off-canvas-wrap--left .off-canvas-widget {
  transform: translate3d(-112%, 0, 0) scale(.94);
}

.off-canvas-wrap--effect-perspective.is-open .off-canvas-widget,
.off-canvas-wrap--effect-perspective.show-off-canvas .off-canvas-widget {
  transform: translate3d(0, 0, 0) scale(1);
}

body.offcanvas-transition-active.offcanvas-effect-perspective {
  --offcanvas-perspective-duration: 720ms;
  background:
    radial-gradient(circle at 78% 18%, rgba(45, 181, 187, .22), transparent 28rem),
    linear-gradient(145deg, #041d25, #073b48 58%, #0a5260);
}

body.offcanvas-transition-active.offcanvas-effect-perspective .off-canvas-stage {
  border: 1px solid rgba(174, 236, 239, .18);
  border-radius: 1.35rem;
  box-shadow: 0 2.5rem 7rem rgba(0, 12, 17, .56);
  transform-style: preserve-3d;
  transition-duration: var(--offcanvas-perspective-duration);
  transition-timing-function: cubic-bezier(.16, .82, .22, 1);
  will-change: transform;
}

body.offcanvas-open.offcanvas-effect-perspective.offcanvas-side-right .off-canvas-stage {
  /* La scène est désormais limitée au viewport : une vraie rotation 3D peut
     être utilisée sans transformer la texture de toute la longue page. */
  transform: perspective(1500px) translateX(clamp(-12rem, -9vw, -6rem)) translateZ(-60px) rotateY(8deg) scale(.82);
  transform-origin: center center;
}

body.offcanvas-open.offcanvas-effect-perspective.offcanvas-side-left .off-canvas-stage {
  transform: perspective(1500px) translateX(clamp(6rem, 9vw, 12rem)) translateZ(-60px) rotateY(-8deg) scale(.82);
  transform-origin: center center;
}

body.offcanvas-open.offcanvas-effect-perspective .off-canvas-backdrop {
  background: rgba(1, 17, 23, .7);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition-duration: 620ms;
  transition-timing-function: ease-out;
}

.off-canvas-wrap--right .off-canvas-widget {
  right: 0;
  transform: translateX(105%);
}

.off-canvas-wrap--left .off-canvas-widget {
  left: 0;
  transform: translateX(-105%);
}

.off-canvas-wrap.is-open {
  pointer-events: auto;
}

.off-canvas-wrap.is-open .off-canvas-backdrop,
.off-canvas-wrap.show-off-canvas .off-canvas-backdrop {
  opacity: 1;
}

.off-canvas-wrap.is-open .off-canvas-widget,
.off-canvas-wrap.show-off-canvas .off-canvas-widget {
  transform: translateX(0);
}

@media (max-width: 991.98px) {
  /* Sur petit écran, la profondeur devient une poussée légère afin que le
     panneau reste lisible et que le GPU mobile ne travaille pas inutilement. */
  body.offcanvas-open.offcanvas-effect-perspective .off-canvas-stage {
    border-radius: .9rem;
  }

  body.offcanvas-open.offcanvas-effect-perspective.offcanvas-side-right .off-canvas-stage {
    transform: translateX(-14vw) scale(.96);
    transform-origin: left center;
  }

  body.offcanvas-open.offcanvas-effect-perspective.offcanvas-side-left .off-canvas-stage {
    transform: translateX(14vw) scale(.96);
    transform-origin: right center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .off-canvas-stage,
  .off-canvas-widget,
  .off-canvas-backdrop {
    transition: none !important;
  }

  body.offcanvas-open.offcanvas-effect-push .off-canvas-stage,
  body.offcanvas-open.offcanvas-effect-perspective .off-canvas-stage {
    transform: none;
  }
}

.off-canvas-widget__header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  padding: .15rem 0 .9rem;
  border-bottom: 1px solid rgba(24, 83, 94, .12);
}

.off-canvas-close {
  display: inline-grid;
  width: 2.45rem;
  height: 2.45rem;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(24, 52, 60, .16);
  border-radius: 50%;
  background: #e9f4f5;
  color: #18343c;
  cursor: pointer;
}

.off-canvas-widget__content {
  flex: 1 1 auto;
  min-height: 0;
  padding: 1.45rem .15rem .5rem;
}

.off-canvas-widget__content > :first-child {
  margin-top: 0;
}

.off-canvas-widget__content > :last-child {
  margin-bottom: 0;
}

.sdx-offcanvas-nav > ul,
.sdx-offcanvas-nav ul {
  display: grid;
  gap: .45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sdx-offcanvas-nav ul ul {
  gap: .3rem;
  margin-top: .35rem;
  padding-left: .85rem;
  border-left: 1px solid rgba(24, 52, 60, .14);
}

.sdx-offcanvas-nav a,
.sdx-offcanvas-nav__heading {
  display: block;
  padding: .42rem .55rem;
  border-radius: .55rem;
  color: inherit;
  text-decoration: none;
}

.sdx-offcanvas-nav a:hover,
.sdx-offcanvas-nav a:focus-visible,
.sdx-offcanvas-nav a[aria-current="page"] {
  color: #087b90;
  background: rgba(8, 123, 144, .09);
}

.sdx-offcanvas-nav__heading {
  font-weight: 750;
}

/* Version par défaut : affichée seulement lorsqu'un panneau visible n'a pas
   encore été personnalisé. Les contenus existants conservent leur HTML et
   profitent simplement du nouveau contenant. */
.site-offcanvas-default {
  display: grid;
  align-content: start;
  gap: 1.2rem;
  padding: clamp(.35rem, 1vw, .8rem);
}

.site-offcanvas-default__eyebrow {
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  margin: 0;
  color: #087b90;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.site-offcanvas-default h2,
.off-canvas-widget__content :where(h2, h3):first-child {
  margin: 0;
  color: #123944;
  font-size: clamp(1.65rem, 5vw, 2.3rem);
  font-weight: 760;
  letter-spacing: -.04em;
  line-height: 1.08;
}

.site-offcanvas-default > p:not(.site-offcanvas-default__eyebrow),
.off-canvas-widget__content > p {
  margin: 0;
  color: #526d75;
  line-height: 1.7;
}

.site-offcanvas-default__highlights {
  display: grid;
  gap: .7rem;
  margin: .15rem 0 0;
  padding: 0;
  list-style: none;
}

.site-offcanvas-default__highlight {
  display: grid;
  grid-template-columns: 2.3rem minmax(0, 1fr);
  gap: .8rem;
  align-items: center;
  padding: .8rem .9rem;
  border: 1px solid rgba(9, 123, 144, .13);
  border-radius: .9rem;
  background: rgba(255, 255, 255, .7);
  box-shadow: 0 .55rem 1.35rem rgba(18, 69, 78, .05);
}

.site-offcanvas-default__highlight-icon {
  display: grid;
  width: 2.3rem;
  height: 2.3rem;
  place-items: center;
  border-radius: .7rem;
  color: #087b90;
  background: rgba(155, 229, 229, .52);
}

.site-offcanvas-default__highlight strong,
.site-offcanvas-default__highlight small,
.site-offcanvas-default__availability strong,
.site-offcanvas-default__availability small {
  display: block;
}

.site-offcanvas-default__highlight strong,
.site-offcanvas-default__availability strong {
  color: #183f49;
  font-size: .92rem;
  line-height: 1.35;
}

.site-offcanvas-default__highlight small,
.site-offcanvas-default__availability small {
  margin-top: .14rem;
  color: #607a81;
  font-size: .8rem;
  line-height: 1.45;
}

.site-offcanvas-default__availability {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  padding: .9rem;
  border: 1px solid rgba(9, 123, 144, .17);
  border-radius: .9rem;
  color: #49666e;
  background: linear-gradient(135deg, rgba(196, 238, 238, .56), rgba(255, 255, 255, .44));
  font-size: .9rem;
  line-height: 1.5;
}

.site-offcanvas-default__availability > i {
  margin-top: .16rem;
  color: #087b90;
}

.site-offcanvas-default__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1rem;
  align-items: center;
  margin-top: .1rem;
}

.site-offcanvas-default__action {
  display: inline-flex;
  gap: .55rem;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 2.75rem;
  margin-top: .3rem;
  padding: .65rem 1rem;
  border: 1px solid #087f95;
  border-radius: .75rem;
  color: #fff;
  background: linear-gradient(135deg, #087f95, #076176);
  box-shadow: 0 .7rem 1.4rem rgba(5, 104, 120, .2);
  font: inherit;
  font-size: .92rem;
  font-weight: 750;
  cursor: pointer;
  text-decoration: none;
  transition: transform .18s ease, filter .18s ease;
}

.site-offcanvas-default__action:hover,
.site-offcanvas-default__action:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.site-offcanvas-default__link {
  padding: 0;
  border: 0;
  color: #176579;
  background: transparent;
  font: inherit;
  font-size: .88rem;
  font-weight: 750;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.site-offcanvas-default__link:hover,
.site-offcanvas-default__link:focus-visible {
  color: #073f4c;
}

.site-offcanvas-default__action:focus-visible,
.site-offcanvas-default__link:focus-visible,
.off-canvas-close:focus-visible {
  outline: 3px solid rgba(8, 127, 149, .45);
  outline-offset: 3px;
}

/* Compatibilité des premières données de démonstration : elles bénéficient
   de la même présentation aussi bien sur le site que dans TinyMCE. */
.demo-studio-drawer {
  display: grid;
  align-content: start;
  gap: 1.15rem;
  padding: clamp(.35rem, 1vw, .8rem);
}

.demo-studio-drawer h2 {
  margin: 0;
  color: #123944;
  font-size: clamp(1.65rem, 5vw, 2.3rem);
  font-weight: 760;
  letter-spacing: -.04em;
  line-height: 1.08;
}

.demo-studio-drawer p:not(.demo-studio-kicker) {
  margin: 0;
  color: #526d75;
  line-height: 1.7;
}

.demo-studio-drawer .demo-studio-kicker {
  display: inline-flex;
  align-items: center;
  margin: 0;
  color: #087b90;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.demo-studio-drawer .btn {
  width: fit-content;
  min-height: 2.75rem;
  margin-top: .15rem;
  padding: .65rem 1rem;
  border-radius: .75rem;
  font-weight: 750;
}

.page-header {
  padding: clamp(2.5rem, 7vw, 6rem) 0;
  background:
    radial-gradient(circle at 85% 18%, rgba(111, 223, 207, .28), transparent 28rem),
    linear-gradient(120deg, #064454, #087b8d 58%, #169f9f);
  color: #fff;
}

.page-header--hero {
  min-height: min(56vw, 38rem);
  display: flex;
  align-items: end;
  background-position: center;
  background-size: cover;
}

/* Médias avancés de l’en-tête : les vidéos locales/YouTube et le carrousel
   restent décoratifs ; le titre de page demeure du HTML lisible. */
.page-header--video,
.page-header--youtube,
.page-header--carousel {
  position: relative;
  min-height: min(56vw, 38rem);
  display: flex;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
  background: #062c36;
}

.page-header--video > .container,
.page-header--youtube > .container,
.page-header--carousel > .container {
  position: relative;
  z-index: 3;
}

.page-header__media,
.page-header__carousel-media {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  background: #062c36;
}

.page-header__media::after,
.page-header__carousel-media::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(120deg, rgba(3, 35, 43, .88), rgba(7, 104, 111, .67));
  content: "";
}

.page-header__media-poster,
.page-header__slide {
  position: absolute;
  z-index: 1;
  inset: 0;
  background-position: center;
  background-size: cover;
}

.page-header__youtube-frame {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: max(100%, 177.78vh);
  height: max(100%, 56.25vw);
  border: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.page-header__local-video {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.page-header__video-toggle {
  position: absolute;
  z-index: 4;
  right: clamp(1rem, 3vw, 3rem);
  bottom: clamp(1rem, 2vw, 2rem);
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.4rem;
  padding: .45rem .8rem;
  border: 1px solid rgba(255, 255, 255, .54);
  border-radius: 999px;
  background: rgba(5, 25, 31, .58);
  color: #fff;
  font: inherit;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background-color .18s ease, transform .18s ease;
}

.page-header__video-toggle:hover,
.page-header__video-toggle:focus-visible {
  background: rgba(5, 25, 31, .84);
  transform: translateY(-1px);
}

.page-header__video-toggle:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .85);
  outline-offset: 2px;
}

.page-header--video.is-video-unavailable .page-header__video-toggle {
  display: none;
}

.page-header__slide {
  opacity: 0;
  transition: opacity .7s ease;
}

.page-header__slide.is-active {
  opacity: 1;
}

.page-header__carousel-controls {
  position: absolute;
  z-index: 4;
  right: clamp(1rem, 3vw, 3rem);
  bottom: clamp(1rem, 2vw, 2rem);
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.page-header__carousel-timer {
  min-width: 4rem;
  height: 2.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: 0 .7rem;
  border: 1px solid rgba(255, 255, 255, .54);
  border-radius: 999px;
  background: rgba(5, 25, 31, .58);
  color: #fff;
  font-size: .78rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  backdrop-filter: blur(8px);
}

.page-header__carousel-controls button {
  display: inline-grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .54);
  border-radius: 999px;
  background: rgba(5, 25, 31, .44);
  color: #fff;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: background-color .18s ease, transform .18s ease;
}

.page-header__carousel-controls button:hover,
.page-header__carousel-controls button:focus-visible {
  background: rgba(5, 25, 31, .76);
  transform: translateY(-1px);
}

.page-header__carousel-controls button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .85);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .page-header__local-video[data-respect-reduced-motion="true"] {
    display: none;
  }

  .page-header__slide,
  .page-header__inner[data-hero-carousel-copy],
  .page-header__video-toggle,
  .page-header__carousel-controls button {
    transition: none;
  }
}

.page-header--center .page-header__inner {
  max-width: 52rem;
  margin-inline: auto;
  text-align: center;
}

.page-header__inner[data-hero-carousel-copy] {
  transition: opacity .2s ease, transform .2s ease;
}

.page-header__inner[data-hero-carousel-copy].page-header__inner--switching {
  opacity: .55;
  transform: translateY(.35rem);
}

.page-header h1 {
  margin: 0;
  color: inherit;
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 700;
}

.page-header__eyebrow {
  margin: 0 0 .75rem;
  color: inherit;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-header__intro {
  max-width: 46rem;
  margin: 1rem 0 0;
  font-size: 1.125rem;
}

.page-header-template { min-width: 0; }
.page-header-template--panel {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(13rem, .55fr);
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: end;
}
.page-header-template__panel {
  padding: 1.2rem;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius: 1rem;
  background: color-mix(in srgb, #031318 52%, transparent);
  backdrop-filter: blur(10px);
}
.page-header-template__panel > span {
  display: block;
  margin-bottom: .75rem;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.page-header-template--minimal {
  max-width: 52rem;
  margin-inline: auto;
  text-align: center;
}
.page-header-template--minimal .page-header__intro { margin-inline: auto; }
.page-header-template--minimal .page-header__actions,
.page-header-template--minimal .page-header__proofs { justify-content: center; }

.page-header--center .page-header__intro {
  margin-inline: auto;
}

.page-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  margin-top: 1.65rem;
}

.page-header--center .page-header__actions,
.page-header--center .page-header__proofs {
  justify-content: center;
}

.page-header__action {
  display: inline-flex;
  min-height: 2.9rem;
  padding: .68rem 1.05rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 999px;
  color: #fff;
  font-weight: 750;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.page-header__action--primary {
  border-color: #d8fbf6;
  color: #073340;
  background: #d8fbf6;
}

.page-header__action:hover,
.page-header__action:focus-visible {
  color: #073340;
  background: #fff;
  transform: translateY(-1px);
}

.page-header__action:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .76);
  outline-offset: 3px;
}

.page-header__proofs {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.2rem;
  margin: 1.4rem 0 0;
  padding: 0;
  color: rgba(255, 255, 255, .88);
  font-size: .82rem;
  font-weight: 700;
  list-style: none;
}

.page-header__proofs li {
  position: relative;
  padding-left: .8rem;
}

.page-header__proofs li::before {
  position: absolute;
  top: .55em;
  left: 0;
  width: .3rem;
  height: .3rem;
  border-radius: 50%;
  background: #8edbd8;
  box-shadow: 0 0 0 .2rem rgba(142, 219, 216, .12);
  content: "";
}

.page-breadcrumb {
  padding: .9rem 0;
  background: color-mix(in srgb, var(--bs-body-color, #17272a) 6%, transparent);
}

.page-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: currentColor;
}

.page-breadcrumb .breadcrumb[data-breadcrumb-scroll] {
  display: flex;
  flex-wrap: nowrap;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scrollbar-width: thin;
  scrollbar-color: var(--breadcrumb-scrollbar, var(--accent, #007782)) transparent;
}

.page-breadcrumb [data-breadcrumb-scroll] > .breadcrumb-item {
  flex: 0 0 auto;
  white-space: nowrap;
}

.page-breadcrumb [data-breadcrumb-scroll]::-webkit-scrollbar { height: 5px; }
.page-breadcrumb [data-breadcrumb-scroll]::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--breadcrumb-scrollbar, var(--accent, #007782)); }
.page-breadcrumb [data-breadcrumb-scroll]::-webkit-scrollbar-track { background: transparent; }
.page-breadcrumb [data-breadcrumb-scroll]:focus-visible { outline: 2px solid var(--accent, #007782); outline-offset: 3px; border-radius: 2px; }
.page-breadcrumb [data-breadcrumb-scroll].is-overflowing { cursor: grab; user-select: none; }
.page-breadcrumb [data-breadcrumb-scroll].is-overflowing a { cursor: inherit; }
.page-breadcrumb [data-breadcrumb-scroll].is-dragging,
.page-breadcrumb [data-breadcrumb-scroll].is-dragging a { cursor: grabbing; }

.site-page {
  padding: clamp(2.5rem, 6vw, 5rem) 0;
}

.page-block + .page-block {
  margin-top: clamp(2rem, 5vw, 4rem);
}

.page-block--rich_text > :first-child,
.page-block--html > :first-child {
  margin-top: 0;
}

.page-block--rich_text > :last-child,
.page-block--html > :last-child {
  margin-bottom: 0;
}

@media (max-width: 1199.98px) {
  .page-header-template--panel { grid-template-columns: 1fr; }
  .site-shell[data-navigation-position="overlay"] .main-nav-container {
    border: 1px solid var(--menu-border);
    border-radius: clamp(.75rem, 3vw, 1rem);
    background: var(--menu-bg);
    box-shadow: var(--menu-shadow);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .site-shell[data-navigation-position="overlay"] .page-header--simple {
    padding-top: clamp(2.5rem, 7vw, 6rem);
  }

  .main-nav-container .navbar-brand {
    flex-basis: 8.25rem;
    width: 8.25rem;
    height: 3rem;
  }
}

@media (max-width: 1199.98px) {
  .main-nav-container .navbar {
    min-height: 4.6rem;
  }

  .main-nav-container .navbar-toggler {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .main-nav-container .navbar-collapse {
    /* Les actions restent avec le logo ; la liste développée passe dessous. */
    order: 3;
    width: 100%;
    max-height: calc(100dvh - 6.5rem);
    margin-top: .3rem;
    padding: .55rem 0 .7rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: transparent;
    scrollbar-color: var(--menu-accent) transparent;
    scrollbar-width: thin;
  }

  .main-nav-container .navbar-actions {
    margin-left: auto;
  }

  .main-nav-container .navbar-nav,
  .main-nav-container.menu-align--center .navbar-nav,
  .main-nav-container.menu-align--end .navbar-nav {
    align-items: stretch;
    margin: 0;
    gap: .32rem;
  }

  .main-nav-container .navbar-nav > .nav-item > .nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.25rem;
    padding: .82rem .45rem;
    border: 0;
    border-radius: .55rem;
    font-size: 1rem;
    line-height: 1.3;
    text-align: left;
  }

  .main-nav-container .navbar-nav > .nav-item > .nav-link:hover,
  .main-nav-container .navbar-nav > .nav-item > .nav-link:focus-visible {
    background: linear-gradient(90deg, var(--menu-accent-soft), transparent 78%);
    color: var(--menu-accent);
  }

  .main-nav-container .navbar-nav > .nav-item > .nav-link.active {
    padding-left: .9rem;
    background: transparent;
    box-shadow: inset 3px 0 0 var(--menu-accent);
    color: var(--menu-accent);
  }

  .main-nav-container .navbar-nav > .dropdown.show > .menu-submenu-toggle {
    background: transparent;
    box-shadow: none;
    color: var(--menu-accent);
  }

  .main-nav-container .menu-submenu-toggle i {
    display: inline-grid;
    width: 1.5rem;
    height: 1.5rem;
    flex: 0 0 1.5rem;
    margin-left: 1rem;
    place-items: center;
    color: var(--menu-accent);
    font-size: .68rem;
  }

  .main-nav-container .navbar-nav .dropdown-menu {
    position: relative;
    width: calc(100% - .5rem);
    min-width: 0;
    max-width: calc(100% - .5rem);
    margin: .2rem 0 .7rem .5rem;
    padding: .2rem 0 .2rem 1rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .main-nav-container .navbar-nav .dropdown-menu::before {
    position: absolute;
    top: .35rem;
    bottom: .35rem;
    left: .15rem;
    width: 1px;
    background: linear-gradient(180deg, transparent, var(--menu-accent) 18%, var(--menu-accent) 82%, transparent);
    content: "";
    opacity: .55;
  }

  .main-nav-container .navbar-nav .dropdown-menu.show {
    display: grid;
    gap: .18rem;
    animation: sdx-mobile-submenu-in .18s ease-out;
  }

  .main-nav-container .navbar-nav .dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 3rem;
    padding: .72rem .45rem;
    border: 0;
    border-radius: .5rem;
    color: var(--menu-text);
    line-height: 1.35;
    white-space: normal;
  }

  .main-nav-container .navbar-nav .dropdown-menu .dropdown-item::after {
    margin-left: 1rem;
    color: var(--menu-accent);
    content: "\203A";
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    opacity: .72;
  }

  .main-nav-container .navbar-nav .dropdown-menu .dropdown-item:hover,
  .main-nav-container .navbar-nav .dropdown-menu .dropdown-item:focus,
  .main-nav-container .navbar-nav .dropdown-menu .dropdown-item.active {
    background: linear-gradient(90deg, var(--menu-accent-soft), transparent 82%);
    color: var(--menu-accent);
  }

  .main-nav-container.menu-style--underline .navbar-nav .nav-link {
    display: flex;
    width: 100%;
    border-radius: .75rem;
  }

  .main-nav-container.menu-style--underline .navbar-nav > .nav-item > .nav-link:hover,
  .main-nav-container.menu-style--underline .navbar-nav > .nav-item > .nav-link:focus-visible {
    background: linear-gradient(90deg, var(--menu-accent-soft), transparent 78%);
  }

  .main-nav-container.menu-style--underline .navbar-nav > .nav-item > .nav-link.active,
  .main-nav-container.menu-style--underline .navbar-nav > .dropdown.show > .menu-submenu-toggle {
    background: transparent;
  }

  .main-nav-container.menu-style--underline .navbar-nav > .nav-item > .nav-link::after {
    display: none;
  }

}

@keyframes sdx-mobile-submenu-in {
  from {
    opacity: 0;
    transform: translateY(-.3rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 575.98px) {
  /* Conserver le logo et toutes les actions sur une seule ligne. Le menu
     superposé avait une double gouttière qui suffisait à provoquer un retour
     à la ligne entre 360 et 430 px. */
  .main-nav-container .navbar,
  .site-shell[data-navigation-position="overlay"] .main-nav-container .navbar {
    width: calc(100% - 1rem);
    padding-inline: 0;
    gap: .4rem;
  }

  .main-nav-container .navbar-brand {
    flex: 1 1 5.25rem;
    width: auto;
    max-width: 7rem;
    height: 2.55rem;
    margin-right: 0;
  }

  .main-nav-container .navbar-actions {
    gap: .4rem;
  }

  .offcanvas-trigger:not(.offcanvas-trigger--icon) {
    gap: 0;
    width: 2.55rem;
    padding-inline: .45rem;
  }

  .offcanvas-trigger__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .main-nav-container .navbar-collapse {
    padding: .45rem 0 .65rem;
  }

  .main-nav-container .navbar-nav > .nav-item > .nav-link {
    min-height: 3.15rem;
    padding-inline: .78rem;
  }
}

@media (max-width: 359.98px) {
  .main-nav-container .navbar-brand {
    flex: 0 0 2.75rem;
    width: 2.75rem;
    max-width: 2.75rem;
  }

  .main-nav-container .navbar-brand img {
    width: 7rem;
    max-width: none;
    object-fit: contain;
    object-position: left center;
  }

  .main-nav-container .navbar,
  .main-nav-container .navbar-actions {
    gap: .3rem;
  }

  .site-language-switcher > .navbar-action {
    width: 2.55rem;
    padding-inline: 0;
    gap: 0;
  }

  .site-language-switcher > .navbar-action > i,
  .site-language-switcher > .navbar-action::after {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .site-search-layer { padding: 0; }

  .site-search-layer__backdrop { display: none; }

  .site-search-dialog {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: translateY(1rem);
  }

  .site-search-dialog__header { padding-top: max(1rem, env(safe-area-inset-top)); }
  .site-search-results { flex: 1 1 auto; margin-inline: .35rem; }
  .site-search-result { align-items: start; padding: .8rem .65rem; }
  .site-search-result__icon { width: 2.35rem; height: 2.35rem; }
  .site-search-result__arrow { margin-top: .65rem; }
  .site-search-dialog__footer { display: none; }

  body.site-search-is-open.site-search-effect-perspective .off-canvas-stage {
    border-radius: 0;
    transform: none;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  body.site-search-is-open.site-search-effect-perspective .off-canvas-stage {
    border-radius: .9rem;
    transform: translateY(10vh) scale(.95);
  }
}

@media (max-width: 575.98px) {
  .site-search-form { grid-template-columns: minmax(0, 1fr) auto; }
  .site-search-form button { min-width: 3rem; width: 3rem; padding-inline: .6rem; }
  .site-search-form button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .site-search-result__excerpt { -webkit-line-clamp: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .main-nav-container .navbar-nav .dropdown-menu.show {
    animation: none;
  }

  .site-search-layer,
  .site-search-dialog,
  .site-search-result { transition: none; }

  body.site-search-is-open.site-search-effect-perspective .off-canvas-stage {
    transform: none;
  }
}

/* Actualités construites avec le Page Builder. */
.news-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

.news-meta__image,
.news-meta__image img {
  margin: 0;
}

.news-meta__image img {
  display: block;
  width: 100%;
  max-height: 34rem;
  object-fit: cover;
  border-radius: 1rem;
}

.news-meta__facts,
.news-card__facts {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  align-items: center;
  color: var(--bs-secondary-color, #667085);
  font-size: .92rem;
}

.news-meta__category,
.news-card__facts span,
.news-card__facts a {
  display: inline-flex;
  padding: .28rem .65rem;
  border-radius: 99px;
  background: color-mix(in srgb, var(--bs-primary, #0d6efd) 12%, transparent);
  color: var(--bs-primary, #0d6efd);
  font-weight: 700;
  text-decoration: none;
}

.news-share {
  margin-block: 1.15rem 2rem;
}

.news-share__inner {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem 1.15rem;
  align-items: center;
  padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--bs-primary, #0d6efd) 18%, transparent);
  border-radius: .9rem;
  background: color-mix(in srgb, var(--bs-primary, #0d6efd) 5%, var(--bs-body-bg, #fff));
}

.news-share--center .news-share__inner { justify-content: center; }
.news-share--end .news-share__inner { justify-content: flex-end; }
.news-share__label { display: inline-flex; gap: .5rem; align-items: center; margin: 0; font-weight: 800; }
.news-share__label i { color: var(--bs-primary, #0d6efd); }
.news-share__buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.news-share__button {
  display: inline-flex;
  gap: .42rem;
  align-items: center;
  min-height: 2.55rem;
  padding: .52rem .72rem;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: .7rem;
  background: var(--bs-body-bg, #fff);
  color: inherit;
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.news-share__button:hover,
.news-share__button:focus-visible { transform: translateY(-2px); border-color: var(--bs-primary, #0d6efd); color: var(--bs-primary, #0d6efd); box-shadow: 0 .45rem 1rem color-mix(in srgb, #001a2b 9%, transparent); }
.news-share--icons .news-share__button { justify-content: center; width: 2.7rem; padding-inline: .55rem; }
.news-share--icons .news-share__button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.news-share__button--native { display: none; }
@media (pointer: coarse), (max-width: 767.98px) { .news-share__button--native { display: inline-flex; } }

.site-cta {
  --site-cta-bg-start: #061f29;
  --site-cta-bg-end: #0b5968;
  --site-cta-accent: #7edbd6;
  --site-cta-text: #eefafa;
  --site-cta-button-bg: #bfeceb;
  --site-cta-button-text: #102b33;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(12rem, .45fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
  padding: clamp(2rem, 5vw, 4rem);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--site-cta-accent) 32%, transparent);
  border-radius: clamp(1rem, 2vw, 1.45rem);
  background: radial-gradient(circle at 91% 12%, color-mix(in srgb, var(--site-cta-accent) 22%, transparent), transparent 18rem), linear-gradient(125deg, var(--site-cta-bg-start), var(--site-cta-bg-end));
  color: var(--site-cta-text);
  box-shadow: 0 1.4rem 3.2rem color-mix(in srgb, var(--site-cta-bg-start) 22%, transparent);
}
.site-cta__copy { position: relative; z-index: 1; }
.site-cta__eyebrow { margin: 0 0 .75rem; color: var(--site-cta-accent); font-size: .76rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.site-cta h2 { max-width: 48rem; margin: 0; color: var(--site-cta-text); font-size: clamp(1.75rem, 3.3vw, 3rem); line-height: 1.06; letter-spacing: -.04em; }
.site-cta__text { max-width: 48rem; margin: 1rem 0 0; color: color-mix(in srgb, var(--site-cta-text) 82%, transparent); font-size: clamp(.98rem, 1.45vw, 1.08rem); line-height: 1.7; }
.site-cta__benefits { display: flex; flex-wrap: wrap; gap: .55rem .75rem; margin: 1.35rem 0 0; padding: 0; list-style: none; }
.site-cta__benefits li { display: inline-flex; gap: .42rem; align-items: center; padding: .43rem .62rem; border: 1px solid color-mix(in srgb, var(--site-cta-accent) 28%, transparent); border-radius: 99px; background: color-mix(in srgb, var(--site-cta-bg-start) 65%, transparent); color: color-mix(in srgb, var(--site-cta-text) 92%, transparent); font-size: .83rem; }
.site-cta__benefits i { color: var(--site-cta-accent); }
.site-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-top: 1.55rem; }
.site-cta__primary { display: inline-flex; gap: .55rem; align-items: center; min-height: 3rem; padding: .72rem 1rem; border-radius: .72rem; background: var(--site-cta-button-bg); color: var(--site-cta-button-text); font-weight: 850; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.site-cta__primary:hover,
.site-cta__primary:focus-visible { transform: translateY(-2px); color: var(--site-cta-button-text); box-shadow: 0 .75rem 1.6rem color-mix(in srgb, #000 20%, transparent); }
.site-cta__secondary { padding: .5rem 0; border-bottom: 1px solid color-mix(in srgb, var(--site-cta-accent) 54%, transparent); color: var(--site-cta-text); font-weight: 750; text-decoration: none; }
.site-cta__secondary:hover,
.site-cta__secondary:focus-visible { color: var(--site-cta-accent); }
.site-cta__visual { position: relative; z-index: 1; display: grid; place-items: center; min-height: 12rem; }
.site-cta__visual span { position: absolute; width: 11rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--site-cta-accent) 40%, transparent); border-radius: 2rem; transform: rotate(18deg); background: color-mix(in srgb, var(--site-cta-accent) 8%, transparent); box-shadow: 0 0 0 1.8rem color-mix(in srgb, var(--site-cta-accent) 5%, transparent); }
.site-cta__visual i { position: relative; color: var(--site-cta-accent); font-size: clamp(3.5rem, 7vw, 6rem); filter: drop-shadow(0 .8rem 1.2rem color-mix(in srgb, #000 25%, transparent)); }
.site-cta--layout-text,
.site-cta--layout-center { grid-template-columns: minmax(0, 1fr); }
.site-cta--layout-center,
.site-cta--align-center { text-align: center; }
.site-cta--layout-center .site-cta__copy,
.site-cta--align-center .site-cta__copy { margin-inline: auto; }
.site-cta--layout-center .site-cta__benefits,
.site-cta--layout-center .site-cta__actions,
.site-cta--align-center .site-cta__benefits,
.site-cta--align-center .site-cta__actions { justify-content: center; }
.site-cta--width-content { width: min(100%, 52rem); margin-inline: auto; }
.site-cta--width-wide { width: min(100%, 82rem); margin-inline: auto; }
.site-cta--width-full { width: 100%; }
.site-cta--padding-compact { padding: clamp(1.2rem, 3vw, 2rem); }
.site-cta--padding-normal { padding: clamp(1.6rem, 4vw, 3rem); }
.site-cta--padding-generous { padding: clamp(2rem, 5vw, 4rem); }
.site-cta--title-compact h2 { font-size: clamp(1.35rem, 2.5vw, 2rem); }
.site-cta--title-normal h2 { font-size: clamp(1.55rem, 2.9vw, 2.45rem); }
.site-cta--title-large h2 { font-size: clamp(1.75rem, 3.3vw, 3rem); }
.site-cta--border-none { border-color: transparent; }
.site-cta--border-subtle { border-color: color-mix(in srgb, var(--site-cta-accent) 32%, transparent); }
.site-cta--border-accent { border: 2px solid var(--site-cta-accent); }
.site-cta--shadow-none { box-shadow: none; }
.site-cta--shadow-soft { box-shadow: 0 1.4rem 3.2rem color-mix(in srgb, var(--site-cta-bg-start) 22%, transparent); }
.site-cta--shadow-strong { box-shadow: 0 1.8rem 4.5rem color-mix(in srgb, #000 34%, transparent); }
.site-cta--effect-solid { background: var(--site-cta-bg-start); }
.site-cta--effect-gradient { background: linear-gradient(125deg, var(--site-cta-bg-start), var(--site-cta-bg-end)); }
.site-cta--effect-glow { background: radial-gradient(circle at 91% 12%, color-mix(in srgb, var(--site-cta-accent) 28%, transparent), transparent 18rem), linear-gradient(125deg, var(--site-cta-bg-start), var(--site-cta-bg-end)); }

.news-gallery,
.news-feed__grid {
  display: grid;
  gap: 1.25rem;
}

.news-gallery--cols-2,
.news-feed__grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.news-gallery--cols-3,
.news-feed__grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-gallery--cols-4,
.news-feed__grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.news-gallery__item {
  display: block;
  overflow: hidden;
  border-radius: 1rem;
}

.news-gallery__item img,
.news-card__image img {
  display: block;
  width: 100%;
  object-fit: cover;
  transition: transform .22s ease;
}

.news-gallery__item img { aspect-ratio: 4 / 3; }
.news-card__image img { aspect-ratio: 1.91 / 1; }

.news-gallery__item:hover img,
.news-card__image:hover img { transform: scale(1.035); }

.news-feed__heading { margin-bottom: 1.25rem; }
.news-feed__explorer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, .34fr);
  gap: 1rem;
  align-items: start;
  margin-bottom: 1rem;
  padding: clamp(1rem, 2.5vw, 1.4rem);
  border: 1px solid color-mix(in srgb, currentColor 13%, transparent);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 5% 0%, color-mix(in srgb, var(--bs-primary, #0b7181) 11%, transparent), transparent 19rem),
    color-mix(in srgb, var(--bs-body-bg, #fff) 95%, var(--bs-primary, #0b7181));
  box-shadow: 0 1rem 2.8rem color-mix(in srgb, #001a2b 8%, transparent);
}

.news-feed__tools {
  display: grid;
  grid-template-columns: minmax(16rem, 1.35fr) minmax(14rem, .8fr);
  gap: .85rem;
  align-items: end;
}

.news-feed__field { min-width: 0; }
.news-feed__label {
  display: block;
  margin: 0 0 .4rem;
  color: color-mix(in srgb, currentColor 78%, transparent);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.news-feed__search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  min-height: 3.15rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, currentColor 19%, transparent);
  border-radius: .85rem;
  background: var(--bs-body-bg, #fff);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.news-feed__search:focus-within {
  border-color: var(--bs-primary, #0b7181);
  box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--bs-primary, #0b7181) 16%, transparent);
}
.news-feed__search > .bi-search { margin-left: .95rem; color: var(--bs-primary, #0b7181); font-size: 1.05rem; }
.news-feed__search input {
  min-width: 0;
  height: 100%;
  padding: .7rem .8rem;
  border: 0;
  outline: 0;
  color: inherit;
  background: transparent;
}
.news-feed__search input::-webkit-search-cancel-button { display: none; }
.news-feed__search-clear {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 50%;
  color: inherit;
  background: color-mix(in srgb, currentColor 8%, transparent);
}
.news-feed__search-clear[hidden] { display: none; }
.news-feed__search-submit,
.news-feed__button {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  justify-content: center;
  min-height: 2.6rem;
  padding: .62rem .9rem;
  border: 1px solid var(--bs-primary, #0b7181);
  border-radius: .68rem;
  color: #fff;
  background: var(--bs-primary, #0b7181);
  font-weight: 800;
}
.news-feed__search-submit { align-self: stretch; min-height: 3.15rem; border-radius: 0; }
.news-feed__search-submit:hover,
.news-feed__button:hover { filter: brightness(.92); }
.news-feed__button--ghost {
  border-color: color-mix(in srgb, currentColor 18%, transparent);
  color: inherit;
  background: transparent;
}
.news-feed__button--ghost:hover { background: color-mix(in srgb, currentColor 7%, transparent); filter: none; }

.news-category-picker { position: relative; }
.news-category-picker > summary {
  display: flex;
  gap: .8rem;
  align-items: center;
  justify-content: space-between;
  min-height: 3.15rem;
  padding: .72rem .9rem;
  border: 1px solid color-mix(in srgb, currentColor 19%, transparent);
  border-radius: .85rem;
  background: var(--bs-body-bg, #fff);
  cursor: pointer;
  font-weight: 750;
  list-style: none;
}
.news-category-picker > summary::-webkit-details-marker { display: none; }
.news-category-picker > summary .bi { transition: transform .18s ease; }
.news-category-picker[open] > summary { border-color: var(--bs-primary, #0b7181); box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--bs-primary, #0b7181) 16%, transparent); }
.news-category-picker[open] > summary .bi { transform: rotate(180deg); }
.news-category-picker__panel {
  position: absolute;
  z-index: 45;
  top: calc(100% + .55rem);
  right: 0;
  width: min(31rem, 92vw);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  border-radius: 1rem;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 1.35rem 3.5rem color-mix(in srgb, #001a2b 22%, transparent);
}
.news-category-picker__header { display: grid; gap: .15rem; padding: .95rem 1rem .75rem; border-bottom: 1px solid color-mix(in srgb, currentColor 10%, transparent); }
.news-category-picker__header span { color: color-mix(in srgb, currentColor 62%, transparent); font-size: .84rem; }
.news-category-picker__options { display: grid; max-height: 20rem; overflow-y: auto; padding: .4rem; }
.news-category-picker__option { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; align-items: center; border-radius: .7rem; }
.news-category-picker__option:hover { background: color-mix(in srgb, var(--bs-primary, #0b7181) 7%, transparent); }
.news-category-picker__option label { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .7rem; align-items: center; min-width: 0; margin: 0; padding: .62rem .45rem .62rem .65rem; cursor: pointer; }
.news-category-picker__option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.news-category-picker__check {
  display: grid;
  place-items: center;
  width: 1.2rem;
  height: 1.2rem;
  border: 1.5px solid color-mix(in srgb, currentColor 34%, transparent);
  border-radius: .36rem;
  background: var(--bs-body-bg, #fff);
}
.news-category-picker__option input:checked + .news-category-picker__check { border-color: var(--bs-primary, #0b7181); background: var(--bs-primary, #0b7181); }
.news-category-picker__option input:checked + .news-category-picker__check::after { content: "✓"; color: #fff; font-size: .78rem; font-weight: 900; line-height: 1; }
.news-category-picker__option input:focus-visible + .news-category-picker__check { outline: .2rem solid color-mix(in srgb, var(--bs-primary, #0b7181) 22%, transparent); outline-offset: .12rem; }
.news-category-picker__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.news-category-picker__count { display: grid; place-items: center; min-width: 1.75rem; min-height: 1.5rem; padding: .1rem .35rem; border-radius: 999px; color: color-mix(in srgb, currentColor 65%, transparent); background: color-mix(in srgb, currentColor 7%, transparent); font-size: .75rem; font-weight: 800; }
.news-category-picker__rss { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; margin-right: .35rem; border-radius: .55rem; color: #c45b0b; text-decoration: none; }
.news-category-picker__rss:hover,
.news-category-picker__rss:focus-visible { color: #fff; background: #c45b0b; }
.news-category-picker__actions { display: flex; gap: .65rem; justify-content: flex-end; padding: .8rem; border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent); background: color-mix(in srgb, currentColor 3%, transparent); }

.news-feed__rss {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: .8rem;
  border: 1px solid color-mix(in srgb, #d86a13 25%, transparent);
  border-radius: .95rem;
  background: color-mix(in srgb, #f28a2b 8%, var(--bs-body-bg, #fff));
}
.news-feed__rss-main { display: flex; gap: .75rem; align-items: center; color: inherit; text-decoration: none; }
.news-feed__rss-main > span:last-child { display: grid; gap: .12rem; min-width: 0; }
.news-feed__rss-main small { color: color-mix(in srgb, currentColor 62%, transparent); font-size: .76rem; line-height: 1.35; }
.news-feed__rss-icon { display: grid; flex: 0 0 auto; place-items: center; width: 2.65rem; height: 2.65rem; border-radius: .78rem; color: #fff; background: #d86a13; font-size: 1.25rem; box-shadow: 0 .55rem 1.2rem rgb(216 106 19 / 20%); }
.news-feed__rss-global { align-self: flex-start; margin: .45rem 0 0 3.4rem; color: inherit; font-size: .78rem; font-weight: 750; }

.news-feed__active { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0 0 .9rem; }
.news-feed__active-label { margin-right: .2rem; color: color-mix(in srgb, currentColor 64%, transparent); font-size: .76rem; font-weight: 800; text-transform: uppercase; }
.news-feed__chip { display: inline-flex; gap: .4rem; align-items: center; min-height: 2rem; padding: .35rem .6rem; border: 1px solid color-mix(in srgb, var(--bs-primary, #0b7181) 24%, transparent); border-radius: 999px; color: inherit; background: color-mix(in srgb, var(--bs-primary, #0b7181) 8%, transparent); font-size: .82rem; }
.news-feed__chip:hover { border-color: var(--bs-primary, #0b7181); }
.news-feed__active > a { margin-left: .15rem; color: inherit; font-size: .82rem; font-weight: 700; }
.news-feed__results { margin: 0 0 1rem; color: color-mix(in srgb, currentColor 68%, transparent); font-size: .9rem; }
.news-feed__results strong { color: inherit; }

.news-feed__search-clear:focus-visible,
.news-feed__search-submit:focus-visible,
.news-feed__button:focus-visible,
.news-feed__chip:focus-visible,
.news-category-picker > summary:focus-visible,
.news-feed__rss a:focus-visible { outline: .2rem solid color-mix(in srgb, var(--bs-primary, #0b7181) 28%, transparent); outline-offset: .15rem; }

.news-card {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  border-radius: 1rem;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 .4rem 1.25rem color-mix(in srgb, #001a2b 8%, transparent);
}

.news-card__body { padding: 1.15rem; }
.news-card h3 { margin: .7rem 0; font-size: 1.25rem; }
.news-card h3 a { color: inherit; text-decoration: none; }
.news-card p { color: var(--bs-secondary-color, #667085); }
.news-card__link { font-weight: 700; text-decoration: none; }
.news-feed__empty { margin: 0; color: var(--bs-secondary-color, #667085); }
.news-feed__pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; margin-top: 1.5rem; }
.news-feed__pagination a { display: grid; place-items: center; min-width: 2.25rem; min-height: 2.25rem; border: 1px solid color-mix(in srgb, currentColor 22%, transparent); border-radius: .55rem; color: inherit; text-decoration: none; }
.news-feed__pagination a[aria-current="page"] { background: var(--bs-primary, #0d6efd); border-color: var(--bs-primary, #0d6efd); color: #fff; }

/* Composant de carte des coordonnées */
.sdx-location-map {
  width: min(100%, 76rem);
  margin-inline: auto;
}

.sdx-location-map[hidden] { display: none !important; }

.sdx-location-map__header {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(18rem, 1.2fr);
  gap: 1rem 2.5rem;
  align-items: end;
  margin-bottom: 1.25rem;
}

.sdx-location-map__header h2,
.sdx-location-map__header h3,
.sdx-location-map__header h4 {
  margin: 0;
  color: var(--bs-heading-color, #0c3441);
  letter-spacing: -.035em;
}

.sdx-location-map__header p {
  max-width: 48rem;
  margin: 0;
  color: var(--bs-secondary-color, #5b7380);
  line-height: 1.68;
}

.sdx-location-map__canvas {
  position: relative;
  width: 100%;
  height: min(var(--sdx-location-map-height, 460px), 72vh);
  min-height: 280px;
  overflow: hidden;
  background: #e8f3f3;
}

.sdx-location-map__canvas[data-map-theme="light"] .leaflet-tile-pane {
  filter: grayscale(.62) sepia(.08) saturate(.72) brightness(1.08) contrast(.88);
}

.sdx-location-map__canvas[data-map-theme="dark"] .leaflet-tile-pane {
  filter: invert(.88) hue-rotate(158deg) saturate(.72) brightness(.58) contrast(1.08);
}

.sdx-location-map--rounded .sdx-location-map__canvas { border-radius: 1.25rem; }

.sdx-location-map--card {
  padding: clamp(.7rem, 1.8vw, 1.25rem);
  border: 1px solid color-mix(in srgb, var(--sdx-location-marker-color, #1b858f) 24%, transparent);
  border-radius: 1.65rem;
  background: color-mix(in srgb, var(--bs-body-bg, #fff) 94%, var(--sdx-location-marker-color, #1b858f));
  box-shadow: 0 1.25rem 3rem rgba(3, 43, 54, .09);
}

.sdx-location-map--card .sdx-location-map__canvas { border-radius: 1.05rem; }
.sdx-location-map--full { width: 100%; }

.sdx-location-map__fallback,
.sdx-location-map__empty {
  position: absolute;
  inset: 0;
  display: grid;
  gap: .55rem;
  place-content: center;
  margin: 0;
  padding: 1.5rem;
  color: #476774;
  text-align: center;
}

.sdx-location-map__empty i { color: var(--sdx-location-marker-color, #1b858f); font-size: 1.8rem; }
.sdx-location-map__noscript { margin: .75rem 0 0; color: var(--bs-secondary-color, #667085); font-size: .9rem; }

.sdx-map-marker {
  display: grid !important;
  place-items: center;
  color: var(--sdx-location-marker-color, #1b858f);
  background: transparent;
  filter: drop-shadow(0 .35rem .45rem rgba(2, 26, 35, .25));
}

.sdx-map-marker--pin i {
  display: block;
  font-size: 100%;
  line-height: 1;
}

.sdx-map-marker--dot span {
  display: block;
  width: 58%;
  aspect-ratio: 1;
  border: clamp(3px, .08em, 5px) solid #fff;
  border-radius: 50%;
  background: var(--sdx-location-marker-color, #1b858f);
  box-shadow: 0 0 0 2px var(--sdx-location-marker-color, #1b858f);
}

.sdx-map-marker--brand span {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--sdx-location-marker-color, #1b858f);
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: -.03em;
  box-shadow: 0 0 0 2px var(--sdx-location-marker-color, #1b858f);
}

.sdx-location-map .leaflet-popup-content { margin: 1rem 1.1rem; min-width: min(15rem, 68vw); }
.sdx-location-map .gmap_logo { display: block; width: auto; max-width: 9rem; max-height: 2.5rem; margin: 0 auto .9rem; }
.sdx-location-map .gmap-contact__links { margin: .75rem 0; line-height: 1.7; }
.sdx-location-map .gmap-address { display: grid; gap: .35rem; margin-top: .7rem; text-align: left; }
.sdx-location-map .gmap-address strong { color: #0b3441; }
.sdx-location-map .gmap-address a { color: #345d69; line-height: 1.45; text-decoration: none; }
.sdx-location-map .gmap-address a:hover { color: #087f91; text-decoration: underline; }
.sdx-location-map .sdx-map-popup { min-width: min(15rem, 68vw); color: #244b57; line-height: 1.5; }
.sdx-location-map .sdx-map-popup > :first-child { margin-top: 0; }
.sdx-location-map .sdx-map-popup > :last-child { margin-bottom: 0; }
.sdx-location-map .sdx-map-popup h3,
.sdx-location-map .sdx-map-popup h4 { margin: 0 0 .55rem; color: #0b3441; font-size: 1rem; }
.sdx-location-map .sdx-map-popup img { display: block; width: auto; max-width: 100%; max-height: 8rem; margin: 0 auto .75rem; object-fit: contain; }
.sdx-location-map .sdx-map-popup a { color: #087f91; overflow-wrap: anywhere; }

/* Démonstration « Zones d’intervention » : trois blocs Page Builder restent
   indépendants tout en reproduisant la composition carte + présentation. */
.site-page__main--page-demo-zones-intervention {
  display: grid;
  grid-template-columns: minmax(20rem, .82fr) minmax(0, 1.45fr);
  gap: clamp(1.5rem, 3.2vw, 3.5rem);
  align-items: start;
}

.site-page__main--page-demo-zones-intervention > .page-block {
  min-width: 0;
  margin-top: 0;
}

.site-page__main--page-demo-zones-intervention > .page-block--html:first-child {
  grid-column: 1 / -1;
}

.intervention-demo__titlebar {
  padding: clamp(1rem, 2vw, 1.45rem) clamp(1.2rem, 3vw, 2.5rem);
  border-radius: 1rem;
  background: linear-gradient(115deg, #e9b13d, #f0c35b);
  color: #73182a;
  text-align: center;
  box-shadow: 0 .85rem 2rem rgba(98, 61, 5, .1);
}

.intervention-demo__titlebar p {
  margin: 0 0 .25rem;
  color: rgba(69, 47, 8, .7);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.intervention-demo__titlebar h1 {
  margin: 0;
  color: inherit;
  font-size: clamp(1.2rem, 2.3vw, 1.75rem);
  font-weight: 850;
  letter-spacing: .02em;
}

.site-page__main--page-demo-zones-intervention .sdx-location-map {
  grid-column: auto !important;
  width: 100%;
  margin: 0;
}

.site-page__main--page-demo-zones-intervention .sdx-location-map__header {
  grid-template-columns: 1fr;
  gap: .35rem;
  margin-bottom: 1rem;
}

.site-page__main--page-demo-zones-intervention .sdx-location-map__header h2 {
  font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.intervention-demo__copy {
  padding: clamp(.35rem, 1vw, .8rem) 0;
  color: #526b73;
}

.intervention-demo__copy h2 {
  margin: 0 0 1.1rem;
  color: #a52937;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  font-weight: 520;
  letter-spacing: -.025em;
  line-height: 1.25;
}

.intervention-demo__copy > p {
  line-height: 1.75;
}

.intervention-demo__eyebrow {
  margin: 0 0 .55rem;
  color: #aa7a16;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.intervention-demo__roles {
  display: grid;
  gap: .9rem;
  margin: 1.4rem 0;
  padding: 0;
  list-style: none;
}

.intervention-demo__roles li {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: .85rem;
  align-items: center;
}

.intervention-demo__role {
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  border: 3px solid rgba(255, 255, 255, .9);
  border-radius: 50% 50% 50% .45rem;
  color: #fff;
  font-size: .7rem;
  font-weight: 900;
  box-shadow: 0 .45rem 1rem rgba(7, 38, 51, .15);
  transform: rotate(-7deg);
}

.intervention-demo__role--investigator { background: #cf1f2f; }
.intervention-demo__role--assistant { background: #1769aa; }
.intervention-demo__role--prevention { background: #399c30; }

.intervention-map-popup__role {
  margin: 0 0 .45rem;
  color: #1769aa;
  font-size: .76rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.intervention-map-popup__links {
  display: grid;
  gap: .42rem;
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.intervention-map-popup__links a {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr);
  gap: .45rem;
  align-items: baseline;
  text-decoration: none;
}

.intervention-map-popup__links a:hover,
.intervention-map-popup__links a:focus-visible {
  text-decoration: underline;
}

@media (max-width: 991.98px) {
  .site-page__main--page-demo-zones-intervention {
    grid-template-columns: 1fr;
  }

  .site-page__main--page-demo-zones-intervention > .page-block--html:first-child {
    grid-column: auto;
  }
}

@media (max-width: 767.98px) {
  .news-gallery--cols-2, .news-gallery--cols-3, .news-gallery--cols-4,
  .news-feed__grid--cols-2, .news-feed__grid--cols-3, .news-feed__grid--cols-4 { grid-template-columns: 1fr; }
  .news-feed__explorer,
  .news-feed__tools { grid-template-columns: 1fr; }
  .news-feed__search { grid-template-columns: auto minmax(0, 1fr) auto; }
  .news-feed__search-submit { grid-column: 1 / -1; min-height: 2.75rem; margin: 0 .45rem .45rem; border-radius: .65rem; }
  .news-category-picker__panel { right: auto; left: 0; width: min(22rem, calc(100vw - 3rem)); min-width: 0; }
  .news-feed__rss { min-height: 5rem; }
  .news-share__inner { align-items: flex-start; flex-direction: column; }
  .news-share--center .news-share__inner,
  .news-share--end .news-share__inner { align-items: center; }
  .site-cta { grid-template-columns: 1fr; padding: 1.65rem; }
  .site-cta__visual { display: none; }
  .site-cta__benefits { align-items: flex-start; flex-direction: column; }
  .sdx-location-map__header { grid-template-columns: 1fr; gap: .55rem; }
  .sdx-location-map__canvas { height: min(var(--sdx-location-map-height, 420px), 62vh); }
  .sdx-location-map--card { padding: .5rem; border-radius: 1.1rem; }
  .sdx-location-map--card .sdx-location-map__canvas,
  .sdx-location-map--rounded .sdx-location-map__canvas { border-radius: .8rem; }
}

/* Adapt the shared shell to the remote runtime's existing navigation markup. */
.site-shell .main-nav-container.site-header { margin: 0; width: 100%; max-width: none; }
.site-shell .site-main { padding-top: 2rem; }
.site-shell__navigation { transition: transform .2s ease; }
.site-shell--navigation-hidden .site-shell__navigation { transform: translateY(-110%); }
.page-header--end .page-header__copy { text-align: right; margin-left: auto; }
[data-hero-local-video][hidden] { display: none !important; }
.page-builder-layout-section-body [hidden], [data-page-layout-editor] [hidden] { display: none !important; }


/* Illustrations éditoriales des actualités. */
.news-editorial-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, .42fr);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  margin-block: 1.75rem 2.5rem;
}
.news-editorial-columns > * { min-width: 0; }
.news-editorial-columns > .news-editorial-image { margin-block: 0; }
.news-editorial-columns--image-start { grid-template-columns: minmax(15rem, .42fr) minmax(0, 1fr); }
.news-editorial-columns--image-start > .news-editorial-columns__text { order: 2; }
.news-editorial-columns--image-start > .news-editorial-image { order: 1; }
.sdx-article-checklist > p { color: #c3dadd; }
.sdx-article-checklist > ol + p { margin-top: 1.25rem; }
.sdx-copy blockquote {
  margin: 1.5rem 0 2rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--sdx-border, #a0c6cf);
  border-left: .3rem solid var(--sdx-erp-brand, #309a9e);
  border-radius: 1rem;
  background: var(--sdx-surface, #f3f9f9);
}
.sdx-copy blockquote > :last-child { margin-bottom: 0; }
.news-editorial-columns:not(:has(> .news-editorial-image)) { grid-template-columns: minmax(0, 1fr); }

.sdx-article-checklist[id], .sdx-copy h2[id] { scroll-margin-top: 7rem; }
@media (max-width: 767.98px) {
  .news-editorial-columns, .news-editorial-columns--image-start { grid-template-columns: minmax(0, 1fr); }
  .news-editorial-columns--image-start > .news-editorial-columns__text,
  .news-editorial-columns--image-start > .news-editorial-image { order: initial; }
}

.news-editorial-image {
  --news-editorial-width: 52rem;
  display: block;
  width: fit-content;
  max-width: min(100%, var(--news-editorial-width));
  margin: clamp(1.5rem, 4vw, 2.5rem) auto;
  text-align: center;
  break-inside: avoid;
}

.news-editorial-image--compact { --news-editorial-width: 32rem; }
.news-editorial-image--wide { --news-editorial-width: 64rem; }

.news-editorial-image img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: min(70vh, 36rem);
  margin-inline: auto;
  object-fit: contain;
  border-radius: clamp(.5rem, 1.5vw, 1rem);
  box-shadow: 0 .35rem 1.2rem rgba(8, 38, 51, .1);
}

.news-editorial-image > a { display: block; width: fit-content; max-width: 100%; margin-inline: auto; }
.news-editorial-image > a.zoom { cursor: zoom-in; }
.news-editorial-image > a:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; border-radius: .75rem; }
.news-editorial-image figcaption { max-width: 46rem; margin: .75rem auto 0; font-size: .875rem; line-height: 1.6; text-wrap: pretty; }
.news-editorial-image__hint { display: block; margin-top: .5rem; font-size: .8rem; line-height: 1.5; opacity: .8; }

@media (max-width: 575.98px) {
  .news-editorial-image { max-width: 100%; margin-block: 1.5rem; }
  .news-editorial-image img { max-height: min(65vh, 30rem); }
}

/* Composants éditoriaux partagés avec les assistants et le site SDX. */
.sdx-lead { font-size: 1.15rem; line-height: 1.75; }
.sdx-article-figure {
  overflow: hidden;
  margin: clamp(2rem, 5vw, 3.5rem) 0;
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 1.15rem;
  background: var(--sdx-surface, rgb(255 255 255 / 88%));
  box-shadow: var(--sdx-card-shadow, 0 24px 60px rgb(29 89 107 / 13%));
}
.sdx-article-figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1672 / 941;
  object-fit: cover;
}
.sdx-article-figure figcaption {
  padding: .75rem 1rem;
  color: var(--sdx-text-soft, #3f606a);
  font-size: .84rem;
  line-height: 1.55;
}

/* Guides longs : rythme éditorial, repères scannables et comparaisons. */
.sdx-copy > h2[id] {
  scroll-margin-top: 7rem;
}

.sdx-article-summary {
  display: grid;
  grid-template-columns: minmax(15rem, .75fr) minmax(0, 1.25fr);
  gap: clamp(1.25rem, 3vw, 2.75rem);
  align-items: center;
  margin: clamp(2rem, 5vw, 3.5rem) 0 1.25rem;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  overflow: hidden;
  border: 1px solid #4a7680;
  border-radius: 1.25rem;
  color: #eefafa;
  background:
    radial-gradient(circle at 8% 12%, rgb(98 195 193 / 22%), transparent 17rem),
    linear-gradient(135deg, #081f27, #0b5265);
  box-shadow: var(--sdx-card-shadow, 0 24px 60px rgb(29 89 107 / 13%));
}

.sdx-article-summary h2 {
  max-width: 15ch;
  margin: .35rem 0 0;
  color: #eefafa;
  font-size: clamp(1.65rem, 3.2vw, 2.45rem);
  line-height: 1.05;
}

.sdx-article-summary p {
  margin: 0;
  padding-left: clamp(1.25rem, 3vw, 2.5rem);
  border-left: 1px solid rgb(142 219 216 / 48%);
  color: #c3dadd;
  font-size: 1.02rem;
  line-height: 1.75;
}

.sdx-article-summary__eyebrow,
.sdx-choice-card__label,
.sdx-article-alert > span {
  color: #62c3c1;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sdx-article-toc {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem 1.5rem;
  align-items: center;
  margin: 0 0 clamp(2.4rem, 5vw, 4rem);
  padding: 1rem 1.15rem;
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--sdx-surface-solid, #ffffff) 78%, var(--sdx-erp-soft, #d2eaeb));
}

.sdx-article-toc strong {
  color: var(--sdx-text, #0b3440);
  white-space: nowrap;
}

.sdx-article-toc > div {
  display: flex;
  gap: .5rem;
  min-width: 0;
  overflow-x: auto;
  padding-bottom: .15rem;
  scrollbar-width: thin;
}

.sdx-article-toc a {
  flex: 0 0 auto;
  padding: .55rem .75rem;
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 999px;
  color: var(--sdx-erp-deep, #0b5265);
  background: var(--sdx-surface-solid, #ffffff);
  font-size: .82rem;
  font-weight: 750;
  text-decoration: none;
}

.sdx-article-toc a:hover,
.sdx-article-toc a:focus-visible {
  border-color: var(--sdx-erp-brand, #339999);
  background: var(--sdx-erp-soft, #d2eaeb);
}

.sdx-copy .table-responsive {
  margin: 1.5rem 0 2rem;
  overflow-x: auto;
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 1.05rem;
  background: var(--sdx-surface-solid, #ffffff);
  box-shadow: 0 16px 42px rgb(29 89 107 / 10%);
}

.sdx-copy .table {
  min-width: 42rem;
  margin: 0;
  color: var(--sdx-text, #0b3440);
  background: transparent;
}

.sdx-copy .table th {
  padding: 1rem 1.15rem;
  border: 0;
  color: #eefafa;
  background: #0b5265;
  font-size: .76rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.sdx-copy .table td {
  padding: .85rem 1.15rem;
  border-color: var(--sdx-border, #a9c7cb);
  color: var(--sdx-text-soft, #3f606a);
  vertical-align: middle;
}

.sdx-copy .table td:last-child {
  color: var(--sdx-text, #0b3440);
  font-weight: 800;
  white-space: nowrap;
}

.sdx-copy .table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--sdx-surface-muted, #e7f0f1) 74%, transparent);
}

.sdx-choice-grid,
.sdx-factor-grid,
.sdx-budget-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 2.5rem;
}

.sdx-choice-card,
.sdx-factor-card,
.sdx-budget-card {
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 1.1rem;
  background: var(--sdx-surface, rgb(255 255 255 / 88%));
  box-shadow: 0 16px 42px rgb(29 89 107 / 10%);
}

.sdx-choice-card {
  padding: clamp(1.25rem, 2.5vw, 1.8rem);
}

.sdx-choice-card--accent {
  background:
    radial-gradient(circle at 100% 0, rgb(98 195 193 / 17%), transparent 15rem),
    color-mix(in srgb, var(--sdx-surface-solid, #ffffff) 76%, var(--sdx-erp-soft, #d2eaeb));
}

.sdx-choice-card__label {
  display: inline-flex;
  margin-bottom: .8rem;
  color: var(--sdx-erp-deep, #0b5265);
}

.sdx-choice-card h3,
.sdx-factor-card h3,
.sdx-budget-card h3 {
  margin: 0 0 .65rem;
  color: var(--sdx-text, #0b3440);
  font-size: clamp(1.12rem, 2vw, 1.35rem);
  line-height: 1.25;
}

.sdx-choice-card p:last-child,
.sdx-factor-card p:last-child,
.sdx-budget-card p:last-child {
  margin-bottom: 0;
}

.sdx-choice-card ul {
  margin-block: 1rem;
  padding-left: 1.2rem;
}

.sdx-factor-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.sdx-factor-card {
  grid-column: span 3;
  position: relative;
  padding: 1.5rem 1.5rem 1.5rem 4.25rem;
}

.sdx-factor-card--wide {
  grid-column: 2 / span 4;
}

.sdx-factor-card > span {
  position: absolute;
  top: 1.35rem;
  left: 1.35rem;
  display: grid;
  width: 2.1rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: .65rem;
  color: #eefafa;
  background: var(--sdx-erp-deep, #0b5265);
  font-size: .7rem;
  font-weight: 850;
}

.sdx-budget-grid {
  counter-reset: budget;
}

.sdx-budget-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1.35rem;
}

.sdx-budget-card > span {
  display: grid;
  width: 2.6rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: .8rem;
  color: #eefafa;
  background: linear-gradient(145deg, var(--sdx-erp-brand, #339999), var(--sdx-erp-deep, #0b5265));
  font-size: .72rem;
  font-weight: 850;
}

.sdx-article-alert {
  display: grid;
  grid-template-columns: minmax(9rem, .32fr) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2rem);
  margin: clamp(2rem, 5vw, 3.5rem) 0;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-left: .4rem solid var(--sdx-erp-brand, #339999);
  border-radius: 1.1rem;
  background: color-mix(in srgb, var(--sdx-surface-solid, #ffffff) 74%, var(--sdx-erp-soft, #d2eaeb));
}

.sdx-article-alert > span {
  align-self: start;
  color: var(--sdx-erp-deep, #0b5265);
}

.sdx-article-alert h2 {
  margin: 0 0 .65rem;
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}

.sdx-article-alert p {
  margin: 0;
}

.sdx-article-checklist {
  margin: clamp(2rem, 5vw, 3.5rem) 0;
  padding: clamp(1.4rem, 3vw, 2rem);
  border-radius: 1.15rem;
  color: #eefafa;
  background:
    radial-gradient(circle at 100% 0, rgb(98 195 193 / 20%), transparent 18rem),
    #081f27;
}

.sdx-article-checklist h2 {
  margin-top: 0;
  color: #eefafa;
}

.sdx-article-checklist ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem 1.35rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: checklist;
}

.sdx-article-checklist li {
  counter-increment: checklist;
  padding: .9rem 1rem;
  border: 1px solid rgb(142 219 216 / 24%);
  border-radius: .8rem;
  color: #c3dadd;
  background: rgb(11 82 101 / 23%);
}

.sdx-article-checklist li::before {
  content: counter(checklist, decimal-leading-zero) " · ";
  color: #62c3c1;
  font-weight: 850;
}

.sdx-article-checklist strong {
  color: #eefafa;
}

.sdx-article-sources {
  margin: clamp(2rem, 5vw, 3.5rem) 0;
  overflow: hidden;
  border: 1px solid var(--sdx-border, #a9c7cb);
  border-radius: 1rem;
  background: var(--sdx-surface, rgb(255 255 255 / 88%));
}

.sdx-article-sources summary {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem;
  color: var(--sdx-text, #0b3440);
  font-weight: 800;
  cursor: pointer;
}

.sdx-article-sources summary span {
  color: var(--sdx-erp-deep, #0b5265);
  font-size: .82rem;
  font-weight: 700;
}

.sdx-article-sources > div {
  padding: 0 1.25rem 1.25rem;
  border-top: 1px solid var(--sdx-border, #a9c7cb);
}

.sdx-article-sources > div > p {
  margin-top: 1.1rem;
}

@media (max-width: 767.98px) {
  .sdx-article-summary,
  .sdx-article-alert {
    grid-template-columns: 1fr;
  }

  .sdx-article-summary p {
    padding-top: 1rem;
    padding-left: 0;
    border-top: 1px solid rgb(142 219 216 / 48%);
    border-left: 0;
  }

  .sdx-article-toc {
    grid-template-columns: 1fr;
  }

  .sdx-choice-grid,
  .sdx-budget-grid,
  .sdx-article-checklist ol {
    grid-template-columns: 1fr;
  }

  .sdx-factor-grid {
    grid-template-columns: 1fr;
  }

  .sdx-factor-card,
  .sdx-factor-card--wide {
    grid-column: auto;
  }

  .sdx-article-figure {
    margin-inline: -.25rem;
    border-radius: .9rem;
  }
}
