/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */


/** ---------------- Base ---------------- **/
section {
	position:relative !important;
}
@media(max-width: 1024px){
	footer,
	.page-content {
		overflow-x: hidden !important;
	}
}



/** ---------------- Animation menu ---------------- **/
.elementor-nav-menu .elementor-item {
  position: relative;
  text-decoration: none;
  overflow: hidden; 
  transition: color 0.3s ease;
}

.elementor-nav-menu .elementor-item::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 10%; 
  height: 2px;
  background-color: #EF5101; 
  transform: translateX(-50%);
  transition: width 0.6s ease, background-color 0.6s ease;
}

.elementor-nav-menu .elementor-item:hover::after {
  width: 100%;
}

.elementor-nav-menu .elementor-item.elementor-item-active::after,
.elementor-nav-menu .menu-item.current-menu-item > .elementor-item::after {
  width: 100%;
  background-color: #EF5101; 
}



/** ---------------- Button Arrow Hover ---------------- **/
.button-more svg,
.button-arrow svg{
  transition: transform 0.6s ease, fill 0.6s ease;
  transform-origin: center center;
}

.button-more svg,
.button-arrow svg {
  transform: rotate(0deg);
}

.button-more svg {
  fill: #EF5101; 
  width: 13px;
  height: 13px;
  margin-left: 5px;
}

.button-arrow svg {
  fill: #FFFFFF; 
  width: 26px;
  height: 26px;
}

/* Mobiles */
@media (max-width: 767px) {
	.button-arrow svg {
	  width: 20px;
	  height: 20px;
	}
}

.button-more:hover svg,
.button-arrow:hover svg,
.card-service:hover .button-arrow svg{
  transform: rotate(45deg); 
}
.card-service:hover .button-arrow{
  background-color: #ffffff !important; 
}

.button-arrow svg path {
  fill: #FFFFFF; 
}

.button-more:hover svg path {
  fill: #1C2120;
}

.button-arrow:hover svg path,
.card-service:hover .button-arrow svg path {
  fill: #EF5101;
}



/** ---------------- Box Responsive (services) ---------------- **/
.responsive-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex: 1 0 0;
  aspect-ratio: 512 / 315.65;
}

/* Tablet */
@media (max-width: 1366px) and (min-width: 767px) {
  .responsive-box {
    width: calc(50% - 40px / 2) !important;
  }
}

/* Mobiles */
@media (max-width: 767px) {
  .responsive-box {
    aspect-ratio: 1 / 1; 
    height: 300px;
	max-width: 100%;
  }
}



/** ---------------- Card Équipe ---------------- **/
.card-equipe {
  position: relative;
  overflow: hidden;
  transition: transform 0.6s ease;
}

.card-equipe:hover {
  transform: translateY(-4px);
}

.card-content {
  position: relative;
  transition: transform 0.6s ease;
}

.card-equipe .content-description {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.8s ease;
}

.card-equipe:hover .content-description {
  max-height: 70vh;
  opacity: 1;
}



/** ---------------- Radio taxonomie projets ---------------- **/
/* état de base pour éviter les sauts de layout */
.radio-tax .jet-radio-list__button {
  border-bottom: 2px solid transparent !important;
  transition: border-color 0.6s ease !important;
}

.radio-tax .jet-radio-list__button {
  position: relative;
  padding-bottom: 6px;
  overflow: hidden; /* pour contenir le ::after */
}

/* Ligne invisible au repos */
.radio-tax .jet-radio-list__button::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: #2F3736 !important;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s ease;
}

/* Animation au hover */
.radio-tax .jet-radio-list__item:hover .jet-radio-list__button::after {
  transform: scaleX(1);
}

/* Couleur active (radio sélectionné) */
.radio-tax .jet-radio-list__item .jet-radio-list__input:checked + .jet-radio-list__button::after {
  background: #EF5101 !important;
  transform: scaleX(1);
}



/** ---------------- Animation Hero page d'accueil ---------------- **/
.hero-anim .elementor-ken-burns--active {
  transform: scale(1.25) !important; /* zoom plus prononcé */
  transition: transform 8s ease-in-out !important;
  filter: brightness(1.1) contrast(1.05) saturate(1.1); /* boost visuel subtil */
}

.hero-anim .elementor-background-slideshow__slide {
  transition: opacity 2s ease-in-out, filter 2s ease-in-out !important;
}

.hero-anim .elementor-background-slideshow__slide.swiper-slide-active {
  opacity: 1 !important;
  filter: blur(0px);
}
.hero-anim .elementor-background-slideshow__slide:not(.swiper-slide-active) {
  opacity: 0;
  filter: blur(8px);
}



/** ---------------- Formulaire contact ---------------- **/
::placeholder,
#form-field-expertise {
  color: #99999 !important;
  opacity: 1 !important;
}

.form-contact .elementor-field-textual,
.form-contact .elementor-field-textual {
	padding: 20px 12px !important;
}

@media(max-width: 767px){
	.form-contact .elementor-field-textual,
	.form-contact .elementor-field-textual {
		padding: 12px 8px !important;
	}
}

.form-contact .select-caret-down-wrapper svg {
  display: none !important;
}

.form-contact .select-caret-down-wrapper::before{
  content: "";
  display: inline-block;
  margin-top: 8px;
  width: 20px;
  height: 20px;
  background-color: #EF5101;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23EF5101' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center;
  -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23EF5101' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
}



/** ---------------- select filter ---------------- **/
.select-filter .jet-sorting-select,
.select-filter .jet-select__control {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
}
.select-filter .jet-sorting,
.select-filter .jet-select {
  position: relative;
}
.select-filter .jet-sorting::after,
.select-filter .jet-select::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-color: #EF5101;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23EF5101' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat center;
  -webkit-mask: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23EF5101' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\") no-repeat center;
  mask-size: contain;
  -webkit-mask-size: contain;
  pointer-events: none;
  z-index: 1;
}