/* ========== NAVIGATION ========== */

h1, h2, h3, h4, h5, h6 {
  font-family: 'Bebas Neue', sans-serif !important;
}

/* Texte courant */
p, li, a, span, input, textarea, button, label, .highlight-text, .contact-info, .footer-contact, .content {
  font-family: sans-serif !important;
  font-weight: normal;
}




 header.navbar {
 position: fixed;
 top: -3px;
 width: 100%;
 background-color: rgba(0, 0, 0, 0.8);
 z-index: 1000;
 }
 .nav-container {
 max-width: 1200px;
 margin: 0 auto;
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 10px 20px;
 }
 
 nav.nav-links {
 display: flex;
 gap: 25px;
 }
 nav.nav-links a {
 color: #fff;
 text-decoration: none;
 font-size: 1rem;
 transition: color 0.3s;
 }
 nav.nav-links a:hover {
 color: #f6b22b;
 }
 .nav-container .logo img {
 height: 60px;
 transition: height 0.3s ease;
 }
 .navbar.shrink .logo img {
 height: 20px;
 }
 .burger {
 display: none;
 flex-direction: column;
 justify-content: space-between;
 width: 25px;
 height: 20px;
 cursor: pointer;
 }
 .burger div {
 width: 100%;
 height: 3px;
 background-color: #fff;
 border-radius: 2px;
 }
 /* ========== SOCIAL : SCROLL + DROPDOWN ========== */
 #social-container {
 position: relative;
 display: flex;
 align-items: center;
 margin-left: 20px;
 cursor: pointer;
 }
 .social-scroll {
 overflow: hidden;
 white-space: nowrap;
 width: 120px;
 height: 24px;
 }
 .social-scroll-content {
 display: inline-block;
 animation: scroll-left 8s linear infinite;
 animation-play-state: running;
 }
 .social-scroll-content a {
 text-decoration: none;
 color: inherit;
 display: inline-block;
 }
 .social-scroll-content i {
 margin: 0 10px;
 font-size: 1.1rem;
 color: #fff;
 transition: color 0.3s;
 }
 .social-scroll-content i:hover {
 color: #f6b22b;
 }
 #social-container:hover .social-scroll-content {
 animation-play-state: paused;
 }
 @keyframes scroll-left {
 0% { transform: translateX(0); }
 100% { transform: translateX(-50%); }
 }
 .social-dropdown-menu {
 position: absolute;
 top: 40px;
 right: 0;
 background: rgba(0,0,0,0.9);
 border-radius: 5px;
 padding: 10px;
 display: none;
 white-space: normal;
 }
 .social-dropdown-menu a {
 display: flex;
 align-items: center;
 gap: 8px;
 color: #fff;
 text-decoration: none;
 font-size: 0.95rem;
 margin: 5px 0;
 transition: color 0.3s;
 }
 .orange-bg { background-color: #f4b224; }
 .white-bg { background-color: white; }
 .blue-bg { background-color: #021F59; }
 .grey-bg { background-color: #C7C4BF; }
 .social-dropdown-menu a:hover {
 color: #f6b22b;
 }
 .social-dropdown-menu.open {
 display: block;
 }
 /* ========== RESPONSIVE ========== */
 @media (max-width: 768px) {
 nav.nav-links {
 position: absolute;
 top: 60px;
 left: 0;
 width: 100%;
 flex-direction: column;
 background-color: rgba(0, 0, 0, 0.9);
 display: none;
 }
 nav.nav-links.active {
 display: flex;
 }
 /*#social-container {
 display: none;
 }*/
 .burger {
 display: flex;
 }
 }
 *, *::before, *::after {
 box-sizing: border-box;
 }
 html {
 scroll-behavior: smooth;
 overflow-x: hidden;
 }
 body {
 margin: 0;
 padding: 0;	section-gallery
 overflow-x: hidden; /* Pour supprimer le scroll horizontal */
 background-image: url('Ressources/Images/fond.webp');
 background-size: cover;
 background-position: center;
 background-attachment: fixed;
 font-family: Arial, sans-serif;
 color: #fff;
 text-align: center;
 }
 .section {
 width: 100%;
 min-height: 100vh;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 padding: 100px 20px;
 }
 /* Section 1 : Logo et bouton */
 .section1 .centered-image {
 text-align: center;
 margin-bottom: 20px;
 }
 .section1 .centered-image img {
 max-width: 100%;
 height: auto;
 }
 button {
 padding: 10px 20px;
 font-size: 1rem;
 border: none;
 border-radius: 5px;
 background-color: #c7c4bf;
 color: #021f59;
 cursor: pointer;
 transition: background-color 0.3s;
 }
 button:hover {
 background-color: #f6b22b;
 }
 /* Section 2 : Projets */
 .Apropos {
 background-color: rgba(199, 196, 191, 0.7);
 }
 .Apropos h2 {
 margin-bottom: 40px;
 color: #021f59;
 white-space: nowrap;
 word-break: keep-all;
 /* police qui varie entre 1.5rem et 3rem selon la largeur du viewport */
 font-size: clamp(1.5rem, 5vw, 5rem);
 }
 .Apropos h3 {
 margin-bottom: 40px;
 color: #021f59;
 font-size: 5vh;
 }
 .project-container {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 20px;
 max-width: 1500px;
 width: 100%;
 }
 .project {
 width: calc(33.33% - 20px);
 background-color: #f6b22b;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: flex-start;
 border-radius: 10px;
 padding: 20px;
 box-sizing: border-box;
 overflow: hidden;
 }
 .project img {
 max-width: 100%;
 height: auto;
 object-fit: contain;
 margin-bottom: 10px;
 }
 .project h3 {
 margin: 10px 0;
 font-size: 1.2em;
 color: #021f59;
 }
 .project ul {
 padding-left: 20px;
 text-align: left;
 margin: 0;
 }
 .project li {
 list-style: disc;
 margin-bottom: 5px;
 }
 /* Section Contact (fond retiré) */
 .contact-section {
 background-color: transparent;
 }
 /* Nouvelle div englobante avec fond orange */
 .contact-wrapper {
 background-color: #f6b22b;
 padding: 40px;
 border-radius: 10px;
 max-width: 800px;
 width: 100%;
 margin: 0 auto;
 box-sizing: border-box;
 }
 .contact-section h2 {
 margin-bottom: 20px;
 color: #021f59;
 font-size: 5.5em;
 }
 .contact-section p {
 color: #021f59;
 font-size: 1.5em;
 margin-bottom: 40px;
 }
 /* Conteneur du formulaire et de l'encart */
 .contact-container {
 display: flex;
 justify-content: space-between;
 align-items: flex-start;
 gap: 20px;
 max-width: 800px;
 width: 100%;
 margin: 0 auto;
 }
 .contact-form-wrapper {
 flex: 1;
 }
 .contact-form {
 display: flex;
 flex-direction: column;
 gap: 20px;
 }
 .contact-form input,
 .contact-form textarea {
 width: 100%;
 padding: 10px;
 border: none;
 border-radius: 5px;
 font-size: 1em;
 }
 /* Permettre d'étendre verticalement le textarea, pas en largeur */
 .contact-form textarea {
 resize: vertical;
 }
 .contact-form button {
 padding: 10px 20px;
 font-size: 1em;
 border: none;
 border-radius: 5px;
 background-color: #c7c4bf;
 color: #021f59;
 cursor: pointer;
 transition: background-color 0.3s;
 }
 .contact-form button:hover {
 background-color: #f6b22b;
 }
 /* Encadré avec coordonnées en bleu, texte et p en orange, liens customisés */
 .contact-info {
 flex: 1;
 background-color: #021f59;
 padding: 20px;
 margin-left: 10px;
 border-radius: 10px;
 text-align: left;
 color: #f6b22b;
 }
 .contact-info h3 {
 margin-bottom: 10px;
 font-size: 1.5em;
 }
 .contact-info p {
 margin: 10px 0;
 font-size: 1em;
 color: #f6b22b;
 }
 .contact-info a {
 color: #c7c4bf;
 text-decoration: none;
 transition: color 0.3s;
 }
 .contact-info a:hover {
 color: #f6b22b;
 }
 /* Responsive */
 @media (max-width: 820px) {
 .project {
 width: 100%;
 }
 .contact-container {
 flex-direction: column;
 align-items: center;
 }
 }
 @media (max-width: 480px) {
 .project-container {
 flex-direction: column;
 align-items: center;
 }
 /* Ajustements pour la section contact sur mobile */
 .contact-wrapper {
 padding: 20px;
 }
 .contact-container {
 flex-direction: column;
 align-items: center;
 }
 .contact-info {
 margin-left: 0;
 width: 100%;
 text-align: center;
 }
 .contact-section h2 {
 font-size: 3em;
 padding: 0 10px;
 box-sizing: border-box;
 text-align: center;
 }
 }
 /* Animations */
 .fade-in-disabled {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 0.6s ease-out, transform 0.6s ease-out;
 }
 .fade-in-disabled.visible {
 opacity: 1;
 transform: translateY(0);
 }
 .zoom-in {
 opacity: 0;
 transform: scale(0.8);
 transition: opacity 0.6s ease-out, transform 0.6s ease-out;
 }
 .zoom-in.visible {
 opacity: 1;
 transform: scale(1);
 }
 /* == Section Galerie 3D == */
.section-gallery {
 width: 100vw;
 margin: 0;
 padding: 0;
 background-color: rgba(2,31,89,1);
 color: #fff;
}
.section-gallery h2 {
 margin-bottom: 40px;
 font-size: clamp(2rem, 5vw, 4rem);
 color: #f6b22b;
}
/* conteneur 3D */
.section-gallery .container {
 position: relative;
 width: 100vw;
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 perspective: 500px;
 transform-style: preserve-3d;
 margin: 0 auto;
}
/* chaque carte */
.section-gallery .box {
 z-index: 1;
 position: relative;
 width: 356px; height: 200px;
 margin: 15px;
 background: #000;
 overflow: hidden;
 transform-style: preserve-3d;
 transition: 0.5s;
}
/* effet global au hover du conteneur */
/* effet sur les autres cartes quand on hover l’une d’elles */
/* zoom et bring-to-front sur la carte survolée */
.section-gallery .container .box:hover {
 transform: scale(1.1);
 z-index: 9999 !important;
 box-shadow: 0 25px 40px rgba(0,0,0,0.6);
}
/* image et overlay dégradé */
.section-gallery .box .imgBx {
 position: absolute; top: -3px; left: 0;
 width: 100%; height: 100%;
}
.section-gallery .box .imgBx:before {
 content: '';
 position: absolute; top: -3px; left: 0;
 width: 100%; height: 100%;
 background: linear-gradient(180deg,#f6b22b,#000);
 mix-blend-mode: multiply;
 opacity: 0; transition: 0.5s;
}
.section-gallery .box:hover .imgBx:before {
 opacity: 1;
}
.section-gallery .box .imgBx img {
 width: 100%; height: 100%;
 object-fit: cover;
 position: absolute; top: -3px; left: 0;
}
/* textes qui remontent au hover */
.section-gallery .box .content {
 position: absolute; top: -3px; left: 0;
 width: 100%; height: 100%;
 display: flex; align-items: flex-end;
 padding: 20px; box-sizing: border-box;
 z-index: 3;
}
.section-gallery .box .content h2,
.section-gallery .box .content p, 
.section-gallery .box .content a {
 color: #f4b224;
 transform: translateY(200px);
 transition: 0.5s;
}
.section-gallery .box .content h2 {
 transition-delay: 0.3s;
 font-size: 1.2rem;
}
.section-gallery .box .content p {
 transition-delay: 0.4s;
 font-size: 0.9rem;
}
.section-gallery .box:hover .content h2,
.section-gallery .box:hover .content p {
 transform: translateY(0);
}
.section-gallery .imgBx {
 position: absolute;
 top: -3px;
 left: 0;
 width: 100%;
 height: 100%;
 z-index: 1;
 overflow: hidden;
}
.section-gallery .imgBx::after {
 content: '';
 position: absolute;
 top: -3px; left: 0;
 width: 100%; height: 100%;
 background: rgba(18, 38, 65, 0.9); /* niveau d'assombrissement */
 opacity: 0;
 transition: opacity 0.3s ease;
 z-index: 2;
}
.section-gallery .box:hover .imgBx::after {
 opacity: 1;
}
/* ======= VIDEO DE FOND SECTION 1 AVEC OVERLAY BLEUTÉ ======= */
.bg-video-desktop {
 position: absolute;
 top: -3px; left: 0;
 width: 100%; height: 100%;
 object-fit: cover;
 z-index: -2;
 display: block;
}
.video-overlay {
 position: absolute;
 top: -3px; left: 0;
 width: 100%; height: 100%;
 background-color: rgba(2, 31, 89, 0.7); /* bleu foncé site, 50% opacité */
 z-index: -1;
}
@media (max-width: 1024px) {
 .bg-video-desktop,
 .video-overlay {
 display: none;
 }
}
.section1 {
 position: relative;
 z-index: 0;
}
.hero-title {
 font-size: clamp(2rem, 6vw, 5rem);
 color: #f6b22b;
 margin: 20px 0;
 text-shadow: 2px 2px 8px rgba(0,0,0,0.7);
}
/* === SECTION SERVICES PARALLAX PAR BOUTONS === */
.parallax-service-container {
  margin-top: 50px;
 position: relative;
 width: 100%;
 height: auto;
 min-height: 400px;
}
.parallax-slide {
 position: absolute;
 width: 100%;
 height: 100%;
 display: flex;
 flex-direction: column;
 justify-content: center;
 align-items: center;
 opacity: 0;
 transition: opacity 0.6s ease, transform 0.6s ease;
 transform: translateY(20px);
 text-align: center;
 padding: 0 20px;
}
.parallax-slide.visible {
 opacity: 1;
 transform: translateY(0);
 z-index: 10;
}
.arrow-buttons button {
 background-color: #f6b22b;
 border: none;
 color: #021f59;
 font-size: 1.5rem;
 padding: 10px;
 cursor: pointer;
 border-radius: 5px;
}
.arrow-buttons button {
 background-color: #f6b22b;
 border: none;
 color: #021f59;
 font-size: 2rem;
 padding: 10px 14px;
 cursor: pointer;
 border-radius: 50%;
 box-shadow: 0 0 10px rgba(0,0,0,0.4);
}
.arrow-buttons button {
 background: none;
 border: none;
 padding: 0;
}
.arrow-buttons button img {
 filter: drop-shadow(0 0 5px rgba(0,0,0,0.5));
 cursor: pointer;
}
.services-title {
 text-align: center;
 font-size: clamp(2rem, 6vw, 4rem);
 color: #f6b22b;
 margin: 0px auto 0;
 padding-top: 0px;
 z-index: 20;
 position: relative;
  margin-bottom: 40px;
}
.slide-content {
 display: flex;
 flex-direction: row;
 align-items: center;
 justify-content: center;
 gap: 40px;
 width: 100%;
 max-width: 1200px;
 margin: 0 auto;
 flex-wrap: wrap;
 padding: 0 20px;
}
.slide-img {
 width: 300px;
 max-width: 90vw;
 height: auto;
 border-radius: 10px;
 border: none;
 box-shadow: none;
}
.slide-text {
 flex: 1;
 min-width: 250px;
}
.slide-text h2 {
 font-size: clamp(2rem, 5vw, 3rem);
 margin-bottom: 15px;
 color: #f6b22b;
}
.slide-text p {
 font-size: clamp(1rem, 2vw, 1.5rem);
 color: #fff;
}
@media (max-width: 768px) {
 .slide-content {
 flex-direction: column-reverse !important;
 align-items: center;
 text-align: center;
 }
 .slide-img {
 width: 80vw;
 margin-top: 20px;
 }
 .parallax-slide {
 position: relative !important;
 transform: none !important;
 opacity: 1 !important;
 height: auto;
 padding-bottom: 60px;
 }
}
.section1 {
 position: relative;
 z-index: 1;
}
.section1::after {
 content: "";
 position: absolute;
 bottom: 0;
 left: 0;
 width: 100%;
 height: 20px;
 background: linear-gradient(to bottom, rgba(246,178,43,0) 0%, rgba(246,178,43,0.05) 40%, rgba(246,178,43,0.25) 70%, #f6b22b 100%);
 z-index: 5;
 pointer-events: none;
}
.separator-image {
 animation: none !important;
 transition: none !important;
 transform: none !important;
}
.separator-wrapper,
.separator-image {
 animation: none !important;
 transition: none !important;
 opacity: 1 !important;
}
.slide-text p {
 color: #021f59 !important;
}
.service-highlight {
 display: flex;
 align-items: flex-start;
 gap: 16px;
 background-color: #f5f5f5;
 border-radius: 10px;
 padding: 20px;
 margin-top: 8px;
 max-width: 700px;
 color: #021f59;
}
.service-highlight img {
 height: 50px;
 flex-shrink: 0;
}
.service-highlight h4 {
 margin: 0 0 5px;
 font-size: 1.1rem;
 color: #021f59;
}
.service-highlight p {
 margin: 0;
 font-size: 0.95rem;
 color: #333;
}
.service-highlight {
 flex-direction: row;
}
.service-highlight h4, .service-highlight p {
 text-align: left;
}
.slide-content {
 display: flex;
 flex-direction: row;
 align-items: flex-start;
 justify-content: center;
 gap: 40px;
 flex-wrap: wrap;
 width: 100%;
 max-width: 1200px;
 margin: 0 auto;
}
.slide-text-wrapper {
 flex: 1;
 min-width: 300px;
 display: flex;
 flex-direction: column;
 gap: 20px;
}
.slide-text-wrapper .slide-text h2 {
 font-size: clamp(2rem, 5vw, 3rem);
 margin-bottom: 15px;
 color: #f6b22b;
}
.slide-text-wrapper .slide-text p {
 font-size: clamp(1rem, 2vw, 1.5rem);
 color: #021f59;
}
.service-highlight {
 display: flex;
 align-items: flex-start;
 gap: 16px;
 background-color: #f5f5f5;
 border-radius: 10px;
 padding: 20px;
 margin-top: 8px;
 max-width: 700px;
 color: #021f59;
}
.service-highlight img {
 height: 50px;
 flex-shrink: 0;
}
.highlight-text {
 display: flex;
 flex-direction: column;
}
.highlight-text h4 {
 margin: 0 0 5px;
 font-size: 1.1rem;
 color: #021f59;
}
.highlight-text p {
 margin: 0;
 font-size: 0.95rem;
 color: #333;
}
.slide-text h2 {
 font-size: clamp(1.8rem, 4vw, 2.8rem);
 text-align: left;
 margin-left: 0;
}
.slide-text {
 text-align: left;
 margin-left: 0;
}
.slide-text-wrapper {
 align-items: flex-start;
}
.dot-navigation {
 position: absolute;
 right: 50px;
 top: 50%;
 transform: translateY(-50%);
 display: flex;
 flex-direction: column;
 gap: 10px;
 z-index: 99;
}
.dot {
  margin-top: 20px;
 width: 14px;
 height: 35px;
 border-radius: 50%;
 background-color: #ccc;
 cursor: pointer;
 transition: background-color 0.3s;
}
.dot.active {
 background-color: #f6b22b;
}
@media (max-width: 768px) {
 .slide-content {
 flex-direction: column !important;
 }
 .slide-img {
 order: -1;
 }
}
@media (max-width: 768px) {
 .dot-navigation {
 display: none !important;
 }
}
.service-highlight {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.service-highlight.visible {
 opacity: 1;
 transform: translateY(0);
}

.apropos-banner-bg {
  width: 99.9vw;
  overflow: hidden;
}
.apropos-banner-container {
 display: flex;
 justify-content: space-between;
 align-items: center;
 gap: 40px;
 max-width: 1400px;
 margin: 0 auto;
 flex-wrap: wrap;
 padding: 40px 20px;
}
.apropos-text {
 flex: 1;
 min-width: 300px;
 color: #021f59;
 text-align: left;
 max-width: 650px;
}
.apropos-text h2 {
 font-size: clamp(2rem, 5vw, 3.5rem);
 margin-bottom: 20px;
 color: #021f59;
}
.apropos-text p {
 font-size: 1.2rem;
 line-height: 1.6;
 margin-bottom: 20px;
}
.apropos-illustration {
 flex: 1;
 min-width: 300px;
 max-width: 600px;
 position: relative;
 z-index: 10;
}
.apropos-illustration img {
 width: 100%;
 height: auto;
 object-fit: contain;
}
/* responsive */
@media (max-width: 768px) {
 .apropos-banner-container {
 flex-direction: column;
 align-items: center;
 text-align: center;
 }
 .apropos-text {
 text-align: center;
 }
}

.apropos-overlay-image {
 position: absolute;
 bottom: -30px;
 right: 40px;
 width: 300px;
 z-index: 5;
}
.apropos-overlay-image img {
 width: 100%;
 height: auto;
 border-radius: 12px;
 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.apropos-text {
 max-width: 900px;
 margin: 60px auto;
 padding: 0 20px;
 text-align: center;
 color: #021f59;
}
.apropos-banner-bg img {
  width: 90vw;
  height: auto;
  display: block;
  margin: 0;
  padding: 0;
  object-fit: cover;
  float: none;
  margin-left: auto;
}

.apropos-banner-container {
 display: flex;
 justify-content: space-between;
 align-items: center;
 gap: 40px;
 max-width: 1400px;
 margin: -100px auto 0;
 flex-wrap: wrap;
 padding: 40px 20px 0;
 position: relative;
 z-index: 10;
}
.apropos-overlay-image-right {
 flex: 1;
 min-width: 300px;
 max-width: 600px;
 margin-right: -80px;
 z-index: 20;
}
.apropos-overlay-image-right img {
 width: 100%;
 height: auto;
 border-radius: 12px;
 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
 object-fit: contain;
}
@media (max-width: 768px) {
 .apropos-banner-container {
 flex-direction: column;
 align-items: center;
 margin: 20px auto 0;
 padding: 20px;
 }
 .apropos-overlay-image-right {
 margin-right: 0;
 max-width: 90%;
 }
}
.Apropos {
 background-color: #ffffff !important;
 padding: 0;
}

@media (max-width: 768px) {
 .apropos-banner-bg img {
 width: 100vw;
 }
}
.trait-orange {
 width: 80px;
 height: 5px;
 background-color: #f6b22b;
 margin: 10px auto 30px auto;
 border-radius: 5px;
}

.trait-bleu {
 width: 80px;
 height: 5px;
 background-color: #021F59;
 margin: 10px auto 30px auto;
 border-radius: 5px;
}
/* Séparation en haut de la section services */
@media (max-width: 768px) {
  .dropdown-menu {
    position: static;
    display: none;
  }
  .dropdown-menu.open {
    display: block;
  }
}
@media (min-width: 769px) {
  .menu-services-group {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    height: 60px !important;
    vertical-align: middle !important;
  }
  .menu-services-group > a.services-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 60px !important;
    padding: 0 15px !important;
    box-sizing: border-box !important;
  }
  .sub-service-container {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    background-color: #000 !important;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2) !important;
    opacity: 0 !important;
    transform: translateY(10px) !important;
    transition: opacity 0.3s ease !important, transform 0.3s ease !important;
    z-index: 1000 !important;
  }
  .menu-services-group:hover .sub-service-container {
    display: flex !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}
/* Force centering of Services link among nav items */
nav.nav-links > .menu-services-group > a.services-toggle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 60px !important;
}

.section-services {
	display: block;
  position: relative;
  width: 100%;
  /* Ensuring the section sits directly under the separator */
  padding: 40px 20px 40px; /* no top padding, 40px bottom padding */
  background-image: url("Ressources/Images/FondService.webp");
  background-size: cover;
  overflow: hidden;
}
.section-services .separator-wrapper {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 100;
  pointer-events: none;
}
.section-services .separator-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
  .new-footer {
    background-color: #021f59;
    color: #fff;
    padding: 40px 20px 20px;
    font-family: sans-serif;
  }
  .new-footer .footer-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
  }
  .new-footer .footer-section {
    flex: 1 1 250px;
    margin: 10px 20px;
  }
  .new-footer .footer-section h2,
  .new-footer .footer-section h3 {
    color: #f6b22b;
    margin-bottom: 10px;
  }
  .new-footer .footer-section p,
  .new-footer .footer-section a,
  .new-footer .footer-bottom p {
    color: #fff;
    font-size: 0.95rem;
  }
  .new-footer .footer-section ul {
    list-style: none;
    padding: 0;
  }
  .new-footer .footer-section ul li {
    margin-bottom: 6px;
  }
  .new-footer .footer-section a, .footer-bottom a {
  	font-size: 0.95rem;
    text-decoration: none;
    color: #c7c4bf;
  }
  .new-footer .footer-section a:hover, .footer-bottom a:hover {
    color: #f6b22b;
  }
  .footer-bottom {
  	display: flex;
    justify-content: space-around;
    padding-top: 20px;
    border-top: 1px solid #f6b22b;
    margin-top: 20px;
    font-size: 0.85rem;
  }

  .useful-links{
  		
  	justify-content: space-between;
  }

}
/* Footer mobile layout */
@media (max-width: 768px) {
  .footer-container {
    flex-direction: column !important;
    align-items: center !important;
  }
  .footer-container > * {
    margin-bottom: 20px;
  }
}
    /* === BOUTONS 3D AVEC SOCLE BLEU LARGE (VERSION PETITE) === */
button, .btn-3d {
 background: #ffa31a;
 border: none;
 border-radius: 8px;
 padding: 8px 20px;
 font-size: 1rem;
 font-weight: bold;
 color: #ffffff;
 text-shadow: 0 1px 0 #b35c00;
 box-shadow:
 -3px 6px 0 #021f59,
 3px 6px 0 #021f59,
 0 8px 8px rgba(0,0,0,0.3);
 transition: all 0.1s ease-in-out;
 cursor: pointer;
}
button:hover, .btn-3d:hover {
 background: #ffb347;
}
button:active, .btn-3d:active {
 transform: translateY(4px);
 box-shadow:
 -2px 4px 0 #021f59,
 2px 4px 0 #021f59,
 0 4px 4px rgba(0,0,0,0.3);
}
/* Séparation en haut de la section services */
.section-services .separator-wrapper {
 position: absolute;
 top: -3px;
 left: 0;
 width: 100%;
 z-index: 100;
 pointer-events: none;
}
.section-services .separator-image {
 width: 100%;
 height: auto;
 display: block;
 object-fit: cover;
}
/* === BOUTON DE CONTACT PERSONNALISÉ === */
.contact-form button {
 background: #021f59; /* bleu */
 color: white;
 border: none;
 border-radius: 8px;
 padding: 10px 20px;
 font-size: 1rem;
 font-weight: bold;
 cursor: pointer;
 box-shadow:
 -2px 6px 0 #999999, /* socle gris */
 2px 6px 0 #999999,
 0 8px 8px rgba(0,0,0,0.2);
 transition: all 0.1s ease-in-out;
}
.contact-form button:hover {
 background: #033b8e;
}
.contact-form button:active {
 transform: translateY(4px);
 box-shadow:
 -1px 3px 0 #999999,
 1px 3px 0 #999999,
 0 4px 4px rgba(0,0,0,0.2);
}
/* Séparation en haut de la section services */
.section-services .separator-wrapper {
 position: absolute;
 top: -3px;
 left: 0;
 width: 100%;
 z-index: 100;
 pointer-events: none;
}
.section-services .separator-image {
 width: 100%;
 height: auto;
 display: block;
 object-fit: cover;
}
/* Séparation entre À propos et Réalisations */
.between-sections-separator {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  z-index: 10;
  pointer-events: none;
}
@media (max-width: 768px) {
  #Apropos, .between-sections-separator {
    margin: 0 !important;
    padding: 0 !important;
  }
  #Apropos > .apropos-banner-bg,
  #Apropos > .apropos-banner-container {
    margin: 0 !important;
    padding: 0 !important;
  }
}
/* ===== DROPDOWN ===== */
.dropdown {
  position: relative;
}
.dropdown-toggle {
  color: #fff;
  text-decoration: none;
  font-size: 1rem;
  padding: 10px;
  display: block;
}
.dropdown-toggle:hover {
  color: #f6b22b;
}
.dropdown-menu {
  display: none;
  position: absolute;
  background-color: rgba(0,0,0,0.9);
  top: 100%;
  left: 0;
  min-width: 160px;
  z-index: 999;
  border-radius: 4px;
  overflow: hidden;
}
.dropdown-menu a {
  display: block;
  padding: 10px;
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
  transition: background-color 0.3s;
}
.dropdown-menu a:hover {
  background-color: #f6b22b;
  color: #021f59;
}
.dropdown.open .dropdown-menu {
  display: block;
}
/* Forcer l’alignement horizontal des liens du menu */
nav.nav-links > a,
nav.nav-links > .dropdown {
  display: flex;
  align-items: center;
  height: 100%;
}
nav.nav-links > .dropdown {
  position: relative;
}
nav.nav-links > .dropdown > a {
  display: flex;
  align-items: center;
  gap: 5px;
}

    /* Uniformiser la hauteur des liens dans la navbar */
nav.nav-links > .nav-item,
nav.nav-links > .dropdown {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 10px 0;
}
nav.nav-links > .nav-item {
  padding-left: 10px;
  padding-right: 10px;
}
/* Animation de la flèche dans le menu déroulant */
.dropdown .arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}
.dropdown.open .arrow {
  transform: rotate(180deg);
}

    /* Aligner tous les liens du menu de navigation */
nav.nav-links > a,
nav.nav-links > .dropdown,
nav.nav-links > .menu-services-group > a {
  display: flex;
  align-items: center;
  height: 60px;
  padding: 0 15px;
  box-sizing: border-box;
}
nav.nav-links > .dropdown > a.dropdown-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  padding: 0 15px;
}

