:root {
    --color-main: #4f526c;
    --color-text: #2a2d2e;
    --color-blue: #284da3;
    --color-blue-2: #111538;
    --color-cyan: #58c2c1;
    --color-white: #ffffff;
    --color-white-hover: #b6c6ea;
    --nav-height: 140px;
    --nav-mob-height: 60px;
    --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28231, 156, 63, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

html {
    scroll-behavior: smooth;
    transition: all .5s ease;
    width: 100%;
    height: 100%;
}

body {
    width: 100%;
    height: 100%;
    font-family: "Raleway", sans-serif;
    font-size: 1rem;
    color: #2a2d2e;
    overflow-x: hidden;
}

h1 {
    margin-bottom: 100px !important;
    color:white;
    font-size:35px;
    font-family: "Raleway";
    font-weight: 900;
    text-transform: uppercase;
    text-align: center;
    margin:2% 0;
}

h2 {
    font-size:35px;
    font-family: "Raleway";
    font-weight: 900;
    text-transform: uppercase;
    text-align: center;
    margin:2% 0;
}

h3 {
    font-family: "Raleway";
    font-weight: bold;
    font-size:24px;
    color:var(--color-blue);text-transform: uppercase;
}

p {
    font-family:"Arial";
    font-size:15px;
}

a:active, a:visited, a:hover {text-decoration: inherit;}

.overflow-y-hidden {
    overflow-y: hidden;
}

.overflow-x-hidden {
    overflow-x: hidden;
}

.cta {
    background-color: var(--color-cyan);
    border-radius: 25px;
    padding: 15px 35px;
    border: inherit;
    font-weight: 500;
    font-size: 15px;
    color: var(--color-blue-2);
    list-style: none;
    text-decoration: none;
    font-weight: 800;
    transition: 300ms ease;
    transform: scale(1.0);
}

.cta:hover {
/*     transition: 300ms ease;
    transform: scale(1.1); */
    color: var(--color-white);
}

.cta-2 {
    background-color: var(--color-white);
    color: var(--color-blue);
    padding: 12px 50px;
    font-size: 14px;
    font-weight: 800;
    border: solid 1px var(--color-blue);
    text-decoration: none;
    border-radius: 25px;
    transition: 300ms ease;
    transform: scale(1.0);
}

.cta-2:hover {
/*     transition: 300ms ease;
    transform: scale(1.1);
    color: var(--color-blue); */
/*     transition: 300ms ease;
    transform: scale(1.1); */
    color: white;
    background-color: var(--color-blue-2);
}

.cta-2-blanc {
    display: inline-block;
    background-color: transparent;
    color: var(--color-white);
    padding: 15px 50px;
    font-size: 14px;
    font-weight: 700;
    border: solid 1px var(--color-white);
    border-radius: 25px;
    text-decoration: none;
    transition: 300ms ease;
    transform: scale(1.0);
}

.cta-2-blanc:hover {
/*     transition: 300ms ease;
    transform: scale(1.1); 
    color: var(--color-cyan);
    border-color: var(--color-cyan); */
}

.cta-2-blanc:hover {
    transition: 300ms ease;
    /* transform: scale(1.1); */
    color: white;
    background-color: var(--color-cyan);
    border-color: var(--color-cyan);
}

ul.list-reset {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul li {
    font-size:15px;
}

#scrollTop {
    display: none;
    position: fixed;
    bottom: 5%;
    right: 5%;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 30px;
    z-index: 999;
    width: 45px;
    height: 45px;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
#scrollTop.show{display: flex;}
#scrollTop:hover {background-color: var(--color-blue);}

.html-content img {max-width: 100%; height: auto;}
.html-content iframe {max-width: 100%;}


.text-cyan {
    color:var(--color-cyan);
}

.text-blue {
    color:var(--color-blue);
}

/* NAV */

.dropdown-menu-produits {
    left:53% !important;
    padding-top: 25px !important;
}

.dropdown-menu-produits {
    left:53% !important;
    padding-top: 25px !important;
}

.nav-item.dropdown:hover .dropdown-menu {
    display: flex; 
    justify-content: space-evenly;
    gap: 50px; 
    width: 1256px; 
    transform: translateX(-47%); 
}


.dropdown-menu-category-span {
    width: fit-content;
    background-color: var(--color-cyan);
    border-radius: 15px;
    color: black;
    padding: 6px 20px;
    font-weight: 700;
    text-transform: uppercase;
}

.dropdown-menu-category-span:hover {
    color:white;
}

#nav #menu-btn {
    display: none;
    color: #2a2d2e;
    font-weight: 300;
    text-transform: uppercase;
    border: 0;
    font-size: 1.1rem;
    background: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 25' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(143, 57, 62, 1)' stroke-width='4' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E") no-repeat top right;
    padding: 0;
    outline: none;
    width: 40px;
    height: 30px;
    overflow: hidden;
}

#navbarNav{
    /* flex-direction: row; */
    /* justify-content: center; */
    align-items: center;
    /* height: 100%; */
    max-width: 1256px;
    margin: auto;
    border-bottom: solid 2px #9194aa;
    /* padding: 20px 0px; */
    /* background-color: white; */
}

