/* Road Equipement — carte produit des boucles (modèle Elementor 133) */

/* ---------- la carte */
.elementor-133 .elementor-element-d632677{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
@media (hover:hover){
  .e-loop-item:hover .elementor-element-d632677{transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(15,36,26,.38)}
}
.elementor-133 .elementor-element-d632677 > .elementor-widget-shortcode:first-child{width:100%;margin:0}

/* ---------- visuel défilant */
.re-cm{position:relative;overflow:hidden;isolation:isolate;height:280px;border-radius:9px;background:var(--re-sable-clair)}\n@media (max-width:1024px){.re-cm{height:250px}}\n@media (max-width:767px){.re-cm{height:170px}}
.re-cm-piste{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;outline:0}
.re-cm-piste::-webkit-scrollbar{display:none}
.re-cm-slide{flex:0 0 100%;box-sizing:border-box;height:100%;display:block;padding:0;scroll-snap-align:start;scroll-snap-stop:always}
.re-cm .re-cm-img{display:block;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;object-fit:cover;object-position:center;border-radius:0!important;transition:transform .45s ease}
@media (hover:hover){.e-loop-item:hover .re-cm-img{transform:scale(1.035)}}

.re-cm-badge{position:absolute;top:10px;left:10px;z-index:2;pointer-events:none;line-height:0}

/* flèches : ordinateur, au survol de la carte */
.re-cm .re-cm-fl{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:36px;height:36px;min-height:0;margin:-18px 0 0!important;padding:0!important;border:0!important;border-radius:50%!important;background:rgba(251,249,243,.94)!important;color:var(--re-sapin)!important;box-shadow:0 6px 16px -8px rgba(15,36,26,.45);cursor:pointer;opacity:0;transition:opacity .2s ease,transform .2s ease,background-color .15s ease}
.re-cm .re-cm-fl:hover{background:#fff!important}
.re-cm .re-cm-fl--prec{left:10px;transform:translateX(-6px)}
.re-cm .re-cm-fl--suiv{right:10px;transform:translateX(6px) scaleX(-1)}
@media (hover:hover){
  .e-loop-item:hover .re-cm-fl--prec{opacity:1;transform:none}
  .e-loop-item:hover .re-cm-fl--suiv{opacity:1;transform:scaleX(-1)}
}
.re-cm .re-cm-fl[disabled]{opacity:0!important;pointer-events:none}
@media (hover:none){.re-cm .re-cm-fl{display:none}}

/* points */
.re-cm-points{position:absolute;left:0;right:0;bottom:12px;z-index:2;display:flex;justify-content:center;gap:5px;pointer-events:none;transition:opacity .2s ease}
.re-cm-points i{display:block;width:6px;height:6px;border-radius:3px;background:rgba(251,249,243,.7);box-shadow:0 0 0 1px rgba(15,36,26,.12);transition:width .2s ease,background-color .2s ease}
.re-cm-points i.actif{width:16px;background:var(--re-blanc);box-shadow:0 1px 4px rgba(15,36,26,.35)}

/* ---------- bouton panier */
.re-cm .re-cm-btn{position:absolute;z-index:4;display:flex!important;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;margin:0!important;border:0!important;background:var(--re-sapin)!important;color:var(--re-blanc)!important;font:650 15px/1 "League Spartan",sans-serif!important;letter-spacing:0;text-decoration:none!important;white-space:nowrap;cursor:pointer;transition:opacity .22s ease,transform .22s ease,background-color .15s ease}
.re-cm .re-cm-btn svg{flex:none}
.re-cm .re-cm-btn:hover,.re-cm .re-cm-btn:focus-visible{background:var(--re-mousse)!important}
.re-cm .re-cm-btn:focus-visible{outline:2px solid var(--re-blanc);outline-offset:-4px}
.re-cm .re-cm-btn.loading{opacity:.75!important;pointer-events:none}
.re-cm .re-cm-btn.loading svg{animation:re-cm-tourne 1s linear infinite}
.re-cm .re-cm-btn.re-ok{background:var(--re-terrain)!important}
.re-cm .re-cm-btn::after{display:none!important}
@keyframes re-cm-tourne{to{transform:rotate(360deg)}}

/* ordinateur : barre qui monte au survol de la carte */
@media (hover:hover){
  .re-cm .re-cm-btn{left:10px;right:10px;bottom:10px;height:46px;padding:0 14px!important;border-radius:8px!important;opacity:0;transform:translateY(14px)}
  .e-loop-item:hover .re-cm-btn,.re-cm .re-cm-btn:focus-visible,.re-cm .re-cm-btn.loading,.re-cm .re-cm-btn.re-ok{opacity:1;transform:none}
  .e-loop-item:hover .re-cm:has(.re-cm-btn) .re-cm-points{opacity:0}
}
/* tactile : pastille ronde toujours visible */
@media (hover:none){
  .re-cm .re-cm-btn{right:8px;bottom:8px;width:40px;height:40px;padding:0!important;border-radius:50%!important;box-shadow:0 6px 14px -6px rgba(15,36,26,.5)}
  .re-cm .re-cm-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .re-cm:has(.re-cm-btn) .re-cm-points{justify-content:flex-start;left:12px;bottom:24px}
}

/* ---------- textes de la carte */
.elementor-133 .elementor-element-fafab49 .elementor-heading-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.elementor-133 .elementor-element-c595be6 .elementor-heading-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.elementor-133 .elementor-element-aea3b6d .re-pastille{max-width:100%;box-sizing:border-box}
.elementor-133 .elementor-element-aea3b6d .re-pastille svg{flex:none}
.elementor-133 .elementor-element-aea3b6d .re-pastille span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.elementor-133 .elementor-element-e996fa4{flex-wrap:nowrap}
.elementor-133 .elementor-element-709bc60{min-width:0;flex:1 1 auto}
.elementor-133 .elementor-element-5079c6d .price{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:2px}
.elementor-133 .elementor-element-5079c6d .price del{font-size:.62em;font-weight:500;opacity:.7}
.elementor-133 .elementor-element-5079c6d .price .woocommerce-price-suffix{font-size:.55em;font-weight:500;color:var(--re-gris)}
.re-des{font-size:.58em;font-weight:500;color:var(--re-gris);letter-spacing:0}
@media (max-width:767px){
  .elementor-133 .elementor-element-aea3b6d .re-pastille{padding:4px 9px 4px 7px;font-size:12.5px}
  .elementor-133 .elementor-element-873bdf7 .stock{font-size:12px}
}

/* ---------- colonnes de la grille toujours égales (un texte non coupé ne doit pas élargir sa colonne) */
.elementor-loop-container>.e-loop-item,.elementor-133.e-loop-item,.elementor-133 .elementor-element-d632677,.elementor-133 .elementor-element-d632677 .e-con{min-width:0;max-width:100%}
.elementor-133 .elementor-widget{min-width:0;max-width:100%}
