/*
Theme Name: Divi Community Child Theme
Description: Theme enfant de Divi par Divi Community
Author: Julien - WebMate
Author URI: https://www.divi-community.fr
Template: Divi
Version: 1.1
*/

/*
  ____ _____     _____      ____ ___  __  __ __  __ _   _ _   _ ___ _______   __
 |  _ \_ _\ \   / /_ _|    / ___/ _ \|  \/  |  \/  | | | | \ | |_ _|_   _\ \ / /
 | | | | | \ \ / / | |    | |  | | | | |\/| | |\/| | | | |  \| || |  | |  \ V /
 | |_| | |  \ V /  | |    | |__| |_| | |  | | |  | | |_| | |\  || |  | |   | |
 |____/___|  \_/  |___|    \____\___/|_|  |_|_|  |_|\___/|_| \_|___| |_|   |_|

*/


/*------------------------------------------------*/
/*-----------------[CTA Menu Item + Wobble]-------*/
/*------------------------------------------------*/

/* CTA */
#top-menu li.get-started{
  background: linear-gradient(90deg, #6a889e 0%, #588bb0 100%);
  font-weight:700;
  text-transform:uppercase;
  text-align:center;
  border-radius:5px;
  padding:0 !important;
  margin-left:50px !important;
  line-height:1;
  -moz-transition: all 0.5s;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  transform-origin: center;
}

/* Hover gradient */
#top-menu li.get-started:hover{
  background: linear-gradient(90deg, #588bb0 0%, #6a889e 100%);
}

/* Lien */
#top-menu li.get-started > a{
  color:#fff !important;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:4px 4px !important;
  line-height:1;
  min-height:15px;
}

/* Wobble au survol */
#top-menu li.get-started:hover{
  animation: prodeine-wobble 700ms ease-in-out both;
}

@keyframes prodeine-wobble{
  0%   { transform: translateX(0) rotate(0deg); }
  15%  { transform: translateX(-2px) rotate(-1deg); }
  30%  { transform: translateX(3px) rotate(1deg); }
  45%  { transform: translateX(-2px) rotate(-1deg); }
  60%  { transform: translateX(2px) rotate(1deg); }
  75%  { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Optionnel : garde un alignement parfait avec les autres items */
@media (min-width:981px){
  #top-menu li.get-started{
    margin-left:50px !important;
  }
}


/*------------------------------------------------*/
/*-----------------[CTA Menu Item 2]--------------*/
/*------------------------------------------------*/

/* Le li ne doit pas imposer une hauteur bizarre */
#top-menu li.get-started2{
  /* Dégradé (remplace le background-color) */
  background: linear-gradient(90deg, #6a889e 0%, #588bb0 100%);

  font-weight:700;
  text-transform:uppercase;
  text-align:center;
  border-radius:5px;
  padding:0 !important;
  line-height:1;
  -moz-transition: all 0.5s;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  transform-origin: center;
}

/* Dégradé au survol */
#top-menu li.get-started2:hover{
  background: linear-gradient(90deg, #588bb0 0%, #6a889e 100%);
  animation: prodeine-wobble 700ms ease-in-out both;
}

/* C’est le lien qui porte la “hauteur” du bouton */
#top-menu li.get-started2 > a{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:4px 6px !important;
  line-height:1;
  min-height:15px;
}

/* Force le texte en blanc (tous états) */
#top-menu li.get-started2 > a,
#top-menu li.get-started2 > a:visited,
#top-menu li.get-started2 > a:hover,
#top-menu li.get-started2 > a:focus,
#top-menu li.get-started2 > a:active{
  color:#fff !important;
}

/* Si Divi met le texte dans un span */
#top-menu li.get-started2 > a span{
  color:#fff !important;
}

/* Wobble keyframes (réutilisable) */
@keyframes prodeine-wobble{
  0%   { transform: translateX(0) rotate(0deg); }
  15%  { transform: translateX(-2px) rotate(-1deg); }
  30%  { transform: translateX(3px) rotate(1deg); }
  45%  { transform: translateX(-2px) rotate(-1deg); }
  60%  { transform: translateX(2px) rotate(1deg); }
  75%  { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* Décalage horizontal à droite (desktop) : méthode robuste */
@media (min-width:981px){
  #top-menu-nav #top-menu > li.get-started2{
    position: relative;
    left: 40px; /* ajuste : + => droite / - => gauche */
  }
}

/*------------------------------------------------*/
/*--[Icon separator (SVG) aligned RIGHT of button]-*/
/*------------------------------------------------*/

/* DESKTOP */
#top-menu li.separator-right{
  position: relative;
}

