/* Base */
.ecg-grid { width:100%; position:relative; }
.ecg-grid-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1em; flex-wrap:wrap; gap:.5em; }
.ecg-ordering select { min-width:160px; padding:4px 8px; }
.ecg-result-count { font-size:14px; opacity:.8; }

/* Grid */
.ecg-items-grid { display:grid; gap:20px; }

/* Masonry (Isotope will override positions) */
.ecg-grid-masonry { display:block; }
.ecg-grid-masonry .ecg-item { width:100%; margin-bottom:20px; }

/* Item */
.ecg-item { text-align:center; position:relative; }
.ecg-item .ecg-img-wrap { display:block; position:relative; overflow:hidden; }
.ecg-item img { width:100%; height:auto; display:block; transition:opacity .4s ease, transform .4s ease; }
.ecg-item .ecg-img-second { position:absolute; inset:0; opacity:0; transition:opacity .4s ease; }
.ecg-item .ecg-img-wrap[data-ecg-crossfade="1"]:hover .ecg-img-main { opacity:0; }
.ecg-item .ecg-img-wrap[data-ecg-crossfade="1"]:hover .ecg-img-second { opacity:1; }
.ecg-title { margin:.5em 0 0; font-size:1em; line-height:1.2; }
.ecg-title a { text-decoration:none; }
.ecg-price { display:block; margin-top:.25em; font-size:.95em; }

/* Load More */
.ecg-load-more { margin-top:1.5em; padding:.75em 1.5em; cursor:pointer; border:1px solid #ddd; background:#fafafa; }
.ecg-load-more.loading { opacity:.5; pointer-events:none; }

/* Carousel */
.ecg-carousel-wrapper { position:relative; width:100%; }
.ecg-carousel-wrapper .swiper { width:100%; }
.ecg-carousel-wrapper .swiper-slide { text-align:center; }
.ecg-carousel-wrapper .swiper-button-prev, .ecg-carousel-wrapper .swiper-button-next { color:#000; }