/* ============================================================================
   Lazy Loading Optimization Styles
   ========================================================================== */

/* Lazy loading blur effect - IMPROVED with placeholder blur */
.ns-listing[style*="--ns-lazy-loading: 1"] .wp-block-post-featured-image img[loading="lazy"],
.ns-listing[style*="--ns-lazy-loading: 1"] .ns-card__thumb img[loading="lazy"],
.ns-listing[style*="--ns-lazy-loading: 1"] .ns-card__image[loading="lazy"] {
    filter: blur(10px);
  	transition: filter 0.3s ease, opacity 0.3s ease;
}

.ns-listing[style*="--ns-lazy-loading: 1"] .wp-block-post-featured-image img[loading="lazy"].loaded,
.ns-listing[style*="--ns-lazy-loading: 1"] .ns-card__thumb img[loading="lazy"].loaded,
.ns-listing[style*="--ns-lazy-loading: 1"] .ns-card__image[loading="lazy"].loaded {
  filter: blur(0);
}

/* ============================================================================
   CSS Containment for Performance
   ========================================================================== */

/* Card containment - improves browser rendering performance */
.ns-card {
    contain: layout style paint;
}

/* Image containment - prevents layout recalculation */
.ns-card__image,
.ns-card .wp-block-post-featured-image img,
.ns-card__thumb img {
    contain: layout style paint;
}

/* Listing containment - optimizes grid rendering */
.ns-listing {
    contain: layout style;
}
