
/*****************************LAST CSS CLEAR AND COMMENT**************************************************/

/* ==========================================================
   ✅ SECTION 1 : GLOBAL RESET ET BASE (ancienne section 1)
   ----------------------------------------------------------
   
========================================================== */

/**************************Rules Min CSS OF BASE***********************************************/

* {
  box-sizing: border-box;
  
}

html, body {
  margin: 0;
  padding: 0;
}

body {
  animation: test 2s infinite;
  margin:0;
  padding: 0;
  color: #333;
  background-color: rgb(255, 255, 255);
  overflow-x: hidden;
 
}


/* --- Structure générale de la bannière --- */
section.banner {
  position: relative;
  width: 100%;
  margin-top: 0;
  height: 340px; 
  display: flex;
  flex-direction: column;
  justify-content: center;   
  align-items: center;       
  text-align: center;
  background: #f5f5f5;
  z-index: 1;
  margin-bottom: 160px;
  
}
/* --- Titre principal de la bannière --- */
.banner-title {
  position: relative;
  font-size: 3.04rem;            
  font-weight: bold;
  text-align: center;
  height: 115px;
  padding-top: 16px;
  width: auto;       
  z-index: 16;                
  opacity: 1;                
  animation: fadeInTitleGlow 0.43s ease-out 1s forwards;
  animation-fill-mode: both;
  
}



/* --- Animation du titre (effet glow/fondu) --- */
@keyframes fadeInTitleGlow {
  0% {
    opacity: 0;
    text-shadow: none;
  
  }
  30% {
    opacity: 0.2;
    text-shadow: 0 0 20px rgba(255,255,255,0.4);
  
  }
  60% {
    opacity: 0.7;
    text-shadow: 0 0 80px rgba(255,255,255,1),
                 0 0 150px rgba(255,255,255,0.6);
 
  }
  100% {
    opacity: 1;
    text-shadow: 0 0 40px rgba(255,255,255,0.8),
                 0 0 80px rgba(255,255,255,0.5);

  }
}


/* ==========================================================
   ✅ CÂBLES PRINCIPAUX (ancienne sous-section)
========================================================== */

.cable-left, .cable-right
{
  position: absolute;
  top: 160px;
  width: 430px;
  height: 70px;
  background: #363636;
  z-index: 8;
  /*will-change: transform;*/
}
.cable-left { left: -200px; }
.cable-right { right: -200px; }


/* --- Animation d’arrivée des câbles --- */
.cable-left {
  animation: slideLeftCable 1s ease-out forwards;
}
.cable-right {
  animation: slideRightCable 0.7s ease-out forwards;
  /* 🟢 Correction : ancien code avait “0.7” sans unité → syntaxe invalide */
}

/* --- Animation : câble gauche (entre de la gauche vers le centre) --- */
@keyframes slideLeftCable {
  0% {
    left: -200px;
    transform: translateY(-50%) translateX(0);
  }
  100% {
    left: 50%;
    transform: translateX(-97%) translateY(-50%);
  }

}

/* --- Animation : câble droit (entre de la droite vers le centre) --- */
@keyframes slideRightCable {
  0% {
    right: -200px;
    transform: translateY(-50%) translateX(430%);
  }
  100% {
    right: 50%;
    transform: translateX(100.6%) translateY(-50%);
  }
}

/* ==========================================================
   ✅ CÂBLES SECONDAIRES COLORÉS (ancienne fin section 2)
========================================================== */

.cable-colored.blue {
  position: relative;
  height: 4px;
  width: 250px;
  left: -700px;
  top: 70px;                   
  background-color: blue;
  z-index: 7;
  animation: slideColoredCables 0.7s ease-out forwards;
 
}


.cable-colored.yellow {
  position: relative;
  height: 4px;
  width: 250px;
  left: -700px;
  top: 71.8px;                       
  background-color: rgb(255, 251, 0);
  z-index: 7;
  animation: slideColoredCables 0.7s ease-out forwards;
 
}