.nav-mobile-lang {
    display:none;
}

.menu .row {
    height:auto;
}

.nav-principale-ul {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    color: var(--color-white);
    height: 100px;
    gap:50px; 
    /* gap:88px; */
    /* padding-left:100px; */
    padding-left:80px;
}



.nav-principale-ul li a {
    font-weight:700;
    font-size:14px;
    transition: transform 0.2s, color 0.2s;
}

.nav-item {
    display: flex;
    align-items: center; /* centre verticalement */
    height: 100%;
}

.nav-principale-ul .nav-link {
    height:100%;
    display: flex;
    align-items: center;
}

.nav-item.dropdown:hover > .nav-link {
    transform: scale(1.10); 
   /*  color: white; */
    transition: transform 0.2s, color 0.2s;
   /*  text-shadow: 0 0 1px #000, 0 0 1px #000;  */
}

.nav-principale-ul .nav-link:hover {
    transform: scale(1.10);
}

#nav .nav-link-contact:hover {
    color:white;
}

#nav.navbar-custom .dropdown-menu {
    left: 47%;
    top: 100px;
    border-radius: 0;
    border: 0;
    /* box-shadow: 0 0 1px gray; */
    padding-top: 2%;
    padding-bottom: 55px;
    background-color: var(--color-blue);
    /* padding-left: 70px; */
    /* padding-right: 60px; */
    padding: 10px 20px;
}

#gvs-dropdown .dropdown-menu-1 {
    transform: translateX(-19%);
    width: 320px;
}

.dropdown-menu-1 .row {
    width: 320px;
    justify-content: space-evenly;
}

#marches-dropdown .dropdown-menu-2 {
    transform: translateX(-30%);
    width: 230px;
}

.dropdown-menu-2 .row {
    width: 230px;
    justify-content: space-evenly;
}

#nav .nav-category a {
    text-decoration: none;
    color:var(--color-white);
    font-weight: 500;
}

#nav .nav-category a:hover {
    font-weight:bold;
}


#nav.navbar-custom.scrolled {
    transition: 300ms ease;
    background-color: var(--color-blue-2);
}

.dropdown-toggle::after {
    content: "";
    display: inline-block;
    width: 10px; /* ajuste selon ton icône */
    height: 10px;
    margin-left: 6px; /* espace entre le texte et l’image */
    background: url("/media/img/accueil/chevron-nav.png") no-repeat center;
    background-size: contain;
    vertical-align: middle;

    /* Supprimer complètement le chevron d'origine */
    border: none;
}

.swiper {
    height: calc(100vh);
}

.swiper-button-next:after {
    margin-right: 50px;

}

.swiper-button-prev:after {
    margin-left: 50px;
}

.slider-content {
    position: relative;
    overflow: hidden;
}

.slider-content::before,
.slider-content::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 150px;
    z-index: 5;
    pointer-events: none; 
}

.slider-content::before {
    top: 0;
    background: linear-gradient(to bottom, #21283a, transparent);
}

.slider-content::after {
    bottom: 0;
    background: linear-gradient(to top, #21283a, transparent);
}

.slider-content-side {
    display: flex;
    flex-direction: column;
    gap:40px;
    text-align: left;
}

.swiper-pagination-bullet {
    background-color: #7c7f92 !important;
    margin: 0 10px !important;
}

.swiper-pagination-bullet-active {
    background-color:white !important;
}

.titre-slider-accueil {
    color:var(--color-white);
    font-family: "Raleway";
    font-weight: bold;
    font-size: 40px;
    line-height:50px;
    
}

.container-span-title {
    max-width: 550px;
}

.description-slider-accueil {
    max-width: 390px;
    font-family:"Arial";
    font-size:13px;
}

.bouton-slider-accueil a {
    font-family: "Raleway";
    font-weight: 800;
    text-decoration: none;
}   



/* FIN NAV */

/***** ACCUEIL ******/


#accueil-marches {
    background: url("/media/img/accueil/marches-bg.png") no-repeat center/cover;
    padding-top:100px;
    /* padding-bottom:200px; */
    padding-bottom:100px;
    background-color: var(--color-blue-2);
}

#accueil-marches h2 {
    color:var(--color-white);
    margin-bottom:100px;
}

.accueil-marches-container {
    max-width: 1100px;
    flex-wrap: wrap;
    margin: auto;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding:0px 12px;
}

.vignette-marches {
    position: relative;
    border-bottom: solid var(--color-cyan) 10px;
    width: 341px;
    height: 192px;
    margin-bottom: 6%;
    overflow: hidden;
}

.vignette-marches {
    text-decoration: none;
}

/* Le pseudo-élément reprend le background du parent inline */
.vignette-marches::before {
    content: "";
    position: absolute;
    inset: 0;
    background: inherit; /* copie le background inline */
    background-size: cover;
    background-position: center;
    filter: brightness(0.6); /* effet d’assombrissement */
    z-index: 0;
}

.vignette-marches span {
    position: relative;
    z-index: 1;
    text-transform: uppercase;
    top: 20px;
    left: 30px;
    font-size: 19px;
    font-family: "Raleway";
    font-weight: 600;
    color: white;
}

