/* 
* Estilos específicos para la página de Tienda (Shop)
* Archivo enqueued desde functions.php
*/

/* ==========================================================================
Tienda General
========================================================================== */

/* ============================================
   .val_filter — Sidebar de filtros tienda
   ============================================ */
.val_filter, .val_product_list {
  /* Burgundy */
  --burgundy: #8c2b3f;
  --burgundy-dark: #6e2233;
  --burgundy-deep: #2a0c0e;

  /* Dorados */
  --gold: #bb9975;
  --gold-light: #cdb08e;

  /* Cremas / fondos */
  --cream: #f6eee0;
  --cream-dark: #ede3d2;

  /* Neutros */
  --white: #ffffff;
  --black: #000000;
  --text-dark: #32373c;
  --text-mid: #5a5a5a;
  --text-light: #999;

  /* Bordes */
  --border-light: rgba(187, 153, 117, 0.3);
  --border-mid: rgba(187, 153, 117, 0.5);

  /* Otros */
  --success: #4a8c5c;

  /* Tipografías */
  --font-heading: 'Abril Fatface', serif;
  --font-script: Georgia, 'Times New Roman', serif;
  --font-body: 'Courier New', 'Lucida Console', monospace;

  /* Layout */
  --container-max: 1200px;
  --radius: 6px;
  --transition: all 0.3s ease;
}



   /* =========================================
   ROW FLEX para que sticky funcione en Divi
   ========================================= */
.et_pb_row.val-shop-row {
    display: flex;
    align-items: flex-start;
}

/* =========================================
   COLUMNA DEL FILTRO (sticky real)
   ========================================= */
.val_col_filter {
    position: sticky !important;
    top: 120px !important;
    align-self: flex-start !important;
    z-index: 20 !important;
}

.woocommerce-shop #page-container {
    overflow-x: clip;
    overflow-y: visible !important;
}

/* =========================================
   SCROLL INTERNO DEL FILTRO
   ========================================= */
.val_col_filter .val_filter {
    max-height: calc(100vh - 140px);
    overflow-y: auto;
}

/* =========================================
   Ajuste cuando estás logueado (admin bar)
   ========================================= */
body.admin-bar .val_col_filter {
    top: 150px;
}


/* === Tarjeta del filtro === */
.val_filter {
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius);
  overflow: hidden;
  font-family: var(--font-body);
  box-shadow: 0 2px 10px rgba(42, 12, 14, 0.06);
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 130px);
}

.val_filter::before {
  content: "Filtros";
  display: block;
  background: var(--burgundy-deep);
  color: var(--cream);
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1.5px;
  padding: 18px 22px;
  line-height: 1.4;
  flex-shrink: 0;
}

.val_filter .et_pb_code_inner {
  padding: 0;
  margin: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}
.val_filter .et_pb_code_inner::-webkit-scrollbar { width: 6px; }
.val_filter .et_pb_code_inner::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 999px; }
.val_filter .et_pb_code_inner::-webkit-scrollbar-track { background: transparent; }

/* === Form principal === */
.val_filter .wpf_form {
  background: var(--white);
  padding: 18px 22px;
  margin: 0;
}
.val_filter .wpf_items_wrapper { display: block; }

/* === Cada bloque de filtro === */
.val_filter .wpf_item {
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--border-light);
}
.val_filter .wpf_item:last-of-type {
  border-bottom: none;
  margin-bottom: 14px;
  padding-bottom: 4px;
}

.val_filter .wpf_item_name {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .5px;
  color: var(--burgundy-deep);
  text-transform: uppercase;
  padding-bottom: 8px;
  margin: 0 0 12px;
  border-bottom: 1px solid var(--border-light);
}

/* === Listas (categorías, marcas, tags) === */
.val_filter .wpf_hierachy,
.val_filter .wpf_item ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.val_filter .wpf_item li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
  font-size: 13px;
  color: var(--text-dark);
  line-height: 1.4;
  position: relative;
  flex-wrap: nowrap;
}

/* Checkboxes y radios personalizados */
.val_filter .wpf_item input[type="checkbox"],
.val_filter .wpf_item input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  min-width: 16px;
  border: 1.5px solid var(--gold);
  border-radius: 3px;
  background: var(--white);
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  transition: var(--transition);
  margin: 0;
}
.val_filter .wpf_item input[type="radio"] { border-radius: 50%; }

