/* Professional Grid Card Shimmer CSS */
@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

@keyframes cardPulse {
    0% {
        opacity: 0.7;
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0.7;
    }
}

/* Main grid container */
.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

/* Grid card container with shimmer */
.grid-shimmer-card {

    overflow: hidden;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
    animation: cardPulse 2s infinite ease-in-out;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Individual elements with shimmer */
.shimmer-wrapper {
    background: linear-gradient(90deg, #2a2a2a 25%, #3a3a3a 50%, #2a2a2a 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
    position: relative;
    overflow: hidden;
}

/* Shapes */
.shimmer-circle {
    border-radius: 50%;
}

.shimmer-rounded {
    border-radius: 8px;
}

.shimmer-text {
    height: 14px;
    border-radius: 4px;
}

/* Specific elements for grid card */
.shimmer-grid-image {
    width: 100%;
    height: 180px;
    border-radius: 8px 8px 0 0;
}

.shimmer-grid-title {
    height: 20px;
    border-radius: 4px;
    margin-bottom: 10px;
}

.shimmer-grid-content {
    height: 14px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.shimmer-grid-tag {
    height: 24px;
    width: 80px;
    border-radius: 12px;
    margin-right: 10px;
    display: inline-block;
}

/* Card sections */
.grid-card-body {
    padding: 15px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.grid-card-footer {
    padding: 15px;
    border-top: 1px solid #333;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Width classes */
.w-20 { width: 20%; }
.w-40 { width: 40%; }
.w-60 { width: 60%; }
.w-80 { width: 80%; }
.w-90 { width: 90%; }
.w-100 { width: 100%; }

/* Responsive adjustments */
@media (max-width: 768px) {
    .grid-container {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 769px) and (max-width: 1200px) {
    .grid-container {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1201px) {
    .grid-container {
        grid-template-columns: repeat(4, 1fr);
    }
}