/**
 * Amasty Brand List Widget CLS Optimization
 * Prevents Cumulative Layout Shift by reserving space for dynamic content
 */

/* Main container optimizations */
.ambrands-cls-optimized {
    /* Main container with reserved space for CLS prevention */
    min-height: 600px;
    /* CSS containment for better performance */
    contain: layout style;
    /* Smooth transitions when content loads */
    transition: min-height 0.3s ease-out;
    /* Prevent flash of unstyled content */
    opacity: 0;
    animation: fadeInBrands 0.5s ease-out 0.2s forwards;
}

/* Maintain height during filter transitions */
.ambrands-letters-list {
    min-height: 400px;
    transition: opacity 0.2s ease-in-out;
}

/* Brand items grid with performance optimizations */
.ambrands-content {
    contain: layout style;
    will-change: transform;
    transition: opacity 0.3s ease-in-out;
}

.ambrands-brand-item {
    contain: layout;
    transform: translateZ(0); /* GPU acceleration */
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

/* Smooth filter transitions */
.ambrands-letters-list {
    transition: opacity 0.2s ease-in-out;
}

.ambrands-letter {
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

/* Prevent flash during filter changes */
.ambrands-brandlist-widget[x-cloak] {
    opacity: 0 !important;
}

.ambrands-brandlist-widget {
    transition: opacity 0.2s ease-in-out;
}

/* Fade in animation for smoother loading */
@keyframes fadeInBrands {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive optimizations */
@media (max-width: 768px) {
    .ambrands-cls-optimized {
        min-height: 900px;
    }
}

/* Content loaded state */
.ambrands-cls-optimized.content-loaded {
    min-height: auto;
}

/* Tooltip optimizations */
.ambrands-brand-item .absolute {
    /* Prevent tooltip from causing layout shifts */
    contain: layout;
    z-index: 10;
}

/* Lazy loading UI styles */
.ambrands-load-more-btn {
    min-width: 200px;
    transition: all 0.2s ease-out;
}

.ambrands-load-more-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.ambrands-loading-indicator {
    padding: 1rem;
    min-height: 60px;
}

.ambrands-end-message {
    font-size: 0.9rem;
    border-top: 1px solid #e5e7eb;
    margin-top: 2rem;
    padding-top: 1rem;
}

.ambrands-auto-load-trigger {
    opacity: 0;
    pointer-events: none;
}

/* Performance optimizations for large lists */
.ambrands-brand-item {
    /* Use transform for better performance */
    will-change: transform;
    backface-visibility: hidden;
}

/* Reduce repaints during scrolling */
.ambrands-letters-list {
    transform: translateZ(0);
}

/* Optimize image loading */
.ambrands-image {
    /* Prevent layout shifts during image load */
    object-fit: contain;
}
