/* Skeleton Loading Styles */
.skeleton {
    background-color: #e0e0e0;
    background-image: linear-gradient(90deg,
            #e0e0e0 0px,
            #f0f0f0 40px,
            #e0e0e0 80px);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite linear;
    border-radius: 4px;
    display: inline-block;
}

@keyframes skeleton-shimmer {
    0% {
        background-position: -200px 0;
    }

    100% {
        background-position: calc(200px + 100%) 0;
    }
}

.skeleton-text {
    height: 1em;
    margin-bottom: 0.5em;
    width: 100%;
}

.skeleton-text.title {
    height: 1.5em;
    width: 80%;
}

.skeleton-text.meta {
    height: 0.8em;
    width: 40%;
}

.skeleton-rect {
    width: 100%;
    height: 200px;
}

/* Specific Skeleton Layouts */

/* Hero Slider Skeleton */
.hero-skeleton {
    width: 100%;
    aspect-ratio: 16 / 9;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 40px;
    background-color: #f5f5f5;
    /* Light grey placeholder background */
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}


/* News Card Skeleton */
.card-skeleton {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.card-skeleton .image-box {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
}


/* List Item Skeleton */
.list-skeleton-item {
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}