/* Variables y animaciones que vivian en un bloque :root global.
   Mi extractor las perdio el 22/09/2026 porque filtraba por SELECTOR y ':root'
   no contiene "fde": las declaraciones estaban en el cuerpo, no en el nombre.
   Sin --pc-font las tarjetas perdian la tipografia del sitio. Valores tomados
   de los colores literales que si sobrevivieron en el resto del CSS. */
:root{
  --pc-font:'Nunito',system-ui,sans-serif;
  --pc-ink:#1a1a1a;
  --pc-muted:#54595f;
  --pc-line:#f0f0f0;
  --pc-faint:#e8e8e8;
  --pc-white:#fff;
  --pc-green:#4caf50;
  --pc-green-600:#43a047;
  --pc-green-50:#e8f5e9;
  --pc-danger:#e05b5b;
  --pc-base:200ms;
  --pc-fast:150ms;
  --pc-ease:cubic-bezier(.4,0,.2,1);
  /* Mismo motivo que en wishlist.css: definidos tambien a nivel base para que
     el minificador no pueda dejarlos solo dentro de un @media. */
  --pc-radius:16px;/*base*/
  --pc-fav:36px;
}
@keyframes fde-pc-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fde-pc-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px)}}
/* FDE Core - restaurado el 2026-09-22 desde las caches LiteSpeed del sitio funcionando (25-29/08). */
.elementor-10 .elementor-element.elementor-element-c80a20f .elementor-icon,.fde-pc-empty span{font-size:13px}
.fde-pc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.fde-pc{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--pc-faint);border-radius:var(--pc-radius);background:var(--pc-white);font-family:var(--pc-font);overflow:hidden;transition:border-color var(--pc-base) var(--pc-ease),box-shadow var(--pc-base) var(--pc-ease),transform var(--pc-base) var(--pc-ease)}
.fde-pc:hover{border-color:#e3e3e0;box-shadow:0 14px 32px rgba(26,26,46,.09);transform:translateY(-4px)}
.fde-pc:focus-within{border-color:var(--pc-green);box-shadow:0 0 0 3px rgba(76,175,80,.22)}
.fde-pc__media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:var(--pc-white);border-bottom:1px solid var(--pc-line);overflow:hidden}
.fde-pc__img{width:100%;height:100%;padding:16px;object-fit:contain;display:block;transition:transform var(--pc-base) var(--pc-ease)}
.fde-pc:hover .fde-pc__img{transform:scale(1.05)}
.fde-pc__noimg{width:100%;height:100%;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 10px,#f4f4f4 10px,#f4f4f4 20px)}
.fde-pc__badge,.fde-pc__remove:hover{background:var(--pc-danger);color:#fff}
.fde-pc__badge{position:absolute;top:10px;left:10px;z-index:3;padding:5px 10px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.02em;line-height:1;box-shadow:0 4px 10px rgba(225,29,72,.28)}
.fde-pc__fav,.fde-pc__remove{position:absolute;top:10px;right:10px;z-index:3}
.fde-pc__remove{display:grid;place-items:center;background:var(--pc-white);transition:background var(--pc-fast) ease,color var(--pc-fast) ease,transform var(--pc-base) var(--pc-ease)}
.fde-pc__remove svg{width:16px;height:16px;display:block}
.fde-pc__remove:hover{transform:scale(1.08)}
.fde-pc__fav::after,.fde-pc__remove::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
.fde-pc .fde-fav,.fde-pc__remove{width:var(--pc-fav);height:var(--pc-fav);padding:0;border:0;border-radius:50%;box-shadow:0 2px 8px rgba(26,26,46,.16);color:#6b7280;cursor:pointer}
.fde-pc .fde-fav{display:inline-flex;align-items:center;justify-content:center;margin:0;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);line-height:1;transition:color var(--pc-fast) ease,transform var(--pc-base) var(--pc-ease),box-shadow var(--pc-fast) ease}
.fde-pc .fde-fav:hover{color:var(--pc-danger);box-shadow:0 4px 14px rgba(26,26,46,.22);transform:scale(1.08)}
.fde-pc .fde-fav:focus-visible{outline:2px solid var(--pc-danger);outline-offset:2px}
.fde-pc .fde-fav.is-active{color:var(--pc-danger)}
.fde-pc .fde-fav__icon{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;pointer-events:none}
.fde-pc .fde-fav__icon .fde-fav__filled,.fde-pc .fde-fav__icon .fde-fav__outline{width:100%;height:100%}
.fde-pc .fde-fav__icon .fde-fav__outline{display:block}
.fde-pc .fde-fav.is-active .fde-fav__icon .fde-fav__outline,.fde-pc .fde-fav__icon .fde-fav__filled{display:none}
.fde-pc .fde-fav.is-active .fde-fav__icon .fde-fav__filled{display:block}
.fde-pc__qv{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:center;padding:12px;opacity:0;transition:opacity var(--pc-base) ease}
.fde-pc:focus-within .fde-pc__qv,.fde-pc:hover .fde-pc__qv{opacity:1;pointer-events:auto}
.fde-pc .fde-pc__qvbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:9px 14px;border:0;border-radius:999px;background:rgba(26,26,46,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--pc-font);font-size:12.5px;font-weight:700;line-height:1;cursor:pointer;transform:translateY(8px);transition:background var(--pc-fast) ease,transform var(--pc-base) var(--pc-ease)}
.fde-pc:focus-within .fde-pc__qvbtn,.fde-pc:hover .fde-pc__qvbtn{transform:translateY(0)}
.fde-pc .fde-pc__qvbtn:hover{background:var(--pc-green-600)}
.fde-pc .fde-pc__qvbtn:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.fde-pc .fde-pc__qvbtn svg,.fde-pc__add svg{width:15px;height:15px;flex-shrink:0}
.fde-pc__body{display:flex;flex-direction:column;gap:4px;flex:1;padding:14px 14px 15px}
.fde-pc__cat{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--pc-green-600);line-height:1.3}
.fde-pc__brand{font-size:12.5px;font-weight:600;color:var(--pc-muted);line-height:1.3;min-height:1.3em}
.fde-pc__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:2px 0 0;min-height:2.7em;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--pc-ink)}
.fde-pc__name a{color:inherit;text-decoration:none}
.fde-pc__name a::after{content:"";position:absolute;inset:0;z-index:1}
.fde-pc__name a:focus-visible{outline:0}
.fde-pc__prices{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:8px}
.fde-pc__old,.fde-pc__price{font-variant-numeric:tabular-nums}
.fde-pc__price{font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--pc-ink);line-height:1.15}
.fde-pc__old{font-size:13px;font-weight:600;color:var(--pc-muted);text-decoration:line-through}
.fde-pc__add,.fde-pc__out{position:relative;z-index:2;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:12px;padding:11px 14px;border-radius:999px}
.fde-pc__add{display:inline-flex;gap:7px;border:0;background:var(--pc-green-50);color:var(--pc-green-600);font-family:var(--pc-font);font-size:13.5px;font-weight:800;line-height:1;cursor:pointer;transition:background var(--pc-fast) ease,color var(--pc-fast) ease}
.fde-pc__add:hover{background:var(--pc-green);color:#fff}
.fde-pc__add:active{transform:scale(.985)}
.fde-pc__add.loading{opacity:.6;pointer-events:none}
.fde-pc__out{display:flex;background:var(--pc-faint);color:var(--pc-muted);font-size:13px;font-weight:700}
.fde-pc__badge,.fde-pc__fav,.fde-pc__qv,.fde-pc__remove{pointer-events:auto}
.fde-pc-grid.is-entering .fde-pc{animation:fde-pc-in .38s var(--pc-ease) backwards}
.fde-pc.is-removing{animation:fde-pc-out .42s cubic-bezier(.5,0,.75,0) forwards;pointer-events:none}
.fde-pc-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:64px 24px;text-align:center;color:var(--pc-muted);font-family:var(--pc-font)}
.fde-pc-empty svg{width:46px;height:46px;margin-bottom:10px;color:#dcdcdc}
.fde-pc-empty strong{font-size:15px;font-weight:700;color:var(--pc-ink)}
.fde-pc-mas{height:1px;margin-top:-1px}
.fde-pc-mas[hidden]{display:none}
.fde-add,.fde-quick{font-family:Nunito;cursor:pointer;width:100%}
.fde-quick{padding:9px 14px;background:rgba(26,26,46,.92);backdrop-filter:blur(8px);color:#fff;border-radius:999px;font-size:12.5px;font-weight:700;border:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .2s}
.fde-quick:hover{background:#4caf50}
.fde-add{background:#e8f5e9!important;color:#2e7d32!important;border:0!important;border-radius:999px!important;padding:11px!important;font-weight:800;font-size:13.5px;transition:background .2s,color .2s;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px;text-decoration:none!important;text-align:center;box-sizing:border-box}
.fde-add:hover{background:#4caf50!important;color:#fff!important}
.fde-pc-empty span{font-size:13px}
.fde-pc{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--pc-faint);border-radius:var(--pc-radius);background:var(--pc-white);font-family:var(--pc-font);overflow:hidden}
.fde-pc__img{width:100%;height:100%;padding:16px;object-fit:contain;display:block}
.fde-pc__badge{position:absolute;top:10px;left:10px;z-index:3;padding:5px 10px;border-radius:999px;background:var(--pc-danger);color:#fff;font-size:11.5px;font-weight:800;letter-spacing:.02em;line-height:1;box-shadow:0 4px 10px rgba(225,29,72,.28)}
.fde-pc__remove{display:grid;place-items:center;width:var(--pc-fav);height:var(--pc-fav);padding:0;border:0;border-radius:50%;background:var(--pc-white);box-shadow:0 2px 8px rgba(26,26,46,.16);color:#6b7280}
.fde-pc__remove:hover{background:var(--pc-danger);color:#fff;transform:scale(1.08)}
.fde-pc .fde-fav{display:inline-flex;align-items:center;justify-content:center;width:var(--pc-fav);height:var(--pc-fav);padding:0;margin:0;border:0;border-radius:50%;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 8px rgba(26,26,46,.16);color:#6b7280;line-height:1}
.fde-pc .fde-fav__icon{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px}
.fde-pc .fde-fav__icon .fde-fav__outline,.fde-pc .fde-fav__icon .fde-fav__filled{width:100%;height:100%}
.fde-pc .fde-fav__icon .fde-fav__filled{display:none}
.fde-pc .fde-fav.is-active .fde-fav__icon .fde-fav__outline{display:none}
.fde-pc__qv{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:center;padding:12px;opacity:0}
.fde-pc:hover .fde-pc__qv,.fde-pc:focus-within .fde-pc__qv{opacity:1}
.fde-pc .fde-pc__qvbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:9px 14px;border:0;border-radius:999px;background:rgba(26,26,46,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-family:var(--pc-font);font-size:12.5px;font-weight:700;line-height:1;transform:translateY(8px)}
.fde-pc:hover .fde-pc__qvbtn,.fde-pc:focus-within .fde-pc__qvbtn{transform:translateY(0)}
.fde-pc .fde-pc__qvbtn svg{width:15px;height:15px;flex-shrink:0}
.fde-pc__name a:focus-visible{outline:none}
.fde-pc__price{font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--pc-ink);line-height:1.15;font-variant-numeric:tabular-nums}
.fde-pc__old{font-size:13px;font-weight:600;color:var(--pc-muted);text-decoration:line-through;font-variant-numeric:tabular-nums}
.fde-pc__add{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:44px;margin-top:12px;padding:11px 14px;border:0;border-radius:999px;background:var(--pc-green-50);color:var(--pc-green-600);font-family:var(--pc-font);font-size:13.5px;font-weight:800;line-height:1}
.fde-pc__add svg{width:15px;height:15px;flex-shrink:0}
.fde-pc__add.loading{opacity:.6}
.fde-pc__out{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:12px;padding:11px 14px;border-radius:999px;background:var(--pc-faint);color:var(--pc-muted);font-size:13px;font-weight:700}
.fde-pc.is-removing{animation:fde-pc-out .42s cubic-bezier(.5,0,.75,0) forwards}
.fde-pc-grid{margin-top:4px}
.fde-card .fde-add.loading{opacity:.6}
.fde-quick{padding:9px 14px;background:rgba(26,26,46,0.92);backdrop-filter:blur(8px);color:#fff;border-radius:999px;font-family:Nunito;font-size:12.5px;font-weight:700;border:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%}
@media (hover:none),(max-width:1024px){
.fde-pc__qv{display:none}
}
@media (max-width:1024px){
.fde-pc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}
@media (max-width:767px){
.fde-pc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fde-pc{--pc-radius:16px;--pc-fav:36px}
.fde-pc__body{padding:12px 12px 13px}
.fde-pc__img{padding:12px}
.fde-pc__name{font-size:13.5px}
.fde-pc__price{font-size:17px}
.fde-pc__add{font-size:13px;padding:10px 12px}
.fde-pc:hover{transform:none}
.fde-pc{--pc-radius: 16px;--pc-fav: 36px}
}
@media (max-width:380px){
.fde-pc-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
.fde-pc,.fde-pc-grid.is-entering .fde-pc,.fde-pc__img,.fde-pc__qv,.fde-pc__qvbtn{transition:none;animation:none}
.fde-pc:hover,.fde-pc:hover .fde-pc__img{transform:none}
.fde-pc,.fde-pc__img,.fde-pc__qv,.fde-pc__qvbtn,.fde-pc-grid.is-entering .fde-pc{animation:none}
.fde-pc:hover{transform:none}
.fde-pc:hover .fde-pc__img{transform:none}
}


/* img-altura-28092026 */
/* Elementor trae una regla generica '.elementor img { height: auto }' con
   especificidad (0,1,1), que le gana a '.fde-pc__img' (0,1,0). Con eso la
   foto quedaba con height:auto y tomaba la altura de su proporcion natural:
   una imagen de 338x995 a 268px de ancho se iba a 789px de alto dentro de un
   marco cuadrado con overflow:hidden, y se veia enorme y recortada.
   object-fit:contain no ayudaba, porque la caja ya tenia la proporcion de la
   imagen y no habia nada que encajar.
   Solo se notaba en fotos verticales: las cuadradas daban cuadrado igual.
   Se sube la especificidad a (0,2,0) anteponiendo .fde-pc, en vez de usar
   !important, para que siga siendo sobrescribible mas adelante. */
.fde-pc .fde-pc__img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
}


/* loader-scroll-28092026 */
/* Indicador de carga del scroll infinito.
   Se mantiene visible mientras falten productos, no solo mientras se
   esperan: su min-height reserva un espacio fijo al final de la grilla, asi
   el documento no pega un salto de alto cada vez que entra una tanda. Ese
   salto era lo que hacia saltar la barra de scroll. */
.fde-pc-loader {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 96px;
  padding: 20px 0 8px;
  color: var(--pc-green-600);
}
/* display:flex le gana al hidden del navegador, hay que apagarlo a mano. */
.fde-pc-loader[hidden] { display: none; }
.fde-pc-loader__txt {
  font-family: var(--pc-font);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--pc-muted);
}
/* steps(12): cada salto cae justo sobre el punto siguiente, que es lo que
   da la lectura clasica. Con giro continuo se ve como una rueda borrosa. */
.fde-pc-spin {
  display: block;
  animation: fde-pc-spin 1s steps(12, end) infinite;
}
@keyframes fde-pc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .fde-pc-spin { animation: none; opacity: .65; }
}

/* Estado final: se va el spinner, queda el texto. El bloque conserva su alto
   para que la pagina no se encoja al terminar de cargar. */
.fde-pc-loader.is-done .fde-pc-spin { display: none; }
.fde-pc-loader.is-done { min-height: 64px; }
.fde-pc-loader.is-done .fde-pc-loader__txt { opacity: .7; }


/* sin-backdrop-28092026 */
/* backdrop-filter obliga al navegador a recomponer el fondo desenfocado en
   cada cuadro. Con 145 tarjetas en el catalogo son hasta 290 capas de
   desenfoque vivas a la vez, y el scroll se siente tironeado.
   Ademas no aportaba nada visible: el corazon tiene fondo blanco al 96% y
   el boton de vista rapida al 92%, opacidades a las que el desenfoque de
   atras es imperceptible. Se paga el costo sin obtener el efecto.
   Se dejan intactos los backdrop de los modales (quickview), que son uno
   solo por vez y ahi si se nota. */
.fde-pc .fde-fav,
.fde-pc .fde-pc__qvbtn {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}


/* vista-rapida-tactil-29092026 */
/* En pantallas tactiles no hay hover: el boton de vista rapida estaba oculto
   y tocar la tarjeta llevaba directo al producto. Se muestra como un circulo
   con un ojo debajo del corazon (mismo estilo que favoritos, area tactil de
   44px). Tocar el resto de la tarjeta sigue abriendo el producto. */
@media (hover: none), (max-width: 1024px) {
  .fde-pc .fde-pc__qv {
    display: block;
    inset: auto;
    top: calc(10px + var(--pc-fav) + 8px);
    right: 10px;
    left: auto;
    bottom: auto;
    z-index: 3;
    padding: 0;
    opacity: 1;
    pointer-events: none;
  }
  .fde-pc .fde-pc__qvbtn {
    position: relative;
    display: grid;
    place-items: center;
    width: var(--pc-fav);
    height: var(--pc-fav);
    padding: 0;
    gap: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .96);
    color: #6b7280;
    font-size: 0;
    box-shadow: 0 2px 8px rgba(26, 26, 46, .16);
    transform: none;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
  }
  .fde-pc .fde-pc__qvbtn::after { content: ""; position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
  .fde-pc .fde-pc__qvbtn svg { width: 17px; height: 17px; }
  .fde-pc .fde-pc__qvbtn:hover,
  .fde-pc .fde-pc__qvbtn:active { background: #fff; color: var(--pc-green-600, #43a047); }
  .fde-pc .fde-pc__qvbtn:focus-visible { outline: 3px solid rgba(76, 175, 80, .45); outline-offset: 2px; }
}

/* El texto oculto del boton ("Vista rapida", para lectores de pantalla)
   ocupaba una segunda fila de la grilla y subia el ojo 5px. */
@media (hover: none), (max-width: 1024px) {
  .fde-pc .fde-pc__qvbtn { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
  .fde-pc .fde-pc__qvbtn svg { display: block; flex-shrink: 0; }
}
