/*
 Theme Name:   Twentytwenty Child
 Theme URI:    http://www.studiopm.fr/
 Description:  Twentytwenty Child Theme
 Author:       PML
 Author URI:   http://www.studiopm.fr/
 Template:     twentytwenty 
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  twentytwenty-child
*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

.site-description {
    display:none !important;
}

p,
.titrepraticiens li{
    font-family: "Montserrat", sans-serif !important;
    color: #000000 !important;
    font-size:14px; 
}

.titrepraticiens a {
    color: #000000!important;
    font-weight: bolder;
    text-decoration: none;
}

.header-navigation-wrapper li a {
font-family: "Montserrat", sans-serif !important;
color: #000000 !important;
text-transform: lowercase !important;
font-size:16px !important;
}
.header-navigation-wrapper li a:active,
.header-navigation-wrapper li a:hover {
   text-decoration:none !important;
    }

    .primary-menu li.current-menu-item > a, .primary-menu li.current-menu-item > .link-icon-wrapper > a {
        text-decoration: none !important;
    }

    .primary-menu .icon::before,
    .primary-menu .icon::after {
        color:#000000 !important;
    }

    .post-53 .entry-header,
    .post-55 .entry-header,
    .post-57 .entry-header,
    .post-63 .entry-header,
    .post-65 .entry-header,
    .post-67 .entry-header,
    .post-607 .entry-header,
    .post-612 .entry-header,
    .post-669 .entry-header,
    .post-692 .entry-header,
    .post-688 .entry-header,
    .post-683 .entry-header,
    .post-673 .entry-header,
    .post-679 .entry-header,
    .post-681 .entry-header {
        display:none !important;
        height:0px;
        margin:0px;
    }

/* ----- Top-level seulement ----- */
.primary-menu > li > a {
    position: relative;
    display: inline-block;
    padding: 10px 0;
    text-decoration: none;
    color: inherit;
  }
  
  /* Traits (uniquement 1er niveau) */
  .primary-menu > li > a::before,
  .primary-menu > li > a::after {
    content: "";
    position: absolute;
    height: 4px;
    background: linear-gradient(to right, #8abfb8, #619990);
    width: 0; /* départ invisible */
    transition: width 0.35s ease;
  }
  
  /* Haut (arrive par la gauche) */
  .primary-menu > li > a::before {
    top: 0;
    left: 0;
    transform-origin: left;
  }
  
  /* Bas (arrive par la droite) */
  .primary-menu > li > a::after {
    bottom: 0;
    right: 0;
    transform-origin: right;
  }
  
  /* --- Animation uniquement au hover + focus-visible (clavier) --- */
  .primary-menu > li > a:hover::before,
  .primary-menu > li > a:hover::after,
  .primary-menu > li > a:focus-visible::before,
  .primary-menu > li > a:focus-visible::after {
    width: 60%;
  }
  
  /* (optionnel) léger décalage pour le trait du bas */
  .primary-menu > li > a:hover::after,
  .primary-menu > li > a:focus-visible::after {
    transition-delay: 60ms;
  }
  
  /* ----- Sécurité : ne rien appliquer dans les sous-menus ----- */
  .primary-menu .sub-menu a::before,
  .primary-menu .sub-menu a::after {
    content: none !important;
    width: 0 !important;
    height: 0 !important;
  }
  

  .sub-menu li a {
    color:#ffffff !important;
  }

  .primary-menu .sub-menu a {
    font-family: "Montserrat", sans-serif !important;
    text-transform: lowercase !important;
    font-size:16px !important;
  }

  /* Style de base du sous-menu */
.primary-menu .sub-menu a {
    position: relative !important;
    display: inline-block !important;
    padding-bottom: 10px !important; /* espace pour le soulignement */
    text-decoration: none !important;
    color: inherit !important;
    text-align: center !important;
  }
  
  /* Soulignement animé partant du centre */
  .primary-menu .sub-menu a::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important; /* point de départ : centre */
    width: 0 !important;
    height: 3px !important; /* épaisseur du soulignement */
    background-color: #619990 !important; /* vert charte */
    transform: translateX(-50%) !important;
    transition: width 0.3s ease !important;
  }
  
  /* Survol : expansion vers l'extérieur */
  .primary-menu .sub-menu a:hover::after {
    width: 40% !important; 
  }
  
  /* Effet venant de la gauche */
.slide-in-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  
  .slide-in-left.visible {
    opacity: 1;
    transform: translateX(0);
  }
  
  /* Effet venant de la droite */
  .slide-in-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  
  .slide-in-right.visible {
    opacity: 1;
    transform: translateX(0);
  }
  
  .slide-in-left.visible,
