/* Styles pour un thème sombre avec effets de lumière */

body {
    font-family: sans-serif;
    margin: 0;
    line-height: 1.6;
    color: #bbb; /* Texte clair par défaut */
    background-color: #1a1a1a; /* Fond très sombre */
    overflow-x: hidden;  /*Empêcher le défilement horizontal si des animations le causaient */
}

.container {
    width: 90%;
    max-width: 1000px; /* Largeur max du contenu principal */
    margin: 0 auto;
    padding: 20px 0;
}

.header-burger, #toggle {
    display: none; /* Cacher le menu burger par défaut */
    cursor: pointer;
    font-size: 1.5em;
    color: #bbb; /* Couleur claire pour le menu burger */
}
header {
    background: #222; /* Fond sombre pour l'en-tête */
    padding: 10px 0;
    border-bottom: 1px solid #333; /* Ligne sombre */
    box-shadow: 0 2px 5px rgba(0,0,0,0.3); /* Ombre un peu plus visible sur fond sombre */
    position: sticky;
    top: 0;
    z-index: 1000;
}

header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}


/* Style du conteneur du logo et du texte */
.logo-responsives {
    display: none;
}

.logo {
    font-size: 1.5em;
    font-weight: bold;
    color: #eee; /* Couleur du texte "France Web Service" */
    text-decoration: none;
    /* AJOUTS pour aligner le logo image et le texte */
    display: flex; 
    align-items: center; /* Centre verticalement les éléments enfants (img et texte) */
}

/* Style spécifique de l'image du logo à l'intérieur de .logo */
.logo img {
    height: 32px; /* Hauteur du logo (ajustez cette valeur si besoin) */
    width: auto; /* Laisser la largeur s'adapter proportionnellement à la hauteur */
    margin-right: 15px; /* Crée un espace de 10px à droite de l'image pour séparer le logo du texte */
    /* Optionnel: filtres pour adapter un logo coloré/sombre à votre thème sombre si nécessaire */
    filter: invert(1) grayscale(100%);
}

nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

nav li {
    margin-left: 20px;
}

nav a {
    text-decoration: none;
    color: #bbb; /* Liens clairs */
    font-weight: bold;
    padding: 5px 0;
    transition: color 0.3s ease;
}

nav a:hover {
    color: #00bfff; /* Couleur d'accent clair au survol (peut être adaptée) */
}

.cta-button {
    display: inline-block;
    background: #007bff; /* Gardons les couleurs vives pour les boutons */
    color: white; /* Texte blanc sur les boutons */
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
    border: none;
    cursor: pointer;
    font-size: 1em;
}

.cta-button:hover {
    background: #0056b3;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.4); /* Ombre sombre pour le relief */
    transform: translateY(-3px);
}

.cta-button.primary {
    background: #28a745;
}

.cta-button.primary:hover {
     background: #218838;
     box-shadow: 0 6px 15px rgba(0, 0, 0, 0.4);
     transform: translateY(-3px);
}


/* Animation pour le glow */
@keyframes pulsing-glow {
    0%, 100% {
        box-shadow: 0 0 45px rgba(255, 255, 255, 0.3); /* Lumière blanche discrète */
    }
    50% {
        box-shadow: 0 0 60px rgba(255, 255, 255, 0.5); /* Lumière blanche légèrement plus intense et plus floue */
    }
}


/* Style des sections */
section {
    padding: 80px 0;
    text-align: center;
}

/* haut | droit | bas | gauche */
#hero {
    background-color: #2a2a2a; /* Fond sombre du cadre */
    padding: 100px 0;
    display: flex;
    flex-direction: column;
    /* align-items: center; */
    /* justify-content: center; */
    min-height: 40vh;
    max-width: 80%;
    margin: 50px auto auto auto;
    border-radius: 10px;
    overflow: hidden;
    position: relative; /* Permet de positionner la pseudo-classe absolument à l'intérieur */
    animation: pulsing-glow 3s infinite alternate ease-in-out;
    transition: box-shadow 0.3s ease, transform 0.3s ease; /* Retire 'opacity' de la transition */
    will-change: box-shadow, transform; /* Retire 'opacity' de will-change */
}

