/*
Theme Name: ZANIER SA - Template V1.1
Theme URI: https://www.zaniersa.fr
Template: Divi
Author: @ ZANIER SA
Author URI: https://www.zaniersa.fr
Description: ZANIER SA - Template V1.1
Version: 4.27.4.1745994147
Updated: 2025-04-30 08:22:27

*/

/* Start css custom mobile menu */
/* Burger intégré + flottant */
.custom-mobile-menu-toggle {
  position: fixed; /* flottant */
  top: 40px;
  right: 15px;
  width: 40px;
  height: 40px;
  background: rgba(0,0,0,0.8);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 99999;
  backdrop-filter: blur(5px);
}

/* Les 3 barres */
.custom-mobile-menu-toggle span,
.custom-mobile-menu-toggle span::before,
.custom-mobile-menu-toggle span::after {
  content: "";
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  position: relative;
  transition: all 0.3s ease;
}

.custom-mobile-menu-toggle span::before {
  position: absolute;
  top: -6px;
}
.custom-mobile-menu-toggle span::after {
  position: absolute;
  top: 6px;
}

/* Animation croix */
.custom-mobile-menu-toggle.open span {
  background: transparent;
}
.custom-mobile-menu-toggle.open span::before {
  top: 0;
  transform: rotate(45deg);
}
.custom-mobile-menu-toggle.open span::after {
  top: 0;
  transform: rotate(-45deg);
}

/* Menu plein écran */
.custom-mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(17,17,17,0.85);
  backdrop-filter: blur(10px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: translateY(-100%);
  transition: transform 0.4s ease;
  z-index: 99998;
}

.custom-mobile-menu.open {
  transform: translateY(0);
}

.custom-mobile-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: center;
}
.custom-mobile-menu li {
  margin: 20px 0;
}
.custom-mobile-menu a {
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;	
  color: #fff;
  text-decoration: none;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 1px;
  transition: color 0.2s ease;
}
.custom-mobile-menu a:hover {
  color: #e20714;
}
/* Forcer la taille du logo mobile */
@media (max-width: 980px) {
  #logo {
    max-height: 60px !important; /* Ajuste selon la taille que tu veux */
    height: auto !important;
    width: auto !important;
	margin-left: -20px !important;
  }

  /* Empêcher Divi de réduire la hauteur du header */
  #main-header {
    min-height: 60px !important; /* Ajuster si nécessaire */
  }
}
/* -------------- End css custom mobile menu -------------- */



/* top-header menu to the right */
@media only screen and (min-width: 768px) {
    #et-info { float:right !important;}
	#logo {    margin-top: 5px;}
}


/* End Gestion Logo & Logo on Scroll*/

.instagram-gallery-item__wrap {
  border-radius: 10px !important;
}

#top-menu .current-menu-item a::before,
#top-menu .current_page_item a::before {
 content: "";
 position: absolute;
 z-index: 2;
 left: 0;
 right: 0;
}
#top-menu li a:before {
 content: "";
 position: absolute;
 z-index: -2;
 left: 0;
 right: 100%;
 bottom: 50%;
 background: #170001; /*** COLOR OF THE LINE ***/
 height: 3px; /*** THICKNESS OF THE LINE ***/
 -webkit-transition-property: right;
 transition-property: right;
 -webkit-transition-duration: 0.3s;
 transition-duration: 0.3s;
 -webkit-transition-timing-function: ease-out;
 transition-timing-function: ease-out;
}
#top-menu li a:hover {
 opacity: 1 !important;
}
#top-menu li a:hover:before {
 right: 0;
}
#top-menu li li a:before {
 bottom: 10%;
}


#top-menu li {
  padding-right: 35px !important;
}



#footer-menu li:first-child a:after{
   display: none;
}


#footer-menu li a:after 
{
    content:""; 
    background: white; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    height: 20px; 
    width: 2px;
	top: -2px;
    left: 10px;
}

.et_pb_contact_form_0.et_pb_contact_form_container .input[type="radio"] + label i{
  width: 20px;
  min-width: 20px;
  height: 20px;
  border: 1px solid #dad9de;
  margin: -3px 15px -3px 0;
}


.et_pb_contact_form_0.et_pb_contact_form_container .input[type="checkbox"] + label i{
  width: 20px;
  min-width: 20px;
  height: 20px;
  border: 1px solid #dad9de;
  margin: -3px 15px -3px 0;
}

.et_pb_contact_form_0 p input[type="checkbox"]:checked + label i::before {
  color: #000 !important;
}
.et_pb_contact_form_0 p input[type="radio"]:checked + label i::before {
  background-color: #000 !important;
}

