: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: 20px; 

    font-weight: bold; 



    text-align: left; 

}



#header img{

    border-radius:100px;

}



#header {

    display: flex;

    justify-content: space-between;

    padding: 10px;

    position: relative;

}







section h3 {

    font-size: 40px;

    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;

}



#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 ;

}



#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;

}











a {

  color: inherit;

  text-decoration: none;

}













u:hover {

    color: #ad533d;

    transition: color 0.3s;

}

































main {

    padding-top: 250px;

    width: 100%;

    max-width: 1440px;

    margin: 0 auto;

    padding-bottom: 100px;

}





#S1 img {

  align-self: center;

  border-radius:5px;

}

















#S1 {

  display: flex;           

  flex-wrap: wrap;

  align-items: flex-start;



}



#S1 > h3 {

  flex-basis: 100%;

  margin: 0 0 1rem;

}





#S1 #P1 {

  flex: 1 1;

  box-sizing: border-box;

}



#S1 img {

  flex: 0 0 50%;

  max-width: 50%;

  height: auto;

}





























section#S1 #P1 h4 {

    margin-bottom: -10px;  /* réduit l’espace sous le titre */

  }





























/* ==== 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: center;



    }



    /* 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;

    }



}



}













































































/* 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);

  }



  /* transforme le hamburger en croix */

  #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 */

  }



    main {

        padding-top: 200px;

    }



}





































/* — À 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 tes h4 dans la section Contact */

  section#S1 #P1 h4 {

    margin-bottom: -10px;  /* réduit l’espace sous le titre */

  }

  /* Cible les paragraphes juste après ces h4 */

  section#S1 #P1 p {

    margin-top: 0.5rem;     /* réduit l’espace au-dessus du paragraphe */

  }

}