
.custom-button {
    height: 40px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    padding: 5px 20px;
}
.btn-icon-left i{
    margin-right: 5px;
}
.btn-icon-left svg{
    margin-right: 5px;
}
.btn-icon-right i{
    margin-left: 5px;
}
.btn-icon-right svg{
    margin-left: 5px;
}
.custom-button.button-model-simple, .custom-button.button-model-underline {
    padding: 5px 0px;
}
.custom-button.button-model-underline span{
    position: relative;
}
.custom-button.button-model-underline span:after {
    content: "";
    bottom: 0;
    left: 0%;
    opacity: 1;
    position: absolute;
    transition: all 0.3s;
    width: 100%;
}
.custom-button.button-model-underline:hover span:after {
    left: 0%;
    opacity: 1;
    width: 0%;
}


.custom-button.hover-effect-text_reveal {
    overflow: hidden; /* Pour éviter que le texte ne déborde */
    position: relative; /* Position pour l'animation */
}

.custom-button.hover-effect-text_reveal span.texte > span{
    display: inline-block; /* Chaque lettre agit indépendamment */
    transition: opacity 0.4s ease, transform 0.4s ease; /* Transition douce avec une durée de 0.5s */
}

.custom-button.hover-effect-text_reveal:hover .texte {
    opacity: 0; /* Les lettres disparaissent lors du hover */
    transform: translateY(30px); /* Descendent de 30px */
}
.custom-button.hover-effect-text_reveal:hover .texte.animate {
    opacity: 1; /* Les lettres disparaissent lors du hover */
    transform: translateY(0px); /* Descendent de 30px */
}

.custom-button.hover-effect-text_reveal:hover .texte.animate > span {
    opacity: 0; /* Les lettres disparaissent lors du hover */
    transform: translateY(30px); /* Descendent de 30px */
}

.custom-button.hover-effect-text_reveal .texte.animate > span.animate {
    opacity: 1; /* Les lettres réapparaissent */
    transform: translateY(0); /* Remontent à leur position normale */
}


.custom-button.hover-effect-zoom, .custom-button.hover-effect-zoom_follow {
    position: relative; /* Nécessaire pour positionner correctement l'ombre */
    transition: transform 0.2s ease, box-shadow 0.2s ease; /* Transition douce pour le zoom et l'ombre */
}

.custom-button.hover-effect-zoom:hover {
    transform: scale(1.1); /* Zoom au survol */
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); /* Ombre portée au survol */
}

.custom-button.hover-effect-zoom:hover::before {
    transform: translate(-50%, -50%) scale(1.1); /* L'effet de suivi sera un léger zoom */
}





.button-model-3d_normal {
    position: relative;
    height: 41.2px;
    transform-style: preserve-3d;
    transition: transform 300ms ease-in-out;
    transform: translateZ(-20.6px);
    min-width: 150px;
    display: inline-block;
}
.button-model-3d_normal .side {
    position: absolute;
    backface-visibility: hidden;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    left: 0;
    top: 0;
}

.button-model-3d_normal .default-side{
    transform: translateZ(20.6px);
}

.button-model-3d_normal .hover-side{

    transform: rotateX(90deg) translateZ(20.6px);
}
.button-model-3d_normal:hover {
    transform: rotateX(-90deg) translateY(50px);
}

.button-model-3d_normal .side i, .button-model-3d_normal .side svg{
    top: 0px;
    margin-left: 5px;
    margin-right: 0px;
}
.button-model-3d_normal.btn-icon-left .side i, .button-model-3d_normal.btn-icon-left .side svg{
    top: 0px;
    margin-right: 5px;
    margin-left: 0px;
}

.button-model-3d_normal .hover-side{
    transform: rotateX(90deg) translateZ(20.6px);
}