.elementor-widget-section .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-section .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );}.elementor-1320 .elementor-element.elementor-element-b9e4df8:not(.elementor-motion-effects-element-type-background), .elementor-1320 .elementor-element.elementor-element-b9e4df8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;}.elementor-1320 .elementor-element.elementor-element-b9e4df8 > .elementor-background-overlay{background-color:#000000;opacity:0.65;mix-blend-mode:multiply;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-1320 .elementor-element.elementor-element-b9e4df8 > .elementor-container{min-height:100vh;}.elementor-1320 .elementor-element.elementor-element-b9e4df8{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:0%;margin-bottom:0%;padding:0% 5% 0% 5%;}.elementor-bc-flex-widget .elementor-1320 .elementor-element.elementor-element-3141dadc.elementor-column .elementor-widget-wrap{align-items:center;}.elementor-1320 .elementor-element.elementor-element-3141dadc.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:center;align-items:center;}.elementor-1320 .elementor-element.elementor-element-3141dadc.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-1320 .elementor-element.elementor-element-3141dadc > .elementor-element-populated{margin:0% 0% 0% 0%;--e-column-margin-right:0%;--e-column-margin-left:0%;padding:0% 0% 0% 0%;}.elementor-widget-html .eael-protected-content-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-html .protected-content-error-msg{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );}@media(min-width:768px){.elementor-1320 .elementor-element.elementor-element-3141dadc{width:10%;}}@media(max-width:1024px){.elementor-widget-section .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-section .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1320 .elementor-element.elementor-element-b9e4df8{margin-top:0%;margin-bottom:0%;}.elementor-widget-html .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-html .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}}@media(max-width:767px){.elementor-widget-section .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-section .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}.elementor-1320 .elementor-element.elementor-element-b9e4df8 > .elementor-container{min-height:100vh;}.elementor-1320 .elementor-element.elementor-element-b9e4df8{margin-top:0%;margin-bottom:0%;}.elementor-widget-html .eael-protected-content-message{font-size:var( --e-global-typography-secondary-font-size );}.elementor-widget-html .protected-content-error-msg{font-size:var( --e-global-typography-secondary-font-size );}}/* Start custom CSS for html, class: .elementor-element-e3d2fd5 */.hero-grid {
      position: fixed;
    top: 0;
    left: 0; 
    bottom: 0;
    right: 0;
      min-height: 100vh;
  min-width: 100vw;    
    
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr auto 1fr;
  place-items: center;
  background: url("your-bg.jpg") center/cover no-repeat;
  color: white;
}

/* empty filler cells */
.cell {
  width: 100%;
  height: 100%;
}

