:root {

    --noir: #000000;

    --cyan: #ce6d2d;

    --bleu: rgba(233, 213, 189, 0.5);

    --blanc: #E0E0E0;

}





body {

    font-family: "Plus Jakarta Sans";

}



body h1, h2, h3, h4 {

    font-family: Newsreader, sans-serif;

}



body p {

    font-size: 16px;

}







header{

    width:100%;

    position : fixed;

    z-index:10;

    background-color:white;

}



h4{

    font-size: 32px; 

    font-weight: bold; 

    margin-bottom: 15px; 

    text-align: left; 

}



#header img{

    border-radius:100px;

}



#header {

    display: flex;

    justify-content: space-between;

    padding: 10px;

    position: relative;

}



#MEQM {



    margin: 0 auto;

    padding-top: 100px;

    display: flex;

    flex-direction: column;



    position: relative;

}



#MEQM .ESP {

    position: absolute;

    bottom: 20px;

    right: 20px;

    display: flex;



    font-weight: bold;



    cursor: pointer;

}





#fiches {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 50px;

    padding: 40px 0;

    flex-wrap: nowrap;

}



.fiche {

    position: relative;



    overflow: hidden;

    border-radius: 10px;

    box-shadow: 0 4px 10px rgba(0,0,0,0.1);

}





.fiche img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    border-radius: 10px;

    filter: brightness(0.3);

}





.fiche h4 {

    position: absolute;

    top: 15px;

    left: 15px;

    color: white;

    font-size: 20px;

    font-weight: bold;



    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);

    margin: 0;

    z-index: 2;

}





.fiche p {

    position: absolute;

    bottom: 15px;

    left: 50%;

    top: 45%;

    transform: translateX(-50%);

    width: 90%;

    color: white;

    text-align: left;

    font-size: 14px;

    font-weight: normal;

    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);

    z-index: 2;

    margin: 0;

    line-height: 1.4;

}



/* === Effet hover sur les cartes .fiche === */



/* 1) On assure une transition douce sur l’image */

.fiche img {

  transition: filter 0.3s ease;

}



/* 2) Au survol de .fiche, on remet la luminosité normale */

.fiche:hover img {

  filter: brightness(1);

}



/* 3) On fait disparaître le titre et le paragraphe en douceur */

.fiche h4,

.fiche p {

  transition: opacity 0.3s ease;

}



/* 4) Au survol, on masque les textes */

.fiche:hover h4,

.fiche:hover p {

  opacity: 0;

}



section h3 {

    font-size: 40px;

    font-weight: bold;

}





#MA {

    max-width: 1440px;

    margin: 0 auto;



    display: flex;

    flex-direction: column;

    padding-bottom:30px;

    position: relative;



}



.bloc-bleu {

 position: relative;   

  left: 50%;  

  right: 50%;

  width: 99.5vw;   

  margin-left: -50vw; 

  margin-right: -50vw;

  box-sizing: border-box; 

  background-color: var(--bleu); 

  padding: 40px 20px;   

  overflow-x: hidden;

}





#texte2 {

 width: 100%;

    max-width: 100%;



    background-color: var(--bleu);

    padding: 30px;

    border-radius: 5px;

    margin-left: 0; /* corrige la dérive */

    position: relative;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    box-sizing: border-box;

}



#partie1 {

    display: flex;

    align-items: center;

    justify-content: flex-start;

    gap: 0;

}





#MA .ESP {

    position: absolute;

    right:20px;

    bottom: 20px;

    padding-top:20px;

}





#texte2 h4 {

    font-weight: bold;



}



.ESP {

    display: flex;

    justify-content: flex-end;

    align-items: center;

    gap: 10px;

    margin-top: auto;

    align-self: flex-end;

    cursor: pointer;

    font-weight: bold;



}



#PGauche {

    display: flex;

    align-items: flex-start;

    text-align: left;

}



#PGauche h3 {

    font-size: 18px;

    font-weight: normal;

}



#profil {

    width: 140px;

    height: 140px;

    border-radius: 50%;

    object-fit: cover;

    flex-shrink: 0;

    margin-right: 20px;

}



#Texte {

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    height: 100%;

}



#description{

    font-size:20px;

    font-weight:normal;

    padding-top:10px;

}



.SMIco {

    margin-right: 10px;

    width: 30px;

    height: 30px;

    margin: 5px 10px 5px 0;

   filter: invert(44%) sepia(52%) saturate(599%) hue-rotate(336deg) brightness(92%) contrast(87%);

}







#PDroite {

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    align-items: flex-start;

    text-align: right;

}



