/* ========================================
   1. HEADER - LOGO
   ======================================== */
.header .logo img {
  max-height: 80px;
  width: auto;
}
.aside_bar .logo img {
  max-width: 200px;
  width: auto;
}
.header .nav_warp nav .logo img {
  max-width: 300px;
}
/* ========================================
   2. FOOTER - COULEURS TEXTES
   ======================================== */
.footer {
  background-color: #769261;
  padding-top: 40px;
}
.footer,
.footer * {
  color: #333333;
}
.footer a {
  color: #333333;
  transition: color 0.3s ease;
}
.footer a:hover {
  color: #1a1a1a;
}
.footer a:visited,
.footer a:active,
.footer a:focus {
  color: #333333;
}
.footer .footer-title {
  color: #1a1a1a;
  font-size: 16px;
  margin-top: 0;
  margin-bottom: 10px;
}
.footer-list li {
  color: #333333;
  font-size: 14px;
  margin-bottom: 4px;
}
.footer-list li i {
  color: #333333;
  width: 20px;
}
.copyright-text,
.copyright-text a {
  color: #4a4a4a;
  font-size: 13px;
}
.copyright-text a:hover {
  color: #1a1a1a;
}
.footer-top {
  padding-top: 20px;
}
.footer-widget {
  margin-top: 0;
}
/* ========================================
   3. HEADER - STICKY DESKTOP
   ======================================== */
@media (min-width: 992px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  }
  .header + * {
    padding-top: 80px;
  }
}
/* ========================================
   4. TYPOGRAPHIE
   ======================================== */
@import url("https://fonts.googleapis.com/css2?family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap");
body {
  font-family: "Merriweather", serif;
  color: #333333;
  line-height: 1.7;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Bricolage Grotesque", sans-serif;
  color: #769261;
  /* font-style: italic; */
}
h1 {
  font-size: 48px !important;
  font-weight: 400;
}
h2 {
  font-size: 42px !important;
  font-weight: 400;
}
h3 {
  font-size: 32px !important;
  font-weight: 400;
}
h4 {
  font-size: 20px !important;
  font-weight: 400;
}
/* ========================================
   5. BANNIERE - FOND MOBILE
   ======================================== */
@media (max-width: 991.98px) {
  .single_banner {
    background-image: url("assets/images/fondmob.jpg") !important;
    background-size: cover;
    background-position: center;
  }
  .single_banner .container {
    padding: 30px 20px;
    border-radius: 12px;
    margin-top: 20px;
    margin-bottom: 20px;
  }
  .single_banner .banner_text h1 {
    font-size: 32px;
  }
  .single_banner .banner_text p {
    font-size: 16px;
  }
  .single_banner .banne_text {
    padding: 0 !important;
  }
  .header + .single_banner {
    margin-top: 0px !important;
  }
}
/* ========================================
   6. BOUTONS - HOVER
   ======================================== */
.thm-btn.bg-thm-color-two {
  background-color: #769261;
  color: #ffffff;
  text-transform: none !important;
  font-size: 20px;
  border: 2px solid #769261;
  transition: all 0.3s ease;
}
.thm-btn.bg-thm-color-two:hover {
  background-color: #ffffff;
  color: #769261;
  border-color: #769261;
}
.thm-btn.bg-thm-color-two i {
  transition: transform 0.3s ease;
}
.thm-btn.bg-thm-color-two:hover i {
  transform: translateX(5px);
}
/* ========================================
   7. MENU - COULEURS
   ======================================== */
/* Desktop */
.main-menu > li > a {
  color: #769261 !important;
}
.main-menu > li > a:hover {
  color: #333333 !important;
}
.main-menu .sub-menu > li > a {
  color: #769261 !important;
}
.main-menu .sub-menu > li > a:hover {
  color: #333333 !important;
}
/* Mobile */
.aside_bar .main-menu > li > a {
  color: #769261 !important;
}
.aside_bar .main-menu > li > a:hover {
  color: #333333 !important;
}
.aside_bar .main-menu .sub-menu > li > a {
  color: #769261 !important;
}
.aside_bar .main-menu .sub-menu > li > a:hover {
  color: #333333 !important;
}
/* ========================================
   8. HEADER - STICKY DESKTOP (suite)
   ======================================== */
