/**
 * Collectivité Infos — couche visuelle universelle.
 *
 * The values intentionally sit just below the browser's signed 32-bit z-index
 * ceiling. This layer must remain above Elementor sections, sticky headers,
 * maps, advertisements and every plugin module.
 */
:root {
  --cdi-layer-base-z: 2147482000;
  --cdi-layer-backdrop: rgba(20, 13, 18, .72);
  --cdi-layer-dialog-bg: #fff;
  --cdi-layer-dialog-text: #2d2d32;
  --cdi-layer-focus: #b4447a;
}

html.cdi-layer-scroll-locked,
body.cdi-layer-scroll-locked {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

body.cdi-layer-scroll-locked {
  padding-right: var(--cdi-layer-scrollbar-width, 0px) !important;
}

/* The native portal used by new plugins. */
.cdi-global-layer-root {
  position: fixed !important;
  z-index: 2147483600 !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  pointer-events: none !important;
  isolation: isolate !important;
  transform: none !important;
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  perspective: none !important;
  contain: none !important;
  container-type: normal !important;
}

.cdi-global-layer-root:empty {
  display: block !important;
}

.cdi-global-layer-root > .cdi-global-layer {
  pointer-events: auto !important;
}

.cdi-global-layer {
  --cdi-layer-order: 0;
  position: absolute !important;
  z-index: calc(2147483600 + var(--cdi-layer-order)) !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: clamp(12px, 2.2vw, 30px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.cdi-global-layer[hidden] {
  display: none !important;
}

.cdi-global-layer__backdrop {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  border: 0 !important;
  background: var(--cdi-layer-backdrop) !important;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  cursor: default;
}

.cdi-global-layer__dialog {
  position: relative !important;
  z-index: 1 !important;
  width: min(1120px, 100%) !important;
  max-width: 100% !important;
  max-height: calc(100dvh - clamp(24px, 4.4vw, 60px)) !important;
  margin: 0 !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  border-radius: 20px !important;
  color: var(--cdi-layer-dialog-text) !important;
  background: var(--cdi-layer-dialog-bg) !important;
  box-shadow: 0 24px 90px rgba(0, 0, 0, .42) !important;
  -webkit-overflow-scrolling: touch;
}

.cdi-global-layer__header {
  position: sticky !important;
  z-index: 20 !important;
  top: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  min-height: 64px !important;
  padding: 12px 14px 12px clamp(18px, 2.5vw, 30px) !important;
  border-bottom: 1px solid rgba(45, 45, 50, .12) !important;
  background: color-mix(in srgb, var(--cdi-layer-dialog-bg) 94%, transparent) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.cdi-global-layer__title {
  margin: 0 !important;
  color: inherit !important;
  font: inherit !important;
  font-size: clamp(20px, 2vw, 28px) !important;
  font-weight: 850 !important;
  line-height: 1.15 !important;
}

.cdi-global-layer__close {
  display: inline-grid !important;
  flex: 0 0 auto !important;
  place-items: center !important;
  width: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: #fff !important;
  background: #c52f66 !important;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .18) !important;
  font: 700 28px/1 sans-serif !important;
  cursor: pointer !important;
}

.cdi-global-layer__close:hover {
  filter: brightness(.92);
}

.cdi-global-layer__close:focus-visible,
.cdi-global-layer__dialog :focus-visible {
  outline: 3px solid var(--cdi-layer-focus) !important;
  outline-offset: 3px !important;
}

.cdi-global-layer__content {
  min-width: 0 !important;
}

.cdi-global-layer__content--padded {
  padding: clamp(20px, 3vw, 42px) !important;
}

/*
 * Compatibility bridge for existing plugin modals.
 *
 * The dialog remains in its own plugin root, so the plugin's JavaScript keeps
 * working. Only the ancestor stacking contexts are temporarily neutralised and
 * raised while the dialog is visible.
 */
.cdi-layer-ancestor {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  clip: auto !important;
  clip-path: none !important;
  mask: none !important;
  -webkit-mask: none !important;
}

.cdi-layer-context {
  z-index: calc(2147482100 + var(--cdi-layer-order, 0)) !important;
  opacity: 1 !important;
  isolation: auto !important;
  transform: none !important;
  translate: none !important;
  rotate: none !important;
  scale: none !important;
  filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  perspective: none !important;
  contain: none !important;
  container-type: normal !important;
  mix-blend-mode: normal !important;
  will-change: auto !important;
}

.cdi-layer-positioned {
  position: relative !important;
}

.cdi-layer-promoted {
  z-index: calc(2147483000 + var(--cdi-layer-order, 0)) !important;
  opacity: 1 !important;
  visibility: visible !important;
  isolation: isolate !important;
  pointer-events: auto !important;
}

.cdi-layer-promoted-backdrop {
  z-index: calc(2147482900 + var(--cdi-layer-order, 0)) !important;
  pointer-events: auto !important;
}

/* Known plugin wrappers receive hard guarantees without changing their layout. */
.wpsb-modal.cdi-layer-promoted,
.wpiti-modal.cdi-layer-promoted,
.wpscul-modal.cdi-layer-promoted,
.cdi-modal.cdi-layer-promoted,
.ci-modal.cdi-layer-promoted,
.rd-modal.cdi-layer-promoted,
.wpfm-modal.cdi-layer-promoted,
.wphr-modal.cdi-layer-promoted {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
}

.wpal-drawer.cdi-layer-promoted,
.wpal-backdrop.cdi-layer-promoted-backdrop {
  position: fixed !important;
}

@media (max-width: 767px) {
  .cdi-global-layer {
    align-items: end !important;
    padding: 0 !important;
  }

  .cdi-global-layer__dialog {
    width: 100% !important;
    max-height: 96dvh !important;
    border-radius: 18px 18px 0 0 !important;
  }

  .cdi-global-layer__header {
    min-height: 58px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cdi-global-layer *,
  .cdi-layer-promoted {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}
