/* Skeleton Loading Animation */
@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
    border-radius: 4px;
}

/* Specific Component Skeletons */

/* Service Card Skeleton */
.skeleton-card {
    background: #fff;
    border-radius: var(--radius-md, 12px);
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.skeleton-img {
    width: 100%;
    height: 200px;
    /* Matches typical card image height */
    background: #e0e0e0;
    /* Fallback */
}

.skeleton-info {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 1;
}

.skeleton-title {
    height: 24px;
    width: 70%;
}

.skeleton-price {
    height: 20px;
    width: 30%;
}

.skeleton-text {
    height: 16px;
    width: 100%;
}

.skeleton-btn {
    height: 40px;
    width: 100%;
    margin-top: auto;
    border-radius: 4px;
}

/* Category Pill Skeleton */
.skeleton-pill {
    width: 100px;
    height: 40px;
    border-radius: 50px;
    flex-shrink: 0;
}

/* Dark Mode Overrides */
body.dark-mode .skeleton {
    background: linear-gradient(90deg, #2d2d2d 25%, #3d3d3d 50%, #2d2d2d 75%);
    background-size: 200% 100%;
}

body.dark-mode .skeleton-card {
    background: #1e1e1e;
    /* Matches surface color */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}

body.dark-mode .skeleton-img {
    background: #2d2d2d;
}