.vignette-marches:hover::before {
    transition: 300ms ease;
    filter: brightness(1);
    cursor: pointer;
}

#accueil-produits {
    margin-top:100px;
    padding-bottom:150px;
}

#accueil-produits h2 {
    color:var(--color-blue);
}

#accueil-realisations {
    padding-top:60px;
    padding-bottom: 70px;
    background-color: var(--color-blue-2);
}

#accueil-realisations h2 {
    color:var(--color-white);
}

/* NOUVEAU CSS REALISATIONS */

#tpl-gamme {
    color:black;
}

#tpl-gamme h1 {
    color: var(--color-main);
/*     font-weight: bold;
    text-transform: uppercase; */
}

#tpl-gamme h1 span  {
    color: var(--color-black);
    font-weight: bold;
    text-transform: uppercase;
}

#tpl-gamme h2 {
    color: var(--color-main);
    margin-bottom: 50px;
}

.tpl-gamme-type {
    color:var(--color-main);
    font-weight: 400;
    text-transform: capitalize;
}

.tpl-gamme-bloc1 {
    text-align: center;
}

.tpl-gamme-caracteristiques {
    margin-top:50px;
}

.tpl-gamme-thumbnails img {
    cursor: pointer;
    border: 1px solid transparent;
    box-sizing: border-box; 
    transition: border 0.2s ease-in-out;
}

.tpl-gamme-thumbnails img.thumbnail-active {
    border: 4px solid var(--color-main);
}

.tpl-gamme-caracteristiques .container {
    max-width:1500px !important;
}

.tpl-gamme-caracteristiques-colonne2 {
    text-align: left;
    padding-left:40px;
    color:black;
}

.tpl-gamme-caracteristiques-colonne2 ul {
    padding-left:1rem
}

.tpl-gamme-visuels {
    display: flex;
    align-items: normal;
    justify-content: flex-end;
    gap: 20px;
    /* flex-wrap: wrap; */
}

.tpl-gamme-thumbnails {
    display: flex;
    flex-direction: column;
    /* justify-content: space-between; */
    /* justify-content: flex-start; */
    gap: 12px;
}

.tpl-gamme-thumbnails img {
    /* width: 135px; */
    /* max-height: 127px; */
    height:127px;
    object-fit: cover;
    border: 1px solid #ccc;
}

.tpl-gamme-main-image img {
    width: 100%;
    height: 500px !important;
    max-width:700px;
    object-fit: cover;
    border: 1px solid #ccc;
}

.tpl-gamme-caracteristiques-colonne2 ul li {
    line-height: normal;
    padding-bottom:1em;
}

.tpl-gamme-caracteristiques-row {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* CSS VENANT DE GAMMES */

/* Container général */
.tpl-gamme-visuels {
    display: flex;
    gap: 16px;
    /* align-items: flex-start; */
}

/* ---------- Boîtes images ---------- */
/* Boîte principale (contrôle la taille finale de la grande image) */
.img-box {
    overflow: hidden;
    display: block;
    position: relative;
    /* width:700px; */
}

/* Taille de la grande image (remplace ta règle précédente) */
.main-img-box {
    width: 500px;           /* prend la largeur du parent (.col-md-6) */
    height: 500px;          /* hauteur fixée */
    /* border: 1px solid #ccc; */
}

/* .main-img-box-rea {
    width: 700px;
    height: 500px;
} */


.img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;      /* découpe sans déformer */
    object-position: center;
    display: block;
}

.tpl-gamme-thumbnails {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* limite la largeur de la colonne de vignettes */
    width: 110px;           /* ajustable selon ton design */
    flex-shrink: 0;
}

.tpl-gamme-thumbnails.thumbnails-start {
    justify-content: flex-start;
}

.tpl-gamme-thumbnails.thumbnails-between {
    justify-content: space-between;
}

.thumb-img-box {
    width: 110px;           /* largeur fixe de la vignette */
    height: 110px;          /* hauteur fixe de la vignette */
    /* border: 1px solid #ccc; */
    box-sizing: border-box;
    flex-shrink: 0;
}

/* petit style pour l'image active */
.thumb-img-box img.thumbnail-active {
    outline: 2px solid #007bff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.08);
}


/* CSS VENANT DEs REALISATIONS */

.tpl-realisation-thumbnails img.thumbnail-active {
    border: 4px solid var(--color-blue);
}

.tpl-realisation-thumbnails .thumb-img-box {
    width: 110px;           /* largeur fixe de la vignette */
    height: 90px;          /* hauteur fixe de la vignette */
    /* border: 1px solid #ccc; */
    box-sizing: border-box;
    flex-shrink: 0;
}

/* petit style pour l'image active */
.tpl-realisation-thumbnails .thumb-img-box img.thumbnail-active {
    outline: 2px solid #007bff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.08);
}

.tpl-realisation-thumbnails {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* limite la largeur de la colonne de vignettes */
    width: 110px;           /* ajustable selon ton design */
    flex-shrink: 0;
}


