.epw-widget-wrapper { width: 100%; }
.epw-filter-list { display: flex; flex-wrap: wrap; gap: 20px; list-style: none; padding: 0; margin: 0 0 30px 0; border-bottom: 2px solid #f0f0f0; }
.epw-filter-item { padding: 10px 0; cursor: pointer; font-size: 15px; color: #777; position: relative; transition: color 0.3s ease; margin-bottom: -2px; }
.epw-filter-item:hover { color: #111; }
.epw-filter-item.active { font-weight: 600; }
.epw-filter-item.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; }
.epw-grid-container { position: relative; min-height: 200px; }
.epw-loading-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(4px); z-index: 10; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; border-radius: 12px; }
.epw-loading-overlay.is-active { opacity: 1; visibility: visible; }
.epw-loader { width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid #111; border-radius: 50%; animation: epw-spin 0.8s linear infinite; }
@keyframes epw-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.epw-product-grid { display: grid; gap: 24px; margin-bottom: 40px; }
.epw-card { background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #f2f2f2; opacity: 1; transform: scale(1); transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.4s ease; }
.epw-card:hover { transform: translateY(-6px); box-shadow: 0 15px 30px rgba(0,0,0,0.06); }
.epw-card.epw-hidden { display: none; }
@keyframes epw-fade-in-up { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
.epw-card.epw-animated { animation: epw-fade-in-up 0.5s ease forwards; }
.epw-card-media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: #fdfdfd; display: block; }
.epw-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.epw-card:hover .epw-card-media img { transform: scale(1.06); }
.epw-badge { position: absolute; top: 15px; right: 15px; padding: 5px 12px; font-size: 12px; font-weight: 600; border-radius: 30px; z-index: 2; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.epw-card-body { padding: 20px; }
.epw-card-meta { font-size: 12px; color: #999; margin-bottom: 8px; }
.epw-card-title { font-size: 15px; margin: 0 0 15px 0; line-height: 1.5; }
.epw-card-title a { color: #222; text-decoration: none; transition: color 0.3s ease; }
.epw-card-title a:hover { color: #555; }
.epw-card-price { display: flex; align-items: center; gap: 12px; }
.epw-card-price del { color: #aaa; font-size: 13px; }
.epw-card-price ins { font-weight: 700; font-size: 16px; text-decoration: none; }
.epw-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 30px; }
.page-numbers { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; border-radius: 8px; background: #fff; border: 1px solid #eaeaea; color: #555; text-decoration: none; font-size: 14px; font-weight: 500; transition: all 0.3s ease; }
.page-numbers.prev, .page-numbers.next { padding: 0 15px; }