
/* === JM - Boutons (Standalone) — v1.2 === */
.jm-btns{
  --jm-gap:.66rem;
  --jm-justify:flex-start;
  --jm-wrap:wrap;
  --jm-stack-mobile:1;
  --jm-font:'', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, 'Apple Color Emoji','Segoe UI Emoji';
  --jm-fsize:1rem;
  --jm-lh:1.2;
  --jm-weight:600;
  --jm-ls:0;
  --jm-transform:none;
}
.jm-btns__row{
  display:flex;
  gap:var(--jm-gap);
  justify-content:var(--jm-justify);
  flex-wrap:var(--jm-wrap);
  align-items:center;
  width:100%;
}
.jm-btn{
  font-family:var(--_ff, var(--jm-font));
  font-size:var(--_fs, var(--jm-fsize));
  line-height:var(--_lh, var(--jm-lh));
  font-weight:var(--_fw, var(--jm-weight));
  letter-spacing:var(--_ls, var(--jm-ls));
  text-transform:var(--_tt, var(--jm-transform));
  text-decoration:var(--_td, none);
  font-style:var(--_it, normal);

  display:inline-flex; align-items:center; justify-content:center;
  padding:var(--_py, .66rem) var(--_px, 1.1rem);
  border-radius:var(--_radius, 9999px);
  border: var(--_bw, 1px) solid var(--_bc, transparent);
  color:var(--_color, #111);
  background:var(--_bg, transparent);
  box-shadow:var(--_shadow, none);
  transition:transform .14s ease, opacity .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
  text-decoration:none !important;
  will-change: transform, box-shadow, background-color, color, border-color;

  box-sizing: border-box;








}
/* Prevent theme link hover overrides */
.jm-btn:hover{ color: var(--_color, #111) !important; transform: translateY(-2px); box-shadow:0 10px 28px rgba(0,0,0,.12); }
.jm-btn:focus{ outline:2px solid rgba(0,0,0,.15); outline-offset:2px; }

/* Variants (primary & secondary) */
.jm-btn.is-primary{
  --_bg: var(--wp--preset--color--primary, #0f172a);
  --_color:#fff;
  /* Always keep a border matching the background to normalize size vs secondary */
  --_bc: var(--_bg);
  --_bw: 1px;

  border-style: solid;
  border-width: var(--_bw, 1px);
  border-color: var(--_bg, #0E2540);


  



}
.jm-btn.is-secondary{
  --_bg: transparent;
  /* Border color auto equals current text color */
  --_bc: var(--_color, currentColor);

  --_bw: 1px;

  border-color: var(--_bc, currentColor);
  border-style: solid;
  border-width: var(--_bw, 1px);
  

}

/* Hover behaviors driven by inline vars */
.jm-btn.is-primary:hover{
  /* If a per-button hover background is provided, use it */
  background: var(--_bg_hover, var(--_bg));
  color: var(--_color, #fff) !important;
  

  

  

  

  border-color: var(--_bg_hover, var(--_bg));
}
.jm-btn.is-secondary.__invert-hover:hover{
  /* Invert: background becomes text color; text becomes white */
  background: var(--_color, currentColor);
  color: var(--_invert_text, #fff) !important;
  border-color: transparent;
}
.jm-btn.is-secondary.__no-border{ border-width:0 }

/* Sizes */
.jm-btn.size-sm{ --_py:.5rem; --_px:.9rem; font-size:calc(var(--_fs, var(--jm-fsize)) * .92) }
.jm-btn.size-md{}
.jm-btn.size-lg{ --_py:.85rem; --_px:1.25rem; font-size:calc(var(--_fs, var(--jm-fsize)) * 1.05) }
.jm-btn.size-xl{ --_py:1rem; --_px:1.5rem; font-size:calc(var(--_fs, var(--jm-fsize)) * 1.16) }

/* Shapes */
.jm-btn.shape-pill{ --_radius:9999px }
.jm-btn.shape-rounded{ --_radius:12px }
.jm-btn.shape-square{ --_radius:4px }

/* Equal width (applied by view.js when data-equal=true) */
.jm-btn.__equal{ width: var(--jm-equal-w, auto) }

/* Stack on mobile */
@media (max-width: 680px){
  .jm-btns.__stack .jm-btns__row{ flex-direction:column; align-items:stretch; }
  .jm-btns.__stack .jm-btn{ width:100% }
}

.jm-btn.is-primary:focus-visible,
.jm-btn.is-primary:active{
  
  outline: none;

  

  

  border-color: var(--_bg_hover, var(--_bg));
}

.jm-btn.is-primary:focus-visible{  
  border-color: var(--_bg_hover, var(--_bg));
}


/* === Hard lock for geometry parity between variants === */
.jm-btn.is-primary,
.jm-btn.is-secondary{
  /* mêmes paddings & line-height, priorité forte contre le thème */
  padding: var(--_py, .66rem) var(--_px, 1.1rem) !important;
  line-height: var(--_lh, var(--jm-lh, 1.2)) !important;
  border-radius: var(--_radius, 9999px) !important;
  border-style: solid !important;
  border-width: var(--_bw, 1px) !important;
  box-sizing: border-box !important;
}
/* Primaire : la bordure existe et suit la couleur du fond */
.jm-btn.is-primary{
  --_bw: var(--_bw, 1px);
  --_bc: var(--_bg);
  border-color: var(--_bg, #0E2540) !important;
}
.jm-btn.is-primary:hover{
  border-color: var(--_bg_hover, var(--_bg)) !important;
}
.jm-btn.is-primary:focus-visible,
.jm-btn.is-primary:active{
  border-color: var(--_bg_hover, var(--_bg)) !important;
  outline: none;
}
/* Secondaire : bordure réelle contrôlée par --_bc */
.jm-btn.is-secondary{
  --_bw: var(--_bw, 1px);
  --_bc: var(--_color, currentColor);
  border-color: var(--_bc, currentColor) !important;
}

