html, body {overflow-x: hidden;}

/************* cookies ***************/
.contao-cookiebar h3 {color: #000;}
.ce_cookiebarOpener a {font-size: 0.8rem;}
.contao-cookiebar .cc-head p {font-size: 0.85rem;}
.contao-cookiebar .cc-inner {max-width: 500px !important;}
.contao-cookiebar .cc-btn {font-size: 0.7rem;    }
.contao-cookiebar .highlight .success {background-color:#66AE2A !important;}
.ce_cookiebar_opener {margin-bottom: 0; text-align: center; padding: 0px 20px 20px 20px;}
.ce_cookiebar_opener a {font-size: 0.8rem; color: #08A751;}
a.cc-hide-focus:focus-visible {outline: none;}
.contao-cookiebar .highlight .success {background-color: #CD223A !important;}
a.content-cookiebar-opener.ccb-trigger {color: #c7c7c7; font-size:0.8rem}

.contao-cookiebar .highlight .success {
    --ccb-btn-bg: #CD223A;
    --ccb-btn-bg-hvr: #CD223A;
    --ccb-btn-bdr: #CD223A;
    --ccb-btn-clr: #fff;
}


/************** MENU BURGER / MENU ***************/

/* 1. On active la transition fluide sur le background-color du menu */
.vee-header.vee-header--vertical-navigation {
    /* On conserve la transition "right" existante et on ajoute "background-color" */
    transition: background-color 0.4s ease-in-out, right 0.3s ease-in;
    background-color: #CD223A; /* Votre rouge actuel */
}

/* 2. On définit la couleur sombre lors de l'ouverture du menu */
/* Ce sélecteur utilise la classe ajoutée par mmenu sur le body */
.mm-wrapper_opened .vee-header.vee-header--vertical-navigation {
    background-color: #0E1014 !important;
}

/* Sécurité supplémentaire : au cas où le menu utilise l'attribut aria-expanded */
.vee-header.vee-header--vertical-navigation:has(.vee-burger[aria-expanded="true"]) {
    background-color: #0E1014 !important;
}


/* --- Structure de la liste du menu --- */
ul.vee-menu__navigation.level_1 {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;               /* Espace entre chaque item */
  padding: 2.5rem !important;
  list-style: none !important;
}

/* --- Style des liens --- */
ul.vee-menu__navigation.level_1 > li > a {
  font-size: 1.4rem !important;    /* Taille équilibrée pour la colonne */
  font-weight: 800 !important;   /* Poids Bold affirmé */
  color: #ffffff !important;
  text-decoration: none !important;
  text-transform: none;          /* Garde la casse naturelle */
  line-height: 1.2;
  letter-spacing: -0.01em;       /* Look premium légèrement resserré */
  transition: all 0.3s ease;     /* Transition fluide pour les interactions */
  display: inline-block;
}

.vee-header__navigation .vee-menu:not(.mm-menu) .vee-menu__navigation.sm-vertical>li  {
  margin: 0.5rem 0;
}

/* --- Effet au survol (Hover) --- */
ul.vee-menu__navigation.level_1 > li > a:hover {
  transform: translateX(8px);    /* Glissement discret vers la droite */
  color: rgba(255, 255, 255, 0.7) !important; /* Changement d'opacité */
}

/* --- État Actif (Page en cours) --- */
ul.vee-menu__navigation.level_1 > li.active > a {
  color: #ffffff !important;
  opacity: 1;
}

/* Bouton burger */
.vee-header__side-menu-trigger .vee-burger{
  display:flex;
  flex-direction:column;
  align-items:center;
  margin-top:30px;
}

.vee-header__menu-trigger--large button
 {height: 100px;}

/* Texte "Menu" via ::after, avec rotation */
.vee-header__side-menu-trigger .vee-burger::after{
  content:"Menu";
  display:inline-block;
  margin-top:50px;
  font-family: "korolev-condensed", sans-serif;
  font-size:0.77rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  line-height:1;
  color: #fff;

  transform: rotate(-90deg) translateY(-0px);
  transform-origin: center;
  white-space: nowrap;
  font-weight: 700;
}

/* Hover : texte bleu */
.vee-header__side-menu-trigger .vee-burger:hover::after{
  color:#fff;
  transition: all 0.3s;
}

.vee-link-wrapper a, .back a, .toplink a, .content-toplink a {
    padding: 0 0 0.40rem;
    border-bottom: 2px solid #1D71B8;
}

.vee-scroll-up--right {
    z-index: 99;
}


@media (max-width: 992px) {
.vee-header.vee-header--vertical-navigation {
    transition: background-color 0.4s ease-in-out, right 0.3s ease-in !important;
    background-color: #0E1014 !important;
}
}


/* related resource: bundle-9e699eda.css?v=1780051486:59:1 */
.vee-header__navigation .vee-menu--mobile .vee-menu__navigation.sm-vertical>li { /* the element was li.active */
  background-color: transparent;
  width: auto;
  display: inline-block;
}

/* related resource: bundle-9e699eda.css?v=1780051486:59:1 */
.vee-header__navigation .vee-menu--mobile .vee-menu__navigation.sm-vertical>li { /* the element was li.sibling */
  display: inline;
  width: auto;
}

/* related resource: bundle-9e699eda.css?v=1780051486:59:1 */
.vee-header__navigation .vee-menu--mobile .vee-menu__navigation.sm-vertical>li { /* the element was li.sibling */
  display: flex;
  visibility: visible;
  opacity: 1;
  position: static;
  width: auto;
  padding: 0px 10px;
  padding-left: 10px;
}

/* related resource: bundle-ab2993a4.css?v=1780056550:59:1 */
.vee-header__navigation .vee-menu:not(.mm-menu) .vee-menu__navigation.sm-vertical>li { /* the element was li.submenu.sibling */
  grid-template-columns: max-content max-content;
  justify-content: start;
  gap: 5px;
}

/* related resource: bundle-ab2993a4.css?v=1780056550:47:1 */
ul.vee-menu__navigation.level_1 > li > a { /* the element was a#sm-17800565527252605-8 */
  width: auto;
  display: inline-block;
}

/* related resource: bundle-6be66448.css?v=b1efdfc3:291:2573 */
.vee-menu .vee-menu__navigation>li>a span { /* the element was span */
  display: inline;
  width: auto;
}

/* related resource: bundle-6be66448.css?v=b1efdfc3:291:16620 */
.vee-menu__btn-toggle-submenu { /* the element was button#sm-17800565527252605-6 */
  position: static;
  width: auto;
  padding: 0px 10px;
}

/* related resource: bundle-9e699eda.css?v=1780051486:38:1 */
.vee-burger__text { /* the element was ul.sm.vee-menu__navigation.level_1.sm-vertical.sm-vertical--right */
  font-size: 0.9rem !important;
  text-transform: uppercase;
}

.vee-menu__btn-toggle-submenu::after {
    font-size: 20px;
    color: #fff;
}

.vee-menu__btn-toggle-submenu {
    padding-top: 5px;
	display: flex;
    align-items: flex-start;
}

/* related resource: bundle-9e699eda.css?v=1780051486:59:1 */
.vee-header__navigation .vee-menu:not(.mm-menu) .vee-menu__navigation.sm-vertical>li { /* the element was li.active */
  background-color: transparent;
  width: 100%;
  display: inline-block;
  flex-basis: 100%;
}


ul.vee-menu__navigation.level_1 {
    padding-left: 0 !important;
	padding-right: 0 !important;}


/* Conteneur du sous-menu (Niveau 2) */
.vee-header__mobile .level_2 {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 10px 0;
    background-color: #191c21; /* Couleur de fond sombre du site */
    border-left: 2px solid #CD223A; /* Ligne verticale de repère */
    margin: 10px 0 10px 15px;
    list-style: none;
    width: auto;
    box-shadow: none;
}

/* Éléments de la liste */
.vee-header__mobile .level_2 li {
    margin: 0;
    padding: 0;
}

/* Style des liens */
.vee-header__mobile .level_2 li a {
    display: block ;
    padding: 0px 15px ;
    text-decoration: none ;
    color: #c0c0c0 ; /* Gris clair */
    font-weight: 400 ;
    font-size: 15px ;
    transition: all 0.2s ease;
    background: transparent ;
}

/* Interaction au survol (Hover) */
.vee-header__mobile .level_2 li a:hover {
    color: #ffffff ; /* Blanc au survol */
    padding-left: 25px ; /* Effet de glissement vers la droite */
    background-color: rgba(255, 255, 255, 0.05) ; /* Léger surfaçage */
}



/***************** LOGO EN POSITION ABSOLUTE **********************/

/* 2. On positionne le logo par-dessus */
.logo-ms.content-image {
    position: absolute;
    top: 10px;   
    left: 20px;  
    z-index: 10; 
    width: auto; 
}

@media (max-width: 992px) {
  .logo-ms {
    display: none !important;
  }
}


/************* BOUTON ***************/

/* Ciblage du lien à l'intérieur du bouton */
.vee-button.vee-button--style-id-1 a {
    position: relative;
    overflow: hidden;
    z-index: 1;
    transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
}

/* Effet de balayage lumineux (shine) */
.vee-button.vee-button--style-id-1 a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        120deg, 
        transparent, 
        rgba(255, 255, 255, 0.2), 
        transparent
    );
    transform: translateX(-100%);
    transition: transform 0.6s ease;
    z-index: -1;
}

/* État au survol (hover) */
.vee-button.vee-button--style-id-1 a:hover {
    background-color: #b01b2f !important; /* Un rouge légèrement plus soutenu */
    box-shadow: 0 10px 20px rgba(205, 34, 58, 0.3); /* Ombre portée douce */
    transform: translateY(-3px); /* Effet d'élévation */
}

/* Déclenchement du balayage au survol */
.vee-button.vee-button--style-id-1 a:hover::before {
    transform: translateX(100%);
}

/* Animation de l'icône */
.vee-button.vee-button--style-id-1 a .vee-button__icon {
    transition: transform 0.3s ease;
}

.vee-button.vee-button--style-id-1 a:hover .vee-button__icon {
    transform: translateX(5px); /* Décale l'icône vers la droite */
}
.vee-button.vee-button--style-id-1 a .vee-button__icon i {
    vertical-align: text-top;
}


/* Bouton formulaire */
.submit_container button {
    position: relative;
    overflow: hidden; /* Important pour masquer le reflet qui dépasse */
    transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
}

/* Effet de reflet (calque invisible au départ) */
.submit_container button::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: translateX(-100%);
    transition: transform 0.6s ease;
}

/* Animation du reflet au survol */
.submit_container button:hover::before {
    transform: translateX(100%);
}

/* Effets d'élévation, d'ombre et de couleur au survol */
.submit_container button:hover {
    box-shadow: rgba(205, 34, 58, 0.3) 0px 10px 20px !important;
    transform: translateY(-3px) !important;
    background-color: rgb(176, 27, 47) !important;
    cursor: pointer;
}


/************ SLIDER SERVICES ***************/

/* Conteneur d'image : on cache le débordement pour le zoom */
.vee-trailer-box__image {
  overflow: hidden;
  position: relative;
}

/* Transition douce sur l'image */
.vee-trailer-box__image img {
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

/* Positionnement du bloc de texte avec un dégradé pour la lisibilité */
.vee-trailer-box__text {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 30px;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%);
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  transform: translateY(40px); /* Cache partiellement le texte */
}

/* Masquage initial du paragraphe */
.vee-trailer-box__text p {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  margin-top: 10px;
  color: #fff;
}

.vee-trailer-box__headline {
  color: #fff;
  margin: 0;
}

/* ÉTATS AU SURVOL */

/* Zoom image */
.ce_rsce_vee_trailer_box:hover .vee-trailer-box__image img {
  transform: scale(1.1);
}

/* Remontée du bloc texte */
.ce_rsce_vee_trailer_box:hover .vee-trailer-box__text {
  transform: translateY(0);
}

/* Apparition du paragraphe avec un léger retard */
.ce_rsce_vee_trailer_box:hover .vee-trailer-box__text p {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

/* Initialisation du compteur sur le conteneur Swiper */
.slider-savoir-faire .swiper-wrapper {
  counter-reset: slide-number;
}

/* Incrémentation sur chaque slide */
.slider-savoir-faire .swiper-wrapper .swiper-slide {
  counter-increment: slide-number;
}

/* Positionnement du numéro dans le bloc de texte, au-dessus du titre */
.slider-savoir-faire .swiper-wrapper .vee-trailer-box__text-content {
  display: flex;
  flex-direction: column;
}

.slider-savoir-faire .swiper-wrapper .vee-trailer-box__text-content::before {
  /* Affichage du numéro avec un zéro initial (01, 02...) */
  content: counter(slide-number, decimal-leading-zero);
  color: #CD223A;
  font-weight: bold;
  font-size: 1.2rem;
  margin-bottom: 8px; /* Espace entre le numéro et le titre */
  display: block;
}


/********* DOMAINES D'INTERVENTION **********/

/* Initialise le compteur sur la ligne parente */
.domaines .row {
  counter-reset: column-counter;
}

/* Prépare le conteneur de la colonne */
.domaines .ce_vee_grid_column_start.col-12.col-md-4 {
  position: relative;
  overflow: hidden; 
  display: flex;
  flex-direction: column;
}

/* S'assure que le bloc interne prend toute la hauteur et touche le bas */
.domaines .ce_vee_grid_column_start.col-12.col-md-4 > .ce_rsce_vee_icon_box {
  position: relative;
  flex-grow: 1;
  margin-bottom: 0 !important;
  z-index: 1; /* Place le contenu au-dessus du numéro */
}

/* Génère et positionne le numéro automatique */
.domaines .ce_vee_grid_column_start.col-12.col-md-4::after {
  counter-increment: column-counter;
  content: counter(column-counter, decimal-leading-zero);
  position: absolute;
  bottom: 5px;
  right: 16px; /* Ajusté selon le gutter Bootstrap standard */
  font-size: 100px; 
  font-weight: 900;
  color: rgba(255, 255, 255, 0.03);
  pointer-events: none; /* Évite toute interaction avec le numéro */
  z-index: 0;
  line-height: 0.72; /* Aligne la base des chiffres sur le bord bas */
  margin: 0;
  padding: 0;
}

/* Animation fluide pour les blocs */
.domaines .ce_vee_grid_column_start,
.domaines .ce_rsce_vee_icon_box,
.domaines .ce_vee_grid_column_start::after {
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* 1. Soulèvement du bloc au survol */
.domaines .ce_vee_grid_column_start:hover {
  transform: translateY(-12px);
  z-index: 10;
}

/* 2. Changement du style de la boîte (fond et ombre) */
.domaines .ce_vee_grid_column_start:hover .ce_rsce_vee_icon_box {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

/* 3. Animation du numéro en arrière-plan */
.domaines .ce_vee_grid_column_start:hover::after {
  color: rgba(255, 255, 255, 0.1);
  transform: scale(1.1) translateX(-5px);
}


.domaines-article {
    counter-reset: column-counter !important;
}

.domaines-article .row {
    counter-reset: none !important;
}


/*********** FIL ARIANE *************/
/* Conteneur principal du fil d'ariane */
nav.mod_breadcrumb {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #0E1014;
    padding: 0.7rem 1.5rem;
    margin: -25px auto 1rem auto; /* Superposition de -25px sur le bandeau */
    width: fit-content;
    position: relative;
    z-index: 10;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
	margin-bottom: -19px;
}

/* Liste interne */
nav.mod_breadcrumb ul {
    display: flex;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
    align-items: center;
}

/* Style des liens (états parents) */
nav.mod_breadcrumb ul li a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

nav.mod_breadcrumb ul li a:hover {
    color: #ffffff;
}

/* État de la page actuelle (dernier élément) */
nav.mod_breadcrumb ul li:last-child {
    color: #ffffff;
    font-weight: 700;
}

/* Séparateur (si géré par du texte ou pseudo-élément) */
nav.mod_breadcrumb ul li:not(:last-child)::after {
    color: rgba(255, 255, 255, 0.3);
    margin-left: 0.5rem;
}












link[href^="assets/css/veello-theme/bundle-27f934ba.css"]{z-index:0}