.val_filter .wpf_item input[type="checkbox"]:hover,
.val_filter .wpf_item input[type="radio"]:hover {
  border-color: var(--burgundy);
}
.val_filter .wpf_item input[type="checkbox"]:checked,
.val_filter .wpf_item input[type="radio"]:checked {
  background: var(--burgundy);
  border-color: var(--burgundy);
}
.val_filter .wpf_item input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 1px;
  width: 5px;
  height: 9px;
  border: solid var(--white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.val_filter .wpf_item input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--white);
}

.val_filter .wpf_item label {
  cursor: pointer;
  color: var(--text-dark);
  transition: var(--transition);
  flex: 1 1 auto;
  margin: 0;
  font-weight: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.val_filter .wpf_item label:hover { color: var(--burgundy); }

.val_filter .wpf_item_count {
  color: var(--burgundy);
  font-size: 11px;
  margin-left: auto;
  background: var(--cream);
  padding: 1px 8px;
  border-radius: 999px;
  min-width: 22px;
  text-align: center;
  flex-shrink: 0;
  line-height: 1.5;
  font-weight: 600;
}

/* Sub-niveles (jerarquía de categorías) */
.val_filter .wpf_hierachy ul,
.val_filter .wpf_item li ul {
  margin-left: 18px;
  margin-top: 4px;
  border-left: 1px solid var(--border-light);
  padding-left: 10px;
  width: 100%;
}

/* === Slider de Precio === */
.val_filter .wpf_item_price .wpf_slider,
.val_filter .ui-slider {
  background: var(--cream-dark);
  border: none;
  height: 4px;
  border-radius: 999px;
  margin: 18px 6px 14px;
  position: relative;
  box-shadow: none;
}
.val_filter .ui-slider .ui-slider-range {
  background: var(--burgundy);
  border-radius: 999px;
  height: 100%;
}
.val_filter .ui-slider .ui-slider-handle {
  background: var(--burgundy);
  border: 2px solid var(--white);
  width: 16px !important;
  height: 16px !important;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(42, 12, 14, .25);
  top: -6px !important;
  margin-left: -8px;
  cursor: grab;
  outline: none;
}
.val_filter .ui-slider .ui-slider-handle:hover,
.val_filter .ui-slider .ui-slider-handle.ui-state-active {
  background: var(--burgundy-dark);
  cursor: grabbing;
}

.val_filter .wpf-slider-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-mid);
  margin: 8px 4px 4px;
  gap: 8px;
}
.val_filter .wpf-slider-label .woocommerce-Price-amount {
  font-family: var(--font-body);
  font-weight: 700;
  color: var(--burgundy-deep);
  font-size: 13px;
}
.val_filter .wpf-slider-label .woocommerce-Price-currencySymbol { margin-left: 2px; }

.val_filter .wpf_price_from,
.val_filter .wpf_price_to { display: none !important; }

/* === Botón "Borrar filtros" === */
.val_filter .wpf_reset_btn {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--border-light);
  text-align: center;
  position: relative;
}
/* Quita la X que añade Divi al input[type=reset] */
.val_filter .wpf_reset_btn::after,
.val_filter .wpf_reset_btn::before {
  content: none !important;
  display: none !important;
}
.val_filter .wpf_reset_btn input[type="reset"] {
  background: transparent;
  border: 1px solid var(--burgundy);
  color: var(--burgundy);
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 9px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: var(--transition);
  width: 100%;
  font-weight: 600;
}
.val_filter .wpf_reset_btn input[type="reset"]:hover {
  background: var(--burgundy);
  color: var(--white);
  box-shadow: 0 2px 8px rgba(140, 43, 63, 0.25);
}

/* === Mensaje "no hay productos" === */
.val_filter .wpf-no-products-found {
  margin-top: 12px;
  padding: 10px 12px;
  background: var(--cream);
  border-radius: 4px;
  font-size: 12px;
  color: var(--text-mid);
}
.val_filter .wpf-no-products-found p { margin: 0; }

.val_filter .wpf_form.wpf_loading { opacity: .6; pointer-events: none; }

