/* DIFRIHO · Índice flotante del Catálogo Web · v1.1.0 */
.dfcf-widget,.dfcf-widget * {box-sizing:border-box;}
.dfcf-widget {
  position:fixed;right:calc(22px + env(safe-area-inset-right, 0px));
  top:124px;
  width:54px;height:54px;z-index:9900;
  font-family:inherit;isolation:isolate;
  -webkit-tap-highlight-color:transparent;
}
.dfcf-widget .dfcf-toggle {
  position:absolute;z-index:2;inset:0;width:54px;height:54px;min-width:54px;min-height:54px;
  display:grid;place-items:center;margin:0;padding:0;
  border:1px solid rgba(255,255,255,.24);border-radius:50%;
  background:linear-gradient(145deg,#1b87b2,#175074);color:#fff;
  box-shadow:0 9px 24px rgba(15,58,86,.24),inset 0 1px rgba(255,255,255,.21);
  cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;
  animation:dfcf-idle 11s ease-in-out infinite;
  transition:box-shadow .22s ease,background .22s ease,border-color .22s ease;
}
.dfcf-widget .dfcf-toggle:hover {box-shadow:0 12px 28px rgba(15,58,86,.31),inset 0 1px rgba(255,255,255,.26);background:linear-gradient(145deg,#258fba,#1a5c84);}
.dfcf-widget .dfcf-toggle:focus-visible {outline:3px solid #55beea;outline-offset:4px;}
.dfcf-widget.is-dragging .dfcf-toggle {cursor:grabbing;animation:none;box-shadow:0 16px 32px rgba(15,58,86,.33);}
.dfcf-widget.is-open .dfcf-toggle {animation:none;background:linear-gradient(145deg,#176e95,#103e60);}
.dfcf-toggle-grid,.dfcf-toggle-close {position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .22s ease;}
.dfcf-toggle-grid svg,.dfcf-toggle-close svg {display:block;width:22px;height:22px;}
.dfcf-widget .dfcf-toggle-grid {opacity:1;transform:rotate(0) scale(1);}
.dfcf-widget .dfcf-toggle-close {opacity:0;transform:rotate(-85deg) scale(.5);}
.dfcf-widget.is-open .dfcf-toggle-grid {opacity:0;transform:rotate(80deg) scale(.55);}
.dfcf-widget.is-open .dfcf-toggle-close {opacity:1;transform:rotate(0) scale(1);}
/* Idle suave: cada 11 s un halo tenue y un mínimo gesto de la cuadrícula.
   El botón en sí no cambia de tamaño para que el arrastre sea estable. */
@keyframes dfcf-idle {
  0%,68%,100% {box-shadow:0 9px 24px rgba(15,58,86,.24),inset 0 1px rgba(255,255,255,.21);}
  77% {box-shadow:0 9px 24px rgba(15,58,86,.28),0 0 0 3px rgba(31,136,177,.09),inset 0 1px rgba(255,255,255,.21);}
  86% {box-shadow:0 9px 24px rgba(15,58,86,.24),inset 0 1px rgba(255,255,255,.21);}
}
.dfcf-widget:not(.is-open):not(.is-dragging) .dfcf-toggle-grid svg {
  animation:dfcf-icon-idle 11s ease-in-out infinite;
  transform-origin:center;
}
@keyframes dfcf-icon-idle {
  0%,68%,100% {transform:translateY(0) rotate(0) scale(1);}
  76% {transform:translateY(-1.5px) rotate(-3deg) scale(1.035);}
  84% {transform:translateY(0) rotate(0) scale(1);}
}
.dfcf-widget .dfcf-toggle:hover .dfcf-toggle-grid svg {animation-play-state:paused;}
.dfcf-widget .dfcf-panel[hidden] {display:none!important;}
.dfcf-widget .dfcf-panel {
  position:fixed;top:0;left:0;z-index:1;
  display:block;width:min(334px,calc(100vw - 24px));
  max-height:min(510px,calc(100dvh - 24px));overflow:auto;overscroll-behavior:contain;
  background:#fff;border:1px solid #d9e7f0;border-radius:17px;
  box-shadow:0 20px 55px rgba(13,39,58,.21),0 5px 14px rgba(13,39,58,.09);
  color:#23465e;opacity:0;pointer-events:none;
  transform:translate(var(--dfcf-enter-x,9px),var(--dfcf-enter-y,9px)) scale(.97);
  transform-origin:var(--dfcf-origin,100% 100%);
  transition:opacity .22s ease,transform .28s cubic-bezier(.2,.75,.2,1);
  scrollbar-width:thin;scrollbar-color:#b7d3e2 transparent;
}
.dfcf-widget.is-open .dfcf-panel {opacity:1;pointer-events:auto;transform:translate(0,0) scale(1);}
.dfcf-widget .dfcf-panel-head {
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:17px 17px 13px;background:linear-gradient(115deg,#f3f9fc,#fff);
  border-bottom:1px solid #e7eff3;
}
.dfcf-widget .dfcf-panel-head > div {display:grid;gap:3px;min-width:0;}
.dfcf-widget .dfcf-eyebrow {font-size:10px;font-weight:800;letter-spacing:.105em;color:#5e8da7;line-height:1.35;}
.dfcf-widget .dfcf-panel-head strong {font-size:16px;line-height:1.3;font-weight:800;color:#163e58;}
.dfcf-widget .dfcf-count {display:grid;place-items:center;min-width:33px;height:32px;padding:0 7px;border-radius:9px;background:#e8f3f8;color:#326d87;font-size:12px;font-weight:800;}
.dfcf-widget .dfcf-links {padding:7px;display:grid;gap:2px;}
.dfcf-widget a.dfcf-family {
  text-decoration:none;display:flex;align-items:center;gap:11px;
  min-width:0;min-height:45px;padding:7px 10px;border-radius:10px;
  color:#36576d;background:transparent;border:1px solid transparent;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.dfcf-widget a.dfcf-family:hover {background:#f1f8fb;color:#155d82;text-decoration:none;}
.dfcf-widget a.dfcf-family.is-current {background:#e8f5fa;border-color:#cbe5ef;color:#126385;font-weight:750;}
.dfcf-widget a.dfcf-family:focus-visible,.dfcf-widget a.dfcf-index-link:focus-visible {outline:2px solid #1785af;outline-offset:1px;}
.dfcf-widget .dfcf-family-icon {flex:0 0 31px;width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#eef5f9;color:#47778d;}
.dfcf-widget .dfcf-family-icon svg {width:18px;height:18px;display:block;}
.dfcf-widget .dfcf-family.is-current .dfcf-family-icon {background:#d1ebf5;color:#166e95;}
.dfcf-widget .dfcf-family-name {min-width:0;flex:1;font-size:13px;line-height:1.3;font-weight:600;}
.dfcf-widget .dfcf-family-trailing {flex:0 0 auto;color:#7c9bae;font-size:16px;font-weight:800;line-height:1;}
.dfcf-widget .dfcf-family.is-current .dfcf-family-trailing {color:#177a9b;font-size:14px;}
.dfcf-widget a.dfcf-index-link {display:flex;justify-content:space-between;align-items:center;padding:14px 18px;color:#125c7d;font-weight:750;font-size:13px;border-top:1px solid #e6eff4;background:#f7fafc;text-decoration:none;}
.dfcf-widget a.dfcf-index-link:hover {background:#eff7fb;color:#0b688d;text-decoration:none;}
@media(max-width:620px) {
 .dfcf-widget {width:50px;height:50px;right:calc(14px + env(safe-area-inset-right,0px));top:92px;}
 .dfcf-widget .dfcf-toggle {width:50px;height:50px;min-width:50px;min-height:50px;}
 .dfcf-widget .dfcf-panel {width:min(320px,calc(100vw - 20px));max-height:min(500px,calc(100dvh - 20px));}
}
@media(prefers-reduced-motion:reduce) {
 .dfcf-widget .dfcf-toggle,.dfcf-widget .dfcf-toggle-grid svg {animation:none!important;transition:none!important;}
 .dfcf-widget .dfcf-panel,.dfcf-widget .dfcf-toggle-grid,.dfcf-widget .dfcf-toggle-close {transition:none!important;}
}
