/* ==========================================================================
   HOVER HELPERS - COM VARIÁVEIS CSS (CUSTOM PROPERTIES)
   ========================================================================== */

:root {
    /* Cores padrão da biblioteca (Podem ser sobrescritas no CSS do projeto) */
    --hh-primary-color: #3498db;
    /* Cor principal para os efeitos */
    --hh-secondary-color: #2ecc71;
    /* Cor secundária / alternativa */
    --hh-line-height: 2px;
    /* Espessura padrão de linhas/bordas */
    --hh-transition-speed: 0.3s;
    /* Velocidade padrão das animações */
}

/* Configurações Globais dos Helpers */
[class*="hover-helper-"] {
    position: relative;
    display: inline-block;
    text-decoration: none;
    color: inherit;
    transition: color var(--hh-transition-speed) ease, transform var(--hh-transition-speed) ease;
    cursor: pointer;
}

/* ==========================================================================
   EFEITOS EXIGIDOS POR CLIENTES
   ========================================================================== */

/* 1. Efeito de Linha (25% para 100%)
   -------------------------------------------------------------------------- */
.hover-helper-underline {
    position: relative;
}

.hover-helper-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 25%;
    height: var(--hh-line-height);
    background-color: var(--hh-primary-color);
    /* Utilizando a variável */
    transition: width var(--hh-transition-speed) cubic-bezier(0.25, 0.8, 0.25, 1);
}

.hover-helper-underline:hover::after {
    width: 100%;
}

/* 2. Efeito de Quadrado
   -------------------------------------------------------------------------- */
.hover-helper-box {
    padding: 4px 8px;
    transition: color var(--hh-transition-speed) ease;
}

.hover-helper-box::before,
.hover-helper-box::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border: var(--hh-line-height) solid transparent;
    box-sizing: border-box;
}

.hover-helper-box::before {
    top: 0;
    left: 0;
}

.hover-helper-box::after {
    bottom: 0;
    right: 0;
}

.hover-helper-box:hover::before {
    width: 100%;
    height: 100%;
    border-top-color: var(--hh-primary-color);
    border-right-color: var(--hh-primary-color);
    transition: width 0.15s ease-out, height 0.15s ease-out 0.15s;
}

.hover-helper-box:hover::after {
    width: 100%;
    height: 100%;
    border-bottom-color: var(--hh-primary-color);
    border-left-color: var(--hh-primary-color);
    transition: border-color 0s ease-out 0.3s, width 0.15s ease-out 0.3s, height 0.15s ease-out 0.45s;
}

/* ==========================================================================
   SUGESTÕES: EFEITOS PROFISSIONAIS
   ========================================================================== */

/* 3. Shift Text (A linha entra empurrando)
   -------------------------------------------------------------------------- */
.hover-helper-shift {
    overflow: hidden;
    padding-bottom: 4px;
}

.hover-helper-shift::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: var(--hh-line-height);
    background-color: var(--hh-primary-color);
    transform: translateX(-101%);
    transition: transform var(--hh-transition-speed) cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-helper-shift:hover::after {
    transform: translateX(0);
}

/* 4. Reveal Background (A cor preenche o fundo)
   -------------------------------------------------------------------------- */
.hover-helper-reveal-bg {
    padding: 10px 20px;
    border: var(--hh-line-height) solid var(--hh-primary-color);
    border-radius: 4px;
    z-index: 1;
    overflow: hidden;
    transition: color var(--hh-transition-speed) ease;
}

.hover-helper-reveal-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--hh-primary-color);
    z-index: -1;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.hover-helper-reveal-bg:hover {
    color: #ffffff;
    /* Cor do texto ao dar hover (pode virar variável também!) */
}

.hover-helper-reveal-bg:hover::before {
    transform: scaleX(1);
    transform-origin: left;
}