/* === VALNIEZO – Cards de producto estilo mockup === */
:root{
  --vz-burgundy:#8c2b3f;
  --vz-burgundy-dark:#6e2233;
  --vz-gold:#bb9975;
  --vz-cream:#f6eee0;
  --vz-white:#ffffff;
  --vz-text-dark:#32373c;
  --vz-text-mid:#5a5a5a;
  --vz-text-light:#999999;
  --vz-border-light:rgba(187,153,117,.3);
  --vz-radius:6px;
  --vz-transition:all .3s ease;
  --vz-font-heading:'Abril Fatface', Georgia, serif;
  --vz-font-body:'Courier New','Lucida Console',monospace;
}


/* Card */
.woocommerce .val_product_list ul.products li.product{
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
  clear:none !important;
  background:#fbf8f3 !important;
  border:1px solid var(--vz-border-light) !important;
  border-radius:var(--vz-radius) !important;
  box-shadow:0 2px 10px rgba(42,12,14,.06) !important;
  overflow:hidden !important;
  position:relative !important;
  transition:var(--vz-transition) !important;
  display:flex !important;
  flex-direction:column !important;
}
.woocommerce .val_product_list ul.products li.product:hover{
  box-shadow:0 12px 32px rgba(42,12,14,.10);
  background:#fff !important;
}

/* Enlace que envuelve imagen y título */
.woocommerce .val_product_list ul.products li.product > a.woocommerce-LoopProduct-link{
  display:flex !important;
  flex-direction:column !important;
  text-decoration:none !important;
  color:inherit !important;
  margin:0 !important;
  padding:0 !important;
  background: #fbf8f3 !important;
}

/* Imagen */
.woocommerce .val_product_list ul.products li.product .et_shop_image{
  display:block !important;
  position:relative !important;
  aspect-ratio:1/1 !important;
  overflow:hidden !important;
  background:var(--vz-cream) !important;
  margin:0 !important;
  border-radius:0 !important;
  background: #fbf8f3 !important;
}
.woocommerce .val_product_list ul.products li.product img,
.woocommerce .val_product_list ul.products li.product .et_shop_image img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  transition:transform .7s ease !important;
}
.woocommerce .val_product_list ul.products li.product:hover img{ transform:scale(1.08); }
.woocommerce .val_product_list ul.products li.product .et_overlay{ display:none !important; }

/* Título */
.woocommerce .val_product_list ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--vz-font-heading) !important;
  font-size:22px !important;
  line-height:1.2 !important;
  color:var(--vz-text-dark) !important;
  letter-spacing:.3px !important;
  margin:0 !important;
  padding:18px 22px 4px 22px !important;
  text-transform:none !important;
  font-weight:400 !important;
}

/* Eyebrow de categoría sobre el título (mapeo por product_cat-*) */
.woocommerce .val_product_list ul.products li.product .woocommerce-loop-product__title::before{
  content:"Producto";
  display:block;
  font-family:var(--vz-font-body);
  font-size:9px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--vz-gold);
  margin-bottom:6px;
  font-weight:400;
}
.woocommerce .val_product_list ul.products li.product.product_cat-marcas-invitadas .woocommerce-loop-product__title::before{ content:"Marcas Invitadas"; }
.woocommerce .val_product_list ul.products li.product.product_cat-nuestros-ibericos .woocommerce-loop-product__title::before{ content:"Ibérico"; }
.woocommerce .val_product_list ul.products li.product.product_cat-nuestros-productos .woocommerce-loop-product__title::before{ content:"Vacuno"; }

/* Precio */
.woocommerce .val_product_list ul.products li.product .price{
  display:block !important;
  margin:10px 0 0 0 !important;
  padding:10px 22px 14px 22px !important;
  border-top:.8px solid var(--vz-border-light) !important;
  font-family:var(--vz-font-heading) !important;
  font-size:22px !important;
  color:var(--vz-burgundy) !important;
  letter-spacing:.3px !important;
  font-weight:400 !important;
}
.woocommerce .val_product_list ul.products li.product .price ins{
  background:transparent !important;
  text-decoration:none !important;
  font-weight:400 !important;
  color:var(--vz-burgundy) !important;
}
.woocommerce .val_product_list ul.products li.product .price del{
  font-size:13px !important;
  color:var(--vz-text-light) !important;
  margin-right:6px !important;
  opacity:.7 !important;
}
.woocommerce .val_product_list ul.products li.product .price .woocommerce-Price-amount,
.woocommerce .val_product_list ul.products li.product .price .woocommerce-Price-currencySymbol{
  font-family:var(--vz-font-heading) !important;
  font-size:22px !important;
  color:var(--vz-burgundy) !important;
}

