/* ===== BLOG PAGE (scopé + classes uniques) ===== */

:root{
  --jmbg: #f6f7ee;
  --jminfo: rgba(0,0,0,.62);
  --jmline: rgba(0,0,0,.10);
}

/*body.blog,
body.home.blog{
  background: var(--jmbg);
}*/

.jm-blogpage{
  max-width: 1180px;
  margin: 0 auto;
  padding: 34px 18px 56px;
  color: #121212;
}

/* Header */
.jm-blogpage__header{ text-align:center; margin: 6px 0 30px; }
.jm-blogpage__kicker{ opacity:.75; letter-spacing:.08em; text-transform:uppercase; font-size:.85rem; }
.jm-blogpage__title{ font-size: clamp(2.2rem, 4vw, 3.2rem); line-height:1.05; margin:10px 0; font-weight:bold!important; }
.jm-blogpage__desc{ max-width:78ch; margin:0 auto; color:var(--jminfo); font-size:1.05rem; line-height:1.7; }

/* Layout */
.jm-blogpage__layout{
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 26px;
  align-items: start;
}

@media (max-width: 980px){
  .jm-blogpage__layout{ grid-template-columns: 1fr; }
}

.jm-blogpage__sidebar{
  display: block;
  position: sticky;
  top: 16px;
}

@media (max-width: 980px){
  .jm-blogpage__sidebar{ position: static; }
}

/* Meta */
.jm-blogmeta{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  align-items:center;
  color: var(--jminfo);
  font-size: .95rem;
}
.jm-blogdot{ opacity:.55; }

/* Chips */
.jm-blogchips{ display:flex; gap:10px; flex-wrap:wrap; margin: 0 0 8px; }
.jm-blogchip{
  display:inline-flex;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  background: transparent;
  text-decoration:none;
  font-size: .88rem;
  color: inherit;
}
.jm-blogchip:hover{ border-color: rgba(0,0,0,.28); }

/* Hero (style image 3) */
.jm-bloghero{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 26px;
  align-items:center;
}
@media (max-width: 980px){
  .jm-bloghero{ grid-template-columns: 1fr; }
}

.jm-bloghero__media{
  border-radius: 10px;
  overflow:hidden;
  display:block;
  background: rgba(0,0,0,.04);
}
.jm-bloghero__media img{
  width:100%;
  height: 362px;
  object-fit: cover;
  display:block;
}
@media (max-width: 980px){
  .jm-bloghero__media img{ height: 280px; }
}

.jm-bloghero__body{
  border-radius: 10px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.14);
  padding: 18px 18px 16px;
}

.jm-bloghero__title{
  font-size: 1.65rem;
  line-height: 1.18;
  margin: 10px 0 10px;
  font-weight: 800;
}
.jm-bloghero__title a{ text-decoration:none; color:inherit; }

.jm-bloghero__excerpt{ margin: 12px 0 14px; color: var(--jminfo); line-height: 1.7; }

.jm-blogbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 10px 14px;
  border-radius: 6px;
  background: #111;
  color:#fff;
  text-decoration:none;
  font-weight: 700;
}
.jm-blogbtn:hover{ opacity:.92; }

/* Grid (style image 2) */
.jm-bloggrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  margin-top: 26px;
}
@media (max-width: 980px){ .jm-bloggrid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .jm-bloggrid{ grid-template-columns: 1fr; } }

/* Cards */
.jm-blogcard{
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}

.jm-blogcard__media{
  display:block;
  border-radius: 10px;
  overflow:hidden;
  background: rgba(0,0,0,.04);
}
.jm-blogcard__media img{
  width:100%;
  height: 240px;
  object-fit: cover;
  display:block;
}
.jm-blogcard__placeholder{ height:240px; background: rgba(0,0,0,.04); }

.jm-blogcard__body{
  padding: 14px 2px 0;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.jm-blogcard__title{
  font-size: 1.22rem;
  line-height: 1.22;
  margin: 0;
  font-weight: 800;
}
.jm-blogcard__title a{ text-decoration:none; color:inherit; font-weight: 800; }

.jm-blogcard__excerpt{
  color: var(--jminfo);
  line-height: 1.7;
  margin: 0;
}
.jm-blogcard__excerpt{
  display: -webkit-box;
  -webkit-line-clamp: 3; /* 2 ou 3 */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Pagination */
.jm-blogpager ul{
  list-style:none;
  display:flex;
  gap:10px;
  justify-content:center;
  padding:0;
  margin: 28px 0 0;
}
.jm-blogpager a,
.jm-blogpager span{
  display:inline-flex;
  min-width: 44px;
  height: 44px;
  align-items:center;
  justify-content:center;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.18);
  background: rgba(255,255,255,.55);
  text-decoration:none;
  color: inherit;
}
.jm-blogpager .current{
  background:#111;
  color:#fff;
  border-color:#111;
  font-weight:800;
}







/* Widgets sidebar blog */
.jm-blogpage__sidebar .jm-widget{
  border-radius: 22px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.14);
  padding: 14px;
  margin-bottom: 14px;
}

