.ecovance-responsive { box-sizing: border-box; }
.is-ecovance-rc-centered { margin-inline: auto !important; }

.editor-styles-wrapper.has-ecovance-page-background-preview {
  background-color: var(--ecovance-page-background-preview, #fff) !important;
}

/* Image décorative de section : la couleur native Gutenberg reste visible dessous. */
.has-ecovance-background-image {
  position: relative;
  isolation: isolate;
}

.has-ecovance-background-image.has-ecovance-background-overflow {
  overflow: visible !important;
}

.ecovance-background-image-layer,
.editor-styles-wrapper .block-editor-block-list__block.has-ecovance-background-image::before {
  content: "";
  position: absolute;
  top: calc(0px - var(--ecovance-bg-d-overflow-top, 0px));
  right: 0;
  bottom: calc(0px - var(--ecovance-bg-d-overflow-bottom, 0px));
  left: 0;
  z-index: -1;
  display: block;
  background-color: inherit;
  background-image: var(--ecovance-bg-image, none);
  background-position: var(--ecovance-bg-d-px, center) var(--ecovance-bg-d-py, center);
  background-repeat: var(--ecovance-bg-d-repeat, no-repeat);
  background-size: var(--ecovance-bg-d-size, cover);
  opacity: var(--ecovance-bg-d-opacity, 1);
  pointer-events: none;
}

.is-ecovance-bg-d-hide > .ecovance-background-image-layer,
.editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-d-hide::before { display: none; }
.is-ecovance-bg-d-show > .ecovance-background-image-layer,
.editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-d-show::before { display: block; }

@media (max-width: 1439px) {
  .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.has-ecovance-background-image::before {
    top: calc(0px - var(--ecovance-bg-l-overflow-top, var(--ecovance-bg-d-overflow-top, 0px)));
    bottom: calc(0px - var(--ecovance-bg-l-overflow-bottom, var(--ecovance-bg-d-overflow-bottom, 0px)));
    background-position: var(--ecovance-bg-l-px, var(--ecovance-bg-d-px, center)) var(--ecovance-bg-l-py, var(--ecovance-bg-d-py, center));
    background-repeat: var(--ecovance-bg-l-repeat, var(--ecovance-bg-d-repeat, no-repeat));
    background-size: var(--ecovance-bg-l-size, var(--ecovance-bg-d-size, cover));
    opacity: var(--ecovance-bg-l-opacity, var(--ecovance-bg-d-opacity, 1));
  }
  .is-ecovance-bg-l-hide > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-l-hide::before { display: none; }
  .is-ecovance-bg-l-show > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-l-show::before { display: block; }
}

@media (max-width: 1023px) {
  .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.has-ecovance-background-image::before {
    top: calc(0px - var(--ecovance-bg-t-overflow-top, var(--ecovance-bg-l-overflow-top, var(--ecovance-bg-d-overflow-top, 0px))));
    bottom: calc(0px - var(--ecovance-bg-t-overflow-bottom, var(--ecovance-bg-l-overflow-bottom, var(--ecovance-bg-d-overflow-bottom, 0px))));
    background-position: var(--ecovance-bg-t-px, var(--ecovance-bg-l-px, var(--ecovance-bg-d-px, center))) var(--ecovance-bg-t-py, var(--ecovance-bg-l-py, var(--ecovance-bg-d-py, center)));
    background-repeat: var(--ecovance-bg-t-repeat, var(--ecovance-bg-l-repeat, var(--ecovance-bg-d-repeat, no-repeat)));
    background-size: var(--ecovance-bg-t-size, var(--ecovance-bg-l-size, var(--ecovance-bg-d-size, cover)));
    opacity: var(--ecovance-bg-t-opacity, var(--ecovance-bg-l-opacity, var(--ecovance-bg-d-opacity, 1)));
  }
  .is-ecovance-bg-t-hide > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-t-hide::before { display: none; }
  .is-ecovance-bg-t-show > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-t-show::before { display: block; }
}

@media (max-width: 767px) {
  .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.has-ecovance-background-image::before {
    top: calc(0px - var(--ecovance-bg-m-overflow-top, var(--ecovance-bg-t-overflow-top, var(--ecovance-bg-l-overflow-top, var(--ecovance-bg-d-overflow-top, 0px)))));
    bottom: calc(0px - var(--ecovance-bg-m-overflow-bottom, var(--ecovance-bg-t-overflow-bottom, var(--ecovance-bg-l-overflow-bottom, var(--ecovance-bg-d-overflow-bottom, 0px)))));
    background-position: var(--ecovance-bg-m-px, var(--ecovance-bg-t-px, var(--ecovance-bg-l-px, var(--ecovance-bg-d-px, center)))) var(--ecovance-bg-m-py, var(--ecovance-bg-t-py, var(--ecovance-bg-l-py, var(--ecovance-bg-d-py, center))));
    background-repeat: var(--ecovance-bg-m-repeat, var(--ecovance-bg-t-repeat, var(--ecovance-bg-l-repeat, var(--ecovance-bg-d-repeat, no-repeat))));
    background-size: var(--ecovance-bg-m-size, var(--ecovance-bg-t-size, var(--ecovance-bg-l-size, var(--ecovance-bg-d-size, cover))));
    opacity: var(--ecovance-bg-m-opacity, var(--ecovance-bg-t-opacity, var(--ecovance-bg-l-opacity, var(--ecovance-bg-d-opacity, 1))));
  }
  .is-ecovance-bg-m-hide > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-m-hide::before { display: none; }
  .is-ecovance-bg-m-show > .ecovance-background-image-layer,
  .editor-styles-wrapper .block-editor-block-list__block.is-ecovance-bg-m-show::before { display: block; }
}

/* Courbes basses issues des références Figma. L’inline SVG est décoratif et local. */
.has-ecovance-bottom-shape {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.ecovance-bottom-shape {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  display: block;
  width: 100%;
  max-width: none !important;
  height: clamp(4.5rem, 8.333vw, 10rem);
  margin: 0 !important;
  overflow: hidden;
  color: var(--ecovance-bottom-shape-color, #fff);
  line-height: 0;
  pointer-events: none;
}

.ecovance-bottom-shape svg { display: block; width: 100%; height: 100%; }
.ecovance-bottom-shape--simple svg {
  position: absolute;
  top: 0;
  left: 50%;
  width: 125%;
  max-width: none !important;
  transform: translateX(-50%);
}
.ecovance-bottom-shape--double { height: 100%; }
.ecovance-bottom-shape__double-mobile { display: none !important; }

/* Gutenberg ne rend pas le complément HTML ajouté côté serveur : aperçu équivalent dans le canevas. */
.editor-styles-wrapper .block-editor-block-list__block.has-ecovance-bottom-shape::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  display: block;
  height: clamp(4.5rem, 8.333vw, 10rem);
  background: var(--ecovance-bottom-shape-color, #fff);
  pointer-events: none;
}

.editor-styles-wrapper .block-editor-block-list__block.has-ecovance-bottom-shape--simple::after {
  right: -12.5%;
  left: -12.5%;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.editor-styles-wrapper .block-editor-block-list__block.has-ecovance-bottom-shape--double::after {
  height: 100%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 939.381' preserveAspectRatio='none'%3E%3Cpath d='M0 859.606C182.49 711.245 448.266 719.207 614.584 885.525C626.912 897.853 638.368 910.728 648.956 924.074C666.948 896.183 688.178 869.733 712.641 845.27C894.491 663.419 1186.09 660.185 1363.96 838.045C1394.72 868.806 1420.06 902.971 1440 939.381H0V859.606Z' fill='black'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 939.381' preserveAspectRatio='none'%3E%3Cpath d='M0 859.606C182.49 711.245 448.266 719.207 614.584 885.525C626.912 897.853 638.368 910.728 648.956 924.074C666.948 896.183 688.178 869.733 712.641 845.27C894.491 663.419 1186.09 660.185 1363.96 838.045C1394.72 868.806 1420.06 902.971 1440 939.381H0V859.606Z' fill='black'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
}

@media (max-width: 767px) {
  .ecovance-bottom-shape--double { height: clamp(5rem, 20.139vw, 18.125rem); }
  .ecovance-bottom-shape__double-desktop { display: none !important; }
  .ecovance-bottom-shape__double-mobile { display: block !important; }
  .editor-styles-wrapper .block-editor-block-list__block.has-ecovance-bottom-shape--double::after {
    height: clamp(5rem, 20.139vw, 18.125rem);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 290' preserveAspectRatio='none'%3E%3Cpath d='M0 209.606C182.49 61.245 448.266 69.207 614.584 235.525C626.912 247.853 638.368 260.728 648.956 274.074C666.948 246.183 688.178 219.733 712.641 195.27C894.491 13.419 1186.09 10.185 1363.96 188.045C1394.72 218.806 1420.06 252.971 1440 289.381V290H0V209.606Z' fill='black'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 290' preserveAspectRatio='none'%3E%3Cpath d='M0 209.606C182.49 61.245 448.266 69.207 614.584 235.525C626.912 247.853 638.368 260.728 648.956 274.074C666.948 246.183 688.178 219.733 712.641 195.27C894.491 13.419 1186.09 10.185 1363.96 188.045C1394.72 218.806 1420.06 252.971 1440 289.381V290H0V209.606Z' fill='black'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
  }
}

.has-ecovance-rc-d-mw { max-width: var(--ecovance-rc-d-mw) !important; }
.has-ecovance-rc-d-w { width: var(--ecovance-rc-d-w) !important; }
.has-ecovance-rc-d-h { height: var(--ecovance-rc-d-h) !important; }
.has-ecovance-rc-d-mh { min-height: var(--ecovance-rc-d-mh) !important; }
.has-ecovance-rc-d-top { top: var(--ecovance-rc-d-top) !important; }
.has-ecovance-rc-d-right { right: var(--ecovance-rc-d-right) !important; }
.has-ecovance-rc-d-bottom { bottom: var(--ecovance-rc-d-bottom) !important; }
.has-ecovance-rc-d-left { left: var(--ecovance-rc-d-left) !important; }
.has-ecovance-rc-d-mt { margin-top: var(--ecovance-rc-d-mt) !important; }
.has-ecovance-rc-d-mr { margin-right: var(--ecovance-rc-d-mr) !important; }
.has-ecovance-rc-d-mb { margin-bottom: var(--ecovance-rc-d-mb) !important; }
.has-ecovance-rc-d-ml { margin-left: var(--ecovance-rc-d-ml) !important; }
.has-ecovance-rc-d-pt { padding-top: var(--ecovance-rc-d-pt) !important; }
.has-ecovance-rc-d-pr { padding-right: var(--ecovance-rc-d-pr) !important; }
.has-ecovance-rc-d-pb { padding-bottom: var(--ecovance-rc-d-pb) !important; }
.has-ecovance-rc-d-pl { padding-left: var(--ecovance-rc-d-pl) !important; }
.has-ecovance-rc-d-gap { gap: var(--ecovance-rc-d-gap) !important; }
.has-ecovance-rc-d-fs { font-size: var(--ecovance-rc-d-fs) !important; }
.has-ecovance-rc-d-lh { line-height: var(--ecovance-rc-d-lh) !important; }
.has-ecovance-rc-d-ta { text-align: var(--ecovance-rc-d-ta) !important; }
.is-ecovance-rc-d-hidden { display: none !important; }

@media (max-width: 1439px) {
  .has-ecovance-rc-l-mw { max-width: var(--ecovance-rc-l-mw) !important; }
  .has-ecovance-rc-l-w { width: var(--ecovance-rc-l-w) !important; }
  .has-ecovance-rc-l-h { height: var(--ecovance-rc-l-h) !important; }
  .has-ecovance-rc-l-mh { min-height: var(--ecovance-rc-l-mh) !important; }
  .has-ecovance-rc-l-top { top: var(--ecovance-rc-l-top) !important; }
  .has-ecovance-rc-l-right { right: var(--ecovance-rc-l-right) !important; }
  .has-ecovance-rc-l-bottom { bottom: var(--ecovance-rc-l-bottom) !important; }
  .has-ecovance-rc-l-left { left: var(--ecovance-rc-l-left) !important; }
  .has-ecovance-rc-l-mt { margin-top: var(--ecovance-rc-l-mt) !important; }
  .has-ecovance-rc-l-mr { margin-right: var(--ecovance-rc-l-mr) !important; }
  .has-ecovance-rc-l-mb { margin-bottom: var(--ecovance-rc-l-mb) !important; }
  .has-ecovance-rc-l-ml { margin-left: var(--ecovance-rc-l-ml) !important; }
  .has-ecovance-rc-l-pt { padding-top: var(--ecovance-rc-l-pt) !important; }
  .has-ecovance-rc-l-pr { padding-right: var(--ecovance-rc-l-pr) !important; }
  .has-ecovance-rc-l-pb { padding-bottom: var(--ecovance-rc-l-pb) !important; }
  .has-ecovance-rc-l-pl { padding-left: var(--ecovance-rc-l-pl) !important; }
  .has-ecovance-rc-l-gap { gap: var(--ecovance-rc-l-gap) !important; }
  .has-ecovance-rc-l-fs { font-size: var(--ecovance-rc-l-fs) !important; }
  .has-ecovance-rc-l-lh { line-height: var(--ecovance-rc-l-lh) !important; }
  .has-ecovance-rc-l-ta { text-align: var(--ecovance-rc-l-ta) !important; }
  .is-ecovance-rc-l-hidden { display: none !important; }
}

@media (max-width: 1023px) {
  .has-ecovance-rc-t-mw { max-width: var(--ecovance-rc-t-mw) !important; }
  .has-ecovance-rc-t-w { width: var(--ecovance-rc-t-w) !important; }
  .has-ecovance-rc-t-h { height: var(--ecovance-rc-t-h) !important; }
  .has-ecovance-rc-t-mh { min-height: var(--ecovance-rc-t-mh) !important; }
  .has-ecovance-rc-t-top { top: var(--ecovance-rc-t-top) !important; }
  .has-ecovance-rc-t-right { right: var(--ecovance-rc-t-right) !important; }
  .has-ecovance-rc-t-bottom { bottom: var(--ecovance-rc-t-bottom) !important; }
  .has-ecovance-rc-t-left { left: var(--ecovance-rc-t-left) !important; }
  .has-ecovance-rc-t-mt { margin-top: var(--ecovance-rc-t-mt) !important; }
  .has-ecovance-rc-t-mr { margin-right: var(--ecovance-rc-t-mr) !important; }
  .has-ecovance-rc-t-mb { margin-bottom: var(--ecovance-rc-t-mb) !important; }
  .has-ecovance-rc-t-ml { margin-left: var(--ecovance-rc-t-ml) !important; }
  .has-ecovance-rc-t-pt { padding-top: var(--ecovance-rc-t-pt) !important; }
  .has-ecovance-rc-t-pr { padding-right: var(--ecovance-rc-t-pr) !important; }
  .has-ecovance-rc-t-pb { padding-bottom: var(--ecovance-rc-t-pb) !important; }
  .has-ecovance-rc-t-pl { padding-left: var(--ecovance-rc-t-pl) !important; }
  .has-ecovance-rc-t-gap { gap: var(--ecovance-rc-t-gap) !important; }
  .has-ecovance-rc-t-fs { font-size: var(--ecovance-rc-t-fs) !important; }
  .has-ecovance-rc-t-lh { line-height: var(--ecovance-rc-t-lh) !important; }
  .has-ecovance-rc-t-ta { text-align: var(--ecovance-rc-t-ta) !important; }
  .is-ecovance-rc-t-hidden { display: none !important; }
}

@media (max-width: 767px) {
  .has-ecovance-rc-m-mw { max-width: var(--ecovance-rc-m-mw) !important; }
  .has-ecovance-rc-m-w { width: var(--ecovance-rc-m-w) !important; }
  .has-ecovance-rc-m-h { height: var(--ecovance-rc-m-h) !important; }
  .has-ecovance-rc-m-mh { min-height: var(--ecovance-rc-m-mh) !important; }
  .has-ecovance-rc-m-top { top: var(--ecovance-rc-m-top) !important; }
  .has-ecovance-rc-m-right { right: var(--ecovance-rc-m-right) !important; }
  .has-ecovance-rc-m-bottom { bottom: var(--ecovance-rc-m-bottom) !important; }
  .has-ecovance-rc-m-left { left: var(--ecovance-rc-m-left) !important; }
  .has-ecovance-rc-m-mt { margin-top: var(--ecovance-rc-m-mt) !important; }
  .has-ecovance-rc-m-mr { margin-right: var(--ecovance-rc-m-mr) !important; }
  .has-ecovance-rc-m-mb { margin-bottom: var(--ecovance-rc-m-mb) !important; }
  .has-ecovance-rc-m-ml { margin-left: var(--ecovance-rc-m-ml) !important; }
  .has-ecovance-rc-m-pt { padding-top: var(--ecovance-rc-m-pt) !important; }
  .has-ecovance-rc-m-pr { padding-right: var(--ecovance-rc-m-pr) !important; }
  .has-ecovance-rc-m-pb { padding-bottom: var(--ecovance-rc-m-pb) !important; }
  .has-ecovance-rc-m-pl { padding-left: var(--ecovance-rc-m-pl) !important; }
  .has-ecovance-rc-m-gap { gap: var(--ecovance-rc-m-gap) !important; }
  .has-ecovance-rc-m-fs { font-size: var(--ecovance-rc-m-fs) !important; }
  .has-ecovance-rc-m-lh { line-height: var(--ecovance-rc-m-lh) !important; }
  .has-ecovance-rc-m-ta { text-align: var(--ecovance-rc-m-ta) !important; }
  .is-ecovance-rc-m-hidden { display: none !important; }
}

.is-ecovance-rc-no-motion,
.is-ecovance-rc-no-motion * {
  animation: none !important;
  scroll-behavior: auto !important;
  transition: none !important;
}

.is-ecovance-rc-no-motion:hover,
.is-ecovance-rc-no-motion :hover {
  transform: none !important;
}
