/* =============================================
   WP Like & Dislike — Estilos Principais
   ============================================= */

/* Wrapper */
.wpld-wrapper {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.wpld-layout-column {
    flex-direction: column;
    align-items: flex-start;
}

/* ── Botão base ── */
.wpld-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    transition: all 0.22s cubic-bezier(.4,0,.2,1);
    outline: none;
    position: relative;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    border: 2px solid transparent;
    background: #fff;
    padding: 10px 20px;
}

.wpld-btn:focus-visible {
    outline: 3px solid #6366f1;
    outline-offset: 2px;
}

/* ── Tipos de botão ── */
.wpld-btn-pill   { border-radius: 999px; }
.wpld-btn-round  { border-radius: 50%; padding: 10px; width: 52px; height: 52px; }
.wpld-btn-square { border-radius: 4px; }
.wpld-btn-flat   { border: none !important; box-shadow: none !important; background: transparent; }

/* ── Like ── */
.wpld-btn-like {
    border-color: #4CAF50;
    color: #4CAF50;
}
.wpld-btn-like:hover {
    background-color: #4CAF50;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(76,175,80,.35);
}
.wpld-btn-like.wpld-active {
    background-color: #4CAF50;
    color: #fff;
    box-shadow: 0 4px 12px rgba(76,175,80,.35);
}

/* ── Dislike ── */
.wpld-btn-dislike {
    border-color: #f44336;
    color: #f44336;
}
.wpld-btn-dislike:hover {
    background-color: #f44336;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(244,67,54,.35);
}
.wpld-btn-dislike.wpld-active {
    background-color: #f44336;
    color: #fff;
    box-shadow: 0 4px 12px rgba(244,67,54,.35);
}

/* ── Ícone ── */
.wpld-icon {
    font-size: 22px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    transition: transform 0.3s cubic-bezier(.34,1.56,.64,1);
}

.wpld-btn:hover .wpld-icon,
.wpld-btn.wpld-active .wpld-icon {
    transform: scale(1.22);
}

/* ── Label de texto ── */
.wpld-label {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* ── Contador ── */
.wpld-count {
    font-size: 13px;
    font-weight: 700;
    min-width: 18px;
    text-align: center;
    line-height: 1;
    opacity: .85;
    transition: opacity 0.2s;
}

.wpld-count-below {
    display: block;
    text-align: center;
    margin-top: 4px;
    font-size: 12px;
    color: #888;
}

/* ── Animação ao votar ── */
@keyframes wpld-pop {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.4) rotate(-8deg); }
    70%  { transform: scale(0.95) rotate(4deg); }
    100% { transform: scale(1.18); }
}

.wpld-btn.wpld-bounce .wpld-icon {
    animation: wpld-pop 0.45s cubic-bezier(.34,1.56,.64,1) forwards;
}

/* ── Flat style ── */
.wpld-btn-flat.wpld-btn-like { color: #4CAF50; }
.wpld-btn-flat.wpld-btn-dislike { color: #f44336; }
.wpld-btn-flat.wpld-btn-like:hover,
.wpld-btn-flat.wpld-btn-like.wpld-active { color: #2e7d32; background: transparent; box-shadow: none; }
.wpld-btn-flat.wpld-btn-dislike:hover,
.wpld-btn-flat.wpld-btn-dislike.wpld-active { color: #b71c1c; background: transparent; box-shadow: none; }

/* ── Loader ── */
.wpld-btn.wpld-loading {
    pointer-events: none;
    opacity: .65;
}
.wpld-btn.wpld-loading::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: wpld-spin 0.6s linear infinite;
    margin-left: 6px;
}
@keyframes wpld-spin {
    to { transform: rotate(360deg); }
}

/* ── Toast de feedback ── */
.wpld-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(60px);
    background: #323232;
    color: #fff;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    z-index: 9999;
    opacity: 0;
    transition: all .35s ease;
    pointer-events: none;
}
.wpld-toast.wpld-toast-show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ── Responsivo ── */
@media (max-width: 480px) {
    .wpld-btn { padding: 8px 14px; }
    .wpld-icon { font-size: 18px; }
}