.tpl-realisation-thumbnails.thumbnails-start {
    justify-content: flex-start;
}

.tpl-realisation-thumbnails.thumbnails-between {
    justify-content: space-between;
}

/* FIN CSS VENANT DEs REALISATIONS */

/* FIN CSS NOUVEAU REALISATIONS */

/* TARTE AU CITRON */

#tarteaucitronRoot #tarteaucitronAlertBig{background-color: #8f393e;}
#tarteaucitronAlertBig #tarteaucitronCloseAlert:hover, #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover, #tarteaucitronPrivacyUrlDialog:hover, .tarteaucitronDeny:hover{background-color: #423e3c !important;}
#tarteaucitronPrivacyUrl:hover{color: #c4c2c1 !important;}

/* FIN TARTE AU CITRON */

/* ARIANE */

.tpl-page-content-ariane {
    padding-bottom:40px;
}

#ariane {
    font-family: "Arial";
    font-size:12px;
    color: var(--color-blue-2);
    padding: 15px 0;
    list-style: none;
    margin: 0;
}

#ariane .fa-home {
    position: absolute;
    left: 10px;
    top: 5px;
    z-index: 10;
}

#ariane>li {
    display: inline-block;
    color: inherit;
    font-size: 15px;
    margin-right: 5px;
    position: relative;
}

#ariane > li.item + li.item {
  padding-left: 12px;
}

#ariane>li.item+li.item::before {
    content: '>';
    font-weight: 400;
    color:var(--color-blue-2);
    position: absolute;
    left: 0;
    top: 0;
}

#ariane>li a {
    color: inherit;
    font-size: 15px;
    text-decoration: none;
}

#ariane>li:last-child {
    font-weight: 600;
    color:var(--color-blue);
}

#ariane>li a:hover{text-decoration: underline;}


/** CSS SWIPER 3 **/


#accueil-realisations{
    background:var(--color-blue-2); color:#fff; padding:70px 0 40px; position:relative;
  }

#accueil-realisations h2{
    text-align:center; text-transform:uppercase; margin:0 0 0px; letter-spacing:.5px;
}
  
  .realisations-wrap{
    position:relative;
    width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); 
    height:520px; 
    margin-top:80px;
    overflow:hidden;
  }
  
  /* panneau gauche FIXE (ne bouge pas) */
  .realisations-left {
      position: relative;
      inset: 0 auto 0 0;
      width: 100%;
      height: 100%;
      z-index: 3;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 40px 10px;
      clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  }
  
  .realisations-wrap-fond {
      position: absolute;
      inset: 0 auto 0 0;
      width: 44%;
      height: 100%;
      z-index: 3;
      background: #274b9f;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 40px 48px;
      clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  }
  
  .realisations-left .inner{
    max-width:360px;
  }
  .realisations-left h3{
    font:700 22px "Raleway", sans-serif; text-transform:uppercase; margin:0 0 12px;color:var(--color-white);
  }
  .realisations-left p{
    font:400 14px/1.5 "Arial", sans-serif; margin:0 0 16px; opacity:.95;
  }
  .realisations-left a.more{
    display:inline-block; font:600 13px/1 "Raleway", sans-serif; color:#fff; text-decoration:none;
  }
  .realisations-left a.more::after{ content:" ›";font-weight:900; }
  
  /* Swiper prend TOUTE la largeur; on lui laisse la place du panneau à gauche */
  .swiper3{
    position:absolute; inset:0 0 0 0; width:100%; height:100%;
  }
  .swiper3 .swiper-wrapper{ transition:transform .6s ease; }
  .swiper3 .swiper-slide{ position:relative; height:100%;padding:0px; }
  .swiper3 .swiper-slide img{ width:100%; height:100%; object-fit:cover; }
  
  /* pagination centrée */
  .swiper3 .swiper-pagination{
    position:absolute; left:0; right:0; bottom:16px; text-align:center; z-index:4;
  }
  .swiper3 .swiper-pagination-bullet{ width:8px; height:8px; background:#fff; opacity:.6; margin:0 6px !important; }
  .swiper3 .swiper-pagination-bullet-active{ opacity:1; }
  
  /* CTA sous le slider */
  .realisations-cta-wrap{ text-align:center; margin-top: 130px !important;margin-bottom:80px; }
  
  .realisations-cta:hover{ border-color:#fff; }
  
  .swiper3-pagination {
    text-align: center;
    margin-top: 20px;
  }
  
/***** TPL PAGE *****/

.header-navigation-page .nav-link {
    color:var(--color-blue-2) ;
}

#tpl-category ul li {
    font-family: "Arial";
}

.tpl-category-span-nom {
    color:var(--color-blue);
    font-weight: bold;
}

#tpl-page h2, #realisations h2, #actualites h2, #tpl-produit-titre h2, .main-actualite-titre h2 {
    font-size:18px;
    font-weight:bold;
    margin-bottom:15px;
    margin-top:0px;
}

#tpl-page h1 {
    font-size:35px;
    color: var(--color-blue);
    font-weight: 900;
    margin-bottom: 60px !important;
}

#tpl-page-header {
    margin-top:115px;
}