/* Pseudo-élément pour l'image de fond dans #hero */
#hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('/static/img/img1.jpeg'); /* REMPLACEZ par le chemin de votre image */
    background-size: cover; /* Ou 'contain', '50% auto', etc. */
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.17; /* AJUSTEZ CETTE VALEUR pour contrôler la transparence de l'image (0 = transparent, 1 = opaque) */
    z-index: 1; /* S'assure qu'il est sous le contenu */
    pointer-events: none; /* Permet de cliquer à travers la pseudo-classe */
}


/* Effet de lumière/glow au survol du cadre hero */
#hero:hover {
     box-shadow: 0 0 80px rgba(0, 191, 255, 1);
     animation: none;
     transform: translateY(-5px);
}


#hero h1 {
    margin-top: 0;
    margin-bottom: 15px;
    font-size: 2.5em;
    color: #eee;
    /* max-width: 800px; */
    padding: 0 20px;
    position: relative; /* Nécessaire pour assurer z-index fonctionne */
    z-index: 2; /* Place le titre au-dessus de la pseudo-classe */
}

#hero p {
    font-size: 1.2em;
    color: #bbb;
    margin-bottom: 30px;
    /* max-width: 800px; */
    padding: 0 20px;
    position: relative; /* Nécessaire pour assurer z-index fonctionne */
    z-index: 2; /* Place le paragraphe au-dessus de la pseudo-classe */
}

/* Le bouton CTA dans #hero doit aussi être au-dessus */
#hero .cta-button {
    margin-top: 20px;
    position: relative; /* Nécessaire pour assurer z-index fonctionne */
    z-index: 2; /* Place le bouton au-dessus de la pseudo-classe */
}


#about {
    background: #1a1a1a;
}

#about h2,
#services h2,
#technologies h2,
#projects h2,
#testimonials h2,
#contact h2 {
    color: #00bfff;
    margin-bottom: 40px;
    font-size: 2em;
}


#about .container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#about p {
    max-width: 800px;
    margin-bottom: 20px;
    color: #bbb;
}

#services {
    background: #2a2a2a;
}

.services-grid, .projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 30px;
    margin-top: 30px;
    text-align: center;
}


.service-item, .project-item, .testimonial-item {
     background: #222;
     padding: 30px;
     border-radius: 10px;
     overflow: hidden;
     text-align: left;
     transition: box-shadow 0.3s ease, transform 0.3s ease;
     will-change: box-shadow, transform;
}

.service-item, .project-item {
     animation: pulsing-glow 3s infinite alternate ease-in-out;
}

.service-item:hover, .project-item:hover {
    box-shadow: 0 0 60px rgba(0, 191, 255, 0.9);
    transform: translateY(-10px);
    animation: none;
}

.testimonial-item {
     border-left: 5px solid #00bfff;
    box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);
}


.service-item h3, .project-item h3, .testimonial-item h3 {
    margin-top: 0;
    color: #eee;
    margin-bottom: 15px;
}
.service-item p, .project-item p, .testimonial-item p {
    color: #bbb;
}


.project-item a {
    display: inline-block;
    margin-top: 15px;
    /* color: #00bfff; */
    color: #d9d7d7;
    text-decoration: none;
    /* font-weight: bold; */
}

.project-item a:hover {
    text-decoration: underline;
}
.project-item-agenda  {
    margin-top: 20px;
}

#technologies {
    background: #1a1a1a;
}

.tech-list { /* Ancien conteneur span, stylé comme avant si vous ne changez pas le HTML */
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

/* Nouveau conteneur pour la grille des items techniques */
.tech-items-grid { /* Nouveau conteneur pour les items logo+nom */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); /* Items plus petits ici */
    gap: 20px;
    margin-top: 30px;
    justify-items: center;
}

/* Style de chaque item technologie (le cadre logo + nom) */
.tech-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 10px;
}

