
.jsm-wrap,.jsm-theme-container{max-width:1200px;margin:0 auto}
.jsm-search-box{background:#f7f8fa;border:1px solid #e2e6ec;border-radius:14px;padding:20px;margin:0 0 28px}
.jsm-filter-grid{display:grid;grid-template-columns:minmax(0,520px) auto;gap:12px;align-items:end;justify-content:center}
.jsm-filter-field label{display:block;font-weight:700;margin:0 0 8px}
.jsm-category-select{display:block;width:100%;min-height:46px;padding:0 13px;border:1px solid #ccd3de;border-radius:9px;background:#fff;font-size:15px}
.jsm-search-btn{min-height:46px;padding:0 18px;border:0;border-radius:9px;background:#1f2937;color:#fff;font-weight:800;cursor:pointer}
.jsm-search-btn:hover{background:#111827}
.jsm-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.jsm-card{margin:0;border:1px solid #e2e6ec;border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 4px 13px rgba(15,23,42,.06);display:flex;flex-direction:column}
.jsm-image-trigger,.jsm-image-link,.jsm-card>a{display:block;width:100%;padding:0;margin:0!important;border:0;background:transparent;cursor:pointer;box-sizing:border-box;text-decoration:none}
.jsm-card img{display:block;width:100%;height:320px;object-fit:cover;object-position:center;margin:0;background:#eef1f4}
.jsm-card-title{display:flex;align-items:center;justify-content:center;min-height:64px;padding:13px 12px;text-align:center!important;font-size:17px;font-weight:800;line-height:1.35}
.jsm-empty{margin:24px 0;padding:25px;text-align:center;border:1px dashed #ccd3de;border-radius:10px;color:#667085}
.jsm-theme-page{width:100%}
.jsm-page-head{margin-bottom:24px}
.jsm-page-head h1{margin:0 0 12px;font-size:38px;line-height:1.2}
.jsm-page-intro{font-size:17px;line-height:1.7}
.jsm-page-intro p{margin:0 0 1em}
.jsm-breadcrumb{font-size:14px;color:#667085;margin:0 0 12px}
.jsm-breadcrumb a{text-decoration:none}
.jsm-single-content{font-size:17px;line-height:1.8;margin:0 auto 24px}
.jsm-single-cta{text-align:center;margin:25px 0 35px}
.jsm-gallery-heading{text-align:center;margin:0 0 18px}
.jsm-modal[hidden]{display:none!important}
body.jsm-modal-open{overflow:hidden}
.jsm-modal{position:fixed;z-index:999999;inset:0}
.jsm-modal-backdrop{position:absolute;inset:0;background:rgba(8,15,30,.78)}
.jsm-modal-card{position:relative;z-index:2;width:min(1000px,calc(100% - 20px));max-height:94vh;overflow:auto;margin:3vh auto;background:#fff;border-radius:18px;padding:20px 22px 24px;box-shadow:0 22px 70px rgba(0,0,0,.25)}
.jsm-close{position:absolute!important;z-index:10;right:14px!important;top:14px!important;width:44px!important;height:44px!important;border:1px solid #d9dee7!important;border-radius:50%!important;background:#fff!important;color:#1f2937!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;box-shadow:0 5px 17px rgba(0,0,0,.12)!important;cursor:pointer}
.jsm-close svg{width:19px;height:19px;fill:currentColor}
.jsm-close:hover{background:#f3f5f8!important}
.jsm-modal-media{width:100%;max-width:100%;background:#f1f3f5;border-radius:11px;overflow:hidden;text-align:center}
.jsm-modal-img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:72vh!important;object-fit:contain!important;object-position:center!important;margin:0 auto!important}
.jsm-modal-title{width:100%;margin:18px 0 10px;text-align:center!important;font-size:27px;line-height:1.25}
.jsm-modal-description{width:min(820px,100%);margin:0 auto;text-align:justify!important;line-height:1.8;font-size:17px;color:#334155}
.jsm-modal-description p{margin:0 0 1em;text-align:justify!important;text-indent:2em}
.jsm-modal-description p:first-child{text-indent:0}
.jsm-modal-actions{width:100%;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:22px auto 0;text-align:center}
.jsm-jobs-btn,.jsm-download-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:9px;text-decoration:none;font-weight:800;text-align:center;box-sizing:border-box}
.jsm-jobs-btn{background:#1f6feb;color:#fff}
.jsm-download-btn{background:#fff;color:#1f2937;border:1px solid #cfd6df}
.jsm-share{margin-top:24px;padding-top:19px;border-top:1px solid #e7e9ee;text-align:center}
.jsm-share-title{text-align:center!important;margin:0 0 15px;font-size:16px;font-weight:800}
.jsm-share-buttons{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:nowrap}
.jsm-share-btn{display:inline-flex!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;border:0!important;border-radius:22px!important;background:#fff!important;align-items:center!important;justify-content:center!important;padding:0!important;box-shadow:0 11px 24px rgba(15,23,42,.18),0 3px 7px rgba(15,23,42,.10),inset 0 1px 0 rgba(255,255,255,.9)!important;transition:transform .18s ease,box-shadow .18s ease!important}
.jsm-share-btn:hover{transform:translateY(-4px) scale(1.04)!important;box-shadow:0 17px 31px rgba(15,23,42,.22),0 4px 9px rgba(15,23,42,.12)!important}
.jsm-share-icon{display:flex!important;align-items:center!important;justify-content:center!important;width:54px!important;height:54px!important}
.jsm-share-icon img{display:block!important;width:54px!important;height:54px!important;max-width:54px!important;max-height:54px!important;min-width:54px!important;min-height:54px!important;object-fit:contain!important;border:0!important;background:transparent!important;box-shadow:none!important}
@media(max-width:1000px){
  .jsm-results{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jsm-card img{height:290px}
}
@media(max-width:650px){
  .jsm-filter-grid{grid-template-columns:1fr}
  .jsm-search-btn{width:100%}
  .jsm-results{grid-template-columns:1fr}
  .jsm-card img{height:280px}
  .jsm-modal-card{width:calc(100% - 12px);margin:2vh auto;padding:14px}
  .jsm-modal-title{font-size:23px}
  .jsm-modal-description{font-size:16px}
  .jsm-share-buttons{gap:11px}
  .jsm-share-btn{width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;border-radius:18px!important}
  .jsm-share-icon,.jsm-share-icon img{width:45px!important;height:45px!important;min-width:45px!important;min-height:45px!important}
}

/* V3.0.1.2 — métier dropdown search on /metiers/ only */
.jsm-job-search-box{
  max-width:820px;
  margin:0 auto 28px;
  padding:18px 20px;
  border:1px solid #e1e6ed;
  border-radius:12px;
  background:#f8fafc;
}
.jsm-job-search-box>label{
  display:block;
  margin:0 0 9px;
  font-size:16px;
  color:#172033;
}
.jsm-job-search-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.jsm-job-select{
  flex:1 1 auto;
  min-width:0;
  min-height:46px;
  padding:0 13px;
  border:1px solid #cfd6df;
  border-radius:9px;
  background:#fff;
  font-size:15px;
}
.jsm-job-search-btn{
  flex:0 0 auto;
  min-height:46px;
  padding:0 19px;
  border:0;
  border-radius:9px;
  background:#3867f2;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.jsm-job-search-btn:hover{
  background:#2f59d4;
}
@media(max-width:650px){
  .jsm-job-search-row{
    flex-direction:column;
    align-items:stretch;
  }
  .jsm-job-search-btn{
    width:100%;
  }
}

/* V3.0.1.7 — remove unwanted blue focus/borders around gallery images */
.jsm-card img,
.jsm-image-trigger,
.jsm-image-link,
.jsm-card>a,
.jsm-card img:focus,
.jsm-image-trigger:focus,
.jsm-image-link:focus,
.jsm-card>a:focus,
.jsm-card img:active,
.jsm-image-trigger:active,
.jsm-image-link:active,
.jsm-card>a:active{
  outline:none!important;
  border:0!important;
  box-shadow:none!important;
}

/* V3.0.1.8 — image slider controls inside popup */
.jsm-slider-prev,
.jsm-slider-next{
  position:absolute!important;
  z-index:12!important;
  top:34%!important;
  transform:translateY(-50%)!important;
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
  min-height:54px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid rgba(17,24,39,.10)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.96)!important;
  color:#111827!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  box-shadow:0 8px 22px rgba(15,23,42,.18)!important;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease!important;
}
.jsm-slider-prev{left:18px!important}
.jsm-slider-next{right:18px!important}
.jsm-slider-prev:hover,
.jsm-slider-next:hover{
  transform:translateY(-50%) scale(1.06)!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(15,23,42,.23)!important;
}
.jsm-slider-prev svg,
.jsm-slider-next svg{
  width:25px!important;
  height:25px!important;
  fill:currentColor!important;
}
.jsm-slider-prev[hidden],
.jsm-slider-next[hidden]{display:none!important}
@media(max-width:850px){
  .jsm-slider-prev,
  .jsm-slider-next{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    top:33%!important;
  }
  .jsm-slider-prev{left:10px!important}
  .jsm-slider-next{right:10px!important}
}
@media(max-width:650px){
  .jsm-slider-prev,
  .jsm-slider-next{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    top:30%!important;
  }
  .jsm-slider-prev{left:8px!important}
  .jsm-slider-next{right:8px!important}
  .jsm-slider-prev svg,
  .jsm-slider-next svg{width:21px!important;height:21px!important}
}

/* V3.0.1.9 — visual pagination without removing images from HTML */
.jsm-card.jsm-page-hidden{
  display:none!important;
}
.jsm-pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:7px;
  margin:24px auto 8px;
  flex-wrap:wrap;
}
.jsm-page-btn{
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid #d2d9e3;
  border-radius:8px;
  background:#fff;
  color:#223047;
  font-weight:700;
  cursor:pointer;
}
.jsm-page-btn:hover{
  background:#f2f5f9;
}
.jsm-page-btn.is-active{
  background:#3867f2;
  color:#fff;
  border-color:#3867f2;
}
.jsm-page-prev,
.jsm-page-next{
  font-size:22px;
  line-height:1;
}
.jsm-faq{
  max-width:900px;
  margin:42px auto 20px;
  padding-top:28px;
  border-top:1px solid #e5e7eb;
}
.jsm-faq h2{
  margin:0 0 18px;
  text-align:center;
  font-size:27px;
  line-height:1.3;
}
.jsm-faq-list{
  display:grid;
  gap:10px;
}
.jsm-faq-item{
  border:1px solid #e0e5ec;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
.jsm-faq-item summary{
  cursor:pointer;
  list-style:none;
  padding:16px 18px;
  font-weight:800;
  color:#18263a;
  position:relative;
  padding-right:46px;
}
.jsm-faq-item summary::-webkit-details-marker{
  display:none;
}
.jsm-faq-item summary:after{
  content:'+';
  position:absolute;
  right:17px;
  top:12px;
  font-size:22px;
  font-weight:500;
}
.jsm-faq-item[open] summary:after{
  content:'−';
}
.jsm-faq-answer{
  padding:0 18px 16px;
  color:#475569;
  line-height:1.75;
}
.jsm-faq-answer p{
  margin:0 0 .8em;
}
.jsm-faq-admin-item{
  padding:12px;
  margin:10px 0;
  border:1px solid #e2e6ec;
  border-radius:8px;
  background:#fafbfc;
}

/* V3.0.1.10 — robust pagination contrast */
.jsm-pagination .jsm-page-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:40px!important;
  width:40px!important;
  height:40px!important;
  padding:0!important;
  margin:0!important;
  background:#fff!important;
  color:#223047!important;
  border:1px solid #3f63ff!important;
  border-radius:7px!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
  text-indent:0!important;
  -webkit-text-fill-color:#223047!important;
}
.jsm-pagination .jsm-page-btn:hover{
  background:#eef2ff!important;
  color:#223047!important;
}
.jsm-pagination .jsm-page-btn.is-active{
  background:#3867f2!important;
  color:#fff!important;
  border-color:#3867f2!important;
  -webkit-text-fill-color:#fff!important;
}
.jsm-pagination .jsm-page-btn svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  fill:#223047!important;
  opacity:1!important;
  visibility:visible!important;
}
.jsm-pagination .jsm-page-btn.is-active svg{
  fill:#fff!important;
}
.jsm-pagination .jsm-page-btn[disabled]{
  opacity:.45!important;
}
.jsm-pagination .jsm-page-prev,
.jsm-pagination .jsm-page-next{
  font-size:0!important;
}

/* V3.0.1.11 — robust modal visibility */
.jsm-modal{
  position:fixed!important;
  inset:0!important;
  z-index:999999!important;
}
.jsm-modal[hidden]{display:none!important}
.jsm-modal:not([hidden]){display:block!important}
.jsm-modal-card{
  position:relative!important;
  z-index:1000000!important;
}
.jsm-image-trigger{
  position:relative!important;
  z-index:1!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}
.jsm-faq-general{
  margin-top:42px!important;
}

/* V3.0.1.12 — FAQ pleine largeur dans la zone de contenu */
.jsm-faq{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}
.jsm-faq .jsm-faq-list{
  width:100%!important;
}
.jsm-faq .jsm-faq-item{
  width:100%!important;
  box-sizing:border-box!important;
}

/* V3.0.1.14 — bouton Postuler Maintenant */
.jsm-apply-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:9px;
  background:#198754;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:800;
  box-sizing:border-box;
}
.jsm-apply-btn:hover{
  background:#157347;
  color:#fff!important;
}
.jsm-apply-btn[hidden]{
  display:none!important;
}

/* V3.0.1.15 — description propre à chaque image sous son titre */
.jsm-modal-title{
  margin:18px 0 8px!important;
}
.jsm-modal-description{
  width:min(860px,100%)!important;
  margin:0 auto 4px!important;
  text-align:left!important;
  color:#475569!important;
  font-size:16px!important;
  line-height:1.7!important;
}
.jsm-modal-description p{
  margin:0!important;
  text-align:left!important;
  text-indent:0!important;
}
.jsm-modal-description[hidden]{
  display:none!important;
}

/* V3.0.1.17 — FAQ text size */
.jsm-faq .jsm-faq-item summary{
  font-size:17px!important;
}
.jsm-faq .jsm-faq-answer{
  font-size:17px!important;
}

/* v3.0.2.15 — generic image source notice */
.jsm-image-source-note{
    margin: 10px 0 14px;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
    color: inherit;
}

/* v3.0.2.31 — placements for [wp_ad_camp_1] */
.jsm-ad-camp-1{
  width:100%;
  max-width:100%;
  margin:24px auto;
  text-align:center;
  clear:both;
}
.jsm-ad-camp-1 > *{max-width:100%;}


/* V3.0.2.38 — dedicated modern image pages opened in a new tab */
.jsm-image-link{position:relative;overflow:hidden}
.jsm-image-link:after{content:'↗';position:absolute;right:12px;top:12px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(17,24,39,.78);color:#fff;font-size:18px;font-weight:800;opacity:0;transform:translateY(-4px);transition:.18s ease}
.jsm-card:hover .jsm-image-link:after,.jsm-image-link:focus-visible:after{opacity:1;transform:translateY(0)}