#tpl-page-background {
    height: 500px;
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    background-size: cover;        /* remplit tout le bloc */
    background-position: center;   /* centre l’image */
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}


#tpl-page-background img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* remplit le cadre sans déformation */
    display: block;
}


/* #tpl-page-background .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    z-index: 1;
} */

.tpl-page-presentation {
    position: relative;
}

.tpl-page-prensentation-content a {
    color:white;
}

#tpl-page .tpl-page-prensentation-content p {
    font-size: 25px;
}

#tpl-page .tpl-page-prensentation-content {
    font-family: "Raleway";
    font-weight: 500;
    background-color: var(--color-blue);
    color: white;
    padding: 80px 120px;
    max-width: 1000px;
    margin: auto;
}

.tpl-page-wrapper {
    position: relative;
}

.tpl-page-wrapper:has(.tpl-page-presentation-div) {
    /* réserve la hauteur du bloc interne automatiquement */
    padding-bottom:  var(--presentation-height, 0px);
}

.tpl-page-presentation-div {
    position: absolute;
    top: -60px;
    width: 100%;
}

.tpl-page-content-1 {
    font-family: "Arial";
    min-height: 750px;
    background: url("/media/img/fond-tpl-page-gauche-etire-2.png") no-repeat;
    margin-bottom:7%;
}

.tpl-page-content-2 {
    padding-top:170px;
    min-height: 750px;
    background: url("/media/img/fond-tpl-page-droite-etire-2.png") no-repeat right center;
}


.tpl-page-content-1 .container {
    padding-top:40px;
}

#tpl-page .cta-2 {
    display: inline-block; /* ou block si tu veux qu’il prenne toute la largeur */
    margin-top: 3%;
}

#realisations h1, #actualites h1 {
    color: var(--color-blue);
    margin-bottom: 1% !important;
    margin-top: 0px;
}



#tpl-page-realisations {
    background-color: var(--color-blue-2);
    padding-top: 150px;
    padding-bottom: 100px;
    /* margin-bottom: 130px; */
}


#tpl-page-realisations h3 {
    text-align: center;
    color:var(--color-cyan);
    font-size:18px;
    font-weight: bold;
}

#tpl-page-realisations h2 {
    margin-top:10px;
    margin-bottom: 120px;
    font-family: "Raleway";
    font-size:35px;
    font-weight:900;
    color:white;
}

.tpl-page-realisations-container {
    max-width: 1100px;
    flex-wrap: wrap;
    margin: auto;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding:0px 12px;
    margin-bottom:130px;
}

.tpl-page-realisations-vignettes {
    display: block;
    position: relative;
    border-bottom: solid var(--color-cyan) 15px;
    width: 530px;
    height: 290px;
    /* margin-bottom: 6%; */
    overflow: hidden;
}

.tpl-page-realisations-vignettes {
    text-decoration: none;
}

/* Le pseudo-élément reprend le background du parent inline */
.tpl-page-realisations-vignettes::before {
    content: "";
    position: absolute;
    inset: 0;
    background: inherit; 
    background-size: cover;
    background-position: center;
    filter: brightness(0.6); 
    z-index: 0;
}

.tpl-page-realisations-vignettes span {
    position: relative;
    z-index: 1;
    text-transform: uppercase;
    top: 20px;
    left: 30px;
    font-size: 19px;
    font-family: "Raleway";
    font-weight: 600;
    color: white;
}

.tpl-page-realisations-vignettes:hover::before {
    transition: 300ms ease;
    filter: brightness(1);
    cursor: pointer;
}

.active>.page-link, .page-link.active {
    color:var(--color-white);
    background-color: var(--color-blue);
}

/* Marge entre les rows sauf la première */
.tpl-page-content-1 .row:not(:first-child) {
    margin-top: 3%;
}
  
.tpl-page-espaceur {
    margin-bottom: 4%;
}
  
/***** TPL CATEGORY *****/

/* #tpl-category-gammes {
    margin-top:2%;
} */
#tpl-category-h2 {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
    margin-top: 0px;
    font-family: "Raleway";
    text-transform: uppercase;
    text-align: center;
}

#tpl-category-ancre {
    width: fit-content;
    color: var(--color-blue);
    font-size: 20px;
    text-align: left;
}

.tpl-category-fiche h2 {
    margin:0px;
}

#tpl-category {
    margin-bottom: 3%;
}

.tpl-category-fiche-img {
    min-height:300px;
}

.tpl-category-header {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 15px;
    gap: 30px;
}

.tpl-category-header a {
    text-decoration: none;
}

.separation-gamme-fiche {
    margin: 3rem 0 2rem 0;
    color: var(--color-blue-2);
    border: 0;
    border-top: 1px solid;
    opacity: 0.3;
}

.tpl-category-caracteristiques {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    font-family:"Arial";
}

.tpl-category-caracteristiques ul {
    padding-left:16px;
}

.tpl-category-info {
    margin-bottom: 13px;
    margin-top: 20px;
} 

#tpl-category h1 {
    color:var(--color-blue);
    text-align: center;
    margin-bottom: 6% !important;
}

