.w2s-hover-card{
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;

  /* transitions */
  --w2s-duration: 350ms;
  --w2s-ease: cubic-bezier(0.2,0.8,0.2,1);

  /* overlay */
  --w2s-overlay1: rgba(0,0,0,0.25);
  --w2s-overlay2: rgba(0,0,0,0.65);
  --w2s-angle: 180deg;

  /* filtres hover */
  --w2s-brightness: 85%;
  --w2s-grayscale: 0%;
  --w2s-blur: 0px;

  /* IMPORTANT : anti-crop parallax (auto via PHP, fallback ici) */
  --w2s-parallax-bleed: 28px;
}

/* BG 2-calques :
   - .__bg = translate (parallax)
   - .__bg-inner = scale (zoom) + bleed */
.w2s-hover-card__bg,
.w2s-hover-card__overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.w2s-hover-card__bg{
  z-index: 0;
  transform: translate3d(0,0,0);
  will-change: transform;
  backface-visibility: hidden;
}

.w2s-hover-card__bg-inner{
  position:absolute;

  /* ✅ BLEED anti-crop : le calque est plus grand que le container */
  inset: calc(-1 * var(--w2s-parallax-bleed));
  width: calc(100% + (2 * var(--w2s-parallax-bleed)));
  height: calc(100% + (2 * var(--w2s-parallax-bleed)));

  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;

  transform: scale(1);
  will-change: transform, filter;

  transition: transform var(--w2s-duration) var(--w2s-ease),
              filter var(--w2s-duration) var(--w2s-ease);
}

.w2s-hover-card__overlay{
  z-index: 1;
  background: linear-gradient(var(--w2s-angle), var(--w2s-overlay1), var(--w2s-overlay2));
  transition: opacity var(--w2s-duration) var(--w2s-ease);
  opacity: 1;
}

/* LAYERS */
.w2s-hover-card__default,
.w2s-hover-card__hover{
  position: absolute;
  inset: 0;
  z-index: 2;
  display:flex;
}

/* DEFAULT (titre) */
.w2s-hover-card__default{
  transition: opacity var(--w2s-duration) var(--w2s-ease),
              transform var(--w2s-duration) var(--w2s-ease);
}

/* positions du titre par défaut (preset + padding via Elementor) */
.w2s-hover-card__default.w2s-pos-bl{ align-items:flex-end; justify-content:flex-start; }
.w2s-hover-card__default.w2s-pos-br{ align-items:flex-end; justify-content:flex-end; }
.w2s-hover-card__default.w2s-pos-tl{ align-items:flex-start; justify-content:flex-start; }
.w2s-hover-card__default.w2s-pos-tr{ align-items:flex-start; justify-content:flex-end; }

/* Titre + icône (par défaut) */
.w2s-hover-card__default-titlewrap{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px; /* surchargé par Elementor */
}

.w2s-hover-card__default-titlewrap.w2s-iconpos-left{ flex-direction: row; }
.w2s-hover-card__default-titlewrap.w2s-iconpos-right{ flex-direction: row-reverse; }
.w2s-hover-card__default-titlewrap.w2s-iconpos-top{ flex-direction: column; align-items:flex-start; }
.w2s-hover-card__default-titlewrap.w2s-iconpos-bottom{ flex-direction: column-reverse; align-items:flex-start; }

.w2s-hover-card__default-icon{
  display:inline-flex;
  line-height: 1;
}

.w2s-hover-card__default-title{
  font-weight: 700;
}

/* HOVER content (position/align/padding/gap pilotés par Elementor) */
.w2s-hover-card__hover{
  flex-direction: column;
  opacity: 0;
  transition: opacity var(--w2s-duration) var(--w2s-ease),
              transform var(--w2s-duration) var(--w2s-ease);
}

/* Anim base : slide léger (si fade, on neutralise) */
.w2s-hover-card.w2s-anim-fade .w2s-hover-card__hover{ transform: none; }
.w2s-hover-card.w2s-anim-slide-up .w2s-hover-card__hover{ transform: translateY(14px); }
.w2s-hover-card.w2s-anim-zoom .w2s-hover-card__hover{ transform: translateY(10px); }

/* HOVER STATE */
.w2s-hover-card:hover .w2s-hover-card__default{
  opacity: 0;
  transform: translateY(6px);
}

.w2s-hover-card:hover .w2s-hover-card__hover{
  opacity: 1;
  transform: translateY(0);
}

/* Filtres hover */
.w2s-hover-card:hover .w2s-hover-card__bg-inner{
  filter: brightness(var(--w2s-brightness)) grayscale(var(--w2s-grayscale)) blur(var(--w2s-blur));
}

/* Zoom compatible parallax (scale sur inner) */
.w2s-hover-card.w2s-anim-zoom:hover .w2s-hover-card__bg-inner{
  transform: scale(1.06);
}

/* Reset margins (sliders Elementor fiables) */
.w2s-hover-card__hover-title,
.w2s-hover-card__hover-desc{
  margin: 0;
}

/* Bouton */
.w2s-hover-card__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  padding: 10px 14px;
  border-radius: 10px;
}

.w2s-hover-card__btn.is-disabled{
  cursor: default;
  opacity: .85;
}