.jm-blogpage__sidebar .jm-widget__title{
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
  margin-bottom: 10px;
}

/* Styles génériques widgets WP dans la sidebar */
.jm-blogpage__sidebar .widget{
  border-radius: 10px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.14);
  padding: 14px;
  margin-bottom: 14px;
}
.jm-blogpage__sidebar .widget-title{
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
  margin-bottom: 10px;
}







/* ===== Derniers produits consultés : UX propre & prix discrets ===== */
.jm-blogpage__sidebar .widget_recently_viewed_products .product_list_widget{
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
}

.jm-blogpage__sidebar .widget_recently_viewed_products .product_list_widget li{
  list-style: none;
  margin: 0;
  padding: 12px;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  background: #fff;
}

/* Lien = image + titre alignés */
.jm-blogpage__sidebar .widget_recently_viewed_products .product_list_widget li > a{
  display: grid !important;
  grid-template-columns: 52px 1fr;
  gap: 12px;
  align-items: center;
  text-decoration: none;
}

.jm-blogpage__sidebar .widget_recently_viewed_products .product_list_widget li img{
  width: 52px !important;
  height: 52px !important;
  border-radius: 12px;
  object-fit: cover;
}

/* Titre */
.jm-blogpage__sidebar .widget_recently_viewed_products .product_list_widget li .product-title{
  display: block;
  font-weight: 800;
  line-height: 1.25;
  color: #254636;
}

/* Ligne prix : compacte, discrète */
.jm-blogpage__sidebar .widget_recently_viewed_products .ywcrbp_regular_price,
.jm-blogpage__sidebar .widget_recently_viewed_products .ywcrbp_their_price{
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 8px;
  font-size: .9rem;
  color: rgba(0,0,0,.55);
  font-weight: 600;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Montants : neutres (pas orange, pas énorme) */
.jm-blogpage__sidebar .widget_recently_viewed_products .woocommerce-Price-amount{
  font-weight: 800;
  font-size: .92rem;
  color: rgba(0,0,0,.70);
}

/* On met les deux prix sur UNE ligne */
.jm-blogpage__sidebar .widget_recently_viewed_products .ywcrbp_their_price{
  margin-left: 10px;
}

/* Important : pas de prix barré */
.jm-blogpage__sidebar .widget_recently_viewed_products del,
.jm-blogpage__sidebar .widget_recently_viewed_products .price del,
.jm-blogpage__sidebar .widget_recently_viewed_products .woocommerce-Price-amount del{
  display: none !important;
  text-decoration: none !important;
}



/* ===== Blog categories bar ===== */
.jm-blogcats{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  justify-content:center;
  margin: 18px 0 28px;
}

.jm-blogcats__chip{
  display:inline-flex;
  align-items:center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  background: rgba(255,255,255,.55);
  text-decoration:none;
  color: inherit;
  font-weight: 700;
  font-size: .95rem;
}

.jm-blogcats__chip:hover{
  border-color: rgba(0,0,0,.32);
}

.jm-blogcats__chip.is-active{
  background: #111;
  color: #fff;
  border-color: #111;
}



/* ===== Alignement parfait des boutons dans la grille ===== */

/* La grille doit étirer ses items */
.jm-bloggrid{
  align-items: stretch;
}

/* Chaque carte prend 100% de la hauteur disponible */
.jm-blogcard{
  height: 95%;
  display: flex;
  flex-direction: column;
}

/* Le bloc texte prend le reste de la hauteur */
.jm-blogcard__body{
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Le bouton descend en bas, aligné */
.jm-blogcard__btn{
  margin-top: auto;
}

/* Bouton aligné en bas de chaque carte */
.jm-blogcard__body{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Le bouton “pousse” vers le bas, donc alignement parfait */
.jm-blogcard__btn{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  padding: 10px 14px;
  border-radius: 12px;
  background: #111;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}

.jm-blogcard__btn:hover{
  opacity: .92;
}


/* ===== Blog Sidebar – Widget "Latest Posts" (UX propre) ===== */
.jm-blogpage__sidebar #et_latestimages_widget-1{
  overflow: hidden;
}

.post.listing {
    margin-bottom: unset;
}

.jm-blogpage__sidebar #et_latestimages_widget-1 .widgettitle{
  margin: 0 0 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
}

/* Liste */
.jm-blogpage__sidebar #et_latestimages_widget-1 ul{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Item : carte compacte */
.jm-blogpage__sidebar #et_latestimages_widget-1 li.post.listing{
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
}

/* Lien image */
.jm-blogpage__sidebar #et_latestimages_widget-1 a.post-gallery{
  display: block;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
}

/* Masque le compteur 1/2/3 */
.jm-blogpage__sidebar #et_latestimages_widget-1 a.post-gallery .count{
  display: none !important;
}

.jm-blogpage__sidebar #et_latestimages_widget-1 a.post-gallery img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Contenu texte */
.jm-blogpage__sidebar #et_latestimages_widget-1 .listing_content{
  min-width: 0; /* important pour le clamp */
}