/* Botón Añadir al carrito */
.woocommerce .val_product_list ul.products li.product .button,
.woocommerce .val_product_list ul.products li.product a.add_to_cart_button{
  display:flex !important;
  width:calc(100% - 36px) !important;
  margin:6px 18px 18px 18px !important;
  margin-top:auto !important;
  padding:12px 16px !important;
  background:var(--vz-burgundy) !important;
  color:var(--vz-cream) !important;
  border:none !important;
  border-radius:var(--vz-radius) !important;
  font-family:var(--vz-font-body) !important;
  font-size:11px !important;
  letter-spacing:2px !important;
  text-transform:uppercase !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  transition:var(--vz-transition) !important;
  position:relative !important;
  overflow:hidden !important;
  text-align:center !important;
  font-weight:400 !important;
  line-height:1.2 !important;
  box-shadow:none !important;
  white-space:normal !important;
}
.woocommerce .val_product_list ul.products li.product .button::before,
.woocommerce .val_product_list ul.products li.product a.add_to_cart_button::before{
  content:"";
  position:absolute;
  top:0; left:-100%;
  width:100%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);
  transition:left .5s ease;
}
.woocommerce .val_product_list ul.products li.product .button:hover,
.woocommerce .val_product_list ul.products li.product a.add_to_cart_button:hover{
  background:var(--vz-burgundy-dark) !important;
  color:var(--vz-cream) !important;
  box-shadow:0 4px 16px rgba(140,43,63,.25) !important;
  transform:none !important;
}
.woocommerce .val_product_list ul.products li.product .button:hover::before,
.woocommerce .val_product_list ul.products li.product a.add_to_cart_button:hover::before{ left:100%; }

.woocommerce .val_product_list ul.products li.product .added_to_cart{ display:none !important; }

/* === VALNIEZO – Select de ordenación estilo mockup === */
.woocommerce-ordering,
.woocommerce form.woocommerce-ordering,
.woocommerce-page form.woocommerce-ordering{
  margin:0 0 18px 0 !important;
  display:inline-block !important;
}

.woocommerce form.woocommerce-ordering select.orderby,
.woocommerce-page form.woocommerce-ordering select.orderby,
select[name="orderby"]{
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  appearance:none !important;
  background:#ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23bb9975' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center !important;
  background-size:12px 12px !important;
  border:1px solid rgba(187,153,117,.5) !important;
  border-radius:4px !important;
  padding:9px 36px 9px 14px !important;
  font-family:'Courier New','Lucida Console',monospace !important;
  font-size:11px !important;
  color:#32373c !important;
  letter-spacing:1px !important;
  text-transform:none !important;
  line-height:1.2 !important;
  height:auto !important;
  min-width:200px !important;
  cursor:pointer !important;
  box-shadow:none !important;
  outline:none !important;
  transition:border-color .25s ease, box-shadow .25s ease !important;
}

.woocommerce form.woocommerce-ordering select.orderby:hover,
.woocommerce-page form.woocommerce-ordering select.orderby:hover,
select[name="orderby"]:hover{
  border-color:#bb9975 !important;
}

.woocommerce form.woocommerce-ordering select.orderby option,
select[name="orderby"] option{
  font-family:'Courier New','Lucida Console',monospace;
  font-size:12px;
  color:#32373c;
  background:#ffffff;
  padding:6px 10px;
  letter-spacing:.5px;
}


/* === VALNIEZO – Result count estilo mockup === */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count,
p.woocommerce-result-count{
  font-family:'Courier New','Lucida Console',monospace !important;
  font-size:11px !important;
  color:#5a5a5a !important;
  letter-spacing:1px !important;
  text-transform:uppercase !important;
  font-weight:400 !important;
  margin:0 0 18px 0 !important;
  padding:0 !important;
  line-height:1.4 !important;
  float:none !important;
}
.woocommerce .woocommerce-result-count strong,
.woocommerce-page .woocommerce-result-count strong{
  color:#8c2b3f !important;
  font-weight:400 !important;
  font-family:'Courier New','Lucida Console',monospace !important;
}

/* ============================================================
   VALNIEZO – Tienda WooCommerce estilo mockup
   ============================================================ */

