.catalog-skeleton {
    background: #e7edf3;
    position: relative;
    overflow: hidden;
    border-radius: 5px;
}

.catalog-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .7) 50%, transparent 80%);
    transform: translateX(-100%);
    animation: catalog-shimmer 1.5s infinite;
}

.catalog-skeleton-heading {
    width: 190px;
    height: 42px;
}

.catalog-skeleton-sort {
    width: 240px;
    height: 46px;
}

.catalog-skeleton-card:hover {
    transform: none;
}

.catalog-skeleton-image {
    height: 330px;
    border-radius: 26px;
}

.catalog-skeleton-thumbnails {
    display: flex;
    gap: 10px;
    padding: 12px;
}

.catalog-skeleton-thumbnails>span {
    width: 44px;
    height: 44px;
}

.catalog-skeleton-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.catalog-skeleton-location {
    width: 75%;
    height: 14px;
}

.catalog-skeleton-title {
    width: 95%;
    height: 24px;
}

.catalog-skeleton-short {
    width: 65%;
}

.catalog-skeleton-line {
    width: 100%;
    height: 12px;
}

.catalog-skeleton-specs {
    display: flex;
    gap: 18px;
    padding-block: 16px;
    border-block: 1px solid #edf1f5;
}

.catalog-skeleton-specs>span {
    width: 40%;
    height: 30px;
}

.catalog-skeleton-tags {
    display: flex;
    gap: 8px;
}

.catalog-skeleton-tags>span {
    width: 35%;
    height: 26px;
    border-radius: 14px;
}

.catalog-skeleton-button {
    margin-top: auto;
    width: 100%;
    height: 44px;
    border-radius: 24px;
}

@keyframes catalog-shimmer {
    to {
        transform: translateX(100%);
    }
}
@media (max-width: 600px) { .catalog-skeleton-image { height: 280px; border-radius: 26px 26px 0 0; } }
@media (prefers-reduced-motion: reduce) { .catalog-skeleton::after { animation: none; } }