/* horizontal lines (top and bottom middle cells) */
.line.horizontal {
  height: 4px;
  width: 100%;
  background:#D21034;}

/* vertical lines (left and right middle cells) */
.line.vertical {
  width: 4px;
  height: 100%;
    background: #006633; /* target line color */
}

/* center text */
.center-text {
  font-size: 40px;
  font-family: D-DIN;
  font-weight: bold;
  text-align: center;
  color: #fff;
  background: transparent; /* stays transparent */
  padding: 30px;
}


.grid-center-cell {
  position: relative;
  color: white; /* text stays always visible */
}

/* put the flashy corners into a pseudo-element */
.grid-center-cell::before {
  content: "";
  position: absolute;
  inset: 0; /* cover the cell */
  background:
    linear-gradient(to right, #006633 4px, transparent 4px) 0 0,
    linear-gradient(to right, #D21034 4px, transparent 4px) 0 100%,
    linear-gradient(to left, #D21034 4px, transparent 4px) 100% 0,
    linear-gradient(to left, #006633 4px, transparent 4px) 100% 100%,
    linear-gradient(to bottom, #006633 4px, transparent 4px) 0 0,
    linear-gradient(to bottom, #D21034 4px, transparent 4px) 100% 0,
    linear-gradient(to top, #D21034 4px, transparent 4px) 0 100%,
    linear-gradient(to top, #006633 4px, transparent 4px) 100% 100%;

  background-repeat: no-repeat;
  background-size: 20px 20px;

  animation: flash-corners 1.8s steps(1, end) infinite;
  z-index: -1; /* keep it behind the text */
}

@keyframes flash-corners {
  0%, 70%{ opacity: 1; }  /* visible most of the time */
  71%, 100%      { opacity: 0; }  /* quick disappear */
}



.grid-center-top {
    align-self: end;
     margin-bottom: 30px;
     -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
mask-image: linear-gradient(to top, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
}

.grid-center-bottom {
    align-self: start;
    margin-top: 30px;
    
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 90%);
mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 90%);
}

.grid-center-left {
    justify-self: start;
     margin-left: 30px;
     
     -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
mask-image: linear-gradient(to right, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
}

.grid-center-right {
    justify-self: end;
     margin-right: 30px;
     -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
mask-image: linear-gradient(to left, rgba(0,0,0,1) 70%, rgba(0,0,0,0) 100%);
     
}

/* par défaut : tout sur la même ligne */
.grid-center-cell span {
  display: inline;
}

/* ajoute un espace après chaque span */
.grid-center-cell span::after {
  content: " "; /* espace après le point */
}

@media screen and (max-width: 766px) {
  /* écran petit : retour à la ligne après chaque span */
  .grid-center-cell span {
    display: block;
  }
  /* ajoute un espace après chaque span */
.grid-center-cell span::after {
  content: ""; /* espace après le point */
}
}

@media (max-width: 330px) {
    .line, .cell{
        display: none;
    }
    .grid-center-cell::before {
        background: none;
    }
    
    
    
    .hero-grid{
    display: flex;
    justify-content: center;
    align-items: center;      
    }
    
}

@media only screen and (max-width: 766px) {
.center-text {
    font-size: 30px;
  padding: 20px;
}
.grid-center-top {
     margin-bottom: 20px;
}

.grid-center-bottom {
    margin-top: 20px;
}

.grid-center-left {
     margin-left: 20px;
}
.grid-center-right {
     margin-right: 20px;
}
}

@media (min-width: 767px) and (max-width: 1024px) {
.center-text {
    font-size: 35px;
  padding: 25px;
}
.grid-center-top {
     margin-bottom: 25px;
}

.grid-center-bottom {
    margin-top: 25px;
}

.grid-center-left {
     margin-left: 25px;
}
.grid-center-right {
     margin-right: 25px;
}


}

/*****/

.grid-center-right,
.grid-center-left,
.grid-center-top,
.grid-center-bottom {
  position: relative;
}

/* HORIZONTAL right -> left */
.grid-center-right::before {
  content: "";
  position: absolute;
  top: 0;
  left: -40%;
  width: 40%;
  height: 100%;
  pointer-events: none;
  transform: skewX(-20deg);
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.9) 50%,
    rgba(255,255,255,0) 100%
  );
  filter: blur(2px);
  mix-blend-mode: screen;
  animation: shine-left-to-right 3s linear infinite;
  animation-delay: 1s;
}

/* HORIZONTAL left -> right */
.grid-center-left::before {
  content: "";
  position: absolute;
  top: 0;
  right: -40%;
  width: 40%;
  height: 100%;
  pointer-events: none;
  transform: skewX(-20deg);
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.9) 50%,
    rgba(255,255,255,0) 100%
  );
  filter: blur(2px);
  mix-blend-mode: screen;
  animation: shine-right-to-left 3s linear infinite;
  animation-delay: 1s;
}

/* VERTICAL top -> bottom (use top:-40% and skewY so shape matches) */
.grid-center-top::before {
  content: "";
  position: absolute;
  top: -40%;       /* START above the element */
  left: 0;
  width: 100%;
  height: 40%;
  pointer-events: none;
  transform: skewY(-20deg);
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.9) 50%,
    rgba(255,255,255,0) 100%
  );
  filter: blur(2px);
  mix-blend-mode: screen;
  animation: shine-top-to-bottom 3s linear infinite;
  animation-delay: 1s;
}

/* VERTICAL bottom -> top (start below the element) */
.grid-center-bottom::before {
  content: "";
  position: absolute;
  top: 100%;       /* START below the element */
  left: 0;
  width: 100%;
  height: 40%;
  pointer-events: none;
  transform: skewY(-20deg) rotate(180deg); /* rotate so gradient direction is similar */
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.9) 50%,
    rgba(255,255,255,0) 100%
  );
  filter: blur(2px);
  mix-blend-mode: screen;
  animation: shine-bottom-to-top 3s linear infinite;
  animation-delay: 1s;
}

/* Animations */

/* left -> right */
@keyframes shine-left-to-right {
  0%   { left: -40%; opacity: 0; }
  20%  { opacity: 1; }
  50%  { left: 100%; opacity: 1; }
  80%  { opacity: 0; }
  100% { left: 100%; opacity: 0; }
}

/* right -> left */
@keyframes shine-right-to-left {
  0%   { right: -40%; opacity: 0; }
  20%  { opacity: 1; }
  50%  { right: 100%; opacity: 1; }
  80%  { opacity: 0; }
  100% { right: 100%; opacity: 0; }
}

/* top -> bottom (animating top so start/end match the pseudo-element's top values) */
@keyframes shine-top-to-bottom {
  0%   { top: -40%; opacity: 0; }
  20%  { opacity: 1; }
  50%  { top: 100%; opacity: 1; }
  80%  { opacity: 0; }
  100% { top: 100%; opacity: 0; }
}

/* bottom -> top (animate top from 100% up to -40%) */
@keyframes shine-bottom-to-top {
  0%   { top: 100%; opacity: 0; }
  20%  { opacity: 1; }
  50%  { top: -40%; opacity: 1; }
  80%  { opacity: 0; }
  100% { top: -40%; opacity: 0; }
}


/******/

.hero-grid{
    z-index: 0;
    
}
    
    .hero-grid::before{
     content: ""; /* THIS IS REQUIRED */
       position: fixed;
       inset: 0;
    top: 0;
    left: 0; 
    bottom: 0;
    right: 0;
      min-height: 100vh;
  min-width: 100vw; 
 
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2000' height='2000' viewBox='0 0 800 800'%3E%3Cg fill='none' stroke-opacity='0.5'%3E%3Cg stroke='%23222222' stroke-width='17'%3E%3Cline x1='-8' y1='-8' x2='808' y2='808'/%3E%3Cline x1='-8' y1='792' x2='808' y2='1608'/%3E%3Cline x1='-8' y1='-808' x2='808' y2='8'/%3E%3C/g%3E%3Cg stroke='%23232323' stroke-width='16'%3E%3Cline x1='-8' y1='767' x2='808' y2='1583'/%3E%3Cline x1='-8' y1='17' x2='808' y2='833'/%3E%3Cline x1='-8' y1='-33' x2='808' y2='783'/%3E%3Cline x1='-8' y1='-783' x2='808' y2='33'/%3E%3C/g%3E%3Cg stroke='%23242424' stroke-width='15'%3E%3Cline x1='-8' y1='742' x2='808' y2='1558'/%3E%3Cline x1='-8' y1='42' x2='808' y2='858'/%3E%3Cline x1='-8' y1='-58' x2='808' y2='758'/%3E%3Cline x1='-8' y1='-758' x2='808' y2='58'/%3E%3C/g%3E%3Cg stroke='%23252525' stroke-width='14'%3E%3Cline x1='-8' y1='67' x2='808' y2='883'/%3E%3Cline x1='-8' y1='717' x2='808' y2='1533'/%3E%3Cline x1='-8' y1='-733' x2='808' y2='83'/%3E%3Cline x1='-8' y1='-83' x2='808' y2='733'/%3E%3C/g%3E%3Cg stroke='%23262626' stroke-width='13'%3E%3Cline x1='-8' y1='92' x2='808' y2='908'/%3E%3Cline x1='-8' y1='692' x2='808' y2='1508'/%3E%3Cline x1='-8' y1='-108' x2='808' y2='708'/%3E%3Cline x1='-8' y1='-708' x2='808' y2='108'/%3E%3C/g%3E%3Cg stroke='%23272727' stroke-width='12'%3E%3Cline x1='-8' y1='667' x2='808' y2='1483'/%3E%3Cline x1='-8' y1='117' x2='808' y2='933'/%3E%3Cline x1='-8' y1='-133' x2='808' y2='683'/%3E%3Cline x1='-8' y1='-683' x2='808' y2='133'/%3E%3C/g%3E%3Cg stroke='%23282828' stroke-width='11'%3E%3Cline x1='-8' y1='642' x2='808' y2='1458'/%3E%3Cline x1='-8' y1='142' x2='808' y2='958'/%3E%3Cline x1='-8' y1='-158' x2='808' y2='658'/%3E%3Cline x1='-8' y1='-658' x2='808' y2='158'/%3E%3C/g%3E%3Cg stroke='%23292929' stroke-width='10'%3E%3Cline x1='-8' y1='167' x2='808' y2='983'/%3E%3Cline x1='-8' y1='617' x2='808' y2='1433'/%3E%3Cline x1='-8' y1='-633' x2='808' y2='183'/%3E%3Cline x1='-8' y1='-183' x2='808' y2='633'/%3E%3C/g%3E%3Cg stroke='%232a2a2a' stroke-width='9'%3E%3Cline x1='-8' y1='592' x2='808' y2='1408'/%3E%3Cline x1='-8' y1='192' x2='808' y2='1008'/%3E%3Cline x1='-8' y1='-608' x2='808' y2='208'/%3E%3Cline x1='-8' y1='-208' x2='808' y2='608'/%3E%3C/g%3E%3Cg stroke='%232b2b2b' stroke-width='8'%3E%3Cline x1='-8' y1='567' x2='808' y2='1383'/%3E%3Cline x1='-8' y1='217' x2='808' y2='1033'/%3E%3Cline x1='-8' y1='-233' x2='808' y2='583'/%3E%3Cline x1='-8' y1='-583' x2='808' y2='233'/%3E%3C/g%3E%3Cg stroke='%232c2c2c' stroke-width='7'%3E%3Cline x1='-8' y1='242' x2='808' y2='1058'/%3E%3Cline x1='-8' y1='542' x2='808' y2='1358'/%3E%3Cline x1='-8' y1='-558' x2='808' y2='258'/%3E%3Cline x1='-8' y1='-258' x2='808' y2='558'/%3E%3C/g%3E%3Cg stroke='%232d2d2d' stroke-width='6'%3E%3Cline x1='-8' y1='267' x2='808' y2='1083'/%3E%3Cline x1='-8' y1='517' x2='808' y2='1333'/%3E%3Cline x1='-8' y1='-533' x2='808' y2='283'/%3E%3Cline x1='-8' y1='-283' x2='808' y2='533'/%3E%3C/g%3E%3Cg stroke='%232e2e2e' stroke-width='5'%3E%3Cline x1='-8' y1='292' x2='808' y2='1108'/%3E%3Cline x1='-8' y1='492' x2='808' y2='1308'/%3E%3Cline x1='-8' y1='-308' x2='808' y2='508'/%3E%3Cline x1='-8' y1='-508' x2='808' y2='308'/%3E%3C/g%3E%3Cg stroke='%232f2f2f' stroke-width='4'%3E%3Cline x1='-8' y1='467' x2='808' y2='1283'/%3E%3Cline x1='-8' y1='317' x2='808' y2='1133'/%3E%3Cline x1='-8' y1='-333' x2='808' y2='483'/%3E%3Cline x1='-8' y1='-483' x2='808' y2='333'/%3E%3C/g%3E%3Cg stroke='%23303030' stroke-width='3'%3E%3Cline x1='-8' y1='342' x2='808' y2='1158'/%3E%3Cline x1='-8' y1='442' x2='808' y2='1258'/%3E%3Cline x1='-8' y1='-458' x2='808' y2='358'/%3E%3Cline x1='-8' y1='-358' x2='808' y2='458'/%3E%3C/g%3E%3Cg stroke='%23313131' stroke-width='2'%3E%3Cline x1='-8' y1='367' x2='808' y2='1183'/%3E%3Cline x1='-8' y1='417' x2='808' y2='1233'/%3E%3Cline x1='-8' y1='-433' x2='808' y2='383'/%3E%3Cline x1='-8' y1='-383' x2='808' y2='433'/%3E%3C/g%3E%3Cg stroke='%23323232' stroke-width='1'%3E%3Cline x1='-8' y1='392' x2='808' y2='1208'/%3E%3Cline x1='-8' y1='-408' x2='808' y2='408'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") !important;
    /*background-attachment: fixed;*/
    background-position: left top;
    background-repeat: repeat;
    opacity: 0.3;
    background-size: max(300vw, 300vh);
    /*background-size: cover;*/
    transform: scaleX(1);
    transform-origin: center;
    animation: bgZoom 10s ease-in-out infinite alternate;
    z-index: -2;
}

@keyframes bgZoom {
    0% {
        transform: scaleX(1);
        background-position: calc(50vw + 1vw) 50vw; /* shift slightly right */
    }
    50% {
        transform: scaleX(1.05);
        background-position: 50vw 50vw;
    }
    100% {
        transform: scaleX(1);
        background-position: calc(50vw - 1vw) 50vw; /* shift slightly left */
    }
}

@media only screen and (max-width: 766px) {
    .hero-grid::before{
        background-size: max(600vw, 600vh);
        animation: bgZoom 5s ease-in-out infinite alternate;
    }
    .hero-grid::after {
       left: -75%;
       width: 30%;
       height: 100%;
       animation: shineSweep 10s linear infinite;
    }
}

@media (min-width: 767px) and (max-width: 1024px) {
    .hero-grid::before{
        background-size: max(400vw, 400vh);
        animation: bgZoom 7.5s ease-in-out infinite alternate;
    }
    .hero-grid::after {
       left: -75%;
       width: 40%;
       height: 100%;
       animation: shineSweep 15s linear infinite;
    }
}

.hero-grid::after {
  content: "";
  position: fixed;
  inset: 0;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.04) 50%, /*0.15 puis 0.05 à la base */
    rgba(255, 255, 255, 0) 100%
  );
  transform: skewX(-25deg);
  animation: shineSweep 20s linear infinite;
  /*filter: blur(5px);*/ /* rien ici à la base*/
  z-index: -1;
  opacity: 0.8;
}