#tpl-category h2 {
    width: fit-content;
    color:var(--color-blue);
    font-size:20px;
    text-align: left;
}

/* .tpl-category-span {
    font-weight: 500;
    margin-bottom: 20px !important;
    display: block;
} */

.tpl-category-gamme {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--color-blue);
    padding: 2px 10px;
    margin-bottom: 10px;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.55);
    font-size: 15px;
    text-decoration: none;
    color: var(--color-white);
}

.tpl-category-gamme a {
    text-decoration: none;
    color:var(--color-white);
}

.tpl-category-gamme:hover {
    color: white;
    background-color: var(--color-cyan);
}

.tpl-category-nom {
    font-weight:500;
}

.tpl-category-gamme .tpl-category-nom:hover {
    color: white;
}

.tpl-category-div {
    scroll-margin-top: 118px;
}

#tpl-category-ancre {
    scroll-margin-top: 118px; 
}

.tpl-category-chevron-bas {
    font-size: 1.5em;
    transition: transform 0.3s ease;
}


.tpl-category-chevron-haut {
    color: var(--color-blue);
    font-size: 2.2em;
    transition: transform 0.3s ease;
}

.tpl-category-chevron-haut:hover {
    color:var(--color-cyan);
    cursor: pointer;
}

.texte-pdf {
    display: inline;
    text-decoration: none;
    color:var(--color-blue);
}

.pdf-actualite-div {
    /* margin-top: 7%; */
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 10px;
}
  
.cta-devis {
    margin-top: 6%;
    display: inline-block;
}

.tpl-category-caracteristiques, .tpl-category-description {
    margin:2% 0;
}

/* === Swiper Réalisations === */
.swiper-realisations {
    /* max-width: 1100px; */
    max-width: 1200px;
    margin: auto;
    padding: 0 12px;
    position: relative;
}

.swiper-realisations-slide {
    display: flex;
    justify-content: center;
    margin-right:0px !important;
}

/* Pagination et flèches spécifiques à ce slider */
.swiper-realisations-button-prev,
.swiper-realisations-button-next {
    width: 29px;
    height: 63px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1000;
    cursor: pointer;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* Flèche gauche */
.swiper-realisations-button-prev {
    left: 0px;
    background-image: url('/media/img/fleche-swiper-realisation-gauche.png');
}

/* Flèche droite */
.swiper-realisations-button-next {
    right: 0px;
    background-image: url('/media/img/fleche-swiper-realisation-droite.png');
}

.swiper-realisations-pagination .swiper-pagination-bullet {
    background: white;
    opacity: 0.5;
}
.swiper-realisations-pagination .swiper-pagination-bullet-active {
    opacity: 1;
}

.swiper-realisations {
    height: inherit;
}

.swiper-realisations .swiper-slide {
    display: flex;
}

/* .swiper-realisations .swiper-wrapper {
    justify-content: center;
} */

/***** SIDEBAR *****/

.sidebar a {
    cursor: pointer;
    transform: scale(1.0);
    transition: 300ms ease;
}

.sidebar {
    padding-top: 60px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* width: 100%; */
    height: 340px;
    position: fixed;
    right: 30px;
    /* left: 24px; */
    bottom: 30%;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
    align-items: normal;
}

.sidebar a:hover {
    transition: 300ms;
    transform: scale(1.1);
}


/***** ACTUALITE *****/

.actualite-page-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.fa-file-pdf:before {
    color:var(--color-blue);
}

/***** FOOTER *****/

#prefooter {
    background: url("/media/img/accueil/bg-prefooter-contact-3.png") no-repeat center/cover;
    min-height: 469px;
    padding-top: 20px;
}

.prefooter-row {
    display: flex;
}

.prefooter-row img {
    /* margin-bottom: -70px; */
    z-index: 1000;
    /* position: absolute; */
    max-height: 530px;
    z-index: 1000;
    position: relative;
}

.prefooter-row-col2 {
    display: flex;
    flex-direction: column;
    gap:40px;
    margin-top:30px;
}

.prefooter-row-col2 .cta {
    width: fit-content;
}

.prefooter-text {
    color: var(--color-white);
    font-family: "Raleway";
    font-size: 40px;
    font-weight: 700;
    max-width: 600px;
    line-height: 45px;
    margin-left:8%;
}

.prefooter-cta {
    margin-left:8%;
}

#footer {
    padding-top:150px;
    font-family: "Raleway";
    font-size:14px;
    font-weight:500;
    background: #f4f2f2;
}

#footer li a, #footer span a {
    text-decoration: none;
    color:black;
}

#footer li a:hover {
    text-decoration: none;
    color:var(--color-blue);
}

#footer ul li {
    margin-bottom:15px;
}

.footer-content-col1 {
    display: flex;
    flex-direction: column;
}

.footer-content-col1 span {
    padding-bottom:2%;
}

#footer .footer-content-col1 span:last-child {
    font-size:20px;
    padding-top:5%;
    font-weight: 800;
}

#footer .footer-content-col1 span a {
    color: var(--color-blue);
}

#footer .footer-content-col1 span a:hover {
    text-decoration: underline;
}