/* Titre */
.jm-blogpage__sidebar #et_latestimages_widget-1 .post-title h6{
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 800;
}

.jm-blogpage__sidebar #et_latestimages_widget-1 .post-title a{
  text-decoration: none;
  color: inherit;
  display: -webkit-box;
  -webkit-line-clamp: 2;          /* max 2 lignes */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Date */
.jm-blogpage__sidebar #et_latestimages_widget-1 .post-meta{
  margin-top: 6px;
  font-size: .92rem;
  color: rgba(0,0,0,.62);
}

/* Hover */
.jm-blogpage__sidebar #et_latestimages_widget-1 li.post.listing:hover{
  border-color: rgba(0,0,0,.22);
}




/* ===== Blog search (classes uniques, zéro conflit) ===== */
.jm-blogpage-search{
  max-width: 820px;
  margin: 18px auto 26px;
}

.jm-blogpage-search__label{
  display:none; /* accessibilité OK car label lié, si tu veux l’afficher: display:block */
}

.jm-blogpage-search__wrap{
  display:flex;
  align-items:center;
  gap: 12px;
  padding: 10px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.jm-blogpage-search__input{
  flex: 1 1 auto;
  height: 52px;
  border: 0 !important;
  outline: none;
  background: transparent !important;
  padding: 0 6px;
  font-size: 1rem;
  color: #111;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.jm-blogpage-search__input::placeholder{
  color: rgba(0,0,0,.45);
}

.jm-blogpage-search__wrap:focus-within{
  border-color: rgba(37,70,54,.35);
  box-shadow: 0 0 0 4px rgba(37,70,54,.10), 0 10px 30px rgba(0,0,0,.06);
}

.jm-blogpage-search__btn{
  height: 52px;
  padding: 0 18px;
  border: 0;
  border-radius: 14px;
  background: #254636;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.jm-blogpage-search__btn:hover{ opacity: .92; }
.jm-blogpage-search__btn:active{ transform: translateY(1px); }

@media (max-width: 640px){
  .jm-blogpage-search__wrap{
    flex-direction: column;
    align-items: stretch;
  }
  .jm-blogpage-search__btn{
    width: 100%;
  }
}

/* ===== Anti-style thème (uniquement search blog) ===== */
.jm-blogpage-search__wrap{
  background: #fff !important;
  background-image: none !important;
}

input#jm-blogpage-search-input {
    text-align: center;
}

.jm-blogpage-search__input{
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Très fréquent sur les thèmes : underline via border-bottom ou gradient */
.jm-blogpage-search__input,
.jm-blogpage-search__input:focus{
  border-bottom: 0 !important;
}

/* Certains thèmes ajoutent un pseudo-élément / décoration */
.jm-blogpage-search__wrap::before,
.jm-blogpage-search__wrap::after,
.jm-blogpage-search__input::before,
.jm-blogpage-search__input::after{
  content: none !important;
  display: none !important;
}

/* Si le thème applique un style "form-row" ou "input-text" */
.jm-blogpage-search .input-text,
.jm-blogpage-search input[type="search"]{
  background-image: none !important;
  box-shadow: none !important;
  border-bottom: 0 !important;
}

/* Réduction largeur barre de recherche */
.jm-blogpage-search{
  max-width: 620px; /* au lieu de 820/760 */
}

.jm-blogpage-search__wrap{
  padding: 8px;     /* un peu plus compact */
}

.jm-blogpage-search__input{
  height: 48px;     /* au lieu de 52 */
  font-size: .98rem;
}


                                /* ===== Single Article Layout (jm-article*) ===== */

.jm-article{
  max-width: 1180px;
  margin: 0 auto;
  padding: 34px 18px 56px;
}

h1.jmsp-hero__title {
  font-weight: bold;
}

.jm-article__layout{
  display:grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items:start;
}
.jm-article__layout--sidebar{
  grid-template-columns: 1fr 360px;
}
@media (max-width: 980px){
  .jm-article{ padding: 18px 18px 48px; }
  .jm-article__layout--sidebar{ grid-template-columns: 1fr; }
}

.jm-article__content{
  background:#fff;
  /*border: 1px solid rgba(0,0,0,.10);*/
  border-radius: 10px;
  /*padding: 22px;*/
  padding-top: 0px;
}
.jm-article__prose{
  line-height: 1.85;
  font-size: 1.05rem;
  color: rgba(0,0,0,.80);
}
.jm-article__prose h2{
  color:#254636;
  line-height: 1.25;
  margin-top: 26px;
  font-size: 25px;
  font-weight: bold;
} 
.jm-article__prose h3{
  color:#254636;
  line-height: 1.25;
  margin-top: 26px;
  font-size: 20px;
  font-weight: 500;
}
.jm-article__prose img{
  border-radius: 18px;
  max-width: 100%;
  height: auto;
}

.jm-article__sidebar .widget{
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  background: #fff;
  padding: 16px;
  margin-bottom: 16px;
}
.jm-article__sidebar .widgettitle,
.jm-article__sidebar .jm-widget__title{
  font-weight: 900;
  letter-spacing:.08em;
  text-transform: uppercase;
}

.jm-article__nav{
  display:flex;
  justify-content:space-between;
  gap: 14px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(0,0,0,.10);
}
.jm-article__nav a{
  text-decoration:none;
  font-weight: 800;
  color:#254636;
}
@media (max-width: 680px){
  .jm-article__nav{ flex-direction:column; }
}

/* Related */
.jm-article__related{ margin-top: 24px; }
.jm-article__h2{
  font-size: 1.3rem;
  margin: 0 0 12px;
  color:#254636;
  font-weight: 900;
}
.jm-article__relatedgrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 980px){
  .jm-article__relatedgrid{ grid-template-columns: 1fr; }
}
.jm-article__relcard{
  display:block;
  text-decoration:none;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  background:#fff;
  overflow:hidden;
}
.jm-article__relmedia img{
  width:100%;
  height: 170px;
  object-fit: cover;
  display:block;
}
.jm-article__relph{
  display:block;
  height:170px;
  background: rgba(0,0,0,.04);
}
.jm-article__reltitle{
  display:block;
  padding: 12px 12px 4px;
  font-weight: 900;
  color:#254636;
  line-height: 1.2;
}
.jm-article__reldate{
  display:block;
  padding: 0 12px 12px;
  color: rgba(0,0,0,.60);
  font-size: .95rem;
}

                    /* 1) On neutralise l'ancien style de chip s'il existe encore */
                    .jmsp-hero .jmsp-hero__chip{
                      display: none !important;
                    }

                    /* 2) Titre + chips bien séparés dans l'image */
                    .jmsp-hero .jmsp-hero__title{
                      position: absolute !important;
                      left: 18px !important;
                      right: 18px !important;
                      bottom: 78px !important; /* espace réservé pour les catégories */
                      z-index: 3 !important;
                      font-size: 41px;
                    }

                    /* 3) Conteneur des catégories (sous le titre) */
                    .jmsp-hero .jmsp-hero__catsbelow{
                      position: absolute !important;
                      left: 18px !important;
                      right: 18px !important;
                      bottom: 18px !important;
                      z-index: 3 !important;
                      display: flex !important;
                      flex-wrap: wrap !important;
                      gap: 10px !important;
                      align-items: center !important;
                    }

                    /* 4) Chaque catégorie = chip "normal" (pas d'absolute) */
                    .jmsp-hero .jmsp-hero__catbelow{
                      position: static !important;
                      display: inline-flex !important;
                      align-items: center !important;
                      padding: 8px 12px !important;
                      border-radius: 999px !important;
                      background: rgba(255,255,255,.92) !important;
                      border: 1px solid rgba(0,0,0,.10) !important;
                      text-decoration: none !important;
                      color: #111 !important;
                      font-weight: 700 !important;
                      font-size: 14px !important;
                      white-space: nowrap !important;
                    }
                        }
