.skeleton-grid {
    display: grid;
    gap: 20px;
    padding: 20px 0;
}

.skeleton-grid.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.skeleton-grid.grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

.skeleton-item {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    min-height: 300px;
}

.skeleton-item::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(238, 238, 238, 0.8), transparent);
    animation: shimmer 1.5s infinite;
}

.skeleton-image {
    width: 100%;
    padding-top: 100%;
    background-color: #f5f5f5;
    border-radius: 4px 4px 0 0;
}

.skeleton-line {
    height: 20px;
    margin: 10px 15px;
    background-color: #f5f5f5;
    border-radius: 4px;
}

.skeleton-line.short {
    width: 60%;
}

.skeleton-line.medium {
    width: 80%;
}

@keyframes shimmer {
    100% {
        transform: translateX(100%);
    }
}