.footer-nav img {
    padding-bottom: 5%;
    transition: 300ms;
    transform: scale(1.0);
}

.footer-nav img:hover {
    padding-bottom: 5%;
    transition: 300ms;
    transform: scale(1.1);
}

#footer .lien-footer-parent a {
    text-transform: uppercase;
    font-weight: 800;
    color: var(--color-blue);
}

.footer-nav {
    padding-bottom:60px;
}

.footer-links {
    background: var(--color-blue);
    padding:15px 0px;
}

#footer .footer-links a {
    color:var(--color-white);
}

#footer .footer-links a:hover {
    color:var(--color-white-hover);
}

.footer-links-row {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

/* FIN ARIANE */

.text-epart{color: #ff0000;}

@media screen and (min-width: 1200px) {

    .container {
        max-width: 1280px;
    }

    .nav-link-mobile {
        color:white;
        padding:4px 12px;
        display: none;
        font-weight:bold;
    }

    .lang-mobile {
        display: none;
        background-color: var(--color-blue-2);
    }

    .logo-header-mobile {
        display: none;
    }

    
}

@media screen and (max-width: 1400px) { 

    .main-img-box-rea {
        /* width:700px; */
    }

    .tpl-gamme-visuels {
        display: flex;
        align-items: normal;
        /* flex-direction: column; */
        justify-content: center;
        gap: 20px;
        /* flex-wrap: wrap; */
    }

    .tpl-gamme-visuels {
        justify-content: flex-end;
        gap: 10px;
    }
    

    .tpl-page-content-1 {
        min-height: inherit;
        padding-bottom: 100px;
    }

    .tpl-page-content-1, .tpl-page-content-2 {
        background: none;
    }

    .tpl-page-content-2 {
        padding-top:0px;
        min-height:inherit;
        padding-bottom: 100px;
    }

    .tpl-page-content-1 .container {
        padding-top: 0px;
    }

}
@media screen and (max-width: 1200px) {

    .tpl-gamme-caracteristiques-colonne2 {
        padding-left: 12px !important;
    }

    .tpl-rea {
        padding-left: 12px;
        padding-right: 12px;
    }
    
    .main-img-box-rea {
        width:600px;
    }

    .tpl-gamme-visuels {
    justify-content: flex-start;
    }

    .tpl-gamme-caracteristiques-row {
        flex-direction: column;
    }

    #tpl-page-header {
        margin-top:70px;
    }

    .prefooter-text {
        font-size:30px;
    }

    body.no-scroll {
        overflow: hidden;
        position: fixed;
        width: 100%;
    }

    .logo-header-desktop {
        display: none;
    }

    .logo-header-mobile {
        padding: 4px 12px;
    }

    .logo-header-mobile img {
        width: 200px;
    }
   
    #nav {
        background-color: white;
        /* height:100%; */
    }

    .nav-principale-ul {
        flex-direction: column;
        height: auto;
        justify-content: flex-start;
        background-color: white;
        /* align-items: flex-end; */
        gap: 20px;
        position: relative;
    }

    .nav-principale-ul li {
        color:var(--color-blue-2);
    }

    #navbarNav {
        max-height: 100vh;
        border-bottom: inherit;
        height: 720px !important;
        overflow-y: auto;
    }

    .dropdown-toggle::after {
        display: none;
    }

    #gvs-dropdown .dropdown-menu-1 {
        transform: inherit;
        width: auto;
    }

    #marches-dropdown .dropdown-menu-2 {
        transform: inherit;
        width: 100%;
    }

    .nav-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        height: inherit;
        justify-content: flex-start;
        width: 100%;
    }

    #nav.navbar-custom .dropdown-menu {
        width:100%;
        left: 0;
        position: relative;
        top: inherit;
        text-align: center;
    }

    .nav-principale-ul .nav-link {
        justify-content: center;
    }

    #nav {
        background-color: var(--color-white);
        /* height: 100px; */
    }

    .navbar-toggler:focus {
        box-shadow: none;
    }

}

@media (max-width: 992px){
    .realisations-left{ 
        width:min(520px, 50vw);
        clip-path: polygon(0 0, 92% 0, 78% 100%, 0 100%); }

    .desktop-lang {
        display: none;
    }

    #nav {
        padding-top:0px;
    }

    .nav-mobile-lang {
        display: block;
        /* height: 50px; */
        /* position: absolute; */
        color:white;
        width: 100%;
        background-color: var(--color-blue);
        z-index: 10000;
        /* margin-bottom: 19px; */
        padding: 2% 0;
        font-size: 18px;
        font-weight: 600;
    }

    .nav-mobile-lang .lang-switch {
        flex-direction: row;
        justify-content: center;
    }

    .logo-header-mobile img {
        padding-top:8px;
    }

    .lang-switch .nav-link {
        color:white;
    }
}