.cable-colored.red {
  position: relative;
  height: 4px;
  width: 250px;
  left: -700px;
  top: 69.1px;                       
  background-color: rgb(255, 0, 0);
  z-index: 7;
  animation: slideColoredCables 0.7s ease-out forwards;
 
}



@keyframes slideColoredCables {
  0% { left: -700px;
    transform: translateY(-20%) translateX(-70%) scaleX(0.7); opacity: 1; }
  90%     { opacity: 1; }
  100%    { left: 50%;
    transform: translateY(-403%) translateX(-394%) scaleX(0.7); opacity: 1; }
}

/* ==========================================================
   ⚡ END SECTION 2 : BANNIÈRE ET CÂBLES
========================================================== */


/* ==========================================================
   ✅ SECTION SLIDER-IMG-BANNER
========================================================== */

.image-slider {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
}

.slider-image {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0; 
}
.slider-image img {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  /*display: block;*/
}

.slider-caption {
  position: absolute;
  bottom: 43%;
  left: 52%;
  top:61%;
  transform: translateX(-70%);
  color: #fff;
  font-size: 2.05rem;
  font-weight: bold;
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.7);
  z-index:25;
}

.fade {
  animation: fadeInOut 24s infinite;
  animation-delay:0.7s;
}

.slider-image:nth-child(1) {
  animation-delay: 6.3s; /* Le premier commence après la fin de l'animation des câbles */
}

.slider-image:nth-child(2) {
  animation-delay: 12.3s; /* 5.4Le deuxième commence après 2 secondes */
}
.slider-image:nth-child(3) {
  animation-delay: 18.3s; /*7.4 Le troisième commence après 4 secondes */
}

.slider-image:nth-child(4) {
  animation-delay: 24.3s; /* Le quatrième commence après 6 secondes */
}

@keyframes showSlider {
  from { opacity: 0;}
  to { opacity: 1; }
}

@keyframes fadeInOut {
  0%   { opacity: 0; }
  10%  { opacity: 1; }   /* montée progressive */
  25%  { opacity: 1; }   /* reste visible */
  35%  { opacity: 0; }   /* redescend doucement */
  100% { opacity: 0; }
}


/* ==========================================================
   ✅ SECTION 3 : SECTEURS D’ACTIVITÉ (ancienne section 3)
   ----------------------------------------------------------
   Objectif :
   - blocs cliquables (cartes orange)
   - effet hover inversé (fond blanc / texte orange)
   - mise en page responsive fluide
========================================================== */

/* --- Conteneur général des secteurs --- */
section.sectors {
  display: flex;
  justify-content: center;
  gap: 30px;              
  flex-wrap: wrap; 
  text-align: center;       
  min-height: 250px;   
  box-sizing: border-box;
  margin-bottom: 160px;
  padding-top: 40px;
  position: relative;
}

/* --- Carte individuelle de secteur --- */
section.sectors .sector {
  position: relative;
  background: #ff7b00;     
  color: white;
  padding: 20px;
  margin-top: 20px;
  padding-top: 20px;
  border-radius: 10px;     
  min-width: 200px;
  min-height: 160px;   
  flex: 1 1 200px;         
  
  cursor: pointer;         
 
}

/* --- Effet hover : inversion couleur/fond --- */
section.sectors .sector:hover {
  transform: translateY(-10px); 
  color: #ff7b00;               
  background: #ffffff;          
}

/* Titre dans les blocs du menu */
section.sectors .sector h2 {
font-size: 1.51rem;      
  font-weight: bold; 
  /*padding-top: 16px; */
  padding: 0;
  margin: 0 0 20px 0;  
 
}

/* Paragraphe dans les blocs du menu */
section.sectors .sector p {
  font-size: 1.06rem;          
  /*line-height: 1.4; */        
  margin: 0;  
  padding: 0;              
}



/* ==========================================================
   ⚡ FIN SECTION 3 : SECTEURS D’ACTIVITÉ
========================================================== */