@media (max-width: 768px) {
  nav.nav-links {
    flex-direction: column;
    align-items: flex-start;
  }
  .dropdown-menu {
    width: 100%;
    position: static;
    background-color: transparent;
    padding-left: 20px;
    display: none;
  }
  .dropdown.open .dropdown-menu {
    display: block;
  }
  .dropdown-menu a {
    padding: 10px 0;
    display: block;
    width: 100%;
    background: none;
  }
}
@media (max-width: 768px) {
  .dropdown-menu {
    display: none;
    position: relative !important;
    background-color: rgba(0, 0, 0, 0.85);
    width: 100%;
    padding: 0;
  }
  .dropdown.open .dropdown-menu {
    display: flex !important;
    flex-direction: column;
  }
  .dropdown-menu a {
    display: block;
    padding: 12px 20px;
    color: white;
    text-align: left;
    width: 100%;
    text-decoration: none;
  }
  .dropdown-menu a:hover {
    background-color: rgba(255,255,255,0.1);
  }
}

    @media (min-width: 769px) {
  .menu-services-group {
    position: relative;
    display: inline-block;
  }
  .sub-service-container {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #000;
    z-index: 1000;
    text-align: center;
    min-width: 160px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  .menu-services-group:hover .sub-service-container {
    display: flex;
    opacity: 1;
    transform: translateY(0);
  }
  .sub-service-link {
    display: block;
    padding: 10px 20px;
    color: white;
    text-decoration: none;
    white-space: nowrap;
    width: 100%;
    box-sizing: border-box;
  }
  .sub-service-link:hover {
    background-color: rgba(255,255,255,0.1);
  }
}

    @media (max-width: 768px) {
  .menu-services-group.open .sub-service-link {
    display: block;
    padding: 14px 0;
    font-size: 1.2rem;
    text-align: center;
  }
  .services-toggle .arrow {
    transition: transform 0.3s ease;
  }
  .menu-services-group.open .services-toggle .arrow {
    transform: rotate(180deg);
  }
  /* cacher par défaut */
  .sub-service-link {
    display: none;
  }
}


/* === Animation smooth flèche services === */

.menu-services-group > a.services-toggle .arrow {
  display: inline-block;
  transition: transform 0.5s ease;
  transform-origin: center;
}
@media (min-width: 769px) {
  .menu-services-group:hover > a.services-toggle .arrow {
    transform: rotate(180deg);
  }
}



/* ======= CORRECTIONS MOBILE POUR SCROLL PARASITE ======= */
@media (max-width: 768px) {
  .parallax {
    height: auto !important;
  }

  .parallax section {
    position: relative !important;
    min-height: auto !important;
    padding-top: 80px;
    padding-bottom: 80px;
  }

  #interactive-parallax {
    height: auto !important;
    perspective: none !important;
    flex-direction: column;
  }

  #interactive-parallax .layer {
    position: relative !important;
    transform: none !important;
  }
}

body {
  touch-action: manipulation;
}