#adresse {

    margin: 0;

    font-style: normal;

}



#boutonrdv {

    display: inline-block;

    width: 190px;

    height: 40px;

    background-color: var(--cyan);

    color: white;

    text-align: center;

    line-height: 40px;

    font-size: 16px;

    font-weight: bold;

    text-decoration: none;

    transition: background-color 0.3s, color 0.3s;

    align-self: flex-end;

    border-radius: 20px;

}



#boutonrdv:hover {

    background-color: #ad533d;

}



#introduction {

    padding-bottom: 50px;;

    margin-bottom: 20px;

    position: relative;

}



#introduction h3 {



    text-align: left;

    font-size: 40px;

}



#partie1 {

    display: flex;

    align-items: center;

}





#texte {

    flex: 1;

}



#texte h3 {

    margin-top: 0;

    margin-bottom: 10px;

    font-size: 32px;

}



#texte p {

    line-height: 1.6;

    text-align: justify;

}



section p {

    font-weight: 400;

}



#Navbar {

    display: flex;

    justify-content: center;

    align-items: center;

    padding: 10px 0;

}



#Navbar nav ul {

    display: flex;

    gap: 30px;

    list-style: none;

    padding: 0;

    margin: 0;

}



#Navbar nav ul li a {

    text-decoration: none;

    font-weight: bold;

    color: var(--noir);

    transition: color 0.3s;

    font-size: 24px;

}



#Navbar nav ul li a:hover {

    color: var(--cyan);

}





footer {

    padding: 20px 150px;

    text-align: center;

    position: relative;

    background-color: var(--bleu);

    color: black;

}



footer div {

    display: flex;

    justify-content: center;

    align-items: center;

    gap: 10px;

    margin: 10px 0;

}



footer i {

    font-size: 16px;

}



footer p {

    margin: 5px 0;

    font-size: 14px;

    line-height: 1.5;

}





#photo1 {

    position: relative;

    z-index: 2;

}



#SMIcos{ 



    padding-top: 10px;

}















main {

    padding-top: 150px;

    width: 100%;

    max-width: 1440px;

    margin: 0 auto;

    padding-bottom: 100px;

}

















.ESP:hover {

  color: var(--cyan);

    transition: color 0.3s;

}









a {

  color: inherit;

  text-decoration: none;

}









#SMIcos{ 



    padding-top: 10px;

}













h4{

    margin-bottom:-10px;

}

























































/* ==== Responsive mobile ==== */

@media (max-width: 768px) {



#S1 {

    flex-direction: column;

  }



h3, #P1, img {

    flex: none;

    width: 100%;

  }



      main {

        padding-top: 50px;

    }



#SMIcos{ 



    padding-top: 30px;

}





}





h3{

    padding-bottom:15px;

}











































/* Media queries pour les écrans de largeur ≤ 768px */

@media (max-width: 768px) {

    #header {

        flex-direction: column; 

        align-items: center;

        padding: 10px;

        gap: 20px; 

    }



    #PGauche, #PDroite {

        width: 100%; 

        text-align: center; 

    }



    /* Texte centré dans l'adresse */

    #adresse {

        text-align: center; 

        margin-bottom: 10px; 

    }



    /* Bouton centré */

    #boutonrdv {

        display: block; 

        margin: 0 auto;





        font-size: 16px;

    }



    /* Image de profil réduite */

    #profil {

        width: 60px;

        height: 60px;

        margin-bottom: 10px; 

    }



    /* Réduction des tailles de texte */

    h1 {

        font-size: 24px;

    }



    h2 {

        font-size: 18px;

    }





    /* Balise #warning */

    #warningmessage {

        font-size: 16px; 

        padding: 10px; 

        flex-direction: column; 

        gap: 5px; 

    }



    /* Trait sous le header */

    header::after {

        width: 90%; 

        margin: 0 auto; 

    }



    /* Header général */

    #header {

        flex-direction: column; 

        padding: 10px; 

        gap: 10px; 

    }



    /* Ajustement global pour #PGauche et #PDroite */

    #PGauche, #PDroite {

        width: 100%; 

        text-align: center; 

    }



    #introduction {

        padding: 30px 50px;

    }

    

    #services {

        padding: 30px 50px;

    }

    

    #cabinet {

        padding: 30px 50px;

    }

    

    footer {

        padding: 20px 50px;

    }



    #header {

        flex-direction: column; 

        align-items: center;

        gap: 20px; 

    }





    #PGauche {

        text-align: center; 

    }



    #PDroite {

        text-align: center; 

        align-items: center; 

    }







    #adresse {

        margin-bottom: 10px;

    }











    main h3 {

        font-size: 30px; 

        text-align: center; 

        margin-bottom: 20px; 

    }







       header {

        position: static; 

        background-color: white; 

        z-index: 0;

    }



    #header {

        display: flex;

        flex-direction: column; 

        align-items: center;

        padding: 20px; 

        gap: 20px; 

    }



    #PGauche {

        display: flex;

        flex-direction: column; 

        align-items: center;

        text-align: center;

        gap: 10px; 

    }



    #PDroite {

        display: flex;

        flex-direction: column; 

        align-items: center; 

        text-align: center; 

        gap: 15px; 

        padding-top: 20px;

    }



    #adresse {

        margin: 0;

    }



    #boutonrdv {

        margin-top: 10px;

    }



    h1 {

        font-size: 26px; 

    }



    h2 {

        font-size: 24px;

    }



  



    

    h4 {

        font-size: 20px; 

        text-align: left;



    }



    /* Header */

    #header img {

        margin: 0 auto;

    }



    #PGauche {

        align-items: center; 

        padding: 0;

    }





}