@media screen and (max-width:767px) {

    .cont-header {
        padding-bottom:40px !important;
    }

    .tpl-gamme-caracteristiques {
        margin-top:20px;
    }

    .main-img-box-rea {
        width: 100%;
    }

    .tpl-gamme-caracteristiques-colonne1 {
        order: 2;
    }

    .tpl-gamme-caracteristiques-colonne2 {
        padding-left: 12px;
    }
    
    .tpl-gamme-visuels {
        flex-direction: column;
    }

    .tpl-realisation-thumbnails {
        display: flex;
        flex-direction: row;
        gap: 12px;
        flex-wrap: wrap;
        width: 100%;
        flex-shrink: 0;
    }

    .tpl-realisation-thumbnails.thumbnails-between {
        justify-content: flex-start;
    }

    #tpl-page-realisations {
        margin-top: 100px !important;
    }

    .realisations-cta-wrap {
        margin-top: 40px !important;
    }

    .swiper-realisations {
        height:100% !important;
    }

    .team-image {
        margin-left:0px !important;
    }

    .prefooter-row img {
        max-height:auto;
    }

    .nav-principale-ul li > a:first-of-type {
        font-size: 18px;
    }

    .dropdown-menu-produits .dropdown-item {
        font-size:14px !important;
    }

    .swiper-slide-video {
        height: 50vh !important;
    }

    .swiper-slide video {
        height: 50vh !important;
    }

    #accueil-produits {
        display: none;
    }

    .dropdown-menu-produits .dropdown-item {
        text-align: left !important;
    }

    .dropdown-menu-1 .row {
        width: auto;
    }

    .dropdown-menu-2 .row {
        width: auto;
    }

/*     #navbarNav {
        height:1000px !important;
    } */

    .nav-principale-ul .dropdown-menu-produits {
        left:inherit !important;
        padding-top: 25px !important;
    }

    .dropdown-menu-produits .dropdown-item {
        white-space: wrap !important;
    }

    .nav-item.dropdown:hover .dropdown-menu {
        display: inline-block;
        gap: 50px;
        width: 100%;
        transform: inherit;
    }

    .nav-lang-mobile {
        display: none !important;
    }

    .sidebar {
        right:5px;
    }

    .tpl-page-content-1 .col-md-6:last-child {
        margin-top: 50px;
    }

    .tpl-page-content-1 .col-md-6:first-child {
        margin-top: 50px;
    }

    .tpl-page-content-2 {
        padding-bottom: 50px;;
    }

    .tpl-page-content-1 .col-md-6:first-child {
            margin-bottom:40px;
    }

    .tpl-page-content-2 .col-md-6:first-child  {
        margin-bottom:40px;
}

    .tpl-page-content-1 {
        padding-bottom: 50px;
    }

    #tpl-page .titre-tpl-page {
        margin-bottom: 50px !important;
    }

    .tpl-page-content-ariane {
        padding-bottom:40px;
    }

    #tpl-page-background {
        height: 300px;
    }

    #tpl-page .tpl-page-prensentation-content p {
        font-size: 18px;
    }

    .tpl-page-wrapper:has(.tpl-page-presentation-div) {
        padding-bottom:  4%;
    }

    #tpl-page .tpl-page-prensentation-content {
        font-family: "Raleway";
        font-weight: 500;
        background-color: var(--color-blue);
        color: white;
        padding: 20px 20px;
        max-width: auto;
        margin: auto;
    }

    .tpl-page-presentation-div {
        position: relative;
        top: 0px;
        width: 100%;
    }

    .footer-nav {
        font-size:15px;
        text-align: center;
        padding-bottom: 40px;
    }

    .realisations-cta-wrap {
        text-align: center;
        margin-top: 40px;
        margin-bottom: 40px;
    }

    #accueil-realisations {
        padding: 30px 0 40px;
    }

    .realisations-wrap{ 
        height:560px;
        margin-top: 30px;
    }

    .realisations-left{
      position: relative;
      width: 100%;
      height: auto;
      clip-path: none;
      padding: 28px 24px;
      border-bottom-right-radius: 14px;
      background: #274b9f;
      margin: 0px !important;
      width: 100% !important;
      max-width: 100%;
    }
    .realisations-wrap-fond {
      display: none;
    }
    .swiper3{ padding-left:0; top:auto; }

    .prefooter-row {
        padding-bottom: 60px;
    }

    .prefooter-cta-div {
        text-align: center;
    }

    .prefooter-cta {
        margin-left:0px;
    }

    .prefooter-text {
        color: var(--color-white);
        font-family: "Raleway";
        font-size: 20px;
        max-width: 400px;
        line-height: 30px;
        margin-left: 0;
    }

    .prefooter-row img {
        margin-bottom: 20px;
        z-index: 1000;
        width:80%;
        position: relative;
    }

    #prefooter {
        min-height: inherit;
    }

    .footer-links {
        padding: 30px 0px;
    }

    .footer-links-row {
        flex-direction: column;
        gap:20px;
    }

    #footer {
        padding-top:60px;
    }

    #header {
        margin-top:72px;
    }

    #accueil-marches h2 {
        margin-bottom: 50px;
    }

    #accueil-marches {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .swiper {
        height: calc(50vh);
    }

    .titre-slider-accueil {
        font-size: 20px;
        line-height: 20px;
    }

    .slider-content-side {
        gap:20px;
    }

    .accueil-marches-container {
        justify-content: center;
    }

}