/* ==========================================================
   ✅ SECTION 4 : EXPÉRIENCE / STATISTIQUES (ancienne section 4)
   ----------------------------------------------------------
   Objectif :
   - zone orange uniforme avec chiffres clés
   - texte centré et lisible
   - responsive sans débordement
========================================================== */

/* --- Bloc principal de la section expérience --- */
section.experience {
  background: #ff9900;     
  /*padding: auto 0;   */     
  text-align: center; 
  color: #000;  
  min-height: 250px; 
  position: relative;
  padding-top: 40px;  
  margin-bottom: 160px;
 
}

/* --- Titre principal de la section --- */
section.experience h2 {
  font-size: 2.5rem;      
  font-weight: bold; 
  /*padding-top: 16px; */
  padding: 40px 0;
  margin: 0;   
}

/* --- Conteneur regroupant les chiffres clés --- */
section.experience .stats {
  display: flex;
  justify-content: center; 
  gap: 50px;  
  padding: 20px 0;
}

/* --- Élément individuel de statistique --- */
section.experience .stat {
  font-size: 1.6rem;      
  font-weight: bold;   
   min-height: 40px;
}

/* --- Nombre (valeur dynamique) --- */
.stat span {
  display: inline-block;         
  font-size: 2.05rem;          
  font-weight: bold;     
  min-width: 7ch;
  text-align: center;
  line-height: 1;
}

/* ==========================================================
   ⚡ FIN SECTION 4 : EXPÉRIENCE / STATISTIQUES
========================================================== */


/* ==========================================================
   ✅ SECTION 5 : CAROUSEL PARTENAIRES (HTML : .carousel + .carousel-track)
   ----------------------------------------------------------
   Objectif :
   - slider horizontal de logos
   - animation continue fluide
   - hover effect sur logos
   - corriger erreurs de l'ancienne section 5 (plus de 10 erreurs / doublons)
========================================================== */

/* --- Bloc principal de la section carousel --- */
section.carousel {
  min-height: 403px;
  width: auto;
  /*margin-top:0;*/
  /*padding-bottom: 0;*/
  background-color: #ff9900;
  font-weight: bold;
  color: #000; 
  overflow-x: hidden;  
  position:relative;        
  margin-bottom: 250px;
  padding-top: 43px; 
    }

/* --- Conteneur interne pour faire défiler les logos --- */
section.carousel .carousel-track {
   display: flex;    
   align-items: center;
   height: 160px;
   width: 100%;        /* ⭐ stabilise la largeur */
   overflow: hidden;   /* ⭐ évite les débordements */    
}
/*ATTENTION H2 OU H3...all Titles need blockmarganbd pad = 0*/
section.carousel h2{
  font-size: 2.5rem;
  /*padding: 0;*/
  padding: 0;
  margin: 0 0 20px 0;  
  text-align: center;     /* centré horizontalement */

}

/* --- Logos individuels --- */
section.carousel .carousel-track img {
  height: 100%; 
  width: 100%; 
 aspect-ratio: 3 / 2;    
  display: block;
 /*vertical-align: top;*/
  object-fit: contain;


}



/* ==========================================================
   ⚡ FIN SECTION 5 : CAROUSEL PARTENAIRES (.carousel + .carousel-track)
========================================================== */




/* ==========================
   SECTION 6 : TEAM / EQUIPE
=========================== */

/* --- Conteneur principal --- */
section.team {
  /*height: 312px;*/
  min-height: 304px;
  width: auto;
  background-color: #6b9ec0; /* couleur de fond */
  color: #000;
  overflow: hidden; /* éviter débordements */
  /*position: relative;*/
  margin-bottom: 160px;
  overflow-anchor: none;
  /*padding-top: 43px;*/
  /*padding-bottom: 43px;*/
  
}

section.team .team-content {
 text-align: center;
  padding: 60px 40px;
  position: relative;
  /*z-index: 2;*/
}