@media (max-width: 500px) {

    #warning {

        font-size: 16px;

    }

}







@media (max-width: 480px) {

    #header {

        padding: 5px;

    }



    #profil {

        width: 60px;

        height: 60px;

    }



    h1 {

        font-size: 20px;

    }



    h2 {

        font-size: 16px;

    }



    #introduction {

        padding: 30px 20px;

    }

    

    #services {

        padding: 30px 20px;

    }

    

    #cabinet {

        padding: 30px 20px;

    }

    

    footer {

        padding: 20px 20px;

    }

}







@media screen and (max-width: 320px) {



    body {

        font-size: 14px; 

    }



    header {

        flex-direction: column;

        align-items: center;

    }



    #warning {

        font-size: 18px; 

        padding: 5px 10px;

    }



    #introduction {

        padding: 20px; 

    }



    #contenu {

        flex-direction: column; 

        gap: 5px; 

    }



    #contenu img {

        width: 100%; 

        height: auto;

    }



    #services {

        padding: 20px;

    }



    #grid-services {

        grid-template-columns: 1fr; 

        gap: 15px;

    }



    #cabinet {

        padding: 20px;

    }



    #contenu2 {

        grid-template-columns: 1fr;

        gap: 15px;

    }



    /* Footer */

    footer {

        padding: 15px;

    }



    footer p {

        font-size: 12px;

}



}







/* Taille ajustée pour les écrans entre 1920px et 1200px */

@media (max-width: 2560px) and (min-width: 1201px) {

    h4 {

        font-size: 28px; 



}



/* Taille ajustée pour les écrans entre 1200px et 768px */

@media (max-width: 1200px) and (min-width: 769px) {

    h4 {

        font-size: 24px;

        margin-bottom: 10px;

    }



    main{

        padding-top:50px;

    }



}



}





















































@media (max-width: 1500px) and (min-width: 769px) {

  section#S2 {

    display: flex;

    flex-direction: column;      /* empile P3 puis l’image */

    padding: 0 20px;             /* même padding que page 5 */

    box-sizing: border-box;

  }

  /* Texte en full width, ancré à gauche */

  section#S2 > #P3 {

    width: 100%;

    margin: 0;

    text-align: left;

  }

  /* Image à sa taille « naturelle » et centrée */

  section#S2 > img {

    flex: none;

    width: auto;                 /* conserve sa largeur initiale */

    max-width: none;

    align-self: center;

    margin: 1rem 0 0;            /* espace au-dessus */

  }

}



/* = Responsive S2 : mobile (<769px) = */

@media (max-width: 768px) {

  section#S2 {

    padding: 0 20px;             /* toujours 20px de chaque côté */

  }

  section#S2 > #P3,

  section#S2 > img {

    width: 100%;                 /* texte et image full-width */

    margin: 0;

  }

  /* Si l’image est plus large que l’écran, on la fait rentrer */

  section#S2 > img {

    max-width: 100%;

    height: auto;

    margin-top: 1rem;

  }

}

















/* 1) Cacher le bouton et laisser la nav visible par défaut */

#hamburger {

  display: none;

}



/* 2) À partir de 1200px et en dessous : basculer la nav en menu mobile */