/* ===== Single post HERO (jmsp-hero) : image + titre dans 1 bloc ===== */

.jmsp-hero{
  max-width: 1200px;
  margin: 18px auto 22px;
  padding: 0 18px;
}

.jmsp-hero__card{
  border-radius: 15px 15px 0px 0px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  /*box-shadow: 0 10px 30px rgba(0,0,0,.08);*/
  margin-bottom: 25px;
}

.jmsp-hero__media{
  position: relative;
  min-height: 520px;
  background-size: cover;
  background-position: center;
  background-color: #e9ecef;
}

.jmsp-hero__shade{
  position:absolute;
  inset:0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,.08) 0%,
    rgba(0,0,0,.30) 45%,
    rgba(0,0,0,.77) 100%
  );
}

/* Chip "corner" (optionnel si tu veux le garder en haut à gauche) */
.jmsp-hero__chip{
  position:absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  display:inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.10);
  text-decoration:none;
  color:#111;
  font-weight: 700;
  font-size: 14px;
}

/* Title */
.jmsp-hero__title{
  position:absolute;
  left: 18px;
  right: 18px;
  bottom: 62px; /* réserve une zone sous le titre */
  z-index: 2;
  margin: 0;
  color: #fff;
  font-weight: 900;
  font-size: clamp(28px, 3.2vw, 46px);
  line-height: 1.05;
  text-shadow: 0 6px 22px rgba(0,0,0,.40);
}

/* Catégorie sous le titre (ton besoin) */
.jmsp-hero__catbelow{
  position:absolute;
  left: 18px;
  bottom: 18px;
  z-index: 2;
  display:inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.10);
  text-decoration:none;
  color:#111;
  font-weight: 700;
  font-size: 14px;
}