#top-menu li.separator-right:after{
  content: "";
  position: absolute;
  right: -25px;
  top: 50%;
  transform: translateY(-50%);
  margin-top: -8px;            /* plus négatif = plus haut */

  width: 32px;
  height: 32px;

  background-color: #fff;

  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='none'%20viewBox='0%200%2024%2024'%3E%3Cpath%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='2'%20d='M12%206h.01M12%2012h.01M12%2018h.01'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='none'%20viewBox='0%200%2024%2024'%3E%3Cpath%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='2'%20d='M12%206h.01M12%2012h.01M12%2018h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* MOBILE (burger) */
.et_mobile_menu li.separator-right{
  position: relative;
}

.et_mobile_menu li.separator-right:after{
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  margin-top: -8px;

  width: 24px;
  height: 24px;

  background-color: #fff;

  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='none'%20viewBox='0%200%2024%2024'%3E%3Cpath%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='2'%20d='M12%206h.01M12%2012h.01M12%2018h.01'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='none'%20viewBox='0%200%2024%2024'%3E%3Cpath%20stroke='%23000'%20stroke-linecap='round'%20stroke-width='2'%20d='M12%206h.01M12%2012h.01M12%2018h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Laisse la place à l’icône à droite sur mobile */
.et_mobile_menu li.separator-right > a{
  padding-right: 42px !important;
}



/*------------------------------------------------*/
/*------[Big Invisible Triangle - Quiroz.co]------*/
/*------------------------------------------------*/
 
#et-main-area { overflow: hidden;} /* Hides all the items that float over the right margin */
 
.big-triangle:after,.big-triangle:before {
    content:'';
    position:absolute;
    bottom:0;
    width:50%;
    z-index:100;
    border-bottom:50px solid #0f0f0f;
    -moz-transform:rotate(0.000001deg);
    -webkit-transform:rotate(0.000001deg);
    -o-transform:rotate(0.000001deg);
    -ms-transform:rotate(0.000001deg);
    transform:rotate(0.000001deg);}
 
.big-triangle:before{
    right:50%;
    border-right:1000px solid transparent;
    border-left:1000px solid;}
 
.big-triangle:after{
    left:50%;
    border-left:1000px solid transparent;
    border-right:1000px solid;}

/*------------------------------------------------*/
/*------[Big Invisible Triangle 2 - Quiroz.co]------*/
/*------------------------------------------------*/
 
#et-main-area { overflow: hidden;} /* Hides all the items that float over the right margin */
 
.little-triangle:after,.little-triangle:before {
    content:'';
    position:absolute;
    bottom:0;
    width:50%;
    z-index:100;
    border-bottom:50px solid #f9f9f4;
    -moz-transform:rotate(0.000001deg);
    -webkit-transform:rotate(0.000001deg);
    -o-transform:rotate(0.000001deg);
    -ms-transform:rotate(0.000001deg);
    transform:rotate(0.000001deg);}
 
.little-triangle:before{
    right:50%;
    border-right:1000px solid transparent;
    border-left:1000px solid;}
 
.little-triangle:after{
    left:50%;
    border-left:1000px solid transparent;
    border-right:1000px solid;}

/*------------------------------------------------*/
/*------[Big Invisible Triangle b - Quiroz.co]------*/
/*------------------------------------------------*/
 
#et-main-area { overflow: hidden;} /* Hides all the items that float over the right margin */
 
.little-triangle-b:after,.little-triangle-b:before {
    content:'';
    position:absolute;
    bottom:0;
    width:50%;
    z-index:100;
    border-bottom:50px solid #161616;
    -moz-transform:rotate(0.000001deg);
    -webkit-transform:rotate(0.000001deg);
    -o-transform:rotate(0.000001deg);
    -ms-transform:rotate(0.000001deg);
    transform:rotate(0.000001deg);}
 
.little-triangle-b:before{
    right:50%;
    border-right:1000px solid transparent;
    border-left:1000px solid;}
 
.little-triangle-b:after{
    left:50%;
    border-left:1000px solid transparent;
    border-right:1000px solid;}

/*------------------------------------------------*/
/*------[Shadow Diagonal Lines - Quiroz.co]-------*/
/*------------------------------------------------*/
 
    #et-main-area { overflow: hidden;} /* Hides all the items that float over the right margin */
 
    .diagonal-shadow::before,
    .diagonal-shadow::after {
        position: absolute;
        content: '';
        pointer-events: none;}
 
    .diagonal-shadow {
        z-index: 1;
        padding-top: 0.5em;
        background: #0f0f0f;}
 
    .diagonal-shadow::before, 
        .diagonal-shadow::after {
        top: 0;
        left: -25%;
        z-index: -1;
        width: 150%;
        height: 75%;
        background: inherit;
        -webkit-transform: rotate(-1deg);
        transform: rotate(-1deg);
        -webkit-transform-origin: 0 0;
        transform-origin: 0 0;}
 
    .diagonal-shadow::before {
        height: 25%;
        background: #303030;
        -webkit-transform: rotate(-1.5deg);
        transform: rotate(-1.5deg);
        -webkit-transform-origin: 3% 0;
        transform-origin: 3% 0;}
/* =========================
   SERVICES / BLURBS : bulle au-dessus de l'image (desktop) + overlay mobile plein écran (anti-troncature & toujours au-dessus)
   - Desktop : bulle au survol avec petite queue (module .blurb-img-centerhover)
   - Mobile/Tablet (<=767px) : la bulle "dans le blurb" est masquée et remplacée par un overlay global #servicesBubbleOverlay (injecté par JS)
   - 2 vignettes par ligne sur mobile si la ROW a la classe .services-2col-mobile
   - IMPORTANT : ajoute la classe .services-bubbles à la SECTION (ou ROW) qui contient les 6 blurbs
   ========================= */


/* ---------- A) Autoriser le débordement / stacking ---------- */
.row-stack,
.row-stack .et_pb_column{
  overflow: visible !important;
}

.section-overlay-top{
  position: relative;
  z-index: 1000;
  overflow: visible !important;
}
.section-under{
  position: relative;
  z-index: 1;
}

.blurb-stack{
  position: relative;
  z-index: 1;
}
.section-overlay-top .blurb-stack:hover,
.blurb-stack:hover{
  z-index: 99999;
}


/* ---------- B) Desktop : bulle au-dessus + queue (sur les modules qui ont .blurb-img-centerhover) ---------- */
.blurb-img-centerhover{
  overflow: visible !important;
  position: relative;
}

.blurb-img-centerhover .et_pb_blurb_content{
  position: relative;
}

.blurb-img-centerhover .et_pb_main_blurb_image,
.blurb-img-centerhover .et_pb_module_header{
  position: static !important;
  transform: none !important;
  opacity: 1 !important;
}

.blurb-img-centerhover .et_pb_main_blurb_image{
  margin-bottom: 10px;
}

.blurb-img-centerhover .et_pb_module_header{
  margin: 0 0 6px 0;
  font-size: 16px;
  line-height: 1.2;
  font-weight: 600;
}

.blurb-img-centerhover .et_pb_blurb_description{
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, calc(-100% - 12px));

  width: 30vw;
  max-width: 300px;
  min-width: 250px;

  text-align: center;
  font-size: 12px;
  line-height: 1.25;

  padding: 10px 12px;
  border-radius: 8px;

  background: rgba(37,37,37,1);
  color: #2d94d9;

  z-index: 100000 !important;

  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;

  transition: opacity .2s ease, visibility 0s linear .2s;
}

.blurb-img-centerhover:hover .et_pb_blurb_description{
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition: opacity .2s ease;
}

.blurb-img-centerhover .et_pb_blurb_description:after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;

  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid rgba(37,37,37,1);
}

