/* Base bouton */
.custom-enov-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: none;
  cursor: pointer;
  border: none;
  background: transparent;
  transition: all 0.25s ease;
}

.custom-enov-btn span {
  display: inline-block;
  white-space: nowrap;
}

/* --------------------------------------------------------
   STYLE 1 : TEXTE SOULIGNÉ
   -------------------------------------------------------- */

.custom-enov-btn--text {
  background: transparent;
  padding: 0;
}

.custom-enov-btn--text span {
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor; /* Couleur gérée par Elementor */
  transition: all .3s;
}

.custom-enov-btn--text:hover span {
  border-bottom-width: 1px;
}

/* --------------------------------------------------------
   STYLE 2 : BOUTON PLEIN CLASSIQUE
   -------------------------------------------------------- */

.custom-enov-btn--solid {
  /* Couleurs, radius, min-height gérés dans Elementor */
}

.custom-enov-btn--solid:hover 
{
  transform: translateY(-2px);
  box-shadow: 0px 5px 20px -5px #00000033;
}

.custom-enov-btn--solid span {
  /* Padding géré dans Elementor */
}

/* Petite adaptation responsive possible */
@media screen and (max-width: 600px) {
  .custom-enov-btn--solid {
    /* si tu veux une hauteur min différente en mobile, sinon laisse Elementor gérer */
  }
}

/* --------------------------------------------------------
   STYLE 3 : BOUTON ENCADRÉ ANIMÉ (TON STYLE D'ORIGINE)
   -------------------------------------------------------- */

.custom-enov-btn--frame {
  width: auto;
  height: 45px;
  line-height: 45px !important;
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.custom-enov-btn--frame span {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  padding: 0 20px; /* sera surchargé via Elementor si besoin */
  white-space: nowrap;
}

/* Lignes encadrées (utilisent la couleur définie dans Elementor via btn_border_color) */
.custom-enov-btn--frame:before,
.custom-enov-btn--frame:after {
  position: absolute;
  content: "";
  right: 0;
  bottom: 0;
  background: currentColor; /* fallback, surchargé par Elementor si btn_border_color défini */
  transition: all 0.3s ease;
}

.custom-enov-btn--frame:before {
  height: 50%;
  width: 2px;
}

.custom-enov-btn--frame:after {
  width: 20%;
  height: 2px;
}

.custom-enov-btn--frame:hover:before {
  height: 100%;
}

.custom-enov-btn--frame:hover:after {
  width: 100%;
}

.custom-enov-btn--frame span:before,
.custom-enov-btn--frame span:after {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  background: currentColor; /* idem, surchargé par Elementor si défini */
  transition: all 0.3s ease;
}

.custom-enov-btn--frame span:before {
  width: 2px;
  height: 50%;
}

.custom-enov-btn--frame span:after {
  width: 20%;
  height: 2px;
}

.custom-enov-btn--frame span:hover:before {
  height: 100%;
}

.custom-enov-btn--frame span:hover:after {
  width: 100%;
}

@media screen and (max-width: 600px) {
  .custom-enov-btn--frame {
    height: 40px;
    line-height: 40px !important;
  }
  .custom-enov-btn--frame span {
    padding: 0 10px;
  }
}
