* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: system-ui, Avenir, Helvetica, Arial, sans-serif, Montserrat;
}


:root {
	--yellow : #eab308;
	--white : #fff;
	--black : #000;
	--gra-black : #000;
	--gra-hblack : #1d293d;
	--blur : #ffffff0d;
}

html {
	/*zoom : 88%;*/
}

body,
html {
	min-width: fit-content;
	min-height: 100vh;
	overflow-x: hidden ;
}

body {
    background: radial-gradient(var(--gra-black), var(--gra-hblack));
}


/* Header */



/* Section Hero */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 1s ease forwards; }
.delay-200 { animation-delay: 0.2s; }
.delay-400 { animation-delay: 0.4s; }

@keyframes slide1 {
  0%, 33% { opacity: 1; }
  34%, 100% { opacity: 0; }
}
@keyframes slide2 {
  0%, 33% { opacity: 0; }
  34%, 66% { opacity: 1; }
  67%, 100% { opacity: 0; }
}
@keyframes slide3 {
  0%, 66% { opacity: 0; }
  67%, 100% { opacity: 1; }
}
.animate-slide1 { animation: slide1 15s infinite; }
.animate-slide2 { animation: slide2 15s infinite; }
.animate-slide3 { animation: slide3 15s infinite; }

.animate-pulse-slow { animation: pulse 5s infinite; }

/* Acteur-tractra */

@keyframes fadeInLeft {
  0% { opacity: 0; transform: translateX(-40px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes fadeInRight {
  0% { opacity: 0; transform: translateX(40px); }
  100% { opacity: 1; transform: translateX(0); }
}
.animate-fadeInLeft { animation: fadeInLeft 1s ease forwards; }
.animate-fadeInRight { animation: fadeInRight 1s ease forwards; }
.animate-pulse-slow { animation: pulse 5s infinite; }

/* Materiaux  */
@keyframes slideUp {
  0% {
    transform: translateY(40px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
.animate-slideUp {
  animation: slideUp 1s ease-out forwards;
}

/* Nous Produit  */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }

/* Maps */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }

/* Apropos-TRACTRA */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }

/* About-tractra */

@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }

/* Equip */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }

/* Nous-realisation */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(25px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.9s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }
.animate-fadeInUp.delay-400 { animation-delay: 0.4s; }
.animate-fadeInUp.delay-500 { animation-delay: 0.5s; }

@keyframes pulseSlow {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}
.animate-pulse-slow { animation: pulseSlow 6s ease-in-out infinite; }

/* Chantier-En-Cours */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(25px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }

@keyframes pulseSlow {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}
.animate-pulse-slow { animation: pulseSlow 6s ease-in-out infinite; }


/* Client Section */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp {
  animation: fadeInUp 1s ease-out forwards;
}

@keyframes fadeInScale {
  0% { opacity: 0; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1); }
}
.animate-fadeInScale {
  animation: fadeInScale 1s ease-out forwards;
}

@keyframes zoomIn {
  0% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1); }
}
.animate-zoomIn {
  animation: zoomIn 0.8s ease-out forwards;
}
.animate-zoomIn.delay-100 { animation-delay: 0.1s; }
.animate-zoomIn.delay-200 { animation-delay: 0.2s; }
.animate-zoomIn.delay-300 { animation-delay: 0.3s; }
.animate-zoomIn.delay-400 { animation-delay: 0.4s; }
.animate-zoomIn.delay-500 { animation-delay: 0.5s; }

/* Blog POST */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInScale {
  animation: fadeInScale 1s ease forwards;
}
@keyframes fadeInScale {
  0% { opacity: 0; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1); }
}

/* Contact */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }

/*Devis*/
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }

/* Emploi Post */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(25px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.9s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }

@keyframes pulseSlow {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
}
.animate-pulse-slow { animation: pulseSlow 6s ease-in-out infinite; }

/*Recrutement*/
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.8s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }

/* Footer */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp {
  animation: fadeInUp 0.8s ease forwards;
}
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }
.animate-fadeInUp.delay-400 { animation-delay: 0.4s; }

/* Single => ( Show Post Blog & Events ) */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp {
  animation: fadeInUp 1s ease-out forwards;
}
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }
.animate-fadeInUp.delay-400 { animation-delay: 0.4s; }

@keyframes zoomIn {
  0% { opacity: 0; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1); }
}
.animate-zoomIn {
  animation: zoomIn 1s ease-out forwards;
}

/* 404 */

@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(5deg); }
}
.animate-fadeInUp { animation: fadeInUp 1s ease forwards; }
.animate-fadeInUp.delay-300 { animation-delay: 0.3s; }
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float.delay-200 { animation-delay: 2s; }
.animate-float.delay-400 { animation-delay: 4s; }

  /* projets Realise materiaux -section */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 1s ease forwards; }
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }

@keyframes fadeInScale {
  0% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1); }
}
.animate-fadeInScale { animation: fadeInScale 1s ease forwards; }

@keyframes pulseSlow {
  0%, 100% { transform: scaleX(1); opacity: 1; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
}
.animate-pulse-slow { animation: pulseSlow 2s infinite; }

/* card section */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-15px); }
}
.animate-fadeInUp { animation: fadeInUp 1s ease forwards; }
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float.delay-300 { animation-delay: 3s; }
.animate-float.delay-500 { animation-delay: 5s; }

/* OUR-projets */

@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fadeInUp { animation: fadeInUp 0.9s ease forwards; }
.animate-fadeInUp.delay-100 { animation-delay: 0.1s; }
.animate-fadeInUp.delay-200 { animation-delay: 0.2s; }

/* Fixed Icons */
@keyframes bounceSlow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
.animate-bounce-slow {
  animation: bounceSlow 2.5s ease-in-out infinite;
}

/* Historique-page */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fadeIn {
  opacity: 0;
  animation: fadeIn 1s ease-out forwards;
}
.animate-fadeUp {
  opacity: 0;
  animation: fadeIn 1.2s ease-out forwards;
}
.animate-fadeUp.delay-200 { animation-delay: 0.2s; }
.animate-fadeUp.delay-400 { animation-delay: 0.4s; }
.animate-fadeUp.delay-600 { animation-delay: 0.6s; }