:root{
  --vz-burgundy:#8c2b3f;
  --vz-burgundy-dark:#6e2233;
  --vz-gold:#bb9975;
  --vz-cream:#f6eee0;
  --vz-white:#ffffff;
  --vz-text-dark:#32373c;
  --vz-text-mid:#5a5a5a;
  --vz-text-light:#999999;
  --vz-border-light:rgba(187,153,117,.3);
  --vz-radius:6px;
  --vz-transition:all .3s ease;
  --vz-font-heading:'Abril Fatface', Georgia, serif;
  --vz-font-body:'Courier New','Lucida Console',monospace;
}

/* ------------------------------------------------------------
   3. RESULT COUNT  ("Mostrando 1-8 de 10 resultados")
   ------------------------------------------------------------ */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count,
p.woocommerce-result-count{
  font-family:var(--vz-font-body) !important;
  font-size:11px !important;
  color:var(--vz-text-mid) !important;
  letter-spacing:1px !important;
  text-transform:uppercase !important;
  font-weight:400 !important;
  margin:0 0 18px 0 !important;
  padding:0 !important;
  line-height:1.4 !important;
  float:none !important;
  display: inline-block;
}
.woocommerce .woocommerce-result-count strong,
.woocommerce-page .woocommerce-result-count strong{
  color:var(--vz-burgundy) !important;
  font-weight:400 !important;
  font-family:var(--vz-font-body) !important;
}