/* Mobile edge-to-edge image */
@media (max-width: 980px){
    .jmsp-hero{
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
  }
  .jmsp-hero .jmsp-hero__title{
    font-size: 31px;
    font-weight: bold;
    }
  .jmsp-hero__card{ border-radius: 0; }
  .jmsp-hero__media{ min-height: 320px; }
  .jmsp-hero__title{ bottom: 66px; }
  .jmsp-hero__catbelow{ bottom: 18px; }

  body.single-post main,
  body.single-post .jm-article__layout{
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

.jmsp-meta{
  max-width: 1180px;
  margin: 10px auto 16px;
  padding: 0 18px;
  display:flex !important;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  color: rgba(0,0,0,.62);
  font-size: 14px;
  line-height: 1.2;
}

.jmsp-meta__dot{ opacity:.6; }




.jmsp-breadcrumb{
  max-width: 1180px;
  margin: 10px auto 14px;
  padding: 0 18px;
  font-size: 14px;
  color: rgba(0,0,0,.65);
}
.jmsp-breadcrumb__list{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  margin:0;
  padding:0;
}
.jmsp-breadcrumb__item a{
  color: inherit;
  text-decoration:none;
}
.jmsp-breadcrumb__item a:hover{ text-decoration:underline; }
.jmsp-breadcrumb__sep{ opacity:.45; }
.jmsp-breadcrumb__item--current{
  color: rgba(0,0,0,.85);
  font-weight: 700;
}


/* ===== TOC (Sommaire) ===== */
.jmsp-toc{
  background:#41916a12;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 10px;
  padding: 18px 18px 14px;
  margin: 0px 0 18px;
}

.jmsp-toc__title{
  font-weight: 900;
  color:#254636;
  letter-spacing:.06em;
  text-transform: uppercase;
  font-size: .9rem;
  margin-bottom: 10px;
}

.jmsp-toc__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display:flex;
  flex-direction: column;
  gap: 10px;
}

.jmsp-toc__item--h2 > .jmsp-toc__link{
  display:inline-flex;
  text-decoration:none;
  font-weight: 800;
  color:#111;
  line-height: 1.25;
}

.jmsp-toc__link:hover{ text-decoration: underline; }

.jmsp-toc__sub{
  list-style:none;
  padding: 8px 0 0 14px;
  margin: 0;
  display:flex;
  flex-direction: column;
  gap: 8px;
  border-left: 2px solid rgba(0,0,0,.08);
}

.jmsp-toc__sublink{
  text-decoration:none;
  color: rgba(0,0,0,.72);
  font-weight: 600;
  line-height: 1.25;
  display:inline-flex;
}

.jmsp-toc__sublink:hover{
  color:#111;
  text-decoration: underline;
}

/* Empêche le header sticky de masquer le titre ciblé */
.jm-article__prose h2,
.jm-article__prose h3{
  scroll-margin-top: 110px;
}

/* Mobile : sommaire plus compact */
@media (max-width: 680px){
  .jmsp-toc{ padding: 14px 14px 12px; border-radius: 10px; }
  .jmsp-toc__sub{ padding-left: 12px; }
}












/* ===== Article : typographie plus aérée ===== */
.jm-article__prose{
  line-height: 1.30;                 /* + aéré */
  font-size: 1.05rem;                /* légèrement plus lisible */
  color: rgba(0,0,0,.82);
}

/* Paragraphes */
.jm-article__prose p{
  margin: 0 0 18px;                  /* espace entre paragraphes */
}

/* Titres */
.jm-article__prose h2{
  margin: 34px 0 12px;
  line-height: 1.18;
}
.jm-article__prose h3{
  margin: 24px 0 10px;
  line-height: 1.22;
}

/* Listes */
.jm-article__prose ul,
.jm-article__prose ol{
  margin: 10px 0 18px 1.1em;
  padding: 0;
}
.jm-article__prose li{
  margin: 8px 0;                     /* espace entre items */
}
.jm-article__prose li > ul,
.jm-article__prose li > ol{
  margin-top: 10px;
}

/* Liens : plus “propre” visuellement */
.jm-article__prose a{
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* Images : garder de l’air autour */
.jm-article__prose figure,
.jm-article__prose img{
  margin: 0px;
}

.jm-article__content{
  max-width: 860px;      /* ajuste si besoin */
}
.jm-article__layout--sidebar .jm-article__content{
  max-width: none;       /* garde la place quand sidebar */
}
















/* ===== Fix Swiper overflow + swipe (scopé au carrousel article) ===== */
.jmsp-prod{
  max-width: 100%;
  overflow: hidden;              /* empêche la page de déborder à droite */
}

.jmsp-prod .jmsp-prod__swiper{
  width: 100%;
  overflow: visible;             /* swiper gère le masque via jmsp-prod */
  touch-action: pan-y;           /* autorise le swipe horizontal sans bloquer le scroll vertical */
}

.jmsp-prod .swiper-wrapper{
  display: flex !important;      /* certains thèmes mettent grid/block => Swiper cassé */
  align-items: stretch;
}

.jmsp-prod .swiper-slide{
  flex: 0 0 auto !important;     /* évite les widths énormes / calculs incohérents */
  width: auto !important;
  max-width: 100%;
}

.jmsp-prod .jmsp-prod__card{
  display: block;
  width: 100%;
}

.jmsp-prod .jmsp-prod__media img{
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 0px;
}

/* Sécurité anti-débordement global dans le contenu */
.jm-article__content,
.jm-article__prose{
  overflow-x: hidden;
}




/* IMPORTANT : si le carrousel est dans un grid/flex, évite les débordements */
.jm-article__content,
.jm-article__prose { 
  min-width: 0;
}

/* Contraint le carrousel */
.jmsp-prod { 
  max-width: 100%;
}

.jmsp-prod__swiper { 
  width: 100%;
  overflow: hidden; 
}





/* Carrousel produits - garde tout dans le conteneur */
.jmsp-prod { width: 100%; max-width: 100%; }
.jmsp-prod__swiper { width: 100%; max-width: 100%; overflow: hidden; }
.jmsp-prod .swiper-wrapper { box-sizing: border-box; }
.jmsp-prod .swiper-slide { box-sizing: border-box; }

/* Important : si ton thème met des img en "display:inline" + marges, on verrouille */
.jmsp-prod__media img { display:block; max-width:100%; height:auto; }








/* Swiper container */
.jmsp-prod__swiper { overflow: hidden; width: 100%; }

/* Largeur des slides (slidesPerView: "auto") */
.jmsp-prod .swiper-slide{
  flex: 0 0 auto;
  width: calc((100% - 12px * (2.2 - 1)) / 2.2); /* 2.2 slides visibles */
  box-sizing: border-box;
}

@media (min-width: 768px){
  .jmsp-prod .swiper-slide{
    width: calc((100% - 14px * (3.2 - 1)) / 3.2); /* 3.2 visibles */
  }
  .jmsp-prod__swiper { --jmsp-gap:14px; }
}

@media (min-width: 1024px){
  .jmsp-prod .swiper-slide{
    width: calc((100% - 16px * (4 - 1)) / 4); /* 4 visibles */
  }
}









/* ===== Carrousel produits recommandés (UNIFORMISÉ) ===== */

.jmsp-prod{
  margin: 18px 0 24px;
  overflow: hidden;
}

.jmsp-prod__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
}

.jmsp-prod__title{
  margin:0;
  font-size:24px;
  line-height:1.1;
  font-weight:800;
  color:#254636;
}

.jmsp-prod__nav{
  display:flex;
  gap:8px;
  flex-shrink:0;
}

.jmsp-prod__prev,
.jmsp-prod__next{
  width:40px;
  height:40px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  color:#111;
  font-size:22px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
}

.jmsp-prod__prev.swiper-button-disabled,
.jmsp-prod__next.swiper-button-disabled,
.jmsp-prod__prev[disabled],
.jmsp-prod__next[disabled]{
  opacity:.35;
  cursor:default;
}

/* Swiper wrapper + fade à droite (priorité au code du bas) */
.jmsp-prod__swiper{
  position:relative;
  width:100%;
  overflow:hidden;
  padding:4px 0 2px;
}

.jmsp-prod__swiper::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:42px;
  height:100%;
  pointer-events:none;
  z-index:3;
  background:linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.92));
}