@media (min-width: 992px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  }
  .header + * {
    padding-top: 80px;
  }
}
/* ========================================
   2. FOOTER - COULEURS TEXTES
   ======================================== */
.footer {
  background-color: #769261;
  padding-top: 40px;
}
.footer,
.footer * {
  color: #ffffff;
}
.footer a {
  color: #ffffff;
  transition: color 0.3s ease;
}
.footer a:hover {
  color: #1a1a1a;
}
.footer a:visited,
.footer a:active,
.footer a:focus {
  color: #ffffff;
}
.footer .footer-title {
  color: #ffffff;
  font-size: 18px;
  margin-top: 0;
  margin-bottom: 12px;
}
.footer-list li {
  color: #ffffff;
  font-size: 15px;
  margin-bottom: 5px;
}
.footer-list li i {
  color: #ffffff;
  width: 20px;
}
.copyright-text,
.copyright-text a {
  color: #ffffff;
  font-size: 14px;
}
.copyright-text a:hover {
  color: #1a1a1a;
}
.footer-top {
  padding-top: 20px;
}
.footer-widget {
  margin-top: 0;
}
/* ========================================
   9. TEXTE STANDARD
   ======================================== */
body,
p,
li,
.footer-list li,
.paragraph,
.section-title p,
.card-body {
  font-size: 19px;
  line-height: 26px;
  /* text-align: justify; */
  color: #555;
}
@media (max-width: 991.98px) {
  body,
  p,
  li,
  .footer-list li,
  .paragraph,
  .section-title p,
  .card-body {
    font-size: 16px;
  }
}
/* ========================================
   10. BANNIERE SLOGAN
   ======================================== */
.plane_box h2 {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 38px;
  line-height: 1.4;
  text-align: center;
}
@media (max-width: 991.98px) {
  .plane_box h2 {
    font-size: 28px;
  }
}
/* ========================================
   11. BLOCS PRESTATIONS - CARTES
   ======================================== */