@media (max-width: 1200px) {

  /* masquer la nav classique */

  #Navbar {

    display: none;

  }

  /* afficher le bouton hamburger */

  #hamburger {

    display: flex;

    flex-direction: column;

    justify-content: space-around;

    width: 32px;

    height: 32px;

    background: none;

    border: none;

    cursor: pointer;

    margin-left: auto;    /* ancré à droite */

    padding: 0;

    z-index: 10;

  }

  #hamburger span {

    display: block;

    width: 100%;

    height: 4px;

    background: var(--noir);

    border-radius: 2px;

    transition: transform 0.3s ease, opacity 0.3s ease;

  }



  /* 3) menu déroulant */

  #Navbar.open {

    display: block;

    position: absolute;

    top: 100%;             /* juste sous le header */

    right: 0;

    background: white;

    box-shadow: 0 4px 8px rgba(0,0,0,0.1);

    border-radius: 4px;

    overflow: hidden;

  }

  #Navbar.open ul {

    display: flex;

    flex-direction: column;

  }

  #Navbar.open ul li {

    margin: 0;

  }

  #Navbar.open ul li a {

    display: block;

    padding: 12px 20px;

  }

}



/* 4) jusqu’à 320px on adapte le padding et la taille de police */

@media (max-width: 500px) {

  #Navbar.open ul li a {

    padding: 10px 16px;

    font-size: 0.9rem;

  }

}



















/* === Menu plein écran === */

@media (max-width: 1200px) {

  /* bouton hamburger toujours en haut à droite */

  #hamburger {

    position: fixed;

    top: 20px;

    right: 20px;

    z-index: 200;

  }



  /* nav cachée par défaut */

  #Navbar {

    display: none;

  }



  /* nav quand ouverte : full-screen */

  #Navbar.open {

    display: flex;

    flex-direction: column;

    justify-content: center;   /* centre verticalement les items */

    align-items: center;       /* centre horizontalement */

    position: fixed;

    top: 0;

    left: 0;

    width: 100vw;

    height: 100vh;

    background-color: white;

    z-index: 100;

    padding: 0;

    margin: 0;

  }



  /* items du menu en grand */

  #Navbar.open ul {

    list-style: none;

    padding: 0;

    margin: 0;

  }

  #Navbar.open ul li {

    margin: 1rem 0;

  }

  #Navbar.open ul li a {

    font-size: 1.5rem;

    text-decoration: none;

    color: var(--noir);

  }





  #hamburger.active span:nth-child(1) {

    transform: translateY(10px) rotate(45deg);

  }

  #hamburger.active span:nth-child(2) {

    opacity: 0;

  }

  #hamburger.active span:nth-child(3) {

    transform: translateY(-10px) rotate(-45deg);

  }



  /* styliser les barres du hamburger / croix */

  #hamburger span {

    display: block;

    width: 30px;

    height: 4px;

    margin: 5px 0;

    background: var(--noir);

    border-radius: 2px;

    transition: transform 0.3s ease, opacity 0.3s ease;

  }



  

}







@media (min-width: 768px) and (max-width: 1200px) {

  /* — Header reste en row, PGauche à gauche, PDroite à droite — */

  #header {

    display: flex;

    justify-content: space-between;

    /* align-items reste stretch (par défaut) */

  }



  /* — Bloc adresse + bouton — */

  #PDroite {

    display: flex;

    flex-direction: column;

    justify-content: flex-start;  /* on colle les items en haut du conteneur */

    align-items: flex-end;        /* on les aligne à droite */

    gap: 10px;                    /* 10 px entre mail/numéro et bouton */

    align-self: flex-end;         /* on pousse tout le bloc PDroite en bas du header */

  }





}





































/* — À partir de 1500px de large et en dessous : empile le texte puis l’image — */

@media (max-width: 1500px) {

  section#S1 {

    flex-direction: column;  /* texte au-dessus, image en dessous */

  }

  section#S1 > h3,

  section#S1 > #P1,

  section#S1 > img {

    flex: none;              /* annule tout flex précédent */

    width: 100%;             /* chaque bloc prend toute la largeur */

  }

  section#S1 > img {

    margin-top: 20px;        /* espace entre le texte et l’image */

  }

}



/* — Pour les tout petits écrans (≤ 320px) : padding pour éviter le collage aux bords — */

@media (max-width: 320px) {

  section#S1 {

    padding: 0 20px;         /* 20px à gauche et à droite */

  }

}



/* — Empilement texte/image dès ≤1500px et plein écran pour l’image — */

@media (max-width: 1500px) {

  section#S1 {

    display: flex;

    flex-direction: column;

    padding: 0 20px;           /* on place déjà le padding ici */

    box-sizing: border-box;

  }



  /* Titre et texte */

  section#S1 > h3, #S1 h4,

  section#S1 > #P1 {

    flex: none;

    width: 100%;

    text-align: left;          /* ancrage du texte à gauche */

    margin: 0 0 1rem;

  }



  /* Image plein width */

  section#S1 > img {

    flex: none;

    width: 100%;

    max-width: 100%;

    height: auto;

    margin: 0;                 /* supprime le margin-top précédent */

  }

}