/* --- Titres et paragraphes --- */
.team h2, .team p {
  display: inline-block; /* stabilise l’animation */
  opacity: 0;
  transform: translateY(30px);
  /*animation: fadeUpText 0.8s ease-out forwards;*/
  /*min-height: 40px; /* valeur à ajuster */
}


.team h2 {
  margin: 0 0 20px 0;
  padding: 0;
  animation-delay: 0.3s;
  font-size: 2.5rem;
}

/* Bande orange sur titre au hover */
.team h2:hover {
  position: relative;
}

.team p {
  margin-top: 10px;
}

.team h2:hover::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 5px;
  background: orange;
  animation: expandBand 0.5s ease-out forwards;
}


/* --- Mots-clés et animation fade-in --- */
.team-keywords {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-top: 10px;
  gap: 70px;
  flex-wrap: wrap;
}

.team-keywords .pair {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.team-keywords .keyword {
  display: inline-block;
  font-weight: bold;
  word-spacing: 1em;
  margin: 0 0.5em;
  opacity: 0;
  /*animation: fadeInWord 0.8s ease-in forwards;*/
}
/*
.keyword:nth-child(1) { animation-delay: 0.5s; }
.keyword:nth-child(2) { animation-delay: 1s; }
.keyword:nth-child(3) { animation-delay: 1.5s; }*/

/* --- Icônes qui tombent --- */
.pair .icon {
  font-size: 2.05rem;
  opacity: 0;
 transform: translateY(-50px);
 /*animation: dropIcon 0.8s ease-out forwards;*/
}
/*
.pair:nth-child(1) .icon { animation-delay: 0.7s; }
.pair:nth-child(2) .icon { animation-delay: 0.9s; }
.pair:nth-child(3) .icon { animation-delay: 1.1s; }*/

/* ==========================
   KEYFRAMES
=========================== */
@keyframes fadeUpText {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInWord {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes dropIcon {
  0% { opacity: 0; transform: translateY(-50px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes expandBand {
  0% { width: 0%; }
  100% { width: 100%; }
}



/* --- SECTION MATERIEL --- */
section.block.material,
section.block.travaux{
  /*width: 100%;*/
  width: 100%;
  min-height: 1006px; /* ou 200px, ou 250px */
  padding-top: 20px; /* optionnel mais stabilise */
  margin-bottom: 115px;
  /*padding: 20px 0;*/
  position: relative;
  text-align: center;
  /*display: block;*/
  background-color: #6b9ec0;
  overflow-anchor: none;
  
}

section.block.material h2,
section.block.travaux h2 {
  margin-bottom: 34px;
  position: relative;
  z-index: 2;
  text-align: center;
  display: inline-block;
  background-color: #6b9ec0;
  padding: 8px 20px;      /* remplace height fixe */
  line-height: 1.2;       /* stabilise la hauteur */
}

section.block.material h2::before,
section.block.travaux h2::before{
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background: linear-gradient(to right, rgb(255,123,0), #ff7b00);
  opacity: 0;
  transition: opacity 0.6s ease;
  z-index: -1;
}

section.block.material:hover h2::before,
section.block.travaux:hover h2::before{
  opacity: 1;
}

section.block.material .gallery,
section.block.travaux .gallery{
  display: flex;
  flex-direction: column;  
  /*flex-wrap: wrap; permet mise en ligne horizontal*/
  align-items: center;
  gap: 7px;
  min-height: 970px;
  width: 100%;
  max-width: 700px; 
  padding-bottom: 25px;
  background-color: rgb(255,123,0);
  margin: 0 auto;
  overflow-anchor: none;
}

section.block.material .thumb,
section.block.travaux .thumb{
  position: relative;
  width: 430px;
  height: auto; /* important */
  aspect-ratio: 1 / 1;
  /*margin-bottom: 25px;*/
  border: 1px solid orange;
  border-radius: 10px;
  overflow: hidden;
  /*opacity: 1;*/
  background-color: chartreuse;
  animation-name: thumbAppear; 
  animation-duration: 0.8s; 
  animation-fill-mode: both; 
  animation-timing-function: ease-out; 
  /* Compatibilité Firefox + Chrome */ 
  animation-timeline: view(); 
  /*animation-range: entry 0% exit 40%;*/
/* Firefox + Chrome */ 
view-timeline-name: --thumb; 
animation-timeline: --thumb;


}

section.block.material .thumb img,
section.block.travaux .thumb img {
  /*position: relative;*/
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  /*opacity: 1;*/   
}

section.block.material .gallery-Down,
section.block.travaux .gallery-Down {
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-items: center;
  width: 100%;
  max-width: 700px; 
  margin: 7px auto 0 auto;
  padding-bottom: 25px;

  opacity: 0;
  max-height: 0;
   background-color: rgb(255,123,0);
}


#toggle-mat:checked ~ .gallery-Down,
#toggle-trav:checked ~ .gallery-Down {
  /*visibility: visible;*/
 max-height: 2500px;
 opacity: 1;
}

section.block.material .thumb1,
section.block.travaux .thumb1 {
  position: relative;
  width: 100%;
  width: 430px;
  height: 430px;
  border: 1px solid orange;
  border-radius: 10px;
  overflow: hidden;
  /*opacity: 1;*/
  /*animation: thumbAppear 0.8s ease-out both;
  animation-timeline: view();
  animation-range: entry 20% cover 40%;*/
  animation-name: thumbAppear; 
  animation-duration: 0.8s; 
  animation-fill-mode: both; 
  animation-timing-function: ease-out; 
  /* Compatibilité Firefox + Chrome */ 
  animation-timeline: view(); 
  /*animation-range: entry 0% exit 40%;*/

  /*animation-range: entry 0% cover 30%;*/



}


section.block.material .thumb1 img,
section.block.travaux .thumb1 img{
  /*position: relative;*/
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  opacity: 1;
}


  @keyframes thumbAppear {
    from {
      opacity: 0;
      /*transform: scale(0.79);*/
      transform: scale(0.79);
    }
    to {
      opacity: 1;
      /*transform: scale(1);*/
      transform: scale(1);
    }
  }



section.contact {
  max-width:880px; margin-left:auto; margin-right:auto;   text-align: center;
  padding: 20px 20px;
  /*height: auto;*/
  /*min-height: 376px;*/
  /*margin-top:70px; /* espace fixe avant le formulaire */
  padding-bottom: 7px;
  position: relative;
 /*will-change: transform, opacity; /* Prépare le GPU → plus de saut */
    /*transform: scale(0.1);*/
    animation: formanim ease-out 1s both;
    animation-timeline: view();
    animation-range: entry 20% cover 40%;
  background-color: #ff7b00;
  z-index: 1;
  /*content-visibility: auto;*//*provoquait arrivé ans footer un renvoi vers le haut
   à la banniere debut de la page*/
   display: block;
   /*padding-bottom: 100px;  */
   margin-bottom: 160px;
}


@keyframes formanim {
    from {
      opacity: 0;
      
    }
    to {
      opacity: 1;
     
    }
 }


  section.contact h2 {
    margin-bottom: 43px;      /* stabilise l’espace entre contact et footer */
  }



section.contact form {
  display: flex;
  flex-direction: column;
  gap: 15px;
  max-width: 700px; /* largeur max pour desktop */
  margin: auto;
  height: auto;
  padding: 25px;
  border: 2px solid #ff7b00;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.05); /* léger fond orange transparent */
  box-shadow: 0 0 15px rgba(255,123,0,0.15);
  /*padding-bottom: 16px;*/
}

section.contact input,
section.contact textarea {
  padding: 10px;
  font-size: 1rem;
  border-radius: 5px;
  border: 1px solid #ccc;
  width: 100%;
}

section.contact button {
  padding: 10px;
  background: #ffffff;
  border: none;
  color: #ff7b00;
  cursor: pointer;
  font-size: 1rem;
  font-weight: bold;
  border-radius: 6px;
  transition: background 0.3s ease, box-shadow 0.3s ease;
  padding-top: 16px;
  width: 200px;       /* largeur fixe */
  height: 50px;       /* hauteur fixe */
}

/*willchange: auto;*/

/* Hover brillant sur les champs */
section.contact input:hover,
section.contact textarea:hover,
section.contact input:focus,
section.contact textarea:focus {
  border-color: #ff7b00;
  box-shadow: 0 0 8px rgba(255,123,0,0.5);
  outline: none;
}


/* Hover bouton — effet brillant */
section.contact button:hover {
  background: #ffffff;
  box-shadow: 0 0 10px rgba(255,140,40,0.6);
}


/* --- Bloc principal footer --- */
footer {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  text-align: center;
  gap:250px;
  min-height: 250px; /* réserve un minimum */
  padding: 20px 20px;
  /*margin-top: 250px;*/
  background-color: #000000; 
  color: #ff7b00;
  font-weight: 200;
    }



footer > div {
  display: flex;
  flex-direction: column;
  align-items: center; 
  gap: 25px;           
  max-width: 260px;    
}

footer p {
 
  padding: 0;  
  margin: 0 0 8px 0;      /* idem */
  font-size: 0.95rem;

}


footer img {
  width: 43px;
  height: 43px;
  /*aspect-ratio: 1 / 1;*/
  object-fit: cover;   
  display: block;      
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}



/* ==========================================================
   ⚡ FIN SECTION 9 : FOOTER
========================================================== */


/****************************************************************
        RESPONSIVE WEBCONNECT
****************************************************************/

@media screen and (width: 375px) {
  body {
    margin: 0 auto;
    text-align: center;
  }


  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }


  section.banner {
    height: 320px;           
  }

  .banner-title {
    font-size: 2.2rem;       
    padding: 20px;
  }

  .slider-caption {
    font-size: 1.4rem;
  }
}


@media screen and (width: 414px) {
  body {
    margin: 0 auto;
    text-align: center;
  }

  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }


  section.banner {
    height: 330px;
  }

  .banner-title {
    font-size: 2.3rem;
    padding: 22px;
  }

  .slider-caption {
    font-size: 1.5rem;
  }
}

@media screen and (width: 390px) {
  body {
    margin: 0 auto;
    text-align: center;
  }

  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }


  section.banner {
    height: 325px;
  }

  .banner-title {
    font-size: 2.25rem;
    padding: 20px;
  }

  .slider-caption {
    font-size: 1.45rem;
  }
}

@media screen and (width: 430px) {
  body {
    margin: 0 auto;
    text-align: center;
  }


  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }



  section.banner {
    height: 340px;         
  }

  .banner-title {
    font-size: 2.4rem;
    padding: 24px;
  }

  .slider-caption {
    font-size: 1.6rem;
  }
}

@media screen and (width: 412px) {
  body {
    margin: 0 auto;
    text-align: center;
  }

  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }


  section.banner {
    height: 330px;
  }

  .banner-title {
    font-size: 2.3rem;
    padding: 22px;
  }

  .slider-caption {
    font-size: 1.5rem;
  }
}

@media screen and (width: 344px) {
  body {
    margin: 0 auto;
    text-align: left;
  }

  footer {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 15px;
    height: auto;
    padding: 20px;
  }



  section.banner {
    height: 300px;           /* plus compact, écran très étroit */
  }

  .banner-title {
    font-size: 2rem;
    padding: 16px;
  }

  .slider-caption {
    font-size: 1.3rem;
  }
}

@media screen and (max-width: 360px) {
  section.experience {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  section.experience .stats {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    height: auto;
    padding: 20px;
  }

  footer > div {
    margin: 0 auto;
    text-align: center;
  }
}