.jmsp-prod .swiper-wrapper{
  display:flex;
  align-items:stretch;
}

.jmsp-prod .swiper-slide{
  height:auto;
  box-sizing:border-box;
}

.jmsp-prod .swiper-slide > *{
  height:100%;
}

/* ===== Largeur des cartes ===== */
/* Mobile : 1 carte + aperçu de la suivante */
.jmsp-prod .swiper-slide{
  width:78% !important;
  flex:0 0 78% !important;
  max-width:78% !important;
}

/* Tablette : 2 cartes + aperçu de la suivante */
@media (min-width: 768px){
  .jmsp-prod__title{ font-size:22px; }

  .jmsp-prod .swiper-slide{
    width:calc((100% - 14px * 1.2) / 2.2) !important;
    flex:0 0 calc((100% - 14px * 1.2) / 2.2) !important;
    max-width:calc((100% - 14px * 1.2) / 2.2) !important;
  }
}

/* Bureau : 3 cartes + aperçu de la 4e */
@media (min-width: 1024px){
  .jmsp-prod__title{ font-size:20px; }

  .jmsp-prod .swiper-slide{
    width:calc((100% - 16px * 2.2) / 3.2) !important;
    flex:0 0 calc((100% - 16px * 2.2) / 3.2) !important;
    max-width:calc((100% - 16px * 2.2) / 3.2) !important;
  }
}

/* ===== Card ===== */
.jmsp-prod__card{
  display:flex;
  flex-direction:column;
  height:100%;
  text-decoration:none;
  color:inherit;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  overflow:hidden;
}

.jmsp-prod__media{
  aspect-ratio:1 / 1;
  background:#f7f7f7;
  overflow:hidden;
}

.jmsp-prod__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.jmsp-prod__body{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px;
}

.jmsp-prod__name{
  margin:0;
  font-size:16px;
  line-height:1.25;
  font-weight:800;
  color:#111;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:40px;
}

.jmsp-prod__price{
  font-size:14px;
  line-height:1.35;
  color:rgba(0,0,0,.72);
}

