.elementor-54 .elementor-element.elementor-element-3441b3c{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:30px 30px;--row-gap:30px;--column-gap:30px;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#0000001C;--border-color:#0000001C;--margin-top:0px;--margin-bottom:30px;--margin-left:0px;--margin-right:0px;--padding-top:30px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-54 .elementor-element.elementor-element-3441b3c.eael_liquid_glass-effect1{background-color:#FFFFFF1F;backdrop-filter:blur(24px);}.elementor-54 .elementor-element.elementor-element-3441b3c.eael_liquid_glass_shadow-effect4{border-style:solid;border-width:1px 1px 1px 1px;border-color:#AAAAAA1A;border-radius:24px 24px 24px 24px;box-shadow:0px 9px 21px 0px #00000040;}.elementor-54 .elementor-element.elementor-element-2f3a0d5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-54 .elementor-element.elementor-element-78bde2c.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-54 .elementor-element.elementor-element-78bde2c .wd-sub-accented > li > a{color:var( --e-global-color-primary );}.elementor-54 .elementor-element.elementor-element-78bde2c .sub-sub-menu > li > a{color:#000000;}.elementor-54 .elementor-element.elementor-element-ce25f7f.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-54 .elementor-element.elementor-element-ce25f7f .wd-sub-accented > li > a{color:var( --e-global-color-primary );}.elementor-54 .elementor-element.elementor-element-ba1307d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-54 .elementor-element.elementor-element-195dafb.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-54 .elementor-element.elementor-element-195dafb .wd-sub-accented > li > a{color:var( --e-global-color-primary );}.elementor-54 .elementor-element.elementor-element-195dafb .sub-sub-menu > li > a{color:#000000;}.elementor-54 .elementor-element.elementor-element-5427b00{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-54 .elementor-element.elementor-element-fe6050c.xpro-widget-bg-overlay:before{transition:background 0.3s;}.elementor-54 .elementor-element.elementor-element-fe6050c{--wd-img-height:180px;}.elementor-54 .elementor-element.elementor-element-fe6050c .banner-image{object-position:center center;}.elementor-54 .elementor-element.elementor-element-fe6050c .banner-title{font-size:26px;}.elementor-54 .elementor-element.elementor-element-fe6050c .banner-subtitle{color:#FFFFFFCC;font-size:15px;}@media(min-width:769px){.elementor-54 .elementor-element.elementor-element-2f3a0d5{--width:20%;}.elementor-54 .elementor-element.elementor-element-ba1307d{--width:20%;}.elementor-54 .elementor-element.elementor-element-5427b00{--width:20%;}}@media(max-width:1024px) and (min-width:769px){.elementor-54 .elementor-element.elementor-element-2f3a0d5{--width:100%;}.elementor-54 .elementor-element.elementor-element-ba1307d{--width:100%;}.elementor-54 .elementor-element.elementor-element-5427b00{--width:100%;}}@media(max-width:1024px){.elementor-54 .elementor-element.elementor-element-3441b3c{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--padding-top:10px;--padding-bottom:30px;--padding-left:20px;--padding-right:20px;}.elementor-54 .elementor-element.elementor-element-2f3a0d5{--gap:10px 10px;--row-gap:10px;--column-gap:10px;}.elementor-54 .elementor-element.elementor-element-ba1307d{--gap:10px 10px;--row-gap:10px;--column-gap:10px;}}@media(max-width:768px){.elementor-54 .elementor-element.elementor-element-fe6050c .banner-title{font-size:22px;}}/* Start custom CSS for container, class: .elementor-element-3441b3c */.elementor-54 .elementor-element.elementor-element-3441b3c {
  position: relative;
  background-color: hsla(260,17%,96%,1);
  overflow: hidden;
}

/* --- Calque principal animé --- */
.elementor-54 .elementor-element.elementor-element-3441b3c::before {
  content: "";
  position: absolute;
  inset: -20%;
  background-image:
    radial-gradient(at 4% 47%, hsla(188,100%,50%,0.35) 0px, transparent 55%),
    radial-gradient(at 93% 56%, hsla(289,100%,60%,0.35) 0px, transparent 55%),
    radial-gradient(at 11% 98%, hsla(260,17%,96%,1) 0px, transparent 55%),
    radial-gradient(at 15% 0%, hsla(260,17%,96%,1) 0px, transparent 55%);
  background-size: 200% 200%;
  animation: abstractFlow 40s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite alternate;
  filter: blur(50px) contrast(105%);
  opacity: 0.85;
  transform-origin: center;
  z-index: 0;
}

/* --- Grain fin et léger --- */
.elementor-54 .elementor-element.elementor-element-3441b3c::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("https://grainy-gradients.vercel.app/noise.svg");
  opacity: 0.05;
  mix-blend-mode: overlay;
  animation: grainShift 3s steps(2) infinite;
  pointer-events: none;
  z-index: 1;
}

/* --- Mouvements abstraits fluides --- */
@keyframes abstractFlow {
  0% {
    transform: translate(0%, 0%) scale(1);
    background-position: 40% 60%;
  }
  25% {
    transform: translate(10%, -8%) rotate(5deg) scale(1.05);
    background-position: 60% 40%;
  }
  50% {
    transform: translate(-12%, 10%) rotate(-6deg) scale(1.1);
    background-position: 70% 80%;
  }
  75% {
    transform: translate(8%, 15%) rotate(4deg) scale(1.08);
    background-position: 20% 30%;
  }
  100% {
    transform: translate(0%, 0%) rotate(0deg) scale(1);
    background-position: 40% 60%;
  }
}

/* --- Grain en mouvement subtil --- */
@keyframes grainShift {
  0% { transform: translate(0, 0); }
  100% { transform: translate(2%, 2%); }
}/* End custom CSS */