/* Style du logo */
.tech-item img {
    width: 50px;
    height: 50px;
    object-fit: contain;
    margin-top: 10px;
    margin-bottom: 8px;
    /* filter: grayscale(100%) invert(100%); Adaptez si vos logos sont déjà clairs */
}

/* Style du nom de la technologie */
.tech-item span {
    font-size: 0.9em;
    color: #eee;
    font-weight: bold;
}


.placeholder-tech-logos { /* Ancien placeholder, gardé si vous n'avez pas encore modifié le HTML */
     margin-top: 20px;
    font-style: italic;
    color: #888;
}


#projects {
     background: #2a2a2a;
}


#testimonials {
     background: #1a1a1a;
     padding: 60px 0;
}


.testimonial-item .client-name { /* Si vous gardez le nom du client dans le HTML */
    font-weight: bold;
    font-style: normal;
    color: #eee;
}


#contact {
     background: #2a2a2a;
}
.contact-message {
    color: #1dde4a; 
    font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
    font-size: 22px;
    /* text-decoration: underline; */
    margin-bottom: 45px;
}

#contact form {
    max-width: 600px;
    margin: 40px auto 0;
    display: grid;
    gap: 20px;
    text-align: left;
    padding: 20px;
    border: 1px solid #333;
    border-radius: 8px;
    background-color: #1a1a1a;
    overflow: hidden;

    animation: pulsing-glow 3s infinite alternate ease-in-out;
    transition: box-shadow 0.3s ease;
    will-change: box-shadow;
}

#contact form:hover {
    box-shadow: 0 0 60px rgba(0, 191, 255, 0.9);
    animation: none;
}


#contact form label {
    color: #eee;
}

#contact form input,
#contact form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #555;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 1em;
    background-color: #333;
    color: #eee;
}

#contact form textarea {
    resize: vertical;
}

#contact form button {
     width: auto;
     padding: 12px 40px;
     cursor: pointer;
     text-align: center;
     justify-self: center;
     font-size: 1.1em;
}


footer {
    flex-shrink: 0;
    background: #0d0d0d;
    color: #aaa;
    padding: 40px 0;
    text-align: center;
    font-size: 0.9em;
}

footer a {
    color: #888;
    text-decoration: none;
    margin: 0 10px;
    transition: color 0.3s ease;
}

footer a:hover {
    color: #bbb;
    text-decoration: underline;
}
.pied {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    padding: 20px 10px 25px 15px;
    text-align: left;
    /* color: rgb(221, 221, 246); */
    /* background-color: rgb(2, 54, 82); */
    /* background-color: #0d0d0d; */
}
.pied-catapulte-grid {
    margin-top: 10px;
    display: grid;
    grid-template-columns: 60px 260px;
    align-items: center;
    font-style: italic;
}
.pied-catapulte-lien {
    margin-left: 15px;
    margin-top: 10px;
}
.pied-catapulte-lien > a {
    text-decoration: none;
    color: rgb(221, 221, 246);
    border-bottom: solid 1px rgba(221, 221, 246, 0.652);
}


.social-icons {
    margin-top: 20px;
}

.social-icons a {
     margin: 0 8px;
     display: inline-block;
     font-size: 1.2em;
     color: #aaa;
     transition: color 0.3s ease;
}
.social-icons a:hover {
    color: #eee;
}


/* Styles pour les placeholders 
.placeholder-img {
    width: 100%;
    max-width: 400px;
    height: 200px;
    background: #333;
    margin: 30px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
    font-style: italic;
    border-radius: 8px;
}
*/
.placeholder-img img {
    width: 520px;
    height: 330px;
    border-radius: 8px;
    opacity: 0.4;
    /* box-shadow: 10px 10px 10px rgba(174, 174, 174, 0.62); */
}

