.wf_product{flex:0 0 100%;background-color:var(--wf-bg);border-radius:var(--radius-md);text-align:center;position:relative;padding-bottom:1.6rem;display:flex;flex-direction:column}.wf_product a:hover{opacity:1}.wf_product figure{position:relative;overflow:hidden;margin-bottom:1.6rem}.wf_product figure img{max-height:33rem;min-height:33rem;width:100%;height:100%;object-fit:contain;border-radius:var(--radius-md);margin-bottom:var(--space-3);transition:opacity .4s ease,transform .6s ease}.wf_product figure img.hover-img{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:2}.wf_product figure.has-hover:hover img:not(.hover-img){opacity:0}.wf_product figure.has-hover:hover .hover-img{opacity:1}.wf_product h3{font-family:var(--font-family-heading);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--wf-primary);margin-bottom:var(--space-2);line-height:var(--line-height-normal);padding:0 1rem}.wf_product p{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-medium);color:var(--wf-text-primary);margin:auto 0 1rem}.wf_product p strong,.wf_product p s,.wf_product p button{padding:.3rem 1rem;border-radius:var(--radius-pill);font-size:1.2rem;line-height:1.4}.wf_product p strong{background-color:var(--wf-surface-alt)}.wf_product p s{background-color:var(--wf-surface-alt);opacity:.8;text-decoration-color:var(--wf-text-muted)}.wf_product p button{background-color:var(--wf-surface);color:var(--wf-text-primary);font-weight:var(--font-weight-semibold);border:.1rem solid var(--wf-border);box-shadow:var(--shadow-xs)}.wf_product p button[aria-pressed=true]{background-color:var(--wf-secondary);border-color:var(--wf-secondary);transform:scale(1.05)}.wf_product p.variants{margin-top:0}.wf_product .btn{margin-bottom:1rem;align-self:center;margin-top:auto}.wf_listing{background-color:var(--wf-surface);padding:var(--space-4);display:flex;flex-direction:column}.wf_listing .shell--listing{display:flex;flex-direction:column}.wf_listing .wf_filters{position:sticky;top:7rem;z-index:100;background-color:var(--wf-surface);padding:1rem 0}@media (min-width:1024px){.wf_listing .wf_filters{top:8rem}}.wf_listing .wf_filters label,.wf_listing .wf_filters button{user-select:none}.wf_listing .wf_filters .shell{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center}@media (min-width:768px){.wf_listing .wf_filters .shell{justify-content:flex-start}}.wf_listing .wf_dropdown{position:relative}.wf_listing .wf_dropdown .wf_dropdown_toggle{display:flex;align-items:center;gap:.4rem;background-color:var(--wf-bg);border:1px solid var(--wf-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--font-size-md);color:var(--wf-text-primary);cursor:pointer;transition:box-shadow var(--transition-fast),background var(--transition-fast)}.wf_listing .wf_dropdown .wf_dropdown_toggle .icon{font-size:1.4rem;color:var(--wf-text-muted)}.wf_listing .wf_dropdown .wf_dropdown_toggle:hover{background-color:var(--wf-surface-alt)}.wf_listing .wf_dropdown .wf_dropdown_toggle:focus-visible{outline:0;box-shadow:0 0 0 2px var(--wf-focus-ring)}.wf_listing .wf_dropdown .wf_dropdown_menu{position:absolute;top:100%;left:0;width:max-content;min-width:14rem;background-color:var(--wf-bg);border:1px solid var(--wf-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin-top:.4rem;display:none;flex-direction:column;z-index:20}.wf_listing .wf_dropdown .wf_dropdown_menu li{list-style:none}.wf_listing .wf_dropdown .wf_dropdown_menu li button{background:0 0;border:0;text-align:left;width:100%;padding:var(--space-2) var(--space-4);font-size:1.4rem;color:var(--wf-text-primary);cursor:pointer;transition:background var(--transition-fast)}.wf_listing .wf_dropdown .wf_dropdown_menu li button:hover{background-color:var(--wf-surface-alt)}.wf_listing .wf_dropdown.open .wf_dropdown_menu{display:flex;animation:fadeIn .15s ease}.wf_listing .wf_toggles{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center}@media (min-width:768px){.wf_listing .wf_toggles{justify-content:flex-start}}.wf_listing .wf_toggles .wf_switch{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);background-color:var(--wf-surface-alt);border:1px solid var(--wf-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.wf_listing .wf_toggles .wf_switch:hover{background-color:var(--wf-surface)}.wf_listing .wf_toggles .wf_switch input{position:absolute;opacity:0;pointer-events:none}.wf_listing .wf_toggles .wf_switch .wf_toggle{position:relative;width:3.6rem;height:2rem;background-color:#d9d9d9;border-radius:var(--radius-pill);transition:background-color var(--transition-fast)}.wf_listing .wf_toggles .wf_switch .wf_toggle:before{content:"";position:absolute;top:.2rem;left:.2rem;width:1.6rem;height:1.6rem;background-color:#fff;border-radius:50%;transition:transform var(--transition-fast)}.wf_listing .wf_toggles .wf_switch input:checked+.wf_toggle{background-color:var(--wf-secondary)}.wf_listing .wf_toggles .wf_switch input:checked+.wf_toggle:before{transform:translate(1.6rem)}.wf_listing .wf_toggles .wf_switch .wf_label{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);color:var(--wf-primary);font-size:var(--font-size-md)}.wf_listing_grid{display:flex;flex-wrap:wrap;margin:4rem auto;gap:2.4rem}.wf_listing_grid .wf_product{width:100%}@media (min-width:600px){.wf_listing_grid .wf_product{flex:0 0 calc((100% - 2.4rem)/2)}}@media (min-width:768px){.wf_listing_grid .wf_product{flex:0 0 calc((100% - 4.8rem)/3)}}@media (min-width:1024px){.wf_listing_grid .wf_product{flex:0 0 calc((100% - 7.2rem)/4)}}.wf_listing_count{font-size:1.4rem;color:var(--wf-text-primary);margin:2rem 0;font-weight:600}.wf_listing_empty{font-size:1.4rem;color:var(--wf-text-primary);font-weight:600}.wf_listing #wf_load_more_products{margin:0 auto;align-self:center;width:unset}@keyframes fadeIn{0%{opacity:0;transform:translateY(-.4rem)}to{opacity:1;transform:translateY(0)}}