/**
 * TurboJet - Estilos para Botão Especial
 * Shortcode: [tj_botao_especial]
 * v2.2 - Adicionada regra para o estilo "link_comum".
 */

.tj-botao-especial {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    border-style: solid;
    border-radius: var(--tj-btn-border-radius, 6px);
    transition: all var(--tj-btn-trans-speed, 300ms) ease-in-out;
    z-index: 1; /* Garante o contexto de empilhamento para o pseudo-elemento */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* --- NOVO: Estilos para o Link Comum --- */
.tj-botao-link-comum {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: inline !important; /* Comportamento de link padrão */
    color: inherit !important; /* Herda a cor do link do tema */
    text-decoration: underline !important; /* Garante o sublinhado padrão de link */
}
.tj-botao-link-comum:hover {
    color: inherit !important; /* Mantém a herança de cor no hover */
    text-decoration: underline !important;
}
/* --- FIM DO NOVO --- */


a.tj-botao-especial:hover {
    text-decoration: none;
}

.tj-botao-largura-total {
    display: flex;
    width: 100%;
}

.tj-botao-texto,
.tj-botao-icone,
.tj-botao-imagem {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    position: relative;
    z-index: 2; /* Conteúdo fica acima do fundo animado */
    transition: color var(--tj-btn-trans-speed, 300ms) ease-in-out;
}

.tj-botao-icone svg {
    display: block;
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.tj-botao-imagem {
    max-height: 150%;
}


/* --- ESTILOS PRINCIPAIS --- */
.tj-botao-estilo-outline:hover {
    color: #fff !important;
}
.tj-botao-estilo-fundo_animado {
    background-position: 0 0;
}
.tj-botao-estilo-fundo_animado:hover {
    background-position: 100% 0;
}


/* --- EFEITOS DE HOVER --- */
.tj-botao-hover-grow:hover {
    transform: scale(1.05);
}
.tj-botao-hover-shrink:hover {
    transform: scale(0.95);
}
.tj-botao-hover-float:hover {
    transform: translateY(-3px);
    box-shadow: 0 7px 15px rgba(0,0,0,0.15);
}

/* --- NOVO MÉTODO PARA EFEITOS DE SLIDE --- */
[class*="tj-botao-hover-slide-"]::before {
    content: '';
    position: absolute;
    z-index: -1;
    background-image: linear-gradient(var(--tj-btn-grad-direcao, 145deg), var(--tj-btn-grad-start), var(--tj-btn-grad-end));
    transition: all var(--tj-btn-trans-speed, 300ms) cubic-bezier(0.7, 0, 0.2, 1);
}

[class*="tj-botao-hover-slide-"]:hover {
    color: #fff !important;
}


/* Slide para Direita */
.tj-botao-hover-slide-direita::before {
    top: 0; left: 0;
    width: 0; height: 100%;
}
.tj-botao-hover-slide-direita:hover::before {
    width: 100%;
}

/* Slide para Esquerda */
.tj-botao-hover-slide-esquerda::before {
    top: 0; right: 0;
    width: 0; height: 100%;
}
.tj-botao-hover-slide-esquerda:hover::before {
    width: 100%;
}

/* Slide para Baixo */
.tj-botao-hover-slide-baixo::before {
    top: 0; left: 0;
    width: 100%; height: 0;
}
.tj-botao-hover-slide-baixo:hover::before {
    height: 100%;
}

/* Slide para Cima */
.tj-botao-hover-slide-cima::before {
    bottom: 0; left: 0;
    width: 100%; height: 0;
}
.tj-botao-hover-slide-cima:hover::before {
    height: 100%;
}