.jmsp-prod__price .ywcrbp_regular_price,
.jmsp-prod__price .ywcrbp_their_price{
  display:block;
}

.jmsp-prod__price .woocommerce-Price-amount{
  font-weight:800;
  color:#254636;
}

.jmsp-prod__price .ywcrbp_their_price .woocommerce-Price-amount{
  color:#fd6d3f;
}

.jmsp-prod__cta{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 12px;
  border-radius:12px;
  background:#254636;
  color:#fff;
  font-size:14px;
  font-weight:800;
  text-align:center;
}

@media (max-width: 767px){
  .jmsp-prod__body{ padding:10px; }
  .jmsp-prod__name{ font-size:15px; min-height:38px; }
  .jmsp-prod__price{ font-size:13px; }
  .jmsp-prod__cta{ min-height:38px; font-size:13px; }
}













/* ===== Related posts carousel (jmsp-rp) ===== */
.jmsp-rp{ margin-top: 26px; }
.jmsp-rp__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin: 0 0 12px;
}
.jmsp-rp__title{
  margin:0;
  font-size: clamp(18px, 2.1vw, 25px);
  line-height:1.15;
  font-weight: 900;
  color:#254636;
}
.jmsp-rp__nav{ display:flex; gap:8px; }
.jmsp-rp__prev,
.jmsp-rp__next{
  width:36px; height:36px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.12);
  background:#fff;
  color:#111;
  font-size:18px;
  cursor:pointer;
}
.jmsp-rp__prev[disabled],
.jmsp-rp__prev.swiper-button-disabled{ opacity:.35; cursor:default; }

.jmsp-rp__swiper{ overflow:hidden; width:100%; padding: 6px 2px 2px; }

.jmsp-rp__card{
  display:flex;
  flex-direction:column;
  height:100%;
  text-decoration:none;
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius: 18px;
  overflow:hidden;
  transition: transform .15s ease, box-shadow .15s ease;
}
@media (hover:hover){
  .jmsp-rp__card:hover{ transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.10); }
}

/* média uniforme */
.jmsp-rp__media{
  display:block;
  aspect-ratio: 16 / 10;
  background: rgba(0,0,0,.03);
  overflow:hidden;
}
.jmsp-rp__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
.jmsp-rp__ph{ display:block; width:100%; height:100%; background: rgba(0,0,0,.05); }

.jmsp-rp__body{
  padding: 12px 12px 14px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.jmsp-rp__name{
  font-weight: 900;
  color:#111;
  line-height:1.15;
  font-size: 14px;
  display:-webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:hidden;
  min-height: 32px;
}
.jmsp-rp__date{
  color: rgba(0,0,0,.60);
  font-size: .95rem;
  display: none;
}

a.jmsp-rp__card {
    border: 1px solid #8080804f;
    border-radius: 8px;
}

.swiper-slide a {
  display: flex !important;
}









/* =========================================================
   COMMENTS – version plus “premium” (simple, sans gros blocs)
   Remplace ton CSS précédent pour .jmsp-comments
   ========================================================= */

.jmsp-comments{
  margin-top: 34px;
  padding: 0;
}

/* Titre */
.jmsp-comments__title{
  margin: 0 0 14px;
  font-size: clamp(18px, 3.2vw, 25px);
  line-height: 1.05;
  font-weight: 900;
  color:#254636;
}

/* Neutralise le bootstrap/theme dans cette section */
.jmsp-comments .container{
  width: 100% !important;
  max-width: 980px !important;
  padding: 0 18px !important;
  margin: 0 auto !important;
  background: transparent !important;
}
.jmsp-comments .row{ display:block !important; margin:0 !important; }
.jmsp-comments [class*="col-"]{ width:100% !important; max-width:100% !important; padding:0 !important; }

/* Supprime le grand fond gris que ton thème met autour */
.jmsp-comments .comments-container,
.jmsp-comments .respond-container{
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0;
}

/* Ligne meta (reply on...) */
.jmsp-comments .comments-title{
  margin: 0 0 12px;
  font-size: 14px;
  color: rgba(0,0,0,.55);
  font-weight: 700;
}

/* Liste */
.jmsp-comments .commentlist{
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
  display: grid;
  gap: 12px;
}

/* Carte commentaire */
.jmsp-comments .comment-body{
  background:#fff;
  border: 1px solid rgba(0,0,0,.10) !important;
  border-radius: 18px;
  padding: 14px 16px;
  margin-bottom: 10px !important;
}

/* Header commentaire */
.jmsp-comments .comment-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap: 12px;
  margin-bottom: 8px;
}
.jmsp-comments .comment-author{
  display:flex;
  align-items:center;
  gap: 10px;
}
.jmsp-comments .comment-author .fn{
  font-weight: 900;
  color:#111;
}
.jmsp-comments .comment-author .says{ display:none; }