/* — Pour les très petits écrans ≤320px : on conserve le padding latéral — */

@media (max-width: 320px) {

  section#S1 {

    padding: 0 20px;           /* même padding que pour ≤1500px */

  }

}

































































/* — Pour les très petits écrans ≤320px : on conserve le padding latéral — */

@media (max-width: 320px) {

  section#S1 {

    padding: 0 20px;           /* même padding que pour ≤1500px */

  }

}





@media (max-width: 768px) {



  /* Cible les paragraphes juste après ces h4 */

  section#S1 #P1 p {

    margin-top: 0.5rem;     /* réduit l’espace au-dessus du paragraphe */

  }

}







@media (max-width: 768px) {

  /* Empilement vertical de P1 et P2 dans S1 */

  section#S1 #S1main {

    display: flex;

    flex-direction: column;

  }



  /* Chaque bloc prend 100% de la largeur et gagne un petit margin-bottom */

  section#S1 #S1main > #P1,

  section#S1 #S1main > #P2 {

    flex: none;

    width: 100%;

    margin-bottom: 1rem;

  }

  #P2 h4{

    padding-top:20px;

  }

}



section#S2 > h3 {

  text-align: left;

  width: 100%;       /* pour s’assurer qu’il occupe toute la ligne */

  margin: 0 0 1rem;  /* ajuste l’espacement sous le titre si besoin */

}





main h2, h3, h4 {

  text-align: left;

}



section#S1 h3,

section#S3 h3,

#texte h3,

#fiches h3 {

  text-align: left !important;



}



@media (max-width: 1500px) {

  /* sur toutes les zones de contenu principales */



#S3 {

    padding: 0 20px;



  }

}











#S1 > img#MAMain {

  flex: 0 1 40%; /* jusqu’à 40% de la largeur, mais jamais plus */

}





#S1 img#MAMain {

  width: 100%;       /* permet de rapetisser sous toute largeur de conteneur */

  max-width: 800px;  /* ne dépasse jamais 800px, remplace par la largeur native exacte */

  height: auto;      /* conserve le ratio */

}













/* — À partir de 1100px : fiches en colonne verticale, centrées — */

@media (max-width: 1100px) {

  /* Conteneur passe en colonne et centre ses items */

  #S2 #fiches {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 20px;

  }



  /* Chaque fiche prend toute la largeur disponible (ou une max-width si tu veux) */

  #S2 #fiches .fiche {

    flex: none;

    width: 100%;

    max-width: 400px;  /* optionnel – ajuste selon ton design */

  }

}





/*= Responsive fiches verticales sous 1100px et taille naturelle =*/

@media (max-width: 1100px) {

  /* Empilement vertical et centrage du conteneur */

  #S2 #fiches {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 20px;

  }



  /* Chaque fiche conserve sa taille native et est centrée */

  #S2 #fiches .fiche {

    flex: none;

    width: auto;

    max-width: none;

    margin: 0 auto;

  }

}



@media (max-width: 480px) {

#S2 .fiche p {



  top: 35%;



}



}









@media (max-width: 1500px) {

  /* Empilement : image au-dessus, texte en dessous */

  #S3 {

    display: flex;

    flex-direction: column;

    align-items: center;  /* centre horizontalement */

  }

  /* On force l’ordre si besoin */

  #S3 img#MAMain2 {

    order: 1;

  }

  #S3 #S3Texte {

    order: 2;

  }



  #S3 #Pintro {

    margin-top: -20px;

  }

}





@media (max-width: 768px) {



  #S3 #Pintro {

    margin-top: -50px;

  }

  

  main{

    padding-top:0px;

  }

}





@media (max-width: 768px) {



  #S3 #Pintro {

    margin-top: -50px;

  }







#texte2 {



    margin-left: 0px;



}



}





@media (max-width: 1440px) {

  #partie1 {

    flex-direction: column;

    align-items: center;

    gap: 30px;

  }



  #photo1 {

    width: 50%;

    height: auto;

    display: block;

    margin: 0 auto;

  }

}



@media (max-width: 1440px) {

  #texte2 {

    width: 100%;

    max-width: 100%;

    padding: 30px 20px;

  }

}





@media (max-width: 1500px) {

  section#S2 {

    padding: 0 20px;

    box-sizing: border-box;

  }

}