@keyframes shineSweep {
  0% {
    left: -75%;
  }
  100% {
    left: 125%;
  }
}/* End custom CSS */
/* Start custom CSS for column, class: .elementor-element-3141dadc */.elementor-1320 .elementor-element.elementor-element-3141dadc{
    position: absolute;
    top:0px;
    bottom: 0px;
    width: 100% !important;
}/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-b9e4df8 */html {
    scrollbar-gutter: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}  
body {
    overflow: hidden !important;
}

.elementor .elementor-background-video-embed{
  max-width: none !important;
  max-height: none !important;
}

.elementor-1320 .elementor-element.elementor-element-b9e4df8 video {
    filter: grayscale(100%) contrast(150%) !important;
    /*filter: grayscale(100%) blur(2.5px) !important;
    transform: translate(-50%, -50%) scale(1.2);*/ /* 👈 zoom in here */
    /*filter: grayscale(100%) brightness(0.9) contrast(1.1) !important;
    -webkit-filter: grayscale(100%) brightness(0.9) contrast(1.1) !important;*/
}


body.rtl .line.horizontal {
    transform: scaleX(-1);
}/* End custom CSS */
/* Start custom CSS */#stickytopbutton {
    -webkit-box-shadow: none;
    box-shadow: none;
    border: none;
}

.active_visible_button {
    visibility: visible;
}

.two_columns, .two_columns div, .two_columns figure, .two_columns a {
    height: 100%;
}

.two_columns img {
    min-height: 100%;
    object-fit: cover;
}

.two_columns figcaption {
    position: absolute;
    bottom: 0;
    text-align: left;
    padding: 10px;
    padding-left: 20px;
    background-color: rgba(0,0,0,0.5);
    width: 100%;
}

 body {
    overflow-x:hidden; 
}/* End custom CSS */