#top-menu .nous-consulter-pc a:before {
content: "";
 position: absolute;
 z-index: -2;
 left: 0;
 right: 100%;
 bottom: 50%;
 background: none !important;
 height: 0px !important;
 -webkit-transition-property: right;
 transition-property: right;
 -webkit-transition-duration: 0.3s;
 transition-duration: 0.3s;
 -webkit-transition-timing-function: ease-out;
 transition-timing-function: ease-out;
}

	.nous-consulter-pc  a {
    border: 1px solid #000 ;
	border-radius: 10px ;
    color: #000 !important;
	min-width:200px;
    position: relative;
    padding: 13px 13px 13px 13px !important;	
	}

	.nous-consulter-pc a:after {
    content: '\f059';
	font: normal normal normal 14px/1 FontAwesome;
    text-decoration: inherit;
	font-weight: 400 !important;	
    margin-left:15px;
    color:#000;
	}
	.nous-consulter-pc a:hover:after {
    color:#000 !important;
	}
	
	.nous-consulter-pc a:hover {
	background-color: #fff !important;
    color: #000 !important;
    position: relative;
	}


/* all animation's @keyframe declaration */

	.effects-under-title  {
    animation: slideInDown; /* referring directly to the animation's @keyframe declaration */
    animation-duration: 2s; /* don't forget to set a duration! */
    animation-delay: 0s;	
	}

	.effects-under-title_paris  {
    animation: lightSpeedInLeft; /* referring directly to the animation's @keyframe declaration */
    animation-duration: 2s; /* don't forget to set a duration! */
    animation-delay: 0s;	
	}

.et-pb-active-slide {
	animation-name: slideInDown;
}

/* Paris under Craft Home*/
.craft-title:after{
    position:absolute;
    content:"PARIS";
    display: inline-block;
    font-family: 'Switzer-Black',Helvetica,Arial,Lucida,sans-serif;
	font-style:italic;
	color:#000;
	top: 115px;
    left: 23vw;
    font-size: 18px;
    animation: flipInX; /* referring directly to the animation's @keyframe declaration */
    animation-duration: 2s; /* don't forget to set a duration! */
    animation-delay: 0s;
	
}

/*remove the default padding from the toggle*/
.pa-toggle-clickable-area.et_pb_toggle {
	padding: 0;
}
/*add the padding back to the title instead*/
.pa-toggle-clickable-area.et_pb_toggle .et_pb_toggle_title {
	padding: 20px;
}
/*adjust padding for the icon to restore orginal position*/
.pa-toggle-clickable-area.et_pb_toggle .et_pb_toggle_title:before {
	padding-right: 20px;
}
/*add the padding back to the open toggle content*/
.pa-toggle-clickable-area.et_pb_toggle .et_pb_toggle_content {
	padding: 0 20px 20px 20px;
}

.title_secteur_vignettes h3 {
  position: absolute;
  top: 50px;
  left: 10px;
	
}
.et_pb_module.et_pb_posts .entry-title {
    display: none !important;
}

.dc_galerie-ratio_1-1 .et_portfolio_image {
  padding-top: calc(9 / 16 * 100%);


}

.dc_galerie-ratio_1-1 .et_portfolio_image img {
 height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}

#et_pb_contact_form_home .et_pb_contact p input {
padding: 1px !important;	
}

#et_pb_contact_form_home .et_pb_contact .et_pb_button {
  position: relative !important;	
}
.et_pb_portfolio_item {
	padding: 2px !important; 
}

@media (max-width: 640px) {

	.nous-consulter-bouton a {
	background-color: #fff !important;
    border: none;
    color: #2c3338 !important;
	}

	.nous-consulter-bouton a:after {
    content: '\f2b7';
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-decoration: inherit;
    margin-left:15px;
    color:#2c3338;
	}
	.nous-consulter-bouton a:hover:after {
    color:#fff !important;
	}
	
	.nous-consulter-bouton a:hover {
	background-color: #2c3338 !important;
    color: #fff !important;
    position: relative;
	}
	
/* Paris under Craft Home*/
.craft-title:after{
  top: 55px !important;
  left: 48vw !important;
  font-size: 10px !important;
    animation: flipInX; /* referring directly to the animation's @keyframe declaration */
    animation-duration: 2s; /* don't forget to set a duration! */
    animation-delay: 0s;
}
	
}

/* Image with 'data' attribute is hidden */
img[data-lazy-src] {
/* we set the opacity to 0 */
   opacity: 0;
}
/* Image without 'data' attribute is (or becomes) visible */
img.lazyloaded {
/* prepare the future animation */
   -webkit-transition: opacity .5s linear 0.2s;
       -moz-transition: opacity .5s linear 0.2s;
                 transition: opacity .5s linear 0.2s;
/* we set the opacity to 1 to do the magic */
   opacity: 1;
}


.dt-zoom-in.et_pb_image:hover img,
.dt-zoom-in .et_pb_image_wrap:hover img,
.dt-zoom-in a:hover img {
	transform: scale(1.3);
	transition: all 2s 0s ease;
}

.dt-zoom-in,
.dt-zoom-in a {
	overflow: hidden;
}

.dt-zoom-in.et_pb_image img,
.dt-zoom-in .et_pb_image_wrap img,
.dt-zoom-in a img {
	transition: all 1s 0s ease;
}


/* 🌟 Shine effect sur les blocs avec background-image */
.shine_class {
  position: relative;
  overflow: hidden;
}