.slide-in-right.visible {
  transition-delay: 0.2s;
}

#footerperso a,
#footerperso p{
    font-family: "Montserrat", sans-serif !important;
color: #000000 ;
font-size:14px;
text-decoration: none;
}

#site-footer a,
#site-footer p {
    font-family: "Montserrat", sans-serif !important;
color: #000000 ;
font-size:14px;
}


/* ===== Grand Titre avec animation ===== */
.grandtitre {
    position: relative;
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: clamp(2.6rem, 3.2vw + 1rem, 5rem);
    line-height: 1.15;
    text-align: center;
    padding: 5% 0; /* espace pour les traits */
    color: #000;
  
    /* État initial (avant scroll) */
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.9s ease, transform 0.9s ease;
  }

  .grandtitre h1 {
    letter-spacing:0.07em !important;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
  }
  
  /* Traits */
  .grandtitre::before,
  .grandtitre::after {
    content: "";
    position: absolute;
    height: 20px; /* épaisseur du trait */
    background: linear-gradient(to right, #8abfb8, #619990);
    width: 0; /* départ invisible */
    transition: width 0.9s ease;
  }
  
  /* Trait du haut : 60%, aligné à droite */
  .grandtitre::before {
    top: 0;
    right: 0;
    transform-origin: right;
  }
  
  /* Trait du bas : 60%, aligné à gauche */
  .grandtitre::after {
    bottom: 0;
    left: 0;
    transform-origin: left;
  }
  
  /* État révélé */
  .grandtitre.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  
  .grandtitre.is-visible::before,
  .grandtitre.is-visible::after {
    width: 60%; /* longueur des traits */
  }
  
  /* Délai léger pour que les traits arrivent juste après le texte */
  .grandtitre.is-visible::before,
  .grandtitre.is-visible::after {
    transition-delay: 0.15s;
  }
  
  /* Accessibilité : réduit les animations si l'utilisateur préfère */
  @media (prefers-reduced-motion: reduce) {
    .grandtitre {
      transition: none;
      transform: none;
      opacity: 1;
    }
    .grandtitre::before,
    .grandtitre::after {
      transition: none;
      width: 60%;
    }
  }
  

  .titrepraticiens h3 {
    font-family: "Montserrat", sans-serif !important;
    color: #000000 !important;
    font-size:30px; 
    font-weight: 600;
    margin-bottom:0px;
    margin-top:0px;
    position: relative;
  }

  .titrepraticiens h3::after {
    content: "";
    display: block;
    height: 6px; /* épaisseur du trait */
    background-color: #619990; /* vert charte */
    width: 10%; /* proportion de la largeur du parent */
    max-width: 60px; /* limite max si tu veux */
    margin-top: 10px; /* espace entre texte et trait */
    margin-bottom: 10px; /* espace entre texte et trait */
  }

  .titrepraticiens h4 {
    color: #000000 !important;
    font-size:20px; 
    font-weight: 400;
    margin-top:0px;
  }

  /* Le wrapper garde l’alignement visuel de la colonne */
.reveal-wrap { position: relative; overflow: hidden; }

/* L’animation ne bouge que l’enfant interne */
.reveal-left,
.reveal-right {
  opacity: 0;
  transform: translateX(var(--offset, 50px));
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform;
}

.reveal-left  { --offset: -50px; }
.reveal-right { --offset:  50px; }

.reveal-left.is-visible,
.reveal-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Option accessibilité */
@media (prefers-reduced-motion: reduce) {
  .reveal-left, .reveal-right { transition:none; transform:none; opacity:1; }
}

.assistant-card {
    width: 250px; /* taille de la photo */
    height: 250px;
    perspective: 1000px; /* effet 3D */
  }
  
  .assistant-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.8s;
    transform-style: preserve-3d;
    border-radius: 50%;
  }
  
  .assistant-card:hover .assistant-inner {
    transform: rotateY(180deg);
  }
  
  .assistant-front,
  .assistant-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 50%;
    overflow: hidden;
  }
  
  /* Face avant (photo) */
  .assistant-front img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
  }
  
  /* Face arrière (aplat + prénom) */
  .assistant-back {
    background-color: rgba(97, 153, 144, 0.95); /* vert charte graphique avec opacité */
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4em;
    font-weight: bold;
    transform: rotateY(180deg);
    font-family: "Montserrat", sans-serif !important;
    font-size:18px;
    font-weight:400px;
  }

  /* Conteneur rangée */
  .assistants-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:40px;
  max-width:1100px;
  margin:auto;
}
  
  /* Carte (même style que pour Anastasia) */
  .assistant-card {
    width: 250px;
    height: 250px;
    perspective: 1000px;
      flex:0 0 250px;
  }
  
  .assistant-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.8s;
    transform-style: preserve-3d;
    border-radius: 50%;
  }
  
  .assistant-card:hover .assistant-inner {
    transform: rotateY(180deg);
  }
  
  .assistant-front,
  .assistant-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 50%;
    overflow: hidden;
  }
  
  .assistant-front img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
  }
  
  .assistant-back {
    background-color: rgba(97, 153, 144, 0.95);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4em;
    font-weight: bold;
    transform: rotateY(180deg);
    font-family: "Montserrat", sans-serif !important;
    font-size:18px;
    font-weight:400px;
  }
  

  .excellence p,
  .excellence {
    font-family: "Montserrat", sans-serif !important;
    font-size:30px;
    color:#ffffff !important;
  }

  .slb_details {
    display:none;
  }

  .sow-accordion-title {
    font-family: "Montserrat", sans-serif !important;
  }

  .sow-accordion-panel-content li {
    font-family: "Montserrat", sans-serif !important;
    font-size:14px !important;
  }
  .sow-accordion-panel-content a {
    color: #000000!important;
    font-weight: bolder;
    text-decoration: none;
    font-size:14px !important;
  }

  .lsow-taxonomy-filter a,
  .lsow-read-more a {
    font-family: "Montserrat", sans-serif !important;
    text-decoration: none !important;
  }

  .lsow-portfolio-wrap .lsow-taxonomy-filter .lsow-filter-item.lsow-active:after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    border-bottom: 3px solid #619990 !important;
    width: 100%;
}