/* ------------------------------------------------------------
   5. PAGINACIÓN WOOCOMMERCE
   ------------------------------------------------------------ */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination{
  margin:32px 0 0 0 !important;
  text-align:center !important;
  border:none !important;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul{
  display:inline-flex !important;
  gap:8px !important;
  border:none !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li{
  border:none !important;
  margin:0 !important;
  background:transparent !important;
  overflow:visible !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:38px !important;
  height:38px !important;
  padding:0 12px !important;
  background:var(--vz-white) !important;
  color:var(--vz-text-dark) !important;
  border:1px solid rgba(187,153,117,.5) !important;
  border-radius:4px !important;
  font-family:var(--vz-font-body) !important;
  font-size:12px !important;
  letter-spacing:1px !important;
  text-decoration:none !important;
  line-height:1 !important;
  transition:all .25s ease !important;
  box-shadow:none !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce-page nav.woocommerce-pagination ul li a:hover{
  color:var(--vz-burgundy) !important;
  border-color:var(--vz-gold) !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-page nav.woocommerce-pagination ul li span.current{
  background:var(--vz-burgundy) !important;
  color:var(--vz-cream) !important;
  border-color:var(--vz-burgundy) !important;
}
.woocommerce nav.woocommerce-pagination ul li .next,
.woocommerce nav.woocommerce-pagination ul li .prev{
  font-size:14px !important;
}

/* ============================================================
   VALNIEZO – RESPONSIVE GRID + MOBILE FILTERS
   ============================================================ */

/* === GRID DE PRODUCTOS RESPONSIVE === */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:24px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{
  display:none !important;
  content:none !important;
}

/* Tablet horizontal: 3 columnas */
@media (max-width:1480px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:repeat(3,1fr) !important;
    gap:20px !important;
  }
}

/* Tablet vertical / móvil grande: 2 columnas */
@media (max-width:980px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:repeat(2,1fr) !important;
    gap:16px !important;
  }
}

/* Móvil pequeño: 1 columna */
@media (max-width:580px){
  .woocommerce ul.products,
  .woocommerce-page ul.products{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
}

/* === Tipografía cards en pantallas pequeñas === */
@media (max-width:980px){
  .woocommerce ul.products li.product .woocommerce-loop-product__title{
    font-size:18px !important;
    padding:14px 16px 4px 16px !important;
  }
  .woocommerce ul.products li.product .woocommerce-loop-product__title::before{
    font-size:8px !important;
    letter-spacing:1.5px !important;
  }
  .woocommerce ul.products li.product .price,
  .woocommerce ul.products li.product .price .woocommerce-Price-amount,
  .woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol{
    font-size:18px !important;
  }
  .woocommerce ul.products li.product .price{
    padding:8px 16px 12px 16px !important;
  }
  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product a.add_to_cart_button{
    width:calc(100% - 24px) !important;
    margin:6px 12px 12px 12px !important;
    margin-top:auto !important;
    padding:10px 12px !important;
    font-size:10px !important;
    letter-spacing:1.5px !important;
  }
}

/* === LAYOUT FILTROS RESPONSIVE === */

/* Desktop: la columna sidebar respeta su ancho original */
@media (min-width:981px){
  .val_col_filter{
    align-self:flex-start !important;
  }
}

/* Tablet/móvil: filtros apilados arriba, ancho completo, colapsables */
@media (max-width:980px){
  /* Apilar columnas Divi */
  .et_pb_row.et_pb_row_1-4_3-4{
    display:block !important;
  }
  .et_pb_row.et_pb_row_1-4_3-4 > .et_pb_column.val_col_filter,
  .et_pb_row.et_pb_row_1-4_3-4 > .et_pb_column.et-last-child{
    width:100% !important;
    margin-right:0 !important;
    margin-bottom:0 !important;
    float:none !important;
    display:block !important;
    max-width:100% !important;
  }
  .et_pb_row.et_pb_row_1-4_3-4 > .et_pb_column.val_col_filter{
    margin-bottom:20px !important;
  }

  /* El módulo de filtros también al 100% (Divi le pone max-width:300px) */
  .val_col_filter .val_filter,
  .val_col_filter .et_pb_code_inner,
  .val_col_filter form.wpf_form{
    max-width:100% !important;
    width:100% !important;
  }

  /* El header "Filtros" (::before existente) hace de toggle */
  .val_col_filter .val_filter{
    cursor:pointer;
    position:relative;
    user-select:none;
  }


  /* Form oculto por defecto, visible cuando .is-open */
  .val_col_filter .val_filter form.wpf_form{
    display:none !important;
  }
  .val_col_filter .val_filter.is-open form.wpf_form{
    display:block !important;
    animation:vzFadeIn .25s ease;
  }

  @keyframes vzFadeIn{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:translateY(0); }
  }
}

/* === Toolbar (result count + orderby) en móvil === */
@media (max-width:780px){
  .woocommerce .woocommerce-result-count,
  p.woocommerce-result-count{
    text-align:center !important;
    margin:0 0 12px 0 !important;
    width:100% !important;
    display:block !important;
    float:none !important;
  }
  .woocommerce form.woocommerce-ordering{
    width:100% !important;
    display:block !important;
    margin:0 0 18px 0 !important;
    float:none !important;
  }
  .woocommerce-ordering .select2-container{
    width:100% !important;
  }
}

/* === Paginación en móvil === */
@media (max-width:480px){
  .woocommerce nav.woocommerce-pagination ul,
  .woocommerce-page nav.woocommerce-pagination ul{
    flex-wrap:wrap !important;
    gap:6px !important;
  }
  .woocommerce nav.woocommerce-pagination ul li a,
  .woocommerce nav.woocommerce-pagination ul li span,
  .woocommerce-page nav.woocommerce-pagination ul li a,
  .woocommerce-page nav.woocommerce-pagination ul li span{
    min-width:34px !important;
    height:34px !important;
    padding:0 10px !important;
    font-size:11px !important;
  }
}

/* === Fix: cards llenan completamente su celda del grid === */
/* Necesario para vencer la especificidad de las reglas de Divi
   .et-db #et-boc .et-l ... que aplican width y margin-right con !important */
.et-db #et-boc .et-l .et_pb_shop ul.products li.product,
.et-db #et-boc .et-l .et_pb_shop ul.products.columns-1 li.product,
.et-db #et-boc .et-l .et_pb_shop ul.products.columns-2 li.product,
.et-db #et-boc .et-l .et_pb_shop ul.products.columns-3 li.product,
.et-db #et-boc .et-l .et_pb_shop ul.products.columns-4 li.product,
body .woocommerce .val_product_list ul.products li.product,
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
}


/* ===========================================================
   FILTROS RESPONSIVE - MÓVIL / TABLET (≤ 980px)
   Requiere que el JS añada/quite la clase .is-open en .val_filter
   =========================================================== */
@media (max-width: 980px) {

    /* Columna de filtros: ocupa todo el ancho, NO sticky */
    .val_col_filter {
        position: static !important;
        top: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 24px 0 !important;
        padding: 0 !important;
    }

    /* Asegurar 100% en los wrappers internos */
    .val_col_filter,
    .val_col_filter .val_filter,
    .val_col_filter .et_pb_code_inner,
    .val_col_filter form.wpf_form {
        max-width: 100% !important;
        width: 100% !important;
    }

    /* La cabecera "Filtros" actúa como botón */
    .val_col_filter .val_filter {
        position: relative !important;
        cursor: pointer !important;
        padding: 0 !important;
        /* background: transparent !important; */
        overflow: visible !important;
        user-select: none;
    }

    /* Barra superior usando el ::before existente con texto "Filtros" */
    .val_col_filter .val_filter::before {
        content: "Filtros" !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        height: 64px !important;
        padding: 0 60px 0 24px !important;
        background: #2a0c0e !important;
        color: #f6eee0 !important;
        font-family: "Abril Fatface", serif !important;
        font-size: 22px !important;
        letter-spacing: 0.5px !important;
        box-sizing: border-box !important;
        pointer-events: none !important;
    }

    /* Icono +/− a la derecha de la cabecera (cruz hecha con dos líneas) */
    .val_col_filter .val_filter::after {
        content: "" !important;
        position: absolute !important;
        top: 32px !important;
        right: 24px !important;
        width: 18px !important;
        height: 18px !important;
        transform: translateY(-50%) !important;
        background-image:
            linear-gradient(#f6eee0, #f6eee0),
            linear-gradient(#f6eee0, #f6eee0);
        background-size: 18px 2px, 2px 18px !important;
        background-position: center center, center center !important;
        background-repeat: no-repeat, no-repeat !important;
        transition:           
          max-height 1s cubic-bezier(0.4, 0, 0.2, 1),
          padding 0.8s cubic-bezier(0.4, 0, 0.2, 1),
          opacity 0.25s ease,
          background-size 0.3s ease,
          transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
        pointer-events: none !important;
        z-index: 2 !important;
    }

    /* Cuando está abierto: la barra vertical desaparece (queda "−") */
    .val_col_filter .val_filter.is-open::after {
        background-size: 18px 2px, 0 0 !important;
    }

    /* Formulario: colapsado por defecto, se expande con .is-open */
    .val_col_filter .val_filter form.wpf_form {
        display: block !important;
        max-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        transition:         
          max-height 1s cubic-bezier(0.4, 0, 0.2, 1),
          padding 0.8s cubic-bezier(0.4, 0, 0.2, 1),
          opacity 0.25s ease,
          background-size 0.3s ease,
          transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
      
    }

    .val_col_filter .val_filter.is-open form.wpf_form {
        max-height: 2500px !important;
        padding: 16px 20px !important;
    }
}

.woocommerce .val_product_list a.button:after, .woocommerce-page a.button:after {
  position: inherit !important;
  font-size: 1.5em !important;
}

.woocommerce .val_product_list a.button:hover, 
.woocommerce.et-db #et-boc .et-l .val_product_list a.button:hover, 
.woocommerce-page .val_product_list a.button:hover, 
.woocommerce-page.et-db #et-boc .et-l .val_product_list a.button:hover {
  background-color: var(--burgundy-dark) !important;
}

/* Filtro de precio: sustituye el violeta del plugin por el rojo Valniezo. */
.woocommerce-page .val_filter .wpf_slider .ui-slider-range {
  background: #8c2b3f !important;
}

.woocommerce-page .val_filter .wpf_slider .ui-slider-handle:hover,
.woocommerce-page .val_filter .wpf_slider .ui-slider-handle.ui-state-active {
  background: #6e2233 !important;
}

/* Igualar la separación de "Sellos de calidad" con la portada. */
@media (min-width: 981px) {
  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body {
    display: flex !important;
    align-items: stretch;
    column-gap: 5.5% !important;
  }

  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body::before,
  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body::after {
    content: none !important;
    display: none !important;
  }

  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body > .et_pb_column {
    width: auto !important;
    min-width: 0;
    flex: 1 1 0 !important;
    margin: 0 !important;
  }
}

@media (max-width: 980px) {
  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body {
    display: block !important;
  }

  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body > .et_pb_column {
    width: 100% !important;
    margin: 0 0 30px !important;
  }

  .woocommerce-page .et_pb_section_3_tb_body .et_pb_row_4_tb_body > .et_pb_column:last-child {
    margin-bottom: 0 !important;
  }
}
