/* Diseño Vir-Ur: el CSS solo alcanza al plugin y no interfiere con el header. */
.fwf-wrapper { --fwf-navy:#0d1b2a; --fwf-blue:#0057ff; --fwf-pink:#e8005a; --fwf-border:#e3e9f1; --fwf-muted:#5b6b7f; width:100%; color:var(--fwf-navy); font-family:Barlow,Arial,sans-serif; }
.fwf-panel { display:block; background:#fff; padding:0 0 22px; }
.fwf-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 0 18px; border-bottom:1px solid var(--fwf-border); font-size:18px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.fwf-clear { color:var(--fwf-muted); font-size:12px; font-weight:700; letter-spacing:0; text-transform:none; text-decoration:underline; }
.fwf-clear:hover { color:var(--fwf-blue); }
.fwf-filter-section { padding:24px 0; border-bottom:1px solid var(--fwf-border); }
.fwf-filter-section h3 { margin:0 0 14px; color:var(--fwf-navy); font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.fwf-select-menu { padding:0; }
.fwf-select-menu summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; cursor:pointer; color:var(--fwf-navy); font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.fwf-select-menu summary::-webkit-details-marker { display:none; }
.fwf-select-arrow { color:var(--fwf-blue); font-size:17px; line-height:1; transition:transform .15s ease; }
.fwf-select-menu[open] .fwf-select-arrow { transform:rotate(180deg); }
.fwf-options { display:grid; gap:10px; max-height:180px; margin-top:14px; padding:2px 8px 2px 0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--fwf-blue) #edf1f6; }
.fwf-options::-webkit-scrollbar { width:6px; }
.fwf-options::-webkit-scrollbar-track { background:#edf1f6; border-radius:6px; }
.fwf-options::-webkit-scrollbar-thumb { background:var(--fwf-blue); border-radius:6px; }
.fwf-check { display:flex; align-items:center; gap:11px; min-height:22px; cursor:pointer; color:#3d4c5f; font-size:15px; line-height:1.35; }
.fwf-check input { position:absolute; opacity:0; }
.fwf-box { width:21px; height:21px; flex:0 0 21px; border:2px solid #c4d2e4; border-radius:4px; background:#fff; transition:.15s ease; }
.fwf-check:hover .fwf-box { border-color:var(--fwf-blue); }
.fwf-check input:focus-visible + .fwf-box { outline:3px solid rgba(0,87,255,.25); outline-offset:2px; }
.fwf-check input:checked + .fwf-box { border-color:var(--fwf-navy); background:var(--fwf-navy); box-shadow:inset 0 0 0 4px #fff; }
.fwf-search { width:100%; min-height:44px; padding:10px 12px; border:1px solid #c4d2e4; border-radius:8px; font:inherit; }
.fwf-price-values { display:flex; justify-content:space-between; margin-bottom:11px; color:var(--fwf-muted); font-size:13px; }
.fwf-range-wrap { position:relative; height:28px; }
.fwf-range { position:absolute; top:6px; left:0; width:100%; margin:0; pointer-events:none; appearance:none; background:transparent; }
.fwf-range::-webkit-slider-runnable-track { height:5px; border-radius:999px; background:#dbe3ec; }
.fwf-range::-moz-range-track { height:5px; border-radius:999px; background:#dbe3ec; }
.fwf-range::-webkit-slider-thumb { width:22px; height:22px; margin-top:-8px; appearance:none; border:3px solid var(--fwf-blue); border-radius:50%; background:#fff; pointer-events:auto; cursor:pointer; }
.fwf-range::-moz-range-thumb { width:16px; height:16px; border:3px solid var(--fwf-blue); border-radius:50%; background:#fff; pointer-events:auto; cursor:pointer; }
.fwf-range-min { z-index:2; } .fwf-range-max { z-index:3; }
.fwf-actions { display:grid; gap:10px; padding-top:20px; }
.fwf-apply, .fwf-mobile-toggle { min-height:46px; border:0; border-radius:8px; background:var(--fwf-navy); color:#fff; font:inherit; font-weight:800; cursor:pointer; }
.fwf-apply:hover, .fwf-mobile-toggle:hover { background:var(--fwf-pink); }
.fwf-clear-bottom { padding:4px; text-align:center; }
.fwf-mobile-toggle { display:none; width:100%; align-items:center; justify-content:center; gap:9px; padding:10px 16px; }
.fwf-filter-icon { width:18px; font-size:20px; line-height:1; }
@media (max-width:1024px) { .fwf-wrapper { position:relative; z-index:auto; margin:0 0 16px; } .fwf-mobile-toggle { display:flex; } .fwf-panel { display:none; position:relative; margin-top:8px; padding:18px 16px; border:1px solid var(--fwf-border); border-radius:10px; box-shadow:0 12px 30px rgba(13,27,42,.12); } .fwf-wrapper.is-open .fwf-panel { display:block; } }
@media (min-width:1025px) { .fwf-panel { display:block !important; } }

/* Layout del archive WooCommerce: el filtro se ubica a la derecha. */
#main.site-main { width:100%; max-width:1440px; margin:0 auto; padding:0 40px; box-sizing:border-box; }
#main.site-main .fwf-shop-layout { display:flex; flex-direction:row; align-items:flex-start; gap:30px; width:100%; }
#main.site-main .fwf-shop-layout > .fwf-wrapper { flex:0 0 280px; width:280px; position:sticky; top:210px; z-index:1; }
/* Cuando se está logueado, WordPress suma su barra superior de 32px. */
body.admin-bar #main.site-main .fwf-shop-layout > .fwf-wrapper { top:242px; }
#main.site-main .fwf-products-column { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:20px; row-gap:15px; flex:1; min-width:0; }
#main.site-main .fwf-products-column .woocommerce-result-count { grid-column:1; margin:0; align-self:center; }
#main.site-main .fwf-products-column .woocommerce-ordering { grid-column:2; margin:0; justify-self:end; }
#main.site-main .fwf-products-column ul.products, #main.site-main .fwf-products-column nav.woocommerce-pagination { grid-column:1 / -1; width:100%; }
@media (max-width:1024px) { #main.site-main { padding:0 16px; } #main.site-main .fwf-shop-layout { display:block; } #main.site-main .fwf-shop-layout > .fwf-wrapper, body.admin-bar #main.site-main .fwf-shop-layout > .fwf-wrapper { width:100%; position:relative; top:auto; } #main.site-main .fwf-products-column { display:flex; flex-direction:column; width:100%; } }

/* Versión compacta. El botón queda estrictamente limitado a tablet y móvil. */
#main.site-main .fwf-mobile-toggle { display:none !important; }
#main.site-main .fwf-shop-layout > .fwf-wrapper { flex-basis:250px; width:250px; }
.fwf-panel { padding-bottom:14px; }
.fwf-heading { padding-bottom:12px; font-size:15px; }
.fwf-filter-section { padding:16px 0; }
.fwf-filter-section h3 { margin-bottom:10px; font-size:11px; letter-spacing:.12em; }
.fwf-select-menu summary { font-size:11px; letter-spacing:.12em; }
.fwf-options { gap:7px; max-height:160px; margin-top:10px; }
.fwf-check { gap:9px; min-height:19px; font-size:13px; }
.fwf-box { width:18px; height:18px; flex-basis:18px; border-width:1.5px; border-radius:3px; }
.fwf-check input:checked + .fwf-box { box-shadow:inset 0 0 0 3px #fff; }
.fwf-search { min-height:38px; padding:8px 10px; border-radius:6px; font-size:13px; }
.fwf-price-values { margin-bottom:8px; font-size:12px; }
.fwf-range-wrap { height:24px; }
.fwf-range { top:5px; }
.fwf-range::-webkit-slider-thumb { width:18px; height:18px; margin-top:-6.5px; border-width:2.5px; }
.fwf-range::-moz-range-thumb { width:13px; height:13px; border-width:2.5px; }
.fwf-actions { gap:7px; padding-top:14px; }
.fwf-apply, .fwf-mobile-toggle { min-height:40px; border-radius:6px; font-size:13px; }
.fwf-clear { font-size:11px; }
@media (max-width:1024px) {
  #main.site-main .fwf-shop-layout > .fwf-wrapper { width:100%; }
  #main.site-main .fwf-mobile-toggle { display:flex !important; margin:0 auto; max-width:250px; }
  .fwf-mobile-toggle { justify-content:center; text-align:center; }
}

/* El pulgar izquierdo debe pasar por delante de la segunda pista del rango. */
.fwf-range-min { z-index:5; }
.fwf-range-max { z-index:4; }

/* Una sola pista detrás de ambos controles: ningún círculo queda tapado. */
.fwf-range-wrap::before {
  content:""; position:absolute; top:50%; left:0; width:100%; height:5px;
  transform:translateY(-50%); border-radius:999px; background:#dbe3ec; z-index:1;
}
.fwf-range::-webkit-slider-runnable-track { background:transparent; }
.fwf-range::-moz-range-track { background:transparent; }

/* Tarjetas del catálogo: versión más compacta, limitada al archive del filtro. */
#main.site-main .fwf-products-column ul.products,
#main.site-main .fwf-products-column ul.products.columns-4 {
  display:grid !important; grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:14px !important; width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important;
}
/* WooCommerce agrega estos pseudo-elementos para layouts con float.
   En CSS Grid serían una celda vacía al inicio/final de la lista. */
#main.site-main .fwf-products-column ul.products::before,
#main.site-main .fwf-products-column ul.products::after {
  content:none !important; display:none !important;
}
#main.site-main .fwf-products-column ul.products li.product {
  display:flex !important; flex-direction:column !important; box-sizing:border-box !important; overflow:hidden !important;
  width:auto !important; float:none !important; margin:0 !important; padding:0 0 12px !important; border:1px solid #e3e9f1 !important; border-radius:12px !important;
  background:#fff !important; box-shadow:0 2px 10px rgba(13,27,42,.035) !important;
  transition:transform .2s ease, box-shadow .2s ease;
}
#main.site-main .fwf-products-column ul.products li.product:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(13,27,42,.09); }
#main.site-main .fwf-products-column ul.products li.product a.woocommerce-LoopProduct-link { display:flex !important; flex:1 !important; flex-direction:column !important; color:#0d1b2a !important; text-decoration:none !important; }
#main.site-main .fwf-products-column ul.products li.product img {
  width:100% !important; height:170px !important; margin:0 0 11px !important; padding:7px !important; box-sizing:border-box !important;
  border-bottom:1px solid #edf1f6 !important; background:#f5f8fc !important; object-fit:contain !important;
}
#main.site-main .fwf-products-column ul.products li.product .woocommerce-loop-product__title {
  display:-webkit-box; min-height:2.45em; height:2.45em; overflow:hidden;
  margin:0 !important; padding:0 12px !important; color:#0d1b2a !important; font-family:inherit !important;
  font-size:15px !important; font-weight:800 !important; line-height:1.22 !important; letter-spacing:0 !important; text-align:left !important; text-transform:uppercase !important;
  -webkit-box-orient:vertical; -webkit-line-clamp:2;
}
#main.site-main .fwf-products-column ul.products li.product .price {
  display:block !important; margin:7px 0 11px !important; padding:0 12px !important; color:#e8005a !important; text-align:left !important;
}
#main.site-main .fwf-products-column ul.products li.product .price .amount {
  color:#e8005a !important; font-size:22px !important; font-weight:800 !important; line-height:1.1 !important;
}
#main.site-main .fwf-products-column ul.products li.product .button,
#main.site-main .fwf-products-column ul.products li.product a.add_to_cart_button {
  display:block !important; margin:auto 12px 0 !important; padding:9px 7px !important; border:0 !important; border-radius:7px !important;
  background:#0d1b2a !important; color:#fff !important; font-size:10px !important; font-weight:800 !important; line-height:1.15 !important;
  letter-spacing:.04em !important; text-align:center !important; text-decoration:none !important; text-transform:uppercase !important;
}
#main.site-main .fwf-products-column ul.products li.product .button:hover,
#main.site-main .fwf-products-column ul.products li.product a.add_to_cart_button:hover,
#main.site-main .fwf-products-column ul.products li.product .button.added,
#main.site-main .fwf-products-column ul.products li.product .button.loading { background:#0057ff !important; color:#fff !important; }
@media (min-width:768px) and (max-width:1024px) {
  #main.site-main .fwf-products-column ul.products, #main.site-main .fwf-products-column ul.products.columns-4 { grid-template-columns:repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width:767px) {
  #main.site-main .fwf-products-column ul.products, #main.site-main .fwf-products-column ul.products.columns-4 { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:12px !important; }
  #main.site-main .fwf-products-column ul.products li.product img { height:135px !important; }
  #main.site-main .fwf-products-column ul.products li.product .woocommerce-loop-product__title { padding:0 10px !important; font-size:13px !important; }
  #main.site-main .fwf-products-column ul.products li.product .price { margin:6px 0 9px !important; padding:0 10px !important; }
  #main.site-main .fwf-products-column ul.products li.product .price .amount { font-size:18px !important; }
  #main.site-main .fwf-products-column ul.products li.product .button, #main.site-main .fwf-products-column ul.products li.product a.add_to_cart_button { margin:0 10px !important; padding:9px 6px !important; font-size:10px !important; }
}