/* Media Query basique pour mobile */
@media (max-width: 768px) {
     header .container {
        display: none;         
    }
    
    .header-burger {
        width: 30px;
        display: flex;
        /* position: fixed; */
        justify-content: center;
        align-items: center;
        margin: 0 auto;
        font-size: 40px;
        color: white;
        cursor: pointer;
    }
    

    #toggle:checked + .container {
        display: flex; 
        flex-direction: column;
        text-align: center;
    }

    .logo {
        display: none;
        
    }

    .logo-responsives {
        font-size: 1.0em;
        font-weight: 100;
        /* AJOUTS pour aligner le logo image et le texte */
        display: flex; 
        align-items: center; /* Centre verticalement les éléments enfants (img et texte) */
        justify-content: space-around;
    }

    nav ul {
        flex-direction: column;
        margin-top: 10px;
    }

    nav li {
        margin: 5px 0;
    }

    nav a {
        padding: 8px 0;
    }

    .cta-button {
        margin-top: 15px;
    }

    #hero {
        padding: 80px 0;
        min-height: 40vh;
        max-width: 95%; /* Ajusté pour mobile */
        margin: 15px auto 40px auto; /* Ajusté pour mobile */
    }

     #hero h1 {
        font-size: 1.8em;
        padding: 0 10px;
     }

    #hero p {
        font-size: 1em;
         padding: 0 10px;
    }

    section {
        padding: 60px 0;
    }

    #about h2,
    #services h2,
    #technologies h2,
    #projects h2,
    #testimonials h2,
    #contact h2 {
        margin-bottom: 30px;
        font-size: 1.8em;
    }

    .services-grid, .projects-grid {
        grid-template-columns: 1fr; /* Une seule colonne sur mobile */
        gap: 20px;
    }

    .service-item, .project-item, .testimonial-item {
         padding: 20px;
    }

     .testimonial-item {
         margin: 20px auto;
         padding: 20px;
     }


    #contact form {
         padding: 15px;
         margin: 30px auto 0;
    }

    #contact form input,
    #contact form textarea {
         padding: 10px;
         font-size: 0.9em;
    }

     #contact form button {
         padding: 10px 30px;
         font-size: 1em;
     }

    footer {
        padding: 30px 0;
    }
}


/* ------------------ page Mentions légales Mention.html ------------------------- */
.mention-container {
  padding-top: 60px;
  width: 100%;
  min-height: 100vh;
  height: 100%;
  /* color: #000; */
  color: white;
  background-color: rgb(10, 10, 10);
  /* border: 5px solid rgb(243, 5, 36); */
}
.mention-head {
  margin-top: 5%;
  margin-left: auto;
  margin-right: auto;
  color : rgb(183, 187, 187);
  width: 70%;
  display: flex;
  flex-wrap: wrap;
  justify-content:space-between;
  /* border: 1px solid #daedf5; */
}
.mention-image {
  border: none;
  border-radius: 10px;
}
@media screen and (max-width: 800px) {
  .mention-image {
    width: 98%;
  }
}
.mention-head-text {
  max-width: 600px;
  font-size: 1.3em;
}
.mention-text {
  text-align: justify;
}
.mention-text > a {
  /* text-decoration: none; */
  color: white;
}

.mention-content {
  margin-top: 5%;
  margin-bottom: 5%;
  margin-left: auto;
  margin-right: auto;
  width: 70%;  
}
.mention-titre {
  font-size: 1.2em;
  border-bottom: 1px solid #7d7f80a1;
  padding : 20px;
  color : rgb(6, 219, 209);
}
.mention-lien > a {
  color: white;
}
.mention-titre-02 {
  font-size: 1.1em;
  color : rgb(247, 245, 134);
}
.bt-demo {
/* width: 360px; */
/* width: 50%; */
text-decoration: none;
/* haut | droit | bas | gauche */
padding: 12px 20px 12px 20px;
color: white;
text-align: center;
border-radius: 10px;
/* font-size: 1.3em; */
font-size: 15px;
font: Helvetica, 'Comic Sans MS', Arial, sans-serif;
box-shadow: inset 0px 2px 2px 0px rgba(255, 255, 255, 0.17);
border: 1px solid #daedf5;
background: linear-gradient(rgb(61, 119, 245), rgb(5, 61, 243));
cursor: pointer;
}
.mention-bt-content {
text-align: center;
margin-bottom: 40px;
}
.bt-demo-space {
margin-left: 40px;
}