.post {
  background: #ffffff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 15px;
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.post:hover {
  box-shadow: rgba(0, 0, 0, 0.2) 0px 8px 30px;
  transform: translateY(-5px);
}
.post .post_img img {
  border-radius: 14px 14px 0 0;
  width: 100%;
  height: 250px;
  object-fit: cover;
}
.post .post_caption {
  padding: 25px 20px 30px;
  background: #ffffff;
  border-radius: 0 0 14px 14px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.post .post_title {
  font-size: 20px;
  margin-bottom: 12px;
}
.post .post_title a {
  color: #769261;
  transition: color 0.3s ease;
}
.post .post_title a:hover {
  color: #333333;
}
.post .post_text {
  font-size: 18px;
  line-height: 1.4;
  color: #555555;
  margin-bottom: 18px;
  text-align: justify;
  flex: 1;
}
.post .thm-btn {
  font-size: 15px;
  padding: 10px 25px;
  align-self: flex-start;
  margin-top: auto;
}
/* Espacement entre les lignes de cartes */
.row > [class*="col-"] {
  margin-bottom: 30px;
}
/* Réduction texte bloc 6 */
.post .post_text.short {
  font-size: 14px;
}
/* ========================================
   12. PAGE ASSOCIATION - CARTES ENGAGEMENT
   ======================================== */
.engagement-card {
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.engagement-card:hover {
  transform: translateY(-5px);
  box-shadow: rgba(0, 0, 0, 0.15) 0px 8px 30px !important;
}
/* ========================================
   13. ESPACEMENT PARAGRAPHES - GLOBAL
   ======================================== */
p,
.paragraph,
.section-title p,
.engagement-card p,
.about_inner p,
.post_text,
.card-body p {
  margin-bottom: 8px;
}
p:last-of-type,
.paragraph:last-of-type,
.section-title p:last-of-type,
.engagement-card p:last-of-type,
.about_inner p:last-of-type,
.post_text:last-of-type,
.card-body p:last-of-type {
  margin-bottom: 0;
}
/* Espacement entre les blocs de texte */
.text-block + .text-block {
  margin-top: 15px;
}
/* ========================================
   14. BOUTON RDV - MOBILE
   ======================================== */
/* Masquer le bouton normal sur mobile */
.btn-rdv-desktop {
  display: inline-flex;
}
.btn-rdv-mobile {
  display: none;
}
@media (max-width: 767.98px) {
  .btn-rdv-desktop {
    display: none !important;
  }
  .btn-rdv-mobile {
    display: inline-flex !important;
  }
}
/* ========================================
   15. VIGNETTES - HOVER
   ======================================== */
.vignette-card:hover {
  transform: translateX(5px);
  box-shadow: rgba(0, 0, 0, 0.15) 0px 4px 20px !important;
}
/* ========================================
   15. VIGNETTES - ESPACEMENT
   ======================================== */
.vignette-card {
  margin-bottom: 8px !important;
}
.vignette-card:last-child {
  margin-bottom: 0 !important;
}
.vignette-card .col-12 {
  padding-bottom: 0 !important;
}
/* ========================================
   16. ESPACEMENT ENTRE SECTIONS
   ======================================== */
.section-padding {
  padding-top: 40px;
  padding-bottom: 60px;
}
.section-padding:first-of-type {
  padding-top: 60px;
}
.section-padding:last-of-type {
  padding-bottom: 60px;
}
/* Réduction espace entre les deux sections */
.section-padding + .section-padding {
  padding-top: 20px;
}
/* ========================================
   17. VIGNETTES
   ======================================== */
.vignette-card {
  display: block;
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: rgba(0, 0, 0, 0.08) 0px 4px 15px;
  margin-bottom: 8px;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  text-decoration: none !important;
}
.vignette-card:last-child {
  margin-bottom: 0;
}
.vignette-card:hover {
  transform: translateX(5px);
  box-shadow: rgba(0, 0, 0, 0.15) 0px 4px 20px;
}
.vignette-inner {
  display: flex;
  align-items: center;
}
.vignette-img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  flex-shrink: 0;
}
.vignette-content {
  padding: 10px 15px;
}
.vignette-title {
  font-family: "Bricolage Grotesque", sans-serif;
  font-style: normal;
  font-size: 18px;
  color: #769261;
  margin: 0;
  font-weight: 400;
}
/* ========================================
   19. SECTION PADDING - ENGAGEMENT
   ======================================== */
.section-padding {
  padding-top: 40px;
  padding-bottom: 30px !important;
}
/* Réduction pour la section engagement */
.section-padding.engagement-section {
  padding-top: 30px;
  padding-bottom: 30px !important;
}
/* ========================================
   3. HEADER - STICKY DESKTOP
   ======================================== */
@media (min-width: 992px) {
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  }
  /* Appliquer le padding sur le premier élément après le header */
  .header + .subheader,
  .header + .single_banner,
  .header + section,
  .header + div {
    padding-top: 240px !important;
    margin-top: 0 !important;
  }
}
/* ========================================
   20. BOUTON RDV - COULEURS
   ======================================== */
.head_actions .thm-btn {
  background-color: #769261 !important;
  border: 2px solid #769261 !important;
  color: #ffffff !important;
}
.head_actions .thm-btn:hover {
  background-color: #ffffff !important;
  border: 2px solid #769261 !important;
  color: #769261 !important;
}
/* ========================================
   21. BOUTONS PRENDRE RDV - GLOBAL
   ======================================== */
.btn-rdv,
.thm-btn.bg-thm-color-two.btn-rounded,
a[href="contact.php"].thm-btn {
  background-color: #769261 !important;
  color: #ffffff !important;
  border: 2px solid #769261 !important;
  transition: all 0.3s ease !important;
  padding: 10px 25px !important;
  border-radius: 30px !important;
  display: inline-block !important;
  text-decoration: none !important;
}
.btn-rdv:hover,
.thm-btn.bg-thm-color-two.btn-rounded:hover,
a[href="contact.php"].thm-btn:hover {
  background-color: #ffffff !important;
  color: #769261 !important;
  border: 2px solid #769261 !important;
}
/* ========================================
   HR séparator
   ======================================== */
.pratiques-separator {
  border: 0;
  height: 3px;
  margin: 25px 0;
  background: linear-gradient(to right, transparent 0%, #769261 20%, #769261 80%, transparent 100%);
  opacity: 1;
}
/* ========================================
   22. POLICES - FORCE (OVERRIDE)
   ======================================== */
@import url("https://fonts.googleapis.com/css2?family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap");
:root {
  --thm-font: "Bricolage Grotesque", sans-serif;
  --thm-b-font: "Merriweather", serif;
}
/* ========================================
   25. FORCE POLICE TITRES (TOUS SÉLECTEURS)
   ======================================== */
h1,
h2,
h3,
h4,
h5,
h6,
.subheader .page_title,
.banner_text .title,
.bg-banner .banner_text .title,
.single_banner .banner_text .title,
.plane_box h2,
.vignette-title,
.section-title .title,
.post .post_title,
.post .post_title a,
.team_block h6,
.team_block h6 a,
.event_block .event_caption .event_title,
.event_block .event_caption .event_title a,
.service_block .text .title,
.portfolio_box .portfolio_caption .text_box .title,
.sidebar .sidebar_widget .widget_title,
.cta_box .section-title .title,
.footer .ft_widget .ft-title,
.accordion-style > .card > .card-header > .btn-link,
.nav-tabs.style_2 .nav-item .nav-link,
.nav-tabs.style_4 .nav-item .nav-link,
.progress_box .text h5,
.plan_box .plan_title,
.counter_box .text p,
.about_list li .text h6,
.features_box h5,
.coach_block .coach_caption .author a,
.page_title {
  font-family: "Bricolage Grotesque", sans-serif !important;
  font-optical-sizing: auto !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-variation-settings: "width" 100 !important;
}
/* ========================================
   28. FORCE BOUTONS RDV MOBILE
   ======================================== */
.head_actions a.btn-rdv-desktop {
  display: inline-flex;
}
.head_actions a.btn-rdv-mobile {
  display: none;
}
@media (max-width: 767.98px) {
  .head_actions a.btn-rdv-desktop {
    display: none !important;
  }
  .head_actions a.btn-rdv-mobile {
    display: inline-flex !important;
  }
}
/* ========================================
   29. ALIGNEMENT HEAD_ACTIONS (FORCE)
   ======================================== */
.head_actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 65px; /* ajustez selon votre besoin */
}
.head_actions .btn-rdv-desktop {
  display: inline-flex !important;
}
.head_actions .btn-rdv-mobile {
  display: none !important;
}
.head_actions .mobile_trigger {
  margin-left: 0; /* déjà aligné via flex */
}
@media (max-width: 767.98px) {
  .head_actions .btn-rdv-desktop {
    display: none !important;
  }
  .head_actions .btn-rdv-mobile {
    display: inline-flex !important;
  }
}
/* ========================================
   31. MENU DESKTOP - TAILLES, COULEURS, ESPACEMENT (FORCE)
   ======================================== */
@media (min-width: 992px) {
  /* Items principaux */
  .main-menu > .menu-item > a {
    font-size: 22px !important; /* Taille de police */
    color: #769261 !important; /* Couleur normale */
    padding: 12px 10px !important; /* Espacement entre items (horizontal) */
    font-weight: 700 !important; /* Épaisseur (optionnel) */
    text-transform: none !important; /* Pour éviter majuscules (optionnel) */
  }
  .main-menu > .menu-item > a:hover,
  .main-menu > .menu-item > a:focus {
    color: #333333 !important; /* Couleur au survol */
  }
  /* Sous-menu */
  .main-menu .sub-menu > .menu-item > a {
    font-size: 18px !important;
    color: #769261 !important;
    padding: 10px 20px !important;
    font-weight: 600 !important;
  }
  .main-menu .sub-menu > .menu-item > a:hover,
  .main-menu .sub-menu > .menu-item > a:focus {
    color: #ffffff !important;
    background: #769261 !important;
    padding-left: 30px !important;
  }
}
.thm-btn {
  font-size: 16px;
  /* font-weight: bold; */
  color: #555;
  display: inline-flex;
  align-items: center;
  border: none;
  padding: 16px 42px;
  /* text-transform: uppercase; */
  transition: 0.5s all;
}
.thm-btn.btn-border {
  border: 2px solid #769261 !important;
}
body,
p,
li,
.footer-list li,
.paragraph,
.section-title p,
.card-body {
  font-size: 20px;
  line-height: 26px;
  /* text-align: justify; */
  color: #555;
  font-weight: 100 !important;
}
.aj {
  font-size: 22px;
  line-height: 28px;
  /* text-align: justify; */
  color: #555;
  font-weight: 100 !important;
  margin-bottom: 15px;
}
.ju {
  text-align: justify !important;
}
.title.wow.fadeInDown {
  white-space: nowrap;
}
/* ========================================
   BANNIÈRE : TITRE SUR UNE LIGNE + RESPONSIVE
   ======================================== */
.single_banner .banner_text .title {
  white-space: normal; /* toujours sur une ligne */
  font-size: clamp(1.2rem, 4vw, 3rem); /* taille fluide */
  margin-right: 20px !important; /* marge de sécurité (optionnelle) */
}
/* Cacher l'image décorative sur tablette/mobile */
@media (max-width: 991px) {
  .single_banner .shape_img {
    display: none;
  }
}
/* ========================================
   BANNIÈRE - CORRECTION FINALE
   ======================================== */
/* La bannière doit avoir une hauteur pour que h-100 fonctionne */
.single_banner {
  /* min-height: calc(100vh - 120px);  */
}
/* La colonne gauche occupe toute la hauteur */
.single_banner .banner_text {
  height: 100%;
  width: 100%;
}
/* Titre : en haut, sur une ligne, taille réduite */
.single_banner .banner_text .title {
  white-space: nowrap;
  font-size: clamp(1.2rem, 2.8vw, 2.8rem);
  flex-shrink: 0; /* il ne se réduit pas */
  margin-right: 20px !important;
}
/* Contenu centré */
.single_banner .banner_content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* Bouton : largeur automatique */
.single_banner .banner_text .thm-btn {
  display: inline-flex !important;
  width: auto !important;
  align-self: flex-start;
}
/* Image centrée verticalement */
.single_banner .shape_img {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: 100%;
}
.single_banner .shape_img img {
  max-height: 80%;
  width: auto;
}
/* Mobile : image cachée, hauteur auto */
@media (max-width: 991px) {
  .single_banner .shape_img {
    display: none;
  }
  .single_banner {
    min-height: auto;
  }
  .single_banner .container {
    padding: 30px 20px;
  }
}
/* ========================================
   BANNIÈRE - REMONTER LE BLOC (UNIQUEMENT DESKTOP)
   ======================================== */
@media (min-width: 992px) {
  .single_banner .banner_text {
    transform: translateY(-100px); /* remonte le titre + contenu */
  }
}
/* ========================================
   TITRE BANNIÈRE - TAILLE FLUIDE
   ======================================== */
.single_banner .banner_text .title {
  font-size: 42px !important; /* valeur par défaut pour grand écran */
  line-height: 1.2;
}
/* Sur tablette et petits écrans */
@media (max-width: 991px) {
  .single_banner .banner_text .title {
    font-size: 36px !important;
  }
}
/* Sur mobile étroit */ /* ========================================
   JUSTIFICATION DES PARAGRAPHES ET LISTES
   ======================================== */
p,
li {
  text-align: justify !important;
}
@media (max-width: 575px) {
  .single_banner .banner_text .title {
    font-size: 32px !important;
  }
}
/* ========================================
   JUSTIFICATION DES PARAGRAPHES
   ======================================== */
p {
  text-align: justify !important;
}
/* ========================================
   JUSTIFICATION DES PARAGRAPHES ET LISTES
   ======================================== */
p,
li {
  text-align: justify !important;
}
