/* Viie Brasil - Custom Styles */

/* Smooth transitions globais */
*, *::before, *::after {
    transition-property: color, background-color, border-color, transform, opacity, box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* Remove transition de dimensões para evitar bugs */
img, svg {
    transition: none;
}

/* Scrollbar customizada */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--color-brand, #C9A96E);
}

/* Focus ring padronizado */
*:focus-visible {
    outline: 2px solid var(--color-brand, #C9A96E);
    outline-offset: 2px;
}

/* Animação do badge do carrinho */
#cart-count {
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.2s;
}
#cart-count.scale-125 {
    transform: scale(1.25);
}

/* Product card hover */
article .aspect-square img {
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
article:hover .aspect-square img {
    transform: scale(1.05);
}

/* Button hover shine effect */
.btn-shine {
    position: relative;
    overflow: hidden;
}
.btn-shine::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: rgba(255,255,255,0.15);
    transform: rotate(30deg);
    transition: left 0.5s;
}
.btn-shine:hover::after {
    left: 120%;
}

/* Line clamp */
.line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* Admin sidebar transition */
#sidebar {
    transition: transform 0.3s ease;
}

/* Skeleton loading */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 8px;
}
@keyframes skeleton-loading {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Toast container */
#toast-container {
    max-width: min(360px, calc(100vw - 32px));
}

/* Prose mínimo para descrição de produto */
.prose p { margin-bottom: 0.75em; }
.prose ul { list-style: disc; padding-left: 1.25em; margin-bottom: 0.75em; }
.prose li { margin-bottom: 0.25em; }

/* Input accent brand */
input[type="checkbox"].accent-brand,
input[type="radio"].accent-brand {
    accent-color: var(--color-brand, #C9A96E);
}

/* Animação de spin */
@keyframes spin {
    to { transform: rotate(360deg); }
}
.animate-spin {
    animation: spin 0.8s linear infinite;
}

/* Pulse */
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Aspect ratio */
.aspect-square {
    aspect-ratio: 1 / 1;
}

/* Overflow hidden para imagens */
.overflow-hidden { overflow: hidden; }