/* Date + edit */
.jmsp-comments .comment-metadata{
  font-size: 13px;
  color: rgba(0,0,0,.55);
  white-space: nowrap;
}
.jmsp-comments .comment-metadata a{
  color: rgba(0,0,0,.55);
  text-decoration:none;
}
.jmsp-comments .comment-metadata a:hover{ color:#254636; }
.jmsp-comments .edit-link a{
  margin-left: 8px;
  color:#254636;
  font-weight: 800;
  text-decoration:none;
}

/* Contenu */
.jmsp-comments .comment-content{
  font-size: 15px;
  line-height: 1.55;
  color: rgba(0,0,0,.82);
}
.jmsp-comments .comment-content p{ margin: 0; }

/* Reply bouton (discret) */
.jmsp-comments .reply{ margin-top: 10px; }
.jmsp-comments .comment-reply-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 34px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  color:#254636;
  font-weight: 900;
  text-decoration:none;
}
.jmsp-comments .comment-reply-link:hover{
  background: rgba(37,70,54,.08);
  border-color: rgba(37,70,54,.20);
}

/* Formulaire : carte dédiée plus propre */
.jmsp-comments #respond{
  background:#fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 22px;
  padding: 18px 16px;
}

/* Titre formulaire */
.jmsp-comments .comment-reply-title{
  margin: 0 0 10px;
  font-size: 26px;
  font-weight: 900;
  color:#254636;
}

/* Ligne “connecté en tant que …” en petit */
.jmsp-comments .logged-in-as{
  margin: 0 0 12px;
  font-size: 13px;
  color: rgba(0,0,0,.55);
  line-height: 1.4;
}
.jmsp-comments .logged-in-as a{
  color:#254636;
  font-weight: 800;
  text-decoration:none;
}
.jmsp-comments .required-field-message{ display:none; }

/* Label */
.jmsp-comments .comment-form-comment label{
  display:block;
  margin: 0 0 8px;
  font-weight: 900;
  color:#111;
}

/* Textarea */
/* Textarea */
.jmsp-comments #comment{
  width: 100%;
  min-height: 170px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.14) !important;
  padding: 12px;
  font-size: 15px;
  line-height: 1.5;
  outline: none;
}

/* Inputs */
.jmsp-comments #author,
.jmsp-comments #email{
  width: 100%;
  height: 46px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.14) !important;
  padding: 0 12px;
  font-size: 15px;
  line-height: 1.2;
  outline: none;
}

.comment-form-url {
display: none !important;
}

.jmsp-comments #comment:focus{
  border-color: rgba(37,70,54,.45);
  box-shadow: 0 0 0 4px rgba(37,70,54,.10);
}

/* Turnstile */
.jmsp-comments .cf-turnstile{ margin-top: 10px; }
.jmsp-comments .cf-turnstile-br{ display:none !important; }

/* Submit */
.jmsp-comments .form-submit{
  margin: 14px 0 0;
  display:block;
  justify-content:flex-start;
}
.jmsp-comments #submit{
  height: 46px;
  padding: 0 18px;
  border-radius: 14px;
  border: 0;
  background:#254636;
  color:#fff;
  font-weight: 900;
  cursor:pointer;
}
.jmsp-comments #submit:hover{ opacity:.92; }

/* Mobile */
@media (max-width: 640px){
  .jmsp-comments .container{ padding: 0 14px !important; }
  .jmsp-comments .comment-meta{ flex-direction:column; align-items:flex-start; }
  .jmsp-comments .comment-metadata{ white-space: normal; }
  .jmsp-comments .form-submit{ justify-content: stretch; }
  .jmsp-comments #submit{ width:100%; }
}





/* ===== Bouton "Répondre" : à droite + orange + texte blanc ===== */
.jmsp-comments .reply{
  margin-top: 10px;
  display:flex;
  justify-content:flex-end; /* à droite */
}

.jmsp-comments .comment-reply-link{
  background: #fd6d3f !important;
  border: 0 !important;
  color: #fff !important;
  font-weight: 900;
  height: 36px;
  padding: 0 14px;
  border-radius: 12px;
}

.jmsp-comments .comment-reply-link:hover{
  opacity: .92;
}





/* ===== Bouton "Répondre" : harmonieux (centré verticalement, largeur auto, cohérent) ===== */
.jmsp-comments .reply{
  margin-top: 12px;
  display:flex;
  justify-content:flex-end;
}

.jmsp-comments .comment-reply-link{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;

  background:#fd6d3f !important;
  color:#fff !important;

  padding: 10px 16px !important;
  height:auto !important;
  line-height: 1 !important;

  border-radius: 999px !important;
  border: 0 !important;

  font-weight: 900 !important;
  font-size: 14px !important;
  text-decoration:none !important;

  box-shadow: 0 10px 22px rgba(253,109,63,.18);
  transition: transform .12s ease, opacity .12s ease, box-shadow .12s ease;
}

.jmsp-comments .comment-reply-link:hover{
  opacity: .95;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(253,109,63,.22);
}

/* Option: un peu plus compact sur mobile */
@media (max-width: 480px){
  .jmsp-comments .comment-reply-link{
    padding: 9px 14px !important;
    font-size: 13px !important;
  }
}

.comments-title {
display:none!important;
}