.map-container {
    width: 100% !important;
    height: 350px;
    position: relative;
  }
  
  .map-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100%;
    border: 0;
  }

  .intro h2 {
    font-family: "Montserrat", sans-serif;
    font-size:34px;
    font-weight: 500 ;
    margin-top:0px ;
  }

  .intro p {
    text-align: justify ;
  }

  .intro h2::after {
    content: "";
    display: block;
    height: 6px; /* épaisseur du trait */
    background-color: #619990; /* vert charte */
    width: 10%; /* proportion de la largeur du parent */
    max-width: 60px; /* limite max si tu veux */
    margin-top: 10px; /* espace entre texte et trait */
    margin-bottom: 10px; /* espace entre texte et trait */
  }

  .entry-categories-inner a {
    color: #619990 !important;
    text-decoration:none !important;
  }

  .post-author,
  .post-comment-link,
  .pagination-single,
  .comments-wrapper,
  .post .featured-media {
    display: none !important;
  }

  .entry-categories a {
    border-bottom: 0em solid currentColor;
  }

.entry-header .entry-title {
    font-family: "Montserrat", sans-serif !important;
    font-size:80px !important;
    font-weight: 500 !important ;
    margin-top:0px !important;
  }

 

  .singular .entry-header {
    padding-bottom:0px !important;
}

.header-inner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 0.8rem 0;
}

.custom-background {
  background-color: transparent !important;
  background: transparent !important;
}
.mobile-menu a {
  font-family: "Montserrat", sans-serif !important;
color: #000000 !important;
text-transform: lowercase !important;
font-size:16px !important;
}

.modal-menu a:focus, .modal-menu a:hover, .modal-menu li.current-menu-item > .ancestor-wrapper > a, .modal-menu li.current_page_ancestor > .ancestor-wrapper > a {
  text-decoration: none;
}

.mobile-menu .sub-menu li a {
  color: #000000 !important;
}
.menu-modal nav * {
  border-color: #619990 !important;
}


.post-inner {
  padding-top: 0rem;
}


.primary-menu > li.lang-item > a::before,
.primary-menu > li.lang-item > a::after {
  display: none !important;
}









@media only screen and (max-width: 1000px) {
 

    .titrepraticiens img.alignright {
      float: none !important;
      display: block !important;
      margin: 1rem auto !important;
    
}
}



.home header {
  position: relative !important;
  z-index:2 !important;
  top:0px !important;
  background-color: rgba(255,255,255,0.9) !important;
}
.post-57,
.post-55,
.post-688,
.post-692 {
  z-index:1 !important;
  position: relative !important;
}

.home main {
  position:relative !important;
  z-index:1 !important;
  margin-top:-150px !important;
}

@media screen and (max-width: 985px) {

  .home main {
  position:relative !important;
  z-index:1 !important;
  margin-top:0px !important;
}

}