/* Optionnel : décaler la queue par module */
.blurb-img-centerhover.queue-left  .et_pb_blurb_description:after{ left: 35%; }
.blurb-img-centerhover.queue-right .et_pb_blurb_description:after{ left: 65%; }


/* ---------- C) Mobile/Tablet : on remplace la bulle par un overlay global (injecté par JS) ---------- */
@media (max-width: 767px){

  /* 1) On coupe le hover collant sur mobile (évite affichage "comme desktop") */
  .services-bubbles .et_pb_blurb:hover .et_pb_blurb_description{
    opacity: 0 !important;
    visibility: hidden !important;
  }

  /* 2) IMPORTANT : on cache la description "in-blurb" sur mobile.
        Le JS récupère son HTML et l'affiche dans l'overlay global. */
  .services-bubbles .et_pb_blurb .et_pb_blurb_description{
    display: none !important;
  }

  /* 3) Overlay global (créé par JS) : toujours au-dessus de tout */
  #servicesBubbleOverlay{
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
    transform: translateY(0px);
  }

  /* hidden */
  #servicesBubbleOverlay.is-hidden{
    display: none !important;
  }

  /* Bulle plein écran */
  #servicesBubbleOverlay .bubble{
    width: 100vw !important;
    box-sizing: border-box !important;

    background: rgba(37,37,37,1);
    color: #2d94d9;

    padding: 12px 14px;

    border-radius: 0;

    font-size: 12px;
    line-height: 1.25;
    text-align: center;

    max-height: 45vh;
    overflow: auto;
  }
}


/* ---------- D) Mobile : 2 vignettes par ligne (ROW class .services-2col-mobile) ---------- */
@media (max-width: 767px){

  .services-2col-mobile{
    display: flex;
    flex-wrap: wrap;
  }

  .services-2col-mobile .et_pb_column{
    width: 50% !important;
    margin: 0 !important;
  }

  .services-2col-mobile .et_pb_module,
  .services-2col-mobile .et_pb_blurb_content{
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  .services-2col-mobile .et_pb_blurb{
    padding-left: 6px;
    padding-right: 6px;
  }
}


/* =========================
   DIVI-Gallery enlever fond noir en hover
   ========================= */

.realisations-videos .dvg-gallery-item:hover .dvg-gallery-overlay{
  background: transparent !important;
}