/* ---- Dieta del catálogo: reglas de archivos que se sacan de esta página y que SÍ la tocan (las mismas que copia
   rdi-home). Sin ellas, el visor de fotos de Jet (div.pswp, al final de la página) se veía como una barra blanca
   debajo del pie. ---- */
[class*="woolentor-"] i{font-style: normal;}
[class*="woolentor-"] *, [class*="woolentor-"] *::before, [class*="woolentor-"] *::after{box-sizing: border-box;}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.clear{clear:both}
.pswp{display:none;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;-ms-touch-action:none;touch-action:none;z-index:999999;-webkit-text-size-adjust:100%;-webkit-backface-visibility:hidden;outline:0}
.woolentor-quickview-modal{position: fixed; z-index: 1043; top: 0; left: 0; display: flex; visibility: hidden; overflow: hidden; width: 100%; height: 100%; padding-right: 17px; transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1); opacity: 0; background-color: rgba(0, 0, 0, 0.5);}
.woolentor-quickview-modal .woolentor-quickview-overlay{position: absolute; top: 0; right: 0; bottom: 0; left: 0;}
.woolentor-quickview-modal-wrapper{width: calc(100% - 30px); max-width: 1200px; margin: auto !important;}
.woolentor-quickview-modal-content{position: relative; transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1); transform: translateY(30px); background-color: rgb(255, 255, 255); overflow: hidden; padding: 20px;}
.woolentor-quickview-modal.woolentor-quickview-open .woolentor-quickview-modal-content{transform: translateY(0);}
span.woolentor-quickview-modal-close{cursor: pointer; position: absolute; top: 0; right: 0; line-height: 50px; font-size: 24px; height: 50px; width: 50px; text-align: center; padding: 0; z-index: 9; transition: 0.4s;}

/* =====================================================================
   RDI Catálogo — /cursos-online/, /kit-imprimibles/, /imprimibles-gratis/ sin Elementor.
   Disposición de la tienda de siempre (barra de categorías a la izquierda; título y buscador arriba de la grilla),
   colores de la marca y la tarjeta de siempre (rdi-home/assets/rdi-tarjetas.css) con retoques para que quede pareja.
   ===================================================================== */

/* el tema pone el contenido en una fila flexible: sin esto, en pantallas anchas quedaba corrido a la izquierda */
.rdi-cat-main { flex: 1 1 100%; width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: 0; }

.rdi-cat {
  --rc-rosa: #F25C92;
  --rc-rosa-claro: #F79DBE;
  --rc-rosa-suave: #FAC4D8;
  --rc-rosa-velo: #FCE6EE;
  --rc-rosa-palido: #FFF5F9;
  --rc-rosa-texto: #E20857;
  --rc-fucsia: #E61F67;
  --rc-gris: #666666;
  --rc-gris-label: #6F6E6E;
  --rc-tinta: #3A3A3A;
  --rc-aviso-bg: #FFF8E9;
  --rc-aviso-borde: #FFDFA1;
  --rc-aviso-texto: #8F5C00;
  --rc-fuente: 'Natom Pro', 'natom-pro', 'Baloo 2', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --rc-fuente-titulo: 'Benny Black', 'Baloo 2', system-ui, sans-serif;
  --rc-radio: 20px;
  --rc-curva: cubic-bezier(.22, .68, .35, 1);
  --rc-lineas-desc: 3;
  --rc-sep-tarjetas: 38px;
  --rc-fondo: #fff;
  --rc-buscar-izq: 50px;
  --rc-buscar-der: 130px;
  font-family: var(--rc-fuente);
  color: var(--rc-tinta);
  width: 100%;
  padding-bottom: 80px;
}
.rdi-cat *,
.rdi-cat *::before,
.rdi-cat *::after { box-sizing: border-box; }
.rdi-cat [hidden] { display: none !important; }

/* mientras arranca el motor: sin JS se ve todo; con JS, de a un lote y sin parpadeo si la dirección trae filtros */
.rdi-cat-js:not(.rdi-cat-listo) .rdi-cat-despues { display: none; }
.rdi-cat-espera .rdi-cat-grilla,
.rdi-cat-espera .rdi-cat-resultados { visibility: hidden; }

/* ---------- banner de la campaña (Rincron) ---------- */
.rdi-cat-banner { max-width: 1600px; margin: 0 auto; padding: 18px 40px 0; text-align: center; }
.rdi-cat-banner:empty { display: none; }
.rdi-cat-banner .banner-chico { max-width: 1200px; margin: 0 auto; }
.rdi-cat-banner img { display: block; width: 100%; height: auto; margin: 0 auto; border-radius: 14px; }

