.hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0px 12px 30px rgba(51, 51, 51, 0.08); }

.nav-underline { position: relative; }
.nav-underline::after {
    content: ''; position: absolute; width: 0; height: 1px; bottom: -4px; left: 0;
    background-color: currentColor; transition: width 0.3s ease;
}
.nav-underline:hover::after, .nav-underline.active::after { width: 100%; }

.ambient-shadow { box-shadow: 0px 4px 20px rgba(51, 51, 51, 0.05); }

.product-hover-effect { transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease; transform: translateY(4px); }
.group:hover .product-hover-effect { opacity: 1; visibility: visible; transform: translateY(0); }

/* estado vacio / carga */
.skeleton { background: linear-gradient(90deg, #efedec 25%, #f5f3f1 37%, #efedec 63%); background-size: 400% 100%; animation: skeleton-loading 1.4s ease infinite; }
@keyframes skeleton-loading { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

.badge-sold-out { position: absolute; inset: 0; background: rgba(27,28,27,0.55); display: flex; align-items: center; justify-content: center; }

/* panel admin */
.admin-shell { min-height: 100vh; }
.admin-input { width: 100%; border: 1px solid #d0c5af; border-radius: 0.25rem; padding: 0.65rem 0.85rem; font-family: Montserrat, sans-serif; font-size: 14px; background: #fff; }
.admin-input:focus { outline: 2px solid #735c00; outline-offset: 1px; }
.admin-label { display: block; font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #675c58; margin-bottom: 0.35rem; }
.toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 100; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #d0c5af; border-radius: 999px; }
