/* ==========================================================================
   CATÁLOGO · componente estándar (MIG-0192)
   Tarjeta de producto (imagen completa, «Comprar», tarjeta clicable), barra
   lateral de filtros / cajón móvil, barra de orden, chips, grilla y paginación.
   Lo usan la Home (tarjetas y pestañas), /recien-llegados/ y todos los listados
   de WooCommerce. Reglas movidas desde home.css en el mismo orden; alcance
   ampliado a `.pigyplp`.
   ========================================================================== */
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtros{ display:flex; flex-wrap:wrap; gap:8px; padding:16px 0 20px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro{
  display:inline-flex; align-items:center; gap:4px; height:40px; padding:0 16px; border-radius:99px;
  border:1.5px solid #E3E6F0; background:#fff; color:#1A2A6E; font-size:14px; font-weight:700; white-space:nowrap;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro .pf-rec-n{ font-weight:600; color:#6B77A3; font-size:12.5px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro:hover{ border-color:#1A2A6E; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro[aria-pressed="true"]{ background:#1A2A6E; border-color:#1A2A6E; color:#fff; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro[aria-pressed="true"] .pf-rec-n{ color:#C9D0EC; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-filtro:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-vacio{
  padding:28px 24px; border-radius:20px; background:#FBF7F2; border:1px dashed #E9DFD2;
  color:#4A5585; font-size:15px; line-height:1.5; text-align:center;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rec-vacio a{ color:#C42558; font-weight:800; white-space:nowrap; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod{
  position:relative; display:flex; flex-direction:column; width:100%;
  background:#fff; border:1px solid #EEE8F0; border-radius:20px; overflow:hidden;
  box-shadow:0 1px 2px rgba(10,31,102,.04), 0 8px 22px -18px rgba(10,31,102,.22);
  transition:transform .2s ease, box-shadow .2s ease;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{
  position:relative; aspect-ratio:1/1; padding:16px; background:#FAF6F0;
  display:flex; align-items:center; justify-content:center;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto img{
  display:block; width:100%; height:100%; max-width:100%;
  object-fit:contain; object-position:center;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-badges{ position:absolute; top:12px; left:12px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-badge{ display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:99px; font-size:11.5px; font-weight:900; letter-spacing:.02em; line-height:1; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-badge--dto{ background:#F0506A; color:#fff; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-badge--nuevo{ background:#fff; color:#0A1F66; box-shadow:0 0 0 1.5px #0A1F66 inset; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cuerpo{ display:flex; flex-direction:column; flex:1; gap:8px; padding:14px 14px 16px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-nombre{ font-size:15px; font-weight:700; line-height:1.35; color:#1A2A6E; overflow-wrap:anywhere; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-enlace{ color:inherit; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-enlace::after{ content:""; position:absolute; inset:0; z-index:1; border-radius:inherit; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-enlace:focus-visible{ outline:none; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod:has(.pf-prod-enlace:focus-visible){ outline:3px solid #F0506A; outline-offset:3px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio{ margin-top:auto; display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; padding-top:2px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-desde{ font-size:12px; font-weight:700; color:#646E9A; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio ins{ text-decoration:none; font-size:19px; font-weight:900; color:#0A1F66; line-height:1.1; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio del{ font-size:13px; font-weight:600; color:#646E9A; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta{
  position:relative; z-index:2; display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px;
  border-radius:99px; background:#1A2A6E; color:#fff; font-size:14px; font-weight:800; text-align:center;
  transition:background-color .2s ease, box-shadow .2s ease;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta:hover{ background:#0A1F66; color:#fff; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta:focus-visible{ outline:3px solid #F0506A; outline-offset:3px; }
@media (hover:hover){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod:hover{ transform:translateY(-3px); box-shadow:0 1px 2px rgba(10,31,102,.05), 0 18px 32px -20px rgba(10,31,102,.32); }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod:hover .pf-prod-cta{ background:#0A1F66; box-shadow:0 8px 16px -10px rgba(10,31,102,.55); }
}
@media (prefers-reduced-motion:reduce){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod, :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta{ transition:none; }
}
@container pf (min-width:1200px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ padding:20px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cuerpo{ padding:16px 18px 18px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-nombre{ font-size:16px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio ins{ font-size:21px; }
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ --pf-aire:16px; display:block; padding:0; height:auto; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto img{
  position:absolute; top:var(--pf-aire); left:var(--pf-aire);
  width:calc(100% - var(--pf-aire) * 2); height:calc(100% - var(--pf-aire) * 2);
  object-fit:contain; object-position:center;
}
@container pf (min-width:1200px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ --pf-aire:20px; padding:0; }
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod{ border-radius:16px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ --pf-aire:10px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-badges{ top:8px; left:8px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-badge{ height:22px; padding:0 8px; font-size:10.5px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cuerpo{ padding:10px 10px 12px; gap:6px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-nombre{ font-size:13.5px; line-height:1.3; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-desde{ font-size:11px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio ins{ font-size:16.5px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta{ min-height:40px; font-size:13.5px; padding:0 10px; }
@container pf (min-width:768px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod{ border-radius:20px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ --pf-aire:16px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-badges{ top:12px; left:12px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-badge{ height:24px; padding:0 10px; font-size:11.5px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cuerpo{ padding:14px 14px 16px; gap:8px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-nombre{ font-size:15px; line-height:1.35; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio ins{ font-size:19px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cta{ min-height:44px; font-size:14px; }
}
@container pf (min-width:1280px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ --pf-aire:16px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-cuerpo{ padding:13px 14px 15px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-nombre{ font-size:14.5px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-precio ins{ font-size:19px; }
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-marco{ max-width:1400px; margin:0 auto; padding:0 var(--pad); }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-cabecera{ margin-bottom:22px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-titulo{ font-family:'Nunito',system-ui,sans-serif; font-size:var(--h1); font-weight:900; line-height:1.1; color:#0A1F66; margin:0 0 8px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-bajada{ font-size:var(--body); color:#5C6698; max-width:60ch; }
.pigy-catalog .pf-rll-cuenta{ margin-top:12px; font-size:13px; font-weight:600; color:#7A84AD; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; gap:14px 12px; margin:0; padding:0; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid > li{ display:flex; min-width:0; }
@container pf (min-width:768px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
}
@container pf (min-width:1280px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px 18px; }
}
.pigy-catalog .pf-rll-paginas{ margin-top:32px; }
.pigy-catalog .pf-rll-paginas ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.pigy-catalog .pf-rll-paginas a,
.pigy-catalog .pf-rll-paginas span.page-numbers{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:44px; height:44px; padding:0 14px;
  border-radius:12px; border:1.5px solid #E3E6F0; background:#fff; color:#1A2A6E; font-size:14px; font-weight:800;
}
.pigy-catalog .pf-rll-paginas a:hover{ border-color:#1A2A6E; }
.pigy-catalog .pf-rll-paginas .current{ background:#1A2A6E; border-color:#1A2A6E; color:#fff; }
.pigy-catalog .pf-rll-paginas .dots{ border-color:transparent; background:transparent; }
.pigy-catalog .pf-rll-paginas a:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
@container pf (max-width:599px){
  .pigy-catalog .pf-rll-paginas a.prev, .pigy-catalog .pf-rll-paginas a.next{ padding:0 12px; }
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-titulo{ line-height:1.18; padding-bottom:.04em; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-titulo{ line-height:1.22; padding:.06em 0 .08em; margin-bottom:4px; }
.pigy-catalog .pf-rll-cuenta{ margin:0; font-size:13.5px; font-weight:600; color:#6B77A3; }
.pigy-catalog .pf-rll-cuerpo{ display:block; }
.pigy-catalog .pf-rll-resultados{ container-type:inline-size; container-name:rll; min-width:0; }
.pigy-catalog .pf-rll-barra{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; margin-bottom:16px; }
.pigy-catalog .pf-rll-barra .pf-rll-cuenta{ flex:1 1 auto; }
.pigy-catalog .pf-rll-abrir{
  display:inline-flex; align-items:center; gap:8px; height:44px; padding:0 18px; border-radius:99px;
  background:#1A2A6E; color:#fff; font-size:14.5px; font-weight:800; border:0;
}
.pigy-catalog .pf-rll-abrir-n{ color:#C9D0EC; font-weight:700; }
.pigy-catalog .pf-rll-orden{ display:flex; align-items:center; gap:8px; }
.pigy-catalog .pf-rll-orden label{ font-size:13.5px; font-weight:700; color:#4A5585; white-space:nowrap; }
.pigy-catalog .pf-rll-orden select{
  height:44px; padding:0 38px 0 14px; border-radius:12px; border:1.5px solid #E3E6F0; background-color:#fff;
  color:#1A2A6E; font-size:14px; font-weight:700; font-family:inherit; cursor:pointer; box-shadow:none;
  -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%231A2A6E' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
}
.pigy-catalog .pf-rll-abrir:focus-visible,
.pigy-catalog .pf-rll-orden select:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
.pigy-catalog .pf-rll-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.pigy-catalog .pf-rll-chips a{
  display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 14px; border-radius:99px;
  background:#EEF1FB; color:#1A2A6E; font-size:13.5px; font-weight:700;
}
.pigy-catalog .pf-rll-chips a span[aria-hidden]{ font-size:16px; line-height:1; }
.pigy-catalog .pf-rll-chips a:hover{ background:#E1E6F7; }
.pigy-catalog .pf-rll-chips .pf-rll-chips-limpiar{ background:transparent; color:#C42558; text-decoration:underline; text-underline-offset:3px; }
.pigy-catalog .pf-rll-chips a:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
@container rll (min-width:560px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
}
@container rll (min-width:860px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-rll-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px 18px; }
}
.pigy-catalog .pf-rll-dialogo{ padding:0; border:0; margin:0; background:transparent; color:inherit; max-width:none; max-height:none; }
.pigy-catalog .pf-rll-filtros{
  background:#fff; border:1px solid #EEE8F0; border-radius:22px; padding:18px 18px 8px;
  box-shadow:0 1px 2px rgba(10,31,102,.03);
}
.pigy-catalog .pf-rll-filtros-cab{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:4px; }
.pigy-catalog .pf-rll-filtros-titulo{ font-family:'Nunito',system-ui,sans-serif; font-size:19px; font-weight:900; color:#0A1F66; margin:0; }
.pigy-catalog .pf-rll-cerrar{
  display:none; width:44px; height:44px; border-radius:50%; border:0; background:#F3F4FA; color:#1A2A6E;
  align-items:center; justify-content:center;
}
.pigy-catalog .pf-rll-cerrar:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
.pigy-catalog .pf-rll-form{ margin:0; }
.pigy-catalog .pf-rll-grupo{ border:0; margin:0; padding:16px 0 14px; border-top:1px solid #F0ECF3; min-width:0; }
.pigy-catalog .pf-rll-grupo:first-of-type{ border-top:0; }
.pigy-catalog .pf-rll-grupo legend{ padding:0; margin-bottom:10px; font-size:15px; font-weight:900; color:#0A1F66; float:left; width:100%; }
.pigy-catalog .pf-rll-grupo legend + *{ clear:both; }
.pigy-catalog .pf-rll-precio{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pigy-catalog .pf-rll-precio label{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:700; color:#5C6698; }
.pigy-catalog .pf-rll-precio input{
  width:100%; height:42px; padding:0 10px; border-radius:12px; border:1.5px solid #E3E6F0; background:#fff;
  color:#1A2A6E; font-size:14.5px; font-weight:700; font-family:inherit; box-shadow:none; margin:0;
}
.pigy-catalog .pf-rll-precio input:focus{ outline:none; border-color:#1A2A6E; box-shadow:0 0 0 3px rgba(26,42,110,.12); }
.pigy-catalog .pf-rll-nota{ margin-top:6px; font-size:11.5px; color:#8A93B8; }
.pigy-catalog .pf-rll-opciones{ display:flex; flex-direction:column; gap:2px; }
.pigy-catalog .pf-rll-check{
  display:flex; align-items:center; gap:10px; min-height:38px; padding:2px 6px; margin:0 -6px; border-radius:10px;
  font-size:14px; font-weight:600; color:#1A2A6E; cursor:pointer;
}
.pigy-catalog .pf-rll-check:hover{ background:#F6F7FC; }
.pigy-catalog .pf-rll-check input{ width:20px; height:20px; flex:none; margin:0; accent-color:#1A2A6E; cursor:pointer; }
.pigy-catalog .pf-rll-check input:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
.pigy-catalog .pf-rll-check-txt{ flex:1 1 auto; min-width:0; }
.pigy-catalog .pf-rll-check-n{ flex:none; font-size:12.5px; font-weight:600; color:#8A93B8; }
.pigy-catalog .pf-rll-check.es-vacia{ color:#A9B0CC; }
.pigy-catalog .pf-rll-acciones{ display:flex; flex-direction:column; gap:8px; padding:14px 0 12px; border-top:1px solid #F0ECF3; }
.pigy-catalog .pf-rll-aplicar{
  height:46px; border-radius:99px; border:0; background:#1A2A6E; color:#fff; font-size:14.5px; font-weight:800; cursor:pointer;
}
.pigy-catalog .pf-rll-aplicar:hover{ background:#0A1F66; }
.pigy-catalog .pf-rll-aplicar:focus-visible, .pigy-catalog .pf-rll-limpiar:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
.pigy-catalog .pf-rll-limpiar{ align-self:center; padding:6px 8px; font-size:13.5px; font-weight:800; color:#C42558; text-decoration:underline; text-underline-offset:3px; }
.pigy-catalog .pf-rll-dialogo[open]{
  position:fixed; inset:0 auto 0 0; width:min(380px, 92vw); height:100dvh;
  background:#fff; overflow:auto; overscroll-behavior:contain; border-radius:0 22px 22px 0;
  box-shadow:0 20px 50px -20px rgba(10,31,102,.45);
}
.pigy-catalog .pf-rll-dialogo::backdrop{ background:rgba(10,31,102,.38); }
.pigy-catalog .pf-rll-dialogo[open] .pf-rll-filtros{ border:0; border-radius:0; box-shadow:none; padding:16px 20px 0; min-height:100%; display:flex; flex-direction:column; }
.pigy-catalog .pf-rll-dialogo[open] .pf-rll-cerrar{ display:inline-flex; }
.pigy-catalog .pf-rll-dialogo[open] .pf-rll-filtros-cab{ position:sticky; top:0; z-index:2; background:#fff; padding:4px 0 8px; margin:0; }
.pigy-catalog .pf-rll-dialogo[open] .pf-rll-form{ flex:1 1 auto; display:flex; flex-direction:column; }
.pigy-catalog .pf-rll-dialogo[open] .pf-rll-acciones{ position:sticky; bottom:0; margin-top:auto; background:#fff; padding-bottom:max(14px, env(safe-area-inset-bottom)); }
@container pf (min-width:1000px){
  .pigy-catalog .pf-rll-cuerpo{ display:grid; grid-template-columns:264px minmax(0,1fr); gap:28px; align-items:start; }
  .pigy-catalog .pf-rll-dialogo,
  .pigy-catalog .pf-rll-dialogo:not([open]){ display:block; position:static; width:auto; height:auto; }
  .pigy-catalog .pf-rll-abrir{ display:none; }
}
@container pf (max-width:599px){
  .pigy-catalog .pf-rll-barra .pf-rll-cuenta{ order:3; flex-basis:100%; }
  .pigy-catalog .pf-rll-orden label{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .pigy-catalog .pf-rll-orden{ margin-left:auto; }
  .pigy-catalog .pf-rll-orden select{ max-width:190px; }
}
.pigy-catalog .pf-rll-grupo{ background:none; padding:16px 0 14px; margin:0; }
.pigy-catalog .pf-rll-grupo legend{ margin-left:0; padding:0; }
.pigy-catalog .pf-rll-cerrar{ padding:0; flex:none; line-height:0; }
.pigy-catalog .pf-rll-cerrar svg{ width:22px; height:22px; flex:none; display:block; }
.pigy-catalog .pf-rll-cerrar:focus{ outline:none; }
.pigy-catalog .pf-rll-cerrar:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
.pigy-catalog .pf-rll-abrir{ padding:0 18px; }
@container pf (max-width:599px){
  .pigy-catalog .pf-rll-orden{ flex:1 1 0; min-width:0; }
  .pigy-catalog .pf-rll-orden select{ width:100%; max-width:none; font-size:13.5px; padding:0 32px 0 12px; background-position:right 12px center; }
}
.pigy-catalog .pf-rll-grupo legend{ background:none; border:0; }

/* ── MIG-0192 · componente en los listados de WooCommerce y filtro sticky ── */
.pigyplp .pf-fc-plp{ padding:8px 0 0; } /* layout exterior de la plantilla de listado */
/* MIG-0193B · un solo sistema: misma tipografía y mismo marco en todos los listados. */
.pigy-catalog .pf-rll-cuerpo{ font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif; }
.pigyhome .pf-rll .pf-rll-marco{ max-width:1760px; }
@container pf (min-width:1280px){ .pigyhome .pf-rll .pf-rll-marco{ padding-left:52px; padding-right:52px; } }
.pigy-catalog .pf-fc-limpiar-cab{ margin-left:auto; font-size:13px; font-weight:800; color:#C42558; text-decoration:underline; text-underline-offset:3px; }
.pigy-catalog .pf-rll-dialogo[open] .pf-fc-limpiar-cab{ display:none; }
@container pf (min-width:1000px){
  /* MIG-0193B · sin scroll interno: el filtro crece natural. Sticky estándar en todas
     las páginas (JS calcula --pf-fc-top): cabe → fijo bajo el header; más alto que la
     ventana → acompaña a la página y se fija con su final visible. */
  .pigy-catalog .pf-rll-dialogo,
  .pigy-catalog .pf-rll-dialogo:not([open]){
    position:relative; top:auto; max-height:none; overflow:visible; border-radius:22px;
  }
  .pigy-catalog.pf-fc-fijo .pf-rll-dialogo,
  .pigy-catalog.pf-fc-fijo .pf-rll-dialogo:not([open]){ position:sticky; top:var(--pf-fc-top, calc(var(--pf-hdr, 0px) + 16px)); }
  .pigy-catalog .pf-rll-cuerpo{ align-items:start; }
}

/* Ajuste de Dani · Día del Profesor: área de imagen blanca como la tarjeta y la
   sección. El crema (#FAF6F0) dejaba ver el rectángulo blanco de cada foto. */
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-foto{ background:#FFFFFF; } /* MIG-0193B: global (antes solo Día del Profesor) */

/* ══════════════════════════════════════════════════════════════════════════
   MIG-0193 · COMPONENTES GLOBALES: favorito, estrellas, bloque final de
   categoría, opiniones y relacionados de la ficha, página de favoritos.
   ══════════════════════════════════════════════════════════════════════════ */
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav{
  position:absolute; z-index:3; top:10px; right:10px; display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; border:0; border-radius:50%; cursor:pointer; line-height:0;
  background:rgba(255,255,255,.96); color:#1A2A6E; box-shadow:0 3px 10px rgba(26,42,110,.16);
  transition:transform .18s ease, color .18s ease;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav[aria-pressed="true"]{ color:#F0506A; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav[aria-pressed="true"] svg{ fill:currentColor; }
@media (hover:hover){ :is(.pigyhome,.pigyplp,.pigypdp) .pf-fav:hover{ transform:scale(1.08); color:#F0506A; } }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav:focus{ outline:none; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav--ficha{
  position:static; width:auto; height:40px; padding:0 16px 0 12px; gap:7px; border-radius:99px; margin-left:auto;
  box-shadow:none; border:1.5px solid #E3E6F0; font-size:14px; font-weight:800; line-height:1;
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-fav--ficha[aria-pressed="true"]{ border-color:#F8B7C4; background:#FFF3F6; }
@media (prefers-reduced-motion:reduce){ :is(.pigyhome,.pigyplp,.pigypdp) .pf-fav{ transition:none; } }

:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas{ display:flex; align-items:center; gap:5px; margin:0; font-size:12px; font-weight:700; color:#646E9A; line-height:1; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas a{ display:inline-flex; align-items:center; gap:5px; color:inherit; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas-svg{ display:inline-flex; gap:1px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas-svg svg{ width:13px; height:13px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas--ficha{ font-size:14px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas--ficha .pf-estrellas-svg svg{ width:17px; height:17px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas-prom{ color:#0A1F66; font-weight:900; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas--vacio{ font-size:13px; font-weight:600; color:#8A93B8; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-estrellas--vacio a{ text-decoration:underline; text-underline-offset:3px; }

.pf-fav-aviso{
  position:fixed; left:50%; bottom:calc(84px + env(safe-area-inset-bottom)); z-index:9999; transform:translate(-50%,20px); opacity:0; pointer-events:none;
  max-width:calc(100vw - 32px); padding:12px 18px; border-radius:99px; background:#0A1F66; color:#fff;
  font:700 14px/1.3 'Figtree','Nunito',system-ui,sans-serif; box-shadow:0 14px 30px -12px rgba(10,31,102,.6); transition:opacity .2s ease, transform .2s ease;
}
.pf-fav-aviso.es-visible{ opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.pf-fav-aviso a{ color:#7DE6E7; margin-left:6px; text-decoration:underline; text-underline-offset:3px; }
@media (min-width:1000px){ .pf-fav-aviso{ bottom:28px; } }

/* Bloque final de categoría */
.pigyplp .pf-cat-info{ margin-top:calc(var(--sec)*.8); background:#FBF7F3; border-top:1px solid #F1E9DF; padding:calc(var(--sec)*.7) 0; }
.pigyplp .pf-cat-info-marco{ max-width:1760px; margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:minmax(0,1fr); gap:28px; }
.pigyplp .pf-cat-info-titulo{ font-family:'Nunito',system-ui,sans-serif; font-size:calc(var(--h2) - 4px); font-weight:900; line-height:1.2; color:#0A1F66; margin:0 0 14px; }
.pigyplp .pf-cat-info-texto p{ font-size:var(--body); line-height:1.75; color:#4C5689; margin:0 0 12px; max-width:68ch; }
.pigyplp .pf-cat-info-rel ul{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.pigyplp .pf-cat-info-rel a{ display:inline-flex; align-items:center; min-height:40px; padding:0 15px; border-radius:99px; background:#fff; border:1.5px solid #EDE3D6; font-size:13.5px; font-weight:700; color:#0A1F66; }
.pigyplp .pf-cat-info-rel a:hover{ border-color:#0A1F66; }
.pigyplp .pf-cat-info-rel a:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; }
@container pf (min-width:900px){ .pigyplp .pf-cat-info-marco{ grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:56px; } }

/* Ficha: acciones, opiniones y relacionados */
.pigypdp .pf-pdp-acciones{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-bottom:16px; }
.pigypdp .pf-pdp-sku{ font-size:12px; font-weight:700; color:#8794BC; font-family:ui-monospace,Menlo,monospace; }
.pigypdp .pf-opiniones{ margin-top:var(--sec); padding-top:calc(var(--sec)*.6); border-top:1.5px solid #F0E7DC; scroll-margin-top:calc(var(--pf-hdr, 0px) + 20px); }
.pigypdp .pf-opiniones-cab{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; margin-bottom:18px; }
.pigypdp .pf-opiniones-titulo{ font-size:calc(var(--h2) - 6px); font-weight:900; color:#0A1F66; margin:0; }
.pigypdp .pf-opiniones-cuerpo #reviews h2.woocommerce-Reviews-title{ display:none; }
.pigypdp .pf-opiniones-cuerpo .woocommerce-noreviews{ margin:0 0 18px; padding:16px 18px; border-radius:16px; background:#FBF7F3; color:#4C5689; font-size:15px; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist{ margin:0 0 24px; padding:0; list-style:none; display:grid; gap:14px; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist li .comment_container{ display:flex; gap:12px; padding:16px; border:1.5px solid #F0E7DC; border-radius:18px; background:#fff; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist li img.avatar{ width:44px; height:44px; border-radius:50%; flex:none; position:static; }
.pigypdp .pf-opiniones-cuerpo .comment-text{ flex:1; min-width:0; margin:0 !important; padding:0 !important; border:0 !important; }
.pigypdp .pf-opiniones-cuerpo .meta{ font-size:13px; color:#646E9A; margin:4px 0 8px; }
.pigypdp .pf-opiniones-cuerpo .woocommerce-review__author{ color:#0A1F66; font-weight:800; }
.pigypdp .pf-opiniones-cuerpo .description p{ font-size:15px; line-height:1.6; color:#33407C; margin:0; }
.pigypdp .pf-opiniones-cuerpo #review_form_wrapper{ max-width:720px; padding:20px; border-radius:20px; background:#fff; border:1.5px solid #F0E7DC; }
.pigypdp .pf-opiniones-cuerpo .comment-reply-title{ display:block; font-size:17px; font-weight:900; color:#0A1F66; margin-bottom:10px; }
.pigypdp .pf-opiniones-cuerpo .comment-form p{ margin:0 0 12px; }
.pigypdp .pf-opiniones-cuerpo .comment-form label{ display:block; font-size:13.5px; font-weight:700; color:#1A2A6E; margin-bottom:5px; }
.pigypdp .pf-opiniones-cuerpo .comment-form input[type=text],
.pigypdp .pf-opiniones-cuerpo .comment-form input[type=email],
.pigypdp .pf-opiniones-cuerpo .comment-form textarea{ width:100%; border:1.5px solid #E3E6F0; border-radius:12px; padding:10px 12px; font:inherit; font-size:15px; background:#fff; box-shadow:none; }
.pigypdp .pf-opiniones-cuerpo .comment-form textarea{ min-height:120px; }
.pigypdp .pf-opiniones-cuerpo .comment-form .comment-form-cookies-consent label{ display:inline; font-weight:500; }
.pigypdp .pf-opiniones-cuerpo p.stars a{ color:#FFB931; }
.pigypdp .pf-opiniones-cuerpo .form-submit input[type=submit]{ min-height:48px; padding:0 26px; border:0; border-radius:99px; background:#0A1F66; color:#fff; font-size:15px; font-weight:800; cursor:pointer; }
.pigypdp .pf-pdp-rel{ margin-top:var(--sec); }
.pigypdp .pf-pdp-rel-titulo{ font-size:calc(var(--h2) - 6px); font-weight:900; color:#0A1F66; margin:0 0 18px; }
.pigypdp .pf-pdp-rel-grid{ list-style:none; margin:0; padding:0; }
@container pf (min-width:768px){ .pigypdp .pf-pdp-rel-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; } }
.pigypdp .pf-pdp-rel-grid > li{ list-style:none; }
.pigypdp .pf-pdp-rel-grid h3, .pigypdp .pf-pdp-rel-grid p{ margin:0; }
.pigypdp .pf-pdp-rel-grid a{ text-decoration:none; }
.pigypdp .pf-opiniones-cuerpo .woocommerce-noreviews::before{ display:none; }
.pigypdp .pf-opiniones-cuerpo .woocommerce-noreviews{ border:0; padding-left:18px; }
.pigypdp .pf-opiniones-cuerpo #review_form{ background:none; padding:0; }
.pigypdp .pf-opiniones-cuerpo #review_form_wrapper{ padding:22px 24px; }
/* Opiniones: Storefront reserva columna para avatar y usa estrellas moradas. */
.pigypdp .pf-opiniones-cuerpo ol.commentlist li{ margin:0; padding:0; border:0; background:none; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist li .comment_container{ display:block; position:relative; padding:16px 18px; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist li img.avatar{ display:none; }
.pigypdp .pf-opiniones-cuerpo ol.commentlist li .comment-text{ float:none !important; width:auto !important; }
.pigypdp .pf-opiniones-cuerpo .star-rating{ float:right; color:#FFB931; }
.pigypdp .pf-opiniones-cuerpo .star-rating::before{ color:#E3E6F0; }
.pigypdp .pf-opiniones-cuerpo .star-rating span::before,
.pigypdp .pf-opiniones-cuerpo p.stars a::before,
.pigypdp .pf-opiniones-cuerpo p.stars:hover a::before,
.pigypdp .pf-opiniones-cuerpo p.stars.selected a.active::before,
.pigypdp .pf-opiniones-cuerpo p.stars.selected a:not(.active)::before{ color:#FFB931; }
.pigypdp .pf-opiniones-cuerpo p.stars.selected a.active ~ a::before{ color:#D6DAE8; }

/* MIG-0193B · el H1 de la ficha desbordaba 4px de descendentes. */
.pigypdp .p2-buy h1{ padding-bottom:.1em; }


/* ══════════════════════════════════════════════════════════════════════════
   MIG-0193B · CONTENEDOR VISUAL ÚNICO `.pigy-catalog`
   Reinicios propios: el filtro se ve igual sin importar la hoja de la página
   (.pigyhome / .pigyplp). Especificidad 0,1,1 < reglas del componente (0,2,0).
   ══════════════════════════════════════════════════════════════════════════ */
.pigy-catalog{ font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif; color:#1A2A6E; }
.pigy-catalog ul, .pigy-catalog ol{ margin:0; padding:0; list-style:none; }
.pigy-catalog li{ margin:0; list-style:none; }
.pigy-catalog p, .pigy-catalog h2{ margin:0; }
.pigy-catalog a{ text-decoration:none; }
.pigy-catalog button{ font:inherit; cursor:pointer; border:0; background:none; color:inherit; }
.pigy-catalog fieldset{ min-width:0; }
.pigy-catalog *, .pigy-catalog *::before, .pigy-catalog *::after{ box-sizing:border-box; }

/* /favoritos/ usa el contador fuera del listado. */
.pigyhome .pf-favs .pf-rll-cuenta{ margin-top:12px; font-size:13.5px; font-weight:600; color:#6B77A3; }


/* ══════════════════════════════════════════════════════════════════════════
   MIG-0193B · BLOQUES DEL FILTRO: acordeón + «Ver más» (regla global)
   ══════════════════════════════════════════════════════════════════════════ */
.pigy-catalog .pf-rll-grupo legend{ margin-bottom:0; }
.pigy-catalog .pf-fc-toggle{
  display:flex; align-items:center; gap:8px; width:100%; min-height:32px; padding:0; margin:0;
  background:none; border:0; text-align:left; cursor:pointer;
  font:inherit; font-size:15px; font-weight:900; line-height:24px; color:#0A1F66;
}
.pigy-catalog .pf-fc-toggle-txt{ flex:1 1 auto; }
.pigy-catalog .pf-fc-toggle-n{ display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:99px; background:#F0506A; color:#fff; font-size:11.5px; font-weight:800; }
.pigy-catalog .pf-fc-chevron{ flex:none; width:18px; height:18px; color:#6B77A3; transition:transform .18s ease; }
.pigy-catalog .pf-fc-toggle:focus-visible{ outline:3px solid #F0506A; outline-offset:3px; border-radius:6px; }
.pigy-catalog .pf-fc-panel{ padding-top:10px; }
.pigy-catalog .pf-rll-grupo legend + *{ clear:both; }
.pigy-catalog .pf-rll-grupo{ padding:12px 0; }
.pigy-catalog .pf-rll-grupo.is-abierto{ padding-bottom:14px; }
/* Comportamiento solo con JS: sin JS todo abierto y completo. */
.pigy-catalog.pf-fc-js .pf-rll-grupo:not(.is-abierto) .pf-fc-panel{ display:none; }
.pigy-catalog.pf-fc-js .pf-rll-grupo.is-abierto .pf-fc-chevron{ transform:rotate(180deg); }
.pigy-catalog:not(.pf-fc-js) .pf-fc-chevron,
.pigy-catalog:not(.pf-fc-js) .pf-fc-vermas{ display:none; }
.pigy-catalog.pf-fc-js .pf-rll-opciones.tiene-extra:not(.ver-todo) > .pf-fc-extra{ display:none; }
.pigy-catalog .pf-fc-vermas{
  display:inline-flex; align-items:center; min-height:34px; margin:4px 0 0; padding:0;
  background:none; border:0; cursor:pointer; font:inherit; font-size:13.5px; font-weight:800; color:#C42558;
  text-decoration:underline; text-underline-offset:3px;
}
.pigy-catalog .pf-fc-vermas:focus-visible{ outline:3px solid #F0506A; outline-offset:2px; border-radius:6px; }
@media (prefers-reduced-motion:reduce){ .pigy-catalog .pf-fc-chevron{ transition:none; } }
/* MIG-0193B · estándar compacto: los listados caben enteros bajo el header en 1440×900. */
.pigy-catalog .pf-rll-check{ min-height:34px; }
.pigy-catalog .pf-rll-grupo{ padding:10px 0; }
.pigy-catalog .pf-rll-grupo.is-abierto{ padding-bottom:12px; }
.pigy-catalog .pf-fc-panel{ padding-top:8px; }
.pigy-catalog .pf-rll-filtros-cab{ margin-bottom:0; }
.pigy-catalog .pf-rll-acciones{ padding:12px 0 10px; }

/* MIG-0298 · Banner editorial en «Recién llegados»: mismo radio que en las
   categorías (plp.css: 26 → 32 → 38 → 44 según el ancho del contenedor). */
.pigyhome .pf-rll .cbanner-arte{ border-radius:26px!important; }
@container pf (min-width:600px){ .pigyhome .pf-rll .cbanner-arte{ border-radius:32px!important; } }
@container pf (min-width:768px){ .pigyhome .pf-rll .cbanner-arte{ border-radius:38px!important; } }
@container pf (min-width:1024px){ .pigyhome .pf-rll .cbanner-arte{ border-radius:44px!important; } }

/* MIG-0365 · Tarjeta destacada (Fotolibro Espiral Personalizado en Fotolibros Espiral). Mismo tamaño de tarjeta e
   imagen que las demás; la distinción es gráfica: fondo rosado, borde y sombra rosa, etiqueta y llamada a la acción. */
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest{
  /* Borde de 1 px (como las demás) + anillo exterior de 1 px con sombra: se ve de 2 px sin achicar la caja de la imagen. */
  background:linear-gradient(165deg,#FFF7FA 0%,#FDEBF1 100%); border-color:#FF5C8A;
  box-shadow:0 0 0 1px #FF5C8A, 0 14px 28px -18px rgba(232,67,122,.65);
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-foto{ background:#fff; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-badge--dest{ background:#FF5C8A; color:#fff; box-shadow:0 6px 12px -8px rgba(232,67,122,.9); }
/* Frase breve: interlineado y separaciones justas para sumar la menor altura posible a la fila (MIG-0365, 22-10). */
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-frase{ margin:0; font-size:12px; font-weight:600; line-height:1.22; color:#B03561; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cuerpo{ gap:3px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-frase-c{ display:none; }
@container pf (max-width:767px){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-frase{ font-size:11px; line-height:1.22; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-frase-l{ display:none; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod-frase-c{ display:inline; }
  /* Tarjeta angosta: la etiqueta no debe tocar el corazón de favoritos. */
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-badge--dest{ height:auto; min-height:20px; max-width:calc(100% - 56px); padding:3px 7px; font-size:9.5px; line-height:1.15; letter-spacing:0; white-space:normal; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-badges{ right:8px; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cta{ white-space:nowrap; }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cta span[aria-hidden]{ display:none; }
}
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cta{ gap:6px; }
:is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cta{ background:#E8437A; box-shadow:0 8px 16px -10px rgba(232,67,122,.9); }
@media (hover:hover){
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest:hover{ box-shadow:0 0 0 1px #FF5C8A, 0 20px 34px -20px rgba(232,67,122,.75); }
  :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest:hover .pf-prod-cta, :is(.pigyhome,.pigyplp,.pigypdp) .pf-prod--dest .pf-prod-cta:hover{ background:#C42558; }
}