/* ---------- contenedor: categorías a la izquierda, título + buscador + grilla a la derecha ---------- */
.rdi-cat-contenedor { max-width: 1600px; margin: 0 auto; padding: 26px 40px 0; }
.rdi-cat-con-lateral .rdi-cat-contenedor {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  grid-template-areas: "lat cabeza" "lat zona";
  column-gap: 48px;
  align-items: start;
}
.rdi-cat-cabeza { grid-area: cabeza; min-width: 0; }
.rdi-cat-lat { grid-area: lat; min-width: 0; }
.rdi-cat-zona { grid-area: zona; min-width: 0; }

.rdi-cat-titulo {
  font-family: var(--rc-fuente-titulo);
  font-size: clamp(26px, 2.1vw, 32px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: .2px;
  color: var(--rc-rosa);
  margin: 0 0 16px;
  padding: 0;
}

/* ---------- archivos de categoría y etiqueta: descripción del término y vuelta al catálogo ---------- */
.rdi-cat-intro { margin: 0 0 10px; max-width: 70ch; font-size: .95rem; line-height: 1.6; color: var(--rc-gris); }
.rdi-cat-volver { margin: 0 0 6px; font-size: .875rem; }
.rdi-cat .rdi-cat-volver a { display: inline-flex; align-items: center; gap: 5px; color: var(--rc-gris); text-decoration: none; }
.rdi-cat .rdi-cat-volver a:hover { color: var(--rc-rosa-texto); text-decoration: underline; }

/* ---------- la barra del buscador ----------
   En la computadora va donde estaba (arriba de la grilla, quieta): la cabecera del sitio ya lleva su propio buscador
   y ése filtra el catálogo mientras se escribe. En el celular se pega abajo de la cabecera y suma los dos íconos
   (--rc-tope lo mide el motor: cabecera del sitio + barra de administración). */
.rdi-cat-pegado { position: relative; margin: 0 0 20px; }
.rdi-cat-pegado-fila { display: flex; align-items: center; gap: 12px; min-width: 0; }

/* ---------- buscador ---------- */
.rdi-cat-buscar {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  margin: 0;
}
.rdi-cat .rdi-cat-buscar-lupa {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  color: var(--rc-rosa);
  pointer-events: none;
}
.rdi-cat .rdi-cat-buscar-input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 52px;
  margin: 0;
  padding: 0 var(--rc-buscar-der) 0 var(--rc-buscar-izq);
  border: 1.5px solid var(--rc-rosa-suave);
  border-radius: 999px;
  background: #fff;
  font-family: var(--rc-fuente);
  font-size: 16px; /* 16px: el iPhone no hace zoom al tocar */
  color: var(--rc-tinta);
  box-shadow: 0 2px 10px rgba(242, 92, 146, .06);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.rdi-cat .rdi-cat-buscar-input::placeholder { color: #9a9a9a; opacity: 1; }
.rdi-cat .rdi-cat-buscar-input:hover { border-color: var(--rc-rosa-claro); }
.rdi-cat .rdi-cat-buscar-input:focus { border-color: var(--rc-rosa); box-shadow: 0 0 0 4px rgba(242, 92, 146, .14); }
.rdi-cat .rdi-cat-buscar-input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.rdi-cat .rdi-cat-buscar-ir,
.rdi-cat .rdi-cat-buscar-borrar {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  border: 0;
  cursor: pointer;
  font-family: var(--rc-fuente);
}
.rdi-cat .rdi-cat-buscar-ir {
  right: 6px;
  height: 40px;
  padding: 0 22px;
  border-radius: 999px;
  background: var(--rc-rosa);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 40px;
  transition: background .15s ease;
}
.rdi-cat .rdi-cat-buscar-ir:hover,
.rdi-cat .rdi-cat-buscar-ir:focus-visible { background: var(--rc-fucsia); }
.rdi-cat .rdi-cat-buscar-borrar {
  right: 104px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 50%;
  background: transparent;
  color: #8a8a8a;
  line-height: 0;
}
.rdi-cat .rdi-cat-buscar-borrar:hover,
.rdi-cat .rdi-cat-buscar-borrar:focus-visible { background: var(--rc-rosa-palido); color: var(--rc-rosa-texto); }

/* ---------- el texto de ayuda que pasea (cuando no entra entero) ----------
   El motor mide: si el texto no entra, esconde el del campo y muestra éste, que va y vuelve suave. */
.rdi-cat-marquesina {
  position: absolute;
  left: var(--rc-buscar-izq);
  right: var(--rc-buscar-der);
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;   /* siempre en la página (hay que poder medirla), pero sólo se ve cuando hace falta */
  overflow: hidden;
  font-size: 16px;
  line-height: 1.25;
  color: #9a9a9a;
  white-space: nowrap;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6px, #000 calc(100% - 10px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 6px, #000 calc(100% - 10px), transparent 100%);
}
.rdi-cat-marquesina-t { display: inline-block; padding-left: 1px; will-change: transform; }
.rdi-cat-buscar-pasea .rdi-cat-marquesina { opacity: 1; }
.rdi-cat-buscar-pasea .rdi-cat-buscar-input::placeholder { color: transparent; }
/* En el celular se pasea solo (no hay mouse con el que pedirlo). Con mouse queda quieto y sólo se pasea al pasarle
   el mouse por encima: moverse todo el tiempo en la computadora distrae (pedido de Felipe). */
@media (hover: none), (pointer: coarse) {
  .rdi-cat-buscar-pasea .rdi-cat-marquesina-t { animation: rdi-cat-pasear var(--rc-pasea-t, 7s) ease-in-out infinite; }
}
@media (hover: hover) and (pointer: fine) {
  .rdi-cat-buscar-pasea:hover .rdi-cat-marquesina-t { animation: rdi-cat-pasear var(--rc-pasea-t, 7s) ease-in-out infinite; }
}
/* mientras se escribe, quieto */
.rdi-cat-buscar-pasea:focus-within .rdi-cat-marquesina-t { animation: none; transform: translateX(0); }
@keyframes rdi-cat-pasear {
  0%, 16% { transform: translateX(0); }
  58%, 74% { transform: translateX(var(--rc-pasea-x, 0)); }
  100% { transform: translateX(0); }
}

.rdi-cat-susc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  margin: 0 0 22px;
  padding: 12px 18px;
  border: 1px solid var(--rc-rosa-suave);
  border-radius: 14px;
  background: var(--rc-rosa-palido);
  font-size: .9375rem;
}
.rdi-cat-susc a { color: var(--rc-rosa-texto); font-weight: 700; }

/* ---------- barra lateral de categorías ---------- */
.rdi-cat-lat {
  position: sticky;
  top: calc(var(--rc-tope, 96px) + 14px);
  max-height: calc(100vh - var(--rc-tope, 96px) - 34px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 4px 8px 16px 2px;
  /* barrita de scroll fina y rosa, que aparece sólo al pasar el mouse */
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.rdi-cat-lat:hover,
.rdi-cat-lat:focus-within { scrollbar-color: var(--rc-rosa-suave) transparent; }
.rdi-cat-lat::-webkit-scrollbar { width: 6px; }
.rdi-cat-lat::-webkit-scrollbar-track { background: transparent; }
.rdi-cat-lat::-webkit-scrollbar-thumb { background: transparent; border-radius: 6px; }
.rdi-cat-lat:hover::-webkit-scrollbar-thumb { background: var(--rc-rosa-suave); }

/* sólo en el celular (más específico que .rdi-cat-boton) */
.rdi-cat .rdi-cat-lat .rdi-cat-lat-abrir,
.rdi-cat .rdi-cat-lat .rdi-cat-lat-ver,
.rdi-cat .rdi-cat-hoja-cerrar,
.rdi-cat .rdi-cat-desliza { display: none; }

.rdi-cat-lat-t {
  position: relative;
  margin: 6px 0 18px;
  padding-left: 14px;
  font-size: 1.25rem;
  font-weight: 300;
  line-height: 1.3;
  color: var(--rc-rosa-texto);
}
.rdi-cat-lat-t::before {
  content: '';
  position: absolute;
  left: 0;
  top: .12em;
  bottom: .12em;
  width: 3px;
  border-radius: 3px;
  background: var(--rc-rosa);
}
.rdi-cat-grupo { border: 0; margin: 0 0 20px; padding: 0; min-width: 0; }
.rdi-cat-grupo legend {
  font-size: .95rem;
  font-weight: 400;
  color: var(--rc-rosa);
  padding: 0;
  margin: 0 0 6px;
}
.rdi-cat-grupo ul { list-style: none; margin: 0; padding: 0; }
.rdi-cat-grupo li { margin: 0 0 2px; padding: 0; }
.rdi-cat-grupo label {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 32px;
  padding: 3px 10px 3px 6px;
  border-radius: 10px;
  font-size: .9rem;
  color: var(--rc-gris-label);
  cursor: pointer;
  margin: 0;
  transition: background .12s ease;
}
.rdi-cat-grupo label:hover { background: var(--rc-rosa-palido); }
.rdi-cat .rdi-cat-grupo input[type="radio"] {
  accent-color: var(--rc-rosa);
  width: 16px;
  height: 16px;
  margin: 0;
  flex: none;
  cursor: pointer;
}
.rdi-cat-op { flex: 1 1 auto; }
.rdi-cat-n { font-size: .75rem; color: #9a9a9a; font-variant-numeric: tabular-nums; }
.rdi-cat-grupo label.rdi-cat-marcado .rdi-cat-op { color: var(--rc-rosa-texto); font-weight: 700; }
.rdi-cat-grupo input:focus-visible { outline: 2px solid var(--rc-fucsia); outline-offset: 2px; }
.rdi-cat-grupo label.rdi-cat-cero { opacity: .45; cursor: default; }
.rdi-cat-grupo label.rdi-cat-cero:hover { background: transparent; }

.rdi-cat .rdi-cat-limpiar {
  margin: 0 0 10px 6px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--rc-rosa-texto);
  font-family: var(--rc-fuente);
  font-size: .875rem;
  text-decoration: underline;
  cursor: pointer;
}

/* ---------- filtros como pastillas (kits e imprimibles: un solo grupo, debajo del buscador) ---------- */
.rdi-cat-pastillas { margin: 0 0 20px; min-width: 0; }
.rdi-cat-pastillas .rdi-cat-grupo { margin: 0; }
.rdi-cat-pastillas .rdi-cat-grupo ul { display: flex; flex-wrap: wrap; gap: 10px; }
.rdi-cat-pastillas .rdi-cat-grupo li { margin: 0; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label {
  position: relative;
  min-height: 38px;
  padding: 7px 18px;
  gap: 6px;
  border: 1px solid var(--rc-rosa-claro);
  border-radius: var(--rc-radio);
  background: #fff;
  color: var(--rc-rosa-texto);
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label:hover { background: var(--rc-rosa-velo); }
/* el radio sigue ahí (teclado, lectores de pantalla), pero no se ve */
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo input[type="radio"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label.rdi-cat-marcado { background: var(--rc-rosa-texto); border-color: var(--rc-rosa-texto); color: #fff; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label.rdi-cat-marcado .rdi-cat-op { color: #fff; font-weight: 400; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label:focus-within { outline: 2px solid var(--rc-fucsia); outline-offset: 2px; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label:has(input:focus:not(:focus-visible)) { outline: none; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-n { display: none; }
.rdi-cat .rdi-cat-pastillas .rdi-cat-op::first-letter { text-transform: uppercase; } /* hay etiquetas cargadas en minúscula */
.rdi-cat .rdi-cat-pastillas .rdi-cat-grupo label.rdi-cat-cero { display: none; }

/* ---------- barra: cuántos hay ---------- */
.rdi-cat-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 0 0 18px;
  scroll-margin-top: calc(var(--rc-tope, 0px) + var(--rc-alto-pegado, 0px) + 14px);
}
.rdi-cat-resultados { margin: 0; font-size: .9rem; font-weight: 300; color: var(--rc-gris); }

/* ---------- íconos de la barra (filtros y orden): sólo en el celular ---------- */
.rdi-cat .rdi-cat-ico {
  position: relative;
  display: none;
  place-items: center;
  flex: none;
  width: 46px;
  height: 46px;
  margin: 0;
  padding: 0;
  border: 1.5px solid var(--rc-rosa-suave);
  border-radius: 50%;
  background: #fff;
  color: var(--rc-rosa-texto);
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}
.rdi-cat .rdi-cat-ico:hover,
.rdi-cat .rdi-cat-ico:focus-visible { background: var(--rc-rosa-palido); border-color: var(--rc-rosa-claro); }
.rdi-cat .rdi-cat-ico-punto {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 10px;
  height: 10px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--rc-rosa-texto);
}

/* ---------- orden ---------- */
.rdi-cat-orden { position: relative; display: flex; align-items: center; flex: none; gap: 8px; margin: 0; }
.rdi-cat-orden-t { font-size: .9rem; color: var(--rc-gris); white-space: nowrap; }
.rdi-cat .rdi-cat-orden select {
  font-family: var(--rc-fuente);
  font-size: 16px;
  color: var(--rc-tinta);
  height: 40px;
  margin: 0;
  padding: 0 36px 0 16px;
  border: 1.5px solid var(--rc-rosa-suave);
  border-radius: 999px;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23F25C92' stroke-width='2' fill='none' stroke-linecap='round'/></svg>") no-repeat right 14px center;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}
.rdi-cat .rdi-cat-orden select:hover { border-color: var(--rc-rosa-claro); }
.rdi-cat .rdi-cat-orden select:focus { border-color: var(--rc-rosa); outline: none; box-shadow: 0 0 0 4px rgba(242, 92, 146, .14); }

/* ---------- lo activo ---------- */
.rdi-cat-activos { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 18px; }
.rdi-cat .rdi-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  margin: 0;
  padding: 4px 12px 4px 14px;
  border: 0;
  border-radius: 999px;
  background: var(--rc-rosa);
  color: #fff;
  font-family: var(--rc-fuente);
  font-size: .8125rem;
  font-weight: 400;
  line-height: 1.2;
  cursor: pointer;
}
.rdi-cat .rdi-cat-chip::after { content: '\00d7'; font-size: 1.1rem; line-height: 1; }
.rdi-cat .rdi-cat-chip:hover,
.rdi-cat .rdi-cat-chip:focus-visible { background: var(--rc-fucsia); }
.rdi-cat .rdi-cat-chip-todo { background: #fff; color: var(--rc-rosa-texto); box-shadow: inset 0 0 0 1.5px var(--rc-rosa-suave); }
.rdi-cat .rdi-cat-chip-todo::after { content: none; }
.rdi-cat .rdi-cat-chip-todo:hover,
.rdi-cat .rdi-cat-chip-todo:focus-visible { background: var(--rc-rosa-palido); }

.rdi-cat-aviso {
  margin: 0 0 18px;
  padding: 10px 14px;
  border: 1px solid var(--rc-aviso-borde);
  border-radius: 12px;
  background: var(--rc-aviso-bg);
  color: var(--rc-aviso-texto);
  font-size: .875rem;
}

/* =====================================================================
   GRILLA Y TARJETAS
   ===================================================================== */
/* OJO con el hueco entre filas: la tarjeta ocupa 5 filas de ESTA grilla, así que un `row-gap` también se mete entre
   la foto, el título, la descripción, el precio y el botón. Cuando a la tarjeta le falta una parte (los gratis no
   llevan precio) ese hueco queda a la vista y las tarjetas se ven "desparramadas". Por eso: sin hueco entre filas y
   la separación la pone cada tarjeta abajo (--rc-sep-tarjetas). */
.rdi-cat-grilla {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 26px;
  row-gap: 0;
  align-items: stretch;
}
.rdi-cat-con-pastillas .rdi-cat-grilla { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rdi-cat .rdi-cat-item { position: relative; isolation: isolate; min-width: 0; padding: 10px 10px var(--rc-sep-tarjetas); border-radius: 24px; }
.rdi-cat-item[hidden] { display: none !important; }

/* sin subgrid (navegadores viejos): precio y botón al pie de cada tarjeta, así quedan a la misma altura */
.rdi-cat .rdi-cat-item { display: flex; flex-direction: column; }
.rdi-cat .rdi-cat-item > .e-loop-item { flex: 1 1 auto; display: flex; flex-direction: column; }
.rdi-cat .rdi-cat-item > .e-loop-item > .e-con { flex: 1 1 auto; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --min-height: 0px; }
.rdi-cat .rdi-cat-item .elementor-widget-woocommerce-product-price { margin-top: auto; }

/* TARJETAS PAREJAS: cada parte (foto, título, descripción, precio, botón) se alinea con la de las tarjetas de al lado,
   sin cortar los títulos. La fila de la grilla se parte en 5 y cada tarjeta usa esas 5 (subgrid). */
@supports (grid-template-rows: subgrid) {
  .rdi-cat .rdi-cat-item {
    display: grid;
    grid-row: span 5;
    grid-template-rows: subgrid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
    align-content: start;
  }
  .rdi-cat .rdi-cat-item > .e-loop-item,
  .rdi-cat .rdi-cat-item > .e-loop-item > .e-con { display: contents; }
  .rdi-cat .rdi-cat-item .elementor-widget-image { grid-row: 1; }
  /* el título se apoya ABAJO de su fila: cuando en la misma fila hay un título de tres renglones y otro de uno, el
     hueco queda entre la foto y el texto (parejo, prolijo) y no entre el título y su descripción */
  .rdi-cat .rdi-cat-item .elementor-element-178fefc,
  .rdi-cat .rdi-cat-item .elementor-element-4de65bd { grid-row: 2; align-self: end; }
  .rdi-cat .rdi-cat-item .elementor-element-53456dd,
  .rdi-cat .rdi-cat-item .elementor-element-06e71b1 { grid-row: 3; }
  .rdi-cat .rdi-cat-item .elementor-widget-woocommerce-product-price { grid-row: 4; margin-top: 0; align-self: end; }
  .rdi-cat .rdi-cat-item .elementor-element-e77f5e9,
  .rdi-cat .rdi-cat-item .elementor-element-6462ecd { grid-row: 5; align-self: end; }
  .rdi-cat .rdi-cat-item::before { grid-row: 1; }
}

/* la foto: marco redondeado que reserva su lugar, brillo rosado mientras carga y zoom suave adentro */
.rdi-cat .rdi-cat-item .elementor-widget-image { text-align: center; }
.rdi-cat .rdi-cat-item .elementor-widget-image > .elementor-widget-container { height: auto; }
.rdi-cat .rdi-cat-item .elementor-widget-image a {
  position: relative;
  display: block;
  width: 94%;
  margin: 0 auto;
  border-radius: var(--rc-radio);
  overflow: hidden;
  isolation: isolate;
  background-color: var(--rc-rosa-velo);
  background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, .8) 50%, rgba(255, 255, 255, 0) 75%);
  background-size: 220% 100%;
  background-repeat: no-repeat;
  animation: rdi-cat-brillo 1.4s linear infinite;
}
.rdi-cat .rdi-cat-item .elementor-widget-image a.rdi-cat-foto-lista { animation: none; background: none; }
.rdi-cat .rdi-cat-item .elementor-widget-image a.rdi-cat-foto-error { animation: none; background-image: none; }
.rdi-cat .rdi-cat-item .elementor-widget-image img {
  display: block;
  width: 100% !important;
  height: auto;
  margin: 0;
  border-radius: 0 !important;
  transition: transform .55s var(--rc-curva), opacity .35s ease;
}
/* la foto aparece de a poco cuando llega (las tres primeras, no: son las que se ven al abrir) */
.rdi-cat-js .rdi-cat .rdi-cat-item .elementor-widget-image a:not(.rdi-cat-foto-lista) img:not([loading="eager"]) { opacity: 0; }
/* producto sin foto: un lugar rosado con la marca, del mismo tamaño */
.rdi-cat .rdi-cat-item:not(:has(.elementor-widget-image))::before {
  content: '';
  display: block;
  width: 94%;
  aspect-ratio: 1;
  margin: 0 auto;
  border-radius: var(--rc-radio);
  background: var(--rc-rosa-velo) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F79DBE' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='3'/><circle cx='8.5' cy='8.5' r='1.6'/><path d='M21 15l-5-5L5 21'/></svg>") center / 26% no-repeat;
}
@keyframes rdi-cat-brillo {
  from { background-position: 160% 0; }
  to { background-position: -60% 0; }
}

/* título y descripción: mismo margen izquierdo, separados, y la descripción en hasta 3 renglones */
.rdi-cat .rdi-cat-item .elementor-widget-heading,
.rdi-cat .rdi-cat-item .elementor-widget-text-editor { width: 100% !important; max-width: 100% !important; --container-widget-width: 100%; }
.rdi-cat .rdi-cat-item .elementor-widget-heading > .elementor-widget-container { margin: 16px 0 0 !important; padding: 0 14px !important; }
.rdi-cat .rdi-cat-item .elementor-heading-title { line-height: 1.3; transition: color .2s ease; }
.rdi-cat .rdi-cat-item .elementor-widget-text-editor > .elementor-widget-container {
  margin: 8px 0 0 !important;
  padding: 0 14px !important;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--rc-lineas-desc);
  overflow: hidden;
  max-height: calc(1.6em * var(--rc-lineas-desc));
}
.rdi-cat .rdi-cat-item .elementor-widget-text-editor p { margin: 0; }
.rdi-cat .rdi-cat-item .e-con:has(> .elementor-widget-heading),
.rdi-cat .rdi-cat-item .e-con:has(> .elementor-widget-text-editor) { --min-height: 0px; min-height: 0; }
.rdi-cat .rdi-cat-item .elementor-widget-woocommerce-product-price > .elementor-widget-container { margin: 12px 0 0 !important; padding: 0 14px !important; }
.rdi-cat .rdi-cat-item .elementor-widget-woocommerce-product-price .price { margin: 0; }

/* el botón (Añadir al Carrito / Descargar): a lo ancho de la tarjeta y centrado, igual en los tres catálogos.
   La plantilla de los descargables lo trae chico y pegado a la izquierda. */
.rdi-cat .rdi-cat-item .e-con:has(> .elementor-widget-woocommerce-product-add-to-cart) {
  padding: 0 !important;
  justify-content: stretch;
  align-items: stretch;
}
.rdi-cat .rdi-cat-item .elementor-widget-woocommerce-product-add-to-cart {
  width: 100% !important;
  max-width: 100% !important;
  --container-widget-width: 100%;
}
.rdi-cat .rdi-cat-item .elementor-add-to-cart,
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form-container { width: 100%; }
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form-container { margin-top: 14px; }
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0 14px;
}
/* la cantidad viene escondida (un input hidden) pero deja un margen al costado del botón */
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form .quantity:not(:has(input:not([type="hidden"]))) { display: none; }
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form > a,
.rdi-cat .rdi-cat-item .e-loop-add-to-cart-form > button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 48px;
  margin: 0 !important;
  padding: 12px 18px !important;
  text-align: center;
}

/* el precio mientras CURCY lo trae: el mismo brillo, en rosa */
.rdi-cat .wmc-cache-loading .woocommerce-Price-amount.amount::before { background-color: var(--rc-rosa-velo); border-radius: 8px; }
.rdi-cat .wmc-cache-loading .woocommerce-Price-amount.amount::after { background-color: #fff; }

/* imprimibles gratis: botón "Descargar" con ícono */
.rdi-cat .rdi-cat-item a[data-rdi-descargar] .rdi-cat-ico-descarga { flex: none; }

/* al pasar el mouse (sólo con mouse): la tarjeta sube apenas y la foto se agranda dentro de su marco. Sin sombra
   (Male no la quiere). Nada se mueve si la persona pidió menos movimiento. */
@media (hover: hover) and (pointer: fine) {
  .rdi-cat .rdi-cat-item { transition: transform .35s var(--rc-curva); }
  .rdi-cat .rdi-cat-item:hover { transform: translateY(-4px); }
  .rdi-cat .rdi-cat-item:hover .elementor-widget-image img { transform: scale(1.045); }
  .rdi-cat .rdi-cat-item:hover .elementor-heading-title,
  .rdi-cat .rdi-cat-item:hover .elementor-heading-title a { color: var(--rc-rosa-texto) !important; }
}

/* ---------- vacío y ver más ---------- */
.rdi-cat-vacio { padding: 40px 10px 20px; text-align: center; }
.rdi-cat-vacio-t { margin: 0 0 10px; font-size: 1.0625rem; color: var(--rc-tinta); }
.rdi-cat-vacio-sug { margin: 0 0 18px; font-size: .9375rem; color: var(--rc-gris); }
.rdi-cat .rdi-cat-sugerencia {
  margin: 0 2px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--rc-rosa-texto);
  font-family: var(--rc-fuente);
  font-size: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.rdi-cat-vacio-salidas { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; }
.rdi-cat .rdi-cat-otra-salida { color: var(--rc-rosa-texto); font-size: .9375rem; text-decoration: underline; }

.rdi-cat-vermas { margin: 50px 0 0; text-align: center; }
.rdi-cat-vermas-cuenta { margin: 0 0 12px; font-size: .875rem; color: var(--rc-gris); }
.rdi-cat .rdi-cat-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin: 0;
  padding: 12px 42px;
  border: 0;
  border-radius: var(--rc-radio);
  background: var(--rc-rosa);
  color: #fff;
  font-family: var(--rc-fuente);
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background .15s ease, transform .12s ease;
}
.rdi-cat .rdi-cat-boton:hover,
.rdi-cat .rdi-cat-boton:focus-visible { background: var(--rc-fucsia); color: #fff; }
.rdi-cat .rdi-cat-boton:active { transform: scale(.97); }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1360px) {
  .rdi-cat-con-pastillas .rdi-cat-grilla { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1200px) {
  .rdi-cat-con-lateral .rdi-cat-contenedor { grid-template-columns: 220px minmax(0, 1fr); column-gap: 32px; }
  .rdi-cat-con-lateral .rdi-cat-grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
  .rdi-cat-banner { padding: 12px 16px 0; }
  .rdi-cat-contenedor { padding: 16px 16px 0; }
  .rdi-cat-con-lateral .rdi-cat-contenedor { display: block; }
  .rdi-cat-titulo { font-size: 30px; margin-bottom: 10px; }

  /* la barra que acompaña, en chiquito: buscador + dos íconos (filtros y orden) */
  .rdi-cat-pegado {
    position: sticky;
    top: var(--rc-tope, 0px);
    z-index: 20;
    margin: 0 -16px 10px;
    padding: 8px 16px;
    background: var(--rc-fondo);
  }
  /* las tarjetas se desvanecen al pasar por abajo */
  .rdi-cat-pegado::after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    top: 100%;
    height: 12px;
    background: linear-gradient(var(--rc-fondo), rgba(255, 255, 255, 0));
    pointer-events: none;
  }
  .rdi-cat-pegado-fila { gap: 8px; }
  .rdi-cat { --rc-buscar-izq: 42px; --rc-buscar-der: 46px; }
  .rdi-cat .rdi-cat-buscar-input { height: 46px; }
  .rdi-cat .rdi-cat-buscar-lupa { left: 14px; }
  .rdi-cat .rdi-cat-buscar-ir { display: none; } /* el teclado del celular ya trae "Buscar" y la lista se filtra sola */
  .rdi-cat .rdi-cat-buscar-borrar { right: 8px; }
  .rdi-cat .rdi-cat-ico { display: grid; }
  .rdi-cat-orden-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  /* el desplegable del sistema: transparente, justo encima del ícono */
  .rdi-cat .rdi-cat-orden select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    opacity: 0;
  }
  .rdi-cat .rdi-cat-orden:focus-within .rdi-cat-ico { outline: 2px solid var(--rc-fucsia); outline-offset: 2px; }

  .rdi-cat-barra { margin: 0 0 12px; }
  .rdi-cat-resultados { font-size: .8125rem; }

  /* los filtros pasan a una hoja que sube desde abajo (el botón ancho de "Filtrar" ya no hace falta) */
  .rdi-cat .rdi-cat-lat { display: none; }
  .rdi-cat .rdi-cat-lat .rdi-cat-lat-abrir { display: none; }
  .rdi-cat .rdi-cat-lat.rdi-cat-lat-abierta {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 2147483000;
    max-height: 84vh;
    margin: 0;
    padding: 16px 16px 18px;
    border-radius: 24px 24px 0 0;
    background: #fff;
    box-shadow: 0 -10px 34px rgba(58, 26, 40, .22);
    overflow-y: auto;
    overscroll-behavior: contain;
    animation: rdi-cat-sube .22s var(--rc-curva);
  }
  .rdi-cat-fondo { position: fixed; inset: 0; z-index: 2147482999; background: rgba(58, 26, 40, .45); touch-action: none; }
  .rdi-cat-lat-cuerpo { display: none; padding: 0; }
  .rdi-cat-lat-abierta .rdi-cat-lat-cuerpo { display: block; }
  .rdi-cat-lat-t { display: block; margin: 0 40px 16px 0; font-size: 1.125rem; }
  .rdi-cat .rdi-cat-hoja-cerrar {
    display: grid;
    place-items: center;
    position: absolute;
    top: 14px;
    right: 14px;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--rc-rosa-palido);
    color: var(--rc-rosa-texto);
    cursor: pointer;
  }
  .rdi-cat-grupo { margin-bottom: 16px; }
  .rdi-cat-grupo ul { display: flex; flex-wrap: wrap; gap: 6px; }
  .rdi-cat-grupo li { margin: 0; }
  .rdi-cat-grupo label { min-height: 38px; padding: 4px 12px 4px 10px; border: 1px solid #ececec; border-radius: 999px; background: #fff; }
  .rdi-cat .rdi-cat-lat .rdi-cat-lat-ver { display: flex; width: 100%; margin-top: 6px; position: sticky; bottom: 0; }

  /* en el celular las pastillas van en una sola fila que se desliza, y acompañan abajo de la barra */
  .rdi-cat-pastillas {
    position: sticky;
    top: calc(var(--rc-tope, 0px) + var(--rc-alto-pegado, 62px));
    z-index: 19;
    isolation: isolate;
    margin: 0 -16px 12px;
    padding-top: 2px;
    background: var(--rc-fondo);
  }
  .rdi-cat-pastillas .rdi-cat-grupo ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 2px 16px 8px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-behavior: smooth;
  }
  .rdi-cat-pastillas .rdi-cat-grupo ul::-webkit-scrollbar { display: none; }
  .rdi-cat-pastillas .rdi-cat-grupo li { flex: 0 0 auto; }
  /* se avisa que hay más: las pastillas se desvanecen contra el borde y aparece una flecha para seguir */
  .rdi-cat-pastillas.rdi-cat-hay-der .rdi-cat-grupo ul {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 54px), transparent 100%);
    mask-image: linear-gradient(to right, #000 calc(100% - 54px), transparent 100%);
  }
  .rdi-cat-pastillas.rdi-cat-hay-izq .rdi-cat-grupo ul {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 54px);
    mask-image: linear-gradient(to right, transparent 0, #000 54px);
  }
  .rdi-cat-pastillas.rdi-cat-hay-izq.rdi-cat-hay-der .rdi-cat-grupo ul {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 54px, #000 calc(100% - 54px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 54px, #000 calc(100% - 54px), transparent 100%);
  }
  .rdi-cat .rdi-cat-desliza {
    display: grid;
    place-items: center;
    position: absolute;
    top: 4px;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--rc-rosa-suave);
    border-radius: 50%;
    background: #fff;
    color: var(--rc-rosa-texto);
    box-shadow: 0 2px 10px rgba(242, 92, 146, .25);
    cursor: pointer;
    z-index: 2;
  }
  .rdi-cat .rdi-cat-desliza-izq { left: 8px; }
  .rdi-cat .rdi-cat-desliza-izq > svg { transform: rotate(180deg); }
  .rdi-cat .rdi-cat-desliza-der { right: 8px; }

  .rdi-cat-grilla,
  .rdi-cat-con-lateral .rdi-cat-grilla,
  .rdi-cat-con-pastillas .rdi-cat-grilla { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
  .rdi-cat { --rc-sep-tarjetas: 28px; }
}

@keyframes rdi-cat-sube {
  from { transform: translateY(18px); }
  to { transform: translateY(0); }
}

@media (max-width: 499px) {
  .rdi-cat-grilla,
  .rdi-cat-con-lateral .rdi-cat-grilla,
  .rdi-cat-con-pastillas .rdi-cat-grilla { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
  .rdi-cat { --rc-lineas-desc: 4; --rc-sep-tarjetas: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .rdi-cat *,
  .rdi-cat *::before { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .rdi-cat .rdi-cat-item:hover { transform: none; }
  .rdi-cat .rdi-cat-item:hover .elementor-widget-image img { transform: none; }
}