/* Shine visuel */
.shine_class::before {
  content: '';
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.3) 100%
  );
  transform: skewX(-25deg);
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* Animation au hover */
.shine_class:hover::before {
  animation: shine 0.75s ease;
  opacity: 1;
}



/* Animation de déplacement */
@keyframes shine {
  0% {
    left: -75%;
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    left: 125%;
    opacity: 0;
  }
}

.list_spacing ul > li,
.list_spacing ol > li { 
	margin-top: 10px; 
}


.word {
  color: #333333;
  font-size:20px;
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;
}


/* CSS Module */

.et_pb_slider .et_pb_slide {
    padding: 0 !important; /* supprime l’espace interne */
}


/* Style de base des bullets */
.et-pb-controllers a {
    background-color: #ccc; /* couleur par défaut */
    width: 14px;  /* taille */
    height: 14px;
    border-radius: 50%; /* rond */
    display: inline-block;
    margin: 0 6px;
    transition: all 0.3s ease;
}

/* Bullet actif */
.et-pb-controllers a.et-pb-active-control {
    background-color: #e70714; /* couleur active */
    transform: scale(1.3); /* zoom léger */
}

/* Optionnel : espacement vertical 
.et-pb-controllers {
    margin-top: 20px; 
}
*/

/* Flèches gauche et droite */
.et-pb-slider-arrows .et-pb-arrow-prev,
.et-pb-slider-arrows .et-pb-arrow-next {
    background: rgba(0,0,0,0.5); /* fond par défaut */
    color: #fff; /* couleur de la flèche par défaut */
    font-size: 24px; /* taille de la flèche */
    width: 40px;
    height: 40px;
    border-radius: 50%; /* rond */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

/* Hover : fond rouge + flèche blanche */
.et-pb-slider-arrows .et-pb-arrow-prev:hover,
.et-pb-slider-arrows .et-pb-arrow-next:hover {
    background: #e80714; /* rouge au survol */
    color: #fff !important; /* flèche en blanc */
    transform: scale(1.1);
}

/* Positionner les flèches plus vers l’extérieur */
.et-pb-slider-arrows .et-pb-arrow-prev {
    left: -50px;
}
.et-pb-slider-arrows .et-pb-arrow-next {
    right: -50px;
}

/* Css custom bar - page A propos - CA */

/* Wrapper centré */
.chart-wrapper {
  display: flex;
  justify-content: center; /* centre horizontalement */
  align-items: center;     /* centre verticalement */
  width: 100%;
  min-height: 400px;       /* hauteur dispo pour le centrage */
}

.vertical-chart {
  display: flex;
  align-items: flex-end;
  gap: 24px;
  height: 320px;
}

.bar {
  position: relative;
  width: 100px;
  height: 0; /* départ à 0 */
  border-radius: 6px 6px 0 0;
  display: flex;
  justify-content: center;
  transition: height 2200ms cubic-bezier(.2,.8,.2,1);
}

.bar .value {
  position: absolute;
  top: -25px;
  font-weight: bold;
  font-size:20px;
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;
}

.bar .year {
  position: absolute;
  bottom: 10px;
  color: white;
  font-size: 20px;
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;
	
}

/* CSS Effet homepage Gradien sous H3 */
.h3-underline-gradient {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

.h3-underline-gradient::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 4px;
  background: #e60000;
  clip-path: polygon(0 50%, 100% 0, 100% 100%, 0% 100%);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 400ms ease-out;
}

.h3-underline-gradient.active::after {
  transform: scaleX(1);
}

@media (max-width: 767px) {

.bar {
  position: relative;
  width: 60px !important;
  height: 0; /* départ à 0 */
  border-radius: 6px 6px 0 0;
  display: flex;
  justify-content: center;
  transition: height 2200ms cubic-bezier(.2,.8,.2,1);
}

.bar .value {
  position: absolute;
  top: -25px;
  font-weight: bold;
  font-size:14px;
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;
}

.bar .year {
  position: absolute;
  bottom: 10px;
  color: white;
  font-size: 17px;
  font-family: 'Faktum-Bold',Helvetica,Arial,Lucida,sans-serif;
	
}


/* Forcer 2 colonnes côte à côte sur mobile */
.custom-2cols.et_pb_row {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px;
    margin: 0 !important;
  }

  .custom-2cols.et_pb_row .et_pb_column {
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
  }

  .custom-2cols.et_pb_row img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }
	
}

/* Conteneur pour image + texte */
.image-overlay-col {
  position: relative;
  text-align: center;
  color: white; /* couleur du texte */
}

/* Image responsive */
.image-overlay-col img {
  width: 100%;
  height: auto;
  display: block;
}

/* Texte superposé */
.image-overlay-col .overlay-text {
  position: absolute;
  bottom: 15px; /* position verticale */
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.5); /* fond semi-transparent */
  padding: 10px 15px;
  border-radius: 5px;
  font-size: 18px;
}

/* Effet au survol */
.image-overlay-col:hover .overlay-text {
  background: rgba(0,0,0,0.8);
}

.overlay-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.5);
  padding: 10px 15px;
  border-radius: 5px;
}